Ediwiki

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

Outils pour utilisateurs

Outils du site


astuces:ediwiki

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
astuces:ediwiki [2009/07/01 03:21] skywingastuces:ediwiki [2020/07/13 19:04] – modification externe 127.0.0.1
Ligne 135: Ligne 135:
 Cette astuce permet, grâce à différents tests, de vérifier la conformité d'une saisie numérique. (ex : Mises, dons à un PNJ... etc) Cette astuce permet, grâce à différents tests, de vérifier la conformité d'une saisie numérique. (ex : Mises, dons à un PNJ... etc)
    
 +
 +
 +
 === 1 - Saisie de petites valeurs === === 1 - Saisie de petites valeurs ===
  
-Sachez, d'abord, que pour les dons/mises n'excédant pas 32767 pièces d'or ( valeur maximale d'une variable joueur ) vous pouvez simplement utiliser Variable[..]=InputString('') pour ensuite travailler avec cette Variable (en l'incrémentant dans une Serveur[] cagnotte)+Sachez, d'abord, que pour des saisies numériques n'excédant pas 32768 (valeur maximale d'une variable joueur) vous pouvez simplement utiliser [[var_char:Variable]][..]=[[commandes:InputString]]('') pour ensuite travailler avec cette Variable.
  
 En effet, la saisie dans une Variable[] est conçu pour bloquer la saisie de lettres, de symboles, ou de valeur négative. En effet, la saisie dans une Variable[] est conçu pour bloquer la saisie de lettres, de symboles, ou de valeur négative.
  
-N'oubliez, cependant, pas de vérifier que la valeur entrée est bien inférieur à 32767 avant de la déduire du %Gold% du joueur et de l'ajouter à la Serveur[] cagnottesans quoi il y a risque de bug.+N'oubliez pas, cependant, de vérifier que la valeur entrée est bien inférieur à 32768 avant de l'utiliser. Car si la saisie est supérieurela variable prendra une valeur négative.
  
 __Exemple d'illustration :__ __Exemple d'illustration :__
Ligne 160: Ligne 163:
 <TEXTAREA ROWS=14 COLS=70 SIZE=255 WRAP=soft readonly> <TEXTAREA ROWS=14 COLS=70 SIZE=255 WRAP=soft readonly>
 Appuis sur bouton Appuis sur bouton
 +Variable[13]=0
 +// Variable, qui, = à 0, fais aller en page 1.
 </TEXTAREA> </TEXTAREA>
 </td> </td>
Ligne 169: Ligne 174:
 // --------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------
 Condition('Variable[0]<0') Condition('Variable[0]<0')
