Lettre a la bonne place

cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008 - 15 mai 2007 à 10:36
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009 - 18 mai 2007 à 21:07
bjr voici mon ptit prob surement que quelqu'un peu m'aider ?!

alias essai {
  var %a 1
  var %b = $count(bal,%lis)
  while (%a <= %b) {
    var %pos = $pos(bal,%lis,%a)     var %fin $iif(%pos 1,$+(%lis,$right(bal,-1),$+($mid(bal,1,$calc(%pos - 1)),%lis,$mid(bal,$+($calc(%pos + 1),-))))))
    /msg $chan �2;�3;5 %fin
    inc %a
  }
}
on 1:text:!*!:#: {
  set %lis $mid($1,2,1) { 
    if (%lis isletter bal is bal) /essai
  }
}
;!l! me donne ceci : pas de msg
;!a! me donne ceci : pas de msg
;!b! me donne ceci : al3al
;le but est de remettre la lettre (!*!) a la bonne place ??

19 réponses

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 mai 2007 à 18:54
Ton code est bon, mis a part une incohérence dans le if du on text avec bal is bal et dans ton alias ou tu as juste bal

Je sais que ce que tu veux faire tient en une ligne avec un regsubex ( mirc.621 oblige ) mais je sais malheuresement pas le faire
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
15 mai 2007 à 20:20
merci wims pour avoir si vite répondu
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 mai 2007 à 20:22
Tu as résolus ton probleme ?
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
15 mai 2007 à 20:36
non vais continuer a chercher
0

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

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 mai 2007 à 20:58
Ok, il y avait quelque erreurs en fait, notamment au niveau des parentheses :

alias essai {
  var %f phrase ,%a 1 ,%b = $count(%f,$1)
  while (%a <= %b) {
    var %pos = $pos(%f,$1,%a)     var %fin $iif(%pos 1,$+($1,$right(%ga!,-1)),$+($mid(%ga!,1,$calc(%pos - 1)),$1,$mid(%ga!,$+($calc(%pos + 1),-))))) 
    set %ga! %fin
    inc %a
  }
}

Donc dans l'alias, %f represente la phrase entière ( je suppose que c'est ce que les autres doivent trouver ), remplace phrase par là ou tu stock cette phrase.
%ga! represente la phrase que les autres peuvent voir ( au début je suppose que ce ne sont que des * ) donc tu remplace aussi par là ou tu stock ce que peuvent voir les autres.A la fin, le /set sert a modifié la variable que les users vont voir.
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
16 mai 2007 à 00:58
on 1:text:!*!:#: {
  set %lis $mid($1,2,1) { 
    if (%lis isletter bal is bal) /essai
  }
}

