Elekami Fondateur
Messages postés : 19071 Date d'inscription : 19/07/2008 Jauge LPC :
| Sujet: [XP] Combat vue de coté Mar 21 Avr 2009 - 15:32 | |
| C'est dit. Testé et fonctionnel. Déplacez bien sur les monstres dans les groupes de monstres. Auteur inconnu. Pas de nom en particulier, à placer au-dessus de Main bien entendu. - Code:
-
#============================================================================== #++?????????(?????????)ver. 1.14++ #script by ??? #http://rpg.para.s3p.net/ #------------------------------------------------------------------------------ # ???????????????????????? #==============================================================================
module SDVA
X_LINE = 500 # ???????????? Y_LINE = 200 # ???????????? X_SPACE = 15 # ????????????? Y_SPACE = 40 # ????????????? X_POSITION = 25 # ??[????????]???? Y_POSITION = 0 # ??[????????]????
ATTACK_MOVE = true # ???????????( true / false ) SKILL_MOVE = true # ??????????????( true / false ) ITEM_MOVE = false # ???????????????( true / false ) MOVE_STEP = 1 # ???? MOVE_PIXEL = 10 # ???????????
PARTY_POS = 1 # ?????????( 0:? / 1:? / 2:? / 3:? )
WINDOWPOS_CHANGE = true # ??????????????????????( true / false )
end
#============================================================================== # ? Game_Actor #==============================================================================
class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ? ????? X ????? #-------------------------------------------------------------------------- def screen_x if self.index != nil # ????? pos = $data_classes[self.class_id].position x_pos = pos * SDVA::X_POSITION scr_x = self.index * SDVA::X_SPACE + SDVA::X_LINE + x_pos # ?????????? if self.current_action.move_action == true # ???? scr_x += @shift_x end return scr_x else return 0 end end #-------------------------------------------------------------------------- # ? ????? Y ????? #-------------------------------------------------------------------------- def screen_y if self.index != nil # ????? pos = $data_classes[self.class_id].position y_pos = pos * SDVA::Y_POSITION scr_y = self.index * SDVA::Y_SPACE + SDVA::Y_LINE + y_pos # ?????????? if self.current_action.move_action == true # ???? scr_y += @shift_y end return scr_y else return 0 end end #-------------------------------------------------------------------------- # ? ????? Z ????? #-------------------------------------------------------------------------- def screen_z if self.index != nil return self.index else return 0 end end end
#============================================================================== # ? Game_Battler (???? 1) #==============================================================================
class Game_Battler #-------------------------------------------------------------------------- # ? ?????????? #-------------------------------------------------------------------------- attr_reader :pattern # ?????? attr_reader :trans_x # X??????? attr_reader :moving # ?????? #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- alias initialize_sdva initialize def initialize initialize_sdva move_reset end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- def move @moving = 1 if @step < SDVA::MOVE_STEP # ?????????? @pattern = (@pattern + 1) % 4 @step += 1 move_step else # ???? @pattern = 1 @moving = 2 end end #-------------------------------------------------------------------------- # ? ???? #-------------------------------------------------------------------------- def move_step # ??????????????????? case SDVA::PARTY_POS when 0 @shift_y = @step * SDVA::MOVE_PIXEL when 1 @shift_x = -(@step * SDVA::MOVE_PIXEL) when 2 @shift_x = @step * SDVA::MOVE_PIXEL when 3 @shift_y = -(@step * SDVA::MOVE_PIXEL) end end #-------------------------------------------------------------------------- # ? ??????? #-------------------------------------------------------------------------- def move_reset @moving = 0 @pattern = 0 @step = 0 @shift_x = 0 @shift_y = 0 end end
#============================================================================== # ? Game_BattleAction #==============================================================================
class Game_BattleAction #-------------------------------------------------------------------------- # ? ?????????? #-------------------------------------------------------------------------- attr_accessor :move_action # ?????????? #-------------------------------------------------------------------------- # ? ??? #-------------------------------------------------------------------------- alias clear_sdva clear def clear clear_sdva @move_action = false end end
#============================================================================== # ? Sprite_Battler #==============================================================================
class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- alias update_sdva update def update # ???????????????? if @battler.is_a?(Game_Actor) # ???????????????????? # ?????? if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue or @battler.current_action.basic == 0 or @battler.current_action.kind != 3 # ???????????? @character_name = @battler.character_name @character_hue = @battler.character_hue # ??????????? self.bitmap = RPG::Cache.character(@character_name, @character_hue) cw = self.bitmap.width / 4 ch = self.bitmap.height / 4 @width = cw @height = ch if @battler.current_action.move_action == true # ???? @battler.move else @battler.move_reset end # ????????? sx = @battler.pattern * cw sy = SDVA::PARTY_POS * ch self.src_rect.set(sx, sy, cw, ch) self.ox = @width / 2 self.oy = @height # ??????????? 0 ??? if @battler.hidden self.opacity = 0 end end end update_sdva end end
#============================================================================== # ? Scene_Battle #==============================================================================
class Scene_Battle #-------------------------------------------------------------------------- # ? ???????????????????? #-------------------------------------------------------------------------- alias phase3_setup_command_window_sdva phase3_setup_command_window def phase3_setup_command_window phase3_setup_command_window_sdva if SDVA::WINDOWPOS_CHANGE # ??????????????????? case SDVA::PARTY_POS when 0 x_pos = @active_battler.screen_x - (@actor_command_window.width/2) y_pos = @active_battler.screen_y when 1 x_pos = @active_battler.screen_x - @actor_command_window.width - 16 y_pos = @active_battler.screen_y - @actor_command_window.height when 2 x_pos = @active_battler.screen_x + 16 y_pos = @active_battler.screen_y - @actor_command_window.height when 3 x_pos = @active_battler.screen_x - (@actor_command_window.width/2) y_pos = @active_battler.screen_y - @actor_command_window.height - 48 end @actor_command_window.x = x_pos >= 0 ? x_pos : 0 @actor_command_window.x = x_pos+@actor_command_window.width <= 640 ? x_pos : 640-@actor_command_window.width @actor_command_window.y = y_pos >= 0 ? y_pos : 0 @actor_command_window.y = y_pos+@actor_command_window.height <= 480 ? y_pos : 480-@actor_command_window.height # ?????????????????? @actor_command_window.z = 9999 end end #-------------------------------------------------------------------------- # ? ?????? (??????? ???? 3 : ??????????) #-------------------------------------------------------------------------- alias update_phase4_step3_sdva update_phase4_step3 def update_phase4_step3 if SDVA::ATTACK_MOVE if @active_battler.current_action.basic == 0 @active_battler.current_action.move_action = true end end if SDVA::SKILL_MOVE if @active_battler.current_action.kind == 1 @active_battler.current_action.move_action = true end end if SDVA::ITEM_MOVE if @active_battler.current_action.kind == 2 @active_battler.current_action.move_action = true end end # ?????????????????????? if @active_battler.is_a?(Game_Actor) and @active_battler.current_action.move_action # ????? if @active_battler.moving == 2 update_phase4_step3_sdva end elsif @active_battler.moving == 0 update_phase4_step3_sdva end end #-------------------------------------------------------------------------- # ? ?????? (??????? ???? 6 : ??????) #-------------------------------------------------------------------------- alias update_phase4_step6_sdva update_phase4_step6 def update_phase4_step6 @active_battler.current_action.move_action = false @active_battler.move_reset update_phase4_step6_sdva end end
#============================================================================== # ? Spriteset_Battle #==============================================================================
class Spriteset_Battle #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- alias initialize_sdva initialize def initialize initialize_sdva @viewport2.z = 1 end end
#============================================================================== # ? Arrow_Actor #==============================================================================
class Arrow_Actor < Arrow_Base #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- alias update_sdva update def update update_sdva # ????? if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index += 1 @index %= $game_party.actors.size end # ????? if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index += $game_party.actors.size - 1 @index %= $game_party.actors.size end end end
#============================================================================== # ? Arrow_Enemy #==============================================================================
class Arrow_Enemy < Arrow_Base #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- alias update_sdva update def update update_sdva # ????? if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += 1 @index %= $game_troop.enemies.size break if self.enemy.exist? end end # ????? if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += $game_troop.enemies.size - 1 @index %= $game_troop.enemies.size break if self.enemy.exist? end end end end |
|
nerdzofgeek Paysan (niveau 2)
Messages postés : 17 Date d'inscription : 22/10/2013 Jauge LPC :
| Sujet: Re: [XP] Combat vue de coté Mer 23 Oct 2013 - 1:46 | |
| je suis allez dans les script et au dessu de main il ya un train blanc j'ai copier le script au complet sur la page dispo a coter mais le mode de combat na pas changer du tout. quelqun peu il mexpliquer les script le mode de combat et ce qui me rebute le plus dans rpg maker xp |
|