cs_Lodan51
Messages postés57Date d'inscriptionlundi 4 juillet 2005StatutMembreDernière intervention19 janvier 2006
-
4 août 2005 à 16:58
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006
-
8 août 2005 à 09:45
Bonjour à tous !
Mon probléme est simple à éxpliquer, mais pas à résoudre pour moi : je souhaiterai que dans mes remotes de mon jeu " RPG " ( jeu de rôle ), il puisse y avoir plusieurs conditions recquises pour qu'une commande soit éxécutable.
Exemple ( avec une seule condition ) :
Dans ce remote, la commande !zeroexp s'éxécute à seulement une condition, que les " mp " ( points de magie ) du joueurs soient > ou = à 40. Mais là est la seule condition.
Comment faire si je souhaite par éxemple rajouter une seconde ou même trois conditions représentées par donc, deux ou trois " if " ? Je ne sais pas comment placer ça dedans, probléme de placements de { } je pense mais je ne sais comment faire.
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 8 août 2005 à 09:45
En fait tu veux qu'une action se réalise si plusieurs conditions sont vérifiées simultanément. Donc dans ton if tu peux mettre toutes les conditions que tu désires et tu les sépare par && (qui veut dire "et")
Par exemple :
on *:text:!zeroexp*:#:{
if ($2 && [ [ $+(%,mp,$nick) ] ] >= 40 && [ [ $+(%,hp,$nick) ] ] >= 500 && [ [ $+(%,co,$nick) ] ] >= 10000) {
var %kedalle = $r(1,4)
....
}
else { notice $nick 4,1 $nick 7,1 Toutes les conditions ne sont pas recquises pour éxécuter cette action }
}
En passant, je te conseillerais pour ce genre de script d'utiliser les hash tables plutôt que les variables globales, tu y gagneras en vitesse, en clarté et en facilité de gestion. (Possible aussi en fichier ini).
cs_Huitre
Messages postés290Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention29 février 2008 5 août 2005 à 09:54
Deja je te conseille d utiliser les hash tables pour le stockage de tes
variables des joueurs, car non seulement c est illisible les set + [] ,
mais ca utilise exessivement trop de ressources, pour la rapidité , la
lisibilité, et l utilisation c est vraiment a ne pas utiliser.
cs_Lodan51
Messages postés57Date d'inscriptionlundi 4 juillet 2005StatutMembreDernière intervention19 janvier 2006 5 août 2005 à 14:42
Je voudrais bien, mais le seul probléme, c'est que je ne sais pas le faire :p
Si tu pouvais me donner un ou de éxemple(s), cela m'aiderait à menner à terme mes projets :)
Merci à vous !
Lodan51
Vous n’avez pas trouvé la réponse que vous recherchez ?
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 5 août 2005 à 18:36
à la place des /set => hadd -m Mp $nick "donnée"
et pour les utiliser : $hget(Mp,$nick)
lis un tutorial sur les hash tables sinon, ça te sera toujours utile
ça marche d'avoir plusieurs else à la suite ?
var %var = $r(1,4)
echo -a %var
if (%var == 1) echo -a kikoo
elseif (%var == 2) echo -a pas kikoo
else echo -a ça va ?
else echo -a pourquoi cet else là ?
elseif (%var == 4) echo -a et cet elseif ?
cs_Lodan51
Messages postés57Date d'inscriptionlundi 4 juillet 2005StatutMembreDernière intervention19 janvier 2006 7 août 2005 à 19:42
finalement, si je souhaites reprendre totalement mon remote avec plusieirs conditions recquises à l'éxécution de la commande, je créé le remote comment ? :p
éxactement comme ça ou il manque quelque chose, ou, ce n'est pas la bonne casse ( formation de remote ) ?
en gros, qui peut me faire ce remote de manière à ce qu'il marche corréctement pour m'en sérvir d'éxemple :p ?
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 7 août 2005 à 20:14
il y a le } à rajouer là où l'a dit coolman, et puis perso j'ai rien compris à ce que tu voulais :D
pour tes plusieurs conditions, tu veux rajouter quoi par exemple ? ça dépend entièrement de ce que tu veux toi ...
la programmation de "if, elseif, else" (donc les conditions), c'est juste de la logique, si tu n'en as pas, arrête de programmer :)
cs_Lodan51
Messages postés57Date d'inscriptionlundi 4 juillet 2005StatutMembreDernière intervention19 janvier 2006 7 août 2005 à 22:36
Lool
Bon écoute, voilà c'est simple, je souhaite en quelques sortes mettre plusieurs conditions afin que la commande s'éxécute, par éxemple, si je reprends mon remote ci-dessus :
on *:text:!zeroexp*:#:{
if ( [ [ $+(%,mp,$nick) ] ] >= 40 && $2) {
var %kedalle = $rand(1,4)
Ici tu le vois bien, la commande !zeroexp ne peut s'éxécuter que si mp est > ou = à 40, dans ce cas, la variable %kedalle est activé et choisi une séléction entre 1 et 4, jusque là ça va tu comprends :p
Ce que je souhaite, c'est savoir comment, en reprennant la totalitée du remote, comment ajouter une seconde condition, une troisiéme, etc.... Par éxemple, en faisant peut être ça :
Bien entendu, cette configuratin des 3 conditions recquises n'est pas la bonne, mail là, tu comprends ce qu'il faut pour que la commande s'éxécute : que mp, hp, et co est une valeur. Sinon, renvoyer vers un texte du genre :
else { notice $nick 4,1 $nick 7,1 Toutes les conditions ne sont pas recquises pour éxécuter cette action ) }
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 8 août 2005 à 02:19
il faudrait voir l'intérêt du code, ça pourrait être plus compréhensible ... je ne vois pas ce que tu cherches
ton else ne marche pas ?
si aucune des conditions 1, 2 et 3 n'est bonne, il délenchera ton else
ton code semble bon, mais après chaque "<=== condition 1", tu refermes les { } ?
si tu ne refermes pas, l'inverse de tes 3 if en cascade serait : if (!$2 || $+(%,mp,$nick) < 40 || ... < 500 || ... < 10000) { ... }
j'ai vraiment du mal à te comprendre ... désolé