Va-nu-pieds Lv.4
Age : 31 Inscrit le : 03/08/2009 Messages : 61
| Sujet: Script - Commande de combat [non resolu] Mar 18 Aoû 2009 - 15:35 | |
| Salut, Je voudrais savoir comment faire pour ajouter une compétence au menu de combat (Attaquer, Compétence, Défense, Fuite), genre, ajouter un autre choix qui porte le nom d'une compétence et qui garde le même effet que la compétence choisie. Merci d'avance !
Edit: Pouvez-vous me dire quel commande dois-je utiliser en script, pour utiliser une compétence ?
Dernière édition par Angellan le Ven 12 Fév 2010 - 22:33, édité 2 fois (Raison : Edit du titre) |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: Script - Commande de combat [non resolu] Mar 18 Aoû 2009 - 16:00 | |
| Un jour j'avais essayé de bidouiller ces commandes la. J'avais trouvé : def update_actor_command_selection du script Scene_Battle et le script Window_ActorCommand.
Mais bon après je ne peux pas plus t'aider ( mes compétences au ruby étant très limitées x) ) |
|
Va-nu-pieds Lv.4
Age : 31 Inscrit le : 03/08/2009 Messages : 61
| Sujet: Re: Script - Commande de combat [non resolu] Mar 18 Aoû 2009 - 16:18 | |
| C'est exactement dans ces trois scripts que j'ai fais mes recherches : -J'ai voulu ajouter un autre choix dans Window_ActorCommand en remplaçant la méthode setup(actor) par celle-ci : - Code:
-
def setup(actor) s1 = Vocab::attack s2 = Vocab::skill s3 = Vocab::guard s4 = Vocab::item s5 = "Nouveau choix" if actor.class.skill_name_valid # Skill command name is valid? s2 = actor.class.skill_name # Replace command name end @commands = [s1, s2, s3, s4, s5] @item_max = 5 refresh self.index = 0 end problème => bien que la commande existe, le nom du choix n'apparait pas. Mais bon, j'ai dis que ce n'était pas grave, je trouverais bien une façon de le faire apparaître. -Après j'ai regardé dans le script Game_Battler, où j'ai vu cette méthode : - Code:
-
#-------------------------------------------------------------------------- # * Apply Skill Effects # user : Skill user # skill : skill #-------------------------------------------------------------------------- def skill_effect(user, skill) clear_action_results unless skill_effective?(user, skill) @skipped = true return end if rand(100) >= calc_hit(user, skill) # determine hit ratio @missed = true return end if rand(100) < calc_eva(user, skill) # determine evasion rate @evaded = true return end make_obj_damage_value(user, skill) # calculate damage make_obj_absorb_effect(user, skill) # calculate absorption effect execute_damage(user) # damage reflection if skill.physical_attack and @hp_damage == 0 # physical no damage? return end apply_state_changes(skill) # state change end #--------------------------------------------------------------------------
-Puis j'ai regardé dans le script Scene_Battle, et j'ai ajouté un autre choix dans la méthode update_actor_command_selection, et j'y ai mis cette commande : - Code:
-
$game_battler.skill_effect(1,2) voilà toute la méthode maintenant : - Code:
-
#-------------------------------------------------------------------------- # * Update Actor Command Selection #-------------------------------------------------------------------------- def update_actor_command_selection if Input.trigger?(Input::B) Sound.play_cancel prior_actor elsif Input.trigger?(Input::C) case @actor_command_window.index when 0 # Attack Sound.play_decision @active_battler.action.set_attack start_target_enemy_selection when 1 # Skill Sound.play_decision start_skill_selection when 2 # Guard Sound.play_decision @active_battler.action.set_guard next_actor when 3 # Item Sound.play_decision start_item_selection when 4 # Nouveau choix Sound.play_decision $game_battler.skill_effect(1, 2) next_actor end end end #--------------------------------------------------------------------------
Problème => Quand je lance le jeu, en moment où je choisi le choix 'Nouveau choix', on me mets une erreur : script 'Scene_Battle'line 325: No MethodError occured. undefined methode 'skill_effect' for nil:NilClass S'il vous plaît que dois je faire |
|
| Sujet: Re: Script - Commande de combat [non resolu] | |
| |
|