Poulet carnivore Lv.2
Inscrit le : 02/11/2011 Messages : 15
| Sujet: [Résolu] Demande de script: Multiples fonctions de compétences Mer 2 Nov 2011 - 17:41 | |
| Bonjour, Nature de la demande : En fait, ma demande est plus une modification qu'une demande de nouveau script. Type de script : Une modification de ce script: - Code:
-
# Enelvon's Skill Subsets v4.1 #Some credit should go to Dargor, as it was by studying his Custom Commands script #that I learned how to add/remove battle commands using a scripting section.
#Config
Allow_Skill = true #If Allow_Skill is set to true, the normal 'Skill' command will #be available. It will show all skills from all subsets. The #default is false. module SUBSETS
#Edit these to change the command names. You can have as many as you want. Subsets = ['Jump','Cover','Plunder','Blue','Magic', 'Dance','Dark','Skills','Sing','Transform'] #If you want actors to have subsets based on what skills they know, set this to #true. Else, set it to false and edit Subset_actors. Base_on_learned = true
#If Base_on_learned is false, edit these to change which actors have which #subsets. Be sure to add more arrays to it if you add more subsets! Subset_actors = [[1], [], [], [], [], [], [], [], [], []]
#Set this to true if you're using Dargor's Custom Commands script, to avoid #conflicts. Else, set it to false. Using_custom_commands = false end
class Game_Actor < Game_Battler
attr_reader :commands
alias enelvon_actors_setup setup
def setup(actor_id) enelvon_actors_setup(actor_id) actor = $data_actors[actor_id] s1 = Vocab::attack s2 = Vocab::skill s3 = Vocab::guard s4 = Vocab::item if self.class.skill_name_valid s2 = self.class.skill_name end if Allow_Skill == false @commands = [s1, s3, s4] elsif Allow_Skill == true @commands = [s1, s2, s3, s4] end end #-------------------------------------------------------------------------- # * Add Command #-------------------------------------------------------------------------- def add_command(index, command) return if @commands.include?(command) if command.is_a?(String) @commands.insert(index, command) elsif command.is_a?(Array) for i in 0...command.size @commands.insert(index+i, command[i]) end end end #-------------------------------------------------------------------------- # * Remove Command #-------------------------------------------------------------------------- def remove_command(command) if command.is_a?(String) @commands.delete(command) elsif command.is_a?(Array) for i in command @commands.delete(i) end end end end
class Window_ActorCommand < Window_Command #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(128, [], 1, 4) self.active = false end #-------------------------------------------------------------------------- # * Setup # actor : actor #-------------------------------------------------------------------------- def setup(actor) @commands = actor.commands @item_max = @commands.size height = 32 + 6 * WLH self.contents = Bitmap.new(width - 32, (@item_max * WLH)) refresh self.index = 0 end end
class Game_Actor < Game_Battler alias enelvon_subset_setup setup def setup(actor_id) enelvon_subset_setup(actor_id) for sub in SUBSETS::Subsets if SUBSETS::Base_on_learned == true for skill in @skills if $data_skills[skill].note.include?(sub) if Allow_Skill == false index = @commands.index(Vocab::guard) else index = @commands.index(Vocab::guard) - 1 end add_command(index, sub) end end elsif SUBSETS::Base_on_learned == false if SUBSETS::Subset_actors[SUBSETS::Subsets.index(sub)].include?(actor_id) if Allow_Skill == false index = @commands.index(Vocab::guard) else index = @commands.index(Vocab::guard) - 1 end add_command(index, sub) end end end end end
class Window_Subset < Window_Selectable
def initialize(x, y, width, height, actor) super(x, y, width, height) @actor = actor @column_max = 2 self.index = 0 refresh end
def skill return @data[self.index] end def refresh @data = [] for skill in @actor.skills note = skill.note if note.include?("#{$bsubset}") @data.push(skill) if skill.id == @actor.last_skill_id self.index = @data.size - 1 end end @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end end
def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) skill = @data[index] if skill != nil rect.width -= 4 enabled = @actor.skill_can_use?(skill) draw_item_name(skill, rect.x, rect.y, enabled) if @actor.calc_mp_cost(skill) > 0 self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2) end end end
def update_help @help_window.set_text(skill == nil ? "" : skill.description) end end
class Scene_Battle < Scene_Base def start_subset_selection @help_window = Window_Help.new @skill_window = Window_Subset.new(0, 56, 544, 232, @active_battler) @skill_window.help_window = @help_window @actor_command_window.active = false end alias enelvon_subset_actor_command2 update_actor_command_selection def update_actor_command_selection if SUBSETS::Using_custom_commands == true enelvon_subset_actor_command2 elsif SUBSETS::Using_custom_commands == false skill = Vocab::skill if @active_battler.class.skill_name_valid skill = @active_battler.class.skill_name end if Input.trigger?(Input::B) Sound.play_cancel prior_actor elsif Input.trigger?(Input::C) case @actor_command_window.commands[@actor_command_window.index] when Vocab::attack # Attack Sound.play_decision @active_battler.action.set_attack start_target_enemy_selection when skill # Skill Sound.play_decision start_skill_selection when Vocab::guard # Guard Sound.play_decision @active_battler.action.set_guard next_actor when Vocab::item # Item Sound.play_decision start_item_selection end end end end alias enelvon_subset_actor_command update_actor_command_selection def update_actor_command_selection enelvon_subset_actor_command skill = Vocab::skill if Input.trigger?(Input::C) for sub in SUBSETS::Subsets case @actor_command_window.commands[@actor_command_window.index] when sub Sound.play_decision $bsubset = sub start_subset_selection end end end end end Description du script voulu : Bref, je voudrais tout-simplement que les commandes dans les deux catégories de skills soient mutuellement exclusives. De la manière que ça fonctionne actuellement, si je met une compétence dans la nouvelle catégorie, elle va apparaître dans l'autre.
[b]Exemples d'utilisation et schémas : En gros, par exemple, un personnage aura ces commandes: Attack Guard Skills Skills (2) Item Bref, la seconde catégorie ("Jump" dans ce cas-ci). requiert actuellement que je mette le nom de la seconde catégorie dans les notes des skills. Les compétences vont dans la nouvelle catégorie, cette fois-ci, "Jump" vont dedans, ce qui fonctionne. Par contre, le skill va dans l'autre catégorie quand même. Je voudrais que les skills de la seconde catégorie ne soient visible que dans cette catégorie. En gros, tous les skills de la secpnde catégorie (Comme Jump) n'apparaissent pas dans la liste de skills normale. Liste des scripts déjà utilisés : Aucun Merci d'avance! EDIT: J'y pense, serait-il possible de régler le problème en ne mettant que les compétences avec "SKills" dans "notes" apparaîte dans "Skills"?
Dernière édition par Vigilante le Ven 4 Nov 2011 - 21:54, édité 2 fois |
|
Poulet carnivore Lv.2
Inscrit le : 02/11/2011 Messages : 15
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Jeu 3 Nov 2011 - 16:19 | |
| |
|
Poulet carnivore Lv.2
Inscrit le : 02/11/2011 Messages : 15
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Ven 4 Nov 2011 - 16:25 | |
| |
|
Invité
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Ven 4 Nov 2011 - 16:30 | |
| Excuse nous de ne pas te répondre pour le moment, mais la présentation est obligatoire, et il nous est donc impossible de répondre avant que tu te sois présenté (où alors on peut nous-même se faire taper sur les doigts, bon là je prends le droit, mais après 2 up je me dis que c'est pas cool de te laisser en plan...). Enfin, une fois cette formalité effectuée, pourrais-tu être un peu plus claire dans l'explication ? J'ai un peu de mal à voir de quoi il s'agit. Des screens seraient les bienvenus pour que l'on puisse comprendre un peu mieux ton problème. Enfin, voilà, sur ce, bonne continuation !! |
|
Poulet carnivore Lv.2
Inscrit le : 02/11/2011 Messages : 15
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Ven 4 Nov 2011 - 17:28 | |
| Je te remercie, Raymo. J'apprécie!
Je viens d'éditer mon post avec des images et une explication plus pointue. J'espère que ça va aider à mieux comprendre mon souci ^^. |
|
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Ven 4 Nov 2011 - 18:24 | |
| Il faut regarder le bout de code suivant dans le script, qui apparait dans le script que tu as utilisé. - Code:
-
Allow_Skill = true #If Allow_Skill is set to true, the normal 'Skill' command will #be available. It will show all skills from all subsets. The #default is false. En gros, cela veut dire que si tu met "Allow_Skill" à true(vrai), il y'a une catégorie qui affiche tous les skills. Donc ce n'est pas un bug, mais une fonctionalité du script. |
|
Poulet carnivore Lv.2
Inscrit le : 02/11/2011 Messages : 15
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Ven 4 Nov 2011 - 19:02 | |
| J'en suis conscient. Le problème est que si je le met à false, je n'ai que la catégorie ajoutée. Mon besoin est plus d'avoir les deux mais que chaque compétence ait sa liste individuelle. |
|
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Ven 4 Nov 2011 - 19:09 | |
| hmm .. Met le à false, et rajoute une catégorie "Compétences" ? |
|
Poulet carnivore Lv.2
Inscrit le : 02/11/2011 Messages : 15
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences Ven 4 Nov 2011 - 19:17 | |
| Lol, ça marche, merci jebbou! |
|
| Sujet: Re: [Résolu] Demande de script: Multiples fonctions de compétences | |
| |
|