Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Creare una funzione che aggiunga oro random

    Nortas
  • Nuovo Arrivato

  • Utenti
  • Rens: 1
  • 0
  • Stelletta
  • 79 messaggi
  • Sesso:Maschio
  • Provenienza:Cagliari
  • Abilitā:Apprendista

#1 Inviato 28 March 2017 - 09:16 AM

Ciao a tutti! Essendo programmatore e conoscendo diversi linguaggi non sto trovando grossi intomppi nell'apprendere il JS.

Il mio unico problema è capire come i plug-in creati poi interagiscano con RPG MAKER MV (tipo valorizzare le variabili da plug-in ecc)

Sto iniziando a documentarmi su sta cosa (sto seguendo i vostri tutorial) ma nel frattempo avrei bisogno di un piccolo plug-in per il gioco che sto sviluppando.

 

Mi piacerebbe avere una funzione da richiamare con un call che aggiungesse un valore RANDOM di oro al mio eroe attenendosi a un valore MIN e MAX che passerei io a funzione.

tipo:
 

rndGold(20,150)

Grazie :)



    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58424 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#2 Inviato 28 March 2017 - 11:42 AM

La funzione per cambiare l'oro del party è questa...

$gameParty.gainGold(n);

credo tu possa mettere al posto della n la funzione per il random con i due numeri senza grossi problemi, facci sapere! ^ ^


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

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Nortas
  • Nuovo Arrivato

  • Utenti
  • Rens: 1
  • 0
  • Stelletta
  • 79 messaggi
  • Sesso:Maschio
  • Provenienza:Cagliari
  • Abilitā:Apprendista

#3 Inviato 28 March 2017 - 20:41 PM

Si si! La prende su SCRIPT:
 

var oro=Math.floor((Math.random() * 100) + 1);
$gameParty.gainGold(oro);
$gameMessage.add("Trovate "+oro+" monete")

In questo modo mi da un valore random tra 1 e 100!

Io però volevo creare qualcosa che si possa richiamare passando le variabili proprio come si fa in Js!

Tipo aprire lo script e scrivere:

miaFunzioneGold(10,100);

e basta! E poi stoccare tutto il resto della funzione altrove! Per adesso l'unica cosa che mi viene in mente è quella di valorizzare 2 delle variabili di controllo e passare quelle però così ho 3 passaggi da fare (valorizzare varMin, valorizzare VarMax, chiamare funzione) mentre volevo ridurre tutto a una semplice chiamata e pensavo magari che coi plug-in si potesse fare! Di fatto il codice Js lo ho già sul mio file Js....non so come farlo funzionare all'interno del game!

Mi sa che devo studiare ancora un bel po per capire come interagisce il js con RPG mV :(



    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58424 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#4 Inviato 28 March 2017 - 21:13 PM

Ah capisco, credevo  bastasse inserire i due parametri lì dove avevi scritto rndGold credendo fosse solo una funzione rnd per effettivamente restituire il valore randomico tra due valori dati! > <

 

Purtroppo non so come creare funzioni nei plugin parametri dati o no. Prova a studiarci un po' sopra ed a guardare gli altri plugin, facci saperi se trovi il metodo! ^ ^


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

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Nortas
  • Nuovo Arrivato

  • Utenti
  • Rens: 1
  • 0
  • Stelletta
  • 79 messaggi
  • Sesso:Maschio
  • Provenienza:Cagliari
  • Abilitā:Apprendista

#5 Inviato 29 March 2017 - 01:43 AM

Allora dopo ore di sbattimento ho partorito questo:

/*
 *=============================================================================
 *  Random Gold MV Version
 *  By Nortas
 *  rnd_Gold.js
 *  Version: 1.0
 *  Free for commercial and non commercial use.
 *=============================================================================
 */
/*:
 * @help
 *                                   Plugin Commands
 *=============================================================================
 *  
 *     █ Genera un valore random di oro da assegnare al gruppo
 * 
 *          Help:
 *                  Oro Minimo		 = Il valore minimo di oro
 *					Oro Massimo		 = Il valore massimo di oro
 *          Esempio:
 *				1) Seleziona la funzione "Comando Plugin"
 *				2) Inserisci il comando:
 *             			rndGold 20 100
 *              Il gruppo otterrà un valore random compreso tra 20 e 100
 * 
 *=============================================================================
 * @plugindesc Genera un valore random di oro da assegnare al gruppo.
 *
 * @author Nortas
 * 
 * @param Messaggio
 * @desc Selezion ON se vuoi visualizzare un messaggio e OFF se non lo vuoi.
 * @default OFF
 *=============================================================================
 */

var parametri = PluginManager.parameters('rnd_Gold');
var comandoBase = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
    comandoBase.apply(this);
    if (command === 'rndGold') {
        if (args[0] >= 0) {
            if (args[1] >= args[0]){
                var minG = args[0];
                var maxG = args[1];
                var rnd = Math.random();  
               var numOro=Math.floor(rnd * (maxG - minG + 1)) + minG;
                $gameParty.gainGold(numOro);
                if (String(parametri['Messaggio'])==="ON") {
                    $gameMessage.add("Ricevute n° "+numOro+" monete d'oro!");
                }                   
            }                            	
        }
        
    }
}




Funziona bene ma solo se metto i valori a mano nello script....e questo non ha vermante senso ragazzi...

 

cioè se invece che scrivere:

var numOro=Math.floor(rnd * (maxG - minG + 1)) + minG;

scrivo:

var numOro=Math.floor(0.282202820* (40 - 20 + 1)) + 20;

Tenete conto che tramite un debugger ho verificato il valore delle variabili ed è identico alla valorizzazione manuale data da me in questo esempio!

 

Non ho idea di come possa succedere una cosa del genere....

 

 

Ps: per farlo funzionare lancio un COMANDO PLUGIN dal mio RPG MV con scritto:  

rndGold 20 40

(dove 20 è il valore minimo e 40 quello massimo che desidero assegnare)...

 

Qualcuno può darmi un giudizio? :/


Modificato da Nortas, 29 March 2017 - 01:44 AM.


    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58424 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#6 Inviato 29 March 2017 - 11:45 AM

Mmmh strano...

non saprei però, prova ad osservare questo plugin che fa uso di parametri da inviare tramite call script...

https://dl.dropboxus...eraCore.js?dl=0

C'è un po' di sintassi scritta in modo diverso, magari trovi il problema confrontando le funzioni.

^ ^


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

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Nortas
  • Nuovo Arrivato

  • Utenti
  • Rens: 1
  • 0
  • Stelletta
  • 79 messaggi
  • Sesso:Maschio
  • Provenienza:Cagliari
  • Abilitā:Apprendista

#7 Inviato 29 March 2017 - 17:56 PM

Nada...ho provato a confrontarlo ma non cambia....

La cosa stranissima è che se il problema fosse il passaggio degli argomenti del comando o dei parametri del plugin lo script dovrebbe crashare anche se io mettessi i valori delle variabili da codice.... invece così funziona....

 

Le variabili sono sicuro che le valorizza con gli argomenti e i parametri perchè ho usato un debug e vedo che sono valorizzate .... (parlo di minG, maxG ecc)....

 

Il problema nasce nell'espressione aritmetica che calcola la variabile numOro....se ci scrivo i numeri a codice funziona se ci metto le variabili (correttamente valorizzate come da debug) crasha....

 

E' davvero priva di senso come cosa....


Modificato da Nortas, 29 March 2017 - 17:56 PM.


    Nortas
  • Nuovo Arrivato

  • Utenti
  • Rens: 1
  • 0
  • Stelletta
  • 79 messaggi
  • Sesso:Maschio
  • Provenienza:Cagliari
  • Abilitā:Apprendista

#8 Inviato 29 March 2017 - 18:28 PM

Up:

Ok dopo un piccolo raginamento ho trovato l'inghippo! Pensavo che l'interpreter rilevasse da solo il tipo di dato degli argomenti di comando (args[0] e args[1]) invece così pare non sia! Mi è bastato inserire una funzione di conversione a numero (Number()) e tutto si è risolto! :)

Ecco il codice funzionante:

 

/*
 *=============================================================================
 *  Random Gold MV Version
 *  By Nortas
 *  rnd_Gold.js
 *  Version: 1.0
 *  Free for commercial and non commercial use.
 *=============================================================================
 */
/*:
 * @help
 *                                   Plugin Commands
 *=============================================================================
 *  
 *     █ Genera un valore random di oro da assegnare al gruppo
 * 
 *          Help:
 *                  Oro Minimo		 = Il valore minimo di oro
 *					Oro Massimo		 = Il valore massimo di oro
 *          Esempio:
 *				1) Seleziona la funzione "Comando Plugin"
 *				2) Inserisci il comando:
 *             			rndGold 20 100
 *              Il gruppo otterrà un valore random compreso tra 20 e 100
 * 
 *=============================================================================
 * @plugindesc Genera un valore random di oro da assegnare al gruppo.
 *
 * @author Nortas
 * 
 * @param Messaggio
 * @desc Selezion ON se vuoi visualizzare un messaggio e OFF se non lo vuoi.
 * @default OFF
 *=============================================================================
 */

 parametri = PluginManager.parameters('rnd_Gold');
