|
| Combat de dos avec jauges [Résolu] | |
| Auteur | Message |
---|
Mimiko Ninja (niveau 5)
Messages postés : 229 Date d'inscription : 31/08/2011 Jauge LPC :
| Sujet: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 16:50 | |
| Bien le bonjour tous le monde, voilà j'utilise un petit script pour faire un combat vus de dos comme celui-ci - Spoiler:
Et j'aimerais savoir si il existerai un moyen de faire un interface de combat à la façon de final fantasy ou rpg maker 2003 (avec les fenêtre, les jauge etc...) sans touché le combat vus de dos je vous remercie en avance. |
| | | Invité Invité
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 17:24 | |
| Aïe du XP =/, personnellement je ne pourrais pas t'aider pour ce genre de problème (c'est XP), mais bon j'espère qu'une personne pourra accomplir ta demande. =) |
| | | lidenvice Ancien staffeux
Messages postés : 1955 Date d'inscription : 18/10/2011 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 17:31 | |
| En premier lieu il faudrait déja le script concerné pour qu'on aie une idée de comment le modifier, ensuite, je pense (même si je suis pas rubyste) qu'il suffit de trouver un autre script de combat comprenant les jauges, récupérer la partie avec les jauges et éditer ton script vu de dos.
Je pense qu'avec un peu d'application et quelques essais c'est faisable même avec un niveau ruby peu élevé. |
| | | Koji Paysan (niveau 3)
Messages postés : 22 Date d'inscription : 24/10/2011 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 17:41 | |
| Est ce que c'est pour VX ? si oui t'a ça: https://www.youtube.com/watch?v=pa986eQjyws&feature=related
bah c'est pas exactement comme celui que tu demande mais c'est du "backview" je vais voir où je peux trouvé le script... je suis désolé mais la dernière fois il était dans un forum anglais mais ils l'ont enlever pour de sombre raison :/ désolé.
|
| | | Mimiko Ninja (niveau 5)
Messages postés : 229 Date d'inscription : 31/08/2011 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 17:52 | |
| - Garruk a écrit:
- Aïe du XP =/, personnellement je ne pourrais pas t'aider pour ce genre de problème (c'est XP), mais bon j'espère qu'une personne pourra accomplir ta demande. =)
ce n'est pas grave, Garruk ^^" oui je j’espère on pourras m'aider pour ma demande. - lidenvice a écrit:
- En premier lieu il faudrait déja le script concerné pour qu'on aie une idée de comment le modifier, ensuite, je pense (même si je suis pas rubyste) qu'il suffit de trouver un autre script de combat comprenant les jauges, récupérer la partie avec les jauges et éditer ton script vu de dos.
Je pense qu'avec un peu d'application et quelques essais c'est faisable même avec un niveau ruby peu élevé. Voilà le script que tu ma demandais Lidenvice, j’espère avec ta méthode que tu réussiras ^^" (je l'ai un peu modifié le script car il y avait des erreurs, les personnages sont tous collé ) - Spoiler:
#------------------------------------------------------------------------------ #Combat vu de face #==============================================================================
module SDVA X_LINE = 155 # ???????????? *position "horizontal" de l'équipe sur la map de combat Y_LINE = 315# ???????????? *position "vertical" de l'équipe sur la map combat X_SPACE = 100# ????????????? *espace entre les membres de l'équipe (Horizontal) Y_SPACE =0# ????????????? *espace entre les membres de l'équipe (vertical) X_POSITION = 25 # ??[????????]????* espace du millieu de l'équipe (Horizontal) (entre les membres 2 et 3 de l'équipe) Y_POSITION = 0 # ??[????????]???? *espace du millieu de l'équipe (Vertical) (entre les membres 2 et 3 de l'équipe) ATTACK_MOVE = true # ???????????( true / false ) mouvement lors du combat (style FF) (true=activer, false=désactiver) SKILL_MOVE = true # ??????????????( true / false ) ITEM_MOVE = false # ???????????????( true / false ) MOVE_STEP = 1 # ???? MOVE_PIXEL = 55 # ??????????? distance parcourue lors du déplacement en combat (uniquement si ATTACK_MOVE est activer (true)) PARTY_POS = 3 # ?????????( 0:? / 1:? / 2:? / 3:? ) position de l'équipe au depart du combt (0=haut, 1=droite, 2=gauche, 3=bas) 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.y = y_pos >= 0 ? y_pos : 0
# ?????????????????? @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
- Koji a écrit:
- Est ce que c'est pour VX ? si oui t'a ça: https://www.youtube.com/watch?v=pa986eQjyws&feature=related
bah c'est pas exactement comme celui que tu demande mais c'est du "backview" je vais voir où je peux trouvé le script... je suis désolé mais la dernière fois il était dans un forum anglais mais ils l'ont enlever pour de sombre raison :/ désolé. ? Non Koji c'est sur rmxp, ce n'est pas grave, je viens de posté le script que lidenvice m'a demander
Dernière édition par Mimiko le Sam 10 Déc 2011 - 18:02, édité 2 fois |
| | | Elekami Fondateur
Messages postés : 19071 Date d'inscription : 19/07/2008 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 17:54 | |
| Koji: Suffit à peine de lire pour voir que c´est du XP...
Mimiko: Tiens, j´utilisais justement ce système de combat pour Darkness Chronicles. Tu peux ajouter des jauges ATB en trouvant le script nécessaire sans que cela change ton système de combat, puisque je l´avais fait, malheureusement je n´ai plus tous ces scripts sous la main, désolé! |
| | | Mimiko Ninja (niveau 5)
Messages postés : 229 Date d'inscription : 31/08/2011 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 18:10 | |
| - Elekami a écrit:
Mimiko: Tiens, j´utilisais justement ce système de combat pour Darkness Chronicles. Tu peux ajouter des jauges ATB en trouvant le script nécessaire sans que cela change ton système de combat, puisque je l´avais fait Il doit être bien ce script si il ne touche pas le combat vu de face - Elekami a écrit:
- malheureusement je n´ai plus tous ces scripts sous la main, désolé!
ce n'est pas grave Elekami, on trouvera un moyen de le faire... (pour l'instant je recherche dans mon coté le script en question, et trouvé d'autre script pour l'interface de combat et faire comme lidenvice il a dit ^^" ) |
| | | lidenvice Ancien staffeux
Messages postés : 1955 Date d'inscription : 18/10/2011 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 18:11 | |
| Essayes d'ajouter ce script après le tient et fait des tests: - Code:
-
# Combat ATB avec jauge HP, MP, ATB # Version inconnue # Créateur inconnu, modifié par Squall Lionheart # Date inconnue
# Pour changer la couleur de la jauge HP, # modifiez les paramètres lignes 965 et 966 # avec hp_color_1 qui est la couleur du début de la jauge # et hp_color_2 qui est la couleur de fin de la jauge # Même chose pour les MP, lignes 987 et 988
module Battle_End_Recovery
module Scene_Battle_Module
# ‰ñ•œ—¦•Ï”‚ÌID @@recovery_rate_variable_id = nil
# ‰ñ•œ—¦‚̎擾 def battle_end_recovery_rate if @@recovery_rate_variable_id.nil? @@recovery_rate_variable_id = $data_system.variables.index 'í“Œã‚̉ñ•œ—¦' if @@recovery_rate_variable_id.nil? @@recovery_rate_variable_id = false end end return 0 unless @@recovery_rate_variable_id return $game_variables[@@recovery_rate_variable_id] end
# í“Œã‚̉ñ•œˆ— def battle_end_recovery
# ‰ñ•œ—¦ recovery_rate = battle_end_recovery_rate
# ‰ñ•œ—¦•Ï”‚ª‚OˆÈŠO‚©‚ƒAƒNƒ^[‚ª‘‚µ‚Ä‚¢‚éê‡Aí“Œã‚̉ñ•œˆ—‚ðs‚¤ if recovery_rate != 0 and not actor.dead?
# ƒp[ƒeƒB‚̃AƒNƒ^[–ˆ‚Ƀ‹[ƒv $game_party.actors.each do |actor|
# ‰ñ•œ—ÊŒvŽZ recovery_hp = (actor.maxhp / 100.0 * recovery_rate).truncate recovery_sp = (actor.maxsp / 100.0 * recovery_rate).truncate
# ŽÀۂɉñ•œ actor.hp += recovery_hp actor.sp += recovery_sp
# ƒAƒjƒ[ƒVƒ‡ƒ“Ý’è actor.damage = - recovery_hp actor.damage_pop = true
end
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðXV @status_window.refresh
end end
end # module Scene_Battle_Module end # module Battle_End_Recovery
#------------------------------ # 퓃V[ƒ“‚ÌÄ’è‹` #------------------------------ class Scene_Battle
# Scene_Battle—pƒ‚ƒWƒ…[ƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh include Battle_End_Recovery::Scene_Battle_Module
# Œ³‚̃tƒF[ƒY‚TŠJŽn‚É•Ê–¼‚ð‚‚¯‚é alias battle_end_recovery_original_start_phase5 start_phase5
# ƒtƒF[ƒY‚TŠJŽn‚ðÄ’è‹` def start_phase5
# í“Œã‚̉ñ•œˆ—‚ðŒÄ‚Ño‚· battle_end_recovery
# Œ³‚̃tƒF[ƒY‚TŠJŽn‚ðŒÄ‚Ño‚· battle_end_recovery_original_start_phase5
end end
# Battle_End_Recovery # ¥£¥ XRXS_BP10. LEVEL UP!ƒEƒBƒ“ƒhƒE ¥£¥ # by ÷‰ë Ý“y
$data_system_level_up_se = "" # ƒŒƒxƒ‹ƒAƒbƒvSEB""‚Å–³‚µB
#============================================================================== # ¡ Window_LevelUpWindow #------------------------------------------------------------------------------ # @ƒoƒgƒ‹I—¹ŽžAƒŒƒxƒ‹ƒAƒbƒv‚µ‚½ê‡‚ɃXƒe[ƒ^ƒX‚ð•\Ž¦‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·B #============================================================================== class Window_LevelUpWindow < Window_Base #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» #-------------------------------------------------------------------------- def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int) super(0, 128, 160, 192) self.contents = Bitmap.new(width - 32, height - 32) self.visible = false refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int) end #-------------------------------------------------------------------------- # œ ƒŠƒtƒŒƒbƒVƒ… #-------------------------------------------------------------------------- def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int) self.contents.clear self.contents.font.color = system_color self.contents.font.name = "Black Rose" self.contents.font.size = 14 self.contents.draw_text( 0, 0, 160, 24, "Niveau plus!!") self.contents.font.size = 18 self.contents.draw_text( 0, 28, 160, 24, $data_system.words.hp) self.contents.draw_text( 0, 50, 160, 24, $data_system.words.sp) self.contents.font.size = 14 self.contents.draw_text( 0, 72, 80, 24, $data_system.words.str) self.contents.draw_text( 0, 94, 80, 24, $data_system.words.dex) self.contents.draw_text( 0, 116, 80, 24, $data_system.words.agi) self.contents.draw_text( 0, 138, 80, 24, $data_system.words.int) self.contents.draw_text(92, 0, 128, 24, "¨") self.contents.draw_text(76, 28, 128, 24, "=") self.contents.draw_text(76, 50, 128, 24, "=") self.contents.draw_text(76, 72, 128, 24, "=") self.contents.draw_text(76, 94, 128, 24, "=") self.contents.draw_text(76, 116, 128, 24, "=") self.contents.draw_text(76, 138, 128, 24, "=") self.contents.font.color = normal_color self.contents.draw_text( 0, 0, 88, 24, last_lv.to_s, 2) self.contents.draw_text( 0, 28, 72, 24, "+" + up_hp.to_s, 2) self.contents.draw_text( 0, 50, 72, 24, "+" + up_sp.to_s, 2) self.contents.draw_text( 0, 72, 72, 24, "+" + up_str.to_s, 2) self.contents.draw_text( 0, 94, 72, 24, "+" + up_dex.to_s, 2) self.contents.draw_text( 0, 116, 72, 24, "+" + up_agi.to_s, 2) self.contents.draw_text( 0, 138, 72, 24, "+" + up_int.to_s, 2) self.contents.font.size = 20 self.contents.draw_text( 0, 0, 128, 24, actor.level.to_s, 2) self.contents.draw_text( 0, 26, 128, 24, actor.maxhp.to_s, 2) self.contents.draw_text( 0, 48, 128, 24, actor.maxsp.to_s, 2) self.contents.draw_text( 0, 70, 128, 24, actor.str.to_s, 2) self.contents.draw_text( 0, 92, 128, 24, actor.dex.to_s, 2) self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2) self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2) end end #============================================================================== # ¡ Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- # œ ’ljÁEŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï” #-------------------------------------------------------------------------- attr_accessor :level_up_flags # LEVEL UP!•\Ž¦ end #============================================================================== # ¡ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # œ ’ljÁEŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï” #-------------------------------------------------------------------------- attr_accessor :exp_gain_ban # EXPŽæ“¾ˆêŽž‹ÖŽ~ #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» #-------------------------------------------------------------------------- alias xrxs_bp10_initialize initialize def initialize @exp_gain_ban = false xrxs_bp10_initialize end #-------------------------------------------------------------------------- # œ ƒXƒe[ƒg [EXP ‚ðŠl“¾‚Å‚«‚È‚¢] ”»’è #-------------------------------------------------------------------------- alias xrxs_bp10_cant_get_exp? cant_get_exp? def cant_get_exp? if @exp_gain_ban == true return true else return xrxs_bp10_cant_get_exp? end end end #============================================================================== # ¡ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # œ ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒYŠJŽn #-------------------------------------------------------------------------- alias xrxs_bp10_start_phase5 start_phase5 def start_phase5 # EXP Šl“¾‹ÖŽ~ for i in 0...$game_party.actors.size $game_party.actors[i].exp_gain_ban = true end xrxs_bp10_start_phase5 # EXP Šl“¾‹ÖŽ~‚̉ðœ for i in 0...$game_party.actors.size $game_party.actors[i].exp_gain_ban = false end # EXP‚ð‰Šú‰» @exp_gained = 0 for enemy in $game_troop.enemies # Šl“¾ EXP‚ð’ljÁ # ƒGƒlƒ~[‚ª‰B‚êó‘Ô‚Å‚È‚¢ê‡ @exp_gained += enemy.exp if not enemy.hidden end # Ý’è @phase5_step = 0 @exp_gain_actor = -1 # ƒŠƒUƒ‹ƒgƒEƒBƒ“ƒhƒE‚ð•\Ž¦ @result_window.y -= 64 @result_window.visible = true # ƒŒƒxƒ‹ƒAƒbƒv”»’è‚Ö phase5_next_levelup end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒY) #-------------------------------------------------------------------------- alias xrxs_bp10_update_phase5 update_phase5 def update_phase5 case @phase5_step when 1 update_phase5_step1 else xrxs_bp10_update_phase5 # ƒŒƒxƒ‹ƒAƒbƒv‚µ‚Ä‚¢‚éꇂ͋§ƒoƒgƒ‹I—¹ battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0 end end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒY 1 : ƒŒƒxƒ‹ƒAƒbƒv) #-------------------------------------------------------------------------- def update_phase5_step1 # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.trigger?(Input::C) # ƒEƒBƒ“ƒhƒE‚ð•Â‚‚ÄŽŸ‚̃AƒNƒ^[‚Ö @levelup_window.visible = false if @levelup_window != nil @status_window.level_up_flags[@exp_gain_actor] = false phase5_next_levelup end end #-------------------------------------------------------------------------- # œ ŽŸ‚̃AƒNƒ^[‚̃Œƒxƒ‹ƒAƒbƒv•\Ž¦‚Ö #-------------------------------------------------------------------------- def phase5_next_levelup begin # ŽŸ‚̃AƒNƒ^[‚Ö @exp_gain_actor += 1 # ÅŒã‚̃AƒNƒ^[‚Ìê‡ if @exp_gain_actor >= $game_party.actors.size # ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒYŠJŽn @phase5_step = 0 return end actor = $game_party.actors[@exp_gain_actor] if actor.cant_get_exp? == false # Œ»Ý‚Ì”\—Í’l‚ð•ÛŽ last_level = actor.level last_maxhp = actor.maxhp last_maxsp = actor.maxsp last_str = actor.str last_dex = actor.dex last_agi = actor.agi last_int = actor.int # ŒoŒ±’lŽæ“¾‚ÌŒˆ’è“IuŠÔ(“ä actor.exp += @exp_gained # ”»’è if actor.level > last_level # ƒŒƒxƒ‹ƒAƒbƒv‚µ‚½ê‡ @status_window.level_up(@exp_gain_actor) if $data_system_level_up_se != "" Audio.se_stop Audio.se_play($data_system_level_up_se) end if $data_system_level_up_me != "" Audio.me_stop end @levelup_window = Window_LevelUpWindow.new(actor, last_level, actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str, actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int) @levelup_window.x = 160 * @exp_gain_actor @levelup_window.visible = true @phase5_wait_count = 40 @phase5_step = 1 # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ… @status_window.refresh return end end end until false end end # ¥£¥ XRXS_17. ƒXƒŠƒbƒvƒ_ƒ[ƒW–hŒä^Œø‰Ê—ÊÚ׉» ver.1.51 ¥£¥ # by ÷‰ë Ý“y, fukuyama
#============================================================================== # ¡ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # œ ƒXƒŠƒbƒvƒ_ƒ[ƒW‚ÌŒø‰Ê“K—p #-------------------------------------------------------------------------- alias xrxs_bp7_slip_damage_effect slip_damage_effect def slip_damage_effect # ”’l‚̉Šú‰» slip_damage_percent = 0 slip_damage_plus = 0 # Œ»Ý•t‰Á‚³‚ê‚Ä‚¢‚éƒXƒe[ƒg‚Ì’†‚©‚çƒXƒŠƒbƒvƒ_ƒ[ƒW—L‚è‚̃‚ƒm‚ð’T‚· for i in @states if $data_states[i].slip_damage # ‚»‚̃Xƒe[ƒg‚ªŽ‚Á‚Ä‚¢‚éƒXƒŠƒbƒvƒ_ƒ[ƒW‚Ì # Lvƒvƒ‰ƒXƒXƒe[ƒg‚Ü‚½‚ÍLvƒ}ƒCƒiƒXƒXƒe[ƒg‚ð”»’èB for j in $data_states[i].plus_state_set if $data_states[j] != nil if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|“)/ slip_damage_percent += $1.to_i elsif $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/ slip_damage_plus += $1.to_i end end end for j in $data_states[i].minus_state_set if $data_states[j] != nil if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|“)/ slip_damage_percent -= $1.to_i elsif $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/ slip_damage_plus -= $1.to_i end end end end end if slip_damage_percent == 0 and slip_damage_plus == 0 xrxs_bp7_slip_damage_effect else # –h‹ï‚ªƒXƒŠƒbƒv–hŒä‚ª‚ ‚éꇂ𔻒è for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] next if armor == nil for j in armor.guard_state_set if $data_states[j] != nil if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|“)/ if slip_damage_percent > 0 slip_damage_percent = [slip_damage_percent - $1.to_i, 0].max end end if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/ if slip_damage_percent > 0 slip_damage_plus = [slip_damage_plus - $1.to_i, 0].max end end end end end # ƒ_ƒ[ƒW‚ðÝ’è self.damage = self.maxhp * slip_damage_percent / 100 + slip_damage_plus # •ªŽU if self.damage.abs > 0 amp = [self.damage.abs * 15 / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end # HP ‚©‚çƒ_ƒ[ƒW‚ðŒ¸ŽZ self.hp -= self.damage # ƒƒ\ƒbƒhI—¹ return true end end end # ¥£¥ XRXS_BP 1. CP§“±“ü ver.15 ¥£¥ # by ÷‰ë Ý“y, ˜aŠó, Jack-R
#============================================================================== # ¡ Scene_Battle_CP #============================================================================== class Scene_Battle_CP #-------------------------------------------------------------------------- # œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï” #-------------------------------------------------------------------------- attr_accessor :stop # CP‰ÁŽZƒXƒgƒbƒv #---------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‚̉Šú‰» #---------------------------------------------------------------------------- def initialize @battlers = [] @cancel = false @agi_total = 0 # ”z—ñ @count_battlers ‚ð‰Šú‰» @count_battlers = [] # ƒGƒlƒ~[‚ð”z—ñ @count_battlers ‚ɒljÁ for enemy in $game_troop.enemies @count_battlers.push(enemy) end # ƒAƒNƒ^[‚ð”z—ñ @count_battlers ‚ɒljÁ for actor in $game_party.actors @count_battlers.push(actor) end for battler in @count_battlers @agi_total += battler.agi end for battler in @count_battlers battler.cp = [[65535 * (rand(15) + 85) / 100 * battler.agi / @agi_total * 4, 0].max, 65535].min end end #---------------------------------------------------------------------------- # œ CPƒJƒEƒ“ƒg‚ÌŠJŽn #---------------------------------------------------------------------------- def start if @cp_thread != nil then return end @cancel = false @stop = false # ‚±‚±‚©‚çƒXƒŒƒbƒh @cp_thread = Thread.new do while @cancel != true if @stop != true self.update # XV sleep(0.05) end end end # ‚±‚±‚܂ŃXƒŒƒbƒh end #---------------------------------------------------------------------------- # œ CPƒJƒEƒ“ƒgƒAƒbƒv #---------------------------------------------------------------------------- def update if @count_battlers != nil then for battler in @count_battlers # s“®o—ˆ‚È‚¯‚ê‚Ζ³Ž‹ if battler.dead? == true #or battler.movable? == false then battler.cp = 0 next end # ‚±‚±‚Ì 1.3‚ð•Ï‚¦‚邱‚Æ‚Å«ƒXƒs[ƒh‚ð•ÏX‰Â”\B‚½‚¾‚µ”“_‚ÍŽg—p‚·‚邱‚ÆB battler.cp = [[battler.cp + 1.3 * 4096 * battler.agi / @agi_total, 0].max, 65535].min end end end #---------------------------------------------------------------------------- # œ CPƒJƒEƒ“ƒg‚ÌŠJŽn #---------------------------------------------------------------------------- def stop @cancel = true if @cp_thread != nil then @cp_thread.join @cp_thread = nil end end end #============================================================================== # ¡ Game_Battler #============================================================================== class Game_Battler attr_accessor :now_guarding # Œ»Ý–hŒä’†ƒtƒ‰ƒO attr_accessor :cp # Œ»ÝCP attr_accessor :slip_state_update_ban # ƒXƒŠƒbƒvEƒXƒe[ƒgŽ©“®ˆ—‚Ì‹ÖŽ~ #-------------------------------------------------------------------------- # œ ƒRƒ}ƒ“ƒh“ü—͉”\”»’è #-------------------------------------------------------------------------- def inputable? return (not @hidden and restriction <= 1 and @cp >=65535) end #-------------------------------------------------------------------------- # œ ƒXƒe[ƒg [ƒXƒŠƒbƒvƒ_ƒ[ƒW] ”»’è #-------------------------------------------------------------------------- alias xrxs_bp1_slip_damage? slip_damage? def slip_damage? return false if @slip_state_update_ban return xrxs_bp1_slip_damage? end #-------------------------------------------------------------------------- # œ ƒXƒe[ƒgŽ©‘R‰ðœ (ƒ^[ƒ“‚²‚ƂɌĂÑo‚µ) #-------------------------------------------------------------------------- alias xrxs_bp1_remove_states_auto remove_states_auto def remove_states_auto return if @slip_state_update_ban xrxs_bp1_remove_states_auto end end #============================================================================== # ¡ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # œ ƒZƒbƒgƒAƒbƒv #-------------------------------------------------------------------------- alias xrxs_bp1_setup setup def setup(actor_id) xrxs_bp1_setup(actor_id) @hate = 100 # init-value is 100 @cp = 0 @now_guarding = false @slip_state_update_ban = false end end #============================================================================== # ¡ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» #-------------------------------------------------------------------------- alias xrxs_bp1_initialize initialize def initialize(troop_id, member_index) xrxs_bp1_initialize(troop_id, member_index) @hate = 100 # init-value is 100 @cp = 0 @now_guarding = false @slip_state_update_ban = false end end #============================================================================== # ¡ Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- # œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï” #-------------------------------------------------------------------------- attr_accessor :update_cp_only # CPƒ[ƒ^[‚Ì‚Ý‚ÌXV #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» #-------------------------------------------------------------------------- alias xrxs_bp1_initialize initialize def initialize @update_cp_only = false xrxs_bp1_initialize end #-------------------------------------------------------------------------- # œ ƒŠƒtƒŒƒbƒVƒ… #-------------------------------------------------------------------------- alias xrxs_bp1_refresh refresh def refresh if @update_cp_only == false xrxs_bp1_refresh end for i in 0...$game_party.actors.size actor = $game_party.actors[i] actor_x = i * 160 + 4 draw_actor_cp_meter(actor, actor_x, 96, 120, 0) end end #-------------------------------------------------------------------------- # œ CPƒ[ƒ^[ ‚Ì•`‰æ #-------------------------------------------------------------------------- def draw_actor_cp_meter(actor, x, y, width = 156, type = 0) self.contents.font.color = system_color self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255)) if actor.cp == nil actor.cp = 0 end w = width * [actor.cp,65535].min / 65535 self.contents.fill_rect(x, y+28, w,1, Color.new(255, 255, 128, 255)) self.contents.fill_rect(x, y+29, w,1, Color.new(255, 255, 0, 255)) self.contents.fill_rect(x, y+30, w,1, Color.new(192, 192, 0, 255)) self.contents.fill_rect(x, y+31, w,1, Color.new(128, 128, 0, 255)) end end #============================================================================== # ¡ Scene_Battle #============================================================================== class Scene_Battle # ‚±‚±‚ÉŒø‰Ê‰¹‚ðÝ’è‚·‚é‚ÆAƒAƒNƒ^[ƒRƒ}ƒ“ƒh‚ªƒ|ƒbƒv‚µ‚½‚Æ‚«‚ÉŒø‰Ê‰¹‚ðÄ $data_system_command_up_se = "" #-------------------------------------------------------------------------- # œ ƒoƒgƒ‹I—¹ # result : Œ‹‰Ê (0:Ÿ—˜ 1:”s–k 2:“¦‘–) #-------------------------------------------------------------------------- alias xrxs_bp1_battle_end battle_end def battle_end(result) # CPƒJƒEƒ“ƒg’âŽ~ @cp_thread.stop xrxs_bp1_battle_end(result) end #-------------------------------------------------------------------------- # œ ƒvƒŒƒoƒgƒ‹ƒtƒF[ƒYŠJŽn #-------------------------------------------------------------------------- alias xrxs_bp1_start_phase1 start_phase1 def start_phase1 @agi_total = 0 @cp_thread = Scene_Battle_CP.new # ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðÄì s1 = $data_system.words.attack s2 = $data_system.words.skill s3 = $data_system.words.guard s4 = $data_system.words.item @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4, "Fuir"]) @actor_command_window.y = 128 @actor_command_window.back_opacity = 160 @actor_command_window.active = false @actor_command_window.visible = false @actor_command_window.draw_item(4, $game_temp.battle_can_escape ? @actor_command_window.normal_color : @actor_command_window.disabled_color) xrxs_bp1_start_phase1 end #-------------------------------------------------------------------------- # œ ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒYŠJŽn #-------------------------------------------------------------------------- alias xrxs_bp1_start_phase2 start_phase2 def start_phase2 xrxs_bp1_start_phase2 @party_command_window.active = false @party_command_window.visible = false # ŽŸ‚Ö start_phase3 end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒY) #-------------------------------------------------------------------------- alias xrxs_bp1_update_phase2 update_phase2 def update_phase2 # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.trigger?(Input::C) # ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò case @party_command_window.index when 0 # 키 # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) @cp_thread.start # ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒtƒF[ƒYŠJŽn start_phase3 end return end xrxs_bp1_update_phase2 end #-------------------------------------------------------------------------- # œ ŽŸ‚̃AƒNƒ^[‚̃Rƒ}ƒ“ƒh“ü—Í‚Ö #-------------------------------------------------------------------------- def phase3_next_actor # ƒ‹[ƒv begin # ƒAƒNƒ^[‚Ì–¾–ŃGƒtƒFƒNƒg OFF if @active_battler != nil @active_battler.blink = false end # ÅŒã‚̃AƒNƒ^[‚Ìê‡ if @actor_index == $game_party.actors.size-1 # ƒƒCƒ“ƒtƒF[ƒYŠJŽn @cp_thread.start start_phase4 return end # ƒAƒNƒ^[‚̃Cƒ“ƒfƒbƒNƒX‚ði‚ß‚é @actor_index += 1 @active_battler = $game_party.actors[@actor_index] @active_battler.blink = true if @active_battler.inputable? == false @active_battler.current_action.kind = -1 end # ƒAƒNƒ^[‚ªƒRƒ}ƒ“ƒh“ü—Í‚ðŽó‚¯•t‚¯‚È‚¢ó‘Ô‚È‚ç‚à‚¤ˆê“x end until @active_battler.inputable? @cp_thread.stop # ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðƒZƒbƒgƒAƒbƒv @active_battler.now_guarding = false phase3_setup_command_window end #-------------------------------------------------------------------------- # œ ‘O‚̃AƒNƒ^[‚̃Rƒ}ƒ“ƒh“ü—Í‚Ö #-------------------------------------------------------------------------- def phase3_prior_actor # ƒ‹[ƒv begin # ƒAƒNƒ^[‚Ì–¾–ŃGƒtƒFƒNƒg OFF if @active_battler != nil @active_battler.blink = false end # ʼn‚̃AƒNƒ^[‚Ìê‡ if @actor_index == 0 # ʼn‚Ö–ß‚é start_phase3 return end # ƒAƒNƒ^[‚̃Cƒ“ƒfƒbƒNƒX‚ð–ß‚· @actor_index -= 1 @active_battler = $game_party.actors[@actor_index] @active_battler.blink = true # ƒAƒNƒ^[‚ªƒRƒ}ƒ“ƒh“ü—Í‚ðŽó‚¯•t‚¯‚È‚¢ó‘Ô‚È‚ç‚à‚¤ˆê“x end until @active_battler.inputable? @cp_thread.stop # ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðƒZƒbƒgƒAƒbƒv @active_battler.now_guarding = false phase3_setup_command_window end #-------------------------------------------------------------------------- # œ ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃ZƒbƒgƒAƒbƒv #-------------------------------------------------------------------------- alias xrxs_bp1_phase3_setup_command_window phase3_setup_command_window def phase3_setup_command_window # Œø‰Ê‰¹‚ÌÄ Audio.se_play($data_system_command_up_se) if $data_system_command_up_se != "" # –ß‚· xrxs_bp1_phase3_setup_command_window end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒtƒF[ƒY : Šî–{ƒRƒ}ƒ“ƒh) #-------------------------------------------------------------------------- alias xrxs_bsp1_update_phase3_basic_command update_phase3_basic_command def update_phase3_basic_command # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.trigger?(Input::C) # ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò case @actor_command_window.index when 4 # “¦‚°‚é if $game_temp.battle_can_escape # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒAƒNƒVƒ‡ƒ“‚ðÝ’è @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 4 # ŽŸ‚̃AƒNƒ^[‚̃Rƒ}ƒ“ƒh“ü—Í‚Ö phase3_next_actor else # ƒuƒU[ SE ‚ð‰‰‘t $game_system.se_play($data_system.buzzer_se) end return end end xrxs_bsp1_update_phase3_basic_command end #-------------------------------------------------------------------------- # œ ƒƒCƒ“ƒtƒF[ƒYŠJŽn #-------------------------------------------------------------------------- alias xrxs_bp1_start_phase4 start_phase4 def start_phase4 xrxs_bp1_start_phase4 # ƒGƒlƒ~[ƒAƒNƒVƒ‡ƒ“ì for enemy in $game_troop.enemies if enemy.cp < 65535 enemy.current_action.clear enemy.current_action.kind = -1 # ƒ^[ƒ“”ò‚΂µB next end enemy.make_action end # s“®‡˜ì make_action_orders end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 1 : ƒAƒNƒVƒ‡ƒ“€”õ) #-------------------------------------------------------------------------- alias xrxs_bp1_update_phase4_step1 update_phase4_step1 def update_phase4_step1 # ‰Šú‰» @phase4_act_continuation = 0 # Ÿ”s”»’è if judge @cp_thread.stop # Ÿ—˜‚Ü‚½‚Í”s–k‚Ìê‡ : ƒƒ\ƒbƒhI—¹ return end # –¢s“®ƒoƒgƒ‰[”z—ñ‚Ì擪‚©‚çŽæ“¾ @active_battler = @action_battlers[0] # ƒXƒe[ƒ^ƒXXV‚ðCP‚¾‚¯‚ÉŒÀ’èB @status_window.update_cp_only = true # ƒXƒe[ƒgXV‚ð‹ÖŽ~B @active_battler.slip_state_update_ban = true if @active_battler != nil # –ß‚· xrxs_bp1_update_phase4_step1 # ‹ÖŽ~‚ð‰ðœ @status_window.update_cp_only = false @active_battler.slip_state_update_ban = false if @active_battler != nil end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 2 : ƒAƒNƒVƒ‡ƒ“ŠJŽn) #-------------------------------------------------------------------------- alias xrxs_bp1_update_phase4_step2 update_phase4_step2 def update_phase4_step2 # ‹§ƒAƒNƒVƒ‡ƒ“‚Å‚È‚¯‚ê‚Î unless @active_battler.current_action.forcing # CP‚ª‘«‚è‚Ä‚¢‚È‚¢ê‡ if @phase4_act_continuation == 0 and @active_battler.cp < 65535 @phase4_step = 6 return end # §–ñ‚ª [“G‚ð’ÊíUŒ‚‚·‚é] ‚© [–¡•û‚ð’ÊíUŒ‚‚·‚é] ‚Ìê‡ if @active_battler.restriction == 2 or @active_battler.restriction == 3 # ƒAƒNƒVƒ‡ƒ“‚ÉUŒ‚‚ðÝ’è @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 0 end # §–ñ‚ª [s“®‚Å‚«‚È‚¢] ‚Ìê‡ if @active_battler.restriction == 4 # ƒAƒNƒVƒ‡ƒ“‹§‘Îۂ̃oƒgƒ‰[‚ðƒNƒŠƒA $game_temp.forcing_battler = nil if @phase4_act_continuation == 0 and @active_battler.cp >= 65535 # ƒXƒe[ƒgŽ©‘R‰ðœ @active_battler.remove_states_auto # CPÁ”ï @active_battler.cp = [(@active_battler.cp - 65535),0].max # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ… @status_window.refresh end # ƒXƒeƒbƒv 1 ‚ɈÚs @phase4_step = 1 return end end # ƒAƒNƒVƒ‡ƒ“‚ÌŽí•Ê‚Å•ªŠò case @active_battler.current_action.kind when 0 # UŒ‚¥–hŒäE“¦‚°‚éE‰½‚à‚µ‚È‚¢Žž‚Ì‹¤’ÊÁ”ïCP @active_battler.cp -= 0 if @phase4_act_continuation == 0 when 1 # ƒXƒLƒ‹Žg—pŽž‚ÌÁ”ïCP @active_battler.cp -= 65535 if @phase4_act_continuation == 0 when 2 # ƒAƒCƒeƒ€Žg—pŽž‚ÌÁ”ïCP @active_battler.cp -= 65535 if @phase4_act_continuation == 0 when -1 # CP‚ª—‚Ü‚Á‚Ä‚¢‚È‚¢ @phase4_step = 6 return end # CP‰ÁŽZ‚ðˆêŽž’âŽ~‚·‚é @cp_thread.stop = true # ƒXƒe[ƒgŽ©‘R‰ðœ @active_battler.remove_states_auto xrxs_bp1_update_phase4_step2 end #-------------------------------------------------------------------------- # œ Šî–{ƒAƒNƒVƒ‡ƒ“ Œ‹‰Êì #-------------------------------------------------------------------------- alias xrxs_bp1_make_basic_action_result make_basic_action_result def make_basic_action_result # UŒ‚‚Ìê‡ if @active_battler.current_action.basic == 0 and @phase4_act_continuation == 0 @active_battler.cp -= 65535 # UŒ‚Žž‚ÌCPÁ”ï end # –hŒä‚Ìê‡ if @active_battler.current_action.basic == 1 and @phase4_act_continuation == 0 @active_battler.cp -= 32767 # –hŒäŽž‚ÌCPÁ”ï end # “G‚Ì“¦‚°‚é‚Ìê‡ if @active_battler.is_a?(Game_Enemy) and @active_battler.current_action.basic == 2 and @phase4_act_continuation == 0 @active_battler.cp -= 65535 # “¦‘–Žž‚ÌCPÁ”ï end # ‰½‚à‚µ‚È‚¢‚Ìê‡ if @active_battler.current_action.basic == 3 and @phase4_act_continuation == 0 @active_battler.cp -= 32767 # ‰½‚à‚µ‚È‚¢Žž‚ÌCPÁ”ï end # “¦‚°‚é‚Ìê‡ if @active_battler.current_action.basic == 4 and @phase4_act_continuation == 0 @active_battler.cp -= 65535 # “¦‘–Žž‚ÌCPÁ”ï # “¦‘–‰Â”\‚Å‚Í‚È‚¢ê‡ if $game_temp.battle_can_escape == false # ƒuƒU[ SE ‚ð‰‰‘t $game_system.se_play($data_system.buzzer_se) return end # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # “¦‘–ˆ— update_phase2_escape return end xrxs_bp1_make_basic_action_result end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 5 : ƒ_ƒ[ƒW•\Ž¦) #-------------------------------------------------------------------------- alias xrxs_bp1_update_phase4_step5 update_phase4_step5 def update_phase4_step5 # ƒXƒŠƒbƒvƒ_ƒ[ƒW if @active_battler.hp > 0 and @active_battler.slip_damage? @active_battler.slip_damage_effect @active_battler.damage_pop = true end xrxs_bp1_update_phase4_step5 end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 6 : ƒŠƒtƒŒƒbƒVƒ…) #-------------------------------------------------------------------------- alias xrxs_bp1_update_phase4_step6 update_phase4_step6 def update_phase4_step6 # CP‰ÁŽZ‚ðÄŠJ‚·‚é @cp_thread.stop = false # ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ð‰B‚· @help_window.visible = false xrxs_bp1_update_phase4_step6 end end # ¥£¥ XRXS_BP 7. ƒoƒgƒ‹ƒXƒe[ƒ^ƒXEƒNƒŠƒAƒfƒUƒCƒ“ ver.1.02 ¥£¥ # by ÷‰ë Ý“y, TOMY
#============================================================================== # ¡ Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- # œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï” #-------------------------------------------------------------------------- attr_accessor :update_cp_only # CPƒ[ƒ^[‚Ì‚Ý‚ÌXV #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» #-------------------------------------------------------------------------- alias xrxs_bp7_initialize initialize def initialize xrxs_bp7_initialize # «Full-View‚Ìꇂ͉º“ñs‚Ì # ‚ðÁ‚µ‚Ä‚‚¾‚³‚¢B #self.opacity = 0 #self.back_opacity = 0 end #-------------------------------------------------------------------------- # œ ƒŠƒtƒŒƒbƒVƒ… #-------------------------------------------------------------------------- alias xrxs_bp7_refresh refresh def refresh if @update_cp_only xrxs_bp7_refresh return end # •`ŽÊ‚ð‹ÖŽ~‚µ‚È‚ª‚ç–ß‚· @draw_ban = true xrxs_bp7_refresh # •`ŽÊ‚Ì‹ÖŽ~‚ð‰ðœ @draw_ban = false # •`ŽÊ‚ðŠJŽn @item_max = $game_party.actors.size for i in 0...$game_party.actors.size actor = $game_party.actors[i] actor_x = i * 160 + 21 # •àsƒLƒƒƒ‰ƒOƒ‰ƒtƒBƒbƒN‚Ì•`ŽÊ draw_actor_graphic(actor, actor_x - 9, 116) # HP/SPƒ[ƒ^[‚Ì•`ŽÊ draw_actor_hp_meter_line(actor, actor_x, 72, 96, 12) draw_actor_sp_meter_line(actor, actor_x, 104, 96, 12) # HP”’l‚Ì•`ŽÊ self.contents.font.size = 24 # HP/SP”’l‚Ì•Žš‚Ì‘å‚«‚³ self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color draw_shadow_text(actor_x-2, 58, 96, 24, actor.hp.to_s, 2) # SP”’l‚Ì•`ŽÊ self.contents.font.color = actor.sp == 0 ? knockout_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color draw_shadow_text(actor_x-2, 90, 96, 24, actor.sp.to_s, 2) # —pŒêuHPv‚Æ—pŒêuSPv‚Ì•`ŽÊ self.contents.font.size = 12 # —pŒêuHP/SPv‚Ì•Žš‚Ì‘å‚«‚³ self.contents.font.color = system_color # —pŒêuHP/SPv‚Ì•Žš‚ÌF draw_shadow_text(actor_x, 60, 96, 12, $data_system.words.hp) draw_shadow_text(actor_x, 92, 96, 12, $data_system.words.sp)
draw_actor_state(actor, actor_x, 100) end end end #============================================================================== # ¡ Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # œ HPƒ[ƒ^[ ‚Ì•`‰æ #-------------------------------------------------------------------------- def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4) w = width * actor.hp / actor.maxhp hp_color_1 = Color.new(255, 255, 0, 192) hp_color_2 = Color.new(0, 255, 50, 192) self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) x -= 1 y += (height/4).floor self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) x -= 1 y += (height/4).ceil self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) x -= 1 y += (height/4).ceil self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) end #-------------------------------------------------------------------------- # œ SPƒ[ƒ^[ ‚Ì•`‰æ #-------------------------------------------------------------------------- def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4) w = width * actor.sp / actor.maxsp hp_color_1 = Color.new( 100, 0, 255, 192) hp_color_2 = Color.new( 0, 50, 255, 192) self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) x -= 1 y += (height/4).floor self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) x -= 1 y += (height/4).ceil self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) x -= 1 y += (height/4).ceil self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) end #-------------------------------------------------------------------------- # œ –¼‘O‚Ì•`‰æ #-------------------------------------------------------------------------- alias xrxs_bp7_draw_actor_name draw_actor_name def draw_actor_name(actor, x, y) xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true end #-------------------------------------------------------------------------- # œ ƒXƒe[ƒg‚Ì•`‰æ #-------------------------------------------------------------------------- alias xrxs_bp7_draw_actor_state draw_actor_state def draw_actor_state(actor, x, y, width = 120) xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true end #-------------------------------------------------------------------------- # œ HP ‚Ì•`‰æ #-------------------------------------------------------------------------- alias xrxs_bp7_draw_actor_hp draw_actor_hp def draw_actor_hp(actor, x, y, width = 144) xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true end #-------------------------------------------------------------------------- # œ SP ‚Ì•`‰æ #-------------------------------------------------------------------------- alias xrxs_bp7_draw_actor_sp draw_actor_sp def draw_actor_sp(actor, x, y, width = 144) xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true end end #============================================================================== # ž ŠO•”ƒ‰ƒCƒuƒ‰ƒŠ #============================================================================== class Window_Base #-------------------------------------------------------------------------- # œ ƒ‰ƒCƒ“•`‰æ by ÷‰ë Ý“y #-------------------------------------------------------------------------- def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color) # •`ŽÊ‹——£‚ÌŒvŽZB‘å‚«‚ß‚É’¼ŠpŽž‚Ì’·‚³B distance = (start_x - end_x).abs + (start_y - end_y).abs # •`ŽÊŠJŽn if end_color == start_color for i in 1..distance x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i self.contents.fill_rect(x, y, width, width, start_color) end else for i in 1..distance x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i r = start_color.red * (distance-i)/distance + end_color.red * i/distance g = start_color.green * (distance-i)/distance + end_color.green * i/distance b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a)) end end end
#-------------------------------------------------------------------------- # œ ‰e•Žš•`‰æ by TOMY #-------------------------------------------------------------------------- def draw_shadow_text(x, y, width, height, string, align = 0) # Œ³‚ÌF‚ð•Û‘‚µ‚Ä‚¨‚ color = self.contents.font.color.dup # •Žš‚ʼne•`‰æ self.contents.font.color = Color.new(0, 0, 0) self.contents.draw_text(x + 2, y + 2, width, height, string, align) # Œ³‚ÌF‚É–ß‚µ‚Ä•`‰æ self.contents.font.color = color self.contents.draw_text(x, y, width, height, string, align) end end
Ca semble marcher correctement |
| | | Mimiko Ninja (niveau 5)
Messages postés : 229 Date d'inscription : 31/08/2011 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 18:52 | |
| Oui, sa fonctionne trés bien je viens de le testé et sa donne ceci - Spoiler:
|
| | | lidenvice Ancien staffeux
Messages postés : 1955 Date d'inscription : 18/10/2011 Jauge LPC :
| Sujet: Re: Combat de dos avec jauges [Résolu] Sam 10 Déc 2011 - 18:59 | |
| Donc c'est résolu et c'est tant mieux ^^
Je change le sujet pour qu'il soit plus explicite et je le classe. Merci pour votre attention. |
| | | Contenu sponsorisé
| Sujet: Re: Combat de dos avec jauges [Résolu] | |
| |
| | | |
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |