Rassembler des on *:text

Résolu
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008 - 2 juin 2006 à 09:27
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008 - 4 juin 2006 à 13:59
hello,

voilà, j'essaie de rassembler des commandes on *:text car j'en ai trop sur le même script,

le soucis c'est que quand elles sont séparé, ça arrive a fonctionner, mais une fois rasssemblées, ça fonctionne pas tout.

Par exemple dans ce cas là, c'est les 2 derniers elseif qui ne fonctionne pas.

je dois faire je pense des erreurs de syntaxe o je sais pas ...

voici mon code

ON ^*:TEXT:*:#: {
  tokenize 32 $strip($1-)
  if ($1 == @anto) {
    if (%opfl == stopflood) halt
    if (%syn.2 == 1) { .ctcpreply $nick TIME syno est déJa en cours de Jeu, Tape @sycom pour les commandes :) } halt  
    if (%ant.1 == 2) { .ctcpreply $nick TIME Anto est déJa en cours de Jeu, Tape @synant pour les commandes :) } halt
    msg $msn.get($cid,fullroom) Hello $nick â?©  (o) $date $+ , $time (o)  â?© (o) Le Jeu est activé (o) | timer.cont 1 2 cont | set -u2 %opfl stopflood | set %ant.1 2 | unset %ant 1 | timerindices off
  }
  elseif ($1 == !anto) {
    if (%opfl == stopflood) halt
    if (%ant == 1) { .ctcpreply $nick TIME Anto est deja arreté , tape @anto pour le relancer (y) } Halt
    arret | timerchrono off | timerdepart off | set -u5 %opfl stopflood | set %ant 1 | unset %ant.1 %syn.*
  }
  elseif ($1 == @syno) {
    if (%opfl == stopflood) halt
    if (%ant.1 == 2) { .ctcpreply $nick TIME Anto est déJa en cours de Jeu, Tape @synant pour les commandes :) } halt  
    if (%syn.2 == 1) { .ctcpreply $nick TIME syno est déJa en cours de Jeu, Tape @sycom pour les commandes :) } halt
    msg $msn.get($cid,fullroom) Hello $nick â?©  (o) $date $+ , $time (o)  â?© (o) Le Jeu est activé (o) | timer.syno 1 2 syno | set -u2 %opfl stopflood | unset %syn.1 2 | set %syn.2 1 | timerindice off
  }
  elseif ($1 == !syno) {
    if (%opfl == stopflood) halt
    if (%syn.1 == 2) { .ctcpreply $nick TIME Syno est deja arreté , tape @syno pour le relancer (y) } Halt
    fin | timerdebut off | .timerindice off | set -u5 %opfl stopflood | unset %syn.2 1 | set %syn.1 2
  }
  elseif {
    var %n = 2
    tokenize 32 $strip($1-)
    while (%oppr. [ $+ [ %n ] ]) {
      var %mot = %oppr. [ $+ [ %n ] ]
      if ($remove($1-,32) == %mot) {  
        inc %point. [ $+ [ $nick ] ]
        writeini synant.ini scores  $nick $calc($readini(synant.ini,scores,$nick) + 1) 
        msg $msn.get($cid,fullroom) Bravo $nick !! le mot contraire est bien (*) %mot (*) â?© Ton score est de $readini(synant.ini,scores,$nick)
      inc.score $nick | unset %oppr.* | timer.cont 1 2 cont }
      inc %n
    }
    elseif {
      var %n = 2
      tokenize 32 $strip($1-)
      while (%syno2. [ $+ [ %n ] ]) {
        var %mot = %syno2. [ $+ [ %n ] ]
        if ($remove($1-,32) == %mot) {  
          inc %point. [ $+ [ $nick ] ]
          writeini synant.ini scoresyno  $nick $calc($readini(synant.ini,scoresyno,$nick) + 1) 
          msg $msn.get($cid,fullroom) Bravo $nick !! le Synonyme est bien (*) %mot (*) â?© Ton score est de $readini(synant.ini,scoresyno,$nick)
        inc.scoresyno $nick | unset %syno2.* | timer.syno 1 2 syno }
        inc %n
      }
    }
  }
}

si quelqu'un a une idée merci ;)

10 réponses

cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
3 juin 2006 à 09:25
oué mettre un if comme ca aprés ton else, si ta condition s'active alors ton truc se declenchera normalement, si tu halt pas avant comme l'a dis panthouffle

ISoKa
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
3 juin 2006 à 15:41
J'ai modifier toutes les erreurs que j'ai trouvé et j'ai arrangé les elseif sans conditions.


ON *:TEXT:*:#: {

  tokenize 32 $strip($1-)

  if ($1 == @anto) {

  if (%opfl == stopflood) return

  if (%syn.2 == 1) { .ctcpreply $nick TIME syno est déJa en cours
de Jeu, Tape @sycom pour les commandes :) | return } 

    if (%ant.1 == 2) { .ctcpreply $nick TIME Anto est
déJa en cours de Jeu, Tape @synant pour les commandes :) | return }

   
msg $msn.get($cid,fullroom) Hello $nick â?©  (o) $date $+ , $time (o) 
� (o) Le Jeu est activé (o) | timer.cont 1 2 cont | set -u2 %opfl
stopflood | set %ant.1 2 | unset %ant 1 | .timerindices off

  }

elseif ($1 == !anto) {

    if (%opfl == stopflood)  return

    if (%ant == 1) { .ctcpreply $nick TIME Anto est deja arreté , tape @anto pour le relancer (y) | return }

    arret | .timerchrono off | .timerdepart off | set -u5 %opfl stopflood | set %ant 1 | unset %ant.1 %syn.*

  }

elseif ($1 == @syno) {

    if (%opfl == stopflood) return

    if (%ant.1 == 2) { .ctcpreply $nick TIME Anto est
déJa en cours de Jeu, Tape @synant pour les commandes :) | return


    if (%syn.2 == 1) { .ctcpreply $nick TIME syno est
déJa en cours de Jeu, Tape @sycom pour les commandes :) | return }

   
msg $msn.get($cid,fullroom) Hello $nick â?©  (o) $date $+ , $time (o) 
� (o) Le Jeu est activé (o) | .timer.syno 1 2 syno | set -u2 %opfl
stopflood | unset %syn.1 2 | set %syn.2 1 | .timerindice off

  }

elseif ($1 == !syno) {

    if (%opfl == stopflood)  return

    if (%syn.1 == 2) { .ctcpreply $nick TIME Syno est deja arreté , tape @syno pour le relancer (y) | return }

    fin | .timerdebut off | .timerindice off | set -u5 %opfl stopflood | unset %syn.2 1 | set %syn.1 2

  }

elseif (%ant.1) {

    var %n = 2

    while (%oppr. [ $+ [ %n ] ]) {

      var %mot = %oppr. [ $+ [ %n ] ]

      if ($remove($1-,32) == %mot) {  

        inc %point. [ $+ [ $nick ] ]

        writeini synant.ini
scores  $nick $calc($readini(synant.ini,scores,$nick) + 1) 

       
msg $msn.get($cid,fullroom) Bravo $nick !! le mot contraire est bien
(*) %mot (*) â?© Ton score est de $readini(synant.ini,scores,$nick)

      inc.score $nick | unset %oppr.* | timer.cont 1 2 cont

 }

      inc %n

    }

}

elseif (%syn.1) {

      var %n = 2

      while (%syno2. [ $+ [ %n ] ]) {

        var %mot = %syno2. [ $+ [ %n ] ]

        if ($remove($1-,32) == %mot) {  

          inc %point. [ $+ [ $nick ] ]

        writeini synant.ini
scoresyno $nick $calc($readini(synant.ini,scoresyno,$nick) +1) 

         
msg $msn.get($cid,fullroom) Bravo $nick !! le Synonyme est bien (*)
%mot (*) â?© Ton score est de $readini(synant.ini,scoresyno,$nick)

        inc.scoresyno $nick | unset %syno2.* | timer.syno 1 2 syno

 }

        inc %n

      }

    }

}
3
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
2 juin 2006 à 09:48
Bonjour,
J'ai pas tout décripter ton code j'ai pas super l'temps là :p mais de ce que tu as di j'ai maté tes 2 derniers elseif. Ce qui me choque c'est que quand tu mets un elseif il me semble qu'il faut mettre des conditions et là en faite tu poses des elseif comme on poserai des else, donc forcement ca risque de coincé quelque part je pense... Si c'est des elses que tu veux mettre tu mets else { action } mais elsif , elsif (condition) {action}. Rematte l'aide sur if,elseif,else :)

ISoKa
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
2 juin 2006 à 10:08
merci,

donc j'ai essayé avec else ce qui me donne ça

 else {
    var %n = 2
    tokenize 32 $strip($1-)
    while (%oppr. [ $+ [ %n ] ]) {
      var %mot = %oppr. [ $+ [ %n ] ]
      if ($remove($1-,32) == %mot) {  
        inc %point. [ $+ [ $nick ] ]
        writeini synant.ini scores  $nick $calc($readini(synant.ini,scores,$nick) + 1) 
        msg $msn.get($cid,fullroom) Bravo $nick !! le mot contraire est bien (*) %mot (*) â?© Ton score est de $readini(synant.ini,scores,$nick)
      inc.score $nick | unset %oppr.* | timer.cont 1 2 cont }
      inc %n
    }
    elseif {
      var %n = 2
      tokenize 32 $strip($1-)
      while (%syno2. [ $+ [ %n ] ]) {
        var %mot = %syno2. [ $+ [ %n ] ]
        if ($remove($1-,32) == %mot) {  
          inc %point. [ $+ [ $nick ] ]
          writeini synant.ini scoresyno  $nick $calc($readini(synant.ini,scoresyno,$nick) + 1) 
          msg $msn.get($cid,fullroom) Bravo $nick !! le Synonyme est bien (*) %mot (*) â?© Ton score est de $readini(synant.ini,scoresyno,$nick)
        inc.scoresyno $nick | unset %syno2.* | timer.syno 1 2 syno }
        inc %n
      }
    }


j'ai remis après le else un elseif mais je suis sur de me gourré,  je vois pas ce que je pourrais mettre à la place, j'ai aussi essayé else mais ça fonctionne pas...


Pour le moment mon script réagit au else et pas encore pour la fin


 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
2 juin 2006 à 10:51
bin en faite oui tu peux rien mettre d'autre qu'un if aprés un else normalement. donc en faite il faudrait que tu saches les conditions pour les quelles ton dernier elseif doit se declenché, si par exemple il se declenche tjs conjointement au else que tu viens de mettre juste au dessus, tu ouvres un seul else et tu mets les 2 dedans, ou alors il faut absolument que tu trouve une condition. Ensuite c'est un detail mais il me semble que en regroupant tes on text y a des trucs redondants maintenant, ex:
tokenize 32 $strip($1-) << tu le fai il me semble deja au debut de ton alias , donc tu le fai une fois et ensuite pas besoin de remettre dans ton code
ISoKa
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
2 juin 2006 à 12:38
Tu veux dire quelque chose dans ce genre??

else {
    if  (%oppr. [ $+ [ %n ] ] == $strip($1-)) {
      var %n = 2
      while (%oppr. [ $+ [ %n ] ]) {
        var %mot = %oppr. [ $+ [ %n ] ]
        if ($remove($1-,32) == %mot) {  
          inc %point. [ $+ [ $nick ] ]
          writeini synant.ini scores  $nick $calc($readini(synant.ini,scores,$nick) + 1) 
          msg $msn.get($cid,fullroom) Bravo $nick !! le mot contraire est bien (*) %mot (*) â?© Ton score est de $readini(synant.ini,scores,$nick)
        inc.score $nick | unset %oppr.* | timer.cont 1 2 cont }
        inc %n
      }
    }
    if (%syno2.* == $strip($1)) {
      var %n = 2
      while (%syno2. [ $+ [ %n ] ]) {
        var %mot = %syno2. [ $+ [ %n ] ]
        if ($remove($1-,32) == %mot) {  
          inc %point. [ $+ [ $nick ] ]
          writeini synant.ini scoresyno  $nick $calc($readini(synant.ini,scoresyno,$nick) + 1) 
          msg $msn.get($cid,fullroom) Bravo $nick !! le Synonyme est bien (*) %mot (*) â?© Ton score est de $readini(synant.ini,scoresyno,$nick)
        inc.scoresyno $nick | unset %syno2.* | timer.syno 1 2 syno }
        inc %n
      }
    }
  }
}

j'essaie plein d'aide et tuto different, et je comprends pas comment faire ..
0
Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
2 juin 2006 à 12:50
Déjà la plupart de tes halts sont à l'extérieurs des accolades "} halt" --> "| halt }"

Sinon pour le reste j'ai pas trop le temps de voir je dois aller me préparer pour l'école

Bonne chance
0
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
3 juin 2006 à 18:09
lol bin voila la messe est dite j'croi là :p

ISoKa
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
4 juin 2006 à 02:27
Je ne certifie pas que ca marche, j'ai juste essayé de comprendre son code
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
4 juin 2006 à 13:59
Merci tout le monde ;) pour les explications et les corrections .
0
Rejoignez-nous