Jump to content
Rpg²S Forum
  • 0

Ricerca Evento nelle vicinanze


The_Wolfman
 Share

Question

In pratica quello che vorrei fare è che se un qualsiasi evento (a meno che non abbia il commento <nope>) è proprio avanti al player premendo un tasto si attiva un'altra funzione che ho già scritto. Anche la parte del tasto è fatta, è la parte iniziale che proprio non va.
Ho provato a scrivere questo senza molti risultati

 

def search_event
@dir = $game_player.direction
if @dir == 8
@pox = $game_map.events[@event_id].y
@pox1 = $game_actors[1].y - 1
elsif @dir == 6
@pox = $game_map.events[@event_id].x
@pox1 = $game_actors[1].x + 1
elsif @dir == 4
@pox = $game_map.events[@event_id].x
@pox1 = $game_actors[1].x - 1
elsif @dir == 2
@pox = $game_map.events[@event_id].y
@pox1 = $game_player.y + 1
end
if @pox == @pox1
@t = @event_id
scan_event(@t)
end
end

def scan_event(t)
$game_map.events[t].values.each { |e|
next if !e.list
if e.list[0].code == 108 && e.list[0].parameters[0] =~ //
#e.reflect = true
else

.....

 

 

Se qualche buon'anima potesse aiutarmi sarebbe grandioso!

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

Non è piu semplice farlo ad eventi comuni?

Non è complesso.

http://www.rpg2s.net/dax_games/r2s_regali4s.png

 

IL MIO SISTEMA DI EVOCAZIONI

https://www.youtube.com/watch?v=6OgQhjSkfgk

 

IN DATA 29/6/14 ANNUNCIO I MIEI RPG:

 

COME BACK

STORIA : 20%

MAPPE : 15%

 

I LIVE IN A NIGHTMARE

MAPPE : 10%

STORIA : 20%

EVENTI : 5%

ADD ON : DA VEDERE

 

COSE INUTILI

 

(\_/)

(^^)<-------ADOTTA ANCHE TU UN BUNNY

(><)

Link to comment
Share on other sites

  • 0

Già è molto più semplice scriverlo ma non mi da lo stesso risultato.
L'evento comune dovrebbe essere comunque richiamato dall'evento in questione affinché possa prendere i dati che mi servono, quindi oltre la scomodità di dover inserire un If a tasto premuto che richiami l'evento ad ogni evento, per attivare la mia funzione il player dovrebbe comunque prima "parlare" con l'evento e poi premere il tasto voluto. La cosa si risolverebbe mettendo che l'evento si avvi al solo contatto ma le cose che l'evento farebbe comunemente solo col "parlarci" dovrebbero andare in un altro if (o meglio nell'elsif di prima).
Insomma un papocchio di roba da copiare e incollare in tutti gli eventi del gioco quando invece con lo script, risolto questo questo problema, è lungo poche righe e va in automatico.
Per questo preferirei lo script XD poi beh insomma correggetemi se sbaglio

Link to comment
Share on other sites

  • 0

@Wolfman: considera che se l'evento comune è messo in processo parallelo è attivo per tutto il gioco e non smette mai proprio come fosse uno script che non va richiamato.

^ ^

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


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/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) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 0

basta che fai cosi:

dal momento che vuoi che questa cosa sia attiva attivi uno switch.

crei un evento comune come processo parallelo e imposti la switch di prima (cosi come detto da guardian è sempre attivo e ne so qualcosa dato che sto programmando un gioco che è praticamente basato su eventi comuni)

nell'evento comune in questione imposti le variabili delle posizioni x e y del player sulla mappa e fai la stessa cosa per gli eventi e imposti una tale distanza uguale ad una variabile che sarà la distanza in cui il player e un evento devono essere per far si che il tuo evento si attivi.

poi metti due condizioni se una dentro l'altra nella prima imposti se tasto è premuto,nella seconda imposti le variabili <= alla variabile che determina la distanza e se la condizione della distanza è soddisfatta e premi il tasto deciso allora attiva un certo evento,altrimenti non fare nulla.

 

a grandi linee dovrebbe essere cosi,ti dico a grandi linee perche l'ho scritto velocemente e non ho tempo di rileggere.

comunque prova,vedrai che è una cazzata.

http://www.rpg2s.net/dax_games/r2s_regali4s.png

 

IL MIO SISTEMA DI EVOCAZIONI

https://www.youtube.com/watch?v=6OgQhjSkfgk

 

IN DATA 29/6/14 ANNUNCIO I MIEI RPG:

 

COME BACK

STORIA : 20%

MAPPE : 15%

 

I LIVE IN A NIGHTMARE

MAPPE : 10%

STORIA : 20%

EVENTI : 5%

ADD ON : DA VEDERE

 

COSE INUTILI

 

(\_/)

(^^)<-------ADOTTA ANCHE TU UN BUNNY

(><)

Link to comment
Share on other sites

  • 0

Si so del processo parallelo, ma in che modo l'evento comune può riempire le variabili delle coordinate di un qualsiasi evento?
Chiariamoci, io ho già creato questo evento comune più o meno come pensato da mew47 prima di intraprendere la via dello script.
Con l'evento comune posso settare le variabili delle coordinate delle evento solo mettendo "questo evento" (che ovviamente essendo un evento comune restituisce un valore alla variabile solo se richiamato quindi si ritorna al mio post precedente) o definendo un evento ad esempio EV0001 in questo caso non funzionerebbe con altri eventi.
La cosa deve funzionare con qualsiasi evento sia davanti al player

Link to comment
Share on other sites

  • 0

basta che setti un tot di eventi per la cosa (dal 10 al 20,per esempio) e usi quegli eventi su ogni mappa solo per quello,non è poi una cosa cosi catastrofica,

io sto facendo molto di peggio ad eventi comuni perche non capisco bene alcune cose fondamentali del RGSS3 e sono ancora vivo :P

 

EDIT:ti semplifico la vita se cio che ho suggerito ti sembra tanto infattibile.

ogni evento che vuoi che sia collegati all'avento comune lo setti in questo modo:

PAGINA1 processo parallelo

-richiama evento comune

PAGINA2

-spunta se switch attivo a gli dici di fare cio che deve fare.

 

questa soluzione è MOLTO piu semplice

Edited by mew47

http://www.rpg2s.net/dax_games/r2s_regali4s.png

 

IL MIO SISTEMA DI EVOCAZIONI

https://www.youtube.com/watch?v=6OgQhjSkfgk

 

IN DATA 29/6/14 ANNUNCIO I MIEI RPG:

 

COME BACK

STORIA : 20%

MAPPE : 15%

 

I LIVE IN A NIGHTMARE

MAPPE : 10%

STORIA : 20%

EVENTI : 5%

ADD ON : DA VEDERE

 

COSE INUTILI

 

(\_/)

(^^)<-------ADOTTA ANCHE TU UN BUNNY

(><)

Link to comment
Share on other sites

  • 0

ç_ç Mi faresti un esempio con un evento di trasferimento o con una porta? Deve essere possibile usare il trasferimento ma anche la funzione col bottone tutte le volte che vuoi

Edited by The_Wolfman
Link to comment
Share on other sites

  • 0

dipende cosa vuoi fare.

potresti usare un'altro evento,ma farlo agire sulla porta.

 

fammi un esempio di cio che vorresti fare,cosi ti posso aiutare meglio.

 

EDIT:ti faccio un esempio stupidissimo.

vuoi che quando sei ad una certa distanza dalla porta e premi "A",la porta scompare.

crei un evento e lo setti come quello che ti ho detto,solo che quando metti lo switch attivo.....

QUI HAI DUE OPZIONI.

1)metti una terza pagina alla porta ,(seconda pagina per teletrasporto),settando come condizione di avvio "se switch attivo" e imposti lo switch appena attivato e fai fare cio che deve fare,e se vuoi che alla fine di tutto la porta o il teletrasporto tornino tali disattivi lo switch.(se vuoi che non sia piu possibile attivare questo evento metti un'altra pagina vuota sull'evento che utilizzi con condizione di avvio "se switch attivo" e imposti lo switch appena attivato,altrimenti non mettere la seconda pagina sull'evento che utilizzi se vuoi che si possa fare infinite volte)

2)metti tutti i comandi sull'evento in questione,ma li fai agire sulla porta o teletrasporto,cioe invece di mettere "questo evento",metti l'equivalente dell'evento della porta o teletrasporto e alla fine disattivi lo switch,

Edited by mew47

http://www.rpg2s.net/dax_games/r2s_regali4s.png

 

IL MIO SISTEMA DI EVOCAZIONI

https://www.youtube.com/watch?v=6OgQhjSkfgk

 

IN DATA 29/6/14 ANNUNCIO I MIEI RPG:

 

COME BACK

STORIA : 20%

MAPPE : 15%

 

I LIVE IN A NIGHTMARE

MAPPE : 10%

STORIA : 20%

EVENTI : 5%

ADD ON : DA VEDERE

 

COSE INUTILI

 

(\_/)

(^^)<-------ADOTTA ANCHE TU UN BUNNY

(><)

Link to comment
Share on other sites

  • 0

In pratica premendo un tasto il player deve scambiarsi di posizione con qualsiasi evento abbia davanti che sia una porta, uno scrigno, un gatto, un tizio che ti vende roba o uno che ti dice semplicemente ciao; tutte le volte che vuole senza che gli eventi smettano di fare quello che devono.
Detta così sembra una cavolata inutile ma ai fini del gioco avrà un senso xD
Come ho detto già prima la parte dello scambio è semplicissima e già fatta

Link to comment
Share on other sites

  • 0

non è una cavolata,anzi,è una bellissima idea,a mio parere u.u

se leggi il post prima del tuo ci sono le modifiche con la spiegazione :)

