Best Answer Keroro , 28 August 2022 - 08:11 AM
Ciao
In Rgss3 esistono 3 variabili globali che hanno la lista di tutti gli oggetti esistenti:
$data_weapons con le armi
$data_armors con le armature
$data_items per tutti gli altri oggetti
Gli oggetti che vedi nel menù sono quelli del Game_Party nelle variabili @weapons,@armors, @items.
Il trucco quindi è aggiungere un metodo in Game_Party per cancellare tutti gli oggetti che soddisfino la condizione di non essere oggetto chiave
Il metodo key_item?, che restituisce vero se è l'oggetto chiave, è nella classe RPG::Item
class Game_Party def clear_simple_items @items.delete_if{|item_id| !$data_items[item_id].key_item? } end endVai al post intero
#1 Inviato 28 August 2022 - 00:56 AM
Ciao a tutti, come ho scritto nel titolo vorrei eliminare tutti gli oggetti nell'inventario del giocatore utilizzando uno script call, però senza eliminare armi, armature e oggetti chiave.
Cercando online ho trovato solo script call che eliminano tutto l'inventario, oppure tutorial su come fare questa cosa con un evento comune, ma sarebbe abbastanza lunga come cosa perché nel mio gioco ci sono tantissimi oggetti diversi.
Grazie in anticipo!
#2 Inviato 28 August 2022 - 08:11 AM
Best AnswerIn Rgss3 esistono 3 variabili globali che hanno la lista di tutti gli oggetti esistenti:
$data_weapons con le armi
$data_armors con le armature
$data_items per tutti gli altri oggetti
Gli oggetti che vedi nel menù sono quelli del Game_Party nelle variabili @weapons,@armors, @items.
Il trucco quindi è aggiungere un metodo in Game_Party per cancellare tutti gli oggetti che soddisfino la condizione di non essere oggetto chiave
Il metodo key_item?, che restituisce vero se è l'oggetto chiave, è nella classe RPG::Item
class Game_Party def clear_simple_items @items.delete_if{|item_id| !$data_items[item_id].key_item? } end end
I Miei Script:
Salva Schermata (3 Aprile 2012)
Attacco Personalizzabile (2 Aprile 2012)
Keyboard Input (Porting) (17 Marzo 2012)
Continua...
#3 Inviato 28 August 2022 - 11:09 AM
Attento che @items è un hash di item_id => item_number e non un array.Ciao
In Rgss3 esistono 3 variabili globali che hanno la lista di tutti gli oggetti esistenti:
$data_weapons con le armi
$data_armors con le armature
$data_items per tutti gli altri oggetti
Gli oggetti che vedi nel menù sono quelli del Game_Party nelle variabili @weapons,@armors, @items.
Il trucco quindi è aggiungere un metodo in Game_Party per cancellare tutti gli oggetti che soddisfino la condizione di non essere oggetto chiave
Il metodo key_item?, che restituisce vero se è l'oggetto chiave, è nella classe RPG::Itemclass Game_Party def clear_simple_items @items.delete_if{|item_id| !$data_items[item_id].key_item? } end end
@items.delete_if{ |item_id, _quantity| $data_items[item_id].key_item? }
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
I miei tutorial:
#4 Inviato 28 August 2022 - 12:09 PM
È possibile estrarre meno elementi all'interno dei blocchi, in questo caso scorriamo l'hash come se fosse una lista di chiavi.
Ti lascio un esempio banale che puoi testare:
h = { "a" => 100, "b" => 200 } puts h.select{|key| key < "b"}Quindi l'aggiungere _quantity rende il codice più comprensibile a chi lo vede per la prima volta, ma è superfluo se conosci le strutture dati
I Miei Script:
Salva Schermata (3 Aprile 2012)
Attacco Personalizzabile (2 Aprile 2012)
Keyboard Input (Porting) (17 Marzo 2012)
Continua...