-// Cas où le joueur a saisi une valeur supérieur à 32757 po : La variable prend alors une valeur négative +// Cas où la Variable vaut un nombre négatif. 
-Message('Il semble qu'il y ait un problème...')+// => Signifie que la saisie était supérieure à 32768 ! 
 +Message('Saisie non conforme (supérieure à ~30.000 po)...')
 // --------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------
 Condition('Variable[0]>0') Condition('Variable[0]>0')
-Variable[1]=Variable[0] +Variable[13]=1 
-Variable[0]=0 +// Fais aller en page 2 
-// Puis on soumet Variable[1] à un test, sur une deuxième page, pour savoir si le joueur possède bien cette somme (>=%Gold% ou <%Gold%) etsi c'est le cas, on enlève la somme au joueur et rajoute à la Serveur[] cagnotte.+// La saisie est conforme, on peut alors l'utiliser pour la suite. 
 +// ex : Vérifier si le joueur possède cette somme, etc... 
  
 </TEXTAREA> </TEXTAREA>
Ligne 182: Ligne 190:
 </table></center> </table></center>
 </html> </html>
 +
 +
  
 === 2 - Saisie de valeurs plus libres (de 1 à quelques milliards) === === 2 - Saisie de valeurs plus libres (de 1 à quelques milliards) ===
Ligne 191: Ligne 201:
   * Test de validité (n'accepte pas les lettres & symboles)   * Test de validité (n'accepte pas les lettres & symboles)
   * Test de positivité (n'accepte pas les valeurs négatives)   * Test de positivité (n'accepte pas les valeurs négatives)
-  * Test porte-monnaie (vérifie que le joueur possède bien la somme dans le cas d'un don ou d'une mise)+  * //(Test porte-monnaie (vérifie que le joueur possède bien la somme dans le cas d'un don ou d'une mise))// -> Cas d'un don ou d'une mise.
   * Test valeur limite (fixe une limite max car au delà de quelques milliards saisis, de nombreux bugs surviennent)   * Test valeur limite (fixe une limite max car au delà de quelques milliards saisis, de nombreux bugs surviennent)
 -- --
Ligne 349: Ligne 359:
 </table> </table>
 </center></html> </center></html>
 +
 +
 +
 +
 +==== Astuce 07 :Event avec plusieurs restrictions ====
 +
 +Si vous désirez créer un event restrictif; par exemple seul un joueur appartenant à la Guilde Admin **ou** s'appelant Ophio **ou** étant dans le groupe "Slayers" peut accéder au téléport, 2 pages suffisent ;-)
 +
 +
 +<html>
 +<style type=text/css>
 +TEXTAREA {
 +  background-color : white;
 +  font-family : MS Sans Serif;
 +  font-size : 8px;
 +}
 +</style>
 +<center>
 +<table cellspacing=2>
 +<tr height=25><th colspan=3 align=left>Page 1</th></tr>
 +<tr><td><b>Conditions d'événements</b></td><td></td><td><b>Commande événements</b></td></tr>
 +<tr><td>
 +<TEXTAREA ROWS=14 COLS=70 SIZE=255 WRAP=soft readonly>
 +Appuie sur bouton
 +%Guilde%!=Admin
 +%Name%!=Ophio
 +%Groupe%!=Slayers
 +//ici je met à chaque fois des "différent de" (noté != )
 +</TEXTAREA>
 +</td>
 +<td width=20>
 +</td>
 +<td>
 +<TEXTAREA ROWS=14 COLS=70 SIZE=255 WRAP=soft readonly>
 +Message('Vous ne pouvez pas passer')
 +</TEXTAREA>
 +</td>
 +</tr>
 +</table>
 +</html>
 +
 +
 +<html>
 +<style type=text/css>
 +TEXTAREA {
 +  background-color : white;
 +  font-family : MS Sans Serif;
 +  font-size : 8px;
 +}
 +</style>
 +<center>
 +<table cellspacing=2>
 +<tr height=25><th colspan=3 align=left>Page 2</th></tr>
 +<tr><td><b>Conditions d'événements</b></td><td></td><td><b>Commande événements</b></td></tr>
 +<tr><td>
 +<TEXTAREA ROWS=14 COLS=70 SIZE=255 WRAP=soft readonly>
 +Appuie sur bouton
 +//dans ce cas-ci au moins une restriction n'est pas respectée, le joueur peut donc se téléporter
 +</TEXTAREA>
 +</td>
 +<td width=20>
 +</td>
 +<td>
 +<TEXTAREA ROWS=14 COLS=70 SIZE=255 WRAP=soft readonly>
 +Teleport(Map,4,23)
 +</TEXTAREA>
 +</td>
 +</tr>
 +</table>
 +</html>
 +
 +
 +
 +
 +
 +==== Astuce 08 :Réinitialiser les variables à la déconnexion ====
 +
 +Si en entrant dans la map on fait Variable[13]=1, puis que dans les propriétés de la carte on met "Si Variable[13]=1 alors Serveur[]=" (c'est a dire tout vide en ce qui concerne la variable serveur), quand le joueur se déconnecte et se reconnecte, la Variable[13] reviendra a 0 automatiquement.\\
 +
 +Il suffit donc de mettre à l'intérieur de la map:\\
 +
 +CD :\\
 +Auto une seul fois\\
 +Variable[13]=0
 +
 +CE :\\
 +Variable[14..16]=0
 +
 +Si les cases de la Variable Serveur sont remplies, la Variable sera tout de même réinitialisée.
 +
 +
 +
 +
 +==== Astuce 09 :La division ====
 +
 +
 +Lorsque l'on divise un chiffre sur l'éditeur, le résultat est toujours arrondi à l'unité inférieure.\\
 +Ainsi 5 divisé par 3 n'est pas égal à 1,666... mais à 1.
 +
 +Si l'on souhaite arrondir à l'unité supérieure, il suffit d'ajouter 1 après la division.\\
 +(5/3)+1=2
 +
 +Et si l'on souhaite arrondir à l'unité supérieure quand la décimale est supérieure ou égale à 5, et à l'unité inférieure quand la décimale est inférieure à 5, il faudrait **théoriquement** rajouter 0,5 après la division:\\
 +(5/3)+0,5 = 2\\
 +(4/3)+0,5 = 1\\
 +Mais lorsque l'on rentre 0,5 (ou 1/2) dans l'éditeur, cela ne fonctionne pas.\\
 +Il faut donc utiliser une astuce : on multiplie tout par 10, puis on redivise tout par 10.\\
 +(50/3)+5 = 21\\
 +21/10=2
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki