Jump to content
Rpg²S Forum
  • 0

Aiuto veloce sull'uguaglianza tra due ARRAY


Hurricane
 Share

Question

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 = 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

  • 0

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 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

  • 0

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! XD
ora provo!
intanto grazie mille :wink:

http://www.webgif.org/gif_animate/animali/insetti/immagini/10.gif

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...