Pb test variable $rand dans ON TEXT

yonaburur Messages postés 7 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 28 février 2005 - 28 févr. 2005 à 14:06
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006 - 2 mars 2005 à 00:00
Bonjour,

M'en veuillez pas je suis newbie en scripting (une semaine que j'y suis). Voilà je souhaite trapper le mot info dans le salon (c tres bien comme cela sans wild cards ou jocker, juste "info") et de manière aléatoire renvoyer un text. J'ai mis ce bout de code dans un remote sur ON TEXT mais ca ne marche pas, en revanche le même code sur mon ON INPUT marche lui.

ON 1:TEXT:info: {
%info = $rand(0,4)
if ( %info == 0 ) { msg $active info1 }
if ( %info == 1 ) { msg $active info2 }
if ( %info == 2 ) { msg $active info3 }
if ( %info == 3 ) { msg $active info4 }
if ( %info == 4 ) { msg $active info5 }
}

Si vous avez une idée pour que cela fonctionne ce srait super sympa!

Yooooooooo!

8 réponses

Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
28 févr. 2005 à 14:32
Le format du ON TEXT est

on <niveau>:TEXT:<matchtext>:<*><?><#[,#]>:<commandes>

Ce n'est pas le même format que le ON INPUT, tu as oublié de préciser le "lieu" (*,?,#).

Pour la méthode je sais que tu débutes mais tu verras, tu pourras l'optimiser en mettant tes phrases dans un fichiers txt et en utilisant un $read. C'est utile surtout s'il y a beaucoup de phrases.

@+

PS : un tip, tu peux utiliser $r à la place de $rand
0
yonaburur Messages postés 7 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 28 février 2005
28 févr. 2005 à 14:38
ok merci bcp, j'ai mis le lieu # et ça fonctionne impec.

Merci bcp !
0
dj328i Messages postés 312 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 14 mars 2022
1 mars 2005 à 05:15
Pourquoi mettre des conditions ?

Met ton random directement dans ta commande

ON 1:TEXT:info:#toncanal:{
msg $active $+(info,$r(1,5)) }

Tu peut utiliser $r au lieux de $random , c'est la même commande mais en raccourcie.
0
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
1 mars 2005 à 11:41
Tu n'as pas bien saisi dj328i, il ne veut pas afficher les mots "info1", "info2", etc.. mais des phrases différentes à la place de info1, info2 etc...
Sinon ça n'a aucun intérêt.

De plus pour le $r je lui avais déjà signalé mais ça remplance $rand.
$random n'existe pas.
0

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

Posez votre question
dj328i Messages postés 312 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 14 mars 2022
1 mars 2005 à 13:15
C'est moi qui as rien saisie ?

Info cétait uniquement a titre de joker , qu'il le remplace par l'identifieur qu'il veut et ca feras la même chose.

( De plus pour le $r je lui avais déjà signalé )

ouais dsl , ca je l'avais pas vue.
0
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
1 mars 2005 à 18:08
Ton code lui fera afficher les mots "info1" ou "info2" ou "info3" etc... à chaque fois que quelqu'un dira info sur le salon.
Tu ne fais qu'une concaténation entre le mot info et un chiffre pris au hasard entre 1 et 5. Lui il veut de vrais messages.

De plus je ne vois pas ce que ça changerait de mettre un identifieur (et en plus lequel?) à la place de "info", ça n'a aucun sens. Le remplacer par une variable là ça aurait un sens.
Il pourrait définir ses variables %info1, %info2, etc... puis les appeler ensuite en utilisant :

ON 1:TEXT:info:#toncanal:{ msg $chan $($+(%,info,$r(1,5)),2) }
Mais tous les messages doivent être définis dans %info1, %info2, etc.. auparavant.

La meilleure méthode est à mon avis de mettre toutes ces phrases d'informations dans un fichier txt (info.txt par exemple) et ensuite de les appeler avec un $read :

ON 1:TEXT:info:#toncanal:{ msg $chan $read(info.txt) }

Sinon une deuxième petite erreur dans ton code il ne faut pas mettre $active mais $chan sinon imagine qu'il soit sur un autre salon au moment ou quelqu'un tape info dans #toncanal, il répondra automatiquement dans le canal ou il est et non sur #toncanal.

@+
0
dj328i Messages postés 312 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 14 mars 2022
1 mars 2005 à 22:43
Tu ne fais qu'une concaténation entre le mot info et un chiffre pris au hasard entre 1 et 5. Lui il veut de vrais messages


- Tu lis ce que j'écrie ou tu fait semblant ?


De plus je ne vois pas ce que ça changerait de mettre un identifieur (et en plus lequel?) à la place de "info", ça n'a aucun sens.


( ON 1:TEXT:info:#toncanal:{ msg $chan $read(info.txt) } )


Tu viens de répondre toi même a ta propre question.
0
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
2 mars 2005 à 00:00
Tu sais je n'écris cela que pour t'aider faut pas t'offusquer, on est là pour s'entraider.

L'histoire du $read j'en ai parlé dès le premier post (tout comme le $r), tu ne parlais pas de ça sinon tu l'aurais mis direct.

Tu as dit "tu peux mettre ton random directement dans ta commande" et "Info cétait uniquement a titre de joker , qu'il le remplace par l'identifieur qu'il veut" donc rien à voir avec ma phrase tu en conviens non?

@+
0
Rejoignez-nous