Jump to content

AD-Blocker detected, please disable your ad-blocker when surfing in makerando.com - There is no invasive Ad.

 

  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
Ghost Rider

RPGMAKER VX ACE Creare "Eventi Globali" con lo script "Call Event"

Recommended Posts

Salve a tutti,

E' un po' che non faccio un tutorial, e siccome sto lavoricchiando un po' con VXA al momento ho deciso di scrivere qualcosina anche per questo tool.

 

Tutorial: Creare Eventi Globali utilizzando lo script Call Event di Yanfly

Tool: RPG Maker VX Ace

Livello: Principianti.

 

Premessa:

Chi mi conosce sa che la mia opinione di rmvxa non è altissima, soprattutto perchè il tool, nonostante sulla carta sia superiore ai suoi predecessori per quanto riguarda il comparto grafico, in realtà, quando si passa "alla sostanza", il tool è pesantemente mutilato non solo dai grossi limiti in fatto di entry nel database e numero massimo di mappe (999 sembrano tante all'inizio, ma vi assicuro - per esperienza personale - che non bastano per un rpg come il mio Dragonheart che è gia a quota 800 mappe nonostante sia forse al 10% del suo sviluppo, e altri rpg epocali come Everlong che superano le 3500 mappe...), ma anche perchè molte funzioni degli eventi, dai precedenti tool, sono state depotenziate se non addirittura rimosse del tutto, e in questo tutorial ci occupiamo di una queste funzioni.

 

Altra premessa:

Il termine "Eventi Globali" l'ho inventato di sana pianta al solo scopo di questo tutorial, lo dico solo nel caso spunti qualche furbacchione che dica "ma non esiste niente che si chiami eventi globali nel programma... xDDD

Uso questo termine per differenziarli dagli Eventi Comuni (Common Events) configurabili normalmente nel database.

Lo scopo di questo tutorial, in effetti, è proprio di sopperire alla limitata quantità di eventi comuni; volendo potremmo chiamarli "Eventi Comuni Aggiuntivi" ma ho deciso di usare il termine eventi globali perchè fa più figo.

 

Requisiti:

Per questo tutorial servono due cose:

1) RPG Maker VX Ace (no, ma davvero...!? °A°)

2) Lo script Call Event di Yanfly o script analoghi (se ce ne sono, non ne conosco) che potete trovare qui.

 

Parliamo un attimo dello script:

Quale che sia la vostra posizione sull'uso degli script (non interessa nè a me nè allo scopo del tutorial), personalmente ritengo che questo script faccia parte di un "pacchetto" di script che tutti dovrebbero avere, in quanto non è solo un agiunta di qualche feature "cosmetica", ma inserisce una vera e propria funzione che è assente nella versione base del tool. E' uno script "per programmatori", non per giocatori.

 

Premesso che - anche se su VXA la funzione "Chiama Evento" fa capo solo agli eventi comuni (a differenza della serie 2k dove potevi richiamare sia un evento comune che uno della mappa corrente) - è ancora possibile chiamare un evento della mappa attuale utilizzando questo call script:

 

$gameMap.event(x).start()

dove x è l' ID dell'evento, e farà partire quell'evento alla pagina attualmente attiva (in base alle condizioni di ogni pagina di quell'evento, insomme come se il giocatore ci avesse normalmente interagito).  

Chiarimento: questa è una funzione gia presente nel tool di base, utilizza un call script ma NON è uno script esterno, quindi, anti-scriptisti, potete usarla anche voi :D

 

Lo script di Yanfly, però, espande ulteriormente questo concetto, permettendoci di scegliere non solo la pagina che vogliamo eseguire, ma anche la MAPPA in cui vogliamo andare a recuperare l'evento. Sì, avete capito bene, è possibile chiamare qualsiasi evento da qualsiasi mappa!

 

Preparazione:

 

  • Scaricate lo script e incollatelo sotto Materials ma sopra a Main (come praticamente qualsiasi altro script). Lo script è plug&play, e non necessita di alcuna configurazione, in oltre può essere inserito durante qualsiasi momento nello sviluppo del vostro gioco.
  • Non obbligatorio, ma caldamente consigliato, create una mappa vuota in cui conserverete i vari "Eventi Globali". Sarebbe anche meglio se il giocatore non avesse mai accesso a quella mappa, durante il gioco vero e proprio.

 

Creare un Evento Globale:

 

Create un evento, in questa nuova mappa (per il tutorial ipotizziamo che sia la mappa n°4), ignorate la grafica dell'evento (se volete potete metterla come segnaposto, ma non è essenziale) e e le condizion di avvio e programmate l'evento come volete; in questo esempio utilizzeremo delle scorte di munizioni che il giocatore potrebbe raccogliere in giro in un gioco stile survival horror.

 

image.png

l'ID dell'evento , mostrato in alto a destra, servirà quando lo richiameremo, per ora tenetelo a  mente.

 

image.png

 

Abbastanza semplice da capire, appare un messaggio (la switch 18 fa riferimento ad un altro script, quindi ignoratela) e poi vengono aggiunte le munizoni all'iventario. Alla fine si attiva la Self Switch A (o quella che vi pare). Questo passaggio è fondamentale anche se l'evento in questione ha una sola pagina.

 

Per mia preferenza personale, preferisco che ogni Evento Globale sia un evento a se stante, con una sola pagina, ma se per voi è più comodo potete creare un evento solo con più pagine... potreste anche raggrupparli per tipo, ad esempio potreste decidere che l'evento globale 7 venga usato per quegli eventi in cui il giocatore raccoglie munizioni, e potete usare la pagina 1 per i colpi della pistola, la 2 per i colpi del fucile, e così via...

 

Abbiamo così creato il nostro Evento Globale, il quale ora si trova in questa "mappa fantasma" in attesa di essere usato.

 

Richiamare un Evento Globale:

 

