RACCOURCIS PERSONNELS

WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 - 11 oct. 2008 à 13:35
donkishock Messages postés 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Dernière intervention 5 mars 2009 - 25 janv. 2009 à 00:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48167-raccourcis-personnels

donkishock Messages postés 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 oct. 2008 à 18:43
"J'ai pas tout suivi"

oui c'est clair :D
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Dernière intervention 5 mars 2009
12 oct. 2008 à 14:55
je suis trop bête c'était trop simple
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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 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
}
donkishock Messages postés 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 10 Date d'inscription dimanche 12 janvier 2003 Statut Membre Derniè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és 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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és 26 Date d'inscription lundi 11 septembre 2006 Statut Membre Derniè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és 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
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
Rejoignez-nous