Domaine concerné: eventing
Logiciel utilisé: RMXP
Bonjour,
Que j'explique un peu mon problème : Je me suis servi du tuto de zone d'infiltration avec garde en events réalisé par Joke.
L'idée dans mon cas est de permettre à un seul ennemi de parcourir une seule et même très grande map délimitée par une quantité assez colossale de couloirs à calculer par l'événement.
Les zones et la détection fonctionnent sans souci, seulement il y a un problème :
L'un des événements en processus parallèle doit se téléporter à tous les points A et B de chaque couloir afin de calculer la zone pour le repérage. Étant donné qu'il doit bien y avoir une cinquantaine de zones, ça crée un ralentissement assez colossal.
L'évènement consiste simplement en une répétition de 7 lignes :
1
2
3
4
5
6
7
8
9
10
11
12
| [Évènement actif si interrupteur "Zone" activé]
==Zone 1==
Téléporter cet événement [pointA]
Variable "Xa" = Coordonnée X cet event
Variable "Ya" = Coordonnée Y cet event
Téléporter cet évènement [pointB]
Variable "Xb" = Coordonnée X cet event
Variable "Yb" = Coordonnée Y cet event
Appeler un évènement commun : Calcul
==Zone 2==
etc
Et à la toute fin : Interrupteur "Zone" desactivé. |
J'ai donc essayé d'aérer le script avec des "attendre 1 frame", le souci est que, pour supprimer le ralentissement , je suis obligé d'en mettre une assez grosse quantité.
Je pensais au premier abord que ça ne serait pas un problème, mais cette petite frame crée une très légère latence entre le calcul des zones, ce qui a pour effet d'allonger le temps de réaction de l'ennemi censé nous repérer. Résultat : On reste deux secondes devant lui alors qu'il nous a bel et bien vu sans rien faire, et alors qu'on s'est éloigné, il nous saute dessus sans raison.
Du coup je fais appel à vous pour m'aider à trouver comment optimiser l'event sans le massacrer. J'ai testé le script anti-lag mais hélas ça n'a pas fonctionné, et je ne peux pas faire en sorte que le jeu désactive les événements hors-map car autrement celui-ci ne pourrait plus calculer les zones.
Trois solutions auxquelles j'ai pensé (et que j'ai pas encore testées)
- Faire en sorte que certaines zones ne se calculent que si le joueur est dans les environs.
- Mettre plusieurs events qui calculent simultanément les différentes zones au lieu d'un seul.
- Tout mettre via un évènement commun et une série de plusieurs events vides qui se téléportent (ça rejoint la deuxième idée).
Mais peut-être avez-vous d'autres idées ou des pistes qui pourraient m'aider à trouver un autre moyen plus simple ?
Merci d'avance
|