Partagez
Aller en bas
avatar
Shadow Tr.
Membre

Nombre de messages : 438
Age : 26
Localisation : au siège de la mog-poste
Distinction : Harceleur Sexuel et Voyeur
Est un Connard (avec un grand C)
Ne veut pas harceler par MP avec des images cochonnes x)
Date d'inscription : 12/10/2008

forge

le Mar 3 Fév 2009 - 18:38
avis aux scripteurs (oui encore moi n_n)

cette fois cela concerne le script de forge...

que je met ci dessous

Spoiler:

Code:
####################################################################
###################### FORGE, ALCHIMIE & REPARATION ########################
#### V 1.1.1 ###########################################################
####################################### Par: lb_guilherme #################
#### traduction par : Douk ##################################################
#### commentaires, ajout de l'alchimie et de la réparation par : Lifa ########################
####################################################################

# Pour qu'un événement déclenche la forge, mettez-lui un appel de script contenant : $scene = Scene_Refinar3.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 40, vous pouvez définir les différents groupes d'objets de votre forge.
# A la ligne 43, 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 51 à *** : 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 ~70 à ***, 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.

# *************** MODIFICATIONS APPORTEES PAR LA REPARATION *******************
# Minerios_id a été changé et comporte 2 lignes. La première définit toujours l'id des objets
# et la 2e définit le type d'objet 'armure,arme,item) qui servira de matériau.
# Par exemple, mettez l'arme "épée rouillée" comme matériau, ajoutez quelques trucs, et faites créer une "épée scintillante" avec, ou mettez une épée et un objet de feu, faites-en une épée de feu ^^

module Refiner3

Grupos_arms = []
Grupos_atr = []
Grupos_atr[1] = []
Grupos_atr[2] = []
Grupos_atr[3] = []
Minerios_id = []
# ----------------------------------------------------
Grupos_name = ["Armes","Armures","Accessoires"] #Type d'armes à forger
# Noms des groupes d'objets
# ----------------------------------------------------
Grupos_tips = [2,1,1]
# 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] = [13]
Grupos_arms[1] = []
Grupos_arms[2] = []
# ----------------------------------------------------
# ID des objets qui serviront de matériaux
# Max = 14
Minerios_id[0] = [151]
Minerios_id[1] = [152]
Minerios_id[2] = [153]
Minerios_id[3] = [154]
Minerios_id[4] = [155]
Minerios_id[5] = [156]
Minerios_id[6] = [157]
Minerios_id[7] = [158]
Minerios_id[8] = [159]
Minerios_id[9] = [160]
Minerios_id[10] = [161]
Minerios_id[11] = [162]
Minerios_id[12] = [163]
Minerios_id[13] = [164]
# ----------------------------------------------------
# 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 :
# Objets :

Grupos_atr[2][13] = [1,1,1]

# ---------------------------------------------------- #
# FIN DES CONFIGURATIONS - INITIALISATION DU SCRIPT #
# ---------------------------------------------------- #

end
class Window_Minerios3 < Window_Base
def initialize(icons, x = 420, y = 5)
super(x, y, 120, WLH * Refiner3::Minerios_id[0].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...Refiner3::Minerios_id[0].size
y = y + WLH
icon = @icons[i]
draw_icon(icon, x, y)
end
end
end

class Scene_Refinar3 < Scene_Base
def start
super
create_menu_background
start_vars
@min_window = Window_Minerios3.new(@icons)
@min_window.visible = false
@grupo_window = Window_Command.new(160, Refiner3::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...Refiner3::Grupos_name.size
@groups_names[a] = []
@groups_icons[a] = []
for i in 0...Refiner3::Grupos_arms[a].size
id = Refiner3::Grupos_arms[a][i]
if Refiner3::Grupos_tips[a] == 1
@groups_names[a][i] = $data_armors[id].name
@groups_icons[a][i] = $data_armors[id].icon_index
else
if Refiner3::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...Refiner3::Minerios_id[0].size
id = Refiner3::Minerios_id[0][i]
type_id = Refiner3::Minerios_id[1][i]
if type_id == 1
@icons[i] = $data_armors[id].icon_index
else
if type_id == 2
@icons[i] = $data_weapons[id].icon_index
else
@icons[i] = $data_items[id].icon_index
end
end
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, "objets 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_Refiner3
desactive_options
@confirm_op_window.index = 1
when 1
Sound.play_cancel
un_active
end
end
end
def refinar
v1 = Refiner3::Grupos_tips[@grupo_window.index]
v2 = Refiner3::Grupos_arms[@grupo_window.index][@equips_window.index]
for i in 0...Refiner3::Minerios_id[0].size
v = Refiner3::Grupos_atr[v1][v2][i]

if v == nil
v = 0
end
type_id = Refiner3::Minerios_id[1][i]
if type_id == 1
$game_party.lose_item($data_armors[Refiner3::Minerios_id[0][i]], v)
else
if type_id == 2
$game_party.lose_item($data_weapons[Refiner3::Minerios_id[0][i]], v)
else
$game_party.lose_item($data_items[Refiner3::Minerios_id[0][i]], v)
end
end
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_Refiner3
end
if Input.repeat?(Input::UP)
update_Refiner3
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_Refiner3
end
end
def troc_list
for i in 0...@troc.size
if @troc[i] != false
@troc[i] = true
end
end
end
def update_Refiner3
v1 = Refiner3::Grupos_tips[@grupo_window.index]
v2 = Refiner3::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...Refiner3::Minerios_id[0].size
y = y + 24
@min_window.contents.font.color = @min_window.normal_color
@min_window.contents.draw_text(x, y, 80, 24, "→")
text = Refiner3::Grupos_atr[v1][v2][i]
if text == nil
text = 0
end
type_id = Refiner3::Minerios_id[1][i]
if type_id == 1
if $game_party.item_number($data_armors[Refiner3::Minerios_id[0][i]]) < text
@min_window.contents.font.color = @min_window.knockout_color
end
else
if type_id == 2
if $game_party.item_number($data_weapons[Refiner3::Minerios_id[0][i]]) < text
@min_window.contents.font.color = @min_window.knockout_color
end
else
if $game_party.item_number($data_items[Refiner3::Minerios_id[0][i]]) < text
@min_window.contents.font.color = @min_window.knockout_color
end
end
end
@min_window.contents.draw_text(x + 20, y, 80, 24, text.to_s)
end
end
def desactive_options
@troc = []
v1 = Refiner3::Grupos_tips[@grupo_window.index]
v2 = Refiner3::Grupos_arms[@grupo_window.index].size
for a in 0...v2
for i in 0...Refiner3::Minerios_id[0].size
v3 = Refiner3::Grupos_arms[@grupo_window.index][a]
v = Refiner3::Grupos_atr[v1][v3][i]
if v == nil
v = 0
end
type_id = Refiner3::Minerios_id[1][i]
if type_id == 1
if $game_party.item_number($data_armors[Refiner3::Minerios_id[0][i]]) < v
@equips_window.draw_item(a, false)
@troc[a] = false
end
else
if type_id == 2
if $game_party.item_number($data_weapons[Refiner3::Minerios_id[0][i]]) < v
@equips_window.draw_item(a, false)
@troc[a] = false
end
else
if $game_party.item_number($data_items[Refiner3::Minerios_id[0][i]]) < v
@equips_window.draw_item(a, false)
@troc[a] = false
end
end
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

comme le dit le script d'après mes modifs (enfin je crois), forger l'arme d'ID 13 couterait 1 fois le materiel: 151, 152, 153...


seulement, le résultat obtenu est :



si quelqu'un a compris pourquoi, pourrait t-il m'indiquer mon erreur Very Happy

(et m'expliquer un peu cette partie Grupos_atr)

Meeeeerrki



(de plus avez vous remarquer qu'il y a deux fois l'emoticone "topic glissant" O_o)
avatar
Arayashiki
Membre

Nombre de messages : 655
Age : 28
Localisation : Trois lettres me demangent. Oserai-je ?
Distinction : FUCKING nouveau dieu du mal. Gros connard en chef.
Date d'inscription : 18/08/2008

Re: forge

le Mer 4 Fév 2009 - 9:27
C'est vrai que c'est assez tordu xD. Bon en expliquant simplement on va prendre l'exemple pour faire une "épée en fer".

1/ le grupos_name tu le modifie autant que tu le souhaite. J'ose espérer qu'il te reste quelque chose de mes cours ^^". On touche pas pour le moment.

2/ Ensuite le grupos_tips. On touche pas aussi.

3/ Viens le tour du grupos_arms. Alors tu te souviens du grupos_name il y a 3 différents groupes d'objet forgeable. Donc nous on va mettre dans la catégorie "arme" notre épée. Bon faut pas charier essaye de deviner en te remémorant tes cours :P

Spoiler:
Au préalable dans la BDD on a crée une arme qui s'appelle "épée de fer" qui a pour ID 0
Code:
Grupos_arms[0] = [0]
Pour ceux que ça peut servir vous pouvez mettre 15 objets max par catégories comme ceci :
Code:
 Grupos_arms[0] = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Voilà pour cette partie.

4/Je passe les minerios_id car ça me parait évident pour tout le monde. Le grupos_atr. Haha le fameux grupos_atr xD. Déjà pour notre épée on a besoin de "fer", d'un " pommeau d'épée", et d'une "pierre à aiguiser". On prend les devants et on va dans la BDD. On crée 3 nouveaux objets :
  • ID 154 = "fer"
  • ID 157 = "pommeau d'épée"
  • ID 161 = "pierre à aiguiser"
Et armé de tout ça on va faire notre morceaux de code pour notre épée de fer. Essaye de réfléchir un tout petit peu avant. En sachant qu'il me faut 4 morceaux de fer, un seul pommeau et une seul pierre à aiguiser.

Spoiler:
Code:
Grupos_atr[1][0] = [0,0,0,4,0,0,1,0,0,0,1,0,0,0]

Voilà si tu as encore des questions pose-les ^^
avatar
Shadow Tr.
Membre

Nombre de messages : 438
Age : 26
Localisation : au siège de la mog-poste
Distinction : Harceleur Sexuel et Voyeur
Est un Connard (avec un grand C)
Ne veut pas harceler par MP avec des images cochonnes x)
Date d'inscription : 12/10/2008

Re: forge

le Mer 4 Fév 2009 - 19:29
je commence à y voir un pru plus clair, mais je ne vois pas d'où sortent tout ces zéros scratch
que signifie t-ils?
avatar
Arayashiki
Membre

Nombre de messages : 655
Age : 28
Localisation : Trois lettres me demangent. Oserai-je ?
Distinction : FUCKING nouveau dieu du mal. Gros connard en chef.
Date d'inscription : 18/08/2008

Re: forge

le Mer 4 Fév 2009 - 20:17
Et bien dis toi que le premier zéro correspond à ton premier item. Et signifie que aucun du premier item n'est requis. Compte tu verras y a 11 zeros et 3 autres chiffres ^^.
avatar
Shadow Tr.
Membre

Nombre de messages : 438
Age : 26
Localisation : au siège de la mog-poste
Distinction : Harceleur Sexuel et Voyeur
Est un Connard (avec un grand C)
Ne veut pas harceler par MP avec des images cochonnes x)
Date d'inscription : 12/10/2008

Re: forge

le Ven 6 Fév 2009 - 16:17
Ah? AH???
Ça y est, je crois avoir compris Wink

je te redis en cas de besoin, en tout cas merci beaucoup!

Dernière question, pourquoi dans le cas que j'ai mis plus haut, ca n'avait pas ajouté les autres éléments dans la liste?

je veux dire qu'il n'était pas visible dans le menu de forge


EDIT: La flemme de repost, après le message d'après, alors juste un tit merci pour ton attention XD


Dernière édition par Shadow Tribal le Ven 6 Fév 2009 - 16:32, édité 1 fois
avatar
Arayashiki
Membre

Nombre de messages : 655
Age : 28
Localisation : Trois lettres me demangent. Oserai-je ?
Distinction : FUCKING nouveau dieu du mal. Gros connard en chef.
Date d'inscription : 18/08/2008

Re: forge

le Ven 6 Fév 2009 - 16:28
Là, tout de suite maintenant je vois pas. je regarde d'un peu plus près et on verra ça.
Contenu sponsorisé

Re: forge

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum