Jump to content
Rpg²S Forum

"S"cambio gruppo


Holy87
 Share

Recommended Posts

Scambio Gruppo

di Holy87


Descrizione:
Con questo script puoi alternare due party differenti per storie parallele. Sarà possibile mantenere per due gruppi diversi oro, oggetti, membri del gruppo ecc..

Istruzioni:
Copiare lo script sotto Materials, prima del Main. Per cambiare gruppo, basta inserire nell'evento il comando "Chiama Script" e inserire il comando "scambio_party"(senza virgolette). Ricordati che la prima volta che il comando viene usato nel gioco il party è nuovo, quindi dovrai subito dopo aggiungere un membro al gruppo.

Script:
$imported = {} if $imported == nil
$imported["H87_PartyExchange"] = true
#===============================================================================
# "S"CAMBIO GRUPPO
#===============================================================================
# Autore: Holy87
# Versione: 1.1
# Difficoltà utente: ★
#-------------------------------------------------------------------------------
# Con questo script puoi alternare due party differenti per storie parallele.
# Sarà possibile mantenere per due gruppi diversi oro, oggetti e addirittura
# membri del gruppo.
#-------------------------------------------------------------------------------
# Istruzioni:
# Copiare lo script sotto Materials, prima del Main. Per cambiare gruppo,
# basta inserire nell'evento il comando "Chiama Script" e inserire il comando
# "scambio_party"(senza virgolette). Ricordati che la prima volta che viene
# usato nel gioco il party è nuovo, quindi dovrai subito dopo aggiungere un
# membro al gruppo.
# Se vuoi che ad un certo punto i due party si uniscano e quindi unificare membri
# denaro ed oggetti, inserisci nel call script "unisci_party".
#-------------------------------------------------------------------------------
# Compatibilità:
# Dovrebbe essere compatibile con tutto.
#-------------------------------------------------------------------------------


#==============================================================================
# ** Game_Interpreter
#==============================================================================
class Game_Interpreter
 
  #--------------------------------------------------------------------------
  # * Chiamata ad evento
  #--------------------------------------------------------------------------
  def scambio_party
    $altern_party = Game_Party.new if $altern_party == nil
    temp_party = $game_party
    $game_party = $altern_party
    $altern_party = temp_party
    $game_player.refresh
    $game_map.need_refresh = true
  end
 
  #--------------------------------------------------------------------------
  # * Unione dei due gruppi
  #--------------------------------------------------------------------------
  def unisci_party
    return if $altern_party == nil
    for member in $altern_party.members
      $game_party.add_actor(member.id)
    end
    for item in $altern_party.all_items
      $game_party.gain_item(item,$altern_party.item_number(item))
    end
    $game_party.gain_gold($altern_party.gold)
    $altern_party = nil
  end
 
    
end

#==============================================================================
# ** DataManager
#==============================================================================
module DataManager
 
  #--------------------------------------------------------------------------
  # * Creazione alias
  #--------------------------------------------------------------------------
  class <<self
    alias altern_msc make_save_contents
    alias altern_esc extract_save_contents
    alias altern_cgo create_game_objects
  end
 
  #--------------------------------------------------------------------------
  # * Aggiunta del secondo party al salvataggio
  #--------------------------------------------------------------------------
  def self.make_save_contents
    contents = altern_msc
    contents[:party2] = $altern_party
    return contents
  end

  #--------------------------------------------------------------------------
  # * Aggiunta del terzo party al salvataggio
  #--------------------------------------------------------------------------
  def self.extract_save_contents(contents)
    $altern_party = contents[:party2]
    altern_esc(contents)
  end
 
  #--------------------------------------------------------------------------
  # * Aggiunta del terzo party al salvataggio
  #--------------------------------------------------------------------------
  def self.create_game_objects
    $altern_party = nil
    altern_cgo
  end
end

Compatibilità:
DataManager -> make_save_contents: alias
DataManager -> extract_save_contents: alias

Bug:
N/A

Note:
N/A Edited by Holy87
Nuova versione

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

Mi serviva proprio!!! Thanks ^^

Il Manifesto del Making Italiano

 

SALVIAMO IL MAKING ITALIANO!!

Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare, postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!!

 

 

GAME CHARACTER HUB - by Sebastien Bini

 

 

http://www.sebissimos.com/gch/img/ban.png

DOWNLOAD: (mi permetto di pubblicizzare questo programma) http://www.sebissimo....php?p=download

Link to comment
Share on other sites

Domande:

-C'è un modo per mettere dei membri da un gruppo all'altro?

-Si possono riunire i due gruppi?

-Si possono creare più di 2 gruppi?

Edited by alegasta92

http://imageshack.us/a/img28/750/logoteame.pngVisita il progetto:http://www.rpg2s.net/forum/index.php?showtopic=16180

 

http://imageshack.us/a/img35/7336/senzatitolo2ui.pnghttp://imageshack.us/a/img842/2346/copertinal.png

 

Link to comment
Share on other sites

Domande:

-C'è un modo per mettere dei membri da un gruppo all'altro?

-Si possono riunire i due gruppi?

-Si possono creare più di 2 gruppi?

  1. puoi aggiungere tranquillamente l'eroe tramite evento ad un gruppo, e poi quando chiami il secondo gruppo lo rimuovi
  2. Con la nuova versione caricata, sì. Verranno uniti membri, denaro ed oggetti raccolti.
  3. Con questa versione no.

Ho caricato una nuova versione con bugfix e unione dei gruppi.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

Oh veniva corto, credevo fosse più articolato! ^ ^

 

Ho caricato una nuova versione con bugfix e unione dei gruppi.

E:3

Mmmh in caso di divisione di nuovo dei due gruppo l'inventario rimane ad uno? Mettere una spartizione dei beni sarebbe troppo complesso? ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

Oh veniva corto, credevo fosse più articolato! ^ ^

 

E:3

Mmmh in caso di divisione di nuovo dei due gruppo l'inventario rimane ad uno? Mettere una spartizione dei beni sarebbe troppo complesso? ^ ^

quando si uniscono i gruppi il secondo viene eliminato. Se vuoi spartire gli oggetti lo fai da solo XD

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

Ottimo script: Quando sposto un eroe da un party all'altro, rimane esperienza, equipaggiamento e altro?

http://imageshack.us/a/img28/750/logoteame.pngVisita il progetto:http://www.rpg2s.net/forum/index.php?showtopic=16180

 

http://imageshack.us/a/img35/7336/senzatitolo2ui.pnghttp://imageshack.us/a/img842/2346/copertinal.png

 

Link to comment
Share on other sites

quando si uniscono i gruppi il secondo viene eliminato. Se vuoi spartire gli oggetti lo fai da solo XD

Intendevo quando si ridividevano in gruppi una schermata tipo oggetto oggetto in game :D

^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 1 month later...

Siccome parli di due party mi è sorto un dubbio:

 

Abbiamo un gruppo A ed un gruppo B.

Quando li uniamo, diventa quindi un gruppo C.

Ora: A questo punto potremo creare un gruppo D che si unirà al gruppo C, giusto?

Progetti in Corso:




...



Link to comment
Share on other sites

Quando unisci il gruppo A con il gruppo B, vengono semplicemente trasferiti oggetti, personaggi e denaro dal gruppo B al gruppo A, quindi il gruppo B viene eliminato. A questo punto potrai creare un nuovo gruppo D.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 9 months later...

Siccome nel mio progetto il numero di oggetti trasportabili è limitato mi chiedevo: Sarebbe possibile, in qualche modo, fare in modo che gli oggetti del party 2 vengano "memorizzati" in un altro evento quando i party si uniscono?

Mi spiego:

Il party 1 si unisce al party 2.

Appare un messaggio: Gli oggetti del party 2 sono stati depositati nell' "Evento 1"

Attivando l'evento 1 avremo accesso a tali oggetti (una specie di banca insomma)

 

In caso contrario mi arrangerei a variabili, ma impostare una variabile per ogni oggetto che è possibile ottenere diventa una cosa davvero lunga...

 

se può servire utilizzo già questo script come deposito, nel caso fosse più semplice si potrebbero trasferire lì...

 

 

 

#------------------------------------------------------------------------------#
#  Galv's Item/Bank Storage
#------------------------------------------------------------------------------#
#  For: RPGMAKER VX ACE
#  Version 1.7
#------------------------------------------------------------------------------#
#  2012-10-24 - Version 1.7 - Added multiple storages controlled with variable.
#                           - Changed name to Item/Bank Storage
#                           - changed alias naming for compatibility
#  2012-10-19 - Version 1.6 - Bug fixes
#  2012-10-19 - Version 1.5 - Fixed a max gold and withdrawing issue.
#                           - Added deposit all and withdraw all gold buttons.
#                           - party gold and item limits can now be set or use
#                           - the limit from a limit breaking script. (in theory)
#  2012-10-18 - Version 1.4 - Other small fixes
#  2012-10-18 - Version 1.3 - Added banking SE
#  2012-10-18 - Version 1.2 - Added gold storage and more script calls
#  2012-10-17 - Version 1.1 - Added script calls to control stored items.
#  2012-10-16 - Version 1.0 - Released
#------------------------------------------------------------------------------#
#  An item storage script. Allows the player to store as many items as he/she
#  requires in bank-like storage that can be accessed from anywhere.
#   
#  This script differs to my "Multiple Storage containers" script in that you
#  can have "banks" that store items and gold and can be accessed from anywhere.
#  It was designed to be used for one bank, but now has option to have more if
#  required.
#
#  My "Multiple Storage Containers" script stores only items within certain
#  events that can only be accessed by activating the particular event. This was
#  designed for location specific containers like chests, barrels, etc.
#
#  Here are some script calls that might be useful:
#------------------------------------------------------------------------------#
#
#  open_storage                         # Opens the item storage scene
#
#  store_add(type, id, amount)          # creates an item in storage
#  store_rem(type, id, amount)          # destroys an item in storage
#  store_count(type, id)                # returns amount of an item in storage
#
#  bank_add(amount)                     # adds amount of gold to bank
#  bank_rem(amount)                     # removes amount of gold from bank
#  bank_count                           # returns amount of gold in bank
#
#------------------------------------------------------------------------------#
#  EXPLAINATION:
#  type      this can be "weapon", "armor" or "item"
#  id        the ID of the item/armor/weapon
#  amount    the number of the item/armor/weapon/gold you want to remove
#
#  EXAMPLE OF USE:
#  store_add("weapon", 5, 20)
#  store_rem("item", 18, 99)
#  store_count("armor", 1)
#  bank_add(100)
#------------------------------------------------------------------------------#
#  More setup options further down.
#------------------------------------------------------------------------------#
 
$imported = {} if $imported.nil?
$imported["Item_Storage"] = true
 
module Storage
 
#------------------------------------------------------------------------------#
#  SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#
 
  # BOX VARIABLE
  BOX_VAR = 0    # This is the variable ID to use to determine which box you are
                 # adding/removing items from. Set the variable to a box number
                 # right before any add/remove or opening storage script calls
                 # to tell them which box they will affect.
                 # Set to 0 if you only want 1 box storage in your game. You
                 # then don't have to change a variable before each script call.
 
 
  # COMMAND LIST VOCAB
  BANK = "\\i[1460] Bank"
  STORE = "Store Item"
  REMOVE = "Remove Item"
  CANCEL = "Cancel"
 
  # OTHER VOCAB
  IN_STORAGE = "In Storage"
  IN_INVENTORY = "In Inventory"
   
  GOLD_INVENTORY = "Party:"
  GOLD_BANKED = "Banked:"
  BANK_HELP = "Hold DOWN to deposit. Hold UP to withdraw." + "\n" +
              "Press R to deposit all. Press L to withdraw all."
   
 
  # OTHER OPTIONS
  SE = ["Equip2", 90, 100]        # Sound effect when storing/removing an item
  SE_BANK = ["Shop", 50, 150]     # Repeating sound effect when banking gold
                                  # ["SE Name", volume, pitch]
   
  STORE_PRICELESS = true          # Items worth 0 can be stored? true or false
  STORE_KEY = true                # Key items can be stored? true or false
 
   
  # PARTY LIMITS
  # NOTE: These limits set to 0 will use the default limits. In theory this will
  # be compatible with a limit breaker script by leaving them at 0. Or you can
  # set the party limits below to whatever you like.
   
  MAX_GOLD = 0                    # Max gold your PARTY can carry.
                                  # This will overwrite the default limit.
                                  # 0 means do not use this.
 
  MAX_ITEMS = 0                   # Max items your PARTY can carry.
                                  # This will overwrite the default limit.
                                  # 0 means do not use this.
 
 
#------------------------------------------------------------------------------#
#  SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#
 
end
 
 
class Scene_ItemBank < Scene_MenuBase
  def start
    super
    check_storage_exists
    create_help_window
    create_command_window
    create_dummy_window
    create_bank_window
    create_number_window
    create_status_window
    create_category_window
    create_take_window
    create_give_window
     
  end
   
  def check_storage_exists
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].nil?
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]] = {}
    end
  end
   
   
  #--------------------------------------------------------------------------
  # Create Windows
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_BankCommand.new(Graphics.width)
    @command_window.viewport = @viewport
    @command_window.y = @help_window.height
    @command_window.set_handler(:bank,   method(:command_bank))
    @command_window.set_handler(:give,   method(:command_give))
    @command_window.set_handler(:take,    method(:command_take))
    @command_window.set_handler(:cancel, method(:return_scene))
  end
  def create_dummy_window
    wy = @command_window.y + @command_window.height
    wh = Graphics.height - wy
    @dummy_window = Window_Base.new(0, wy, Graphics.width, wh)
    @dummy_window.viewport = @viewport
  end
  def create_bank_window
    @bank_window = Window_Bank.new
    @bank_window.viewport = @viewport
    @bank_window.x = 0
    @bank_window.y = @help_window.height + @command_window.height
    @bank_window.hide
    @bank_window.set_handler(:ok,     method(:on_bank_cancel))
    @bank_window.set_handler(:cancel, method(:on_bank_cancel))
 
  end
   
  def create_number_window
    wy = @dummy_window.y
    wh = @dummy_window.height
    @number_window = Window_BankNumber.new(0, wy, wh)
    @number_window.viewport = @viewport
    @number_window.hide
    @number_window.set_handler(:ok,     method(:on_number_ok))
    @number_window.set_handler(:cancel, method(:on_number_cancel))
  end
  def create_status_window
    wx = @number_window.width
    wy = @dummy_window.y
    ww = Graphics.width - wx
    wh = @dummy_window.height
    @status_window = Window_BankItems.new(wx, wy, ww, wh)
    @status_window.viewport = @viewport
    @status_window.hide
  end
  def create_category_window
    @category_window = Window_ItemCategory.new
    @category_window.viewport = @viewport
    @category_window.help_window = @help_window
    @category_window.y = @dummy_window.y
    @category_window.hide.deactivate
    @category_window.set_handler(:ok,     method(:on_category_ok))
    @category_window.set_handler(:cancel, method(:on_category_cancel))
  end
  def create_give_window
    wy = @category_window.y + @category_window.height
    wh = Graphics.height - wy
    @give_window = Window_BankGive.new(0, wy, Graphics.width, wh)
    @give_window.viewport = @viewport
    @give_window.help_window = @help_window
    @give_window.hide
    @give_window.set_handler(:ok,     method(:on_give_ok))
    @give_window.set_handler(:cancel, method(:on_give_cancel))
    @category_window.item_window = @give_window
  end
  def create_take_window
    wy = @command_window.y + @command_window.height
    wh = Graphics.height - wy
    @take_window = Window_BankTake.new(0, wy, Graphics.width, wh)
    @take_window.viewport = @viewport
    @take_window.help_window = @help_window
    @take_window.hide
    @take_window.set_handler(:ok,     method(:on_take_ok))
    @take_window.set_handler(:cancel, method(:on_take_cancel))
    @category_window.item_window = @take_window
  end
 
  #--------------------------------------------------------------------------
  # * Activate Windows
  #--------------------------------------------------------------------------
  def activate_give_window
    @category_window.show
    @give_window.refresh
    @give_window.show.activate
    @status_window.hide
  end
  def activate_take_window
    @take_window.select(0)
    @take_window.refresh
    @take_window.show.activate
    @status_window.hide
  end
  def activate_bank_window
    @bank_window.refresh
    @bank_window.show.activate
    @help_window.set_text(Storage::BANK_HELP)
  end
 
   
  #--------------------------------------------------------------------------
  # HANDLER METHODS
  #--------------------------------------------------------------------------
  def on_category_ok
    activate_give_window
    @give_window.select(0)
  end
  def on_category_cancel
    @command_window.activate
    @dummy_window.show
    @category_window.hide
    @give_window.hide
  end
  def command_give
    @dummy_window.hide
    @category_window.show.activate
    @give_window.show
    @give_window.unselect
    @give_window.refresh
  end
  def on_give_ok
    @item = @give_window.item
    if @item.nil?
      RPG::SE.stop
      Sound.play_buzzer
      @give_window.activate
      @give_window.refresh
      return
    else
      @status_window.item = @item
      @category_window.hide
      @give_window.hide
      @number_window.set(@item, max_give)
      @number_window.show.activate
      @status_window.show
    end
  end
  def on_give_cancel
    @give_window.unselect
    @category_window.activate
    @status_window.item = nil
    @help_window.clear
  end
  def command_take
    @dummy_window.hide
    activate_take_window
    @take_window.show
    @take_window.refresh
  end
  def command_bank
    #@dummy_window.hide
    activate_bank_window
    @bank_window.show
    @bank_window.refresh
  end
  def on_bank_cancel
    @command_window.activate
    @dummy_window.show
    @category_window.hide
    @bank_window.hide
    @help_window.clear
  end
  def on_take_ok
    @item = @take_window.item
    if @item.nil? || $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].empty? || $game_party.item_number(@item) == $game_party.max_item_number(@item)
      RPG::SE.stop
      Sound.play_buzzer
      @take_window.activate
      @take_window.refresh
      return
    elsif
      @item = @take_window.item
      @status_window.item = @item
      @take_window.hide
      @number_window.set(@item, max_take)
      @number_window.show.activate
      @status_window.show
    end
  end
  def on_take_cancel
    @take_window.unselect
    @command_window.activate
    @dummy_window.show
    @take_window.hide
    @status_window.item = nil
    @help_window.clear
  end
  def on_number_ok
    RPG::SE.new(Storage::SE[0], Storage::SE[1], Storage::SE[2]).play
    case @command_window.current_symbol
    when :take
      do_take(@number_window.number)
    when :give
      do_give(@number_window.number)
    end
    end_number_input
    @status_window.refresh
  end
  def on_number_cancel
    Sound.play_cancel
    end_number_input
  end
  def end_number_input
    @number_window.hide
    case @command_window.current_symbol
    when :take
      activate_take_window
    when :give
      activate_give_window
    end
  end 
   
  #--------------------------------------------------------------------------
  # * Giving and taking methods
  #--------------------------------------------------------------------------
  def max_take
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] > $game_party.max_item_number(@item) - $game_party.item_number(@item)
      $game_party.max_item_number(@item) - $game_party.item_number(@item)
    else
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item]
    end
  end
  def max_give
    $game_party.item_number(@item)
  end
  def do_give(number)
    $game_party.lose_item(@item, number)
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item].nil?
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] = number
    else
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] += number
    end
  end
  def do_take(number)
    return if @item.nil?
    $game_party.gain_item(@item, number)
    $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] -= number
    $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].delete(@item) if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] <= 0
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].empty?
      @take_window.activate
    end
  end
   
end # Scene_ItemBank < Scene_MenuBase
 
 
#------------------------------------------------------------------------------#
#  Window Stored Items
#------------------------------------------------------------------------------#
 
class Window_StoreList_Bank < Window_Selectable
  def initialize(x, y, width, height)
    super
    @category = :none
    @data = []
  end
  def category=(category)
    return if @category == category
    @category = category
    refresh
    self.oy = 0
  end
  def col_max
    return 2
  end
  def item_max
    @data ? @data.size : 1
  end
  def item
    @data && index >= 0 ? @data[index] : nil
  end
  def current_item_enabled?
    enable?(@data[index])
  end
  def include?(item)
    case @category
    when :item
      item.is_a?(RPG::Item) && !item.key_item?
    when :weapon
      item.is_a?(RPG::Weapon)
    when :armor
      item.is_a?(RPG::Armor)
    when :key_item
      item.is_a?(RPG::Item) && item.key_item?
    else
      false
    end
  end
  def enable?(item)
    $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].has_key?(item)
  end
  def make_item_list
    @data = $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].keys {|item| include?(item) }
    @data.push(nil) if include?(nil)
  end
  def select_last
    select(@data.index($game_party.last_item.object) || 0)
  end
  def draw_item(index)
    item = @data[index]
    if item
      rect = item_rect(index)
      rect.width -= 4
      draw_item_name(item, rect.x, rect.y, enable?(item))
      draw_item_number(rect, item)
    end
  end
  def draw_item_number(rect, item)
    draw_text(rect, sprintf(":%2d", $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][item]), 2)
  end
  def update_help
    @help_window.set_item(item)
  end
  def refresh
    make_item_list
    create_contents
    draw_all_items
  end
end # Window_StoreList_Bank < Window_Selectable
 
 
#------------------------------------------------------------------------------#
#  Window Stored Item amount
#------------------------------------------------------------------------------#
 
class Window_BankNumber < Window_Selectable
  attr_reader :number
  def initialize(x, y, height)
    super(x, y, window_width, height)
    @item = nil
    @max = 1
    @number = 1
  end
  def window_width
    return 304
  end
  def set(item, max)
    @item = item
    @max = max
    @number = 1
    refresh
  end
  def refresh
    contents.clear
    draw_item_name(@item, 0, item_y)
    draw_number
  end
  def draw_number
    change_color(normal_color)
    draw_text(cursor_x - 28, item_y, 22, line_height, "×")
    draw_text(cursor_x, item_y, cursor_width - 4, line_height, @number, 2)
  end
  def item_y
    contents_height / 2 - line_height * 3 / 2
  end
  def cursor_width
    figures * 10 + 12
  end
  def cursor_x
    contents_width - cursor_width - 4
  end
  def figures
    return 2
  end
  def update
    super
    if active
      last_number = @number
      update_number
      if @number != last_number
        Sound.play_cursor
        refresh
      end
    end
  end
  def update_number
    change_number(1)   if Input.repeat?(:RIGHT)
    change_number(-1)  if Input.repeat?(:LEFT)
    change_number(10)  if Input.repeat?(:UP)
    change_number(-10) if Input.repeat?(:DOWN)
  end
  def change_number(amount)
    @number = [[@number + amount, @max].min, 1].max
  end
  def update_cursor
    cursor_rect.set(cursor_x, item_y, cursor_width, line_height)
  end
   
end # Window_BankNumber < Window_Selectable
 
 
#------------------------------------------------------------------------------#
#  Window Store Item Status
#------------------------------------------------------------------------------#
 
class Window_BankItems < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @item = nil
    @page_index = 0
    refresh
  end
  def refresh
    contents.clear
    draw_possession(4, 0)
    draw_stored(4, line_height)
    draw_equip_info(4, line_height * 2) if @item.is_a?(RPG::EquipItem)
  end
  def item=(item)
    @item = item
    refresh
  end
  def draw_possession(x, y)
    rect = Rect.new(x, y, contents.width - 4 - x, line_height)
    change_color(system_color)
    draw_text(rect, Storage::IN_INVENTORY)
    change_color(normal_color)
    draw_text(rect, $game_party.item_number(@item), 2)
  end
  def draw_stored(x, y)
    rect = Rect.new(x, y, contents.width - 4 - x, line_height)
    change_color(system_color)
    draw_text(rect, Storage::IN_STORAGE)
    change_color(normal_color)
    stored_amount = $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item]
    stored_amount = 0 if stored_amount.nil?
    draw_text(rect, stored_amount, 2)
  end
  def draw_equip_info(x, y)
    status_members.each_with_index do |actor, i|
      draw_actor_equip_info(x, y + line_height * (i * 2.4), actor)
    end
  end
  def status_members
    $game_party.members[@page_index * page_size, page_size]
  end
  def page_size
    return 4
  end
  def page_max
    ($game_party.members.size + page_size - 1) / page_size
  end
  def draw_actor_equip_info(x, y, actor)
    enabled = actor.equippable?(@item)
    change_color(normal_color, enabled)
    draw_text(x, y, 112, line_height, actor.name)
    item1 = current_equipped_item(actor, @item.etype_id)
    draw_actor_param_change(x, y, actor, item1) if enabled
    draw_item_name(item1, x, y + line_height, enabled)
  end
  def draw_actor_param_change(x, y, actor, item1)
    rect = Rect.new(x, y, contents.width - 4 - x, line_height)
    change = @item.params[param_id] - (item1 ? item1.params[param_id] : 0)
    change_color(param_change_color(change))
    draw_text(rect, sprintf("%+d", change), 2)
  end
  def param_id
    @item.is_a?(RPG::Weapon) ? 2 : 3
  end
  def current_equipped_item(actor, etype_id)
    list = []
    actor.equip_slots.each_with_index do |slot_etype_id, i|
      list.push(actor.equips[i]) if slot_etype_id == etype_id
    end
    list.min_by {|item| item ? item.params[param_id] : 0 }
  end
  def update
    super
    update_page
  end
  def update_page
    if visible && Input.trigger?(:A) && page_max > 1
      @page_index = (@page_index + 1) % page_max
      refresh
    end
  end
   
end # Window_BankItems < Window_Base
 
 
#------------------------------------------------------------------------------#
#  Window Give Item
#------------------------------------------------------------------------------#
 
class Window_BankGive < Window_ItemList
  def initialize(x, y, width, height)
    super(x, y, width, height)
  end
  def current_item_enabled?
    enable?(@data[index])
  end
  def enable?(item)
    if item.is_a?(RPG::Item)
      return false if item.key_item? && !Storage::STORE_KEY
    end
    if Storage::STORE_PRICELESS
      true
    else
      item && item.price > 0
    end
  end
end
 
 
#------------------------------------------------------------------------------#
#  Window Take Item
#------------------------------------------------------------------------------#
 
class Window_BankTake < Window_StoreList_Bank
  def initialize(x, y, width, height)
    super(x, y, width, height)
  end
  def current_item_enabled?
    enable?(@data[index])
  end
  def enable?(item)
    $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][item] != 0 && $game_party.item_number(item) < $game_party.max_item_number(@item)
  end
end
 
 
#------------------------------------------------------------------------------#
#  Window Command
#------------------------------------------------------------------------------#
 
class Window_BankCommand < Window_HorzCommand
  def initialize(window_width)
    @window_width = window_width
    super(0, 0)
  end
  def window_width
    @window_width
  end
  def col_max
    return 4
  end
  def make_command_list
    add_command(Storage::BANK, :bank)
    add_command(Storage::STORE,    :give)
    add_command(Storage::REMOVE,   :take)
    add_command(Storage::CANCEL, :cancel)
  end
end
 
 
#------------------------------------------------------------------------------#
#  Window Bank
#------------------------------------------------------------------------------#
 
class Window_Bank < Window_Selectable
  def initialize
    super(0, 0, window_width, fitting_height(2))
    refresh
    @deposit_rate = 1
    @withdraw_rate = 1
  end
  def window_width
    return Graphics.width / 2
  end
  alias galv_bank_update update
  def update
    galv_bank_update
    gold_transfer if self.active
  end
  def gold_transfer
    if Input.repeat?(:DOWN) && $game_party.gold > 0 || Input.repeat?(:UP) && $game_party.gold_stored > 0 && $game_party.gold < $game_party.max_gold
        RPG::SE.new(Storage::SE_BANK[0], Storage::SE_BANK[1], Storage::SE_BANK[2]).play
    end
    if Input.press?(:DOWN)
      before = $game_party.gold
      $game_party.lose_gold(@deposit_rate)
      after = $game_party.gold
      $game_party.gold_stored += before - after
      @deposit_rate += 1
      refresh
    end
    if Input.trigger?(:R) && !Input.press?(:DOWN) && !Input.press?(:UP)
      return if $game_party.gold == 0
      before = $game_party.gold
      $game_party.lose_gold($game_party.gold)
      after = $game_party.gold
      $game_party.gold_stored += before - after
      refresh
      RPG::SE.new(Storage::SE_BANK[0], Storage::SE_BANK[1], Storage::SE_BANK[2]).play
    end
    if !Input.press?(:DOWN)
      @deposit_rate = 1
    end
    if Input.press?(:UP)
      return if $game_party.gold == $game_party.max_gold
      @withdraw_rate = $game_party.gold_stored if @withdraw_rate >= $game_party.gold_stored
      if @withdraw_rate + $game_party.gold > $game_party.max_gold
        @withdraw_rate = $game_party.max_gold - $game_party.gold
      end
      before = $game_party.gold_stored
      $game_party.gold_stored -= @withdraw_rate
      after = $game_party.gold_stored
      $game_party.gain_gold(before - after)
      if $game_party.gold_stored == 0
        return refresh
      end
      @withdraw_rate += 1
      refresh
    end
     
    if Input.trigger?(:L) && !Input.press?(:DOWN) && !Input.press?(:UP)
      take_all_gold = $game_party.gold_stored
      return if $game_party.gold == $game_party.max_gold || $game_party.gold_stored == 0
      if take_all_gold + $game_party.gold > $game_party.max_gold
        take_all_gold = $game_party.max_gold - $game_party.gold
      end
      before = $game_party.gold_stored
      $game_party.gold_stored -= take_all_gold
      after = $game_party.gold_stored
      $game_party.gain_gold(before - after)
      refresh
      RPG::SE.new(Storage::SE_BANK[0], Storage::SE_BANK[1], Storage::SE_BANK[2]).play
    end
    if !Input.press?(:UP)
      @withdraw_rate = 1
    end
  end
  def refresh
    contents.clear
    draw_gold_location(Storage::GOLD_INVENTORY, 0, 0, 250)
    draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
    draw_gold_location(Storage::GOLD_BANKED, 0, line_height * 1, 250)
    draw_currency_value(value_stored, currency_unit, 4, line_height * 1, contents.width - 8)
  end
  def draw_gold_location(vocab, x, y, width)
    change_color(system_color)
    draw_text(x, y, width, line_height, vocab)
  end
  def value
    $game_party.gold
  end
  def value_stored
    $game_party.gold_stored
  end
  def currency_unit
    Vocab::currency_unit
  end
  def open
    refresh
    super
  end
end
 
 
#------------------------------------------------------------------------------#
#  Game Party Additions
#------------------------------------------------------------------------------#
 
 
class Game_Party < Game_Unit
  attr_accessor :multi_storage
  attr_accessor :gold_stored
   
  alias galv_bank_init_all_items init_all_items
  def init_all_items
    galv_bank_init_all_items
    @storage = {}
    @stored_items = {}
    @stored_weapons = {}
    @stored_armors = {}
    @gold_stored = 0
  end
   
  def multi_storage
    @storage
  end
  def storage
    @stored_items
    @stored_weapons
    @stored_armors
  end
  def gold_stored
    @gold_stored
  end
 
  alias galv_bank_max_gold max_gold
  def max_gold
    return Storage::MAX_GOLD if Storage::MAX_GOLD > 0
    galv_bank_max_gold
  end
   
  alias galv_bank_max_item_number max_item_number
  def max_item_number(item)
    return Storage::MAX_ITEMS if Storage::MAX_ITEMS > 0
    return 99 if item.nil?
    galv_bank_max_item_number(item)
  end
   
end # Game_Party < Game_Unit
 
 
class Game_Interpreter
  def store_add(type, id, amount)
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].nil?
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]] = {}
    end
    case type
    when "weapon"
      @item = $data_weapons[id]
    when "item"
      @item = $data_items[id]
    when "armor"
      @item = $data_armors[id]
    end
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item].nil?
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] = amount
    else
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] += amount
    end
  end
  def store_rem(type, id, amount)
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].nil?
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]] = {}
    end
    case type
    when "weapon"
      @item = $data_weapons[id]
    when "item"
      @item = $data_items[id]
    when "armor"
      @item = $data_armors[id]
    end
    return if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item].nil?
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] <= amount
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].delete(@item)
    else
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item] -= amount
    end
  end
  def store_count(type, id)
    if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]].nil?
      $game_party.multi_storage[$game_variables[Storage::BOX_VAR]] = {}
    end
    case type
    when "weapon"
      @item = $data_weapons[id]
    when "item"
      @item = $data_items[id]
    when "armor"
      @item = $data_armors[id]
    end
    return 0 if $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item].nil?
    $game_party.multi_storage[$game_variables[Storage::BOX_VAR]][@item]
  end
  def bank_add(amount)
    $game_party.gold_stored += amount
  end
  def bank_rem(amount)
    $game_party.gold_stored -= amount
    $game_party.gold_stored = 0 if $game_party.gold_stored < 0
  end
  def bank_count
    $game_party.gold_stored
  end
  def open_storage
    SceneManager.call(Scene_ItemBank)
  end
end

 

 

Edited by nomorehero

http://i.imgur.com/NwhgV4X.png

 

Link to comment
Share on other sites

Da quello che vedo, basta cambiare questa opzione all'inizio dello script:

BOX_VAR = 0

dove al posto di 0 metti l'ID di una Variabile a tua scelta (chiamiamola "Variabile Storage").

 

In questo modo, ogni volta che cambi la Variabile Storage, lo storage dove depositi/prelevi cambia.

Quindi se la variabile è a 0, starai usando lo storage 0, se la variabile è a 1 starai usando lo storage 1, e così via.

 

Nel tuo caso specifico, tu normalmente potresti usare lo storage 0. Quando poi i due party si uniscono, puoi far depositare gli oggetti del secondo party nello storage 1, dopodiché setti nuovamente la Variabile Storage a 0.

Poi ti crei un Evento "Banca oggetti del secondo party", che permette di recuperarli. In quell'Evento la Variabile Storage la setti a 1, e quando esci dall'Evento la risetti a 0.

 

Spero sia chiaro, stamattina sono un po' fuso... ^:^"

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

Da quello che vedo, basta cambiare questa opzione all'inizio dello script:

BOX_VAR = 0

dove al posto di 0 metti l'ID di una Variabile a tua scelta (chiamiamola "Variabile Storage").

 

In questo modo, ogni volta che cambi la Variabile Storage, lo storage dove depositi/prelevi cambia.

Quindi se la variabile è a 0, starai usando lo storage 0, se la variabile è a 1 starai usando lo storage 1, e così via.

 

Nel tuo caso specifico, tu normalmente potresti usare lo storage 0. Quando poi i due party si uniscono, puoi far depositare gli oggetti del secondo party nello storage 1, dopodiché setti nuovamente la Variabile Storage a 0.

