Agir sur une autre eprsonne

Résolu
Lorya51100 Messages postés 30 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 9 mai 2007 - 17 sept. 2006 à 16:12
Lorya51100 Messages postés 30 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 9 mai 2007 - 17 sept. 2006 à 18:30
Désolé de "mass-poster" et j'espère ne plus à avoir à le faire. Mais j'ai encore un 3ème problème :



Voilà, sur mon chan, en executant une commande, je voudrais voler des "pangya" à une personne pour les posséder, ceci dans le cadre d 'un jeu. Sous la forme : !pangya.vole "pseudo". Bien entendu, "pseudo" est à remplacer par un nick présent sur le salon.
Ceci diminue donc la valeur de "pangya" du pseudo choisi et augmente la valeur de "pangya" du pseudo qui éxécute la commande, sous certaines conditions.

Voici ma remote :

on ^1:text:!pangya.vole:#:{
  if ( %allez [ $+ [ $nick ] ] >= 1 ) && ( %pangya [ $+ [ $2 ] ] >= 20 ) {
    /msg $chan �3;13,1 $nick �3;11,1vole�3;4,1 20 pangya �3;11,1à�3;4,1 $2 �3;11,1!
    /inc %pangya [ $+ [ $nick ] ] 20
    /dec %pangya [ $+ [ $2 ] ] 20
    /set %allez [ $+ [ $nick ] ] 0
  }
  else { /notice $nick �3;6,1Impossible d'éxecuter cette action pour le moment. }
}

Globalement, si la variable %allez de celui qui lance la commande est supérieure ou égale à 1, alors il peut prendre 20 "pangya" à l'autre. Mais je n'arrive pas à faire fonctionner ce système ! Evidemment, sinon cela revoie vers l'impossibilité d'éxécuter la commande. En fait, rien ne se passe quand je tappe !pangya.vole "pseudo".
A voir également:

4 réponses

Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
17 sept. 2006 à 18:20
Voila j'ai reviser ton code rapidement:

on *:text:*:*:{
  if ($1 == !pdfp) {
    if (!$2) { notice $nick �3;8,1Erreur de �3;4,1commande�3;8,1. Tapez : �3;7,1!pdfp }
    elseif (!$3) { notice $nick �3;8,1Erreur de �3;4,1commande�3;8,1. Tapez : �3;7,1!pdfp }
    elseif ($3 == 0) { notice $nick �3;8,1Erreur de �3;4,1commande�3;8,1. Tapez : �3;7,1!pdfp <nombres de pdfp supérieur à 0> }
    else { notice $nick �3;0,1Tu viens d'attribuer�3;8,1 $3 points de fidélité pangya �3;0,1à�3;4,1 $2 �3;0,1! | notice $2 �3;0,1Tu reçois�3;8,1 $3 points de fidélité pangya �3;0,1de la part de�3;4,1 $nick �3;0,1! | inc %pdfp [ $+ [ $2 ] ] $3 }
  }
}

J'ai pas testé mais en théorie ça devrait fonctionner
3
Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
17 sept. 2006 à 17:33
Je considère que ce remote ce trouve déjà sur un autre mIRC que le tien.

As-tu essayer de coller les paranthèses sur tes conditions ?
Ex: if (%allez [ $+ [ $nick ] ] >= 1) && (%pangya [ $+ [ $2 ] ] >= 20) {

Sinon je vois pas trop ou est le problème.
0
Lorya51100 Messages postés 30 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 9 mai 2007
17 sept. 2006 à 18:09
En fait j'ai résolu mon problème avec la précédente remote tout seul, mais j'en ai un autre (encore ?!). Et oui !

Je voudrais maintenant attribuer des points de fidélité à des users de mon salon grâce à mon bot. Pour ce faire, je voudrais que ça se passe comme cela : !pdfp pseudo points de fidélité à attribuer. Donc, une commande de type !commande pseudo chiffre.
Hélas, cela devient un peu compliqué pour moi ! J'ai éssayé de concevoir une remote eprso pour cela, mais ça ne fonctionne pas ou trés mal, la voici :

On *:text:*:*:{
  if ($1 == !pdfp) {
    if ( $2 == $null ) { notice $nick �3;8,1Erreur de �3;4,1commande�3;8,1. Tapez : �3;7,1!pdfp }
    if ( $3 == 0 ) { notice $nick �3;8,1Erreur de �3;4,1commande�3;8,1. Tapez : �3;7,1!pdfp <nombres de pdfp supérieur à 0> }
    if ( $3 == $null ) { notice $nick �3;8,1Erreur de �3;4,1commande�3;8,1. Tapez : �3;7,1!pdfp }
    else { /notice $nick �3;0,1Tu viens d'attribuer�3;8,1 %score points de fidélité pangya �3;0,1à�3;4,1 $2 �3;0,1! | /notice $2 �3;0,1Tu reçois�3;8,1 %pdfp points de fidélité pangya �3;0,1de la part de�3;4,1 $nick �3;0,1! | /inc %pdfp [ $+ [ $2 ] %score }
  }
}

Dans cette remote, je considère que si $2 == null, donc, que aucun pseudo est spécifié, cela va retourner l'erreur.
De la même façon, je considère que si $3 == 0   ,donc, que aucun nombre (points de fidélité) n'est ajouté, cela retourne l'erreur.
Et évidemment, $1 representant le texte !commande (!pdfp).

En bref, je veux une remote pour lorsque je tappe !pdfp pseudo points de fidélité à attribuer, cela donne au pseudo le nombre de points de fidélité voulu. Mais je n'y arrive pas !

Merci beaucoup de votre aide !
0
Lorya51100 Messages postés 30 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 9 mai 2007
17 sept. 2006 à 18:30
Yes bien joué ça fonctionne :)
Merci.
0
Rejoignez-nous