Guida RPG Maker XP Script #7 – Database


E rieccoci, nell’ultima parte abbiamo visto gli eventi, più “standard” meno script ma bisognava saperlo, ora vediamo nei dettagli il più volte nominato database, in tal caso invece sarà un misto tra standard e script, è molto utile sapere come costruire e sfruttare il database se si ha intenzione di creare un gioco completo e ben fatto ma soprattutto in modo pratico e facile; volendo, grazie all’RGSS, si potrebbe anche ignorare o espandere il database di RPG Maker XP e crearne uno personale ma prima di fare ciò bisogna prima capire come interagire con tale, quindi per ora dimenticate questa possibilità, è solo una breve anticipazione di cosa vedremo nelle prossime parti (non so quando ma prima o poi). Per iniziare potremo dire, semplicemente, che il database è il contenitore dei dati o informazioni varie delle cose presenti nel gioco.



Giusto per essere sicuro che capite (è una guida pensata per CHIUNQUE) ecco una schermata dove ho cerchiato di rosso dove bisogna cliccare per accedere al database, 2 a sinistra dove si accede agli script; qui vi ritroverete varie schede, divise per categorie: Actors, Classes, Skills, Items, Weapons, Armors, Enemies, Troops, States, Animations, Tilesets, Common Events e System; se non avete mai aperto la schermata vi ritroverete la scheda “Actors” altrimenti l’ultima visualizzata, in base all’ultimo salvataggio del progetto… ah, nel caso ve lo state chiedendo, si, dall’ultima schermata mostrata ho aggiunto vari eventi, per far prove ed essere sicuro che ciò che scrivevo nella parte precedente era corretto, appena aggiorno il download potrete studiarveli.
Prima di spiegare le varie schede voglio dare alcune informazioni generiche, le informazioni presenti nel database sono memorizzate in alcune array globali “$data_” e “$game_”, con l’aggiunta, dopo il trattino basso “_” sensa spazi ne altro, del nome della scheda da dove prendere i dati, per esempio “$data_actors” è l’array che contiene i dati della scheda “Actors”; la differenza tra “data” e “game” è che il primo contiene i dati così come sono nel progetto, mentre “game” i dati modificati in base a determinate azioni, se per esempio un “Actors” aumenta di livello, con data si avrà il suo livello base mentre con game il suo livello attuale.

– ACTORS –

Ecco la prima scheda, quella che contiene gli “attori” o per meglio dire i personaggi giocabili, che cioè potrà usare il giocatore.
SCRIPT – Come anticipato per richiamare questi dati ci sarà l’array $data_actors o $game_actors, come detto “game” per averlo “aggiornato” mentre “data” per avere ciò che c’è scritto nel database, quindi i valori iniziali; $game_party.actors invece è l’array con memorizzati i personaggi presenti attualmente nel party.

