- Azuma-01Membre
- Nombre de messages : 94
Age : 32
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009
petits bouts de code pour devs
Mer 25 Jan 2012 - 22:56
Bonjour, bonsoir... ou les deux.
Je vais présenter quelques bouts de code qui vont, a mon avis, simplifier le travail des développeurs.
Commençons par un qui permet d'ajouter un éléments dans un Window_Command dynamiquement.
par exemple si on veut ajouter la commande "Crédits" dans la scène Titre (Scene_Tilte), il faut commencer par faire un alias sur Window_TitleCommand#make_command_list pour la rendre visible ensuite en refaire un autre sur Scene_Tile#create_command_window pour y placer un handle. Et encore un peut plus si on veut que l'élément "Crédits" soit visible seulement si une/des condition(s) est requise(s). Au-lieu de s'arracher le cheveux de sur la tête, je propose la méthode
Window_Command#dynamic_add_command(name, symbol, method, index=@list.size, enabled = true, ext = nil)
un exemple est fournie avec le code ci-dessous.
Un autre : vous avez surement vue que les statistiques des objets comme les armes, armures, les classes...
sont stoker dans le tableau params. Voulez-vous vraiment apprendre par-cœur que l'attaque est à l'index 2, que la défense magique est à la position 5... Moi non. Alors voici un petit quelque chose qui rajoute les attributs mhp, mmp, atk, def, mat, mdf, agi et luk au classes RPG::EquipItem (donc RPG::Weapon et RPG::Armor), RPG::Class et RPG::Enemy.
Celui-ci est surement moins utile des deux premier. Il permet seulement que, dans la scène menu (Scene_Menu), lorsque l'on appui sur la flèche de droite, on entre automatiquement en mode formation. Plus ou moins utile tel-quelle, mais qui offre des possibilités pour des menus plus élaborés.
C'est tout pour l'instant, mais je vais très certainement en rajouter au fils du temps.
NOTE : Tous ces bouts de code ne nécessite pas de crédit quelconque, car tous pourraient les créés. Je leur ai seulement donnés une certaine polyvalence.
Je vais présenter quelques bouts de code qui vont, a mon avis, simplifier le travail des développeurs.
Commençons par un qui permet d'ajouter un éléments dans un Window_Command dynamiquement.
par exemple si on veut ajouter la commande "Crédits" dans la scène Titre (Scene_Tilte), il faut commencer par faire un alias sur Window_TitleCommand#make_command_list pour la rendre visible ensuite en refaire un autre sur Scene_Tile#create_command_window pour y placer un handle. Et encore un peut plus si on veut que l'élément "Crédits" soit visible seulement si une/des condition(s) est requise(s). Au-lieu de s'arracher le cheveux de sur la tête, je propose la méthode
Window_Command#dynamic_add_command(name, symbol, method, index=@list.size, enabled = true, ext = nil)
un exemple est fournie avec le code ci-dessous.
- Code:
=begin #exemple:
class Scene_Title
alias old_create_command_window create_command_window
def create_command_window
old_create_command_window
# add "Crédits" command before shutdown
@command_window.dynamic_add_command("Crédits", :added, proc{@command_window.activate}, 2) if $game_variables[12]
end
end
=end
class Window_Command
def refresh
clear_command_list
make_command_list
insert_others_commands
create_contents
super
end
def insert_others_commands
(@dynamic_commands||[]).each{|com|@list.insert(com[0],com[1])}
end
def dynamic_add_command(name, symbol, method, index=@list.size, enabled = true, ext = nil)
@dynamic_commands||=[]
@dynamic_commands.push([index, {:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext}])
set_handler(symbol, method)
refresh
end
end
Un autre : vous avez surement vue que les statistiques des objets comme les armes, armures, les classes...
sont stoker dans le tableau params. Voulez-vous vraiment apprendre par-cœur que l'attaque est à l'index 2, que la défense magique est à la position 5... Moi non. Alors voici un petit quelque chose qui rajoute les attributs mhp, mmp, atk, def, mat, mdf, agi et luk au classes RPG::EquipItem (donc RPG::Weapon et RPG::Armor), RPG::Class et RPG::Enemy.
- Code:
module RPG
[EquipItem, Class, Enemy].each{|klass|
klass.class_eval{
['mhp','mmp','atk','def','mat','mdf','agi','luk'].each_with_index{|name,i|
define_method(name){params[i]}
define_method(name+'='){|v| params[i]=v}
}
}
}
Celui-ci est surement moins utile des deux premier. Il permet seulement que, dans la scène menu (Scene_Menu), lorsque l'on appui sur la flèche de droite, on entre automatiquement en mode formation. Plus ou moins utile tel-quelle, mais qui offre des possibilités pour des menus plus élaborés.
- Code:
class Window_MenuCommand < Window_Command
def process_handling
super
if formation_enabled && Input.trigger?(:RIGHT)
select_symbol(:formation)
return process_ok
end
end
end
C'est tout pour l'instant, mais je vais très certainement en rajouter au fils du temps.
NOTE : Tous ces bouts de code ne nécessite pas de crédit quelconque, car tous pourraient les créés. Je leur ai seulement donnés une certaine polyvalence.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum