Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Aiuto veloce sull'uguaglianza tra due ARRAY - - - - -

    Hurricane
  • Utente avanzato

  • Utenti
  • Rens: 21
  • 0
  • StellettaStellettaStelletta
  • 414 messaggi
  • Sesso:Maschio
  • Provenienza:Brescia
  • Abilitā:Novizio

#1 Inviato 27 February 2015 - 13:54 PM

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:
 


10.gif


    Midi
  • Alex (Rm2k)

  • Utenti
  • Rens: 83
  • 0
  • StellettaStellettaStellettaStellettaStelletta
  • 962 messaggi
  • Sesso:Maschio
  • Abilitā:Novizio

#2 Inviato 27 February 2015 - 14:14 PM

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


Modificato da Midi, 27 February 2015 - 14:16 PM.

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

post-6-0-39588100-1390575633.png


    Hurricane
  • Utente avanzato

  • Utenti
  • Rens: 21
  • 0
  • StellettaStellettaStelletta
  • 414 messaggi
  • Sesso:Maschio
  • Provenienza:Brescia
  • Abilitā:Novizio

#3 Inviato 27 February 2015 - 14:37 PM

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:


10.gif





  • Feed RSS