Actors – Tutte le schede, tranne System, ha a sinistra la lista dei suoi “elementi”, subito sotto la scritta del nome della scheda; c’è l’ID a 3 cifre, viene quindi da se pensare che il massimo inseribile sia 999, in questo caso, come per gli eventi, gli ID iniziano da 1 e non 0 come di solito accade negli array, subito di fianco all’ID c’è il nome dell’elemento, quello selezionato poi è evidenziato di blu, per concludere poi va notato che sotto a questa lista c’è il pulsante “Change Maximum”, ha la stessa funzione di tutti gli altri casi, cioè aumentare il numero degli elementi della lista, qui consiglio di non esagerare, anche avere elementi inutilizzati andrà ad appesantire il gioco.
Cliccando col destro (o sinistro se li avete invertiti) del mouse su un elemento, che lo andrà anche a selezionare, appariranno alcune funzioni che potranno essere utili in alcuni casi: Copy per copiare un elemento, per magari incollarlo altrove, sempre nella stessa scheda, anche di un progetto diverso; Paste per appunto incollare un elemento copiato, che andrà a sostituire quello attualmente presente in quello ID quindi attenzione; Clear per cancellare l’elemento, un può come fare “nuovo file”, diverrà uguale a come quando aggiungerete nuovi elementi con Change Maximum; in fine c’è Multy-Copy che va a copiare più elementi conteporaneamente, sarete voi a decidere quanti, partendo da quello su cui si è cliccato, anche in questo caso quando si incollerà andrà a sostituire gli ID con quelli copiati.
Dovrebbe essere tutto per questa zona, l’ho spiegato in modo generico perchè sarà uguale in tutte le schede quindi mi sembra ovvio che sia inutile spiegare le stesse cose più volte, la guida è pensata per essere letta in ordine.
SCRIPT – È indispensabile conoscere l’ID dell’elemento desiderato quando si utilizzano gli array $data e $game, nel caso degli actors $data_actors[ID] sostituendo ID con l’ID dell’elemento desiderato, non è neccessario, per esempio, scrivere “001” basta solamente “1”; paradossalmente, ma ha una sua utilità in alcuni casi, per conoscere l’ID si potrà usare il codice $data_actors[ID].id, infatti se si preferisce $game_party.actors[ID].id, in tal caso ID deve essere sostituito con la posizione del personaggio nel party, qui la prima è ID 0 non 1… so che è un casino ricordarsi dove il primo è 0 oppure 1 ma non sono io a deciderlo, comunque utilizzando questo codice, per esempio $game_party.actors[0].id, si avrà l’ID del personaggio posizionato per primo nel party.
Name – Iniziamo ora la parte più importante, anche se nel caso del nome pure sarà uguale per tutte le schede quindi credo che anche in questo caso eviterò di spiegare sempre le stesse cose, tranne se serve aggiungere dettagli; ebbene il nome può essere quello che volete, sempre nei limiti del numero dei caratteri, persino tutti uguali, anche se lo sconsiglio come al solito e… tutti qui? Si.
SCRIPT – Similmente a prima $data_actors[ID].name per sapere il nome; va notato che negli esempi tendo a scrivere in minuscolo ciò che va scritto così com’è (scriverlo proprio in minuscolo), mentre in maiuscolo ciò che va cambiato in base alle esigenze.
Class – Finalmente qualcosa di diverso dalle altre schede, qui si dovrà semplicemente scegliere che classe deve essere il personaggio, dato che spiegherò la scheda delle classi per ora non specifico cosa cambia.
SCRIPT$data_actors[ID].class_id darà l’ID della classe scelta, qui poi si dovrà approfondire nella scheda Classes.
Initial, Final Level – Qui invece si dovrà specificare il livello che il personaggio dovrà avere all’inizio, poi il massimo che potrà raggiungere, entrambi minimo 1 e massimo 99.
SCRIPT$data_actors[ID].initial_level per avere il dato inserito nel primo, $data_actors[ID].final_level il dato inserito nel secondo.
EXP Curve – Traducibile in “curva dell’esperienza”, intende in che modo bisogna calcolare quanti punti esperienza deve guadagnare per aumentare di livello, andando nelle impostazioni ci saranno 2 schede: “To Next Level” per visualizzare quanti punti deve guadagnare per superare quel livello, mentre “Total” quanti punti esperienza totali avrà guadagnato appena raggiunto quel livello; per determinare questa curva ci sono poi 2 valori da impostare, entrambi minimo 10 e massimo 50, che sono: “Basis” è la quantità minima per ogni livello, senza “Inflation” (che non è possibile essendo minimo 10) per ogni livello servirebbe la stessa quantità di esperienza, a dirla tutta però viene usato un calcolo così complesso che credo sia inutile spiegare, c’è per fortuna la tabella che indica quanti punti esperienza servono.
SCRIPT – Nel caso vorreste questi 2 ultimi valori negli script utilizzate $data_actors[ID].exp_basis o $data_actors[ID].exp_inflation poi $game_actors.exp (non accettato con “data” quest’ultimo) per sapere la quantità di esperienza guadagnata; se invece si vorrebbe conoscere la quantità di esperienza guadagnata ma con $data_actors, dopo il punto va scritto “exp_s”, mentre “next_rest_exp_s” per sapere quanti punti mancano per superare il livello attuale o ancora “next_exp_s” quanti punti totali si avranno una volta raggiunto il prossimo livello.
Character, Battler Graphic – Nel primo si seleziona il “charset”, ovvero come apparirà sulla mappa, mentre “Battler Graphic” come apparirà in battaglia.
SCRIPT$data_actors[ID]. “character_name” per avere il nome dell’immagine, a proposito di ciò, vedrete che quelli di base di RPG Maker XP hanno un numero all’inizio ma non è l’ID dell’immagine e solo un modo per ordinarli allo stesso modo come si trovano nel database, quindi anche quel numero fa parte del nome, se ne inserite una vostra potete anche non mettere il numero, inoltre essendo file all’interno di una cartella dovranno avere tutti nomi diversi e non per forza corrispondere al personaggio; poi c’è “character_hue”, che fa riferimento alla stessa immagine ma l'”hue” di quest’ultima, cos’è l’hue? Praticamente potete dare un filtro colorato all’immagine, per appunto cambiargli colore anche se ho sempre preferito, per comodità, creare io stesso una nuova immagine con colori cambiati quindi fate come preferite.
Allo stesso modo c’è “battler_name” e “battler_hue”, hanno lo stesso scopo ma fanno riferimento all’immagine di battaglia.
Parameters – Traducibile in “parametri” ma più comunemente chiamati/e statistiche, ovvero attacco, difesa, ecc… , in questo specifico caso: MaxHP, i punti salute massimi, quelli che se vanno a 0 il personaggio è KO; MaxSP, i punti speciali massimi, quelli che vengono consumati dalle Skills (Abilità); STR sta per Strong (Forza), quindi più è alto il valore maggiori danni fisici farà il personaggio; DEX sta per Dexterity (Destrezza), va a influire sulla precisione degli attacchi fisici; AGI sta per Agility (Agilità), va a influire sulla probabilità di schivare un attacco fisico e nella fuga da una battaglia; INT sta per Intelligence (Intelligenza), similmente a STR ma per i danni magici.
Spiegato cosa sono questi valori, ora potete modificarli come meglio credete, doppio click su uno dei riquadri e si aprirà la schermata per le modifiche; c’è “Quick Setting” che va da A a E, da più alto a più basso; oppure potete essere più precisi con “Level” e “Value” andando a specificare un livello poi quanto tale statistica deve valere in quel livello; ancora potete invece usare “Generate Curve”, specificando quanto deve valere al livello 1 a quanto al 99 e in che modo deve aumentare, se “Fast” raggiungerà valori maggiori a livelli inferiori senza però aumentare oltre il massimo speficicato, se “Middle” aumenterà in modo lineare, infine c’è “Slow” che tarderà a raggiungere i valori alti ma anche in questo caso al livello 99 comunque raggiungerà quello specificato; qui sta in voi, quale referite, potete anche utilizzare tutti e 3 i medoti in modo creativo.
SCRIPT – Qui bisognerà utilizzare un metodo diverso in base all’array che preferite; se $game_actors[ID]. seguendo poi con “hp”, “maxhp”, “sp”, “maxsp”, “str”, “dex”, “agi” o “int”, ho già spiegato a quali statistiche corrispondono, ebbene verrà dato il valore della statistica specificata, inoltre, SOLAMENTE CON QUEST’ARRAY, ci saranno statistiche extra da poter estrapolare, cioè: “atk”, “pdef”, “mdef”, “eva” o “hit”, nello stesso ordine, vogliono dire: “Attack” (Attacco) dato dall’arma che potenzia le skill fisiche; “Phisical Defense” (Difesa Fisica) che diminuisce i danni fisici subiti; “Magical Defense” (Difesa Magica) che diminuisce i danni magici subiti; “Evasion” (Evasione) che aumenta la probabilità di evitare un colpo; “Hit” (Colpire) che aumenta la probabilità di colpire.
In alternativa ci sono gli array $data_actors[ID]. e $game_party.actors[ID]., in questo caso bisognerà usare “parameters[N, LV]”, dove N potrà avere un valore da 0 a 5 che corrisponde alle statistiche seguendo quest’ordine: “maxhp”, “maxsp”, “str”, “dex”, “agi” o “int”, mentre LV col livello interessato, cioè se scrivete $data_actors[ID].parameters[0, 10], avrete il valore di “maxhp” al livello 10, indipendetemente dal livello del personaggio, facendo però caso che si avranno i valori base, senza considerare potenziamenti dovuti, per esempio, da un’arma, a differenza dell’array inizialmente specificata.
Starting Equipment – “Equipaggiamento Iniziale”, cioè l’equipaggiamento che avrà a partita appena iniziata, poi può essere cambiato o attraverso comandi o dal giocatore; non credo ci sia bisogno di precisare cosa si intende con equipaggiamento ma per completezza: è ciò che il personaggio “indossa”, arma, armatura e via dicendo, nello specifico 5: Weapon (Arma), Shield (Scudo), Helmet (Elmo), Body Armor (Armatura), Accessory (Accessorio), credo sia abbastanza intuitivo l’utilità di ognuno di loro ma con un pò di fantasia e bravura si può sempre essere originali, riguardo a chi crea il gioco.
Infine c’è una spunta per ogni pezzo dell’equipaggiamento con scritto “Fixed”, se attiva vuol dire che quello “slot” non può essere modificato, almeno con metodi tradizionali, lo si può fare, per esempio, attraverso comandi o permetterlo di farlo fare al giocatore dopo un certo evento di gioco.
SCRIPT$data_actors[ID]. (se non specifico $data e $game funzionano entrambi) “weapon_id” per avere l’ID dell’arma equipaggiata, si avrà 0 se non ne ha, mentre “weapon_fix” specifica, con true o false, se la spunta Fixed c’è all’arma; oppure usare “armor1_id”, “armor1_fix”, “armor2_id”, “armor2_fix”, “armor3_id”, “armor3_fix”, “armor4_id” o “armor4_fix” per il resto dell’equipaggiamento, con la stessa logica di weapon ma a cosa corrispondono? “armor1” corrisponde a “shield” per poi seguire, numericamente, “helmet”, “body armor” e “accessory”.

– CLASSES –

Passiamo ora alla scheda successiva, quella delle classi, questa è strettamente collegata a quella precedente, infatti è qui che si costruiscono le classi da dare poi ai vari “attori”, ma cosa sono esattamente le classi? É come dire, io sono un bravo falegname, tu un bravo pizzaiolo… chiaramente sono solo esempi a caso, in poche parole la classe è la specialità di un determinato, o più, personaggio ma basta con la teoria, passiamo alla parte davvero interessante.
SCRIPT – In tal caso usare l’array $data_classes[ID], sostituendo ovviamente ID con un numero, per avere la classe desiderata; se si vuole sapere l’ID della classe di un personaggio usare invece $game_actors[ID].class_id, dato che esistono vari modi per cambiare classe durante il gioco, in questo codice sostituire però ID con l’ID dell’attore, poi inserire tutto questo a posta di ID del codice $data_classes[ID]; riguardo sempre questo, anche qui sono presenti “.id” e “.name” per conoscere l’ID o il nome della classe.
Position – Come anticipato salteremo le parti identiche in tutte le schede, passiamo quindi subito alla “Posizione”, è possibile sceglierne 3: Front (Frontale), Middle (Centrale), Rear (Retrovia, NON letteralmente); non mi risulta che cambi qualcosa la posizione, almeno non negli script standard, potete quindi voi arricchire il codice e le tattiche di battaglia sfruttando quest’elemento.
SCRIPT$data_classes[ID]. per far ciò che ho detto dovete aggiungere “position”, facendo caso al punto aggiunto alla fine dell’array, come sempre facendo ciò si avrà il valore di tale elemento della classe, che darà un numero da 0 a 2 in base all’ordine.
Equippable Weapons, Armors – “Armi/Armature Equipaggiabili”, sarebbe a dire, quali armi e armature (prese dal database) è possibile equipaggiare a chi è di questa classe, di solito è per una questione tipo: il cavaliere può avere solo spade, l’arciere solo archi, il mago solo bastoni e così via, ovviamente potete fare come volete, ho solo spiegato il classico per farvi capire.
SCRIPT – Anche qui semplicemente usare il codice “weapon_set” o “armor_set”, in base a quale siete interessati, in questo caso si avrà un array (per richiamare il primo valore [0]) con tutte le armi o armature selezionate, per la precisione l’ID di tali.
Element, State Efficiency – “Efficacia Elemento/Stato”, gli elementi sono le varie tipologie di skill, i classici fuoco, acqua, tenembra, ecc…, mentre gli stati sono per esempio veleno, bruciatura, ecc… ; entrambi i valori vanno da A a F, partendo da maggior efficacia a minore, cioè colui che è di tale classe, se per esempio avrà A su fuoco, allora il fuoco gli farà il massimo male possibile.
SCRIPT – Similmente a prima, qui ci sono “element_ranks” e “state_ranks”, anche qui un array che però inizia con 1 ma invece che contenere l’ID degli elementi e stati, contiene valori che vanno da 1 a 6, cioè da A a F.
Skills to Learn – “Abilità da Imparare”, ecco con cosa bisogna maneggiare per specificare le skill da far imparare ai personaggi, scegliendo quale e a che livello.
SCRIPT – E ancora si avrà un array nell’array aggiungendo dopo il punto “learnings”, per far confusione stavolta il primo elemento si richiamerà invece con 0, non sono io che decido… comunque in tal caso ci sarà un ulteriore livello di array con elementi aggiuntivi “level” o “skill_id”, facciamo un esempio che sta diventando non difficile ma complesso: $data_classes[1].learnings[0].level, questo codice va a prendere la prima classe, poi la prima skill andando a dire il livello di quando la impara, ah, per essere sicuri specifico che se invece usate “skill_id” si avrà l’ID della skill, ovviamente in base alla scheda delle skill.

– SKILLS –

Ecco la scheda delle “Skills”, traducibile in “Abilità” ma come avrete visto preferisco usare il termine “skill” sia in singolare che plurale per abitudine; potremo anche definirle tecniche, giusto per avere un’idea più chiara di cosa sono, ma se avete giocato ad almeno un RPG dovreste già sapere di cosa si tratta, se siete giocatori Pokémon li vengono chiamate mosse e chissà in quale altro modo in altri giochi, in poche parole sono attacchi particolari… ma credo sia il caso di smetterla di ripetere le stesse cose con parole diverse.
SCRIPT – L’array base per questa scheda è $data_skills[ID], con i soliti “id” e “name”.
Icon – Beh, è abbastanza esplicativo immagino, qui dovrete scegliere l’icona da dare alla skill, presa dalla cartella Graphics->Icons del progetto o del programma; l’icona verrà mostrata ogni volta che si visualizza l’elenco delle skill, almeno di standard, sia in battaglia che dal menù principale.
SCRIPT – Semplicemente “icon_name” per visualizzare il nome dell’icona, ovviamente sto evitando di ripetere che bisogna usare l’array specificata all’inizio della spiegazione della scheda, aggiungendo un punto poi la scritta, credo ormai sia chiaro, no?.
Description – Ovvero “Descrizione”, non ha un utilizzo tecnico ma solo per far capire al giocatore cosa fa, facendo attenzione al limite di caratteri.
SCRIPT – “description” per visualizzarla all’interno di un codice.
Scope – Indica la skill a chi è indirizzata; “None” vuol dire nessuno, magari una skill che cambia le caratteristiche dell’arena ma non essendo presente nulla del genere nel codice standard dovrete programmarlo voi, se volete skill di questo tipo; “One Enemy” e “All Enemies” vogliono dire un nemico e tutti i nemici, mentre “One Ally” e “All Allies” un alleato e tutti gli alleati, ovviamente nemico o alleato in base a chi la usa, se la usa un avversario gli alleati sono sempre avversari, per il giocatore almeno; “(HP0)” vuol dire solo se è KO e in fine “The User” è proprio l’utilizzatore, quindi la skill ha effetto su chi la usa.
SCRIPT – “scope” darà un numero da 0 a 7 in base a quest’ordine: None, One Enemy, All Enemies, One Ally, All Allies, One Ally(HP0), All Allies(HP0), The User.
Occasion – Cioè in quali occasioni è possibile usarla, “Always” sempre, “Only in Battle” solo durante una battaglia, “Only from the Menù” solo dal menù, quindi per esclusione non durante la battaglia, in fine “Never” vuol dire mai ma a cosa serve una skill che non è mai utilizzabile? Anche in questo caso non c’è niente nei codici standard, potreste creare un’abilità passiva, quindi non ha bisogno di essere selezionata per funzionare, o cose del genere… magari approfondirermo questi argomenti, per ora mi limito a spiegare genericamente.
SCRIPT – “occasion” similmente a prima darà un numero da 0 a 3, seguendo lo stesso ordine di come le ho spiegate giusto sopra.
User, Target Animation – Come detto user si intende chi la usa, target invece vuol dire chi la subisce, il “bersaglio” della skill; qui selezionare che animazione mostrare, create nella scheda “Animations”, su chi la usa e sul bersaglio quando la skill viene usata, potete anche mettere nessuna animazione ma chiaramente è più bello da vedere, poi ovviamente se ha come Scope The User basta solo 1 animazione essendo entrambi la stessa “entità”.
SCRIPT – “animation1_id” per avere l’ID della prima animazione, quella sull’utilizzatore, mentre “animation2_id” per l’ID dell’animazione sul bersaglio, chiaramente l’ID dipende dalla lista della scheda Animations.
Menu Use SE – Se è una skill utilizzabile fuori dalla battaglia, potrete scegliere qui che suono far partire quando utilizzata.
SCRIPT – “menu_se” per avere il codice del file sonoro, l’utilizzo? Beh, potete per esempio usare il codice $game_system.se_play($data_skills[ID].menu_se) per far partire il suono della skill dell’ID specificato.
Common Event – Specificando se e quale evento comune avviare utilizzando la skill, gli eventi comuni li abbiamo già spiegati nella parte della guida dedicata agli eventi ma comunque se ve lo siete dimenticati sono gestibili dal database, potreste per esempio creare una skill che fa teletrasportare o chissà che, le possibilità sono chiaramente limitate se si tratta di una skill usata in battaglia; se si seleziona “(None)” vuol dire nessun evento.
SCRIPT – “common_event_id” per avere l’ID dell’evento comune, similmente a prima esiste un codice per avviare l’evento specificato, ed è: $game_temp.common_event_id = $data_skills[ID].common_event_id.
Parameters – Utilizziamo un termine già visto in Actors, per spiegare tutt’insieme quelli che sono i “parametri” delle skill; “SP Cost” specifica quanti punti SP servono per usare la skill, “Power” è la potenza, se negativa invece di danneggiare cura, “ATK-F”, “STR-F”, “DEX-F”, “AGI-F” e “INT-F” indicano la percentuale di quanto le statistiche di chi la usa vanno a influire sulla potenza; “EVA-F” si riferisce invece al bersaglio, in questo caso quanto influisce la sua evasione (probabilità di schivata), mentre “PDEF-F” e “MDEF-F” depotenziano in base a tali statistiche sempre del bersaglio; “Hit Rate” è la probabilità base della skill di andare a segno, mentre “Variance” devo dire di non aver capito molto ma da quello che ho capito più è alto maggiore sarà la “varietà” del danno, cioè che va da “n” a “n”, insomma se è 0 il danno è sempre lo stesso.
SCRIPT – Beh, semplicemente “sp_cost”, “power”, “atk_f”, “eva_f”, “str_f”, “dex_f”, “agi_f”, “int_f”, “hit”, “pdef_f”, “mdef_f” o “variance” per avere il numero segnato nella casella specifica.
Element – Qui mettere le spunte per specificare di che elemento è la skill, potete metterne nessuno, 1 o tutti, quanti e quali volete; l’elemento della skill va a influire con debolezze e resistenze di classi e nemici, andando quindi a potenziare o depotenziare la skill in base a chi la subisce; per modificare gli elementi presenti andare nella scheda System.
SCRIPT – “element_set” per avere un array con gli ID di tutti gli elementi della skill.
State Change – “Cambia Stato” cliccando su una casella apparirà un “+” poi un “-“, andando a specificare quali stati vengono aggiunti e quali tolti a chi subisce la skill.
SCRIPT – “plus_state_set” o “minus_state_set” per avere un array degli stati che vengono aggiunti o tolti dalla skill, anche in questo caso gli ID degli stati.

– ITEMS, WEAPONS, ARMORS –

Siamo ormai alla quarta scheda, quella degli oggetti, che vengono distinti da armi e armature, trovandosi quest’ultimi in schede a loro dedicate ma tutte e 3 fanno parte dell’inventario e molto simili tra loro, per questo li spiegheremo insieme andando però a specificare le cose diverse; esistono tanti tipi di oggetti diversi, curativi, danneggianti, d’evento (tipo servono per sbloccare un certo evento) e così via; beh, mentre armi e armature sono già esplicativi ma vedremo comunque come sfruttarli nel possibile… ovviamente come al solito all’inizio vado lento poi accelero, se c’è tanto da spiegare, perchè tanto molti concetti base è inutile rispecificarli ogni volta.
SCRIPT$data_items[ID] è l’array che contiene le info degli oggetti, $data_weapons[ID] le armi, $data_armors[ID] le armature, da rispecificare “id” e “name” per recuperare tale informazione.
Icon, Description – L’icona e la descrizione sono pari pari come nelle skill, l’icona giusto per dare un’immagine mentre la descrizione per spiegare al giocatore l’utilizzo.
SCRIPT – Come per le skill anche il codice, “icon_name” o “description” per avere tale informazione.
Scope, Occasion – Questi due valgono solo per Items e ancora come per le skill, Scope specifica su chi l’oggetto deve essere utilizzato: None, One Enemy, All Enemies, One Ally, All Allies, One Ally(HP0), All Allies(HP0) o The User; dove “Enemy” e “Enemies” sono nemico e nemici, “Ally” e “Allies” alleato e alleati, “HP0” solo se è KO in fine “User” chi usa l’oggetto.
Ripetendo anche Occasion: “Always” sempre, “Only in Battle” solo durante una battaglia, “Only from the Menù” solo dal menù, in fine “Never” vuol dire mai.
SCRIPT – “scope” da un numero da 0 a 7 seguendo l’ordine delle opzioni come elencate sopra, così come “occasion” ma va da 0 a 3.
User, Attacker, Target Animation – Target Animation per selezionare l’animazione che appare sul bersaglio, sia Items che Weapons; User Animation per l’animazione su chi usa l’oggetto, similmente a Attacker Animation ma nella scheda Weapons quindi chi usa l’arma.
SCRIPT – Anche qui “animation1_id” o “animation2_id” per la prima animazione (User o Attacker) o la seconda (Target).
Menu Use SE, Common Event – Quest’altri due ancora uguale alla scheda Skills, presente però solo in Items (considerando le 3 che stiamo spiegando ora); ricapitolando “Menu Use SE” è il suono che parte quando si usa mentre “Common Event” l’evento comune che viene richiamato, sempre quando si usa.
SCRIPT – Scusate la ripetitività anche qui l’utilizzo è pari alle skill con i codici, da mettere d’avanti a $data_items[ID]. in questo caso, “menu_se” o “common_event_id”, utilizzabili negli script allo stesso modo.
Kind – Passiamo finalmente a cose esclusive della scheda Armors, in questo caso va selezionata la tipologia, in che slot è possibile inserire tale “armatura”: Shield, Helmet, Body Armor, Accessory.
SCRIPT – “kind” seguendo ovviamente l’array delle armature, darà un numero che va da 0 a 3 seguendo l’ordine specificato sopra.
Auto State – Ancora esclusiva Armors, in questo caso bisogna specificare se e quale stato dare a chi viene equipaggiato tale oggetto, si potrebbe dare uno stato per potenziare ulteriormente o uno negativo per regolare il fatto che è un oggetto estremamente potente e così via.
SCRIPT – “auto_state_id” per avere un array che contiene gli ID degli stati specificati.
Parameters – Uhm… devo dire che qui potrebbe risultare complesso spiegare tutte e 3 le schede insieme quindi andremo 1 alla volta, tranne per “Price” che cel’hanno tutte e 3 e va a specificare il prezzo dell’oggetto/arma/armatura in un probabile negozio o simile.
Items: “Consumable” va a specificare se rendere l’oggetto consumabile o no con “Yes” o “No”, cosa vuol dire consumabile? Praticamente l’oggetto sparisce dopo l’utilizzo; “Parameter” e “Param Inc” il primo esclude il secondo se “None”, vuol dire quale parametro andare a potenziare, poi “Param Inc” di quanto, il potenziamento è definitivo; i vari “Rcvr” intendono “Recover” (Cura), gli HP e/o gli SP, in percentuale e/o quantità fissa; “Hit Rate” è la percentuale dell’oggetto di funzionare; “PDEF-F”, “MDEF-F” e “Variance” sono come per le skill, se per esempio è un oggetto che danneggia (Rcvr in negativo), questi valori possono modificare il danno inflitto.
Weapons e Armors: entrambi hanno “PDEF” (difesa fisica) e “MDEF” (difesa magica), cioè vanno a aumentare tali statistiche a chi li indossa, chiaramente sono potenziamenti che durano solo finchè vengono equipaggiati; di potenziamenti finchè l’hanno equipaggiato ci sono anche “ATK” (attacco) per Weapons e “Eva” (evasione) per Armors; non è finita qui con i potenziamenti (solita cosa), ci sono anche “STR+” (forza), “DEX+” (destrezza), “AGI+” (agilità), “INT+” (intelligenza).
SCRIPT – Anche qui divideremo la spiegazione, solito “price” per vedere tale info che va bene per tutte e 3 le array delle schede.
Partendo con Items: “consumable” darà “true” o “false” in base se è selezionato “Yes” o “No”, “parameter_type” va da 0 a 6 (none, max HP, max SP, str, dex, agi e int), “parameter_points” darà il valore specificato così come tutti quelli che seguono, “recover_hp_rate” “rate” si intende la percentuale, “recover_hp”, “recover_sp_rate”, “recover_sp”, “hit”, “pdef_f”, “mdef_f”, “variance”.
Weapons e Armors daranno tutti valori numerici: “atk” (solo Weapons), “pdef”, “mdef”, “eva” (solo Armors), “str_plus”, “dex_plus”, “agi_plus”, “int_plus”.
Element, State Change – E riecco una cosa già vista in Skills, stavolta sarà presente sia in Items che Weapons; “Element” è l’elemento dell’oggetto o dell’attacco eseguito con l’arma, può cambiare efficacia o danni in base a resistenza e debolezza di chi riceve; “State Change” aggiunge (+) o rimuove (-) uno stato a chi riceve l’effetto dell’oggetto o il colpo dell’arma.
SCRIPT – “element_set” per avere un array con gli ID di tutti gli elementi; “plus_state_set” o “minus_state_set” per avere un array degli stati che vengono aggiunti o tolti; chiaramente utilizzare l’array di Items o Weapons in base alle necessità.
Element, State Defense – Presente solo in Armors e aggiunge resistenza agli elementi e stati selezionati a chi cel’ha equipaggiata; resistenza agli stati vuol dire meno probabilità di subirlo, il massimo infatti lo rende immune a quello stato.
SCRIPT – “guard_element_set” o “guard_state_set” come di consueto danno un array con gli ID degli elementi o stati selezionati.

– ENEMIES –

Actors sono i personaggi del giocatore mentre Enemies quelli che dovrà affrontare, infatti come abbiamo già visto si potrebbe tradurre con “nemici”; in generale sono schede simili ma neanche tanto vedendo meglio, una cosa principale è che gli attori cambiano livello mentre i nemici no.
SCRIPT$data_enemies[ID] sostituendo ID con l’ID del nemico desiderato, similmente a Actors c’è anche $game_troop.enemies[ID], la “truppa” è il party nemico, così come l’array $game_party qui l’ID non deve essere del nemico ma della posizione all’interno del gruppo… “id” e “name” vale per tutte le schede, credo che non sia il caso di ripeterlo ancora.
Battler Graphic – Beh, “Grafica Lottatore”, in questo caso non ci sarà “Character Graphic” essendo, almeno di base, solo nemici da vedere in battaglia.
SCRIPT – “battler_name” o “battler_hue” fanno ancora riferimento alla “Battler Graphic”, il primo da il nome dell’immagine mentre il secondo il filtro applicato all’immagine (applicato dal database).
Parameters – Chiaramanete anche i nemici hanno parametri, o statistiche, ma in questo caso sono fissi e non variano in base al livello, almeno di base; non c’è altro da aggiungere, sono le solite statistiche viste e riviste, hanno lo stesso utilizzo.
SCRIPT – Chiaramente bisognerà scrivere il nome del parametro desiderato, per ordine ora li ripeto: “hp”, “maxhp”, “sp”, “maxsp”, “str”, “dex”, “agi”, “int”, “atk”, “pdef”, “mdef” o “eva”.
Attacker, Target Animation – Similmente a Weapon, “Attacker Animation” è l’animazione che apparirà, in questo caso, sul nemico quando attaccherà, mentre “Target Animation” quella che apparirà su chi colpisce.
SCRIPT – “animation1_id” o “animation2_id” per la prima o la seconda, sempre l’ID dal database ovviamente.
EXP, Gold, Treasure – Questi 3 valori vanno a indicare cosa si ottiene sconfiggendolo, “EXP” i punti esperienza che servono per aumentare di livello, “Gold” la moneta di gioco in fine “Treasure” (Tesoro) un oggetto, che può essere anche un’arma o armatura, andando anche a specificare in quante probabilità viene dato.
SCRIPT – “exp”, “gold”, “item_id”, “weapon_id”, “armor_id” o “treasure_prob” per avere uno di questi valori; “item_id”, “weapon_id”, “armor_id” daranno 0 se non c’è alcun oggetto/arma/armatura selezionata, mentre “treasure_prob” intende la probabilità nel dare il tesoro.
Element, State Efficiency – Qui per specificare l’efficacia di un elemento o stato contro tale nemico, A più efficace, F meno.
SCRIPT – “element_ranks” o “state_ranks” per avere un’array con ognuno dei valori da 0 a 5, cioè da A a F; utilizzando $game_troop.enemies[ID].state_guard?(ID) si avrà “true” o “false” in base a se è immune allo stato spacificato nel secondo ID.
Action – Sono le varie “Azioni” che può eseguire il nemico, doppio click sotto all’ultimo per aggiungerne una nuova; si può scegliere “Basic” (Base) o “Skill”, dato che sappaimo già sono sono le skill vediamo bene cosa si intende con Basic: “Attack” eseguirà un attacco standard, “Defend” si preparerà a incassare il colpo subendo meno danni, “Escape” fuggirà dalla lotta (se fuggono tutti i nemici la lotta finisce senza ottenere alcun che) in fine “Do Nothing” farà nulla… letteralmente.
La zona superiore chiamata “Condition”, intende in quali condizioni potrà eseguire tale azioni, si potrà scegliere “Turn” se passati un certo numero di turni, “+ … X” vuol dire che dopo aver raggiunto il turno si dovrà attendere ogni volta il numero di turni specificati nel secondo; “HP … % o below” se il nemico avrà quella percentuale di HP o meno; “Level … o above” se è presente un giocatore di quel livello o maggiore; “Switch” se la switch specificata è ON; chiaramente se la condizione non è vera allora l’azione non verrà eseguita. In fine c’è “Rating” che intende con quanta frequenza eseguire tale azione, va da 0 a 10, se più con lo stesso rating vuol dire che avranno la stessa probabilità di venir scelta.
SCRIPT – Qui per andare nei dettagli servirebbe una parte della guida creata di proposito, infatti meglio attendere di creare una parte dedicata alla battaglia; $data_enemies[ID].action è il primo livello dell’array che contiene le possibili azioni, poi aggiungendo “kind” darà 0 se “Basic”, 1 se “Skill”; “basic”, chiaramente se “kind” è 0, darà un numero da 0 a 3 seguendo l’ordine: attacca, difendi, fuggi, niente; “skill_id”, in questo caso se “kind” è 0, darà l’ID della skill; “condition_turn_a”, “condition_turn_b”, “condition_hp”, “condition_level” o “condition_switch_id” chiaramente fanno riferimento alla condizione; in fine “rating” al numero specificato per la frequenza.

– TROOPS –

Come già detto Troops sono il gruppo dei nemici, che vanno creati in questa scheda del database; per non far confusione, la lista a sinistra sono le truppe, mentre quella piccola a destra i nemici da selezionare (spiegherò bene poco giù); anche qui non scenderò nei dettagli che riguardano la battaglia ma solo il database.
SCRIPT – Come già visto c’è l’array $game_troop, come la variante che inizia con $data invece di $game, aggiungendo “.enemies” si avrà l’array dei nemici che contiene.
Enemies – Forse è proprio il caso di partire da questa zona, che nel database non c’è scritto niente ma c’è direttamente la lista dei nemici della scheda Enemies; a destra la lista, a sinistra l’anteprima mentre al centro per gestire il tutto, selezionando un nemico dalla lista poi il pulsante “” lo si rimuove; “C” immagino intenda “Clear” dato che svuota la truppa eliminando tutti i nemici presenti mentre “A” “Align” dato che li allinea visto che dall’anteprima è possibile posizionarli come più vi aggrada.
SCRIPT – Una cosa vista e rivista, “enemies” per l’array che contiene i nemici presenti nella truppa, da qui vedere la spiegazione della scheda Enemies per dettagli.
Autoname, [ED] Battleback, Battle Test – “Autoname” darà il nome in maniera automatica basandosi sui nemici presenti; “[ED] Battleback” per selezionare lo sfondo della battaglia, che sarà uguale in tutte le truppe; “Battle Test” per iniziare una battaglia di prova, creando il party come lo si desidera, utile per capire se dovete cambiare qualcosa o meno, se è equilibrato giusto insomma.
SCRIPT – Chiaramente “name” per vedere il nome, mentre direttamente “$data_system.battleback_name” per il nome dell’immagine di sfondo della battaglia, così come “$BTEST” che darà “true” o “false” in base al fatto se si sta eseguendo una battaglia di prova o no.
Battle Event – Cose già spiegate nella parte della guida degli eventi, lo sottolineo se qualcuno si trovi qui per caso e pensi che me ne sia dimenticato, giusto alcune precisazioni in script.
SCRIPT – “pages” per avere l’array che contiene le informazioni degli eventi della battaglia, seguono poi, sempre dopo “pages[N].” con N che specifica la pagina dell’evento, “condition” per le condizioni dell’evento, “Don’t Run” si intende “non farlo partire” l’evento; “span” va da 0 a 2 in base se si selezioni “battle”, “turn” o “moment” (sinceramente non ho capito cosa cambia, facendo prove); poi “list” per la lista di comandi presenti, anche qui andrebbe da approfondire tanto ma per ora voglio limitarmi a spiegare il database.

– STATES –

Wow, siamo vicini alla fine, avendo superato le schede più complesse, non che in States ci sia poco da spiegare ma neanche tanto, li abbiamo nominati spesso, qui è dove si creano gli stati, veleno, bruciatura, gelo e più chi ne ha più ne metta… sul serio, potete sbizzarirvi in tantissimi modi, vediamo nello specifico come.
SCRIPT$data_states[ID] è l’array che contiene gli stati del database.
Animation – Qui si seleziona l’animazione da mostrare su chi ne è affetto.
SCRIPT – “animation_id” per avere l’ID dell’animazione.
Restrinction – Chi ne è affetto potrà avere una delle seguenti restrinzioni: “None” se nessuna, “Can’t use magic” non può usare magie (intese le skill), “Always attack enemies” potrà solamente usare l’azione “attacca” sui nemici, “Always attack allies” come prima ma sui alleati, “Can’t move” non potrà muoversi, far nulla quindi.
SCRIPT – “restrinction” darà un numero da 0 a 4 nello stesso ordine di come spiegate.
Nonresistence… Slip Damage – Speghiamo tutt’insieme le 5 spunte di cui ho nominato la prima e l’ultima; “Nonresistence” devo dire che questo proprio non ho capito cosa cambia, tra gli stati standard la tengono attiva solo quelli di potenziamento; “Regard as HP 0” farà andare gli HP a 0, innescando quindi il KO; “Can’t Get Exp” negerà il guadagno di punti esperienza a chi ne è affetto; “Can’t Evade” qui ho dei dubbi, mi viene da dire che chi ne è affetto non potrà schivare alcun colpo ma per correttezza specifico che non ho certezza; “Slip Damage” farà subire un tot di percentuale di danni, in base ai propri HP massimi, di standard è circa 1/10.
SCRIPT – In questo caso si avrà semplicemente “true” o “false” se la spunta c’è o no, nello stesso ordine di prima i codici sono: “nonresistance”, “zero_hp”, “cant_get_exp”, “cant_evade” o “slip_damage”.
Parameters – E rieccoci con questo termine per analizzare i vari parametri, in questo caso di States; “Rating” va a specificare quale stato ha maggiore priorità in un turno, cioè quale ha prima effetto e prima si calcola se si viene curati automaticamente (vedremo tra poco); poi tutti quelli che finiscono con “%” vanno a modificare la statistica specificata della perncentuale specificata, così come “EVA” che va da -100 a 100.
SCRIPT – Per avere i vari valori specificati andare proprio a specificare quale: “rating”, “hit_rate”, “maxhp_rate”, “maxsp_rate”, “str_rate”, “dex_rate”, “agi_rate “, “int_rate”, “atk_rate “, “pdef_rate “, “mdef_rate” o “eva”.
Release Conditions – “Condizioni di Cura” non è una traduzione letterale ma rende l’idea, come anticipato va a specificare in che modo curare lo stato in modo automatico, senza oggetti o altro; “Release at the end of battle” con questa spunta si specifica che lo stato si curerà appena finirà la battaglia, il che vuol dire che senza questa spunta rimarrà, solitamente gli stati di potenziamento o indebolimento vengono tolti a fine battaglia; “After … turns, … % change” cioè ogni quanti turni c’è possibilità di curare dallo stato, andando a specificare poi la percentuale, mettere 100 se lo si vuole rimuovere di sicuro; “Each physical damage deal, … % change” in questo caso invece c’è una percentuale di cura se si subisce un danno fisico.
SCRIPT – “battle_only” “true” o “false” se la spunta c’è o no, “hold_turn” per i turni di cura, “auto_release_prob” per la probabilità specificata nei turni, “shock_release_prob” invece la percentuale di cura subendo un attacco fisico.
Element Defense, State Change – Il primo è come per Armors, aumenta la resistenza di un certo stato, mentre il secondo come per Weapons, “+” per aggiungere uno stato, “-” per rimuoverlo.
SCRIPT – Anche i codici sono gli stessi, ovviamente sempre specificando l’array della scheda desiderata; “guard_element_set” darà l’array degli elementi selezionati, “plus_state_set” o “minus_state_set” per l’array degli stati aggiunti o tolti.

– ANIMATIONS –

Eeeh… mi ero dimenticato che anche per questa scheda servirebbe una parte di guida apposta per scendere nei dettagli, il che mi spinge a spiegare a grandi linee, almeno per ora. Tanto per iniziare le abbiamo nominate spessisimo quindi credo che vi siete fatti un idea ampia su cosa servono, sul come creare in verità è molto più facile di come sembri, solo ci sono molte opzioni, per questo ho detto che non scenderò nei dettagli, per ora dico solo che se sapete usare programmi di grafica, tipo Photoshop o Gimp, o di montaggio video, di sicuro non avrete difficoltà a capire bene come funziona.
SCRIPT – Chiaramente l’array delle animazioni sarà $data_animations[ID].
Animation Graphic – Come prima cosa serve scegliere/creare un’immagine che contiene i possibili frame dell’animazione, massimo 5 per riga.
SCRIPT – Soliti “animation_name” o “animation_hue” per nome e filtro dell’immagine selezionata.
Position, Frame – Per selezionare la posizione di dove appare l’animazione, sopra, centro, sotto o… schermo? Quest’ultima immagino al centro dello schermo; poi “Frame” per precisare di quanti frame volete che duri.
SCRIPT – “position” 0 se “top”, 1 se “middle”, 2 se “bottom”, 3 se “screen”; “frame_max” conterrà il numero di frame di quanto dura l’animazione.
Frames – Tra il pulsante “Back” e “Next” si trovano i singoli frame, utilizzando questi pulsanti infatti ci si muove al frame precedente o successivo, ma sappiate che è più comodo farlo con le frecce della tastiera o andando a selezionare quello desidato col mouse.
É qui, grazie anche all’anteprima appena a destra, che si costruisce l’animazione, studiamo quindi prima l’anteprima, ci sarà un Actors di standard ma è possibile cambiarlo dal pulsante “[ED] Battler” e servirà solo d’esempio, poi vedrete delle linee verdi che vanno a dividere a metà orizontalmente e verticalmente l’area dove averrà l’animazione, infatti in base a “Position” saranno posizionate in modo diverso; poi dei riquadri arancio e blu numerati, quelli arancio sono del frame attuale mentre quelli blu di quello precedente, per avere un’idea della fluidità dell’animazione.
Per creare finalmente un animazione, selezionare un immagine sotto, che ricordo far parte dell’immagine selezionata su “Animation Graphic”, poi selezionare nell’anteprima dove volete che si posizioni, tranquilli se non vi riesce a primo colpo, potrete spostarla tenendo premuto col mouse, chiaramente ricordatevi di cambiare frame per avere un animazione.
Finito ci sono i pulsanti “Play Hit” e “Play Miss” per vedere l’animazione creata, cosa cambia tra i 2? Vedremo nella prossima opzione. Se spiego gli altri pulsanti rischio di farvi venir mal di testa, servono comunque solo ad accelerare probabili modifiche.
SCRIPT – “frames”… non saprei l’utilizzo pratico ma è un array che contiene i singoli frame.
Ricordate i riquadri aranci e blu numerati? Sono chiamate celle, infatti si possono aggiungere, a “frames[N].”, “cell_max” o “cell_data”, il primo specifica quante celle contiene il frame, il secondo specifica proprio i dati della cella, in un array che contiene tutte quelle del frame.
SE and Flash Timing – E non è finita, ci sono ulteriori possibili aggiunte per l’animazione, qui è possibile aggiungere suoni e flash, specificando in quale frame mentre “Condition”: “None” non cambia nulla, “Hit” solo se la probabile skill va a segno, “Miss” se non va a segno.
SCRIPT – Subito dopo l’array di Animation aggiungere “timings” per avere questi dati in un array, così come, dopo “timings[N].”, “frame”, “se”, “flash_scope”, “flash_color”, “flash_duration” o “condition” per le varie informazioni.

– TILESETS –

Sembra complicato ma non lo è affatto, i Tilesets servono a dare l’aspetto grafico alle mappe, oltre a altre cose come il raggiungimento o meno di un certo luogo, vediamo nei dettagli.
SCRIPT$data_tilesets[ID] per l’array degli elementi di questa scheda, sostituendo ID con quello desiderato, i solitissimi “id” o “name” vanno bene anche qui.
Graphic – Qui come vedrete esistono molti file immagine, li possiamo spiegare a gruppo, senza andare troppo nel dettaglio; “Tileset Graphic” per l’immagine base; “Autotile Graphic” per quelli che si vanno ad adattare in modo automatico, dovete solo “spalmarli” e creerà gli angoli, o simili, in automatico, sempre se è fatto bene, massimo si possono avere 7 autotile per ogni tileset; “Panorama Graphic” sarà lo sfondo, visibile solo se ci sono tile in parte o totalmete invisibili; “Fog Graphic” per scegliere se e in che modo apparirà la nebbia (fog, appunto), esiste anche un comando negli eventi comunque; “Battleback Graphic”, in Troops si è già scelto lo sfondo di battaglia ma verrà visualizzato quello selezionato in Troops se non ce ne alcuno nel Tileset.
SCRIPT – Per avere l’informazione su quale immagine si ha impostato nel tileset aggiungere all’array base: “tileset_name”, “autotile_names” (array contenente tutti i 7, con ID da 0 a 6), “panorama_name”, “panorama_hue”, “fog_name”, “fog_hue”, “fog_opacity”, “fog_blend_type”, “fog_zoom”, “fog_sx”, “fog_sy”, “battleback_name”.
Tile – Traducibile in “Piastrella”, un tileset è appunto diviso in tante piastrelle, 32×32 pixel, che vanno a creare la mappa, non solo graficamente, vediamo ora a che servono i vari pulsanti:
“Passage” darà la “passabilità” a un tile, la prima riga, escluso il primo tile a sinistra, sono presenti i vari autotile selezionati, questi (anche quello non autotile) potranno avere 3 tipi di passage: cerchio, croce o quadrato, mentre gli altri solo cerchio o croce, ma cosa cambia ciò? Il cerchio indica che è un tile che il giocatore potrà calpestare; la croce invece sarà un tile che bloccherà il giocatore, di conseguenza non calpestabile; in fine il quadrato è un pò più complesso, se si creerà una linea orizzontale a tile singolo, il giocatore potrà passare oltre come fosse un cerchio, mentre 2 o più no, o meglio sarà “calpestabile” (in prospettiva copre il giocatore) solo il tile più in alto, tutti gli altri saranno come quelli impostati su croce.
“Passage (4 dir)” è simile a passage ma più preciso, vedrete punti o frecce nei 4 punti cardinali per ogni singolo tile, questo per specificare da che direzione è possibile raggiungere tale tile così come la direzione dove è possibile “lasciarlo” quando ci si trova sopra; chiaramente una freccia indica che quel punto cardinale è accessibile mentre un puntino no.
“Priority” per indicare la priorità di una tile rispetto agli altri e giocatore, indicandolo con una stella e un numero, fino a 5, se un puntino la priorità è 0 mentre il giocatore ha priorità 1 (modificabile ma per ora non vedremo come); tale valore si riferisce alla prospettiva, un pò come aggiungere la terza dimensione (Z oltre a X e Y) anche se la grafica è 2D, per esempio potete creare una tettoia dove il giocatore potrà camminarci sotto ma, essendo una visuale dall’alto, la tettoia coprirà il giocatore, mettendola a una priorità alta (2 dovrebbe bastare).
“Bush Flag” bush vuol dire cespuglio quindi serve per indicare se dare l’effetto cespuglio o meno, come sempre il puntino indica che non c’è mentre, in questo caso, le ondine si; praticamente il tile, se calpestato, coprirà in parte il giocatore e farà un leggero movimento quando il giocatore si muoverà.
“Counter Flag” se puntino disattivato, se rombo attivato ma a cosa serve? Ammetto che mi sono informato proprio mentre scrivevo perchè non ho mai avuto occasione di provarlo ne capirlo; praticamente immaginate di avere un tile con questo “flag” attivo (quindi col rombo), un’altro in una qualsiasi delle quattro direzioni, poi un evento posto oltre il secondo tile col rombo avente come trigger “Action Button”, di norma dovete per forza porvi a uno dei tile appena vicini per attivare l’evento, no? Ebbene grazie a “Counter Flag”, se vi mettete al tile più lontano avente il rombo, girati verso l’evento, se cliccate l’evento si attiverà comunque anche se c’è 1 tile di distanza tra giocatore e evento, con maggiore distanza però non succede, ricordate però che il rombo deve averlo sia il tile sotto al giocatore sia quello verso la direzione dell’evento; questo può essere utile se magari si deve parlare a un NPC (Non Player Character) che si trova dietro un bancone.
“Terrain Tag” darà, chiaramente a scelta, un numero da 0 a 7 a ogni tile, l’utilizzo è puramente script o comando, per esempio spesso negli RPG è possibile attraversare le acque con imbarcazioni o altro ma non tutte, quindi si possono creare dei tile trasparenti con un valore specifico da mettere solo sulle sponde che si vuole permettere di attraversare, oppure in alcuni punti si potrà eseguire un salto e così via, sono solo esempi ma sbizzaritevi pure… ah, vedremo poi in SCRIPT come fare ciò, per ora ho spiegato più teoria che pratica.
Parlando dei Tile non possiamo non tornare sui “Layer”, ovvero “Strati”, come anticipato all’inizio della guida esistono ben 3 layer di tile, oltre al 4° occupato dagli eventi, ebbene servono per risparmiare tile nel tileset, per esempio potrete fare un percorso in autotile senza bordi, in modo da non crearne uno per ogni “bioma” in base alle varie zone della mappa, che sia terra, sabbia, roccia o chissà che, al primo layer mettere la superficie mentre nel secondo il percorso, così come tantissimi altri possibili utilizzi pratici; comunque va sottolineato, a parte casi specifici, il tile presente nel layer più in alto avrà priorità maggiori e non mi riferisco a “Priority” ma a “Passage” e “Passage (4 dir)”, se per esempio nel layer1 c’è un tile non calpestabile mentre nel layer2 ce n’è uno calpestabile, allora il giocatore potrà raggiungere quelle coordinate X e Y, così come se invertiti non potrà raggiungerle; l’eccezione è il tile numero 0, quello presente nella riga dei 7 autotile, di norma ha passabilità “cerchio” ma è anche considerato tile vuoto, verrà preso in considerazione solo se tutti e 3 i layer sono vuoti, in tal caso ricordate di “giocare” con “Passage (4 dir)” se volete zone dove è possibile vedere lo sfondo ma non volete che siano calpestabili/raggiungibili.
SCRIPT – Ed eccoci qui a spiegare la parte script degli argomenti… spiegati; ricordo che i “comandi” che ora andrò a elencare vanno aggiunti a $data_tilesets[ID]. per avere l’informazione desiderata, a dirla tutta questi non ho avuto occasione di approfondirli ma almeno le basi le conosco e prima di spiegarli va specificato che ogni tile del tileset ha un ID (a “$data_tileset” però va l’ID del tileset), quello vuoto 0 poi seguono gli autotile ma non 1 il primo autotile, 2 il secondo autotile bensì:
Quello vuoto si 0, ma gli autotile hanno un gruppo di ID in base se si tratti di una linea, orizzontale, verticale, un angolo e così via, è una cosa che mi studiai perchè mi serviva per un progetto, è facile da capire ma lungo quindi evito di andare nei dettagli, il primo autotile va da 48 a 94, il 95 viene saltato per poi passare al secondo autotile dal 96 a 142 e così via, a gruppi di 47 (va contato anche il primo) saltando un numero fino all’ultimo autotile, da 336 a 382, per poi proseguire a 1 a 1 i tile del tileset partendo da 384; per evitare di confonderci però credo sia giusto definire l’ID del tile più come “posizione” del tile.
Spiegato ciò che era doveroso per farvi capire, ecco i comandi per estrarre le informazioni spiegate, dove N va sostituito alla posizione del tile desiderato: “passages[N]” è effettivamente quello che mi ha messo in difficoltà a capirlo, da un valore diverso in base a “Passage”, “Passage (4 dir)”, “Bush Flag” e “Counter Flag”, un valore che somma tutti queste caratteristiche, 0 se è accessibile da tutte le 4 direzioni e niente Bush ne Counter, a questo 0 si aggiunge 1 se non è possibile accedervi da sotto, 2 se non da sinistra, 4 se non da destra, 8 se non da sopra, 64 se Bush e 128 se Counter, la difficoltà viene dal fatto che se possiede più di queste caratteristiche il numero che verrà fuori sarà la somma dei numeri descritti… ora capite la problematica? Volendo esiste un algoritmo neache difficile che però non spiegherò per non complicare ulteriormente il discorso ma se a voi interessa soltanto se il giocatore, o altro evento, può calpestare i tile presenti in determinate coordinate basta usare “$game_player.” per il giocatore o “$game_event[ID_EVENTO].” per un evento, poi “passable?(X,Y,D)”, specificando le coordinate della mappa con X e Y mentre D la direzione, riferito a “Passage (4 dir)”, se D 0 allora se il tile è in qualche modo calpestabile, avendo quindi almeno 1 direzione accesibile, mentre 2 se sotto, 4 se sinistra, 6 se destra o 8 se sopra; darà come risultato “true” o “false” se può passare o no.
Uff… spiegato quello complicato, fa ridere sapere che invece i due che seguono sono di una semplicità disarmante: “priorities[N]” darà il valore da 0 a 5 specificato mentre “terrain_tags[N]” un valore da 0 a 7… si, tutto qui.

