# ▽△▽ XRXSv9. BaST-VX.AB4. ホコグラ・インフロント ▽△▽ # # publish 2010/ 4/14 # update - 11/ 1/ 5b # #============================================================================== # カスタマイズポイント #============================================================================== class Game_Actor < Game_Battler def screen_x return Graphics.width/2 + ((self.index.to_i - ($game_party.members.size - 1) / 2.0) * 64).to_i end def screen_y return 288 end end #============================================================================== # バトラーグラフィックへの対応 #============================================================================== class Game_Actor < Game_Battler attr_accessor :pattern attr_accessor :direction def in_floor? return true end def battler_initialize super self.pattern = 1 self.direction = 8 end end #============================================================================== # アクター向きの初期化 #============================================================================== class Scene_Battle < Scene_Base def actor_battler_initialize for actor in $game_party.members actor.battler_initialize end end end #============================================================================== # アクターバトラースプライト #============================================================================== class Sprite_ActorBattler < Sprite_Battler #-------------------------------------------------------------------------- # ▼ 転送元ビットマップの更新 #-------------------------------------------------------------------------- def update_battler_bitmap update_bitmap update_src_rect update_damageshake update_battler_xcam update_jumping end #-------------------------------------------------------------------------- # 転送元ビットマップの更新 #-------------------------------------------------------------------------- def update_bitmap if @battler_name != @battler.character_name @battler_name = @battler.character_name self.bitmap = Cache.character(@battler_name) sign = @battler_name[/^[\!\$]./] b = (sign != nil and sign.include?('$')) @cw = bitmap.width / (b ? 3 : 12) @ch = bitmap.height / (b ? 4 : 8) self.ox = @cw / 2 self.oy = @ch end end #-------------------------------------------------------------------------- # 転送元矩形の更新 #-------------------------------------------------------------------------- def update_src_rect index = @battler.character_index pattern = @battler.pattern < 3 ? @battler.pattern : 1 sx = (index % 4 * 3 + pattern) * @cw sy = (index / 4 * 4 + (@battler.direction - 2) / 2) * @ch self.src_rect.set(sx, sy, @cw, @ch) end end #============================================================================== # バトルジャンプ定 #============================================================================== class Game_Battler attr_accessor :battlejump_go attr_accessor :battlejump_go_back attr_accessor :battlejump_go_escape attr_accessor :battlejumping attr_accessor :battlejump_x attr_accessor :battlejump_y end class Scene_Battle < Scene_Base def wait_for_jump(battlers = self.members) loop do jumping = false for battler in battlers jumping |= battler.battlejumping end break unless jumping update_basic end end def battlejump_back wait_for_jump for battler in self.members battler.battlejump_back end wait_for_jump end def battlejump_for_targets(targets) wait_for_jump for battler in self.members - targets - [@active_battler] battler.battlejump_back end @active_battler.battlejump_to_targets(targets) wait_for_jump end def battlejump_action_end wait_for_jump([@active_battler]) @active_battler.battlejump_back end end #============================================================================== # バトルジャンプ機能 #============================================================================== class Sprite_ActorBattler < Sprite_Battler def update_jumping @jumped_y_offset = 0 if @jumped_y_offset == nil if @battler.battlejump_go_back or @battler.battlejump_go if @battler.battlejump_go @jump_y_speed = @battler.battlejump_y / 8 @battler.battlejump_go = false end if @battler.battlejump_go_back @jump_y_speed = -1 * @jumped_y_offset / 8 @battler.battlejump_go_back = false end if @jump_y_speed == 0 @jump_duration = nil @battler.battlejumping = false else @jump_duration = 8 end end if @battler.battlejumping @jumped_y_offset += @jump_y_speed @jump_duration -= 1 if @jump_duration <= 0 @jump_duration = nil @battler.battlejumping = false end end self.y += @jumped_y_offset end end #============================================================================== # バトル中のバトルジャンプ機能の設定 #============================================================================== class Game_Battler def battlejump_back end def battlejump_backstep end def battlejump_to_targets(targets) end end class Game_Actor < Game_Battler def battlejump_back self.battlejump_go_back = true self.battlejumping = true end def battlejump_to_targets(targets) battlejump_to(0, -32) end def battlejump_to(jump_x, jump_y) self.battlejump_x = jump_x self.battlejump_y = jump_y self.battlejump_go = true self.battlejumping = true end end