Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

  • Chatbox

    You don't have permission to chat.
    Load More
Thejuster

JS [Tutorial] Il primo script

Recommended Posts

Voglio dunque introdurvi al mondo degli scripting di Rpgmaker MV.
 
Cosa occorre all'inizio?
 
Servirebbe un buon editor.  
Al momento Justino ne sta creando proprio uno per avvantaggiare il nostro lavoro.
Purtroppo la libreria del nuovo RpgmakerMV è talmente estesa che ci vorrà un bel pò per capirne tutti i fondamenti.
 
Per prima cosa in tutti gli script bisogna dichiarare le informazioni del plugin all'utente finale.
 
RpgmakerMV effettua un parsing della stringa
splittando gli spazi vuoti ()  e leggendo il testo successivo al comando.
 
 
Questo è un commento
 

//Commento su una linea

 
 
Commento su più linee
 

/*  Questo
*   e un commento
*   su più linee
*/

 
 
 
Cosa inizializza Rpgmaker ad effettuare il parsing? 
 
inserendo :  accanto all'asterisco iniziale
 
 
/*:
 
Vengono inserite le relative istruzioni
 
 

* @plugindesc    Descrizione del plugin
* @author           Nome dell'autore

 
Per i parametri ne possiamo inserire quanti ne vogliamo
ecco un esempio
 

 

 * @param Parametro1
 * @desc Descrizione del Parametro1
 * @default Valore di Default
 *
 *
 * @param Parametro2
 * @desc Descrizione del Parametro2
 * @default Valore di Default

ecc. ecc.

Poi abbiamo il comando della guida completa del plugin

dove viene specificato dettagliatamente tutto il plugin come si comporta semplicemente aggiungendo alla fine

* @help  Descrizione completa su più linee dello script

Lo script viene poi inizializzato utilizzando il metodo dell'incapsulamento 

(function() {


//Tuo Script qui



})();

Ma si può anche abolire, è scrivere completamente un intera classe da 0.

Ma evitiamo ciò e passiamo dunque al passo successivo.

 

 

La funzione del PluginManager

 

La funzione PluginManager è una funzione nativa del programma.

Esso permette di avere accesso solo a quella parte che ne specifica il plugin e non oltre.

Serve solo ed esclusivamente all'accesso del plugin Stesso.

 

con questa funzione si recuperano eventuali parametri specificati in precedenza.

 

 

Si specifica in questo modo

var parametri = PluginManager.parameters('NomeDelMioScript');

Da qui, faccio diventare la mia variabile  parametri in un array che contiene le definizioni e parametri settate dal plugin.

 

 

Quindi mettiamo caso che io voglia recuperare il valore che ho specificato nel campo Parametro1

var valore = parametri['Parametro1'] || 0);

Cosa ho fatto esattamente?

Ho creato una nuova variabile chiamata valore, e gli ho detto di prendere dall'array parametri il valore contenuto in

Parametro1

 

Nota:  ||  Significa oppure

 

Oppure, gli setto 0 se l'utente rimane il parametro vuoto o non lo modifica.

 

 

Facciamo la stessa cosa con il Parametro2 ed avremo un qualcosa del genere

 /*:
 * @plugindesc    Descrizione del plugin
 * @author           Nome dell'autore
 *
 *
 *
 * @param Parametro1
 * @desc Descrizione del Parametro1
 * @default Valore di Default
 *
 *
 * @param Parametro2
 * @desc Descrizione del Parametro2
 * @default Valore di Default
 *
 *
 * @help Guida del plugin 
 */




(function() {



var parametri = PluginManager.parameters('NomeDelMioScript');

var valore = parametri['Parametro1'] || 0);
var valore2 = parametri['Parametro2'] || 0);



})();

Ora iniziano i problemi   :D

Abbiamo quasi 950 classi, e più di 2000 funzioni che possiamo ereditare.

Questo dipende da ciò che dobbiamo fare.

 

Presto vi illustrerò altri fondamentali importantissimi.

 

Questo è uno script di prova che ho fatto giusto per mostrarvi un qualcosina.

