|
2012-09-04, 12:30 | ask |
---|
WILR00T #E nalaJ hagneT id lipugN gnakuT
Posts : 461 Thanked : 11 Engine : Multi-Engine User Skill : Beginner Type : Developer
| Om ... yg jago script ..... tolong editin script ini donk - Code:
-
=begin ======================================================================== * ziifee's Spin Command for RPG Tankentai Sideview Battle System with ATB <ATB Only> -This script is only for the Tankentai SBS with the ATB installed. <Image Required> Spin40 : Spin40.png is required in the Graphics/System folder. =end # ========================================================================
module ZiiN7 # ▼ Spin Command/Icon Index Number ATTACK = 1 # Attack (Default) GUARD = 52 # Guard SKILL = 128 # Skill ITEM = 144 # Item ESCAPE = 143 # Escape # ▼ Spin Command/Direction of Rotation ( "normal" or "reverse" ) # Determines how Spin Command rotates according to left/right key press. TURN = "normal" # ▼ Spin Command/Switch Actor Command Button # Define input button used to switch between actors with full ATB gauges. SWITCH_COMMAND_BUTTON = Input::X #-------------------------------------------------------------------------- # ● 通常回転 の判定 (スピンコマンド) Ignore this. #-------------------------------------------------------------------------- def self.turn_normal? return false if TURN == "reverse" return true end end
#============================================================================== # ■ module N02 for ATB Ver1.1 #============================================================================== module N02 # ATB Gauge Positions. Overwrites ATB_PARTY_POSITION defined in ATB Config. ATB_PARTY_POSITION = [[64,306],[160,306],[256,306],[352,306]] end
#****************************************************************************** # ★ ベース #****************************************************************************** #============================================================================== # ■ Window_SpinCommand #------------------------------------------------------------------------------ # 回転用コマンド選択を行うウィンドウです。 #==============================================================================
class Window_SpinCommand < Window_Base #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :index # カーソル位置 attr_reader :help_window # ヘルプウィンドウ #-------------------------------------------------------------------------- # ● オブジェクト初期化 # cx / cy : 中心の X座標 / Y座標 # commands : コマンド配列 (内容 は [name, kind, pull, enabled?]) # setting : 設定ハッシュ ("R"=>半径 "S"=>速さ "G"=>背景 "L"=>文字) #-------------------------------------------------------------------------- def initialize(cx, cy, commands, setting = {}) @radius = setting.has_key?("R") ? setting["R"] : 40 # 描画半径 @speed = setting.has_key?("S") ? setting["S"] : 36 # 回転速さ @spin_back = setting.has_key?("G") ? setting["G"] : "" # 背景画像 @spin_line = setting.has_key?("L") ? setting["L"] : nil # 文字位置 x, y = cx - @radius - 28, cy - @radius - 28 width = height = @radius * 2 + 56 super(x, y, width, height) self.opacity = 0 @index = 0 @commands = commands # コマンド @spin_right = true @spin_count = 0 update_cursor end #-------------------------------------------------------------------------- # ▽ スピン画像を描画する (描画内容 強化用) # i : インデックス # cx : 表示 中心位置 X座標 # cy : 表示 中心位置 Y座標 #-------------------------------------------------------------------------- def draw_spin_graphic(i, cx, cy) case command_kind(i) when "icon" draw_icon(command_pull(i), cx - 12, cy - 12, command_enabled?(i)) end end #-------------------------------------------------------------------------- # ★ リフレッシュ バグ回避用 #-------------------------------------------------------------------------- def refresh set_spin end #-------------------------------------------------------------------------- # ★ 項目の描画 バグ回避用 #-------------------------------------------------------------------------- def draw_item(index, enabled = true) @commands[index][3] = enabled set_spin end #-------------------------------------------------------------------------- # ● 現在のコマンド名を取得する #-------------------------------------------------------------------------- def command_name(index = @index) return "" if index < 0 name = @commands[index][0] return name != nil ? name : "" end #-------------------------------------------------------------------------- # ● コマンドの種類を取得 #-------------------------------------------------------------------------- def command_kind(index) result = @commands[index][1] return result != nil ? result : "" end #-------------------------------------------------------------------------- # ● コマンドの引数 を取得 #-------------------------------------------------------------------------- def command_pull(index) result = @commands[index][2] return result != nil ? result : "" end #-------------------------------------------------------------------------- # ● コマンドの有効フラグを取得 #-------------------------------------------------------------------------- def command_enabled?(index) result = @commands[index][3] return result != nil ? result : true end #-------------------------------------------------------------------------- # ● 名前の位置に index を設定する #-------------------------------------------------------------------------- def set_index(name) n = -1 for i in 0...@commands.size n = i if @commands[i][0] == name end @index = n if n >= 0 update_cursor call_update_help set_spin end #-------------------------------------------------------------------------- # ● カーソル位置の設定 # index : 新しいカーソル位置 #-------------------------------------------------------------------------- def index=(index) @index = index update_cursor call_update_help set_spin end #-------------------------------------------------------------------------- # ● 中心のX座標を取得 #-------------------------------------------------------------------------- def center_x return contents.width / 2 end #-------------------------------------------------------------------------- # ● 中心のY座標を取得 #-------------------------------------------------------------------------- def center_y return contents.height / 2 end #-------------------------------------------------------------------------- # ● 項目数の取得 #-------------------------------------------------------------------------- def item_max return @commands.size end #-------------------------------------------------------------------------- # ● 背景の設定 (再定義 向き) #-------------------------------------------------------------------------- def set_background return if @spin_back == "" bitmap = Cache.system(@spin_back) rect = Rect.new(0, 0, bitmap.width, bitmap.height) self.contents.blt(12, 12, bitmap, rect) end #-------------------------------------------------------------------------- # ● 文章の設定 (再定義 向き) #-------------------------------------------------------------------------- def set_text return if @spin_line == nil y = center_y - WLH / 2 + @spin_line self.contents.draw_text(center_x - 48, y, 96, WLH, command_name, 1) end #-------------------------------------------------------------------------- # ● スピンアイコンの角度の差を取得する #-------------------------------------------------------------------------- def angle_size return (Math::PI * 2 / item_max) end #-------------------------------------------------------------------------- # ● スピンアイコン回転時のカウント を設定する #-------------------------------------------------------------------------- def set_spin_count @spin_count = angle_size * 360 / @speed set_spin(true) end #-------------------------------------------------------------------------- # ● スピン設定 の実行 # spin : 回転フラグ (true の時回転中) #-------------------------------------------------------------------------- def set_spin(spin = false) self.contents.clear set_background angle = spin ? @speed * @spin_count / 360 : 0 angle = @spin_right ? angle : -angle for i in 0...item_max n = (i - @index) * angle_size + angle cx = @radius * Math.sin(n) + center_x cy = - @radius * Math.cos(n) + center_y draw_spin_graphic(i, cx, cy) end set_text end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super update_cursor if @spin_count > 0 @spin_count -= 1 set_spin(@spin_count >= 1) return end update_command end #-------------------------------------------------------------------------- # ● コマンドの移動可能判定 #-------------------------------------------------------------------------- def command_movable? return false if @spin_count > 0 return false if (not visible or not active) return false if (index < 0 or index > item_max or item_max == 0) return false if (@opening or @closing) return true end #-------------------------------------------------------------------------- # ● コマンドを右に移動 #-------------------------------------------------------------------------- def command_right @index = (@index + 1) % item_max @spin_right = true set_spin_count end #-------------------------------------------------------------------------- # ● コマンドを左に移動 #-------------------------------------------------------------------------- def command_left @index = (@index - 1 + item_max) % item_max @spin_right = false set_spin_count end #-------------------------------------------------------------------------- # ● コマンド選択の更新 #-------------------------------------------------------------------------- def update_command if command_movable? if Input.press?(Input::RIGHT) Sound.play_cursor ZiiN7.turn_normal? ? command_right : command_left end if Input.press?(Input::LEFT) Sound.play_cursor ZiiN7.turn_normal? ? command_left : command_right end end call_update_help end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor if @index < 0 self.cursor_rect.empty else rect = Rect.new(0, 0, 24, 24) rect.x = center_x - rect.width / 2 rect.y = center_y - rect.height / 2 - @radius self.cursor_rect = rect end end #-------------------------------------------------------------------------- # ● ヘルプウィンドウの設定 # help_window : 新しいヘルプウィンドウ #-------------------------------------------------------------------------- def help_window=(help_window) @help_window = help_window call_update_help end #-------------------------------------------------------------------------- # ● ヘルプウィンドウ更新メソッドの呼び出し #-------------------------------------------------------------------------- def call_update_help if self.active and @help_window != nil update_help end end #-------------------------------------------------------------------------- # ● ヘルプウィンドウの更新 (内容は継承先で定義する) #-------------------------------------------------------------------------- def update_help end end
#****************************************************************************** # ★ 本作成 #******************************************************************************
#============================================================================== # ■ Window_ActorCommand #==============================================================================
class Window_ActorCommand < Window_SpinCommand #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize set = [] set.push([Vocab::attack, "icon", ZiiN7::ATTACK, true]) set.push([Vocab::skill, "icon", ZiiN7::SKILL, true]) set.push([Vocab::guard, "icon", ZiiN7::GUARD, true]) set.push([Vocab::item, "icon", ZiiN7::ITEM, true]) super(64, 64, set, {"R"=>40, "S"=>52, "L"=>-12, "G"=>"Spin40"}) self.active = false set_spin end #-------------------------------------------------------------------------- # ● セットアップ # actor : アクター #-------------------------------------------------------------------------- def setup(actor) @commands[0][2] = ZiiN7::ATTACK @commands[1][0] = Vocab::skill if actor.weapons[0] != nil n = actor.weapons[0].icon_index @commands[0][2] = n if n > 0 end @commands[1][0] = actor.class.skill_name if actor.class.skill_name_valid self.index = 0 set_spin end end
#============================================================================== # ■ Window_BattleStatus #==============================================================================
class Window_BattleStatus #-------------------------------------------------------------------------- # ● オブジェクト初期化 改 #-------------------------------------------------------------------------- def initialize super(128, 0, 416, 128) @column_max = 4 refresh self.active = false self.opacity = 0 end #-------------------------------------------------------------------------- # ● 項目の描画 改 #-------------------------------------------------------------------------- def draw_item(index) x = index * 96 rect = Rect.new(x, 0, 96, 96) self.contents.clear_rect(rect) self.contents.font.color = normal_color actor = $game_party.members[index] draw_actor_face(actor, x + 2, 2, 92) draw_actor_state(actor, x + 72, WLH * 3) self.contents.font.color = hp_color(actor) size = 14 self.contents.font.size = size self.contents.draw_text(x, WLH * 1 + 20 - size, 80, WLH, actor.name) self.contents.font.size = 20 draw_actor_hp(actor, x, WLH * 2, 80) draw_actor_mp(actor, x, WLH * 3, 70) end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor self.cursor_rect.empty end end
#****************************************************************************** # ★ アクティブタイム改造部 #******************************************************************************
#============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ★ コマンド更新 ※再定義 #-------------------------------------------------------------------------- def update_actor_command_selection # コマンド入力できる状態でなくなればキャンセル return reset_command unless commanding? if Input.trigger?(Input::B) Input.update Sound.play_decision start_party_command elsif Input.trigger?(Input::C) Input.update case @actor_command_window.index when 0 # 攻撃 Sound.play_decision @commander.action.set_attack start_target_enemy_selection when 1 # スキル Sound.play_decision $in_select = true start_skill_selection when 2 # 防御 Sound.play_decision @commander.action.set_guard end_command when 3 # アイテム Sound.play_decision $in_select = true start_item_selection end # シフトキーでコマンドキャラ送り ************************************ elsif Input.trigger?(ZiiN7::SWITCH_COMMAND_BUTTON) next_commander #******************************************************************** end end end
Mhon Bantu Ubah Spin nya jadi di pojok kanan atas .. nih gambarnya ... https://2img.net/r/ihimg/photo/my-images/853/mainbattlesystem002.jpg/ |
| | |
Halaman 1 dari 1 |
|
|
Permissions in this forum: | Anda tidak dapat menjawab topik
| |
|
|
Latest 10 Topics | [Web Novel] Gloria Infidelis 2016-11-17, 21:27 by LightNightKnight
[Announcement] Forum baru untuk RMID 2016-08-25, 16:39 by TheoAllen
Where I'm Wrong ? 2016-07-24, 16:10 by ReydVires
flakeheartnet's Resources part III 2016-07-08, 14:30 by flakeheartnet
Keira's Art Warehouse 2016-06-28, 19:27 by KeiraBlaze
Theo Core Time System + Bingung 2016-06-27, 16:24 by Lockin
Error Script, Maybe ? 2016-06-27, 16:20 by Lockin
Nusaimoe @ RMID Lounge 2016-06-21, 05:02 by Jihad Bagas
Call Random Battle 2016-06-15, 17:04 by Lockin
Flakeheartnet Resources Part II [come back gift] 2016-06-07, 15:51 by flakeheartnet
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|