enlève le { sur la ligne du set

ça donne (en reprenant l'alias essai de wims)
on *:text:!*!:#:if ($mid($1,2,1) isletter bal is bal) essai $v1
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
16 mai 2007 à 16:49
merci a Wims et Arkanis voiçi le résultat ( qui a fonctionné une seule fois ) pourkoi mystére    ;;;;

alias ess {   var %fut $read(qest.txt),%a 1 ,%b $count(%fut,$1)
  while (%a <= %b) {
    var %ga = $read(qoit.txt)
    var %pos = $pos(%fut,$1,%a)     var %fin $iif(%pos 1,$+($1,$right($read(qoit.txt),-1)),$+($mid($read(qoit.txt),1,$calc(%pos - 1)),$1,$mid($read(qoit.txt),$+($calc(%pos + 1),-))))) 
    set %ga $read(qoit.txt) %fin
    msg #  %fin
    inc %a
  }


  on *:text:!*!:#:if ($mid($1,2,1) isletter %fut is %fut) ess $v1
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
16 mai 2007 à 16:55
t'es sûr que %fut est défini (dans le ON TEXT) ?
le /var %fut va le faire desaffecter une fois le code terminé

tu veux faire quoi exactement ?
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
16 mai 2007 à 17:00
cela a plus marché quand j'ai choisi une lettre (qui étais a 2 place dans la phrase) j'eu 2 msg réponse et depuis plus rien
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
17 mai 2007 à 17:14
akanis
le but de mon alias est :
kan une pers. tape une lettre (!*! ) est ke cette lettre se trouve dans la phrase,cela l'a met a la bonne place idem si la lettre est a plusieurs place dans la phrase
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
17 mai 2007 à 20:00
c'est une sorte de pendu, non ?

c'est ça que je ne comprends pas :
;!l! me donne ceci : pas de msg
;!a! me donne ceci : pas de msg
;!b! me donne ceci : al3al

d'où vient le al3al et que signifie-t-il ?
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
17 mai 2007 à 20:09
C'est une erreur ArKanis, il ne veux pas obtenir cela, lui il veux par exemple :

La phrase c'est Ga is Ga

si on fait !a! ca doit afficher *a ** *a
              !i!                     > *a i* *a

L'alias que j'ai donné, je l'ai testé, il marche, apres faut qu'il remplace par ses valeurs
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
17 mai 2007 à 20:09
al3al justement cla est pas normal !!
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
17 mai 2007 à 20:12
oui c'est cla même  Wims
vais le  refaire
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
17 mai 2007 à 21:21
regarde ce que j'avais fait comme pendu

alias pendu echo -a Nouveau pendu : !pendu <#salon> en PV :: Ensuite pour jouer sur #salon : !pendu <lettre|mot|phrase>
on *:text:!pendu *:*:{
  tokenize 32 $strip($1-)
  if (!$2-) return
  if (!$chan) {
;"!pendu #salon mot, expression" en privé pour lancer un nouveau pendu sur #salon
    if (!$3) return
    if ($left($2,1) != $chr(35)) return
    if ($hget(Pendu)) hfree Pendu
    hadd -m Pendu Salon $2
    hadd -m Pendu Mot $3-
    var %r $regsubex($hget(Pendu,Mot),/[a-z]/ig,_)
    hadd -m Pendu Masque %r
    msg $2 Pendu - Nouveau mot : $regsubex(%r,/(_+)/g,$+($str(_,$len(\t)),$chr(40),$len(\t),$chr(41))) $+($chr(40),Proposé par $nick,$chr(41))
  }
  elseif (($chan == $hget(Pendu,Salon)) && ($hget(Pendu,Mot))) {    var %r $hget(Pendu,Masque), %e $2-, %p = $pos($hget(Pendu,Mot),%e,0)
    while %p {      var %s $calc($pos($hget(Pendu,Mot),%e,%p) -1), %m $+(/^,$left(%r,%s),$chr(40),$str(.,$len(%e)),$chr(41),/i), %r = $regsubex(%r,%m,$+($left(%r,%s),%e))
      dec %p
    }
    if ($pos($hget(Pendu,Mot),_,0) == $pos(%r,_,0)) {
      msg $chan Bravo, vous avez réussi ce pendu ! Il s'agit effectivement de : $hget(Pendu,Mot)
      hdel Pendu Mot
    }
    elseif (%r != $hget(Pendu,Masque)) {
      hadd -m Pendu Masque %r
      msg $chan Pendu : %r
    }
    else msg $chan Faux $nick !
  }
}

Il ne remplace que les lettres par _ (il ne remplace ni les accents ni les chiffres)
On peut également taper !pendu "plusieurs lettres".

Par exemple, si la phrase est Ga is Ga exemple (comme ça Wims sera content :p)
Pour déclarer (en privé)
!pendu #tonsalon Ga is Ga exemple
-> Nouveau pendu : __(2) __(2) __(2) _______(7)
!pendu Ga
-> Pendu : Ga __ Ga _______
!pendu si
-> Faux
!pendu i
-> Pendu : Ga i_ Ga _______
!pendu s Ga
-> Pendu : Ga is Ga _______
!pendu em
-> Pendu : Ga is Ga __em___
!pendu exemple
-> Bravo, vous avez réussi ce pendu ! Il s'agit effectivement de : Ga is Ga exemple

Tu peux adapter un peu et mettre des étoiles si ça t'amuse :)
Si tu as besoin d'aide pour le modifier, n'hésite pas
J'espère que ça te conviendra
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
18 mai 2007 à 15:00
mci arkanis c cool
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
18 mai 2007 à 20:34
Bon  désolé cla marche toujours pas
alias essai { 
; qest.txt contient ma phrase ex: le chien 
; qoit.txt contient ma phrase ex: ¤¤ ¤¤¤¤¤
  var %f = $read(qest.txt)  
  var %b = $count(%f,$1) 
  while %a <= %b) {     
    var %pos = $pos(%f,$1,%a)       var %fin $iif(%pos 1,$+($1,$right($read(qoit.txt),-1)),$+($mid($read(qoit.txt),1,$calc(%pos - 1)),$1,$mid($read(qoit.txt),$+($calc(%pos + 1),-)))) 
    set %ga %fin
    /msg $chan  %fin 
    inc %a
  }
}
on 1:text:!*!:#: {
    var %f = $read(qest.txt)   
      if ($mid($1,2,1) isletter %f ) essai  $v1
    }
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
18 mai 2007 à 20:46
Mais prend le code d'arkanis mdr, il est niquel, adapte le juste de la manière dont tu veux qu"il fonctionne
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
18 mai 2007 à 21:07
les $read lisent une ligne aléatoire, "le chien" ne correspondra donc pas à "¤¤ ¤¤¤¤¤", sauf chance incroyable ...
utilise ça : var %masque = $regsubex(ta phrase,/[a-z]/ig,¤)

while %a <= %b) {
il manque une ( ...
le / devant msg ne sert à rien
0
Rejoignez-nous