http://www.rpg2s.net/dax_games/r2s_regali4s.png

 

IL MIO SISTEMA DI EVOCAZIONI

https://www.youtube.com/watch?v=6OgQhjSkfgk

 

IN DATA 29/6/14 ANNUNCIO I MIEI RPG:

 

COME BACK

STORIA : 20%

MAPPE : 15%

 

I LIVE IN A NIGHTMARE

MAPPE : 10%

STORIA : 20%

EVENTI : 5%

ADD ON : DA VEDERE

 

COSE INUTILI

 

(\_/)

(^^)<-------ADOTTA ANCHE TU UN BUNNY

(><)

Link to comment
Share on other sites

  • 0

Credo di essermi perso qualcosa...Riassumendo se faccio la prima pagina in Contatto con l'eroe (come è la porta base) e la seconda in processo parallelo con richiamo all'evento comune se premuto il tasto Y con lo switch che ci faccio? Così le pagine si ostacolano e vince quella in processo parallelo impedendo il normale funzionamento della porta.

Link to comment
Share on other sites

  • 0

 

crei un evento e lo setti come quello che ti ho detto,solo che quando metti lo switch attivo.....

 

 

 

è riferito ad un evento che non è la porta

 

https://www.mediafire.com/?qszgtq7mag7gxnf

 

eccoti una demo

Edited by mew47

http://www.rpg2s.net/dax_games/r2s_regali4s.png

 

IL MIO SISTEMA DI EVOCAZIONI

https://www.youtube.com/watch?v=6OgQhjSkfgk

 

IN DATA 29/6/14 ANNUNCIO I MIEI RPG:

 

COME BACK

STORIA : 20%

MAPPE : 15%

 

I LIVE IN A NIGHTMARE

MAPPE : 10%

STORIA : 20%

EVENTI : 5%

ADD ON : DA VEDERE

 

COSE INUTILI

 

(\_/)

