Probleme avec mdx/dialog/grabing

hisoka2501 Messages postés 264 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 7 juillet 2009 - 30 oct. 2005 à 10:07
hisoka2501 Messages postés 264 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 7 juillet 2009 - 30 oct. 2005 à 18:09
voila g un tit soucis avec un petit bout de code:
il fait planter totalement mon mirc !!! je pensse que ca peu peut etre venir du fait que j'ai dooké une @windows dans mon dialog, mais avan ca marchais :s
(ca ne plante pas quand je ne decalre po lé setversion et markdialog sous mdx)
donc impossible de savoir d"ou vien l'erreur:

on *:dialog:WBs.cominity:*:*:{
if ($devent == init) {
if ($isalias(mdx)) && ($wdll(mdx.dll)) {
mdx SetMircVersion $version
mdx MarkDialog $dname
mdx SetControlMDX $dname 38 window > $wdll(dialog.mdx)
mdx SetControlMDX $dname 51 window > $wdll(dialog.mdx)
var %img = $readini($wcfg,comunaute,sbkg)
if ($exists(%img)) && (%img) {
mdx SetControlMDX $dname 5 ListView list single noheader > $wdll(views.mdx)
idid 5 1 setbkg url tile %img
} var %wind @wbs.comunity , %cfg $shortfn($wbsdir $+ txt\config.ini) , %font = $iif($readini(%cfg,comunaute,font),$ifmatch,Verdana)
var %top = @wbs.comunity.topic
window -hzin %top -1 -1 500 20
adid 51 grab $window(%top).hwnd %top
font %top %font
window -hzin %wind -1 -1 500 20
adid 38 grab $window(%wind).hwnd %wind
font %wind %font
font %nlist %font
odid 43 1 %font var %dll $wdll(registry.dll) , %n $dll(%dll,GetValueName, [ 0 ] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\\)
while (%n > 0) {
var %item = $gettok($dll(%dll,GetValueName, [ %n ] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\\),1,40)
adid 42 $gettok(%item,1-3,32)
dec %n
}
}
if ($exists($wbsdir $+ img\wbs-chat.jpg)) { did -g $dname 20 $wbsdir $+ img\wbs-chat.jpg } var %table wbs.cominity.data , %file $shortfn($wbsdir $+ txt\comunity.txt) , %sname = $sock(wbs.comunity.*) , %max = 500
if ($readini(%cfg,Comunaute,jp) == 1) { cdid 15 }
if ($readini(%cfg,Comunaute,crypt) == 1) { cdid 18 }
if ($readini(%cfg,Comunaute,strip) == 1) { cdid 19 }
if ($readini(%cfg,Comunaute,hl) == 1) { cdid 21 }
if ($readini(%cfg,Comunaute,ignore) == 1) { cdid 27 }
if ($readini(%cfg,Comunaute,confirm) == 1) { cdid 28 }
if ($readini(%cfg,Comunaute,beep) == 1) { cdid 35 }
if ($readini(%cfg,Comunaute,eval) == 1) { cdid 36 }
if ($readini(%cfg,Comunaute,show) == 1) { cdid 37 }
if ($readini(%cfg,Comunaute,etire) == 1) { cdid 39 }
if ($readini(%cfg,Comunaute,abkg) == 1) { cdid 40 }
if ($readini(%cfg,Comunaute,txtbg) == 1) { cdid 45 }
if ($readini(%cfg,Comunaute,topic)) { aline %top $ifmatch }
if ($readini(%cfg,Comunaute,identify)) {
odid 47 1 $gettok($ifmatch,1,32)
odid 48 1 $decode($gettok($ifmatch,2,32),t)
}
if ($readini(%cfg,Comunaute,bkg)) {
var %img = $ifmatch
if ($exists(%img)) {
odid 34 1 %img
if ($readini(%cfg,Comunaute,abkg) == 1) {
background - [ $+ [ $iif($did(39).state == 1,f,c) ] ] %wind %img
background - [ $+ [ c ] ] %nlist %img
}
}
}
if ($readini(%cfg,Comunaute,me)) { odid 30 1 $mid($ifmatch,6-) }
var %n = $ini(%cfg,Comunaute_ignore,0)
while (%n > 0) {
adid 23 $ini(%cfg,Comunaute_ignore,%n)
dec %n
}
if (%sname) {
if ($exists(%file)) { var %i 1 , %n $lines(%file) , %motd_file $shortfn($wbsdir $+ txt\motd_comunaute.txt) , %timestamp = $iif($readini(%cfg,comunaute,timestamp),$ifmatch,[HH:nn])
if ($fopen(%file)) { .fclose %file }
.fopen %file %file
while (!$feof) && (!$ferr) {
tokenize 1 $fread(%file)
if ($2) { aline -p %wind $+($chr(3),01,$time($1,%timestamp)) $2 }
}
.fclose %file
var %n = $lines(%motd_file) , %i 1
if ($fopen(%motd_file)) { .fclose %motd_file }
.fopen %motd_file %motd_file
while (!$feof) && (!$ferr) {
if ($fread(%motd_file)) { adid 11 $ifmatch }
}
.fclose %motd_file
}
}
}

( l'allias $wdll() retourne le chemin de la dll ou dun fichier )

quelqun a une idée ?
car la moi je pedale dans le boeur de cacahuete !

la mémoire ne peut etre définie mais elle definie l"humanitée (G.I.T.S)

10 réponses

cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
30 oct. 2005 à 10:43
mets un echo entre chaque cmd pr voir d'où ça vient..


-1337 connexion-
0
hisoka2501 Messages postés 264 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 7 juillet 2009
30 oct. 2005 à 11:02
impossible:
si je met un echo entre chaque commande ok c cool mais: mirc plante avan queje ne vois quoi que ce soit
je vais peu etre éssayer avec un write dans ce cas , genre

write test.txt 1
commande
write test.txt 2

mais bon jaurais aimé une autre solution car la je sais ke je suis pas rendu :(

la mémoire ne peut etre définie mais elle definie l"humanitée (G.I.T.S)
0
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
30 oct. 2005 à 11:49
mets l'echo avant la cmd, tu verras celle qui fait planter juste avant qu'elle s'exécute..


-1337 connexion-
0
hisoka2501 Messages postés 264 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 7 juillet 2009
30 oct. 2005 à 12:03
http://keikka05.free.fr/mircerror.JPG

voila l"erreur, le plus étrange c que j'ai retenté la, et ca a po tout fait planter, en revanche j'ai fermé le dialog é la BOOM !

rebelote quand j'ai tenté de deplace la fenetre du dialog :(

elseif ($devent == close) {
var %cfg = $wbsdir $+ txt\config.ini
if ($window(@wbs.comunity)) { window -c @wbs.comunity }
if ($window(@wbs.comunity.topic)) { window -c @wbs.comunity.topic }
if ($readini(%cfg,Comunaute,confirm) == 1) {
if (!$?!="Etes vous sur ?") { .timer 1 0.1 wbsopen $dname }
}
}

j'ai meme tenté de desactiver les fermeture de @windows et rien n"y fait :(

la mémoire ne peut etre définie mais elle definie l"humanitée (G.I.T.S)
0

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

Posez votre question
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
30 oct. 2005 à 12:37
qd ça part en erreur comme ça, c'est pas qu'il y a un overflow ou un truc du genre?

je vois pas trop comme ça, ce qui fait planter mIRC.. essayes avec un autre mirc.exe pr voir au cas ou..


-1337 connexion-
0
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
30 oct. 2005 à 12:37
Le problème n'existe pas lorsque tu ne fais pas de makdialog ou de setversion... c'est à dire quand tu n'utilises pas mdx...

Ca vient donc surement d'une mauvaise commande mdx, qui entraine un bug.

C'est impossible pour nous de te dire d'où vient exactement l'erreur...
sauf si quelqu'un voit une faute réelle dans le code, mais bon... ça
peut très bien venir d un alias que tu utilises et que nous ne voyons
pas etc...

Si ça te gène pas, mets un liens avec tout ton code, pour que l'on
puisse nous aussi ouvrir le dialog et faire nos propres tests :)
--------------------------------
Signature des parents :
0
hisoka2501 Messages postés 264 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 7 juillet 2009
30 oct. 2005 à 13:00
dac, ca me gene pas mais je previen: le fichier fait + de 700 lignes de code et pour fonctioner il utilise mon addon (normal car il en forme une section)

l'addon fait 8700 lignes ( le principal )
quand aux aliases (que j'ai séparé de l'addon principal (je savais ke javais bien fait !)) elle fon a peu pres 500 lignes

pour le moment je me suis tournée vers une solution alternative: (dcx.dll)
http://dcx.scriptsdb.org/

j'ai aussis trouvé le probleme je crois ( mais j'en suis pas sur )
l"erreur vien du fait que OK je doock corectement la @window mais lorsque je la ferme: mdx ou meme dcx la croi encor dooké et fait planter le tout comme un malpropre: ce qu'il faut ke je fasse donc je pensse c'est de trouver une fonction pour dire a la dll de undooker la @windows PUIS ensuite je pourais fermer cette denriere

pour les courageux qui voudrais tester tout de meme: www.wbsscript.free.fr
la version actuele est la 1.27c

le fichier daliases se trouve dans le dossier aliases et celui ou le probmeme se trouve est dans /aliases/comunity.mrc

voila pour que le tout fonctione il faut tout de meme lancer wbs.mrc (et ce en premier)
sinon ca marchera pas car il y a tout de meme quelques aliases dans ce dernier que je n'ai pas déplacé dans aliases.mrc

la mémoire ne peut etre définie mais elle definie l"humanitée (G.I.T.S)
0
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
30 oct. 2005 à 15:51
Euh oui j'ai testé dcx un peu, je suis en train de refaire mon add-on avec aussi :)

Il y a en effet un bug(moi j'ai dock un dialog dans un dialog) qui fait
que lorsque l'on ferme tout, ça laisse le dock ouvert, mais invisible.

La solution que j'ai trouvé est de faire timer 1 0.01 dialog -x dialog dialog

donc pareil avec ta window :) ça devrait marcher.

Ca dans l'alias appelé par dcx(dcx_call dans l'exemple)

Le timer semble inutil, mais si tu ne le mets pas, ça ne marche pas :).



Je vais regarder ton dialog :) en espérant trouver le problème ^^


---------------------------------
Signature des parents :
0
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
30 oct. 2005 à 16:52
Je viens de tester l'addon, enfin juste le dialog en question...

Et je n'ai pas eu de problèmes :D !

Juste à mettre une bonne police et style d'écriture...

Et je suis obligé de faire

window -x @wbs.comunity

window -x @wbs.comunity.topic

pour les afficher... sinon bah ça marche, je suis connecté au serveur, sur le channel #WBS.

J'ai juste un léger freeze au lancement du dialog.



Désolé :/


------------------------------
Signature des parents :
0
hisoka2501 Messages postés 264 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 7 juillet 2009
30 oct. 2005 à 18:09
erff :/
alors la je pige po pk ca marche po :/
ca plante chez mwa et po chez les autres, serais-je maudit ?

la mémoire ne peut etre définie mais elle definie l"humanitée (G.I.T.S)
0
Rejoignez-nous