const  comandoBase = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
    comandoBase.apply(this);
    if (command === 'rndGold') {
        if (args[0] >= 0) {
            if (args[1] >= args[0]){
                var minG = Number(args[0]);
                var maxG = Number(args[1]);
                var rnd = Math.random();  
                var numOro=Math.floor(rnd * (maxG - minG + 1)) + minG;
                $gameParty.gainGold(numOro);
                if (String(parametri['Messaggio'])==="ON") {
                    $gameMessage.add("Ricevute n° "+numOro+" monete d'oro!");
                }                   
            }                            	
        }
        
    }
}

Se vi piace lo posso postare nella sezione di release dei plugin! :)



    Ste
  • SpaccaUova

  • Rpg˛S Mod
  • Rens: 200
  • 4
  • StellettaStellettaStellettaStellettaStelletta
  • 1351 messaggi
  • Sesso:Maschio
  • Provenienza:Italy
  • Abilitā:Maestro


#9 Inviato 29 March 2017 - 19:04 PM

Differisce dalla funzione di oro random che si ha con gli eventi standard?

    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58424 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#10 Inviato 29 March 2017 - 19:12 PM

E pensare che volevo suggeritelo fossero i tipi, ma pensando al javascript mi pareva strano! > <

 

@ste: tecnicamente ni! XD L'oro deve basarsi su una variabile random tra un tot e tot, questo diciamo te lo fa con una riga anche se ti obbliga a mettere un plugin! XD


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

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Nortas
  • Nuovo Arrivato

  • Utenti
  • Rens: 1
  • 0
  • Stelletta
  • 79 messaggi
  • Sesso:Maschio
  • Provenienza:Cagliari
  • Abilitā:Apprendista

#11 Inviato 29 March 2017 - 22:14 PM

Questo ti da anche il messaggio in automatico! :P
Ma soprattutto è ampliabile (tipo potrei aggiungere SE, text Popup ecc ecc)



    Ste
  • SpaccaUova

  • Rpg˛S Mod
  • Rens: 200
  • 4
  • StellettaStellettaStellettaStellettaStelletta
  • 1351 messaggi
  • Sesso:Maschio
  • Provenienza:Italy
  • Abilitā:Maestro


#12 Inviato 30 March 2017 - 06:30 AM

Allora sarebbe buono ampliarlo prima, ad esempio invece che aggiungere solo l'oro random, farlo per ogni oggetto del database!
Cioè cerca di creare uno script un po' particolare, altrimenti perché qualcuno dovrebbe aggiungerlo nel suo gioco se rpg maker di base ha già questo comando? :)

    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58424 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#13 Inviato 30 March 2017 - 11:59 AM

E sì, se riesci ad ampliarlo con tanti dettagli ed opzioni potrebbe fare più gola! :3

^ ^


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

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Lomax_Iced
  • Elfo di Babbo Natale

  • Utenti
  • Rens: 28
  • 3
  • StellettaStellettaStelletta
  • 225 messaggi
  • Sesso:Maschio
  • Provenienza:Palermo
  • Abilitā:Adepto

#14 Inviato 09 March 2023 - 23:10 PM

Up:
Ok dopo un piccolo raginamento ho trovato l'inghippo! Pensavo che l'interpreter rilevasse da solo il tipo di dato degli argomenti di comando (args[0] e args[1]) invece così pare non sia! Mi è bastato inserire una funzione di conversione a numero (Number()) e tutto si è risolto! :)
Ecco il codice funzionante:
 Tuo codice:

Spoiler

Se vi piace lo posso postare nella sezione di release dei plugin! :)

Secondo me il tuo codice va aggiustato. È ammirevole che tu da che avevi un problema a che l'hai risolto con le tue capacità. Questo ti fa onore. Ma non accontentarti. Piuttosto spingi di più.

Essere programmatori è bello perché oh noi vogliamo che le cose vadano in un modo e facciamo in modo che ci vadano. Quindi insistiamo finché non escogitiamo la forma migliore che ci porta a realizzare ciò che ci necessità.
Quindi avendo seguito fedelmente le tue idee ora ho appena creato questo:
Mio script:
Spoiler

Spero di essere stato utile.




  • Feed RSS