(^^)<-------ADOTTA ANCHE TU UN BUNNY

(><)

Link to comment
Share on other sites

  • 0

Grazie mille! Provando cose con la tua demo mi è venuta l'illuminazione e ho completato lo script!

 

se dovesse servire

class Game_Map
def scan_event
@events.values.each { |e|
next if !e.list
if e.list[0].code == 108 && e.list[0].parameters[0] =~ /<nope>/ #con scritto nei commenti <nope> non si attiva
else
@xp = $game_player.x
@yp = $game_player.y
@xe = e.x
@ye = e.y
@dir = $game_player.direction
if @dir == 8
if @ye == (@yp - 1) && @xe == @xp
cambio(e)
end
elsif @dir == 6
if @xe == (@xp + 1) && @ye == @yp
cambio(e)
end
elsif @dir == 4
if @xe == (@xp - 1) && @ye == @yp
cambio(e)
end
elsif @dir == 2
if @ye == (@yp + 1) && @xe == @xp
cambio(e)
end
end
end
}
end
def cambio(e)
#inserire qui la funzione che ti serve
end
end
class Scene_Map
alias change_update update
def update
change_update
if Input.trigger?(:Y) #corrisponde a S
$game_map.scan_event
end
end
end
Link to comment
Share on other sites

  • 0

Alla fine sei riuscito a completare direttamente lo script, bene! ^ ^

Se ti va di postarlo e magari spiegare come funziona... più che altro mi pare aperto a diverse funzioni, potresti farci un minitutorial spiegando le differenti cose che ci puoi fare.

^ ^

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


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/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) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 0

mmm non sono cose fondamentali ma prendilo più come qualche consiglio:

1 - Le variabili @xp, @yp, @xe, @ye e @direction puoi definirle anche fuori dal ciclo visto che durante il ciclo mi pare un pò difficile cambino.

2 - Sempre le stesse variabili di prima potresti metterle come locali(senza la chiocciola), semplificheresti altri eventuali script e risparmi un pò di memoria.

3 - La parte :

if e.list[0].code == 108 && e.list[0].parameters[0] =~ /<nope>/
       else

può essere scritta più semplicemente come :

if not (e.list[0].code == 108 && e.list[0].parameters[0] =~ /<nope>/)

per il resto mi pare tutto ok, questi alla fine sono dettagli, il codice va in ogni caso.

Per qualsiasi motivo non aprite questo spoiler.

 

 

Ho detto di non aprirlo !

 

 

Se lo apri ancora esplode il mondo.

 

 

Aaaaaa è un vizio.

 

 

Contento? Il mondo è esploso, sono tutti morti

per colpa della tua curiosità .

 

 

Vuoi che ti venga anche il morbillo, la varicella e l'AIDS???

 

 

O bravo ora sei un malato terminale e nessuno

ti puo curare, sono tutti morti !

 

 

Se clicchi ancora una volta il PC esplode.

 

 

E dai smettila !!

 

Uff!! Hai cliccato tante volte che ho dovuto sostituirlo con un codebox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://s8.postimg.org/yntv9nxld/Banner.png

http://img204.imageshack.us/img204/8039/sccontest3octpl3.gif

Link to comment
Share on other sites

  • 0

Sono felice che le mie demo ti abbiano dato l'illuminazione per completare lo script :)

Bravo Wolf :)

http://www.rpg2s.net/dax_games/r2s_regali4s.png

 

IL MIO SISTEMA DI EVOCAZIONI

https://www.youtube.com/watch?v=6OgQhjSkfgk

 

IN DATA 29/6/14 ANNUNCIO I MIEI RPG:

 

COME BACK

STORIA : 20%

MAPPE : 15%

 

I LIVE IN A NIGHTMARE

MAPPE : 10%

STORIA : 20%

EVENTI : 5%

ADD ON : DA VEDERE

 

COSE INUTILI

 

(\_/)

(^^)<-------ADOTTA ANCHE TU UN BUNNY

(><)

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...