You should consider joining our Discord to ask for support.

We created a support channel using the new Discord Forum feature!

You can also visit our new website, it has a help section in English and French

0 like 0 dislike
533 views
in Script help by (200 points)
Bonjour,

j'ai décider de créer une Q2A car je n'ai pas réussi à résoudre mon problème. Malgré pas mal de recherche que je vais détailler plus bas.
Voici ce que je souhaite faire par un exemple concrèt:

Je voudrais avoir jusqu'a 4 evenement qui s'activerais selon un pourcentage de chance calculer en amont. Il y aurais plusieurs solutions possible quand à l'activation de l'évenement.

-Pas de chance, il ne s'active pas (le joueur est tomber dans le pourcentage ou rien ne ce passe)
-Un pokémon sauvage spawn (aléatoirement selon une liste prédéfini de 4 pokémon max avec également un pourcentage de rarete) sur la map, qui peux lancer un combat (dans lequel je changerais plusieurs paramètre comme le taux de capture par exemple)
-Un dresseur spawn (parmis une liste prédéfini de 3 dresseurs max), qui peux déclancher un combat de dresseur.
-Ces evenement resterais présent jusqu'a la victoire ou défaite sur l'un d'eux, ou pour un laps de temps que je n'ai pas encore défini (donc en changeant de map et revenant, les evenement serais toujours la si le combat n'es pas lancé)

Il y aurais donc jusqu'a 4 evenement max créer par map (pas sur toutes les maps mais sur une bonne parti) sachant que les evenement contre des pokémons sauvage peuvent déclencer le même combat (les 4 evenements peuvent faire spawn un pikachu par exemple).

Une fois que j'ai posé ce que je voulais faire, j'ai réfléchis à comment le faire.
J'ai d'abord pensé à gérer les activations par variables mais c'est juste ingérable je trouve. J'ai téllement vite oublié l'idée que je n'ai pas chercher a les faires perdurer en cas de non combat

Puis j'ai penser a créer les evenement à la volée, mais j'ai réflechis et me suis dit qu'une gestion par condition de script pouvais marcher.

Je me suis donc pencher sur ce point, mais les conditions par script test un booléen, et je ne vois pas comment, avec 2 booleen, je peux gérer 4 cas

Je me rabas donc sur les scripts. J'ai fais quelques recherches et j'ai rien trouvé de très concluant sur la doc' hormis la classe RPG::Event. Mais je n'arrive pas a faire le lien entre cette classe et ce que je souhaite faire.

Ma question est donc: Est-il possible de faire un tel système ? Si oui, il me faudrais des pistes ou je pourrais creuser. Bien évidement si cela est possible via event' ou autre, je suis preneur (sachant qu'il y auras des graphics différents selon ce qui apparaitras sur la map)

D'avance merci pour votre aide.

2 Answers

2 like 0 dislike
by (28.0k points)
selected by
 
Best answer

Un tel système est possible, il existe plusieurs alternatives et je peux t'en proposer une qui peut être intéressante.

Dans les arbres de ta map, tu as tous les évènements possibles qui ont pour dernière page, une page totalement vierge avec la condition d'un switch différent: 421 pour le premier, 422 pour le second, 423 pour le troisième etc...

Si tes évènements ont 4 états possibles et que tu veux 4 évènements ça fait 16 évènements différents avec les switch allant de 421 à 436.

Ensuite, tu peux créer un schedule sur l'évènement :on_warp_process qui va se charger de mettre les 16 switch à true (pour désactiver les évènements) sauf certains (ce qui aura pour effet de rendre les évènements concernés par ces switch visibles).

Une fois les évènements activés via switch, tu vas les déplacer à l'endroit espéré (tu peux mettre les coordonnées dans le nom de l'évent si tu veux: $game_map.events[id].event.name), pour déplacer l'évènement tu fais: $game_map.events[id].moveto(x, y)

A la toute fin du processus tu auras besoin d'appeler $game_map.events[id].refresh sur chacun des évènements concernés pour être sûr qu'ils sont visible ou pas lors de la téléportation (en particulier si tu sors d'un batiment). Note qu'il vaut mieux éviter que les évènements soient en bordure de map pour pas que t'aie des glitch visuel avec le maplink (évènement qui change lors du changement de map).

by (200 points)
Parfait Nuri comme d'hab'. Bon je vais t'avouer que j'ai pas tout compris mais je vais prendre le temps de relire quand j'aurais un peu plus de disponibilité.

Je te remercie.
by (28.0k points)
N'hésite pas à me rappeler à propos de ce q2a quand tu auras des questions. Laisse les sur ce topic et j'y répondrai :)
by (200 points)
Bon, je viens de relire tout ce que tu m'as dit et à part un point que je ne comprend pas, tout est clair.

Pourrais tu m'expliquer ce que tu entends par: Dans les arbres de ta map

Parce que je ne comprend pas le début de cette phrase.
0 like 0 dislike
by (200 points)
Bon, je viens de relire tout ce que tu m'as dit et à part un point que je ne comprend pas, tout est clair.

Pourrais tu m'expliquer ce que tu entends par: Dans les arbres de ta map

Parce que je ne comprend pas le début de cette phrase.

PS: J'ai l'impression qu'il n'y a pas d'alerte quand on répond en commentaire d'un autre désolé du doublon.
by (28.0k points)
Ce que j'entend par là c'est de mettre les évènements dans des cases impassable pour éviter qu'ils gêne d'autres évènements lorsqu'ils sont pas actifs.

T'es pas obligé de le faire si les 16 variations sont pas au même emplacement (ça t'évite de gérer les téléportations).
by (200 points)
Ok, tu parlais vraiment des arbres avec des feuilles et tout. Je croyais que c'était un termes techniques coté script ^^'

Parfait merci Nuri.
...