– SYSTEM –

Common Events la saltiamo avendo già fatto una parte della guida sugli eventi, dove ho specificato cosa cambia in un evento comune, passiamo quindi all’ultima, finalmente, scheda… System! Se siete rimasti qui dall’inizio alla fine, senza pause, anche di giorni, che dire, grazie e complimenti ma la prossima volta evitate, non credo sia tanto salutare, metto i titoli in base all’argomento in modo molto evidente proprio per permettervi di fare pause e tornare facilmente all’argomento dove avevate lasciato.
La scheda del database System vedrete subito che è tanto diversa dalle altre, quindi andremo nei dettagli per ogni zona, anche perchè ce ben poco da dire… poco ma potrebbe comunque portare una spiegazione non tanto breve.
SCRIPT$data_system per la variabile di questa scheda, ebbene si, stavolta non si tratta di array ma alcuni dei comandi che seguono saranno invece array.
Initial Party – Qui si avrà il party di inizio gioco, chiaramente modificabile proprio da questa scheda.
SCRIPT – “party_members[N]” per sapere appunto i componenti iniziali del party, dove N può essere da 0 a 3, per le 4 posizioni del party; poi, seguendo sempre “$data_system.”, c’è “start_map_id”, “start_x” o “start_y” si riferisce allo stesso ma su mappa.
Element Names – Per fare una lista degli elementi, solo i nomi, per altre carattestiche bisogna modificare le altre schede.
SCRIPT – “elements[ID]” sostituendo l’ID con l’elemento desiderato, il primo avrà ID 1, si avrà direttamente il nome dell’elemento.
System Graphic / BGM / ME / SE – In questa zona sono presenti vari file immagini e audio, basta leggere (tradurre se non capite l’inglese) per capire subito a che servono, l’unico non tanto intuitivo è “Windowskin Graphic”, cambiando questo file cambierete la grafica di finestre e menù di gioco, chiaramente posizionando i vari elementi nella medesima posizione.
SCRIPT – Beh, semplicemente per avere l’informazione desiderata basta aggiungere alla variabile base uno dei seguenti comandi: “windowskin_name”, “title_name”, “gameover_name”, “battle_transition”, “title_bgm”, “battle_bgm”, “battle_end_me”, “gameover_me”, “cursor_se”, “decision_se”, “cancel_se”, “buzzer_se”, “equip_se”, “shop_se”, “save_se”, “load_se”, “battle_start_se”, “escape_se”, “actor_collapse_se” o “enemy_collapse_se”.
Words – Letteralmente “Parole”, cioè come volete che vengono chiamati i vari elementi di gioco.
SCRIPT – In questo caso deve prima seguire “words.” poi “gold”, “weapon”, “armor1”, “armor2”, “armor3”, “armor4”, “attack”, “skill”, “item”, “guard”, “equip”, “hp”, “sp”, “atk”, “pdef”, “mdef”, “str”, “dex”, “agi” o “int”, ricordando che sono solo testi, parole senza un valore numerico o altro.

– CONCLUSIONE –

Ohhh mamma… non mi aspettavo che sarebbe venuto così lungo, infatti in alcuni punti ho accelerato, se quei punti sono poco chiari avvisate che cercherò di essere più preciso e chiaro… ebbene abbiamo finito, alla prossima! Ancora indeciso sull’argomento della prossima parte.

Lascia un commento