Poi ti crei un Evento "Banca oggetti del secondo party", che permette di recuperarli. In quell'Evento la Variabile Storage la setti a 1, e quando esci dall'Evento la risetti a 0.

 

Spero sia chiaro, stamattina sono un po' fuso... ^:^"

 

Si, quello si, ma forse non mi sono spiegato:

Quello che volevo sapere non era in che box depositare gli oggetti, ma in buona sostanza come far "leggere" al sistema gli oggetti contenuti nell inventario due da far apparire nel box, senza dover creare un megevento comune con una variabile per ogni oggetto possibile.

Edited by nomorehero

http://i.imgur.com/NwhgV4X.png

 

Link to comment
Share on other sites

Non conosco bene lo script, ma non potresti fare così?

1) quando vuoi leggere gli oggetti del secondo inventario, depositi tutti gli oggetti dell'inventario normale in un nuovo storage temporaneo, e carichi invece quelli del secondo inventario.

2) quando hai finito, ridepositi il secondo inventario nel suo storage, e ricarichi l'inventario normale dallo storage temporaneo...

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

Non conosco bene lo script, ma non potresti fare così?

1) quando vuoi leggere gli oggetti del secondo inventario, depositi tutti gli oggetti dell'inventario normale in un nuovo storage temporaneo, e carichi invece quelli del secondo inventario.

2) quando hai finito, ridepositi il secondo inventario nel suo storage, e ricarichi l'inventario normale dallo storage temporaneo...

Si, ma il problema è proprio avere modo di depositare tutti gli oggetti dell'inventario, non sapendo quali oggetti avremo in quel momento nell'inventario.

La soluzione "lunga" sarebbe creare una variabile per ogni oggetto, memorizzarla, ed utilizzarla aggiungendo X oggetti, dove X è la variabile di cui sopra.

Pensavo ci fosse un modo più veloce...

http://i.imgur.com/NwhgV4X.png

 

Link to comment
Share on other sites

Ah ok, non avevo guardato i comandi dello script, pensavo fosse già possibile depositare/prelevare in blocco tutti gli oggetti dell'inventario.

 

A questo punto andrebbe modificato lo script, non vedo alternative. Servirebbe un comando di bulk-storage/retrieve...

 

Sorry, non posso aiutarti per ora... :|

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

  • 9 months later...

Sarebbe molto macchinoso aggiungere la possibilità di avere 4 party?

Ci vorrebbe uno script diverso credo.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 4 months later...

Scusami Holy sono un rompi palle...lo script è fantastico ma purtroppo a cause di un altro mio script da errore.

questo è lo script

 

 

#------------------------------------------------------------------------------#
# Galv's Jump Ability
#------------------------------------------------------------------------------#
# For: RPGMAKER VX ACE
# Version 1.6
#------------------------------------------------------------------------------#
# 2013-06-02 - Version 1.6 - fixed a bug with region block jumping
# 2013-03-14 - Version 1.5 - fixed priority bug when jumping behind things
# - cleaned up code a bit
# 2013-01-15 - Version 1.4 - added follower jumping
# 2013-01-11 - Version 1.3 - added ability to make event pages block jumping
# 2012-12-05 - Version 1.2 - fixed some more bugs
# 2012-11-30 - Version 1.1 - fixed jumping in vehicles bug
# 2012-11-29 - Version 1.0 - release
#------------------------------------------------------------------------------#
# This script allows the player to jump with the press of a button. The player
# will jump as far as their max distance will take them without landing on a
# blocked tile. Use regions to block players jumping completely to prevent the
# player from doing things like jumping between rooms.
#------------------------------------------------------------------------------#
# INSTRUCTIONS:
# Put script under Materials and above Main
# Read options and settings below.
#------------------------------------------------------------------------------#

#------------------------------------------------------------------------------#
# COMMENT FOR EVENT (Must be first event command)
#------------------------------------------------------------------------------#
#
#
#
# add this comment as the first event command of a page to make it unable to
# be jumped over. Change the page to a new event page without the comment when
# you want it to be jumpable.

#------------------------------------------------------------------------------#
# NOTETAG FOR ACTORS, ARMORS, WEAPONS
#------------------------------------------------------------------------------#
#
# # Adds that many tiles to jump distance
#
#------------------------------------------------------------------------------#
# Only the jump bonus for the party leader and his/her equips are calculated
#------------------------------------------------------------------------------#
# SCRIPT CALL:
# You can change an actor's jump bonus (that was set with the notetag) during
# the game with a script call:
#
# jump_bonus(actor_id,jump_bonus)
#
# EXAMPLE:
# jump_bonus(3,2) # Changes actor 3's jump bonus to 2
#------------------------------------------------------------------------------#

($imported ||= {})["Galvs_Jump_Ability"] = true
module Galv_Jump

#------------------------------------------------------------------------------#
# SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#
# ISTRUZIONI ITALIANE
#cambiare i parametri sotto come si desidera
#
#per modificarli durante il gioco :
# CON SCRIPT: jump_bonus(IDeroe,ValoreDiJump)
# con equip: aggiungere nei commenti:
#
#
#
#------------------------------------------------------------------------------#
DISABLE_SWITCH =40 # Cannot jump when this switch is ON

BUTTON = :X # Button to press to jump. :X is "a" key.

DEFAULT_DISTANCE = 1 # Distance player can jump with no bonuses
SPRINT_BONUS = -1 # Distance increased with a running jump

JUMP_SE = ["Jump2", 50, 120]

MAX_JUMP_BONUS = 3 # The maximum bonus you can get from equips/actors

NO_JUMP_REGIONS = [1,23,3] # Region ID's that the player cannot jump over

#------------------------------------------------------------------------------#
# END SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#

end

class RPG::BaseItem
def jump_bonus
if @jump_bonus.nil?
if @note =~ //i
@jump_bonus = $1.to_i
else
@jump_bonus = 0
end
end
@jump_bonus
end
end # RPG::BaseItem


class Game_Player < Game_Character
attr_accessor :priority_type

alias galv_jump_player_initialize initialize
def initialize
galv_jump_player_initialize
@jump_equip_bonus = 0
end

alias galv_jump_player_refresh refresh
def refresh
get_jump_equip_bonus
galv_jump_player_refresh
end

def get_jump_equip_bonus
bonus = 0 + $game_party.leader.jump_bonus
$game_party.leader.equips.each { |eq| bonus += eq.jump_bonus if !eq.nil?}
@jump_equip_bonus = [bonus,Galv_Jump::MAX_JUMP_BONUS].min
end

alias galv_jump_move_by_input move_by_input
def move_by_input
return if jumping?
@priority_type = 1 if !jumping?
galv_jump_move_by_input
if !$game_switches[Galv_Jump::DISABLE_SWITCH] && Input.trigger?(Galv_Jump::BUTTON)
do_jump if !$game_map.interpreter.running? && !jumping? && normal_walk?
end
end

def do_jump
get_bonuses
@distance = Galv_Jump::DEFAULT_DISTANCE + @jump_bonus
check_region
check_distance
if @can_jump
RPG::SE.new(Galv_Jump::JUMP_SE[0], Galv_Jump::JUMP_SE[1], Galv_Jump::JUMP_SE[2]).play
jump(@jump_x, @jump_y)
@followers.each { |f| f.jump(@x - f.x, @y - f.y) }
end
end

def get_bonuses
@jump_bonus = 0 + @jump_equip_bonus
@jump_bonus += Galv_Jump::SPRINT_BONUS if dash? && moving?
end

def check_region
@max_x = 0
@max_y = 0
case @direction
when 2
@max_y = @distance
(@distance+1).times { |i| return @max_y = i if stopper?(@x, @y+i+1) }
when 4
@max_x = -@distance
(@distance+1).times { |i| return @max_x = -i if stopper?(@x-i-1, @y) }
when 6
@max_x = @distance
(@distance+1).times { |i| return @max_x = i if stopper?(@x+i+1, @y) }
when 8
@max_y = -@distance
(@distance+1).times { |i| return @max_y = -i if stopper?(@x, @y-i-1) }
end
end

def stopper?(x,y)
Galv_Jump::NO_JUMP_REGIONS.include?($game_map.region_id(x,y)) ||
!$game_map.stopper_event?(x,y)
end

def canpass?(x,y)
map_passable?(x, y, @direction) &&
$game_map.blocking_event?(x,y) ||
Galv_Jump::NO_JUMP_REGIONS.include?($game_map.region_id(x,y))
end

def check_distance
@jump_x = 0
@jump_y = 0
ch = []
@can_jump = true

case @direction
when 2
@jump_y = @distance
@distance.times { |i| ch << @jump_y - i if canpass?(@x, @y + @jump_y - i) }
ch.delete_if {|x| x > @max_y }
@jump_y = ch.max if !ch.empty?
when 4
@jump_x = -@distance
@distance.times { |i| ch << @jump_x + i if canpass?(@x + @jump_x + i, @y) }
ch.delete_if {|x| x < @max_x }
@jump_x = ch.min if !ch.empty?
when 6
@jump_x = @distance
@distance.times { |i| ch << @jump_x - i if canpass?(@x + @jump_x - i, @y) }
ch.delete_if {|x| x > @max_x }
@jump_x = ch.max if !ch.empty?
when 8
@jump_y = -@distance
@distance.times { |i| ch << @jump_y + i if canpass?(@x, @y + @jump_y + i) }
ch.delete_if {|x| x < @max_y }
@jump_y = ch.min if !ch.empty?
end
if ch.empty?
@jump_y = 0
@jump_x = 0
@can_jump = false
end
end

def jump(x_plus, y_plus)
@priority_type = 1.5
super
end
end # Game_Player < Game_Character


class Game_Map
def blocking_event?(x,y)
events_xy(x,y).each { |e| return false if e.priority_type == 1 }
return true
end

def stopper_event?(x,y)
events_xy(x,y).each { |e|
next if e.list.nil?
return false if e.list[0].code == 108 && e.list[0].parameters[0] == ""
}
return true
end
end # Game_Map


class Game_Actor < Game_Battler
attr_accessor :jump_bonus

alias galv_jump_actor_initialize initialize
def initialize(actor_id)
galv_jump_actor_initialize(actor_id)
@jump_bonus = $data_actors[actor_id].jump_bonus
end
end # Game_Actor < Game_Battler


class Scene_Menu < Scene_MenuBase
def return_scene
$game_player.refresh
super
end
end # Scene_Menu < Scene_MenuBase

class Game_Interpreter
def jump_bonus(actor,bonus)
$game_actors[actor].jump_bonus = bonus
$game_player.refresh
end
end # Game_Interpreter

 

 

Link to comment
Share on other sites

Scusami Holy sono un rompi palle...lo script è fantastico ma purtroppo a cause di un altro mio script da errore.

questo è lo script

 

 

#------------------------------------------------------------------------------#

# Galv's Jump Ability

#------------------------------------------------------------------------------#

# For: RPGMAKER VX ACE

# Version 1.6

#------------------------------------------------------------------------------#

# 2013-06-02 - Version 1.6 - fixed a bug with region block jumping

# 2013-03-14 - Version 1.5 - fixed priority bug when jumping behind things

# - cleaned up code a bit

# 2013-01-15 - Version 1.4 - added follower jumping

# 2013-01-11 - Version 1.3 - added ability to make event pages block jumping

# 2012-12-05 - Version 1.2 - fixed some more bugs

# 2012-11-30 - Version 1.1 - fixed jumping in vehicles bug

# 2012-11-29 - Version 1.0 - release

#------------------------------------------------------------------------------#

# This script allows the player to jump with the press of a button. The player

# will jump as far as their max distance will take them without landing on a

# blocked tile. Use regions to block players jumping completely to prevent the

# player from doing things like jumping between rooms.

#------------------------------------------------------------------------------#

# INSTRUCTIONS:

# Put script under Materials and above Main

# Read options and settings below.

#------------------------------------------------------------------------------#

 

#------------------------------------------------------------------------------#

# COMMENT FOR EVENT (Must be first event command)

#------------------------------------------------------------------------------#

#

#

#

# add this comment as the first event command of a page to make it unable to

# be jumped over. Change the page to a new event page without the comment when

# you want it to be jumpable.

 

#------------------------------------------------------------------------------#

# NOTETAG FOR ACTORS, ARMORS, WEAPONS

#------------------------------------------------------------------------------#

#

# # Adds that many tiles to jump distance

#

#------------------------------------------------------------------------------#

# Only the jump bonus for the party leader and his/her equips are calculated

#------------------------------------------------------------------------------#

# SCRIPT CALL:

# You can change an actor's jump bonus (that was set with the notetag) during

# the game with a script call:

#

# jump_bonus(actor_id,jump_bonus)

#

# EXAMPLE:

# jump_bonus(3,2) # Changes actor 3's jump bonus to 2

#------------------------------------------------------------------------------#

 

($imported ||= {})["Galvs_Jump_Ability"] = true

module Galv_Jump

 

#------------------------------------------------------------------------------#

# SCRIPT SETUP OPTIONS

#------------------------------------------------------------------------------#

# ISTRUZIONI ITALIANE

#cambiare i parametri sotto come si desidera

#

#per modificarli durante il gioco :

# CON SCRIPT: jump_bonus(IDeroe,ValoreDiJump)

# con equip: aggiungere nei commenti:

#

#

#

#------------------------------------------------------------------------------#

DISABLE_SWITCH =40 # Cannot jump when this switch is ON

 

BUTTON = :X # Button to press to jump. :X is "a" key.

 

DEFAULT_DISTANCE = 1 # Distance player can jump with no bonuses

SPRINT_BONUS = -1 # Distance increased with a running jump

 

JUMP_SE = ["Jump2", 50, 120]

 

MAX_JUMP_BONUS = 3 # The maximum bonus you can get from equips/actors

 

NO_JUMP_REGIONS = [1,23,3] # Region ID's that the player cannot jump over

 

#------------------------------------------------------------------------------#

# END SCRIPT SETUP OPTIONS

