Salvia,
chiedo il vostro aiuto per questo problema.
Immaginate una classica scena in cui il personaggio principale (Player) parla con un altro personaggio (NPC).
Alla fine del dialogo l'NPC si allontana dal Player e va per la sua strada a fare altro.
Quando l'NPC si allontana, il Player può muoversi liberamente.
Fin qui niente di strano, alla fine del dialogo attivo uno (self)switch e creo una pagina in processo parallelo per l'NPC che si allontana. Quando l'NPC è arrivato dove deve arrivare, attivo un altro (self)switch a fondo pagina per farlo stare in posizione.
Il problema nasce quando l'NPC deve fare parecchia strada per andare a posizionarsi e nel frattempo il Player esce dalla mappa.
Siccome l'NPC non ha completato il suo cammino, non si sarà attivato lo switch a fondo pagina che quindi al rientro del Player verrà eseguita di nuovo.
Ora, la cosa si potrebbe risolvere facilmente attivando uno switch (o impostando una variabile) all'inizio del processo parallelo, cioè appena l'NPC comincia ad allontanarsi. Quando il Player esce dalla mappa, controllo se lo switch è attivo e agisco di conseguenza.
A questo punto però il vero problema è che questa soluzione è una gran p...izza, perché dovrei fare questo controllo in ogni evento di uscita della mappa.
Siccome quando vedo codice duplicato mi sanguinano gli occhi, avrei anche trovato un modo per centralizzare la cosa con un evento comune, ma a parte questo volevo chiedere a voi se questa è l'unica soluzione o se ci sono altri metodi che non mi vengono in mente...