| #Script de Combat 2.5 | |
|
|
Auteur | Message |
---|
Tm
Messages : 215 Points d'Aide : 327 Réputation : 9 Date d'inscription : 12/03/2012
| Sujet: #Script de Combat 2.5 Mer 14 Mar - 17:41 | |
| #Script de Combat 2.5 Atoria Voici le script de combat de coté : - Code:
-
#============================================================================== # ** Sprite_Battler #------------------------------------------------------------------------------ # Animated Battlers by Minkoff #==============================================================================
class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- alias cbs_initialize initialize def initialize(viewport, battler = nil) @speed = 7 @frames = 4 @poses = 11 @stationary_enemies = true @stationary_actors = false @calculate_speed = true @phasing = true @frame = 0 @pose = 0 @last_time = 0 @last_move_time = 0 cbs_initialize(viewport, battler) viewport.z = 99 end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- alias cbs_update update def update return unless @battler
# Regular Update cbs_update
# Start Routine unless @started @width = @width / @frames @height = @height / @poses @display_x = @battler.screen_x @display_y = @battler.screen_y @destination_x = @display_x @destination_y = @display_y end
# Setup Sprite self.src_rect.set(@width * @frame, @height * @pose, @width, @height) self.mirror = @battler.is_a?(Game_Enemy) unless @started
# Position Sprite self.x = @display_x self.y = @display_y self.z = @display_y self.ox = @width / 2 self.oy = @height
# Setup Animation time = Graphics.frame_count / (Graphics.frame_rate / @speed) if @last_time < time @frame = (@frame + 1) % @frames if @frame == 0 or @reload if @freeze @frame = @frames - 1 return end @pose = state end end @last_time = time
# Move It move if moving
# Finish Up @started = true end #-------------------------------------------------------------------------- # * Current State #-------------------------------------------------------------------------- def state # Damage State if [nil,{}].include?(@battler.damage) # Battler Fine @state = 0 # Battler Wounded @state = 2 if @battler.hp < @battler.maxhp / 4 # Battler Dead @state = 2 if @battler.dead? end # Guarding State @state = 3 if @battler.guarding? # Moving State if moving # Battler Moving Left @state = 4 if moving.eql?(0) # Battler Moving Right @state = 5 if moving.eql?(1) end # Return State return @state end #-------------------------------------------------------------------------- # * Move #-------------------------------------------------------------------------- def move time = Graphics.frame_count / (Graphics.frame_rate.to_f / (@speed * 5)) if @last_move_time < time
# Pause for Animation return if @pose != state
# Phasing if @phasing d1 = (@display_x - @original_x).abs d2 = (@display_y - @original_y).abs d3 = (@display_x - @destination_x).abs d4 = (@display_y - @destination_y).abs self.opacity = [255 - ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max end
# Calculate Difference difference_x = (@display_x - @destination_x).abs difference_y = (@display_y - @destination_y).abs
# Done? Reset, Stop if [difference_x, difference_y].max.between?(0, 8) @display_x = @destination_x @display_y = @destination_y @pose = state return end
# Calculate Movement Increments increment_x = increment_y = 1 if difference_x < difference_y increment_x = 1.0 / (difference_y.to_f / difference_x) elsif difference_y < difference_x increment_y = 1.0 / (difference_x.to_f / difference_y) end # Calculate Movement Speed if @calculate_speed total = 0; $game_party.actors.each{ |actor| total += actor.agi } speed = @battler.agi.to_f / (total / $game_party.actors.size) increment_x *= speed increment_y *= speed end # Multiply and Move multiplier_x = (@destination_x - @display_x > 0 ? 8 : -8) multiplier_y = (@destination_y - @display_y > 0 ? 8 : -8) @display_x += (increment_x * multiplier_x).to_i @display_y += (increment_y * multiplier_y).to_i end @last_move_time = time end #-------------------------------------------------------------------------- # * Set Movement #-------------------------------------------------------------------------- def setmove(destination_x, destination_y) unless (@battler.is_a?(Game_Enemy) and @stationary_enemies) or (@battler.is_a?(Game_Actor) and @stationary_actors) @original_x = @display_x @original_y = @display_y @destination_x = destination_x @destination_y = destination_y end end #-------------------------------------------------------------------------- # * Movement Check #-------------------------------------------------------------------------- def moving if (@display_x != @destination_x and @display_y != @destination_y) return (@display_x > @destination_x ? 0 : 1) end end #-------------------------------------------------------------------------- # * Set Pose #-------------------------------------------------------------------------- def pose=(pose) @pose = pose @frame = 0 end #-------------------------------------------------------------------------- # * Freeze #-------------------------------------------------------------------------- def freeze @freeze = true end #-------------------------------------------------------------------------- # * Fallen Pose #-------------------------------------------------------------------------- def collapse return end end
#============================================================================== # ** Game_Actor #==============================================================================
class Game_Actor #-------------------------------------------------------------------------- # * Actor X Coordinate #-------------------------------------------------------------------------- def screen_x if self.index != nil return self.index * 45 + 450 else return 0 end end #-------------------------------------------------------------------------- # * Actor Y Coordinate #-------------------------------------------------------------------------- def screen_y return self.index * 35 + 200 end #-------------------------------------------------------------------------- # * Actor Z Coordinate #-------------------------------------------------------------------------- def screen_z return screen_y end end
#============================================================================== # ** Scene_Battle #==============================================================================
class Scene_Battle #-------------------------------------------------------------------------- # * Action Animation, Movement #-------------------------------------------------------------------------- alias cbs_update_phase4_step3 update_phase4_step3 def update_phase4_step3(battler = @active_battler) @rtab = !@target_battlers target = (@rtab ? battler.target : @target_battlers)[0] @moved = {} unless @moved return if @spriteset.battler(battler).moving case battler.current_action.kind when 0 # Attack if not (@moved[battler] or battler.guarding?) offset = (battler.is_a?(Game_Actor) ? 40 : -40) @spriteset.battler(battler).setmove(target.screen_x + offset, target.screen_y) @moved[battler] = true return elsif not battler.guarding? @spriteset.battler(battler).pose = 6 + rand(2) @spriteset.battler(battler).setmove(battler.screen_x, battler.screen_y) end when 1 # Skill @spriteset.battler(battler).pose = 8 when 2 # Item @spriteset.battler(battler).pose = 8 end @moved[battler] = false @rtab ? cbs_update_phase4_step3(battler) : cbs_update_phase4_step3 end #-------------------------------------------------------------------------- # * Hit Animation #-------------------------------------------------------------------------- alias cbs_update_phase4_step4 update_phase4_step4 def update_phase4_step4(battler = @active_battler) for target in (@rtab ? battler.target : @target_battlers) damage = (@rtab ? target.damage[battler] : target.damage) if damage.is_a?(Numeric) and damage > 0 @spriteset.battler(target).pose = 1 end end @rtab ? cbs_update_phase4_step4(battler) : cbs_update_phase4_step4 end #-------------------------------------------------------------------------- # * Victory Animation #-------------------------------------------------------------------------- alias cbs_start_phase5 start_phase5 def start_phase5 for actor in $game_party.actors return if @spriteset.battler(actor).moving end for actor in $game_party.actors unless actor.dead? @spriteset.battler(actor).pose = 9 @spriteset.battler(actor).freeze end end cbs_start_phase5 end #-------------------------------------------------------------------------- # * Change Arrow Viewport #-------------------------------------------------------------------------- alias cbs_start_enemy_select start_enemy_select def start_enemy_select cbs_start_enemy_select @enemy_arrow.dispose @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport2) @enemy_arrow.help_window = @help_window end end
#============================================================================== # ** Spriteset_Battle #==============================================================================
class Spriteset_Battle #-------------------------------------------------------------------------- # * Change Enemy Viewport #-------------------------------------------------------------------------- alias cbs_initialize initialize def initialize cbs_initialize @enemy_sprites = [] for enemy in $game_troop.enemies.reverse @enemy_sprites.push(Sprite_Battler.new(@viewport2, enemy)) end end #-------------------------------------------------------------------------- # * Find Sprite From Battler Handle #-------------------------------------------------------------------------- def battler(handle) for sprite in @actor_sprites + @enemy_sprites return sprite if sprite.battler == handle end return false end end
#============================================================================== # ** Arrow_Base #==============================================================================
class Arrow_Base < Sprite #-------------------------------------------------------------------------- # * Reposition Arrows #-------------------------------------------------------------------------- alias cbs_initialize initialize def initialize(viewport) cbs_initialize(viewport) self.ox = 14 # 32 self.oy = 10 # 40 end end | |
|
| |
Darkman974
Messages : 182 Points d'Aide : 222 Réputation : 14 Date d'inscription : 18/04/2012 Age : 26 Localisation : Devant mon ordinateur, ou ma PS3...
| |
| |
Kabuto
Messages : 176 Points d'Aide : 258 Réputation : 0 Date d'inscription : 18/03/2012 Age : 26 Localisation : Dans la fin du monde
| Sujet: Re: #Script de Combat 2.5 Mar 8 Mai - 17:31 | |
| | |
|
| |
Tm
Messages : 215 Points d'Aide : 327 Réputation : 9 Date d'inscription : 12/03/2012
| Sujet: Re: #Script de Combat 2.5 Mar 8 Mai - 19:28 | |
| | |
|
| |
Lucifer Uchiwa
Messages : 42 Points d'Aide : 58 Réputation : 0 Date d'inscription : 18/03/2012
| Sujet: Re: #Script de Combat 2.5 Mar 8 Mai - 19:32 | |
| TM ses dans quel language les script parce que ses pas du c++ ni du c nn? | |
|
| |
Tm
Messages : 215 Points d'Aide : 327 Réputation : 9 Date d'inscription : 12/03/2012
| Sujet: Re: #Script de Combat 2.5 Mar 8 Mai - 19:49 | |
| Je crois que c'est du RGSS, pas sûr ^^" | |
|
| |
Kabuto
Messages : 176 Points d'Aide : 258 Réputation : 0 Date d'inscription : 18/03/2012 Age : 26 Localisation : Dans la fin du monde
| Sujet: Re: #Script de Combat 2.5 Mar 8 Mai - 21:04 | |
| Dans quel dossier de script je voulais dire Tm. Sinon pour mettre un script sur un dossier je sais. ^^ | |
|
| |
Tm
Messages : 215 Points d'Aide : 327 Réputation : 9 Date d'inscription : 12/03/2012
| Sujet: Re: #Script de Combat 2.5 Mar 8 Mai - 21:23 | |
| Ah, bah il y a pas de dossier ^^" Si tu télécharge une démo ou autres les script se trouveront toujours dans "l'Editeur de script" | |
|
| |
Darkman974
Messages : 182 Points d'Aide : 222 Réputation : 14 Date d'inscription : 18/04/2012 Age : 26 Localisation : Devant mon ordinateur, ou ma PS3...
| Sujet: Re: #Script de Combat 2.5 Mer 9 Mai - 13:01 | |
| Le langage du script c'est du Ruby.......... ok ok, je sors ...... (silence)...... | |
|
| |
Lucifer Uchiwa
Messages : 42 Points d'Aide : 58 Réputation : 0 Date d'inscription : 18/03/2012
| Sujet: Re: #Script de Combat 2.5 Mer 9 Mai - 13:09 | |
| | |
|
| |
Darkman974
Messages : 182 Points d'Aide : 222 Réputation : 14 Date d'inscription : 18/04/2012 Age : 26 Localisation : Devant mon ordinateur, ou ma PS3...
| Sujet: Re: #Script de Combat 2.5 Mer 9 Mai - 13:39 | |
| Dr ^^ Bon, moi aussi je vais m'inventer une écriture :p Donc moi maintenant c'est gras italique droite :p | |
|
| |
Tm
Messages : 215 Points d'Aide : 327 Réputation : 9 Date d'inscription : 12/03/2012
| |
| |
Darkman974
Messages : 182 Points d'Aide : 222 Réputation : 14 Date d'inscription : 18/04/2012 Age : 26 Localisation : Devant mon ordinateur, ou ma PS3...
| Sujet: Re: #Script de Combat 2.5 Mer 9 Mai - 14:38 | |
| On a le droit de changer de couleur ?? Bah alors moi c'est : gras, italique, droite et vert ! J'adore le vert ! :p | |
|
| |
Kabuto
Messages : 176 Points d'Aide : 258 Réputation : 0 Date d'inscription : 18/03/2012 Age : 26 Localisation : Dans la fin du monde
| Sujet: Re: #Script de Combat 2.5 Mer 9 Mai - 16:36 | |
| Tout le monde devient fou avec cette nouvelle mode d'écrire autrement ... | |
|
| |
Tm
Messages : 215 Points d'Aide : 327 Réputation : 9 Date d'inscription : 12/03/2012
| Sujet: Re: #Script de Combat 2.5 Mer 9 Mai - 17:07 | |
| Ah, Darkman tu as réussis pour le script A-RPG ? ^^ | |
|
| |
Darkman974
Messages : 182 Points d'Aide : 222 Réputation : 14 Date d'inscription : 18/04/2012 Age : 26 Localisation : Devant mon ordinateur, ou ma PS3...
| |
| |
Tm
Messages : 215 Points d'Aide : 327 Réputation : 9 Date d'inscription : 12/03/2012
| Sujet: Re: #Script de Combat 2.5 Mer 9 Mai - 18:17 | |
| Ok, bon c'est génial alors | |
|
| |
Darkman974
Messages : 182 Points d'Aide : 222 Réputation : 14 Date d'inscription : 18/04/2012 Age : 26 Localisation : Devant mon ordinateur, ou ma PS3...
| |
| |
Contenu sponsorisé
| Sujet: Re: #Script de Combat 2.5 | |
| |
|
| |
| #Script de Combat 2.5 | |
|