Ediwiki

Wiki officiel de l'éditeur de carte du jeu Slayers Online

Outils pour utilisateurs

Outils du site


documentation:explication_event_action

Ceci est une ancienne révision du document !


Fonctionnement d'un évènement

Dans ce tutorial, nous allons voir comment l'éditeur gère les évènements.

Fonctionnement général

Un évènement, qu'est ce que c'est?

Pour simplifier, un évènement c'est une action qui va être accomplie lorsque certaines conditions sont remplies.

Exemples:
Condition : le joueur appuie sur un bouton
Action : une porte s'ouvre

Condition : le joueur marche sur un piège
Action : le joueur meurt

Condition : le joueur est dans telle guilde, il a plus de 2000 pièces d'or sur lui et il appuie sur un bouton
Action :le joueur perd 2000 pièces d'or et il se téléporte dans une map

Mais bien entendu, toutes les conditions ne sont pas toujours remplies par le joueur, on peut alors envisager une action alternative.

Exemples:
Condition : le joueur appuie sur un bouton
Action : une porte s'ouvre
Action alternative : le joueur n'a pas appuyé sur le bouton, il ne se passe rien

Condition : le joueur se présente à une porte, il a 2000 pièces d'or sur lui
Action : il perd son or et est téléporté
Action alternative : le joueur n'a pas 2000 pièces d'or sur lui mais il s'est présenté à la porte. Toutes les conditions ne sont pas remplie. Un message lui indique qu'il ne peut pas passer

Vous avez peut-être déjà entendu parlé de “Si, alors, sinon” ou de “If, then, else” dans certains langages de programmation. C'est exactement le même principe ici ;)

Application du fonctionnement général à l'éditeur

La page évènement se présente comme suit

A gauche se présente le cadre “Condition de déclenchement”, c'est ici que nous mettrons les conditions à remplir pour effectuer l'action.
A droite se présente le cadre “Commande évènement”, c'est ici que nous décrirons les actions à effectuer lorsque les conditions sont remplies.

Et l'action alternative en cas de non respect des conditions? Et bien c'est dans une 2ème page que cela se passe. En effet, lorsque les conditions nécéssaires à l'effectuation des actions ne sont pas remplies, c'est la 2ème page qui sera lue. En fait les pages de l'évent seront lues dans l'ordre jusqu'à ce que toutes les conditions d'une des page soient remplies (Les conditions de chaque page vont être testées pour voir si elles correspondent bien à la réalité du joueur. Exemple : “condition : le pseudo du joueur est Roger”. Le jeu va vérifier si le pseudo du joueur est bien Roger)

De plus, il est aussi possible de mettre en condition de déclenchement deux conditions (par exemple Attaque et Appuie sur bouton) puis d'utiliser la commande condition dans les commandes évènement afin de différencier les actions qui vont être effectuée en fonction de ce qu'a fait le joueur

  • Par la suite, j'emploierai les termes “CD” et “CE”, signifiants respectivement Condition de Déclenchement (condition) et Commande Evènement (action)

Les différentes conditions existantes

Appuie sur bouton
L'évènement se déclenchera lorsque le joueur appuiera sur espace (bien entendu il faut que le joueur soit sur ou juste à côté de l'évènement) (exemple : le joueur appuie sur “espace” face à une porte et se téléporte)

En contact
L'évènement se déclenchera quand le joueur sera en contact avec l'évènement (exemple : le joueur marche sur des piques : il perd des vies)

Attaque
L'évènement se déclenchera lorsque le joueur attaquera l'évènement (exemple : le joueur frappe un cristal et celui-ci se fend)

Automatique
L'évènement se déclenchera tout seul sans que le joueur n'ait rien à faire (exemple : le joueur est à peine entré dans une map qu'un message retentit “tu n'es pas le bienvenu”). Attention, il est conseillé de coupler cette condition avec une variable afin d'éviter que l'évènement ne se déclenche sans cesse.

Auto une seul fois
L'évènement se déclenchera tout seul, mais à une seule reprise. Si le joueur sort et rerentre dans la map, alors l'évènement se déclenchera une seconde fois. (exemple : le joueur rentre dans une map, assiste à une scène de ménage entre deux pnj et la femme part en râlant)

Variable
Il est aussi possible de définir d'autres conditions comme le lvl du joueur, l'or qu'il a sur lui, le nombre de PV qu'il lui reste etc (en fait, toutes les variables joueur, les variables Serveur et les %EvCaseX% et %EvCaseY%) En revanche on ne peut pas définir une variable comme seule condition, il faut obligatoirement la coupler avec une des condition sus-citées)

Exemple:
CD
Appuie sur bouton
%Name%=Frostfall
CE
Message('Bonjour, ô tyran suprême, belle journée n'est-ce pas?')

Il y a différentes manières de tester la valeur d'une variable:
= (égal)
< (plus petit que)
> (plus grand que)
<= (plus petit ou égal)
>= (plus grand ou égal)
!= (différent de)

  • Bon à savoir : Si en CD vous ne mettez qu'une seule des conditions suivantes : “Appuie sur bouton”, “En contact” ou “Attaque”, l'éditeur n'ira pas voir les autres pages évent quand le joueur ne remplit pas la condition, il attendra simplement que le joueur vienne appuyer sur le bouton, vienne au contact ou vienne attaquer l'évent. En revanche si vous couplez une de ces trois condition avec une variable, et que vous mettez d'autres pages derrières, ces pages pourront être lues lors d'un non respect des CD

Exemple :

Page1
Conditions de déclenchementCommande événements
Page2
Conditions de déclenchementCommande événements

Nous avons donc ici un exemple de programmation pour un PNJ qui n'aime pas les membres de la Guilde Celestia (pourtant forts sympathiques au demeurant ;-))

Graphisme et évènements

Pas grand chose à dire ici ;-)
Une image attribuée à un évent se nomme “sprite”.
On peut définir un graphisme par page d'évent et le graphisme affiché en jeu sera celui qui correspond à la page dont les conditions sont remplies.

“Type d'animation” définit le mouvement de votre évènement. “Fixe” est pour les objets qui ne bougent pas, tandis que “personnage fixe” sera pour les personnages stables (l'évènement se tournera vers le joueur). “Personnage mouvement aléatoire” fera avancer votre évènement aléatoirement sur la carte et “effet visuel” sera pour une animation (comme une cascade qui coule, un feu qui brûle…).

Voilà, vous savez à peu près tout ce qu'il faut savoir sur les sprites =)

Les commandes évènements

C'est ici que, comme je l'ai dit précédemment, vous effectuerez des actions. Le jeu va effectuer la liste des actions dans l'ordre dans lequel vous les avez écrites, il faut donc parfois faire attention à ce que l'on met !

Petit exemple
CD
Appuie sur bouton
CE
Condition('%Gold%>=2000')
%Gold%=%Gold%-2000
Message('Ca va, vous avez payé, vous pouvez franchir le pont')
Condition('%Gold%<2000')
Message('Vous n'avez pas assez d'argent pour franchir ce pont')

Imaginez que le joueur avait 3000 pièces d'or sur lui, la condition %Gold%>=2000 était respectée et il voyait donc un message lui disant qu'il pouvait franchir le pont. Mais il avait dès lors perdu 2000 pièces d'or, et de fait il ne lui en restait plus que 1000. La condition %Gold%<2000 était devenue vraie aussi. Le joueur avait donc deux messages contradictoires à la suite !

Il est tout de même important de noter une petite différence entre ce que vous mettez en CD et en CE. Si en CD vous inscrivez %Vie%=200, alors vous demandez à ce qu'on vérifie si le joueur a bien 200 points de vie. En revanche si vous mettez %Vie%=200 dans les CE, vous allez affecter la vie du joueur à 200 (cela signifie que vous allez modifier la valeur de la variable %Vie% à 200)

documentation/explication_event_action.1599502583.txt.gz · Dernière modification : 2022/09/25 19:09 (modification externe)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki