Hurricane Posted February 27, 2015 Share Posted February 27, 2015 Ciao a tutti,stavo modificando uno script e mi sono imbattuto in un problema.Lo script, subito dopo il "class blablabla" scrive: ITEMS = [ # Item, probability, graphic x, graphic y, width, height, pattern [:OGGETTO1,20, 0,3, 5,4,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0]], [:OGGETTO2,20, 0,3, 5,4,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0]], [:OGGETTO3,20, 0,3, 5,4,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0]] ]poi partono tutti i "def" dove è richiamato, ad esempio: for i in ITEMS ptotal+=i[1] end for i in 0...ITEMS.length rnd-=ITEMS[i][1] if rnd<0 if pbNoDuplicateItems(ITEMS[i][0]) while !added provx=rand(BOARDWIDTH-ITEMS[i][4]+1)Io vorrei creare più di un ITEMS, tipo ITEMS1, ITEMS2,ITEMS3. Se la variabile è a 1 mi pone l'ITEMS = ITEMS1se la variabile è a 2 mi pone l'ITEMS = ITEMS2 solo che non so come scriptare l'uguaglianza e come dichiarare questi array aggiuntivi.se qualcuno puoi aiutarmi... :smile: http://www.webgif.org/gif_animate/animali/insetti/immagini/10.gif Link to comment Share on other sites More sharing options...
0 Midi Posted February 27, 2015 Share Posted February 27, 2015 (edited) Allora.Qui i problemi sono in realtà due. Il primo è che ITEMS, nello script originale, è una costante e non una variabile, perché inizia con una lettere maiuscola.Quindi non puoi fare l'assegnazione ITEMS = ITEMS1: ti solleverebbe un'ecczione (stai tentando di assegnare un nuovo valore a una costante, che per definizione dev'essere immutabile).Il secondo è che si deve inserire la logica di controllo della variabile. Per cominciare, se si tratta di una classe (quindi definita con "class"), sotto la definizione dell'inizialize (o dove preferisci), ti crei un nuovo metodo: def get_my_items my_items_var = $game_variables[ID_XYZ] return ITEMS0 if my_items_var == 0 return ITEMS1 if my_items_var == 1 return ITEMS2 if my_items_var == 2 end Al posto di ID_XYZ ti metti l'ID della variabile che hai scelto come variabile di controllo degli items (ad es. se hai scelto la 3, sarà $game_variables[3]). Quindi ti crei i tuoi array ITEMS0, ITEMS1, ecc. Alla fine, dovrai sostituire nello script tutte le volte che vedi scritto ITEMS, con il nome del metodo nuovo, ovvero get_my_items. Fine. :)Non l'ho testato ma dovrebbe funzionare. ^.^ Edited February 27, 2015 by Midi Aurora Dreaming The Dreamer (v. 1.1) - standalone 72 MB - Il prequel ad Aurora Dreaming segui il dev-diary ufficiale di Aurora Dreaming! Bacheca Premi http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png Link to comment Share on other sites More sharing options...
0 Hurricane Posted February 27, 2015 Author Share Posted February 27, 2015 Ah!Io sapevo che ITEMS era un array, ma mi mancava il fatto che fosse una costante!infatti ho tentato di eguagliarla in 12056 modi possibili! XDora provo!intanto grazie mille http://www.webgif.org/gif_animate/animali/insetti/immagini/10.gif Link to comment Share on other sites More sharing options...
Question
Hurricane
Ciao a tutti,
stavo modificando uno script e mi sono imbattuto in un problema.
Lo script, subito dopo il "class blablabla" scrive:
ITEMS = [ # Item, probability, graphic x, graphic y, width, height, pattern [:OGGETTO1,20, 0,3, 5,4,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0]], [:OGGETTO2,20, 0,3, 5,4,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0]], [:OGGETTO3,20, 0,3, 5,4,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0]] ]poi partono tutti i "def" dove è richiamato, ad esempio:
for i in ITEMS ptotal+=i[1] endfor i in 0...ITEMS.length rnd-=ITEMS[i][1] if rnd<0 if pbNoDuplicateItems(ITEMS[i][0]) while !added provx=rand(BOARDWIDTH-ITEMS[i][4]+1)Io vorrei creare più di un ITEMS, tipo ITEMS1, ITEMS2,ITEMS3.
Se la variabile è a 1 mi pone l'ITEMS = ITEMS1
se la variabile è a 2 mi pone l'ITEMS = ITEMS2
solo che non so come scriptare l'uguaglianza e come dichiarare questi array aggiuntivi.
se qualcuno puoi aiutarmi... :smile:
http://www.webgif.org/gif_animate/animali/insetti/immagini/10.gif
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now