Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007
-
19 juin 2005 à 11:47
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 2009
-
19 juin 2005 à 22:13
Bonjour à tous,
Voilà, j'ai fait quelques tests pour un addon perso, et je suis tombé sur un ptit bug .
En effet, j'ai automatisé quelques commandes dès mon arrivée sur un
channel; hélàs, si la fenêtre du chan n'est pas active, ça ne
fonctionne pas du tout
var %channel $readini($scriptdirultra.ini,ultra,6)
var %text $readini($scriptdirultra.ini,ultra,5)
if ($1 == %channel) {
If (Arkadia-quizz ison $1) mode $1 +h Arkadia-quizz
If (Aks_Quizz_[b0T] ison $1) mode $1 +h Aks_Quizz_[b0T]
If (evil| ison $1) mode $1 +v evil|
If (Kaname-chan ison $1) mode $1 +h Kaname-chan
If (Stats ison $1) mode $1 +h Stats
If ($3 == $2) msg %channel %text
}
}
<hr size="2" width="100%">Pour information, la partie 6 du fichier ini
correspond au channel (aussi à %channel) où je veux faire les commandes
et la partie 5 à une phrase "d'entrée" (aussi à %text). J'ai fait en
alias, car sinon je ne peux pas mettre de timer et donc, le script fait
ses commandes avant que j'ai l'accès à mes droits d'opérateur; j'ai
aussi utilisé "ison" pour ne pas renvoyer d'erreur quand les personnes
ne sont pas là.
1/ Comment résoudre ce petit problème ? A mon avis, il faudrais changer ceci " if ($1 %channel)" , mais je ne sais pas par quoi le remplacer \
2/ L'accèss à une partie d'un fichier ini en utilisant $readini() est-
il beaucoup plus lent que l'utilisation d'une variable %x ?
3/ Avec un dialogue ouvert, si je change de channel et que je met le
mode +v à quelqu'un, ça renvoie une erreur car le dialogue à gardé le
nom de "l'ancien" channel, alors que j'utilise l'identifieur $active
(avec $chan, c'est pareil); si je réouvre le dialogue sur le
"nouveau" channel, ça fonctionne: comment résoudre ce petit bug ?
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007 19 juin 2005 à 12:18
@Tofu:
Hum... oui, ça marche!
Mais, pour tout te dire, je ne l'aurai pas cru (non pas que tu donne des mauvais conseils hein, au contraire ^^) car le me de On me*:Join:*:{ signifiais
pour moi que: si quelqu'un d'autre viens, le reste du code ne
marcherais pas, car le "me" impliquais forcément que ca ne prenne pas
en compte la venue d'un autre user sur le chan ^^. Merci beaucoup ! bug
fixé
Des solutions pour les questions 2 et 3 ?
ps: je mettrais ta réponse et les autres en "accepté" quand j'aurais tout réglé
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007 19 juin 2005 à 12:42
@MaX_62:
Wow, merci encore une réponse très rapide
Donc, pour la 2 c'est noté
Pour la 3:
Ah, oui... évidement (désolé d'avoir oublié :s):
partie dialog:
radio "Stats", 44, 73 39 22 10, tab 24
radio "Server", 42, 73 30 27 10, tab 24
radio "Mode", 43, 41 57 24 10, tab 24
radio "Kick/Ban", 55, 41 48 31 10, tab 24
radio "Kick", 56, 41 39 22 10, tab 24
radio "IrcOp", 40, 41 30 25 10, tab 24
button "Go", 46, 77 61 21 9, tab 24
partie events:
if ($did == 43) set %option 16
if ($did == 55) set %option 32
if ($did == 56) set %option 31
if $did == 46 {
if (%option == 16) { mode $active $$?"Parametre:" $$?"Nick:" }
if (%option == 31) kick $active $$?"Nick:"
if (%option == 32) { var %banusr $$?"Nick:" | mode $active
+bb $address(%banusr,1) $address(%banusr,2) | kick $active %banusr }
}
Donc, hum, voilà, on sélectionne un radio, on fait Go quand on est prêt
et hop ca fait une action. Le code est un peu long pour ça, je vous
l'accorde, mais j'ai trouvé que ça =\. Alors, des idées ?
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007 19 juin 2005 à 19:29
Hello,
Euh, j'me suis trompé =\
En fait, le bout de code ci-dessus marche, le $active aussi ^^
C'est ici que ça ne marche pas comme je le voudrais:
dialog new {
title "test"
size -1 -1 81 43
option dbu
radio "1", 1, 2 3 16 10
radio "2", 2, 2 12 18 10
radio "3", 3, 2 22 19 10
button "Button", 4, 48 27 20 10
button "join", 5, 34 4 24 10
}
on *:DIALOG:new:*:*:{
if $devent == sclick {
if ($did == 1) set %option 1
if ($did == 2) set %option 2
if ($did == 3) set %option 3
if $did == 4 {
if (%option == 1) { mode $active $$?"Parametre:" $$?"Nick:" }
if (%option == 2) kick $active $$?"Nick:"
if (%option == 3) { var %banusr $$?"Nick:" | mode $active
+bb $address(%banusr,1) $address(%banusr,2) | kick $active %banusr }
}
if $did == 5 { join #chantest }
}
}
Donc voilà: je suis connecté au server 1 et au server 2 en meme temps,
j'ouvre mon dialogue sur le server 1, je vais sur le server 2 et
j'appuie sur le boutton avec l'ID 5 (nommé 'join') et là, ca me
connecte au chan sur le server 1 ,
alors que la fenêtre du server 2 était active. D'après la logique du
scripting, cette programmation n'est qu'une façon 'automatisée' de
faire une action (ici, join #chantest), donc, si je tapais '/join
#chantest' sur le server 2, j'y serai connecté dans les plus brefs
délais
Soit je n'ais pas compris une notion sur l'utilsation de ce boutton, ce
qui est fort probable (c'est pour celà que je fais appel à vous ^^),
soit il y a un bug quelque part
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007 19 juin 2005 à 20:43
@Fjxokt:
Ce que je voulais comprendre, c'est pourquoi le dialog ne sait pas sur quel server je suis ?
D'après ce que j'ai cru comprendre sur ce la fonction, bref l'identifieur scid retourne
l'id de connection: 1 pour le premier server auquel je suis connecté, 2
pour le deuxième...etc... Mais commence puis -je exploiter celà ?
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007 19 juin 2005 à 21:00
@MaX_62:
Ca marche à la perfection ! Merci beaucoup, parce que je n'avais
vraiment pas du tout compris le paragraphe sur la commande (et pas
l'identifieur scid)
Bref, j'ai un peu de mal à comprendre la totalité de cette commande, mais à force de tester et de l'utiliser, ca devrais aller
/scid <-rsatM | N> [command]
Changes la
connexion active d'un script pour l'id de connexion N, où N est une valeur $cid.
Toutes les commandes exécutées après la commande /scid seront faites sur
le nouvel id de connexion.
L'option -r remets l'id de connexion à
la valeur originale pour ce script.
Si vous spécifiez un paramètre de
commande, l'id de connexion est fixé seulement pour cette commande....
Tout mes problèmes sont résoluts ! Merci à la communauté d'iRcFR !
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 19 juin 2005 à 22:13
de rien, ça devient assez rare les gens qui cherchent vrment avant de
venir nous poser des questions, donc qd on peut vraiment aider
quelqu'un c'est avec plaisir ;)
-1337 connexion-