#------------------------------------------------------------------------------#

 

end

 

class RPG::BaseItem

def jump_bonus

if @jump_bonus.nil?

if @note =~ //i

@jump_bonus = $1.to_i

else

@jump_bonus = 0

end

end

@jump_bonus

end

end # RPG::BaseItem

 

 

class Game_Player

attr_accessor :priority_type

 

alias galv_jump_player_initialize initialize

def initialize

galv_jump_player_initialize

@jump_equip_bonus = 0

end

 

alias galv_jump_player_refresh refresh

def refresh

get_jump_equip_bonus

galv_jump_player_refresh

end

 

def get_jump_equip_bonus

bonus = 0 + $game_party.leader.jump_bonus

$game_party.leader.equips.each { |eq| bonus += eq.jump_bonus if !eq.nil?}

@jump_equip_bonus = [bonus,Galv_Jump::MAX_JUMP_BONUS].min

end

 

alias galv_jump_move_by_input move_by_input

def move_by_input

return if jumping?

@priority_type = 1 if !jumping?

galv_jump_move_by_input

if !$game_switches[Galv_Jump::DISABLE_SWITCH] && Input.trigger?(Galv_Jump::BUTTON)

do_jump if !$game_map.interpreter.running? && !jumping? && normal_walk?

end

end

 

def do_jump

get_bonuses

@distance = Galv_Jump::DEFAULT_DISTANCE + @jump_bonus

check_region

check_distance

if @can_jump

RPG::SE.new(Galv_Jump::JUMP_SE[0], Galv_Jump::JUMP_SE[1], Galv_Jump::JUMP_SE[2]).play

jump(@jump_x, @jump_y)

@followers.each { |f| f.jump(@x - f.x, @y - f.y) }

end

end

 

def get_bonuses

@jump_bonus = 0 + @jump_equip_bonus

@jump_bonus += Galv_Jump::SPRINT_BONUS if dash? && moving?

end

 

def check_region

@max_x = 0

@max_y = 0

case @direction

when 2

@max_y = @distance

(@distance+1).times { |i| return @max_y = i if stopper?(@x, @y+i+1) }

when 4

@max_x = -@distance

(@distance+1).times { |i| return @max_x = -i if stopper?(@x-i-1, @y) }

when 6

@max_x = @distance

(@distance+1).times { |i| return @max_x = i if stopper?(@x+i+1, @y) }

when 8

@max_y = -@distance

(@distance+1).times { |i| return @max_y = -i if stopper?(@x, @y-i-1) }

end

end

 

def stopper?(x,y)

Galv_Jump::NO_JUMP_REGIONS.include?($game_map.region_id(x,y)) ||

!$game_map.stopper_event?(x,y)

end

 

def canpass?(x,y)

map_passable?(x, y, @direction) &&

$game_map.blocking_event?(x,y) ||

Galv_Jump::NO_JUMP_REGIONS.include?($game_map.region_id(x,y))

end

 

def check_distance

@jump_x = 0

@jump_y = 0

ch = []

@can_jump = true

 

case @direction

when 2

@jump_y = @distance

@distance.times { |i| ch

ch.delete_if {|x| x > @max_y }

@jump_y = ch.max if !ch.empty?

when 4

@jump_x = -@distance

@distance.times { |i| ch

ch.delete_if {|x| x

@jump_x = ch.min if !ch.empty?

when 6

@jump_x = @distance

@distance.times { |i| ch

ch.delete_if {|x| x > @max_x }

@jump_x = ch.max if !ch.empty?

when 8

@jump_y = -@distance

@distance.times { |i| ch

ch.delete_if {|x| x

@jump_y = ch.min if !ch.empty?

end

if ch.empty?

@jump_y = 0

@jump_x = 0

@can_jump = false

end

end

 

def jump(x_plus, y_plus)

@priority_type = 1.5

super

end

end # Game_Player

 

 

class Game_Map

def blocking_event?(x,y)

events_xy(x,y).each { |e| return false if e.priority_type == 1 }

return true

end

 

def stopper_event?(x,y)

events_xy(x,y).each { |e|

next if e.list.nil?

return false if e.list[0].code == 108 && e.list[0].parameters[0] == ""

}

return true

end

end # Game_Map

 

 

class Game_Actor

attr_accessor :jump_bonus

 

alias galv_jump_actor_initialize initialize

def initialize(actor_id)

galv_jump_actor_initialize(actor_id)

@jump_bonus = $data_actors[actor_id].jump_bonus

end

end # Game_Actor

 

 

class Scene_Menu

def return_scene

$game_player.refresh

super

end

end # Scene_Menu

 

class Game_Interpreter

def jump_bonus(actor,bonus)

$game_actors[actor].jump_bonus = bonus

$game_player.refresh

end

end # Game_Interpreter

 

 

Faccio finta di non aver letto fino a quando non mi dici anche, nel modo più dettagliato possibile, l'errore che ti dà. Perché io non sono un indovino, e l'ho detto tante volte. Il primo passo per la cura è descriverne i sintomi.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

hai ragione scusami...chiedo il perdono.

mi spiego meglio quando chiamo lo script con scampia_party mi da il seguente errore

 

script 'Game_interpreter' line 1436: NoMethodError occurred.
undefined method 'jump_bonus' for nil:NilClass

Link to comment
Share on other sites

hai ragione scusami...chiedo il perdono.

mi spiego meglio quando chiamo lo script con scampia_party mi da il seguente errore

 

script 'Game_interpreter' line 1436: NoMethodError occurred.

undefined method 'jump_bonus' for nil:NilClass

primo scambia_party

secondo hai settato il valore di jump_bonus nel notetag del personaggio?

Nuovi progetti:

 


w43ztoqv1klp55a6g.jpg

11764.png

 

bpc40hzhbo2xzd76g.jpg

 

00oVI6.gif gifnatale1.pngSvsJAL.pngvgnoJt.png YT3YHP.png fcCbvW.png

Script:

 

 

KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace


Tutorial

 


Spoiler da guardare se vi interessano

 



Progetti in corso

 

Avanzamento Le Cronache di Arshes - La Strana Sopravvivenza
|||||||||||||||||||| 10% Restart imminente

Avanzamento Undead
|||||||||||||||||||| 15%

Avanzamento Le Cronache di Arshes - La Storia Continua
|||||||||||||||||||| 20% Restart Imminente

ZQ68dC.png rescue-fantasy&size=160x160


Adozioni...

 


AdottinoJudgementDragon.png
(\__/)
( ^^ )
(< >)


Screen Contests

 

q9m.gif

 


MANIFESTO DEL MAKING ITALIANO

 


SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare,8 postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!


Come allegare immagini al forum Bottega Rise of The Hero
5545.png 869.png250d-79e61bdc7724a730c12102387964d19e04arol.gif1321.png

Link to comment
Share on other sites

Sei sicuro che sia proprio il mio script e non un personaggio non settato?

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

non capisco io non ho mai settato i personaggi per il salto eppure funziona benissimo...

Sto dando un occhiata...

Ho provato a settare i personaggi ma il problema rimane

Edited by Grawel
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...