Ecco come aggiungere direttamente al Title Screen un nuovo comando

 /*:
 * @plugindesc    Questo plugin aggiunge al titleScreen un nuovo comando
 * @author        Thejuster
 *
 *
 *
 * @param comando
 * @desc Nuova opzione da inserire
 * @default Makerando
 *
 *
 *
 * @help Questo plugin è una prova non ne assicuro il corretto funzionamento  
 */




(function() {

var parametri = PluginManager.parameters('NewCommandPlugin');
var valore = parametri['comando'] || 'Makerando';


var _Window_TitleCommand = Window_TitleCommand.prototype.makeCommandList;

Window_TitleCommand.prototype.makeCommandList = function()
{
_Window_TitleCommand.call(this);
this.addCommand(valore);

};



})();

NB:

Non ne assicuro il corretto funzionamento perché l'ho scritto dal posto di lavoro

e quindi non è che posso installare Rpgmaker.

Spero che la lezione vi possa essere stata molto utile.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

bene bene XD

justino ne approfitto per farti una domanda, su un dubbio che mi è venuto e che mi è rimasto nonostante abbia già cercato in rete.

Ho solo trovato pareri discordanti su questa cosa qua.

Venendo al dunque "=" in javascript viene visto come "prende/assegna" e fin qui tutto ok, proprio come nel C ed in altri linguaggi.

Il dubbio che ho sta nel "==" e "===" il primo esiste o no in javascript?se esiste che cambia tra i due? 

Solitamente "==" viene usato come "uguale". Ma in rete c'è come un alone di mistero sulla sua esistenza/utilizzo tutti pareri discordanti tra loro.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grande justino :D

 

ma la domanda che mi ponevo era, visto che non c'è uno script editor....come si scripta? xD

 

cioè... apro un file di testo e ci scrivo e poi lo salvo con qualche estensione particolare, o...?

 

XDDD

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

si un qualsiasi editor di testo può andare, tipo io mi son fatto un file vuoto con estensione .js, e l'ho sto utilizzando come separatore

per tenere in ordine i plugin.

una cosa così

----------------------------------------

yanflya

yanflyb

ecc ecc

----------------------------------------

pinco pallo plungins

----------------------------------------

e cosi via.

 

L'unica rottura e che se usi un editor qualunque, non avrai indentazione, colori che diversificano gli elementi, suggerimenti ecc ecc

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

bene bene XD

justino ne approfitto per farti una domanda, su un dubbio che mi è venuto e che mi è rimasto nonostante abbia già cercato in rete.

Ho solo trovato pareri discordanti su questa cosa qua.

Venendo al dunque "=" in javascript viene visto come "prende/assegna" e fin qui tutto ok, proprio come nel C ed in altri linguaggi.

Il dubbio che ho sta nel "==" e "===" il primo esiste o no in javascript?se esiste che cambia tra i due? 

Solitamente "==" viene usato come "uguale". Ma in rete c'è come un alone di mistero sulla sua esistenza/utilizzo tutti pareri discordanti tra loro.

 

 

Riguardo alla tua domanda Kaine,

Devi sapere che questi sono discorsi un pò più sull'avanzato.

 

La tua osservazione è buona

 

=  Assegnazione

==  Uguaglianza

=== Uguaglianza con ritorno di Verità

 

ovvero

 

invece di fare

if(pappa == cena) { return true; }




if(pappa === TRUE)
{

//Prosegui

}

E' praticamente la stessa cosa.

 

Altra cosa che forse non sapete è l'operatore ternario

 

Esso funge in questo modo

function HoCinque(numero)
{

return numero ? true : false;


}

Questo sta ad indicare, Se il numero nella variabile è uguale a 5 allora restituisce true, altrimenti false;

 

 

Grande justino :D

 

ma la domanda che mi ponevo era, visto che non c'è uno script editor....come si scripta? xD

 

cioè... apro un file di testo e ci scrivo e poi lo salvo con qualche estensione particolare, o...?

 

XDDD

 

 

Abbi Pazienza Ghostino.

 

L'editor che sto creando è di una comodità assurda.

Ed'è dotato di Intellisense. 

 

