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
Eventi a tempo

    Sunrise
  • Utente avanzato

  • Utenti
  • Rens: 16
  • 0
  • StellettaStellettaStelletta
  • 255 messaggi
  • Sesso:Femmina
  • Abilitā:Adepto

#1 Inviato 05 April 2023 - 15:48 PM

Salve a tutti, io ogni tanto resuscito ma ci sono, lavoro lentamente nell'ombra intervallata da luuuunghe pause causa famiglia (sono diventata da poco mamma, e pensare che quando mi iscrissi a questo forum ero una piccola studentessa  :fake:  ) e lavoro, ma rieccomi con un quesito, premetto che con tutti questi stop mi sono anche un pò arrugginita ma veniamo al dunque!

 

Sono impegnata nella creazione di alcuni eventi a tempo (in totale circa 4 o 5)

Sono due tipi di evento a tempo in particolare:

 

1. un oggetto che si trova e che una volta raccolto dopo tot tempo riappare nello stesso punto e così potenzialmente all'infinito

2. ed un oggetto che invece una volta usato/ceduto (non da inventario ma su scelta da evento nella condizioine in cui è nell'inventario) dopo tot tempo si trasforma in un altro oggetto che è possibile raccogliere e così potenzialmente all'infinito.

 

per meglio capirci:

nel primo caso immaginate di poter raccogliere un fiore e poi dopo tot tempo riappare e si può raccogliere nuovamente;

nel secondo caso immaginate di dover mettere qualcosa in forno da crudo e dopo tot tempo poterlo ottenere cucinato.

 

Questo è il metodo che utilizzo per far funzionare un evento impostando 5 secondi di tempo da trascorre come prova ma in teoria ne passeranno circa 20 nella versione definitiva:

Evento fiorellino da raccogliere

 

Pg1    (grafica fiore - tasto azione)

          Variabili di controllo: 1 Raccogli il fiore = Tempo di gioco

          Interruttore Aut. di controllo A = ON

 

Pg2   (con interruttore A attivato nelle condizioni nella scheda di sinistra - immagine evento trasparente - evento parallelo)

         Variabili di controllo: 2 droppa fiore = Tempo di gioco

         Variabili di controllo: 2 droppa fiore - = 1 Raccogli il fiore

             Se Droppa fiore è > 5

                Interruttore Aut. di controllo A = OFF

             Fine

 

Ora, la domanda è:

Utilizzando il metodo da sottrazione di variabili che memorizzano il tempo di gioco posso far si che solo 1 evento funzioni correttamente in tutto il mondo del gioco, perchè se dovessi far funzionare anche gli altri eventi in realtà resetterei solamente il tempo e mi restituirebbe tutti i risultati in contemporanea e solo dopo il tempo impostato nell'ultimo evento che aziono., quindi come si fa avendo 4, 5 o 6 eventi del genere?

Grazie  :mak:

 


Crystal - La minaccia di Ormul

Mapping 90%

Event 90% 

Rpg Maker MV

http://www.rpg2s.net...accia-di-ormul/


    Guardian of Irael
  • Coniglietto Rosso

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


#2 Inviato 05 April 2023 - 16:11 PM

Era da un po' in effetti... Ben resuscitata, Pasqua è vicina, sospetta la cosa! E soprattutto congratulazioni per essere diventata mamma! ^ ^

 

Potresti specificare meglio quanti eventi ti servono e i tempi precisi? Il problema è che, senza scomodare gli script, le variabili di Rpg Maker sono globali, quindi usandole avrai la necessità di creare variabili dedicate per ogni singolo evento fiore. Un problema se nel mondo hai 10000 fiori sparsi casualmente.

Hai parlato di 20 secondi o comunque pochi, potresti anche cavartela senza variabili, ma facendo un po' di attenzione e testando per bene: puoi creare eventi paralleli che al posto di sfruttare il tempo di gioco sfruttano gli aspetta tot frame, facendo un conto tra frame e secondi. Il problema è che parecchi eventi paralleli possono causare lag, inoltre gli aspetta tot frame non sono accurati se li metti uno di seguito all'altro per raggiungere tempi più lunghi.

Insomma, se sono davvero solo 6 eventi e il tempo è di pochi secondi potresti sia sfruttare più variabili, che usare gli aspetta tot frame, se le cose si complicano potrebbero volerci sistemi più complessi o script dedicati.

^ ^


(\_/)
(^ ^) <----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


    Testament
  • Il Custode della Memoria

  • Utenti Speciali
  • Rens: 1141
  • 51
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 12376 messaggi
  • Sesso:Maschio
  • Provenienza:Firenze
  • Abilitā:Esperto


#3 Inviato 05 April 2023 - 18:05 PM

Bentornata e congratulazioni.

Anche io ho fatto dei fiori che cogli e dopo un tot rispuntano (anzi, ho fatto vari stadi di crescita, da bocciolo a fiorito, ma la logica è quella. Solo che appunto ho tipo 4 fiori in un'aiuola.

Ma anche fossero 20 non sarebbe un grosso sforzo dedicare a ognuno di loro una propria variabile che ne indica lo stato.

 

E sì, sfrutto gli ASPETTA TOT secondi/frame.


183.png
donatePQ.gif bYridanSiBEi27EwrQBOKvYB04IgpCwL27xIfmrh FBnono.gif


    Ischenderun
  • Animatore

  • Utenti
  • Rens: 31
  • 0
  • StellettaStellettaStellettaStelletta
  • 782 messaggi
  • Sesso:Non Specificato
  • Abilitā:Adepto

#4 Inviato 05 April 2023 - 18:45 PM

Ti rispondo in linea teorica. Non ho avuto modo di testare.

Il tempo di gioco mi sembra molto vincolante e difficile da gestire (se ho capito la meccanica che vuoi ottenere).
La soluzione migliore mi sembra quella suggerita da Testament con l'aggiunta di vari controlli.

Vediamo se ho capito bene.

1) sistema di raccolta.
Prendo un fiore e dopo 20 secondi riappare nello stesso punto.

Qui dedicherei un interruttore globale più che un interruttore locale.
Mettiamo fiore1.
Evento mappa fiore con:
Pagina uno = con condizione interruttore fiore1, grafica fiore, meccanica di raccolta, finale con spegnimento dell'interuttore.
Pagina 2, vuota.
Un evento comune in parallelo che mi controlla l'interruttore.
Se int. Fiore1 è on = vuoto
Altrimenti = aspetta 1200 frame (20 secondi), interruttore fiore1 = on.

2) crescita dell'oggetto riposto.
Ho un oggetto che metto in forno e questo cresce in 6 stadi.

Qui il concetto iniziale è simile al precedente.
Devo controllare se l'oggetto è dentro il forno e se presente attivo l'interruttore corrispondente.
Mettiamo fioreForno1.
L'evento comune in parallelo mi controlla se l'oggetto è dentro il forno.
Se l'oggetto è presente mi controlla il suo stadio, qui ci affidiamo alla variabile.
Quindi :
Se variabile cottura = 0
Aspetta 1200 frame (20 sec)
Variabile cottura +=1.
Se variabile cottura = 2
Ecc... Ecc..
Sino all'ultimo stadio.
Qui non dobbiamo più controllare il tempo, al massimo puoi mettere il suono della campanella per la fine cottura.
Qui le strade si allargano in base alla dinamica che vuoi ottenere.
Esempio :
1) il pg controlla e gli viene restituito un testo
2) il pg controlla e gli appare un evento con l'oggetto a quello stadio di cottura

Ecc. (qui servirebbero maggiori info).

Questo è ciò che mi viene in mente sfruttando il codice del tool.
Se andiamo in campo script le cose potrebbero essere più semplici (o più difficili se non ti trovi bene con gli script).

Spero di essere stato chiaro, in caso chiedi pure. Non sono molto bravo a spiegare 😅

☆Polvere di Stelle☆ ora anche su itch.io: https://ischenderun....lvere-di-stelle

 

