Sujet: Modification de script Mar 26 Aoû 2008 - 13:33
Salut!
Voilà un script pour une forge et alchimie:
Code:
########################################################### ###################### FORGE & ALCHIMIE ######################## #### V 1.0.5 ############################################## ################################### Por: lb_guilherme ##### #### traduction par : Douk ######################## #### commentaires & ajout de l'alchimie par : Lifa ######################## ###########################################################
# Pour qu'un événement déclenche la forge, mettez-lui un appel de script contenant : $scene = Scene_Refinar.new # Par défaut, les 10 premiers objets de votre liste d'objets serviront de matériaux. # Vous pouvez modifier le nombre de matériaux différents de votre jeu (de 1 à 14) à la ligne 56 (Minerios_id) # Vous pouvez à cette même ligne modifier les emplacements de ces matériaux dans votre liste d'objets.
# A la ligne 36, vous pouvez définir les différents groupes d'objets de votre forge. # A la ligne 39, mettez le type correspondant pour chaque groupe : # 1 = Armures (tout ce qui est dans votre liste d'armures compte, casques, accessoires, etc...) # 2 = Armes # 3 = Objets (il est tout à fait possible de créer des matériaux à partir d'autres matériaux ^^')
# Lignes 47 à 52 : mettez autant de lignes que de groupes d'objets de votre forge ! # Mettez ensuite à droite de chaque ligne les numéros des armures/armes/objets # que le joueur pourra créer dans ce groupe
# Enfin, lignes 67 à 89, mettez les matériaux requis pour chaque armure/arme/objet # (le nombre de nombres entre crochets doit correspondre au nombre de matériaux différents) # Il doit y avoir une ligne par armure/arme/objet.
module Refiner
Grupos_arms = [] Grupos_atr = [] Grupos_atr[1] = [] Grupos_atr[2] = [] Grupos_atr[3] = [] # ---------------------------------------------------- Grupos_name = ["Bâtons magiques","Armes de jet","Armes tranchantes","Armes contondantes","Armures","Alchimie"] #Type d'armes à forger # Noms des groupes d'objets # ---------------------------------------------------- Grupos_tips = [2,2,2,2,1,3] # Type d'objets des groupes (conservez le même ordre et même nombre) # 1 = Armures # 2 = Armes # 3 = Objets # ---------------------------------------------------- # ID des équipements que contiendront chaque groupe : # Max = 15 par groupe Grupos_arms[0] = [1,2,3,4] Grupos_arms[1] = [5,6] Grupos_arms[2] = [7,8,9] Grupos_arms[3] = [10,11] Grupos_arms[4] = [1,2,3,4,5] Grupos_arms[5] = [1,2,3,4,5] # ---------------------------------------------------- # ID des objets qui serviront de matériaux # Max = 14 Minerios_id = [1,2,3,4,5,6,7,8,9,10] # ---------------------------------------------------- # Quantité de matériaux requis pour chaque objet, dans l'ordre des matériaux indiqués ci-dessus # Grupos_atr[TYPE][ID] # TYPE: # 1 = Armures # 2 = Armes # 3 = Objets # ID: # Id de l'armure/arme/objet # ---------------------------------------------------- # Armures : Grupos_atr[1][1] = [1,1,0,0,0,0,0,0,0,0] Grupos_atr[1][2] = [2,2,0,0,0,0,0,0,0,0] Grupos_atr[1][3] = [3,3,0,0,10,0,0,0,0,0] Grupos_atr[1][4] = [5,5,5,5,5,5,5,5,0,0] Grupos_atr[1][5] = [10,0,0,0,0,0,0,0,0,0] # Armes : Grupos_atr[2][1] = [5,0,0,0,0,0,0,0,0,0] Grupos_atr[2][2] = [0,10,0,0,0,0,0,0,0,0] Grupos_atr[2][3] = [0,55,0,0,0,0,0,0,0,0] Grupos_atr[2][4] = [0,0,0,0,8,0,0,0,0,0] Grupos_atr[2][5] = [0,0,50,10,0,0,0,0,0,0] Grupos_atr[2][6] = [5,0,0,0,0,0,0,0,0,0] Grupos_atr[2][7] = [0,10,0,0,0,0,0,0,0,0] Grupos_atr[2][8] = [0,55,0,0,0,0,0,0,0,0] Grupos_atr[2][9] = [0,0,0,0,8,0,0,0,0,0] Grupos_atr[2][10] = [0,0,50,10,0,0,0,0,0,0] Grupos_atr[2][11] = [5,0,0,0,0,0,0,0,0,0] # Objets : Grupos_atr[3][1] = [1,1,0,0,0,0,0,0,0,0] Grupos_atr[3][2] = [10,15,0,0,0,0,0,0,0,0] Grupos_atr[3][3] = [5,0,0,0,10,0,0,0,0,0] Grupos_atr[3][4] = [5,5,5,5,5,5,5,5,0,0] Grupos_atr[3][5] = [8,45,0,0,0,0,0,0,0,0]
# ---------------------------------------------------- # # FIN DES CONFIGURATIONS - INITIALISATION DU SCRIPT # # ---------------------------------------------------- #
end class Window_Minerios < Window_Base def initialize(icons, x = 420, y = 5) super(x, y, 120, WLH * Refiner::Minerios_id.size + WLH + 32 + 10) @icons = icons self.contents.font.name = "UmePlus Gothic" refresh end def refresh self.contents.clear y = 10 x = 5 for i in 0...Refiner::Minerios_id.size y = y + WLH icon = @icons[i] draw_icon(icon, x, y) end end end class Scene_Refinar < Scene_Base def start super create_menu_background start_vars @min_window = Window_Minerios.new(@icons) @min_window.visible = false @grupo_window = Window_Command.new(160, Refiner::Grupos_name) @grupo_window.x = 5 @grupo_window.y = 5 @equips_window = Window_Command.new(160, [""]) @equips_window.visible = false @equips_window.active = false @confirm_window = Window_Confirm.new @confirm_window.x = 5 @confirm_window.y = 331 @confirm_op_window = Window_Command.new(75, ["Oui","Non"]) @confirm_op_window.x = 90 @confirm_op_window.y = 331 @confirm_op_window.opacity = 0 @confirm_window.visible = false @confirm_op_window.visible = false @confirm_op_window.active = false @confirm_op_window.index = 1 end def start_vars @groups_names = [] @groups_icons = [] for a in 0...Refiner::Grupos_name.size @groups_names[a] = [] @groups_icons[a] = [] for i in 0...Refiner::Grupos_arms[a].size id = Refiner::Grupos_arms[a][i] if Refiner::Grupos_tips[a] == 1 @groups_names[a][i] = $data_armors[id].name @groups_icons[a][i] = $data_armors[id].icon_index else if Refiner::Grupos_tips[a] == 2 @groups_names[a][i] = $data_weapons[id].name @groups_icons[a][i] = $data_weapons[id].icon_index else @groups_names[a][i] = $data_items[id].name @groups_icons[a][i] = $data_items[id].icon_index end end end end @icons = [] for i in 0...Refiner::Minerios_id.size id = Refiner::Minerios_id[i] @icons[i] = $data_items[id].icon_index end end def terminate super dispose_menu_background @equips_window.dispose @grupo_window.dispose @min_window.dispose @confirm_op_window.dispose @confirm_window.dispose end def update super update_menu_background @equips_window.update @min_window.update @grupo_window.update @confirm_op_window.update @confirm_window.update if @grupo_window.active == true grupo_update elsif @equips_window.active == true equips_update elsif @confirm_window.visible == true confirm_update end end def confirm_update if @confirm_op_window.active == false @confirm_window.contents.clear @confirm_window.contents.draw_text(0, 0, 130, 24, "Vous n'avez pas les") @confirm_window.contents.draw_text(0, 24, 130, 24, "items nécessaires") end if Input.trigger?(Input::B) Sound.play_cancel un_active end if Input.trigger?(Input::C) case @confirm_op_window.index when 0 Sound.play_decision refinar un_active @icon_window.dispose update_refiner desactive_options @confirm_op_window.index = 1 when 1 Sound.play_cancel un_active end end end def refinar v1 = Refiner::Grupos_tips[@grupo_window.index] v2 = Refiner::Grupos_arms[@grupo_window.index][@equips_window.index] for i in 0...Refiner::Minerios_id.size v = Refiner::Grupos_atr[v1][v2][i]
if v == nil v = 0 end $game_party.lose_item($data_items[Refiner::Minerios_id[i]], v) end if v1 == 1 t = $data_armors[v2] else if v1 == 2 t = $data_weapons[v2] else t = $data_items[v2] end end $game_party.gain_item(t,1) end def un_active @confirm_window.visible = false @confirm_op_window.visible = false @confirm_op_window.active = false @equips_window.active = true @confirm_window.contents.clear @confirm_window.contents.draw_text(0, 0, 80, 24, "Confirmer?") end def equips_update if Input.trigger?(Input::B) Sound.play_cancel @equips_window.visible = false @equips_window.active = false @grupo_window.active = true @min_window.visible = false @icon_window.dispose end if Input.trigger?(Input::C) Sound.play_decision trocar end if Input.repeat?(Input::DOWN) update_refiner end if Input.repeat?(Input::UP) update_refiner end end def grupo_update if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) Sound.play_decision @equips_window.dispose @equips_window = Window_Command2.new(245, @groups_names[@grupo_window.index]) @equips_window.x = 170 @equips_window.y = 5 @min_window.visible = true @grupo_window.active = false desactive_options update_refiner end end def troc_list for i in 0...@troc.size if @troc[i] != false @troc[i] = true end end end def update_refiner v1 = Refiner::Grupos_tips[@grupo_window.index] v2 = Refiner::Grupos_arms[@grupo_window.index][@equips_window.index] @min_window.refresh y = 10 x = 35 @min_window.contents.font.color = @min_window.normal_color @min_window.contents.draw_text(0, 0, 100, 24, "Requis :") for i in 0...Refiner::Minerios_id.size y = y + 24 @min_window.contents.font.color = @min_window.normal_color @min_window.contents.draw_text(x, y, 80, 24, "→") text = Refiner::Grupos_atr[v1][v2][i] if text == nil text = 0 end if $game_party.item_number($data_items[Refiner::Minerios_id[i]]) < text @min_window.contents.font.color = @min_window.knockout_color end @min_window.contents.draw_text(x + 20, y, 80, 24, text.to_s) end end def desactive_options @troc = [] v1 = Refiner::Grupos_tips[@grupo_window.index] v2 = Refiner::Grupos_arms[@grupo_window.index].size for a in 0...v2 for i in 0...Refiner::Minerios_id.size v3 = Refiner::Grupos_arms[@grupo_window.index][a] v = Refiner::Grupos_atr[v1][v3][i] if v == nil v = 0 end if $game_party.item_number($data_items[Refiner::Minerios_id[i]]) < v @equips_window.draw_item(a, false) @troc[a] = false end end end @icon_window = Window_Icon.new @icon_window.opacity = 0 troc_list x = 0 y = -24 for i in 0...@groups_names[@grupo_window.index].size y = y + 24 icon = @groups_icons[@grupo_window.index][i] @icon_window.draw_icon(icon, x, y, @troc[i]) end end def trocar if @troc[@equips_window.index] == false Sound.play_cancel @confirm_window.visible = true @equips_window.active = false else @confirm_window.visible = true @confirm_op_window.visible = true @confirm_op_window.active = true @equips_window.active = false end end end class Window_Confirm < Window_Base def initialize super (0, 0, 160, WLH * 2 + 32) self.contents.draw_text(0, 0, 80, 24, "Confirmer ?") end end class Window_Icon < Window_Base def initialize super (170, 5, 100, WLH * 14 + 32) end end class Window_Command2 < Window_Selectable attr_reader:commands def initialize(width, commands, column_max = 1, row_max = 0, spacing = 32) if row_max == 0 row_max = (commands.size + column_max - 1) / column_max end super(0, 0, width, row_max * WLH + 32, spacing) @commands = commands @item_max = commands.size @column_max = column_max refresh self.index = 0 end def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 30 rect.width -= 8 self.contents.clear_rect(rect) self.contents.font.color = normal_color self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(rect, @commands[index]) end end
Et voilà ce que j'aimerais que ça fasse:
1. Que la forge soit payante 2. Que l'on puisse mettre plus d'objet et de catégorie
Alors si quelqu'un pouvait me faire ça ce serait sympa
Merci d'avance pour vos réponses
MirainoHikari
Ex-Admin-Script
Age : 42 Inscrit le : 26/05/2008 Messages : 2360
Sujet: Re: Modification de script Mar 26 Aoû 2008 - 13:48
Pour les objets et les catégories, lit les commentaires du début, c'est indiquer comment faire.
Pour le côté payant, je n'ai juste pas le temps de te le faire, mais probablement que les Apprentis Scripteurs ayant réussit le cours devrait être en mesure de trouver une solution. D'ailleurs, n'es-tu pas inscrit au cours???
Invité
Invité
Sujet: Re: Modification de script Mar 26 Aoû 2008 - 16:46
effectivement je suis inscrit au cours mais j'ai beau resevoir des expliquation je ne comprend pas l'exercice 3 du cours n°1 mais j'attend la rentrer car je connasis un pôte qui pourrait m'expliquer
Quand à la modification des objet je sais mais on est limiter
on ne peut mettre que 15 objets par catégorie ce qui me géne un peu et on est limiter aussi pour les catégorie
Parti du script:
Code:
# ID des équipements que contiendront chaque groupe : # Max = 15 par groupe
je m'explique 1 peu mieux:
je voudrais faire plusieurs catégories:
-épée -hache -baton et sceptre -yo-yo (et oui c'est une arme XD) -arc -poings -armures -bouclier -manteaux et capes -gants et bottes -accesoires -objets
le problème c'est que pour chaque catégorie il y au moins 25 objet different
par exmple les épée il en a plus de 20 or la catégorie et limiter à 15
j'aimerais pouvoir dépasser la limite
jebbou
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
Sujet: Re: Modification de script Mar 26 Aoû 2008 - 17:20
Cabaji,
Je vais surment jetter un coup d'oeil à ce script, mais je n'ai jamais fait de modifications sur un vrai script, alors si quelqu'un crois qu'il peut faire ca rapidement, n'attendez pas après moi. En plus, le script n'est pas documenté, et certaines méthodes portent des noms portugais! (Génial ) Pour ce qui est des coûts, j'imagine que tu veux pouvoir définir un cout par objet, ou bien est-ce que le coût pourrait être généré selon le nombre d'objets requis pour la fusion?
Invité
Invité
Sujet: Re: Modification de script Mar 26 Aoû 2008 - 17:28
tout d'abord merci de bien vouloir essayer ^^
pour les coups il faudrait en effet que je modifie le prix moi même
jebbou
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
Sujet: Re: Modification de script Mer 27 Aoû 2008 - 20:42
Cabaji a écrit:
pour les coups il faudrait en effet que je modifie le prix moi même
C'est des coûts, pas des coups. Je paierais pas pour des coups, peu importe le coût
Pour le script, on dirait que les restrictions sont en fait dû à l'espace, il va donc falloir permettre un espece de scroll comme dans l'écran des items. Je te donne des nouvelles dès que j'ai du nouveau!
Invité
Invité
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 8:25
Oui voilà c'est ce que je voulais dire mais je ne saisvais plus comment ça s'appellait
En effet il faudrait utiliser le scroll pour pouvoiravoir un max d'objet!
Merci de bien voiloir essayer
( Quant au faute d'orthographe => je suis pas très doué pour l'ortho^^)
doubler78
Noble Lv.8
Age : 80 Inscrit le : 24/04/2008 Messages : 290
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 9:14
Cabaji , je vais regarder un truc ... Je vais voir un truc et si c'est bon , je te donne un truc pour faire payant !
Invité
Invité
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 9:28
ok merci mais je te previen je suis super nul en script ^^
doubler78
Noble Lv.8
Age : 80 Inscrit le : 24/04/2008 Messages : 290
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 9:30
Moi aussi ... c'est pour sa des que je vais sur mon (vrai) ordinateur , je regarde sa.. j'ai une idée en tête , simple ... mais dur
Invité
Invité
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 9:33
ok
et pour metter plus d'objet tu serai pas comment ?
doubler78
Noble Lv.8
Age : 80 Inscrit le : 24/04/2008 Messages : 290
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 9:46
Sa non désolé :tropetude:
Invité
Invité
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 10:02
ok mais c'est déjà bien pour le payemant
doubler78
Noble Lv.8
Age : 80 Inscrit le : 24/04/2008 Messages : 290
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 10:10
Non désolé j'y arrive pas , le seul truc , c'est de faire , juste avec d'appeler : "$scene = Scene_Refinar.new" , Faire message : Bonjour , pour 5 argent , tu peut faire de l'alchimie... Condition si 5 argent ou plus (retirer 5 argent) et insérer script : $scene = Scene_Refinar.new
Sa te convient ?
Invité
Invité
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 10:19
Oui s'est bien mais je vais attendre la réponse de Jebbou avant de l'utiliser car il a dit qu'il aller essayer de le faire
doubler78
Noble Lv.8
Age : 80 Inscrit le : 24/04/2008 Messages : 290
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 10:27
Okay , si il réussi je le prend aussi Sinon tant pis , ma solution n'est pas la meilleur , mais c'est mieux que rien
Invité
Invité
Sujet: Re: Modification de script Jeu 28 Aoû 2008 - 10:39
Oui en effet
jebbou
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
Sujet: Re: Modification de script Mar 2 Sep 2008 - 14:07
Salut Cabaji,
Ca s'en vient, avec plusieurs nouvelles options.
Script: 95% Commentaire et aide à l'utilisation: 30% Démo: 85%
Cordialement,
Jeb
Dernière édition par jebbou le Mer 3 Sep 2008 - 0:23, édité 1 fois
Invité
Invité
Sujet: Re: Modification de script Mar 2 Sep 2008 - 15:22
Un super merci à toi ^^
jebbou
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
Sujet: Re: Modification de script Mer 3 Sep 2008 - 0:20
Sujet: Re: Modification de script Lun 3 Oct 2011 - 17:31
Bonjour je voudrais savoir comment on fait pour activer le script forge:
je m'explique:
j'ai déjà installé le script mais j'essaye de le faire fonctionner je n'arrive pas il n'y aurais pas l'apparition d'une nouvelle option dans l'insertion d'option dans un évènement...