lyam6666 Capitaine
Messages : 182 Date d'inscription : 10/01/2011 Localisation : Alès
Personnage du RPG Nom du Personnage: darguin Race: Dragon Level: 1
| Sujet: Script combat ff like Sam 15 Jan - 10:16 | |
| bonjour, voici un script de combat a la ff like (qui marche) (et par Claimh) puis je rajouterais a la fin des image (deja "preparer") (sa vous evitera bien de la perte de temps!) a mette au dessus de "Main" 1er script: sideview_formation portion de code: - Code:
-
#============================================================================== # ■ VX-RGSS2-6 Side-View Battle System [Formation] [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # English Translation By: Elemental Crisis [http://www.rpgcrisis.net] #------------------------------------------------------------------------------ # Actor location [Formation] # The same amount of damage will be given regardless of formation setup. #==============================================================================
module Battle_Formation #------------------------------------------------------------------------------ # [Formation Setup] # $game_system.battle_formation = Formation ID # It’s possible to change the formation (Even an event script is possible). FORM = { # Formation ID => [[Member 1 x、y], [Member2 x, y], # [Member 3 x, y], [Member 4 x, y]] 0 => [[380,150], [400, 230], [460, 170], [480, 250]] } #------------------------------------------------------------------------------ end
#============================================================================== # ■ Game_System #============================================================================== class Game_System attr_accessor :battle_formation # Formation ID #-------------------------------------------------------------------------- # ● Object initialization #-------------------------------------------------------------------------- alias init_game_system initialize def initialize init_game_system @battle_formation = 0 # Initial formation end end
#============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● Are sprites used? [Redefinition] #-------------------------------------------------------------------------- def use_sprite? return true end #-------------------------------------------------------------------------- # ● Battle screen Acquiring X Coordinate #-------------------------------------------------------------------------- def screen_x return Battle_Formation::FORM[$game_system.battle_formation][self.index][0] end #-------------------------------------------------------------------------- # ● Battle screen Acquiring Y Coordinate #-------------------------------------------------------------------------- def screen_y return Battle_Formation::FORM[$game_system.battle_formation][self.index][1] end #-------------------------------------------------------------------------- # ● Battle screen Acquiring Z Coordinate #-------------------------------------------------------------------------- def screen_z bitmap = Cache.character(self.character_name) # Height +Y Coordinates return screen_y + bitmap.height / 4 end end
#============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● Battle screen Acquiring Z Coordinate [Redefinition] #-------------------------------------------------------------------------- def screen_z bitmap = Cache.battler(self.battler_name, self.battler_hue) # Height +Y Coordinates return screen_y + bitmap.height end end
2eme script: sideview_motion_ctrl portion de code: - Code:
-
#============================================================================== # ■ VX-RGSS2-6 Side-View Battle System [MotionCtrl] [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # English Translation By: Elemental Crisis [http://www.rpgcrisis.net] #------------------------------------------------------------------------------ # This script carries out the movement controls of the actors. #==============================================================================
#============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● Battle Start Process #-------------------------------------------------------------------------- alias process_battle_start_sideview process_battle_start def process_battle_start for battler in $game_party.members + $game_troop.members battler.move_mode = SideView::M_MODE_WAIT end process_battle_start_sideview end #-------------------------------------------------------------------------- # ● Victory Process #-------------------------------------------------------------------------- alias process_victory_sideview process_victory def process_victory for actor in $game_party.members actor.move_mode = SideView::M_MODE_WIN end process_victory_sideview end #-------------------------------------------------------------------------- # ● Wait Until Motion Control Is Finished #-------------------------------------------------------------------------- def wait_for_motion while @active_battler.motion_stop update_basic end end #-------------------------------------------------------------------------- # ● Execute Combat Operations: Attack [Redefinition] #-------------------------------------------------------------------------- def execute_action_attack text = sprintf(Vocab::DoAttack, @active_battler.name) @message_window.add_instant_text(text) targets = @active_battler.action.make_targets #---Enemy attack sound reproduced. if @active_battler.is_a?(Game_Enemy) Sound.play_enemy_attack wait(15, true) end #--- Proximity (Going) SideView.set_target_point(@active_battler, targets[0]) @active_battler.move_mode = SideView::M_MODE_ATK1 @active_battler.motion_stop = true wait_for_motion #--- Attack wait(5) @active_battler.move_mode = SideView::M_MODE_ATK2 #--- display_attack_animation(targets) wait(20) for target in targets target.attack_effect(@active_battler) display_action_effects(target) end #--- Proximity (Return) @active_battler.move_mode = SideView::M_MODE_ATK3 @active_battler.motion_stop = true wait_for_motion #---Wait for target in targets target.move_mode = SideView::M_MODE_WAIT end @active_battler.move_mode = SideView::M_MODE_WAIT #--- end #-------------------------------------------------------------------------- # ● Execute Combat Operations: Skill [Redefinition] #-------------------------------------------------------------------------- def execute_action_skill skill = @active_battler.action.skill text = @active_battler.name + skill.message1 @message_window.add_instant_text(text) unless skill.message2.empty? wait(10) @message_window.add_instant_text(skill.message2) end #--- Enemy attack sound reproduced. if @active_battler.is_a?(Game_Enemy) Sound.play_enemy_attack wait(15, true) end #--- Long distance attack @active_battler.move_mode = SideView::M_MODE_MAGI #--- targets = @active_battler.action.make_targets display_animation(targets, skill.animation_id) @active_battler.mp -= @active_battler.calc_mp_cost(skill) $game_temp.common_event_id = skill.common_event_id for target in targets target.skill_effect(@active_battler, skill) display_action_effects(target, skill) end #---Wait for target in targets target.move_mode = SideView::M_MODE_WAIT end @active_battler.move_mode = SideView::M_MODE_WAIT #--- end #-------------------------------------------------------------------------- # ● Execute Combat Operations: Item [Redefinition] #-------------------------------------------------------------------------- def execute_action_item item = @active_battler.action.item text = sprintf(Vocab::UseItem, @active_battler.name, item.name) @message_window.add_instant_text(text) #--- Enemy attack sound reproduced. if @active_battler.is_a?(Game_Enemy) Sound.play_enemy_attack wait(15, true) end #--- Long distance attack @active_battler.move_mode = SideView::M_MODE_MAGI #--- targets = @active_battler.action.make_targets display_animation(targets, item.animation_id) $game_party.consume_item(item) $game_temp.common_event_id = item.common_event_id for target in targets target.item_effect(@active_battler, item) display_action_effects(target, item) end #---Wait for target in targets target.move_mode = SideView::M_MODE_WAIT end @active_battler.move_mode = SideView::M_MODE_WAIT #--- end #-------------------------------------------------------------------------- # ● Attack Animation Display [Redefinition] # Targets : Object's Arrangement #-------------------------------------------------------------------------- # 【Changed part】 # Enemy sound effect is changed so it can be used in each phase of operation. # However, it changes so that the attack animation of an enemy can be displayed. #-------------------------------------------------------------------------- def display_attack_animation(targets) display_normal_animation(targets, @active_battler.atk_animation_id, false) display_normal_animation(targets, @active_battler.atk_animation_id2, true) wait_for_animation end #-------------------------------------------------------------------------- # ● HP Damage display [Redefinition] # target : Candidate # obj : Skill or item #-------------------------------------------------------------------------- def display_hp_damage(target, obj = nil) if target.hp_damage == 0 # No damage return if obj != nil and obj.damage_to_mp return if obj != nil and obj.base_damage == 0 fmt = target.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage text = sprintf(fmt, target.name) elsif target.absorbed # Absorption fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain text = sprintf(fmt, target.name, Vocab::hp, target.hp_damage) elsif target.hp_damage > 0 # Damage if target.actor? text = sprintf(Vocab::ActorDamage, target.name, target.hp_damage) Sound.play_actor_damage $game_troop.screen.start_shake(5, 5, 10) target.blink = true # Only adds here else text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage) Sound.play_enemy_damage target.blink = true end else # Recovery fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery text = sprintf(fmt, target.name, Vocab::hp, -target.hp_damage) Sound.play_recovery end @message_window.add_instant_text(text) wait(30) end end
3eme script: sideview_motion_exe portion de code: - Code:
-
#============================================================================== # ■ VX-RGSS2-6 Side-View Battle System[MotionExe] [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # English Translation By: Elemental Crisis [http://www.rpgcrisis.net] #------------------------------------------------------------------------------ # This script executes movement controls of the actors. #==============================================================================
module SideView #---------------------------------------------------------------------------- #-----[Operation Setup]----- # Operation Speed MOTION_SPEED = 20
#-----[Animation Setup]----- # Usual enemy attack animation setup. E_ANIME = { # EnemyID => [Usually atttack and additional attack animations.] 1 => [1, 0] }
#---------------------------------------------------------------------------- #---------------------------------------------------------------------------- # Motion Control Mode M_MODE_WAIT = 0 # Standby M_MODE_MAGI = 1 # Attack M_MODE_DAMG = 2 # Non-Damage Attack M_MODE_WIN = 3 # Victory M_MODE_ATK1 = 4 # Direct Attack (Approaching) M_MODE_ATK2 = 5 # Direct Attack (Attacking) M_MODE_ATK3 = 6 # Direct Attack (Returning)
module_function #-------------------------------------------------------------------------- # ● Movement-Zone Calculation #-------------------------------------------------------------------------- def set_target_point(attacker, target) case target when Game_Actor bits = Cache.character(target.character_name) attacker.target_x = target.screen_x + (bits.width / 8) attacker.target_y = target.screen_y when Game_Enemy bits = Cache.battler(target.battler_name, target.battler_hue) attacker.target_x = target.screen_x + (bits.width / 2) attacker.target_y = target.screen_y end end end
class Game_Battler attr_accessor :move_mode # Operation Mode # 0:Standby 1:Attack 2: Un-useless 3:Victory attr_accessor :motion_stop # Operation Stop Flag (Under Movement Flag) attr_accessor :target_x # Move Position(x) attr_accessor :target_y # Move Position(y) #-------------------------------------------------------------------------- # ● Object Initialization #-------------------------------------------------------------------------- alias initialize_sdva_corpse initialize def initialize initialize_sdva_corpse @move_mode = 0 @motion_stop = false @target_x = 0 @target_y = 0 end end
#============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● Attack Animation ID Acquisition #-------------------------------------------------------------------------- def atk_animation_id return 0 if SideView::E_ANIME[@enemy_id].nil? return SideView::E_ANIME[@enemy_id][0] end #-------------------------------------------------------------------------- # ● Attack Animation ID Acquisition (2 Sword Style:2 Weapons ) #-------------------------------------------------------------------------- def atk_animation_id2 return 0 if SideView::E_ANIME[@enemy_id].nil? return SideView::E_ANIME[@enemy_id][1] end end
#============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Object Initialization # viewport : View Port # battler : Battler (Game_Battler) #-------------------------------------------------------------------------- alias initialize_sideview initialize def initialize(viewport, battler = nil) initialize_sideview(viewport, battler) init_direct_attack end #-------------------------------------------------------------------------- # ● Set Proximity Value For Attack #-------------------------------------------------------------------------- def init_direct_attack @direct_attack_cnt = 0 @direct_attack_phase = 0 @direct_move_cnt = 0 @battler_x_plus = 0 @battler_y_plus = 0 @moving_mode = 0 @pattern = 0 @direction = 0 end #-------------------------------------------------------------------------- # ● Frame Renewal [Redefinition] #-------------------------------------------------------------------------- def update super if @battler == nil self.bitmap = nil else @use_sprite = @battler.use_sprite? if @use_sprite self.x = @battler.screen_x + @battler_x_plus self.y = @battler.screen_y + @battler_y_plus self.z = @battler.screen_z update_battler_bitmap end setup_new_effect update_effect end end #-------------------------------------------------------------------------- # ● Bitmap Transfer Source Renewal #-------------------------------------------------------------------------- alias update_battler_bitmap_sideview update_battler_bitmap def update_battler_bitmap case @battler when Game_Actor if @battler.character_name != @battler_name or @battler.character_index != @battler_hue @battler_name = @battler.character_name @battler_hue = @battler.character_index draw_pre_character draw_character if (@battler.dead? or @battler.hidden) and !@battler.dead_delay self.opacity = 0 end end when Game_Enemy if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue @battler_name = @battler.battler_name @battler_hue = @battler.battler_hue draw_battler if (@battler.dead? or @battler.hidden) and !@battler.dead_delay self.opacity = 0 end end end motion_control end #-------------------------------------------------------------------------- # ● Battler Drawing #-------------------------------------------------------------------------- def draw_battler self.bitmap = Cache.battler(@battler_name, @battler_hue) @width = bitmap.width @height = bitmap.height self.ox = @width / 2 self.oy = @height end #-------------------------------------------------------------------------- # ● Pre-Character Drawing [Common] #-------------------------------------------------------------------------- def draw_pre_character self.bitmap = Cache.character(@battler_name) sign = @battler_name[/^[\!\$]./] if sign != nil and sign.include?('$') @width = bitmap.width / 3 @height = bitmap.height / 4 else @width = bitmap.width / 12 @height = bitmap.height / 8 end self.ox = @width / 2 self.oy = @height end #-------------------------------------------------------------------------- # ● Character Drawing [Common] #-------------------------------------------------------------------------- def draw_character index = @battler_hue pattern = @pattern < 3 ? @pattern : 1 sx = (index % 4 * 3 + pattern) * @width sy = (index / 4 * 4 + (@direction - 2) / 2) * @height self.src_rect.set(sx, sy, @width, @height) end #-------------------------------------------------------------------------- # ● Motion Control #-------------------------------------------------------------------------- def motion_control # Memory Operation Mode @moving_mode = @battler.move_mode # Battler Drawing case @battler when Game_Actor # Actor actor_motion_control when Game_Enemy # Enemy enemy_motion_control end end #-------------------------------------------------------------------------- # ● Motion Control (Actor) #-------------------------------------------------------------------------- def actor_motion_control # Operation Change case @moving_mode when SideView::M_MODE_WAIT # Standby init_direct_attack @battler_x_plus = 0 @direction = 4 @pattern = 1 when SideView::M_MODE_MAGI # Attack @battler_x_plus = -10 @direction = 4 @pattern = 3 when SideView::M_MODE_DAMG # Non-Damage Attack @battler_x_plus = 10 @direction = 4 @pattern = 3 when SideView::M_MODE_WIN # Victory @direction = 2 @pattern = 1 when SideView::M_MODE_ATK1 # Direct Attack (Approaching) exe_moving_attack_start @end_pos_x = @battler_x_plus when SideView::M_MODE_ATK2 # Direct Attack (Attacking) @battler_x_plus = @end_pos_x - 10 when SideView::M_MODE_ATK3 # Direct Attack (Returning) exe_moving_attack_end else p "error:Sprite_Battler>> @moving_mode" end draw_character end #-------------------------------------------------------------------------- # ● Motion Control (Enemy) #-------------------------------------------------------------------------- def enemy_motion_control # 動作チェンジ case @moving_mode when SideView::M_MODE_WAIT # Standby init_direct_attack when SideView::M_MODE_MAGI # Attack @battler_x_plus = 10 when SideView::M_MODE_DAMG # Non-Damage Attack @battler_x_plus = -10 @shake_flg = true when SideView::M_MODE_ATK1 # Direct Attack (Approaching) exe_moving_attack_start @end_pos_x = @battler_x_plus when SideView::M_MODE_ATK2 # Direct Attack (Attacking) @battler_x_plus = @end_pos_x + 10 when SideView::M_MODE_ATK3 # Direct Attack (Returning) exe_moving_attack_end else p "error:Sprite_Battler>> @moving_mode", @moving_mode end end #-------------------------------------------------------------------------- # ● Proximity Attack Execution Method #-------------------------------------------------------------------------- def exe_moving_attack_start return unless @battler.motion_stop case @direct_attack_phase when 0 # Start Operation Preparation diratk_start when 1 # Move Operation (Going) diratk_move when 2 # After-Movement Wait diratk_wait end end def exe_moving_attack_end case @direct_attack_phase when 0 # Attack Operation diratk_attack when 1 # Move Operation (Return) diratk_back when 2 # Operation End diratk_end end end #-------------------------------------------------------------------------- # ● Proximity Attack Execution [Start Operation Preparation] #-------------------------------------------------------------------------- def diratk_start # Pose Change @pattern = 1 # The number of frames needed is the distance between current position # and target position. pos_x = @battler.target_x - self.x pos_y = @battler.target_y - self.y # Caculation for ammount of frames needed. @direct_move_cnt = @direct_attack_cnt = (pos_x.abs / SideView::MOTION_SPEED).round # NEXT Phase @direct_attack_phase += 1 end #-------------------------------------------------------------------------- # ● Proximity Attack Execution [Move Operation (Going)] #-------------------------------------------------------------------------- def diratk_move case @battler when Game_Actor x_plus = @width y_plus = -@height / 4 when Game_Enemy x_plus = -@width - 10 y_plus = @height / 4 end # The next movement location is figured out by the distance between # current position and target position. pos_x = @battler.target_x - self.x + x_plus pos_y = @battler.target_y - self.y + y_plus @battler_x_plus += pos_x / @direct_attack_cnt if @direct_attack_cnt != 0 @battler_y_plus += pos_y / @direct_attack_cnt if @direct_attack_cnt != 0 # End count @direct_attack_cnt -= 1 # Last movement (Insurance: Last correction) if @direct_attack_cnt <= 0 @battler_x_plus = @battler.target_x - @battler.screen_x + x_plus @battler_y_plus = @battler.target_y - @battler.screen_y + y_plus # NEXT Phase @direct_attack_cnt = 5 @direct_attack_phase += 1 end end #-------------------------------------------------------------------------- # ● Proximity Attack Execution [Attack Operation Return] #-------------------------------------------------------------------------- def diratk_wait # End Count @direct_attack_cnt -= 1 # Last Movement if @direct_attack_cnt <= 0 # Pose Change @pattern = 3 # END Phase @direct_attack_phase = 0 @battler.motion_stop = false end end #-------------------------------------------------------------------------- # ● Proximity Attack Execution [Attack Operation Return] #-------------------------------------------------------------------------- def diratk_attack # Pose Change @pattern = 1 # End Wait Count @direct_attack_cnt = @direct_move_cnt # NEXT Phase @direct_attack_phase += 1 end #-------------------------------------------------------------------------- # ● Proximity Attack Execution [Move Operation (Return)] #-------------------------------------------------------------------------- def diratk_back # The next movement location is figured out by the distance between # current position and target position. pos_x = @battler.screen_x - self.x pos_y = @battler.screen_y - self.y @battler_x_plus += pos_x / @direct_attack_cnt if @direct_attack_cnt != 0 @battler_y_plus += pos_y / @direct_attack_cnt if @direct_attack_cnt != 0 # End Count @direct_attack_cnt -= 1 # Last Movement if @direct_attack_cnt == 0 @battler_x_plus = 0 @battler_y_plus = 0 # NEXT Phase @direct_attack_phase += 1 end end #-------------------------------------------------------------------------- # ● Proximity attack execution [Operation End] #-------------------------------------------------------------------------- def diratk_end init_direct_attack @battler.motion_stop = false # END Phase @direct_attack_phase = 0 end end
voila et maintenant, quelque image (a mettre dans les battlers, puis a mettre en image du monstre!) [Vous devez être inscrit et connecté pour voir cette image]voila!, si jamais vous vouler avoir une image comme sa a partir de chara de monstre, mp moi je le ferais (ou vous direr comment faire!) j'en es d'autres que je mettrais par la suite cordialement,lyam6666 P.S j'ai mis les image içi car elle "s'accordent" avec le script Edit: une petite place dans les credit ne serait pas de refus si vous les utiliser (les images...) | |
|
black974 Soldat
Messages : 360 Date d'inscription : 16/05/2010 Age : 26 Localisation : Dans une maison :)
Personnage du RPG Nom du Personnage: Frank and stein Race: Zombie Level: 2
| Sujet: Re: Script combat ff like Sam 15 Jan - 13:32 | |
| Merci du partage !
Mais, tu peut nous donner un p'tit screen, pour voir si c'est celui que je pense.
PS:Tu peut me donner les chara en entier(je les anime moi)pour mon SBS 3.3.D | |
|
lyam6666 Capitaine
Messages : 182 Date d'inscription : 10/01/2011 Localisation : Alès
Personnage du RPG Nom du Personnage: darguin Race: Dragon Level: 1
| Sujet: Re: Script combat ff like Dim 16 Jan - 0:09 | |
| derien alors: voila le site ou jai trouver les chara monstre: [Vous devez être inscrit et connecté pour voir ce lien]et pour les screen j'en met 2: [Vous devez être inscrit et connecté pour voir cette image]l'interface de combat [Vous devez être inscrit et connecté pour voir cette image]et les chara "en action" jai convertis tout les chara monstre en chara monstre pour le script(il marche sans!) , mais je sais pas comment envoyer un fichier d'image... par ce que mettre une vingtaine d'images, sa devient soulant... question: comment on fait pour mettre un fichier d'image? cordialement lyam6666 | |
|
seyru91 Paysan
Messages : 3 Date d'inscription : 01/07/2011
| Sujet: Re: Script combat ff like Ven 1 Juil - 7:37 | |
| je dit chapeau mais dsl de te dire sa mais ya possibiliter que tu explique un peut mieux comment ta fait avec "Main" stp (dsl je suis nouvelle) | |
|
seyru91 Paysan
Messages : 3 Date d'inscription : 01/07/2011
| Sujet: Re: Script combat ff like Ven 1 Juil - 7:44 | |
| Rectification désoler sa yes j'ai trouver ^^ | |
|
mage Administrateur
Messages : 154 Date d'inscription : 02/07/2010 Age : 29 Localisation : =P
Personnage du RPG Nom du Personnage: Race: Elfe Level: 1
| Sujet: Re: Script combat ff like Ven 1 Juil - 12:06 | |
| AH oui c'est la version simplifié du SBS, merci du partage | |
|
black974 Soldat
Messages : 360 Date d'inscription : 16/05/2010 Age : 26 Localisation : Dans une maison :)
Personnage du RPG Nom du Personnage: Frank and stein Race: Zombie Level: 2
| Sujet: Re: Script combat ff like Ven 1 Juil - 14:10 | |
| Seryu-->Si tu veux toute aide au sujet du SBS contacte moi par MP. | |
|
Contenu sponsorisé
| Sujet: Re: Script combat ff like | |
| |
|