Per richiamare questo evento, create un nuovo evento in una delle mappa di gioco dove volete che questo evento venga richiamato. Questa volta la grafica dovete selezionarla (se ne ha una, ovvaimente) e dovete aggiungere una seconda pagina che sia attiva quando lo Switch Locale/Auto Switch (Self Switch) A (o quello che avete programmato nell'evento globale), sia attivo. Nota che questo passaggio non è per forza obbligatorio, infatti potreste usare gli Eventi Globali anche per quei "dialoghi" ricorrenti... come ad esempio quando, in un gioco del tipo investigativo/survival horror/quello che è, il giocatore può esaminare diversi oggetti dello scenario, e appare il messaggio "Niente di Interessante..." o cose simili... in quel caso non è necessario che l'evento si disattivi.  

 

In questo evento, comunque, tutto ciò che dovete fare è inserire il seguente script call:

call_event(x, y, z)

dove x è uguale all' ID dell' Evento Globale (nel nostro caso 7); y è la pagina che volete eseguire (nel nostro caso ipotizziamo 1) e z è l'ID della mappa in cui conservate gli eventi globali (nel nostro caso 4).

 

*Il comando Call Script (o a volte soltanto Script)lo trovate a pagina 3 dei vari comandi evento:

image.png

 

Ed ecco come appare il nostro evento:

image.png

image.png

 

Il trucco è che, anche se noi stiamo eseguendo l'evento 7 della mappa 4, il comando "Control Self Switch" farà riferimento all'evento da cui è partito il "call script", quidi attiverà la pagina 2 dell'evento attuale, senza che noi dobbiamo fare altro!

 

Così facendo è possibile quindi programmare un evento una sola volta e inserirlo in più istanze senza il minimo sforzo.

 

Possibil Utilizzi:

 

Fondamentalmente gli stessi degli eventi comuni, ma con il vantaggio che non consumiamo eventi comuni, che ad esempio possono essere utili per gli eventi in battaglia, visto che questo sistema molto probabilmente (non ho testato) non è utilizzabile con gli eventi in battaglia (se usate il BS standard o coumunque uno modificato da script, se invece il vostro BS è 100% ad eventi, potete usarli anche in quel caso).

 

Sebbene ad un maker più novizio, o comunque meno attento, possa sembrare che non ci sia chissà quale reale beneficio (in fondo basta copia/incollare lo stesso evento quando e dove si vuole), in realtà questo sistema torna infinitamente comodo nel caso dobbiate modificare quell'evento in futuro... immaginate di accorgervi di un bug, di un errore di grammatica o di battitura dovuto a distrazione, dopo che avete inserito questo evento 250 volte in 90 mappe diverse... ::rotfl:: e poi è comodissimo anche se volete tradurre il gioco in un altra lingua!

Vi basterà modificarlo UNA volta e sarà subito fixato in tutte le altre istanze in cui l'avete inserito!

 

Altri possibili utilizzi includono (ma non sono limitati a): tutorials, collectibles, messaggi di stato, dialoghi ricorrenti, e qualunque altra cosa vi venga in mente...

 

Conclusione:

 

Spero che questo semplice tutorial torni utile a qualcuno. Per quanto riguarda la "comunità anti scripting", purtroppo non conosco un metodo per farlo senza usare lo script di Yanfly, quindi se proprio non potete farne a meno di macchiare il vostro onore e inquinare il vostro progetto con script di terze parti, agganciatevi xDDD

 

Lasciate pure un commento o un "Mi Piace" se il tutorial è stato di vostro gradimento, e se volte dire che il tutorial fa cagare e che sono uno scrabbo perchè uso script di terze parti, sentitevi liberi di togliere il culo dal mio divano e andarvi a scrivere il vostro tutorial a riguardo, brutti fraccomodi figli di... ehm come non detto, segnalate pure se conoscete qualche altro modo e provvederò ad aggiornare il tutorial :D

 

Pace!

Share this post


Link to post
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
Sign in to follow this  

  • Similar Content

    • By ConanBlade94
      Michele Biancucci
      presenta

       
      TRAMA
       
      Ambientato quattro anni dopo le vicende del primo capitolo, nei panni di Nig Anderson, per qualche oscuro 
      motivo, ci ritroveremo in prigione a scontare la nostra pena, ma la nostra permanenza non durerà per molto.
      High Rock Island verrà infatti invasa da Abomini di ogni tipo, e di conseguenza, il nostro compito, sarà 
      fuggire dall'isola prima che sia troppo tardi.
       
      GAMEPLAY
       
       
       
      SCREENSHOTS
       
         
        
       
      TRAILER
       
       
       
        CREDITI
       
      CONCEPT & GAME DESIGN: 
      MICHELE BIANCUCCI

      GRAFICA & PIXEL ART:
      VEXED
      LOPPAWORKS
      MICHELE BIANCUCCI

      TOOL:
      RPG MAKER VX ACE 
      ADOBE PHOTOSHOP 
      FL STUDIO

      SUPPORTO:
      LOPPAWORKS 
      GIUSEPPE JOSHUA JAZZETTA
      GUARDIAN OF IRAEL

      SOUNDTRACK:
      MICHELE BIANCUCCI 
      ERGO PROXY 
      RESIDENT EVIL
      MAKAI SYNPHONY
      NATENTINE

      SCRIPTING:
      MICHELE BIANCUCCI
      TORRES MICHELETTI
      ANDRE LUIZ MARQUES
      HIMEWORKS
      SEER UK
      KHAS
      YANFLY
      MELOSX
      RAIZEN
      GALV'S
      HOLY87
      SHIGGY

      COLLABORAZIONE E RINGRAZIAMENTO SPECIALE:
      LOPPAWORKS
       
      
      CONTATTI
       
       
      DOWNLOAD
       

      https://conanblade94.itch.io/evil-biohazard2d-ii
       
       
       
       
       
       
    • By Daisukegamer99
      ciao, avete presente quando in alcuni videogiochi durante un dialogo si sentono dei suoni ad ogni lettera apparsa? ecco avendo RPG maker VX Ace non so come fare, se qualcuno mi vuole aiutare ne sarei molto grato! ^^
    • By Shiki Ryougi
      E finalmente mi sono decisa di buttarmi in questo progetto che ho in mente da un sacco di tempo.
      Il titolo è provvisorio, ovviamente, ma probabilmente il titolo alla fine sarà solo "Anna".
      Ancora è un'idea che sta prendendo forma nel mio quaderno e voglio lavorarci un po' tutti i giorni.
      Posterò qui i miei piccoli passi.
      Solo quando avrò abbastanza materiale aprirò un discussione seria, con una demo, ecc.
      Quindi a presto
       
      PS: Posso solo dire per ora che la protagonista sarà una bambina di sei anni, Anna.
      Non saprei definire il genere del gioco, ma non sarà horror (al massimo elementi delicati sì).
      Psicologico, drammatico e fantastico.
      Non sarà un gioco lungo.
       

×