Non ho particolari talenti, sono soltanto appassionatamente curioso.
Siate affamati, siate folli, perché solo coloro che sono abbastanza folli da pensare di poter cambiare il mondo lo cambiano davvero.

Ad maiora semper

 
HUks2tu.gif

 

Contatto Facebook : https://www.facebook.com/Ischenderun/

Pagina Facebook: https://www.facebook...100937052104281

 

 4753.png


    Sunrise
  • Utente avanzato

  • Utenti
  • Rens: 16
  • 0
  • StellettaStellettaStelletta
  • 255 messaggi
  • Sesso:Femmina
  • Abilitā:Adepto

#5 Inviato 06 April 2023 - 15:06 PM

Era da un po' in effetti... Ben resuscitata, Pasqua è vicina, sospetta la cosa! E soprattutto congratulazioni per essere diventata mamma! ^ ^

 

Potresti specificare meglio quanti eventi ti servono e i tempi precisi? Il problema è che, senza scomodare gli script, le variabili di Rpg Maker sono globali, quindi usandole avrai la necessità di creare variabili dedicate per ogni singolo evento fiore. Un problema se nel mondo hai 10000 fiori sparsi casualmente.

Hai parlato di 20 secondi o comunque pochi, potresti anche cavartela senza variabili, ma facendo un po' di attenzione e testando per bene: puoi creare eventi paralleli che al posto di sfruttare il tempo di gioco sfruttano gli aspetta tot frame, facendo un conto tra frame e secondi. Il problema è che parecchi eventi paralleli possono causare lag, inoltre gli aspetta tot frame non sono accurati se li metti uno di seguito all'altro per raggiungere tempi più lunghi.

Insomma, se sono davvero solo 6 eventi e il tempo è di pochi secondi potresti sia sfruttare più variabili, che usare gli aspetta tot frame, se le cose si complicano potrebbero volerci sistemi più complessi o script dedicati.

^ ^

ahahahah no nulla di sospetto ti assicuro xD !

Intanto mi correggo globalmente per tutti coloro che hanno risposto: nella versione definitiva devono essere 20 minuti (nel post principale mi ero mangiata la parola) e deve funzionare anche uscendo e rientrando nella mappa, ecco perchè non sono ricorsa alla semplice attesa in frame, sia per la quantità di tempo che per il discorso del cambio mappa.

Ma la cosa più semplice appunto come hai detto tu sarebbe dedicare variabili diverse per ogni evento del genere dato che dovrebbero essere solamente 6 in tutto il mondo. Ottimo!

 

Ti rispondo in linea teorica. Non ho avuto modo di testare.

Il tempo di gioco mi sembra molto vincolante e difficile da gestire (se ho capito la meccanica che vuoi ottenere).
La soluzione migliore mi sembra quella suggerita da Testament con l'aggiunta di vari controlli.

Vediamo se ho capito bene.

1) sistema di raccolta.
Prendo un fiore e dopo 20 secondi riappare nello stesso punto.

Qui dedicherei un interruttore globale più che un interruttore locale.
Mettiamo fiore1.
Evento mappa fiore con:
Pagina uno = con condizione interruttore fiore1, grafica fiore, meccanica di raccolta, finale con spegnimento dell'interuttore.
Pagina 2, vuota.
Un evento comune in parallelo che mi controlla l'interruttore.
Se int. Fiore1 è on = vuoto
Altrimenti = aspetta 1200 frame (20 secondi), interruttore fiore1 = on.

2) crescita dell'oggetto riposto.
Ho un oggetto che metto in forno e questo cresce in 6 stadi.

