Dernière édition par Sh4k4 le Ven 27 Juin 2008 - 11:57, édité 1 fois
Sh4k4
Chevalier d'or
Nombre de messages : 2836 Age : 36 Point(s) Fort(s) : Scripteur, Event-Maker, Aide Point(s) Faible(s) : Athéna Niveau RPG Maker : Elevé Logiciel préféré : RMXP Date d'inscription : 06/01/2007
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 11:51
1. Scripts
1.1. Dépendances
Ce script n'en requiert aucun autre.
Risques d'incompatibilités très faibles.
J'ai mis un txt sur mon ftp car la balise code avait des bugs...
Lien Script Color sur le FTP
Script :
Code:
#=============================================================================== # ¦ Objets / Equipements avec couleur (WoW-like) #------------------------------------------------------------------------------- # Auteur : Sh4k4 # Version : 1.3 # Logiciel : RMXP # Date : 27/06/2008 # Modifs : Azerty #------------------------------------------------------------------------------- # Permet d'attribuer aux equipements et objets une couleur. # # ¤INSTALLATION # Il suffit de copier coller ce script au dessus de Main. # # # ¤UTILISATION # # -Comment attribuer une couleur à un objet ou un équipement ? # C'est très simple, il suffit de modifier son nom dans la base de données. On place entre # accolades le numéro de la couleur voulue. # Exemple: Potion{1} # Ainsi, la potion possèdera la couleur n°1 qui par défaut est le vert. # (voir tout en haut du script) # # -Comment créer de nouvelles couleurs ? # Il suffit de créer une nouvelle ligne tout en haut du script, comme les autres, où on y place # le numéro de la couleur et on règle les valeurs (rouge,vert,bleu). #=============================================================================== module Couleur # Couleur de base pour les objets dont aucune couleur n'est définie. COULEUR_BASE = Color.new(255,255,255) # Blanc COULEUR = [] # Couleurs | syntaxe: COULEUR[numéro couleur] = Color.new(rouge,vert,bleu) COULEUR[1] = Color.new(65,255,95) # Vert / Non-commun COULEUR[2] = Color.new(65,95,255) # Bleu / Rare COULEUR[3] = Color.new(183,38,204) # Pourpre / Epique COULEUR[4] = Color.new(255,142,31) # Orange / Légendaire
def couleur return @couleur if @couleur.is_a? Color if self.name.include?("{") couleur_id = self.name.split("{")[1] couleur_id = couleur_id.split("}")[0] if self.name.include?("}") self.name = self.name.split("{")[0] @couleur = COULEUR[couleur_id.to_i] else @couleur = COULEUR_BASE end return @couleur end end [RPG::Item, RPG::Weapon, RPG::Armor].each do |c| c.class_eval{ include Couleur } end
#-------------------------------------------------------------------------------------- # Fin des modifications du Module RPG. #--------------------------------------------------------------------------------------
#======================================================================== # Modification des fenêtres afin qu'elles emploient la couleur de l'objet. #======================================================================== class Window_Base def draw_item_name(item, x, y) return if item == nil bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = item.couleur self.contents.draw_text(x + 28, y, 212, 32, item.name) self.contents.font.color = normal_color end end
class Window_Item def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) opacity = 255 self.contents.font.color = item.couleur else opacity = 128 self.contents.font.color = Color.new(item.couleur.red,item.couleur.green,item.couleur.blue,128) end x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 212, 32, item.name, 0) self.contents.font.color = opacity == 255 ? normal_color : disabled_color self.contents.draw_text(x + 240, y, 16, 32, ':', 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end end
class Window_ShopBuy < Window_Selectable def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end if item.price <= $game_party.gold and number < 99 opacity = 255 self.contents.font.color = item.couleur else opacity = 128 self.contents.font.color = Color.new(item.couleur.red,item.couleur.green,item.couleur.blue,128) end x = 4 y = index * 32 rect = Rect.new(x, y, self.width - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 212, 32, item.name, 0) if item.price <= $game_party.gold and number < 99 self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.draw_text(x + 240, y, 88, 32, item.price.to_s, 2) end
end
class Window_ShopSell < Window_Selectable def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end if item.price > 0 opacity = 255 self.contents.font.color = item.couleur else opacity = 128 self.contents.font.color = Color.new(item.couleur.red,item.couleur.green,item.couleur.blue,128) end x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 212, 32, item.name, 0) self.contents.font.color = opacity == 255 ? normal_color : disabled_color self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end end
#-------------------------------------------------------------------------------------- # Fin des modifications des fenêtres. #--------------------------------------------------------------------------------------
Dernière édition par Sh4k4 le Ven 27 Juin 2008 - 22:47, édité 7 fois
Sh4k4
Chevalier d'or
Nombre de messages : 2836 Age : 36 Point(s) Fort(s) : Scripteur, Event-Maker, Aide Point(s) Faible(s) : Athéna Niveau RPG Maker : Elevé Logiciel préféré : RMXP Date d'inscription : 06/01/2007
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 11:53
2. Explications
Permet de donner une couleur aux objets et equipements. Placer simplement le script au dessus de Main.
Instructions:
-Comment attribuer une couleur à un objet ou un équipement ? C'est très simple, il suffit de modifier son nom dans la base de données. On place entre accolades le numéro de la couleur voulue. Exemple: Potion{1}
Ainsi, la potion possèdera la couleur n°1 qui par défaut est le vert. (voir tout en haut du script)
Note: ceci est compatible avec mon script de compétences apprises par les équipements. Il faudra simplement que la couleur entre accolades soit définie AVANT les crochets des compétences. Exemple: Epée de bronze{2}[4,2,3]
-Comment modifier les couleurs ? Au début du script, en modifiant les contenus des paranthèses en suivant la syntaxe (rouge,vert,bleu)
-Comment créer de nouvelles couleurs ? Il suffit de créer une nouvelle ligne tout en haut du script, comme les autres, où on y place le numéro de la couleur et on règle les valeurs (rouge,vert,bleu).
Dernière édition par Sh4k4 le Ven 27 Juin 2008 - 12:05, édité 7 fois
Sh4k4
Chevalier d'or
Nombre de messages : 2836 Age : 36 Point(s) Fort(s) : Scripteur, Event-Maker, Aide Point(s) Faible(s) : Athéna Niveau RPG Maker : Elevé Logiciel préféré : RMXP Date d'inscription : 06/01/2007
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 11:55
3. Screenshots
darkleo
Membre VIP, ancien staff
Nombre de messages : 1410 Age : 32 Point(s) Fort(s) : Prog Niveau RPG Maker : ++ Logiciel préféré : RMOpenGL + VX Date d'inscription : 13/04/2007
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 12:07
Oki, les problèmes, c'est déjà que l'on ne distingue plus les objets consommables des autres et de l'équipement dans l'inventaire. Il faudrait faire une couleur de plus par type pour quand on ne peut pas l'utiliser. (C'est confus, mais bon...) C'est à cet endroit la : (Window_Item)
Code:
if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end
Sinon l'autre manière de procéder, plus simple, c'est d'utiliser les attributs, en cochant celui voulu. (on indique dans le script que les attributs pour ça sont les n°10, 11, 12, 13 par exemple), ça évite d'avoir à écrire dans le nom, et avec les nom de la rareté dans l'attribut, on est sur de ne pas se tromper ^^ (Et ça t'évite toute la partie du module RPG)
Sinon, c'est beau, et très propre ^^
EDIT: Pour répondre, je préfère cocher une case que d'écrire avec des accolades. Sinon seul le nombre d'item (/d'arme/d'armure) est 'grisé', et non le nom entier (ce à quoi je pensait), ce qui est plus rapide de compréhension. [HS] Projet n°276 ^^[/HS]
Dernière édition par darkleo le Ven 27 Juin 2008 - 12:21, édité 1 fois
Sh4k4
Chevalier d'or
Nombre de messages : 2836 Age : 36 Point(s) Fort(s) : Scripteur, Event-Maker, Aide Point(s) Faible(s) : Athéna Niveau RPG Maker : Elevé Logiciel préféré : RMXP Date d'inscription : 06/01/2007
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 12:09
darkleo a écrit:
Oki, les problèmes, c'est déjà que l'on ne distingue plus les objets consommables des autres et de l'équipement dans l'inventaire. Il faudrait faire une couleur de plus par type pour quand on ne peut pas l'utiliser. (C'est confus, mais bon...) C'est à cet endroit la : (Window_Item)
Code:
if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end
Sinon l'autre manière de procéder, plus simple, c'est d'utiliser les attributs, en cochant celui voulu. (on indique dans le script que les attributs pour ça sont les n°10, 11, 12, 13 par exemple), ça évite d'avoir à écrire dans le nom, et avec les nom de la rareté dans l'attribut, on est sur de ne pas se tromper ^^ (Et ça t'évite toute la partie du module RPG)
Sinon, c'est beau, et très propre ^^
Si je procède avec les noms c'est parce que je trouve ça plus simple et rapide que créer pleins d'attribus.
Sinon, si tu avais regardé mon script, tu aurais vu :
if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) opacity = 255 else opacity = 128 end
Edit : j'ai rajouté self.contents.font.color = Color.new(item.couleur.red,item.couleur.green,item.couleur.blue,128) Histoire d'être sûr qu'il n'y ait aucun problème.
mimiman
Ancien membre du staff
Nombre de messages : 1060 Age : 33 Point(s) Fort(s) : Progammation(script, event) Point(s) Faible(s) : Tout le reste... Niveau RPG Maker : Je sais faire planter le PC... Date d'inscription : 11/08/2006
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 13:37
Code:
if $data_items[id].name.include?("{") couleur_id = $data_items[id].name.split("{")[1] couleur_id = couleur_id.split("}")[0] if $data_items[id].name.include?("}") $data_items[id].name = $data_items[id].name.split("{")[0] return COULEUR[couleur_id.to_i] else return COULEUR_BASE end
Tu as fait une petite erreur ici, regarde.
La première fois que tu appelles la fonction :
Citation :
@name = "objet{2}" # on va dire ^^.
if $data_items[id].name.include?("{") => true # on est d'accords !?
Maintenant @name = "objet" # c'est toi qui la modifier ^^
if $data_items[id].name.include?("{") => false
return COULEUR_BASE # ne renvoie plus la bonne couleur ^^.
Tu ne devrais pas modifier @name mais la fonction qui renvoie @name, et ne pas utiliser $data_items[id] mais self (c'est pareil) et pas $data_items[id].name mais @name!
En espérant que tu puisse l'améliorer!
Sh4k4
Chevalier d'or
Nombre de messages : 2836 Age : 36 Point(s) Fort(s) : Scripteur, Event-Maker, Aide Point(s) Faible(s) : Athéna Niveau RPG Maker : Elevé Logiciel préféré : RMXP Date d'inscription : 06/01/2007
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 15:36
Je vois pas de quoi tu parles, un coup c'est avec item, un coup avec weapon, un coup avec armor.
Azerty
Villageois (Nv 2)
Nombre de messages : 36 Date d'inscription : 11/08/2006
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Ven 27 Juin 2008 - 16:33
Je crois que je vois ce qu'il veut dire, en faite la pemiere fois tout fonctionne bien, mais si tu va sur la map et que tu reouvre le menu, le jeu de couleur a disparu ^^
Code:
#=============================================================================== # ■ Objets / Equipements avec couleur (WoW-like) #------------------------------------------------------------------------------- # Auteur : Sh4k4 # Version : 1.0 # Logiciel : RMXP # Date : 27/06/2008 #------------------------------------------------------------------------------- # Permet d'attribuer aux equipements et objets une couleur. # # ¤INSTALLATION # Il suffit de copier coller ce script au dessus de Main. # # # ¤UTILISATION # # -Comment attribuer une couleur à un objet ou un équipement ? # C'est très simple, il suffit de modifier son nom dans la base de données. On place entre # accolades le numéro de la couleur voulue. # Exemple: Potion{1} # Ainsi, la potion possèdera la couleur n°1 qui par défaut est le vert. # (voir tout en haut du script) # # -Comment créer de nouvelles couleurs ? # Il suffit de créer une nouvelle ligne tout en haut du script, comme les autres, où on y place # le numéro de la couleur et on règle les valeurs (rouge,vert,bleu). #=============================================================================== module Couleur # Couleur de base pour les objets dont aucune couleur n'est définie. COULEUR_BASE = Color.new(255,255,255) # Blanc COULEUR = [] # Couleurs | syntaxe: COULEUR[numéro couleur] = Color.new(rouge,vert,bleu) COULEUR[1] = Color.new(65,255,95) # Vert / Non-commun COULEUR[2] = Color.new(65,95,255) # Bleu / Rare COULEUR[3] = Color.new(183,38,204) # Pourpre / Epique COULEUR[4] = Color.new(255,142,31) # Orange / Légendaire def couleur return @couleur if @couleur.is_a? Color if self.name.include?("{") couleur_id = self.name.split("{")[1] couleur_id = couleur_id.split("}")[0] if self.name.include?("}") self.name = self.name.split("{")[0] @couleur = COULEUR[couleur_id.to_i] else @couleur = COULEUR_BASE end return @couleur end end [RPG::Item, RPG::Weapon, RPG::Armor].each do |c| c.class_eval{ include Couleur } end
#-------------------------------------------------------------------------------------- # Fin des modifications du Module RPG. #--------------------------------------------------------------------------------------
#======================================================================== # Modification des fenêtres afin qu'elles emploient la couleur de l'objet. #======================================================================== class Window_Base def draw_item_name(item, x, y) return if item == nil bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = item.couleur self.contents.draw_text(x + 28, y, 212, 32, item.name) self.contents.font.color = normal_color end end
class Window_Item def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) opacity = 255 else opacity = 128 self.contents.font.color = Color.new(item.couleur.red,item.couleur.green,item.couleur.blue,128) end self.contents.font.color = item.couleur x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 212, 32, item.name, 0) self.contents.font.color = opacity == 255 ? normal_color : disabled_color self.contents.draw_text(x + 240, y, 16, 32, ':', 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end end #-------------------------------------------------------------------------------------- # Fin des modifications des fenêtres. #--------------------------------------------------------------------------------------
Edit Sh4k4: Ok je vois le problème, j'ai édité le 2eme post.
Jv214
Villageois (Nv 4)
Nombre de messages : 74 Date d'inscription : 12/05/2007
Sujet: Re: Objets / Equipements avec couleur (WoW-like) Mer 9 Juil 2008 - 20:52
Rectification :mrgreen: Les couleurs ne marchent pas dans les menu des marchands
Edit Sh4k4: Ok j'ai édité ça devrait aller
Contenu sponsorisé
Sujet: Re: Objets / Equipements avec couleur (WoW-like)
Objets / Equipements avec couleur (WoW-like)
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum