Probleme avec "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 - 20 avril 2006 à 21:20
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008 - 21 avril 2006 à 22:59
hello,

voici un alias et une commande on text, ..

Si quelqu'un a une idée.
alias rep {
/msg $active blabla est %oppr
/unset %oppr


ici, si je tape /rep, le script repond : blabla truc
Donc l'alias fonctionne
}
On *:TEXT:*:#: {
if ($1- != %oppr) halt
if ([$1- == %oppr])
/rep
}

Par contre quand je mets un mot, la commande on *:text , ça ne fonctionne pas (ça me mentionne */if parametres insuffisant)

Merci par avance.

....

15 réponses

RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
21 avril 2006 à 20:49
si tu utilises plusieurs fois $strip, fais un tokenize 32 $strip($1-) avant, ça sera plus pratique
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
21 avril 2006 à 00:17
pourquoi avoir créé un nouveau topic ? :/

msg $active <=> say, en règle générale

la syntaxe de ton if est incorrecte, et le premier if ne sert à rien
on *:text:*:#:if ($1- == %oppr) rep
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
21 avril 2006 à 00:30
hello,

Voilà, j'ai essayé ça

je remets l'alias pour memoire (sachant que si je tape /rep il fonctionne)

alias rep {
/msg $active bravo, le mot contraire est bien (*) %oppr (*)
/unset %oppr
}

Puis la commande
on *:text:*:#:if ($1- == %oppr) rep

ça me repond :
* /if: paramètres insuffisants (ligne 40, script1.mrc)

merci
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
21 avril 2006 à 01:05
et ta ligne 40 c'est ?
0

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

Posez votre question
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
21 avril 2006 à 01:09
la ligne 40 c'est la ligne ou il y a le "if" apparement il manque un parametre au if ...

The-Real-Orus-style
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
21 avril 2006 à 01:41
et si tu collais exactement ce que tu as à la ligne 40 ?

vérifie que tu n'aies pas une erreur de { } (y'a un bouton pour)
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
21 avril 2006 à 07:51
hello...
Bon voici la ligne 40
on *:text:*:#:if ($1- == %oppr) rep

pour memoire, si je tape /rep dans mon script, ça fonctionne
donc ça montre que l'alias fonctionne.

Merci ;)
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
21 avril 2006 à 12:25
L'erreur viens alors du fait que la variable %oppr ne contient rien

essaye un code ca :

on *:text:*:#:{

echo -a la variable $(%oppr,0) $iif(%oppr,existe,n'existe pas)

if ($1- == %oppr) rep

}



quand tu lance l'alias a la main, la variable existe mais tu l'unset apres , je pense que c'est ca qui ne va pas.
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
21 avril 2006 à 12:58
ça m'étonnerait que çe soit ça
alias test {
echo -a Var $(%oppr,0) : %oppr
if ($1- == %oppr) echo -a $true
}
%oppr est vide, et pourtant le if se fait
il considère %oppr comme $null, s'pas un pb :)

comme dit, vérifie tes { }
colle ici les lignes du dessus si besoin
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
21 avril 2006 à 13:23
bah la condition est bonne alors, et il devrait pas avoir l'erreur :)

donne nous le code entier sinon ...
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
21 avril 2006 à 16:03
hello, voici

alias cont {
var %r = $read(oppose.txt)
set %opp $gettok(%r,1,42)
set %oppr $gettok(%r,2,42)
set %chrono 45
.timerchrono 1 %chrono /arret
/msg $active (o) Trouve le contraire de ce mot(o)
/msg $active (*) %opp (*)
}
alias joueur {
/set %$nick
}
alias arret {
/msg $active (i) Le mot était (*) %oppr (*) (i)
/msg $active (o) Le jeu est arrete, tapez @cont pour le lancer a nouveau
/unset %opp
/unset %chrono
/unset %oppr
}


alias contstop {
/msg $active Le jeu est en arret! Tape @cont pour recommencer!! ;)
/unset %chrono
/unset %opp
}
alias rep {
/msg $active bravo, le mot contraire est bien (*) %oppr (*)
/unset %oppr
}
ON *:TEXT:*@cont*:#: {
if (%opfl == stopflood) halt
/cont | .set -u5 %opfl stopflood
}
on *:TEXT:*@scont*:#: {
if (%opfl == stopflood) halt
/contstop | .set -u5 %opfl stopflood
}
on *:text:*:#: {
if ($1- == %oppr) rep
}

voilà, certaines lignes servent à rien mais c'est pour le moment :p

En tout cas merci par avance :)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
21 avril 2006 à 16:30
/unset %opp
/unset %chrono
/unset %oppr
=> unset %opp %chrono %oppr

tes / sont inutiles et moches :(

msg $active = say

les . devant set aussi (ça n'affiche rien dans tous les cas :x)

alias joueur {
/set %$nick
}
s'quoi ... cette chose ?

pour ton on text, tu peux aussi mettre :
on *:text:$(%oppr):#:rep

au lieu de t'amuser à set %opfl stopflood, mets plutôt %opfl 1
tes if (%opfl == stopflood) deviennent donc if (%opfl) halt

tu utilises quelle version de mIRC ?
le if est juste ...

essaye de regrouper tous les ON TEXT en un seul
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
21 avril 2006 à 17:57
re hello :-)

voilà ou j'en suis, ça ne change pas, quand le mot est juste, ça ne réagit pas

le /say je ne le mets pas car le script est pour "msn" , et le /say marche pas (enfin parce qu'il est pas dans alias)

alias cont {
var %r = $read(oppose.txt)
set %opp $gettok(%r,1,42)
set %oppr $gettok(%r,2,42)
set %chrono 45
.timerchrono 1 %chrono /arret
msg $active (o) trouve le contraire de ce mot (o) mot
msg $active (*) %opp (*)
}
alias arret {
msg $active (o) le mot était (*) %oppr (*) (i)
msg $active le jeu est sur off, tapez @cont pour le relancer (*)
unset %opp %chrono %oppr
}
alias contstop
msg $active le jeu est en arret!! tape @cont pour le relancer ;):d
unset %chrono %opp
}
alias rep
msg $active Bravo, le mot contraire est bien (*) %oppr (*)
unset %oppr
}


On *:TEXT:*:#: {
if (%opfl1) halt
if ([mailto:*@cont *@cont]* iswm $1-) cont | set -u2 %opfl 1


on *:text:$(%oppr):#:rep | set -u2 %opfl 1

si quelqu'un a une idée merci :p

j'utilise mirc 6.03 (je suis fan ;))

NB : j'ai testé les {} et il n'y a pas d'erreur.
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
21 avril 2006 à 19:53
On *:TEXT:*:#: {
if (%opfl1) halt
if ([mailto:*@cont *@cont]* iswm $1-) cont | set -u2 %opfl 1
on *:text:$(%oppr):#:rep | set -u2 %opfl 1

il manque une acoolade la...
tu ne peux pas effectuer deux action sans mettre de { } autour. ca donne ca en gros :

On *:TEXT:*:#: {
if ($strip($1) == [mailto:*@cont @cont]) { cont | set -u2 %opfl 1 }
elseif ($strip($1) == %oppr) { rep | set -u2 %opfl 1 }
}

J'ai rajouter $strip au cas tu ai testé avec des couleurs
0
mr_orus1 Messages postés 89 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 9 avril 2008
21 avril 2006 à 22:59
Merci

en effet c'était le $strip qui manquait, j'ecris en gras et d'autres gras plus couleur ce qui faisait qu'il prenait pas en compte le mots mais d'abord le code couleur.


Merci, en plus en plus vous m'avez montré que je pouvais condenser mes codes :p


;)
0
Rejoignez-nous