Qui il concetto iniziale è simile al precedente.
Devo controllare se l'oggetto è dentro il forno e se presente attivo l'interruttore corrispondente.
Mettiamo fioreForno1.
L'evento comune in parallelo mi controlla se l'oggetto è dentro il forno.
Se l'oggetto è presente mi controlla il suo stadio, qui ci affidiamo alla variabile.
Quindi :
Se variabile cottura = 0
Aspetta 1200 frame (20 sec)
Variabile cottura +=1.
Se variabile cottura = 2
Ecc... Ecc..
Sino all'ultimo stadio.
Qui non dobbiamo più controllare il tempo, al massimo puoi mettere il suono della campanella per la fine cottura.
Qui le strade si allargano in base alla dinamica che vuoi ottenere.
Esempio :
1) il pg controlla e gli viene restituito un testo
2) il pg controlla e gli appare un evento con l'oggetto a quello stadio di cottura

Ecc. (qui servirebbero maggiori info).

Questo è ciò che mi viene in mente sfruttando il codice del tool.
Se andiamo in campo script le cose potrebbero essere più semplici (o più difficili se non ti trovi bene con gli script).

Spero di essere stato chiaro, in caso chiedi pure. Non sono molto bravo a spiegare

 

Alla luce della risposta appena data a Guardian posso aggiungere che la tua risposta mi è stata particolarmente utile per accendere in me l'idea di far controllare all'evento comune l'andamento della cottura per restituire un testo in linea con le tempistiche rimaste o all'azione stessa del poter prendere l'oggetto una volta pronto, grazie mille non ci avevo proprio pensato, anche qui credo dovrò servirmi di variabili diverse per ogni evento essendo tempi sempre intorno ai 15 minuti e quindi dovendo essere adatto al poter cambiare mappa senza intoppi nel funzionamento del calcolo del tempo.

Per quanto riguarda l'uso degli script per quanto mi riguarda sono al semplice stadio di usare le chiamate da evento per facilitare la vita lì dove esiste una spiegazione (tipo legenda) all'inizio dello script e quando possibile personalizzare tramite questi qualcosa, ma nulla di più, quindi se volevi propormi scorciatoie da script natio del programma (senza aggiungerne appunto di esterni dato che ho deciso di aggiungere solo quelli acquistati) sono tutta orecchie =D


Crystal - La minaccia di Ormul

Mapping 90%

Event 90% 

Rpg Maker MV

http://www.rpg2s.net...accia-di-ormul/


    Ischenderun
  • Animatore

  • Utenti
  • Rens: 31
  • 0
  • StellettaStellettaStellettaStelletta
  • 782 messaggi
  • Sesso:Non Specificato
  • Abilitā:Adepto

#6 Inviato 06 April 2023 - 18:12 PM

Per quanto riguarda i codici evento dovresti fare in questo modo.

Crei una mappa di inizializzazione, una mappa vuota dove non tornerai mai durante il gioco.
Questa mappa deve essere la prima che viene dopo il click su "new game".
In questa mappa inserisci un evento mappa (senza immagini), in automatico.
Imposta gli interruttori dei fiori su true.
Inizializza qui anche le variabili che ti serviranno per la meccanica della cottura.
Questa mappa iniziale potrebbe anche essere quella di un tuo logo, presentazione o scena introduttiva.
La cosa importante è che sia la prima e che il giocatore non ci torni più durante il gioco.
In alternativa puoi fare una mappa con tile neri.
Dopo aver inizializzato tutti gli interruttori e variabili imposti il trasporta giocatore sulla mappa che avevi previsto.
Il resto lo fai in base a quello che ti avevo scritto.
In questo modo non avrai il problema del cambio mappa.
La cosa importante è che il controllo dell'interruttore sugli eventi fiore devi farlo tramite le opzioni che vedi in alto a sinistra sull'evento(form condizioni), non dentro l'evento.

Problema tempo.
Il wait di rpg maker funziona in frame, 60 frame = 1 secondo.
Alla luce di questo dovresti impostare un'attesa di 72000 frame, non so se può funzionare, non ho mai usato attese così ampie.

Andiamo allo script relativo alla prima meccanica.
Anche stavolta non ho avuto il tempo di testare.

Quello che verrà andrebbe inserito dentro un evento comune in parallelo.

Cosa dovrebbe fare: controllare lo stato degli interruttori da ID 1 a ID 5.
Impostare su true tutti gli interruttori falsi dopo un'attesa di 20 minuti.


// Funzione per impostare un timer di 20 minuti e cambiare il valore di un interruttore 

function setTrue(index) {
  setTimeout(function() {
    $gameSwitches.setValue(i, true);
  }, 20 * 60 * 1000); // 20 minuti in millisecondi
}

// Controllo di ogni interruttore da ID 1 a 5 
for (let i = 1; i < 6; i++) {
  if ($gameSwitches.value(i) === false) {
    setTrue(i);
  }
}

Il codice sopra non è testato.
Se vuoi posso darti conferma quando potrò provare il codice

Modificato da Ischenderun, 06 April 2023 - 18:22 PM.

☆Polvere di Stelle☆ ora anche su itch.io: https://ischenderun....lvere-di-stelle

 

Non ho particolari talenti, sono soltanto appassionatamente curioso.
Siate affamati, siate folli, perché solo coloro che sono abbastanza folli da pensare di poter cambiare il mondo lo cambiano davvero.

Ad maiora semper

 
HUks2tu.gif

 

Contatto Facebook : https://www.facebook.com/Ischenderun/

Pagina Facebook: https://www.facebook...100937052104281

 

 4753.png


    Sunrise
  • Utente avanzato

  • Utenti
  • Rens: 16
  • 0
  • StellettaStellettaStelletta
  • 255 messaggi
  • Sesso:Femmina
  • Abilitā:Adepto

#7 Inviato 08 April 2023 - 13:29 PM

Per quanto riguarda i codici evento dovresti fare in questo modo.

Crei una mappa di inizializzazione, una mappa vuota dove non tornerai mai durante il gioco.
Questa mappa deve essere la prima che viene dopo il click su "new game".
In questa mappa inserisci un evento mappa (senza immagini), in automatico.
Imposta gli interruttori dei fiori su true.
Inizializza qui anche le variabili che ti serviranno per la meccanica della cottura.
Questa mappa iniziale potrebbe anche essere quella di un tuo logo, presentazione o scena introduttiva.
La cosa importante è che sia la prima e che il giocatore non ci torni più durante il gioco.
In alternativa puoi fare una mappa con tile neri.
Dopo aver inizializzato tutti gli interruttori e variabili imposti il trasporta giocatore sulla mappa che avevi previsto.
Il resto lo fai in base a quello che ti avevo scritto.
In questo modo non avrai il problema del cambio mappa.
La cosa importante è che il controllo dell'interruttore sugli eventi fiore devi farlo tramite le opzioni che vedi in alto a sinistra sull'evento(form condizioni), non dentro l'evento.

Problema tempo.
Il wait di rpg maker funziona in frame, 60 frame = 1 secondo.
Alla luce di questo dovresti impostare un'attesa di 72000 frame, non so se può funzionare, non ho mai usato attese così ampie.

Andiamo allo script relativo alla prima meccanica.
Anche stavolta non ho avuto il tempo di testare.

Quello che verrà andrebbe inserito dentro un evento comune in parallelo.

Cosa dovrebbe fare: controllare lo stato degli interruttori da ID 1 a ID 5.
Impostare su true tutti gli interruttori falsi dopo un'attesa di 20 minuti.
 


// Funzione per impostare un timer di 20 minuti e cambiare il valore di un interruttore 

function setTrue(index) {
  setTimeout(function() {
    $gameSwitches.setValue(i, true);
  }, 20 * 60 * 1000); // 20 minuti in millisecondi
}

// Controllo di ogni interruttore da ID 1 a 5 
for (let i = 1; i < 6; i++) {
  if ($gameSwitches.value(i) === false) {
    setTrue(i);
  }
}

Il codice sopra non è testato.
Se vuoi posso darti conferma quando potrò provare il codice

 

Grazie tante Ischenderun, mi adopererò nella sperimentazione di questi comandi =) <3


Crystal - La minaccia di Ormul

Mapping 90%

Event 90% 

Rpg Maker MV

http://www.rpg2s.net...accia-di-ormul/





  • Feed RSS