Probleme avec "on *:TEXT" [Résolu]

mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention - 20 avril 2006 à 21:20 - Dernière réponse : mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention
- 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.

....
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
RCA ArKanis 1287 Messages postés mercredi 21 avril 2004Date d'inscription 21 février 2009 Dernière intervention - 21 avril 2006 à 20:49
3
Merci
si tu utilises plusieurs fois $strip, fais un tokenize 32 $strip($1-) avant, ça sera plus pratique

Merci RCA ArKanis 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de RCA ArKanis
RCA ArKanis 1287 Messages postés mercredi 21 avril 2004Date d'inscription 21 février 2009 Dernière intervention - 21 avril 2006 à 00:17
0
Merci
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
Commenter la réponse de RCA ArKanis
mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention - 21 avril 2006 à 00:30
0
Merci
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
Commenter la réponse de mr_orus1
RCA ArKanis 1287 Messages postés mercredi 21 avril 2004Date d'inscription 21 février 2009 Dernière intervention - 21 avril 2006 à 01:05
0
Merci
et ta ligne 40 c'est ?
Commenter la réponse de RCA ArKanis
mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention - 21 avril 2006 à 01:09
0
Merci
la ligne 40 c'est la ligne ou il y a le "if" apparement il manque un parametre au if ...

The-Real-Orus-style
Commenter la réponse de mr_orus1
RCA ArKanis 1287 Messages postés mercredi 21 avril 2004Date d'inscription 21 février 2009 Dernière intervention - 21 avril 2006 à 01:41
0
Merci
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)
Commenter la réponse de RCA ArKanis
mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention - 21 avril 2006 à 07:51
0
Merci
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 ;)
Commenter la réponse de mr_orus1
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 21 avril 2006 à 12:25
0
Merci
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.
Commenter la réponse de cs_wims
RCA ArKanis 1287 Messages postés mercredi 21 avril 2004Date d'inscription 21 février 2009 Dernière intervention - 21 avril 2006 à 12:58
0
Merci
ç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
Commenter la réponse de RCA ArKanis
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 21 avril 2006 à 13:23
0
Merci
bah la condition est bonne alors, et il devrait pas avoir l'erreur :)

donne nous le code entier sinon ...
Commenter la réponse de cs_wims
mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention - 21 avril 2006 à 16:03
0
Merci
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 :)
Commenter la réponse de mr_orus1
RCA ArKanis 1287 Messages postés mercredi 21 avril 2004Date d'inscription 21 février 2009 Dernière intervention - 21 avril 2006 à 16:30
0
Merci
/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
Commenter la réponse de RCA ArKanis
mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention - 21 avril 2006 à 17:57
0
Merci
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.
Commenter la réponse de mr_orus1
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 21 avril 2006 à 19:53
0
Merci
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
Commenter la réponse de cs_wims
mr_orus1 89 Messages postés samedi 24 janvier 2004Date d'inscription 9 avril 2008 Dernière intervention - 21 avril 2006 à 22:59
0
Merci
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


;)
Commenter la réponse de mr_orus1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.