In pratica esempio, digitando

 

Window_Base.

 

Apparirà come in Visual Studio un riquadro con tutti i riferimenti e le operazioni disponibili per quella determinata classe.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Abbi Pazienza Ghostino.

 

L'editor che sto creando è di una comodità assurda.

Ed'è dotato di Intellisense. 

 

In pratica esempio, digitando

 

Window_Base.

 

Apparirà come in Visual Studio un riquadro con tutti i riferimenti e le operazioni disponibili per quella determinata classe.

 

Figurati justino, ho piena fiducia in te :)

 

la mia domanda era un' altra, mi chiedevo, normalmente, per chi non ha l'editor e non sa della (futura) esistenza del tuo, come fa, di norma? xD

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Figurati justino, ho piena fiducia in te :)

 

la mia domanda era un' altra, mi chiedevo, normalmente, per chi non ha l'editor e non sa della (futura) esistenza del tuo, come fa, di norma? xD

 

Chi non ha il mio si arrangia con un qualsiasi editor tipo visual studio o editor html XD

va bene lo stesso.

 

 

ah ok quindi conviene usare sempre "===" perché ha il true incorporato, giusto?

 

 

Dipende.

Io mi trovo sempre con gli if.

Ho pieno controllo sul tutto e non può sfuggirmi nulla..

 

Raramente viene utilizzato.

Maggiormente dai sboroni che voglio fare i fighetti XD

 

Ma non cambia praticamente nulla.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ok grazie ^^

 

Chi non ha il mio si arrangia con un qualsiasi editor tipo visual studio o editor html XD

va bene lo stesso.

 

 

 

 

Maggiormente dai sboroni che voglio fare i fighetti XD

 

Ma non cambia praticamente nulla.

::rotfl::

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da ilvassa93
      Buongiorno a tutti, ho un grosso problema da risolvere nella creazione delle battaglie.
      Vorrei poter combattere contro un altro personaggio come l'attore con le varie animazioni durante la lotta, ma creando un nemico non mi è possibile farlo...
      Sapete come si può risolvere questa cosa?
      Ho provato ad inserire questa immagine ma ovviamente non funziona 😅

    • Da Stradaddo96
      Ciao a tutti,
      Il problema è:
      Ho creato un menu di gioco su RPGMaker MV in cui le opzioni selezionabili sono animate (boiling) tramite un loop. in altre parole i pulsanti del menu sono animati di default, mentre l'opzione selezionata ha un'animazione diversa e più ''veloce''.
      Cambiare l'opzione selezionata andando da sinistra a destra funziona correttamente senza alcun delay nei comandi o altro. Il problema appare quando il giocatore muove la selezione da destra a sinistra: in questo caso, l'animazione di default e quella che indica che il tasto è selezionato si sovrappongo per un momento, rendendo la transizione più lenta e laggosa.
       
      Nello specifico ho settato il menu usando una variabile che aumenta e diminuisce di valore premendo rispettivamente destra e sinistra. questa variabile determina sia quale tasto animare come selezionato, sia quando interrompere il loop dell'animazione e cambiarlo. Per esempio, quando la variabile è uguale a 1, il gioco fa partire il loop in cui la prima opzione del menu è animata come selezionata, mentre le altre sono animate con l'animazione di default. Premendo la freccia destra, e quindi aumentando il valore della variabile, il loop si interrompe e il gioco fa partire quello in cui è animato la seconda opzione è animata come selezionata e le altre no. in questo caso la prima opzione del menu passa da selezionata a non selezionata, e la seconda , al contrario, da non selezionata a selezionata, e ciò avviene in modo fluido e senza problemi. Problemi che appaiono se il valore della variabile decresce (es. da 2 a 1): in quel caso il cambio di animazioni non è fluido e il gioco anima i 2 tasti come se fossero entrambi selezionati e non selezionati contemporaneamente, sovrapponendo le due animazioni. Perché?
       
      Il problema credo sia riconducibile al fatto che RPGMaker MV legge lo script dell'animazione ''selezionata'' prima di interrompere il loop precedente, ma, non essendo un esperto, non ne sono sicuro.
       
      Grazie in anticipo a chi proverà a aiutarmi e, in caso non fossi stato chiaro nello spiegare il problema, chiedetemi pure pezzi di script o info maggiori.
    • Da Zowa
      Ciao a tutti
       
      Volevo chiedere aiuto per un punto dove sono bloccato.
      Ho cercato in internet e alla fine non ho trovato nulla che si adattasse a quello che volevo fare.
      Sto sviluppando un gioco su RPGMAKER MV dove ho creato un sistema perfettamente funzionante di banca dove versare l'oro, il problema che ho è che non so come fare (gradirei spiegazione step by step se possibile) per fare in modo che l'oro dei miei personaggi in caso di sconfitta vada a zero ed i miei personaggi vengano trasportati in una location definita
      Ringrazio chi vorrà aiutarmi. Purtroppo sono irrimediabilmente bloccato al momento.
      Buon making a tutti
    • Da GSV
      Buonasera a tutti, spero di non proporre una domanda già risolta sul forum ma usando la funzione cerca non ho trovato nulla a riguardo. Inoltre, potrebbe essere un quesito banale ma io non trovo soluzione quindi sfrutterò la domanda anche per capire alcuni concetti e numeri-
      Spiego il mio problema: nelle misure "Ampiezza" e "Altezza" di MV 1 è uguale a 48 pixel, di conseguenza una mappa ad esempio 10x10 su MV dovrebbe essere, in corrispondenza, 480x480 pixel se aperta su di un programma come Photoshop.
      Se io però salvo la mappa tramite tasto dx, "Salvare come immagine" ed apro con Photoshop il file .png, quest'ultimo risulterà 240x240 pixel, ovvero la metà. Perchè? Come faccio a salvare il png della mappa con le giuste proporzioni? 
    • Da Chip
      Ecco che finalmente dopo molto tempo posto info sul progetto che stavo portando avanti nell'ultimo anno: Dark Radiancy.
      Avevo avuto modo di inserire una demo giocabile molto breve su indi expo, ma siccome il sito permette di avere la pagina attiva solo se si trovano molti giocatori (ed io
      che ero intento nella sviluppo non avevo avuto proprio il tempo di promuoverlo in qualche modo) e subito dopo l'hanno chiusa, ho deciso di presentarlo qui. 
      Non sono un estimatore di Rpg2s forum in quanto non mi piacciono proprio gli utenti che si trovano in quella stamberga, tuttavia ho bisogno di far conoscere il gioco in qualche 
      modo e spero che vi possa piacere almeno un po'. Ora vi descrivero' di cosa si tratta.
       
      É un gioco rpg a turni creato con rpg maker mv, utilizzando risorse non rippate ma pagate e opportunamente creditate. 
      Le risorse sono in pixel art e provengono dalle abili mani di Finalbossblues, che per chi non lo conoscesse e' quello che crea i tilesets di Time Fantasy.
      Il gioco si articola in 8 livelli in totale, con tre personaggi giocabili, una trama che sto ancora modificando e cercando di rendere il piu' possibile divertente e credibile. 
      Ci sono in totale 12 classi ognuna delle quali si ottiene solo al completamento di un livello e che si possono grindare per sbloccare attacchi segreti e altre abilita'.
      Nei livellli di gioco sono presenti numerosi puzzle, per cui se non vi piace il genere potreste storcere il naso, ma sono tutti puzzle dinamici ossia un tipo di enigmi in
      cui il giocatore fa qualcosa e non deve solamente pensare. 
       
      Molte delle regole di gioco sono illustrate nel tutorial che troverete verso il principio ed e' presente anche un manualetto come riferimento per tutti i vari consigli.
      Il gioco attualmente e' al 65% di sviluppo e sara' completato entro la fine dell'estate. 
      La demo comprende i primi 4 livelli di gioco per un totale di circa 5-6 ore di gioco. Ovviamente il gioco sara' sottoposto a modifiche successive, ma se piacera' o avra' una
      qualche possibilita' di successo, lo reinseriro' su indie expo una volta che sara' completato. 
      E ora via con le foto!








×