donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 25 janv. 2009 à 00:40
Bon prochaine mise à jour, il n y aura plus qu'un fichier txt, on va virer le menu *, et ajouter la possibilité de sons on input tout comme on text pour chacun des raccourcis, avec possibilité d'en mettre aucun.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 15 oct. 2008 à 18:43
"J'ai pas tout suivi"
oui c'est clair :D
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 15 oct. 2008 à 18:17
J'ai pas tout suivi, mais si tu as le choix entre un fichier texte et une hashtable, alors utilise la hashtable (que tu sauveras sur le disque en cas de nécessité).
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 15 oct. 2008 à 16:23
pk pas faire did -a $dname en meme temp hadd et une loop dans init qui te permet d'afficher les donné dans les lists :)
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 15 oct. 2008 à 13:11
Je prefere utiliser la hashtab pour sa rapidité, maintenant les fichiers txt sont pas dérangeant , sachant qu'ils ne sont la que pour faire la sauvegarde des listes, donc le script se sert de ces fichiers qu'à l'initialisation du dialog et au démarrage.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 13 oct. 2008 à 16:14
ok j'avais pas regardé le code j'avais cru en disant je remet le on start que tu devais supprimer dans init :)
mais bon bref ce qu'il manque c'est de voir comment utilisé 1 des 2, soit les fichier soit la hashtable
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 13 oct. 2008 à 12:40
bloc de commandes du on start*
donc ceux qui chargeront la remote ouvriront forcement le dialog la premiere fois.
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 13 oct. 2008 à 12:38
non pas besoin du on load vu que ya deja le meme bloque de commandes do on start dans le init du dialog, donc ceux chargerons uniqument la remote ouvririons forcement le dialog la premiere fois.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 13 oct. 2008 à 11:56
ON START ...
ok tres bien et au cas que tu vien de mettre dans la remote?? tu sera obligé de fermer mIRC si non ça marchera pas nn??
t'a raison pour le start mais il faut que tu ajoute ON LOAD aussi pour le premier pas
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 13 oct. 2008 à 01:44
vous allez me rendre fou ^^
Pour ce qui est de cet add on je remet le on start vu que ça charge pas le fichier qui contient la table sauf si on ouvre le dialog.
et pour menu je remet comme au tout debut :)
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 13 oct. 2008 à 00:14
en effet dans la version 6.32 ya pas de prob mais la 6.21 a ce probleme mais bon c'est pas un probleme grave
et merci pour l'info de "menu *"
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 oct. 2008 à 23:57
1) je n'arrive pas à te suivre ^^ (c'est pas grave, laisse tomber)
2) par contre, tu te trompes encore: "mais oui UAIP j'ai bien dis "menu *" qui est egale a "menu nicklist,channel,query,status,menubar" "
Ceci est faux.
- "menu nicklist,channel,query,status,menubar" c'est les fenêtres nicklist, channel, query, status et menubar.
- "menu *" c'est toutes les fenêtres
Faut pas mélanger, pourtant leur syntaxe est assez explicite.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 12 oct. 2008 à 15:18
"Normalement le "menu *" ne supprime pas les autres items du menu"
mais non j'ai pas dis que ça supprime tout les autres items menus mais juste le menu channel
j'ai la version 6.21
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 12 oct. 2008 à 15:07
mais oui UAIP j'ai bien dis "menu *" qui est egale a "menu nicklist,channel,query,status,menubar"
c'est pk quand j'ai vu je lui a demandé d'enlever "channel"
donc de mettre "menu nicklist,query,status,menubar"
et pour donkishock "c'est plutot dans le menu channel que c'est utile."
met donc "menu status {" rien que :)
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 oct. 2008 à 15:03
Erf, désolé de poster plusieurs messages (mais le temps qu'on en écrive un, yen a 3 qui s'affichent ^^)
Normalement le "menu *" ne supprime pas les autres items du menu.
Le problème doit venir de chez WorldDMT, ou alors de sa version mIRC. Pour ma part je n'ai jamais eu ce problème.
Je te déconseillerais même d'utiliser "menu *", je te laisse deviner pourquoi ? ^^
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 oct. 2008 à 15:02
donkishock je ne dis pas que ce n'est pas ta source ^^ je voulais te montrer à quel point ta question était bête (sans méchanceté, hein).
Et pour ne pas que ça s'affiche, alors garde ta condition, et rajoute un else, et là tu traite les cas des /notice /ame etc (en analysant le 1er token par exemple).
Et si WorldDMT tu l'as dit :
"si non c'est tjr comme "menu *" qui est egale a "menu nicklist,channel,query,status,menubar"..."
je n'ai pas rêvé.
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:58
ben moi non y a pas que mon addon c'est ce que je te dis en faisant clic droit menu, du coup j'hésite à retirer, parce que c'est plutot dans le menu channel que c'est utile.
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:55
je suis trop bête c'était trop simple
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 12 oct. 2008 à 14:54
pardon je corige ce que j'ai dis j'avais copié ta phrase direct :p
j'ai pas dis que "menu nicklist,query,status,menubar" est = a "menu *".
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 12 oct. 2008 à 14:52
lis bien ce que j'ai ecrit UAIP j'ai pas dis que "menu nicklist,query,status,menubar" n'a rien à voir avec "menu *".
donkishock je t'ai dis essaye de fair clic droite sur le chan en utilisant "menu *"
et une autre fois avec "menu nicklist,query,status,menubar"
tu verra que le menu channel n'a plus rien que ton addon
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:46
non si je retire ma condition, les commandes s'affiche sur le salon par ce que la commande en fin de script est /say %persracc .
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:40
oh si c'est moi et j'en ai chié, de toute façon je n'ai rien à prouver, mais voyant que vous avez un bon niveau j'en profites pour vous demander c'est tout; sinon j'ai déjà mon idée de refaire une boucle pour chaque commande mais ça va prendre beaucoup de place pour rien je suis sur.
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:37
sérieusement je comprend pas pourquoi ça t'efface tes autres menu channel, j'ai d'autre remote contenant un menu * et tout s'affiche chez moi, c'est étrange.
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 oct. 2008 à 14:37
WorldDMT pourquoi ne pas mettre channel ?
Tu te trompes, "menu nicklist,query,status,menubar" n'a rien à voir avec "menu *".
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 oct. 2008 à 14:36
"Auriez vous une idée pour faire en sorte que ça fonctionne sur les commandes de style /ame /notice /amsg /msg botserv... etc?
Peut être bête ce que je dis."
Oui c'est bête, ça pourrait presque dire que ce n'est pas toi qui a codé la source.
Les /ame, /notice, etc (quand c'est NOUS qui les envoyons), sont triggés par l'événement INPUT. Il suffit donc de virer ta condition "if ($left($1,1) != $chr(47))" pour qu'ils soient pris en compte.
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:32
pourquoi tu veux pas utiliser channel c'est ça que je comprend pas ?
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 12 oct. 2008 à 14:28
pour
"menu nicklist,channel,query,status,menubar {"
enleve "channel" met juste ça
menu nicklist,query,status,menubar {
si non c'est tjr comme "menu *" qui est egale a "menu nicklist,channel,query,status,menubar"
donc en gros j'ai demandé de mettre "menu nicklist,query,status,menubar" pour evité d'utiliser "channel"
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:20
Auriez vous une idée pour faire en sorte que ça fonctionne sur les commandes de style /ame /notice /amsg /msg botserv... etc?
Peut être bête ce que je dis.
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 14:16
C'est fait. Par contre je n'ai pas changer ma manière de faire la boucle, parce que la tienne m'affichais une erreur, je verrais ça demain.
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 oct. 2008 à 14:11
Ce que je voulais dire c'est que tu initialises tes htables à l'événement "start" (c'est à dire quand on démarre mIRC).
Or, étant connecté à plusieurs serveurs, je n'ai pas voulu redémarrer le script, ce qui fait que rien n'était initialisé et donc ça ne marchait pas.
... Ah, merde, je viens de lire seulement maintenant ta mise à jour "Suppression de l'évènement on start et on load. Amélioration du code."
Donc en fait oublie ce que j'ai dit ^^.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 12 oct. 2008 à 13:27
et pour
on *:DISCONNECT:/hsave -o raccs raccs.txt
ça ne sert a rien
puisque a chaque ajout ou suppression de donnée tu a hsave
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 13:26
OKI J'analyse tout ça WORLDDMT, en tout cas je te remercie de ton aide :)
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 12 oct. 2008 à 13:15
salut
"je n'ai pas mis menu nicklist etc parce que menu* n'efface pas les autres menus des autres remotes, j'ai testé et retesté"
peut etre tu m'a mal compris j'aipas dis toutes les autre mais le menu channel va disparetre fais clic droite sur le chan avec menu * et comme je t'ai demandé tu verra la differance
pour
on *:START: {
if ($hget(raccs) != raccs) {
.hmake raccs 200
}
if ($exists(raccs.txt)) {
.hload raccs raccs.txt
}
}
ça c'est mal reflechit de faire ON START met ça plutot dans init sinon ça risque des troubles
pour ce que UAIP t'a dit pour regrouper les devent si tu veux tu peux faire
on *:dialog:raccpers:*:*: {
if ($devent == init) {
loadbuf -o ...
...
...
}
elseif ($devent == sclick) {
if ($did == 1) {
if ($did(3) != $null).....
....
}
}
}
pour
did -r raccpers 5
did -r raccpers 6
tu peux faire comme ça
did -r raccpers 5,6
pour
if ($did(3) != $null) && ($did(4) != $null) && ($did(3).text !isin $didtok(5)) && ($did(4).text !isin $didtok(6)) {
did -a raccpers 5 $did(3).text
did -a raccpers 6 $did(4).text
hadd raccs $did(3) $did(4)
write courcis.txt $did(03)
write effet.txt $did(04)
did -r raccpers 3
did -r raccpers 4
inc %raccs 1
hsave -o raccs raccs.txt
}
tu laisse tombé le inc %raccs ça te sert a rien et dans ce cas tu ne l'utilise plus dans la loop dans input
tu utilise a la place $lines(courcis.txt)
donc au lieu de ça
set %rax 1
var %persracc = $1-
while (%rax <= %raccs) {
var %persracc = $reptok(%persracc,$hget(raccs,%rax).item,$hget(raccs,%rax).data,32)
inc %rax 1
}
tu pourra faire
var %i 1,%l $lines(courcis.txt),%persracc $1-
while (%i <= %l) {
var %persracc $reptok(%persracc,$hget(raccs,%rax).item,$hget(raccs,%rax).data,32),%i %i + 1
}
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 12 oct. 2008 à 12:27
Alors Yannick80 si ça écrit en double c'est que tu as déjà une remote qui fait des raccourcis.Certainement une remote contenant un on input, il faudrait que tu la décharge pour que la mienne fonctionne.
Par contre Uaip je calcule pas pourquoi avec toi ça ne fonctionne pas? Peux tu me donner plus de détails, je comprend pas très bien l'histoire des évènements load et start(ce que tu veux que je fasse).Il m'était arrivé le même soucis quand je codais cette remote, c'était du au fait qu'il y avait déjà la variable %rax et comme valeur 3 au lieu de 0.Je voudrais que cet addon fonctionne chez tous les utilisateurs de mirc, merci pour vos commentaires.
Ps: je rajoute un évènement on load afin que vous n'ayez pas à redémarrer votre script pour tester.
cs_Yannick80
Messages postés10Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention 7 décembre 2008 12 oct. 2008 à 12:05
Bonjour,
Sur mon script, dès que j'active cet add-on, il repete deux fois chacune de mes phrases.
Je suis nul en scripting et je ne sais pas d'ou cela peut provenir.
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 oct. 2008 à 03:14
Pour ce qui est des dll, tu me montreras parce-que je n'en ai jamais vu.
La source peut être bien et utile, mais personnellement ce qui me gène un peu, c'est qu'elle incite ses utilisateurs à écrire kikoolols. 'Fin bon.
Après avoir regardé en diagonale la source, le seul truc que j'aurais à te dire (et ce n'est qu'un détail) c'est de regrouper tes deux événements "dialog".
... Bon, et après coup, ça ne marche pas chez moi. Je teste avec "mdr" remplacé par "kiki" et :
[03:11:16] mdr
[03:11:17] mdr
Et en réouvrant le dialog, tout a disparu.
Pour corriger ça, l'événement "start" doit appeler le même bloc de commandes que le "load".
Bonne continuation.
donkishock
Messages postés26Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention 5 mars 2009 11 oct. 2008 à 22:14
Merci beaucoup je rectifie ça de suite, j'utilise les hashtabs parce que plus rapide, et je n'arrivais pas à afficher la liste des items et les définitions de la hashtabs dans les lists du dialog, donc j'ai opté(selon mes connaissances) pour un fichier txt pour chaque liste(raccourcis et leur effet).Je suis ouvert à toute proposistion, euh dans la mesure du raisonnable, pour ce qui est du "deja vu" je te l'accorde mais toujours trop de codes ou une dll qui accompagne le script, et je voulais quelque chose de très simple.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 11 oct. 2008 à 13:35
salut
c'est du dejà vu mais bon
pour le check tu a une methode moin compliqué
au lieu de faire
if ($did == 7) {
if ($did(9).state == 0) {
.disable #Rpers
set %autorax -u
}
if ($did(9).state == 1) {
.enable #Rpers
set %autorax -c
}
}
tu fais tout simplement
set %autorax $did(9).state
on s'en fou de la condition dans sclick ça set le state du check si le check est coché ça set %autorax 1 si non ça set %autorax 0
comme ça tu fera dans init
if (%autorax) did -c $dname 9
et dans ON INPUT tu ajoute une condition aussi ça devient
on *:input:*:{
if (%autorax) {
;dans ce cas si %autorax est 1 donc c'est ON (return true) si c'est 0 c'est OFF (return false)
commande
...
}
}
comme ça t'a plus besoin de faire un group #Rpers tu peu enlevé car la variable fait dejà le role
et je ne sais pas pourquoi utilisé les hash table puisque tu as dejà 2 fichier txt
soit tu utilise les fichiers soit la hash table si non les 2 c'est un double emploi
dans l'evenement ON INPUT la condition
if ( /* !iswm $1- ) {
moi j'ai preferé utilisé une autre
if ($left($1,1) != $chr(47)) {
et pour evité les msg d'erreur au cas qu'une personne essaye d'ouvrir 2 fois le dialog
tu peu faire
alias rac { dialog $iif($dialog(raccpers),-v,-mied raccpers) raccpers }
evite de faire menu * sinon le menu channel n'aura plus que ton "rac"
fais plutot menu status,nicklist,menubar comme ça toutes les menus resterontet "rac" s'ajoutera sans effectué aucune supression
25 janv. 2009 à 00:40
15 oct. 2008 à 18:43
oui c'est clair :D
15 oct. 2008 à 18:17
15 oct. 2008 à 16:23
15 oct. 2008 à 13:11
13 oct. 2008 à 16:14
mais bon bref ce qu'il manque c'est de voir comment utilisé 1 des 2, soit les fichier soit la hashtable
13 oct. 2008 à 12:40
donc ceux qui chargeront la remote ouvriront forcement le dialog la premiere fois.
13 oct. 2008 à 12:38
13 oct. 2008 à 11:56
ok tres bien et au cas que tu vien de mettre dans la remote?? tu sera obligé de fermer mIRC si non ça marchera pas nn??
t'a raison pour le start mais il faut que tu ajoute ON LOAD aussi pour le premier pas
13 oct. 2008 à 01:44
Pour ce qui est de cet add on je remet le on start vu que ça charge pas le fichier qui contient la table sauf si on ouvre le dialog.
et pour menu je remet comme au tout debut :)
13 oct. 2008 à 00:14
et merci pour l'info de "menu *"
12 oct. 2008 à 23:57
2) par contre, tu te trompes encore: "mais oui UAIP j'ai bien dis "menu *" qui est egale a "menu nicklist,channel,query,status,menubar" "
Ceci est faux.
- "menu nicklist,channel,query,status,menubar" c'est les fenêtres nicklist, channel, query, status et menubar.
- "menu *" c'est toutes les fenêtres
Faut pas mélanger, pourtant leur syntaxe est assez explicite.
12 oct. 2008 à 15:18
mais non j'ai pas dis que ça supprime tout les autres items menus mais juste le menu channel
j'ai la version 6.21
12 oct. 2008 à 15:07
c'est pk quand j'ai vu je lui a demandé d'enlever "channel"
donc de mettre "menu nicklist,query,status,menubar"
et pour donkishock "c'est plutot dans le menu channel que c'est utile."
met donc "menu status {" rien que :)
12 oct. 2008 à 15:03
Normalement le "menu *" ne supprime pas les autres items du menu.
Le problème doit venir de chez WorldDMT, ou alors de sa version mIRC. Pour ma part je n'ai jamais eu ce problème.
Je te déconseillerais même d'utiliser "menu *", je te laisse deviner pourquoi ? ^^
12 oct. 2008 à 15:02
Et pour ne pas que ça s'affiche, alors garde ta condition, et rajoute un else, et là tu traite les cas des /notice /ame etc (en analysant le 1er token par exemple).
Et si WorldDMT tu l'as dit :
"si non c'est tjr comme "menu *" qui est egale a "menu nicklist,channel,query,status,menubar"..."
je n'ai pas rêvé.
12 oct. 2008 à 14:58
12 oct. 2008 à 14:55
12 oct. 2008 à 14:54
j'ai pas dis que "menu nicklist,query,status,menubar" est = a "menu *".
12 oct. 2008 à 14:52
donkishock je t'ai dis essaye de fair clic droite sur le chan en utilisant "menu *"
et une autre fois avec "menu nicklist,query,status,menubar"
tu verra que le menu channel n'a plus rien que ton addon
12 oct. 2008 à 14:46
12 oct. 2008 à 14:40
12 oct. 2008 à 14:37
12 oct. 2008 à 14:37
Tu te trompes, "menu nicklist,query,status,menubar" n'a rien à voir avec "menu *".
12 oct. 2008 à 14:36
Peut être bête ce que je dis."
Oui c'est bête, ça pourrait presque dire que ce n'est pas toi qui a codé la source.
Les /ame, /notice, etc (quand c'est NOUS qui les envoyons), sont triggés par l'événement INPUT. Il suffit donc de virer ta condition "if ($left($1,1) != $chr(47))" pour qu'ils soient pris en compte.
12 oct. 2008 à 14:32
12 oct. 2008 à 14:28
"menu nicklist,channel,query,status,menubar {"
enleve "channel" met juste ça
menu nicklist,query,status,menubar {
si non c'est tjr comme "menu *" qui est egale a "menu nicklist,channel,query,status,menubar"
donc en gros j'ai demandé de mettre "menu nicklist,query,status,menubar" pour evité d'utiliser "channel"
12 oct. 2008 à 14:20
Peut être bête ce que je dis.
12 oct. 2008 à 14:16
12 oct. 2008 à 14:11
Or, étant connecté à plusieurs serveurs, je n'ai pas voulu redémarrer le script, ce qui fait que rien n'était initialisé et donc ça ne marchait pas.
... Ah, merde, je viens de lire seulement maintenant ta mise à jour "Suppression de l'évènement on start et on load. Amélioration du code."
Donc en fait oublie ce que j'ai dit ^^.
12 oct. 2008 à 13:27
on *:DISCONNECT:/hsave -o raccs raccs.txt
ça ne sert a rien
puisque a chaque ajout ou suppression de donnée tu a hsave
12 oct. 2008 à 13:26
12 oct. 2008 à 13:15
"je n'ai pas mis menu nicklist etc parce que menu* n'efface pas les autres menus des autres remotes, j'ai testé et retesté"
peut etre tu m'a mal compris j'aipas dis toutes les autre mais le menu channel va disparetre fais clic droite sur le chan avec menu * et comme je t'ai demandé tu verra la differance
pour
on *:START: {
if ($hget(raccs) != raccs) {
.hmake raccs 200
}
if ($exists(raccs.txt)) {
.hload raccs raccs.txt
}
}
ça c'est mal reflechit de faire ON START met ça plutot dans init sinon ça risque des troubles
pour ce que UAIP t'a dit pour regrouper les devent si tu veux tu peux faire
on *:dialog:raccpers:*:*: {
if ($devent == init) {
loadbuf -o ...
...
...
}
elseif ($devent == sclick) {
if ($did == 1) {
if ($did(3) != $null).....
....
}
}
}
pour
did -r raccpers 5
did -r raccpers 6
tu peux faire comme ça
did -r raccpers 5,6
pour
if ($did(3) != $null) && ($did(4) != $null) && ($did(3).text !isin $didtok(5)) && ($did(4).text !isin $didtok(6)) {
did -a raccpers 5 $did(3).text
did -a raccpers 6 $did(4).text
hadd raccs $did(3) $did(4)
write courcis.txt $did(03)
write effet.txt $did(04)
did -r raccpers 3
did -r raccpers 4
inc %raccs 1
hsave -o raccs raccs.txt
}
tu peux faire comme ça aussi
if ($did(3) != $null) && ($did(4) != $null) && ($did(3).text !isin $didtok(5)) && ($did(4).text !isin $didtok(6)) {
hadd raccs $did(3) $did(4)
write courcis.txt $did(03)
write effet.txt $did(04)
did -r raccpers 3,4,5,6
loadbuf -o raccpers 5 courcis.txt
loadbuf -o raccpers 6 effet.txt
hsave -o raccs raccs.txt
}
tu laisse tombé le inc %raccs ça te sert a rien et dans ce cas tu ne l'utilise plus dans la loop dans input
tu utilise a la place $lines(courcis.txt)
donc au lieu de ça
set %rax 1
var %persracc = $1-
while (%rax <= %raccs) {
var %persracc = $reptok(%persracc,$hget(raccs,%rax).item,$hget(raccs,%rax).data,32)
inc %rax 1
}
tu pourra faire
var %i 1,%l $lines(courcis.txt),%persracc $1-
while (%i <= %l) {
var %persracc $reptok(%persracc,$hget(raccs,%rax).item,$hget(raccs,%rax).data,32),%i %i + 1
}
12 oct. 2008 à 12:27
Par contre Uaip je calcule pas pourquoi avec toi ça ne fonctionne pas? Peux tu me donner plus de détails, je comprend pas très bien l'histoire des évènements load et start(ce que tu veux que je fasse).Il m'était arrivé le même soucis quand je codais cette remote, c'était du au fait qu'il y avait déjà la variable %rax et comme valeur 3 au lieu de 0.Je voudrais que cet addon fonctionne chez tous les utilisateurs de mirc, merci pour vos commentaires.
Ps: je rajoute un évènement on load afin que vous n'ayez pas à redémarrer votre script pour tester.
12 oct. 2008 à 12:05
Sur mon script, dès que j'active cet add-on, il repete deux fois chacune de mes phrases.
Je suis nul en scripting et je ne sais pas d'ou cela peut provenir.
12 oct. 2008 à 03:14
La source peut être bien et utile, mais personnellement ce qui me gène un peu, c'est qu'elle incite ses utilisateurs à écrire kikoolols. 'Fin bon.
Après avoir regardé en diagonale la source, le seul truc que j'aurais à te dire (et ce n'est qu'un détail) c'est de regrouper tes deux événements "dialog".
... Bon, et après coup, ça ne marche pas chez moi. Je teste avec "mdr" remplacé par "kiki" et :
[03:11:16] mdr
[03:11:17] mdr
Et en réouvrant le dialog, tout a disparu.
Pour corriger ça, l'événement "start" doit appeler le même bloc de commandes que le "load".
Bonne continuation.
11 oct. 2008 à 22:14
11 oct. 2008 à 13:35
c'est du dejà vu mais bon
pour le check tu a une methode moin compliqué
au lieu de faire
if ($did == 7) {
if ($did(9).state == 0) {
.disable #Rpers
set %autorax -u
}
if ($did(9).state == 1) {
.enable #Rpers
set %autorax -c
}
}
tu fais tout simplement
set %autorax $did(9).state
on s'en fou de la condition dans sclick ça set le state du check si le check est coché ça set %autorax 1 si non ça set %autorax 0
comme ça tu fera dans init
if (%autorax) did -c $dname 9
et dans ON INPUT tu ajoute une condition aussi ça devient
on *:input:*:{
if (%autorax) {
;dans ce cas si %autorax est 1 donc c'est ON (return true) si c'est 0 c'est OFF (return false)
commande
...
}
}
comme ça t'a plus besoin de faire un group #Rpers tu peu enlevé car la variable fait dejà le role
et je ne sais pas pourquoi utilisé les hash table puisque tu as dejà 2 fichier txt
soit tu utilise les fichiers soit la hash table si non les 2 c'est un double emploi
dans l'evenement ON INPUT la condition
if ( /* !iswm $1- ) {
moi j'ai preferé utilisé une autre
if ($left($1,1) != $chr(47)) {
et pour evité les msg d'erreur au cas qu'une personne essaye d'ouvrir 2 fois le dialog
tu peu faire
alias rac { dialog $iif($dialog(raccpers),-v,-mied raccpers) raccpers }
evite de faire menu * sinon le menu channel n'aura plus que ton "rac"
fais plutot menu status,nicklist,menubar comme ça toutes les menus resterontet "rac" s'ajoutera sans effectué aucune supression