Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ARKATOOL (MENU INTERACTIF DU STYLE LECTEUR MP3)


Information sur la source

Catégorie :AddOns Classé sous : menu, picwin, outil, interactif, personnalisation Niveau : Initié Date de création : 02/03/2007 Date de mise à jour : 05/03/2007 02:36:23 Vu / téléchargé: 2 774 / 34

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Voici un code plutôt original, puisqu'il présente un menu d'une façon peu ordinaire, jugez-en par le screenshot.
Ca ressemble pas mal à un certain lecteur MP3 dont je ne dirai pas de nom pour pas faire de pub (et ouais, je préfère la compagnie française Archos :D)

Le but était à la base de gagner du temps en s'organisant, et de présenter un menu plus joli que celui de mIRC.
L'utilisation est très intuitive, il suffit de décrire des cercles sur le disque pour sélectionner un autre item du menu, puis de cliquer.

Ce menu peut-être entièrement personnalisé (j'entends donc par vous) et cela très facilement.
Il suffit dans vos remotes de mettre les balises (AkT Begin, AkT End) sur deux lignes différentes, dans l'ordre et de caser votre menu entre les deux). Le reste (les .) est identique aux menus de mIRC (mis à part que je n'utilise pas les $chr(9))
Par exemple, cela pourrait donner :
AkT Begin
Sites
.IRCfr:url -n www.ircfr.com
.Google:url -n www.google.com
.-
.Mes favoris
..Mon favoris 1:url -n ...
(etc)
Quitter mIRC:exit -n
AkT End

D'autres exemples sont donnés dans le code lui-même. Vous pouvez également regarder le début du code, un menu y est déclaré (je déconseille au passage de le modifier).
Le texte de la liste défile lorsqu'il est trop long, de même avec le titre du dossier.

Des petites animations d'ouverture sont au rendez-vous :)

L'exécution est assez rapide, mis à part le lancement de la PicWin (/AkT), car j'utilise des /filter sur tous les remotes chargés pour fabriquer le menu.


Vous pouvez changer la résolution du disque (càd le nombre de parties de disque), mais aussi l'ajout de lignes noires qui délimitent les parties.
Une autre chose, assez importante, est la possibilité de changer ENTIEREMENT toutes les couleurs. Pour cela, rendez-vous dans le menu réglages, changer les couleurs, ...
Pour augmenter/diminuer la valeur d'une couleur, il suffit de rester appuyé sur le clic gauche tout en décrivant des cercles.
D'autres tips sont donnés dans la rubrique Informations, comme par exemple l'utilité du clic droit)

Je pense que ce code vaut la peine d'être testé :)
J'ai pas dit qu'il était très utile, d'ailleurs je le pense pas, c'était surtout pour m'améliorer et pourquoi pas pour l'utiliser plus tard. J'aurai aussi vraiment besoin de vos impressions pour l'améliorer.

Il crée un fichier AkT.ini et AkT.data dans votre dossier mIRC. Tapez /akt.remove ou allez dans Réglages pour effacer le premier, le second s'efface lors de la fermeture de la PicWin.
 

Source

  • ;*****************
  • ; ArKaTool
  • ; By ArKanis
  • ; www.arkanis.eu
  • ;*****************
  • ;Version 1.2
  • ;Ne pas changer le nom du fichier en cours d'utilisation !
  • ;Ne pas placer le menu dans un .ini (car il y aura des n*=...)
  • /*
  • AkT Begin
  • Sites
  • .Site principal:url -n www.arkanis.eu
  • .Consulter l'aide d'ArKanis:url -n www.arkanis.eu/aide/
  • .Déposer un bout de code:url -n www.arkanis.eu/codes
  • .Télécharger un code:url -n www.arkanis.eu/little
  • Informations
  • .Notice d'utilisation de l'ArKaTool
  • ..Faites tourner la roulette en décrivant des cercles autour du centre:noop
  • ..Cliquez sur le rectangle du milieu pour revenir au dossier parent:noop
  • ..Le classement peut-être fait soit par fichier (dans un dossier du nom du remote) ou directement à la racine:noop
  • ..Un clic droit vous fera revenir au dossier Parent ou fermera la fenêtre si vous êtes à la racine et annulera vos derniers changements:noop
  • ..Dans le menu choix d'une couleur, une fois la couleur que vous voulez changer sélectionnée, cliquez et restez appuyé avec le bouton gauche de la souris, puis faites tourner le disque, relachez et cliquez ailleurs pour valider:noop
  • ..-
  • ..Pour faire votre propre menu, editez un remote, et insérez votre menu entre "AkT Begin" et "AkT End" sous la même forme que les menus de mIRC (cliquez pour un exemple):AkT.exemple
  • .Crédits
  • ..Codé par ArKanis:noop
  • ..Merci à Jordane, Panthouffle et à Wims pour leur test:noop
  • ..12Visitez mon site:url -n www.arkanis.eu
  • Réglages
  • .Résolution du disque:AkT.resol
  • .Lignes noires
  • ..$+($iif($readini(AkT.ini,Config,Lignes),),Afficher):AkT.ligne 1
  • ..$+($iif(!$readini(AkT.ini,Config,Lignes),),Cacher):AkT.ligne 0
  • .Changer les couleurs
  • ..Arrière-plan:akt.color 1
  • ..Cercle
  • ...Sélection:akt.color 2
  • ...Arrière-plan:akt.color 3
  • ..Rectangle central
  • ...Sélection:akt.color 4
  • ...Arrière-plan:akt.color 5
  • ..Liste
  • ...Texte des actions:akt.color 6
  • ...Texte des dossiers:akt.color 7
  • ...Sélection:akt.color 8
  • ...Arrière-plan:akt.color 9
  • ..Titre
  • ...Texte:akt.color 10
  • ...Arrière-plan:akt.color 11
  • .Appliquer les changements
  • ..Appliquer:AkT.apply
  • ..Appliquer automatiquement après un changement
  • ...$+($iif($readini(AkT.ini,Config,Apply),),Oui) :writeini -n AkT.ini Config Apply 1
  • ...$+($iif(!$readini(AkT.ini,Config,Apply),),Non) :writeini -n AkT.ini Config Apply 0
  • .-
  • .Classement
  • ..$+($iif($readini(AkT.ini,Config,Files),),Classer par fichier) :writeini -n AkT.ini Config Files 1
  • ..$+($iif(!$readini(AkT.ini,Config,Files),),Classer par ordre d'apparition) :writeini -n AkT.ini Config Files 0
  • .Effacer les données:AkT.remove
  • AkT End
  • */
  • alias akt {
  • if ($window(@AkT)) window -c @AkT
  • if ($hget(AkT)) hfree AkT
  • window -aBCdg0Hk0opR +dL @AkT 0 0 400 204
  • var %s = $readini(AkT.ini,Config,Lignes)
  • hadd -m AkT Parent AkT
  • $+($iif(!%s,.),AkT.draw)
  • hadd -m AkT Ticks $ticks
  • hadd -m AkT Pos 1
  • var %aj, %m = $hget(AkT,Div)
  • if ($readini(AkT.ini,Config,Files)) var %aj = 1
  • var %fn = $script, %i = 1, %h, %n = $script, %f = AkT.data, %x = temp-AkT.txt, %a = $script(0)
  • .remove %f
  • while %i <= %a {
  • var %w = $script(%i), %l, %q
  • if ((%w != $script) && ($read(%w,w,*AkT Begin*))) AkT.filter %w
  • inc %i
  • }
  • AkT.filter $script
  • filter -cgcff %f %x [0-9]+ [^\.]
  • var %i = 1, %l = $lines(%f)
  • while %i <= %l {
  • var %e = $regsubex($read(%f,n,%i),^([0-9]+) (n[0-9]+=)?,$+(\1,$chr(32))), %r = %i $+($iif(%aj && !$regex(%e,^0 .*),.),$gettok(%e,2-,32))
  • if ($regex(%r,^[0-9]+ [^\.]+.*)) hadd -m AkT Liste $instok($hget(AkT,Liste),%r,0,59)
  • write $+(-l,%i) %f %r
  • inc %i
  • }
  • hadd -m AkT Dir 0
  • .remove temp-AkT.txt
  • hadd -m AkT Racine $hget(AkT,Liste)
  • $+($iif(!%s,.),AkT.anim1) 0 %m $2
  • drawdot @AkT
  • }
  • alias -l AkT.filter {
  • if (!$1-) return
  • var %f = AkT.data, %x = temp-AkT.txt
  • filter -cgffn $qt($1-) %x .+
  • if ($gettok($read(%x,nr,^[0-9]+ (n[0-9]+=)?AkT Begin),1,32)) var %l = $calc($ifmatch +1)
  • if ($gettok($read(%x,nr,^[0-9]+ (n[0-9]+=)?AkT End),1,32)) %q = $calc($ifmatch -1)
  • if ((%l isnum 1-) && (%q isnum 2-) && (%l <= %q)) {
  • if ($readini(AkT.ini,Config,Files)) write %f 0 $nopath($noext($1-))
  • filter -gffnr $+(%l,-,%q) $qt($1-) %f .+
  • }
  • }
  • alias -l AkT.draw {
  • var %m = $readini(AkT.ini,Config,Résolution), %s = $show
  • if (!%m) var %m = 20
  • elseif (%m !isnum 4-) var %m = 4
  • hadd -m AkT Div %m
  • if ($readini(AkT.ini,Config,Colors)) hadd -m AkT Color $ifmatch
  • else {
  • hadd -m AkT Color 16773360 15098980 16745090 16759225 16765650 0 13107200 16763080 16777215 0 15369854
  • writeini -n AkT.ini Config Colors $hget(AkT,Color)
  • }
  • drawrect -nrfd @AkT $akt.col(1) 1 0 0 400 204 30 30
  • if ($window(@AkTCopy)) window -c @AkTCopy
  • drawrect -nrd @AkT 0 1 0 0 400 204 30 30
  • drawtext -nr @AkT 7237230 Tahoma 12 328 188 By ArKanis
  • AkT.parents $gettok($hget(AkT,Parent),-1,59)
  • drawrect -nrfe @AkT $akt.col(3) 1 2 2 200 200
  • ;drawrect -nre @AkT $iif(%s,0,$calc($akt.col(2) -1)) 1 2 2 200 200
  • drawdot @AkT
  • if ($1 == anim) {
  • hadd -m AkT Ticks $ticks
  • $+($iif(!%s,.),AkT.anim1) 0 %m
  • }
  • }
  • alias -l AkT.anim1 {
  • if (!$window(@AkT)) return
  • var %s = $show, %m = $2, %c = $calc(2 / %m),%t = $calc(($ticks - $hget(AkT,Ticks)) * 0.0005 * %m + $1), %k = $akt.col(3)
  • if ($1 == 0) {
  • if ($hget(AkT,Last)) hdel AkT Last
  • drawrect -nrfe @AkT $akt.col(3) 1 2 2 200 200
  • drawrect -nre @AkT $iif(%s,0,$calc(%k -1)) 1 2 2 200 200
  • if ($window(@AkTCopy)) window -c @AkTCopy
  • window -BCdhg0k0npR +dL @AkTCopy 0 0 400 200
  • drawcopy -nr @AkT 0 0 400 200 @AkTCopy 0 0
  • var %g = $1-, %v = 1, %b = 1, %n = 1
  • tokenize 44 $rgb(%k)
  • if ($1 > 128) var %v = -1
  • if ($2 > 128) var %b = -1
  • if ($3 > 128) var %n = -1
  • hadd -m AkT AnimDir %v %b %n
  • tokenize 32 %g
  • }
  • var %co = 0
  • if (%s) drawcopy -nr @AkTCopy 0 0 400 200 @AkT 0 0
  • else {
  • if ($gettok($rgb(%k),1,44)) var %co = $calc(%k -1)
  • else var %co = $calc(%k +1)
  • }
  • var %n = $hget(AkT,AnimDir)
  • if (($int(%t) != $int($1)) || ($1 == 0)) {
  • var %a = $int($1)
  • while %a <= $int(%t) {
  • if ($int(%a) > %m) break
  • var %r = $calc($int(%a) * %c * $pi)
  • drawline -nr @AkT %co 1 102 102 $calc($cos(%r) *100 +102) $calc($sin(%r) *100 +102)
  • if (!%s) {
  • var %o = %a, %j = 5
  • while ((%o) && (%j) && ($2 > 6)) {
  • var %couleur = $calc($floor($calc($gettok(%n,1,32) *4* %j + $gettok($rgb(%k),1,44))) + $floor($calc($gettok(%n,2,32) *4* %j + $gettok($rgb(%k),2,44))) *256 + $floor($calc($gettok(%n,3,32) *4* %j + $gettok($rgb(%k),3,44))) *256^2)
  • if (%o <= $calc(%m /2)) var %g = $calc((-1) * %o)
  • else var %g = $calc(%m - %o)
  • if (%j > 1) drawfill -nr @AkT %couleur %co $akt.ang(%g,%m)
  • else drawfill -nr @AkT %k %co $akt.ang(%g,%m)
  • dec %o
  • dec %j
  • }
  • }
  • else drawcopy -nr @AkT 0 0 300 200 @AkTCopy 0 0
  • drawdot @AkT
  • inc %a
  • }
  • }
  • if (%t >= %m) {
  • if ((!%s) && ($2 > 6) && (($calc($hget(AkT,Last) - %m) <= 6) || (!$hget(AkT,Last)))) {
  • hadd -m AkT Last $int(%t)
  • var %a = $int($1)
  • while %a <= $int(%t) {
  • var %g = $calc(%m - (%a -4))
  • drawfill -nr @AkT %k %co $akt.ang(%g,%m)
  • inc %a
  • }
  • }
  • if (($int($1) > $calc(%m + 7)) || (%s) || ($2 <= 6)) {
  • hadd -m AkT Ticks $ticks
  • AkT.anim2 0 $3
  • return
  • }
  • }
  • var %r = $calc(%t * %c * $pi)
  • if (%s) drawline -nr @AkT 0 1 102 102 $calc($cos(%r) *100 +102) $calc($sin(%r) *100 +102)
  • drawdot @AkT
  • hadd -m AkT Ticks $ticks
  • .timerakt -m 1 1 $+($iif(!%s,.),AkT.anim1) %t %m $3
  • }
  • alias -l AkT.anim2 {
  • if ($2) {
  • if ($hget(AkT,Ticks)) hdel AkT Ticks
  • AkT.drawliste 1
  • drawdot @AkT
  • return
  • }
  • var %t = $calc(($ticks - $hget(AkT,Ticks)) * 0.05 + $1)
  • if (%t >= 20) var %t = 20
  • drawrect -dnrf @AkT $akt.col(4) 1 $calc(102 - $int(%t) * 5/4) $calc(102- $int(%t) /2) $calc($int(%t) *5/2) $int(%t) 20 20
  • drawrect -dnr @AkT 0 1 $calc(102 - $int(%t) * 5/4) $calc(102- $int(%t) /2) $calc($int(%t) *5/2) $int(%t) 20 20
  • drawdot @AkT
  • if (%t >= 20) {
  • hdel AkT Ticks
  • AkT.drawliste 1
  • drawdot @AkT
  • return
  • }
  • hadd -m AkT Ticks $ticks
  • .timer -m 1 1 AkT.anim2 %t
  • }
  • ;****
  • ;Load
  • ;****
  • on *:load:{
  • echo 2 -a * Code ArKaTool correctement chargé. Tapez /AkT pour commencer.
  • echo 2 -a * Merci d'avoir installé ce code, j'espère qu'il vous plaira
  • echo 2 -a * ArKanis - www.arkanis.eu
  • }
  • ;*************
  • ;Menu & events
  • ;*************
  • menu status,channel,query {
  • ArKaTool:akt
  • }
  • menu @AkT {
  • leave:{
  • AkT.back
  • drawdot @AkT
  • }
  • mouse:AkT.mouse $mouse.x $mouse.y
  • sclick:AkT.sclick $mouse.x $mouse.y
  • dclick:AkT.sclick $mouse.x $mouse.y
  • rclick:.AkT.sclick parent
  • }
  • alias -l AkT.close {
  • .timerAkT.balayage off
  • .timerAkT.move off
  • if ($window(@AkT.balayage)) window -c $ifmatch
  • if ($window(@AkT)) window -c @AkT
  • if ($hget(AkT)) hfree AkT
  • if ($exists(AkT.data)) .remove AkT.data
  • }
  • alias -l AkT.ang {
  • if (($1 !isnum) || ($2 !isnum)) return
  • var %m = $calc(360* $1 / $2 + 360/(2* $2))
  • return $calc(102+ $cos(%m).deg *95) $calc(102+ $sin(%m).deg *(-95))
  • }
  • alias -l AkT.mouse {
  • if ($hget(AkT,Ticks)) return
  • var %c = $getdot(@AkT,$1,$2), %d = $hget(AkT,Div)
  • if ($inroundrect($1,$2,77,92,50,20,20,20)) {
  • if ($hget(AkT,Temp) == Rect) return
  • AkT.back
  • if ($hget(AkT,Old)) hdel AkT Old
  • hadd -m AkT Flash %c $akt.col(5) 102 102
  • hadd -m AkT Temp Rect
  • drawfill -snr @AkT $akt.col(5) %c 102 102
  • drawdot @AkT
  • }
  • elseif ($calc(($1 -102)^2 + ($2 -102)^2) < 10000) {
  • var %o = $hget(AkT,Old), %x = $calc(($1 - 102)/100), %y = $calc(($2 - 102)/100)
  • var %m = $calc((%x ^2 + %y ^2)^(1/2)), %n = $hget(AkT,Pos), %t = $floor($calc($acos($calc(%x / %m)).deg *(-1)* $sgn(%y) / 360 * %d))
  • if ((%t == 0) && ($calc($1 - 102) < 0)) var %t = $floor($calc(%d / 2))
  • var %mo = $AkT.ang(%t,%d), %di = $calc(%o - %t)
  • if ($abs(%di) == $calc(%d -1)) var %di = $sgn(%t)
  • if (%o == $null) var %di = 0
  • var %m = $numtok($hget(AkT,Liste),59), %a = $hget(AkT,Pos)
  • if ($calc(%d - $abs(%di)) < $calc(2 * %d / 3)) var %di = $calc((-1)* $sgn(%di) * (%d - $abs(%di)))
  • inc %a %di
  • if (%a < 1) var %a = 1
  • if (%a > %m) var %a = %m
  • hadd -m AkT Old %t
  • hadd -m AkT Pos %a
  • AkT.back
  • var %c1 = $rgb($akt.col(2)), %c2 = $rgb($akt.col(3)), %m1 = $AkT.ang($calc(%t -1),%d), %m2 = $AkT.ang($calc(%t +1),%d)
  • var %cn = $rgb($calc(($gettok(%c1,1,44) + $gettok(%c2,1,44))/2),$calc(($gettok(%c1,2,44) + $gettok(%c2,2,44))/2),$calc(($gettok(%c1,3,44) + $gettok(%c2,3,44))/2)))
  • AkT.df $akt.col(3) $akt.col(2) %mo %cn %m1 %cn %m2
  • if (($hget(AkT,Pause)) && ($gettok($hget(AkT,Parent),-1,59) == Résolution)) {
  • hinc AkT Resol %di
  • if ($hget(AkT,Resol) < 4) hadd -m AkT Resol 4
  • elseif ($hget(AkT,Resol) > 200) hadd -m AkT Resol 200
  • AkT.showresol $hget(AkT,Resol)
  • }
  • elseif (($hget(AkT,Pause)) && ($hget(AkT,Col))) {
  • tokenize 32 $hget(AkT,Col)
  • if ($mouse.key & 1) {
  • var %co = $calc($gettok($3-,$2,32) + %di)
  • if (%co > 255) var %co = 255
  • elseif (%co < 0) var %co = 0
  • AkT.showcolor $1-2 $puttok($3-,%co,$2,32)
  • }
  • else {
  • var %b = $calc($2 + %di)
  • if (%b < 1) var %b = 1
  • elseif (%b > 3) var %b = 3
  • }
  • AkT.showcolor $1 %b $3-
  • }
  • elseif (%n != %a) AkT.liste %a
  • drawdot @AkT
  • }
  • elseif (%c == $akt.col(1)) {
  • AkT.back
  • if ($hget(AkT,Old) != $null) hdel AkT Old
  • drawdot @AkT
  • }
  • }
  • alias -l AkT.sclick {
  • if ($hget(AkT,Ticks)) return
  • var %c = $getdot(@AkT,$1,$2)
  • if (($hget(AkT,Pause)) && ($show) && ($1 != parent)) {
  • if ($gettok($hget(AkT,Parent),-1,59) == Résolution) writeini -n AkT.ini Config Résolution $hget(AkT,Resol)
  • elseif ($gettok($hget(AkT,Parent),-1,59) == Couleur) {
  • if (($calc(($1 -102)^2 + ($2 -102)^2) < 10000) && (!$inroundrect($1,$2,77,92,50,20,20,20))) return
  • tokenize 32 $hget(AkT,Col)
  • writeini -n AkT.ini Config Colors $puttok($readini(AkT.ini,Config,Colors),$rgb($3,$4,$5),$1,32)
  • }
  • hdel AkT Pause
  • if ($hget(AkT,Resol)) hdel AkT Resol
  • hadd -m AkT Parent $deltok($hget(AkT,Parent),-1,59)
  • hadd -m AkT Dir $deltok($hget(AkT,Dir),-1,59)
  • if ($readini(AkT.ini,Config,Apply)) AkT.apply anim
  • else AkT.parents $gettok($hget(AkT,Parent),-1,59)
  • AkT.explore $hget(AkT,Dir)
  • drawdot @AkT
  • }
  • elseif (($inroundrect($1,$2,77,92,50,20,20,20)) || ($1 == parent)) {
  • if ($hget(AkT,Pause)) hdel AkT Pause
  • if ($hget(AkT,Parent) == AkT) AkT.close
  • else {
  • hadd -m AkT Parent $deltok($hget(AkT,Parent),-1,59)
  • hadd -m AkT Dir $deltok($hget(AkT,Dir),-1,59)
  • akt.explore $hget(AkT,Dir)
  • drawdot @AkT
  • }
  • }
  • elseif ($calc(($1 -102)^2 + ($2 -102)^2) < 10000) {
  • var %a = $gettok($hget(AkT,Liste),$hget(AkT,Pos),59), %l = $gettok(%a,1,32), %a = $regsubex($gettok(%a,2-,32),^\.*,)
  • if ((!%a) || (!%l)) return
  • hadd -m AkT $hget(AkT,Dir) $hget(AkT,Pos) $hget(AkT,First)
  • if ($regex(%a,:([^:]+)$)) {
  • var %i = 1, %l = $numtok($regml(1),124)
  • while %i <= %l {
  • $eval($gettok($regml(1),%i,124),2)
  • inc %i
  • }
  • if ($window(@AkT)) window -a @AkT
  • }
  • elseif (%a != -) {
  • hadd -m AkT $hget(AkT,Dir) $hget(AkT,Pos) $hget(AkT,First)
  • hadd -m AkT Parent $+($hget(AkT,Parent),;,%a)
  • hadd -m AkT Dir $+($hget(AkT,Dir),;,%l)
  • }
  • AkT.explore $hget(AkT,Dir)
  • drawdot @AkT
  • }
  • elseif (%c == $akt.col(1)) AkT.move $1-2
  • }
  • alias -l AkT.explore {
  • var %a = $gettok($hget(AkT,Parent),-1,59), %p = $1-, %f = AkT.data
  • if (%p == 0) hadd -m AkT Liste $hget(AkT,Racine)
  • else {
  • if ((!%a) || (!%p)) return
  • if ($hget(AkT,Liste)) hdel AkT Liste
  • filter -cffgn %f temp-AkT.txt .+
  • var %r = $read(%f,nw,$gettok($1-,-1,59) *), %l = $gettok($read(temp-AkT.txt,nw,* %r),1,32), %n = $calc($len($regsubex($gettok(%r,2-,32),[^\.].*,)) +1)
  • filter -cffgr $+($calc(%l +1),-,$lines(%f)) %f temp-AkT.txt $+(^[0-9]+ \.,$chr(123),%n,$chr(44),$chr(125))
  • var %t = $calc($gettok($1-,-1,59) +1), %i = 1, %l = $lines(temp-AkT.txt)
  • while %i <= %l {
  • var %r = $read(temp-AkT.txt,n,%i)
  • if ($gettok(%r,1,32) != %t) break
  • if ($len($regsubex($gettok(%r,2-,32),[^\.].*,)) == %n) hadd -m AkT Liste $instok($hget(AkT,Liste),%r,0,59)
  • var %t = %t + 1, %i = %i + 1
  • }
  • }
  • .remove temp-AkT.txt
  • AkT.parents %a
  • tokenize 32 $hget(AkT,%p)
  • hadd -m AkT Pos $iif($1 isnum 1-,$1,1)
  • AkT.drawliste $iif($2 isnum 1-,$2,1)
  • }
  • ;****
  • ;Move
  • ;****
  • alias -l AkT.move {
  • if (!$2) return
  • var %x = $mouse.dx, %y = $mouse.dy
  • if ($mouse.key & 1) {
  • hadd -m AkT Move 1
  • .timerAkT.move -m 1 0 AkT.move $1-
  • window @AkT $calc(%x - $1) $calc(%y - $2)
  • }
  • elseif ($hget(AkT,Move)) {
  • hdel AkT Move
  • .timerAkT.move off
  • }
  • }
  • ;*****
  • ;Liste
  • ;*****
  • alias -l AkT.liste {
  • var %a = $1
  • if ($1 !isnum 1-) return
  • var %f = $hget(AkT,First)
  • if (($calc(%a - 9) > %f) || (!%f)) {
  • var %f = $calc(%a - 9)
  • if (%f < 1) var %f = 1
  • }
  • elseif (%a < %f) {
  • var %f = %a, %t = 1
  • }
  • AkT.drawliste %f
  • }
  • alias -l AkT.drawliste {
  • if ($hget(AkT,Pause)) return
  • if (!$window(@AkT)) return
  • if ($1 !isnum 1-) return
  • var %t = 0, %l = $hget(AkT,Liste)
  • hadd -m AkT First $1
  • drawrect -dfnr @AkT $akt.col(9) 1 215 32 150 156 20 20
  • drawrect -dnr @AkT 0 1 215 32 150 156 20 20
  • while %t <= 9 {
  • var %r = $gettok(%l,$calc($1 + %t),59), %te = $eval($regsubex($gettok(%r,1,58),^[0-9]+ \.*,),2), %s = $iif($gettok(%r,2,58),1,0), %c = $iif(%s,$akt.col(6),$akt.col(7))
  • if ((%te) && (%s)) var %te = $chr(149) %te
  • if ($hget(AkT,Pos) == $calc(%t + $1)) {
  • drawrect -dfnr @AkT $akt.col(8) 1 220 $calc(36+ %t *15) 140 15 10 10
  • if ($width(%te,Tahoma,12,0,1) > 130) {
  • if (!$timer(AkT.balayage)) .timerAkT.balayage -m 1 500 AkT.balayage
  • hadd -m AkT Balayage $calc(%t +1) 0
  • }
  • elseif ($hget(AkT,Balayage)) hdel AkT Balayage
  • }
  • if (%te) drawtext -pcnr @AkT %c Tahoma 12 225 $calc(36+15* %t) 130 20 %te
  • if (%te == -) drawline -pcnr @AkT %c 1 225 $calc(44+15* %t) 355 $calc(44+15* %t)
  • inc %t
  • }
  • }
  • alias -l AkT.balayage {
  • if (!$window(@AkT)) return
  • var %t
  • if (!$window(@AkT.balayage)) window -BCdg0hk0pR +dL @AkT.balayage -1 -1 200 22
  • var %i = 1
  • while %i <= 2 {
  • drawrect -fnr @AkT.balayage $iif(%i == 1,$akt.col(8),$akt.col(11)) 1 0 0 200 30
  • tokenize 32 $hget(AkT,$iif(%i == 1,Balayage,Balai))
  • if (($1 isnum 1-) && ($2 isnum)) {
  • var %p = $calc($2 +3), %p1 = %p, %t = 1, %r = $gettok($hget(AkT,Liste),$1,59), %s = $gettok(%r,2,58)
  • var %te = $eval($regsubex($iif(%i == 1,$gettok($gettok(%r,1,58),2-,32),$gettok($hget(AkT,Parent),-1,59)),\.+,),3)
  • if ((%te) && (%s)) var %te = $chr(149) %te
  • var %l = $width(%te,Tahoma,12,0,1), %w = $calc(%l - $iif(%i == 1,130,154))
  • ;echo -a k0 %te
  • if (%w > 0) {
  • if (%p >= $calc(%l + 50)) var %p = 0
  • hadd -m AkT $iif(%i == 1,Balayage,Balai) $1 %p
  • if (%te) {
  • var %c = $iif(%i == 1,$iif(%s,$akt.col(6),$akt.col(7)),$akt.col(10))
  • drawtext -pnr @AkT.balayage %c Tahoma 12 $calc(%p *(-1)) 0 %te
  • drawtext -pnr @AkT.balayage %c Tahoma 12 $calc(%p *(-1) + %l + 50) 0 %te
  • }
  • if (%i == 1) drawcopy -nr @AkT.balayage 0 1 130 14 @AkT 225 $calc(22+ $1 *15)
  • else drawcopy -nr @AkT.balayage 0 1 154 14 @AkT 214 13
  • }
  • }
  • inc %i
  • }
  • if (%t) .timerAkT.balayage -h 1 50 AkT.balayage
  • drawdot @AkT
  • drawdot @AkT.balayage
  • }
  • alias -l AkT.parents {
  • drawrect -fnrd @AkT $akt.col(11) 1 205 10 170 20 20 20
  • drawrect -nrd @AkT 0 1 205 10 170 20 20 20
  • drawtext -cnr @AkT $akt.col(10) Tahoma 12 214 12 154 20 $eval($$regsubex($1-,\.+,),3)
  • if ($width($1-,Tahoma,0,1) > 154) {
  • if (!$timer(AkT.balayage)) .timerAkT.balayage -h 1 500 AkT.balayage
  • hadd -m AkT Balai 1 0
  • }
  • }
  • alias -l AkT.df {
  • var %m = $0, %t = 2
  • while %t <= %m {
  • var %co = $gettok($1-,%t,32), %pos = $gettok($1-,$+($calc(%t +1),-,$calc(%t +2)),32)
  • drawfill -snr @AkT %co $1 %pos
  • hadd -m AkT $+(Flash,$calc((%t -2)/3)) $1 %co %pos
  • inc %t 3
  • }
  • }
  • alias -l AkT.back {
  • var %t = 0
  • while $hget(AkT,$+(Flash,%t)) {
  • drawfill -snr @AkT $ifmatch
  • inc %t
  • }
  • hdel -w AkT Flash?
  • if ($hget(AkT,Temp)) hdel AkT Temp
  • }
  • ;**************
  • ;Aliases Divers
  • ;**************
  • alias -l sgn {
  • if ($1 < 0) return -1
  • if ($1 == 0) return 0
  • return 1
  • }
  • alias -l ext return $regsubex($1-,(.+)\.([^\.]+)$,\2)
  • alias -l noext return $regsubex($1-,\.[^\.]+$,)
  • ;**********
  • ;Résolution
  • ;**********
  • alias -l AkT.resol {
  • hadd -m AkT Pause 1
  • hadd -m AkT Resol $iif($readini(AkT.ini,Config,Résolution),$ifmatch,20)
  • hadd -m AkT Parent $+($hget(AkT,Parent),;Résolution)
  • hadd -m AkT Dir $+($hget(AkT,Dir),;0)
  • AkT.showresol $hget(AkT,Resol)
  • }
  • alias AkT.showresol {
  • if ($1 !isnum 0-) return
  • AkT.clear
  • drawrect -dfnr @AkT 16777215 1 235 95 106 10 10 10
  • if ($1 > 4) drawrect -dfnr @AkT 65280 1 236 95 $calc(104 * ($1 -4) / 196) 10 $iif($1 < 10,20,20)
  • drawrect -dnr @AkT 0 1 235 95 106 10 10 10
  • var %te = Résolution : $1
  • drawtext -nr @AkT 0 Tahoma 12 $calc(237 + (102 - $width(%te,Tahoma,12))/2) 120 %te
  • }
  • ;********
  • ;Couleurs
  • ;********
  • alias -l AkT.color {
  • if ($1 !isnum 1-11) return
  • hadd -m AkT Pause 1
  • hadd -m AkT Col $1
  • tokenize 44 $rgb($gettok($readini(AkT.ini,Config,Colors),$1,32))
  • hadd -m AkT Parent $+($hget(AkT,Parent),;Couleur)
  • hadd -m AkT Dir $+($hget(AkT,Dir),;0)
  • AkT.showcolor $hget(AkT,Col) 1 $1-3
  • }
  • alias -l AkT.showcolor {
  • if ($0 != 5) return
  • hadd -m AkT Col $1-
  • AkT.clear
  • var %l = 255 65280 16711680, %i = 1
  • while %i <= 3 {
  • if ($2 == %i) drawrect -dfnr @AkT $akt.col(8) 1 230 $calc(-5+40* %i) 116 40 20 20
  • drawrect -dfnr @AkT 16777215 1 235 $calc(5+40* %i) 106 10 10 10
  • if ($gettok($1-,$calc(%i + 2),32) > 4) drawrect -dfnr @AkT $calc(256^(%i -1) *255) 1 236 $calc(5+40* %i) $calc(104 * ($v1 -4) / 251) 10 $iif($v1 < 10,20,20)
  • drawrect -dnr @AkT 0 1 235 $calc(5+40* %i) 106 10 10 10
  • var %te = $gettok(Rouge Vert Bleu,%i,32) : $+($v1,/255)
  • drawtext -nr @AkT 16777215 Tahoma 12 $calc(236 + (102 - $width(%te,Tahoma,12))/2) $calc(20+40* %i) %te
  • drawtext -nr @AkT 0 Tahoma 12 $calc(237 + (102 - $width(%te,Tahoma,12))/2) $calc(21+40* %i) %te
  • inc %i
  • }
  • drawrect -dfnr @AkT $rgb($3,$4,$5) 1 245 165 86 20 20 20
  • drawrect -dnr @AkT 0 1 245 165 86 20 20 20
  • drawdot @AkT
  • }
  • alias -l AkT.col {
  • if ($1 !isnum 1-) return
  • return $iif($gettok($hget(AkT,Color),$1,32) != $null,$ifmatch,$gettok(16773360 15098980 16745090 16759225 16765650 0 13107200 16763080 16777215 0 15369854,$1,32))
  • }
  • ;*****
  • ;Ligne
  • ;*****
  • alias -l AkT.ligne {
  • writeini -n AkT.ini Config Lignes $1
  • if ($readini(AkT.ini,Config,Apply)) {
  • AkT.apply
  • hadd -m AkT Dir $deltok($hget(AkT,Dir),-1,59)
  • hadd -m AkT Parent $deltok($hget(AkT,Parent),-1,59)
  • }
  • }
  • ;*************
  • ;Clear & Apply
  • ;*************
  • alias -l AkT.clear drawrect -fnr @AkT $akt.col(1) 1 215 32 150 156
  • alias -l AkT.apply $+($iif(!$readini(AkT.ini,Config,Lignes),.),AkT.draw) anim
  • ;*******
  • ;Exemple
  • ;*******
  • alias -l AkT.exemple {
  • var %c = write exemple.txt
  • write -c exemple.txt
  • %c AkT Begin
  • %c Menu 1
  • %c .Sous Menu 1
  • %c ..Nom:Action
  • %c .Nom:Action
  • %c .Sous Menu 2
  • %c ..Sous Sous Menu 1
  • %c ...Nom:Action
  • %c ...-
  • %c ...Nom:Action
  • %c ..Sous Sous Menu 2
  • %c ...Nom:Action
  • %c ..Nom:Action
  • %c -
  • %c Menu 2
  • %c .Nom:Action
  • %c AkT End
  • run exemple.txt
  • .timer 1 2 .remove exemple.txt
  • }
  • ;******
  • ;Remove
  • ;******
  • alias AkT.remove {
  • .remove AkT.ini
  • echo 2 -at * Données de l'ArKaTool effacées !
  • }
  • ;End Of File
;*****************
;    ArKaTool
;   By ArKanis
; www.arkanis.eu
;*****************

;Version 1.2

;Ne pas changer le nom du fichier en cours d'utilisation !
;Ne pas placer le menu dans un .ini (car il y aura des n*=...)

/*
AkT Begin
Sites
.Site principal:url -n www.arkanis.eu
.Consulter l'aide d'ArKanis:url -n www.arkanis.eu/aide/
.Déposer un bout de code:url -n www.arkanis.eu/codes
.Télécharger un code:url -n www.arkanis.eu/little
Informations
.Notice d'utilisation de l'ArKaTool
..Faites tourner la roulette en décrivant des cercles autour du centre:noop
..Cliquez sur le rectangle du milieu pour revenir au dossier parent:noop
..Le classement peut-être fait soit par fichier (dans un dossier du nom du remote) ou directement à la racine:noop
..Un clic droit vous fera revenir au dossier Parent ou fermera la fenêtre si vous êtes à la racine et annulera vos derniers changements:noop
..Dans le menu choix d'une couleur, une fois la couleur que vous voulez changer sélectionnée, cliquez et restez appuyé avec le bouton gauche de la souris, puis faites tourner le disque, relachez et cliquez ailleurs pour valider:noop
..-
..Pour faire votre propre menu, editez un remote, et insérez votre menu entre "AkT Begin" et "AkT End" sous la même forme que les menus de mIRC (cliquez pour un exemple):AkT.exemple
.Crédits
..Codé par ArKanis:noop
..Merci à Jordane, Panthouffle et à Wims pour leur test:noop
..12Visitez mon site:url -n www.arkanis.eu
Réglages
.Résolution du disque:AkT.resol
.Lignes noires
..$+($iif($readini(AkT.ini,Config,Lignes),),Afficher):AkT.ligne 1
..$+($iif(!$readini(AkT.ini,Config,Lignes),),Cacher):AkT.ligne 0
.Changer les couleurs
..Arrière-plan:akt.color 1
..Cercle
...Sélection:akt.color 2
...Arrière-plan:akt.color 3
..Rectangle central
...Sélection:akt.color 4
...Arrière-plan:akt.color 5
..Liste
...Texte des actions:akt.color 6
...Texte des dossiers:akt.color 7
...Sélection:akt.color 8
...Arrière-plan:akt.color 9
..Titre
...Texte:akt.color 10
...Arrière-plan:akt.color 11
.Appliquer les changements
..Appliquer:AkT.apply
..Appliquer automatiquement après un changement
...$+($iif($readini(AkT.ini,Config,Apply),),Oui) :writeini -n AkT.ini Config Apply 1
...$+($iif(!$readini(AkT.ini,Config,Apply),),Non) :writeini -n AkT.ini Config Apply 0
.-
.Classement
..$+($iif($readini(AkT.ini,Config,Files),),Classer par fichier) :writeini -n AkT.ini Config Files 1
..$+($iif(!$readini(AkT.ini,Config,Files),),Classer par ordre d'apparition) :writeini -n AkT.ini Config Files 0
.Effacer les données:AkT.remove
AkT End
*/


alias akt {
  if ($window(@AkT)) window -c @AkT
  if ($hget(AkT)) hfree AkT
  window -aBCdg0Hk0opR +dL @AkT 0 0 400 204
  var %s = $readini(AkT.ini,Config,Lignes)
  hadd -m AkT Parent AkT
  $+($iif(!%s,.),AkT.draw)
  hadd -m AkT Ticks $ticks
  hadd -m AkT Pos 1
  var %aj, %m = $hget(AkT,Div)
  if ($readini(AkT.ini,Config,Files)) var %aj = 1
  var %fn = $script, %i = 1, %h, %n = $script, %f = AkT.data, %x = temp-AkT.txt, %a = $script(0)
  .remove %f
  while %i <= %a {
    var %w = $script(%i), %l, %q
    if ((%w != $script) && ($read(%w,w,*AkT Begin*))) AkT.filter %w
    inc %i
  }
  AkT.filter $script
  filter -cgcff %f %x [0-9]+ [^\.]
  var %i = 1, %l = $lines(%f)
  while %i <= %l {
    var %e = $regsubex($read(%f,n,%i),^([0-9]+) (n[0-9]+=)?,$+(\1,$chr(32))), %r = %i $+($iif(%aj && !$regex(%e,^0 .*),.),$gettok(%e,2-,32))
    if ($regex(%r,^[0-9]+ [^\.]+.*)) hadd -m AkT Liste $instok($hget(AkT,Liste),%r,0,59)
    write $+(-l,%i) %f %r
    inc %i
  }
  hadd -m AkT Dir 0
  .remove temp-AkT.txt
  hadd -m AkT Racine $hget(AkT,Liste)
  $+($iif(!%s,.),AkT.anim1) 0 %m $2
  drawdot @AkT
}
alias -l AkT.filter {
  if (!$1-) return
  var %f = AkT.data, %x = temp-AkT.txt
  filter -cgffn $qt($1-) %x .+
  if ($gettok($read(%x,nr,^[0-9]+ (n[0-9]+=)?AkT Begin),1,32)) var %l = $calc($ifmatch +1)
  if ($gettok($read(%x,nr,^[0-9]+ (n[0-9]+=)?AkT End),1,32)) %q = $calc($ifmatch -1)
  if ((%l isnum 1-) && (%q isnum 2-) && (%l <= %q)) {
    if ($readini(AkT.ini,Config,Files)) write %f 0 $nopath($noext($1-))
    filter -gffnr $+(%l,-,%q) $qt($1-) %f .+
  }

}
alias -l AkT.draw {
  var %m = $readini(AkT.ini,Config,Résolution), %s = $show
  if (!%m) var %m = 20
  elseif (%m !isnum 4-) var %m = 4
  hadd -m AkT Div %m
  if ($readini(AkT.ini,Config,Colors)) hadd -m AkT Color $ifmatch
  else {
    hadd -m AkT Color 16773360 15098980 16745090 16759225 16765650 0 13107200 16763080 16777215 0 15369854
    writeini -n AkT.ini Config Colors $hget(AkT,Color)
  }
  drawrect -nrfd @AkT $akt.col(1) 1 0 0 400 204 30 30
  if ($window(@AkTCopy)) window -c @AkTCopy
  drawrect -nrd @AkT 0 1 0 0 400 204 30 30
  drawtext -nr @AkT 7237230 Tahoma 12 328 188 By ArKanis
  AkT.parents $gettok($hget(AkT,Parent),-1,59)
  drawrect -nrfe @AkT $akt.col(3) 1 2 2 200 200
  ;drawrect -nre @AkT $iif(%s,0,$calc($akt.col(2) -1)) 1 2 2 200 200
  drawdot @AkT
  if ($1 == anim) {
    hadd -m AkT Ticks $ticks
    $+($iif(!%s,.),AkT.anim1) 0 %m
  }
}
alias -l AkT.anim1 {
  if (!$window(@AkT)) return
  var %s = $show, %m = $2, %c = $calc(2 / %m),%t = $calc(($ticks - $hget(AkT,Ticks)) * 0.0005 * %m + $1),  %k = $akt.col(3)
  if ($1 == 0) {
    if ($hget(AkT,Last)) hdel AkT Last
    drawrect -nrfe @AkT $akt.col(3) 1 2 2 200 200
    drawrect -nre @AkT $iif(%s,0,$calc(%k -1)) 1 2 2 200 200
    if ($window(@AkTCopy)) window -c @AkTCopy
    window -BCdhg0k0npR +dL @AkTCopy 0 0 400 200
    drawcopy -nr @AkT 0 0 400 200 @AkTCopy 0 0
    var %g = $1-, %v =  1, %b = 1, %n = 1
    tokenize 44 $rgb(%k)
    if ($1 > 128) var %v = -1
    if ($2 > 128) var %b = -1
    if ($3 > 128) var %n = -1
    hadd -m AkT AnimDir %v %b %n
    tokenize 32 %g
  }
  var %co = 0
  if (%s) drawcopy -nr @AkTCopy 0 0 400 200 @AkT 0 0
  else {
    if ($gettok($rgb(%k),1,44)) var %co = $calc(%k -1)
    else var %co = $calc(%k +1)
  }
  var %n = $hget(AkT,AnimDir)
  if (($int(%t) != $int($1)) || ($1 == 0)) {
    var %a = $int($1)
    while %a <= $int(%t) {
      if ($int(%a) > %m) break
      var %r = $calc($int(%a) * %c * $pi)
      drawline -nr @AkT %co 1 102 102 $calc($cos(%r) *100 +102) $calc($sin(%r) *100 +102)
      if (!%s) {
        var %o = %a, %j = 5
        while ((%o) && (%j) && ($2 > 6)) {
          var %couleur = $calc($floor($calc($gettok(%n,1,32) *4* %j + $gettok($rgb(%k),1,44))) + $floor($calc($gettok(%n,2,32) *4* %j + $gettok($rgb(%k),2,44))) *256 + $floor($calc($gettok(%n,3,32) *4* %j + $gettok($rgb(%k),3,44))) *256^2)
          if (%o <= $calc(%m /2)) var %g = $calc((-1) * %o)
          else var %g = $calc(%m - %o)
          if (%j > 1) drawfill -nr @AkT %couleur %co $akt.ang(%g,%m)
          else drawfill -nr @AkT %k %co $akt.ang(%g,%m)
          dec %o
          dec %j
        }
      }
      else drawcopy -nr @AkT 0 0 300 200 @AkTCopy 0 0
      drawdot @AkT
      inc %a
    }
  }
  if (%t >= %m) {
    if ((!%s) && ($2 > 6) && (($calc($hget(AkT,Last) - %m) <= 6) || (!$hget(AkT,Last)))) {
      hadd -m AkT Last $int(%t)
      var %a = $int($1)
      while %a <= $int(%t) {
        var %g = $calc(%m - (%a -4))
        drawfill -nr @AkT %k %co $akt.ang(%g,%m)
        inc %a
      }
    }
    if (($int($1) > $calc(%m + 7)) || (%s) || ($2 <= 6)) {
      hadd -m AkT Ticks $ticks
      AkT.anim2 0 $3
      return
    }
  }
  var %r = $calc(%t * %c * $pi)
  if (%s) drawline -nr @AkT 0 1 102 102 $calc($cos(%r) *100 +102) $calc($sin(%r) *100 +102)
  drawdot @AkT
  hadd -m AkT Ticks $ticks
  .timerakt -m 1 1 $+($iif(!%s,.),AkT.anim1) %t %m $3
}
alias -l AkT.anim2 {
  if ($2) {
    if ($hget(AkT,Ticks)) hdel AkT Ticks
    AkT.drawliste 1
    drawdot @AkT
    return
  }
  var %t = $calc(($ticks - $hget(AkT,Ticks)) * 0.05 + $1)
  if (%t >= 20) var %t = 20
  drawrect -dnrf @AkT $akt.col(4) 1 $calc(102 - $int(%t) * 5/4) $calc(102- $int(%t) /2) $calc($int(%t) *5/2) $int(%t) 20 20
  drawrect -dnr @AkT 0 1 $calc(102 - $int(%t) * 5/4) $calc(102- $int(%t) /2) $calc($int(%t) *5/2) $int(%t) 20 20
  drawdot @AkT
  if (%t >= 20) {
    hdel AkT Ticks
    AkT.drawliste 1
    drawdot @AkT
    return
  }
  hadd -m AkT Ticks $ticks
  .timer -m 1 1 AkT.anim2 %t
}


;****
;Load
;****
on *:load:{
  echo 2 -a * Code ArKaTool correctement chargé. Tapez /AkT pour commencer.
  echo 2 -a * Merci d'avoir installé ce code, j'espère qu'il vous plaira
  echo 2 -a * ArKanis - www.arkanis.eu
}
;*************
;Menu & events
;*************
menu status,channel,query {
  ArKaTool:akt
}
menu @AkT {
  leave:{
    AkT.back
    drawdot @AkT
  }
  mouse:AkT.mouse $mouse.x $mouse.y
  sclick:AkT.sclick $mouse.x $mouse.y
  dclick:AkT.sclick $mouse.x $mouse.y
  rclick:.AkT.sclick parent
}

alias -l AkT.close {
  .timerAkT.balayage off
  .timerAkT.move off
  if ($window(@AkT.balayage)) window -c $ifmatch
  if ($window(@AkT)) window -c @AkT
  if ($hget(AkT)) hfree AkT
  if ($exists(AkT.data)) .remove AkT.data
}
alias -l AkT.ang {
  if (($1 !isnum) || ($2 !isnum)) return
  var %m = $calc(360* $1 / $2 + 360/(2* $2))
  return $calc(102+ $cos(%m).deg *95) $calc(102+ $sin(%m).deg *(-95))
}
alias -l AkT.mouse {
  if ($hget(AkT,Ticks)) return
  var %c = $getdot(@AkT,$1,$2), %d = $hget(AkT,Div)
  if ($inroundrect($1,$2,77,92,50,20,20,20)) {
    if ($hget(AkT,Temp) == Rect) return
    AkT.back
    if ($hget(AkT,Old)) hdel AkT Old
    hadd -m AkT Flash %c $akt.col(5) 102 102
    hadd -m AkT Temp Rect
    drawfill -snr @AkT $akt.col(5) %c 102 102
    drawdot @AkT
  }
  elseif ($calc(($1 -102)^2 + ($2 -102)^2) < 10000) {
    var %o = $hget(AkT,Old), %x = $calc(($1 - 102)/100), %y = $calc(($2 - 102)/100)
    var %m = $calc((%x ^2 + %y ^2)^(1/2)), %n = $hget(AkT,Pos), %t = $floor($calc($acos($calc(%x / %m)).deg *(-1)* $sgn(%y) / 360 * %d))
    if ((%t == 0) && ($calc($1 - 102) < 0)) var %t = $floor($calc(%d / 2))
    var %mo = $AkT.ang(%t,%d), %di = $calc(%o - %t)
    if ($abs(%di) == $calc(%d -1)) var %di = $sgn(%t)
    if (%o == $null) var %di = 0
    var %m = $numtok($hget(AkT,Liste),59), %a = $hget(AkT,Pos)
    if ($calc(%d - $abs(%di)) < $calc(2 * %d / 3)) var %di = $calc((-1)* $sgn(%di) * (%d - $abs(%di)))
    inc %a %di
    if (%a < 1) var %a = 1
    if (%a > %m) var %a = %m
    hadd -m AkT Old %t
    hadd -m AkT Pos %a
    AkT.back
    var %c1 = $rgb($akt.col(2)), %c2 = $rgb($akt.col(3)), %m1 = $AkT.ang($calc(%t -1),%d), %m2 = $AkT.ang($calc(%t +1),%d)
    var %cn = $rgb($calc(($gettok(%c1,1,44) + $gettok(%c2,1,44))/2),$calc(($gettok(%c1,2,44) + $gettok(%c2,2,44))/2),$calc(($gettok(%c1,3,44) + $gettok(%c2,3,44))/2)))
    AkT.df $akt.col(3) $akt.col(2) %mo %cn %m1 %cn %m2
    if (($hget(AkT,Pause)) && ($gettok($hget(AkT,Parent),-1,59) == Résolution)) {
      hinc AkT Resol %di
      if ($hget(AkT,Resol) < 4) hadd -m AkT Resol 4
      elseif ($hget(AkT,Resol) > 200) hadd -m AkT Resol 200
      AkT.showresol $hget(AkT,Resol)
    }
    elseif (($hget(AkT,Pause)) && ($hget(AkT,Col))) {
      tokenize 32 $hget(AkT,Col)
      if ($mouse.key & 1) {
        var %co = $calc($gettok($3-,$2,32) + %di)
        if (%co > 255) var %co = 255
        elseif (%co < 0) var %co = 0
        AkT.showcolor $1-2 $puttok($3-,%co,$2,32)
      }
      else {
        var %b = $calc($2 + %di)
        if (%b < 1) var %b = 1
        elseif (%b > 3) var %b = 3
      }
      AkT.showcolor $1 %b $3-
    }
    elseif (%n != %a) AkT.liste %a
    drawdot @AkT
  }
  elseif (%c == $akt.col(1)) {
    AkT.back
    if ($hget(AkT,Old) != $null) hdel AkT Old
    drawdot @AkT
  }
}
alias -l AkT.sclick {
  if ($hget(AkT,Ticks)) return
  var %c = $getdot(@AkT,$1,$2)
  if (($hget(AkT,Pause)) && ($show) && ($1 != parent)) {
    if ($gettok($hget(AkT,Parent),-1,59) == Résolution) writeini -n AkT.ini Config Résolution $hget(AkT,Resol)
    elseif ($gettok($hget(AkT,Parent),-1,59) == Couleur) {
      if (($calc(($1 -102)^2 + ($2 -102)^2) < 10000) && (!$inroundrect($1,$2,77,92,50,20,20,20))) return
      tokenize 32 $hget(AkT,Col)
      writeini -n AkT.ini Config Colors $puttok($readini(AkT.ini,Config,Colors),$rgb($3,$4,$5),$1,32)
    }
    hdel AkT Pause
    if ($hget(AkT,Resol)) hdel AkT Resol
    hadd -m AkT Parent $deltok($hget(AkT,Parent),-1,59)
    hadd -m AkT Dir $deltok($hget(AkT,Dir),-1,59)
    if ($readini(AkT.ini,Config,Apply)) AkT.apply anim
    else AkT.parents $gettok($hget(AkT,Parent),-1,59)
    AkT.explore $hget(AkT,Dir)
    drawdot @AkT
  }
  elseif (($inroundrect($1,$2,77,92,50,20,20,20)) || ($1 == parent)) {
    if ($hget(AkT,Pause)) hdel AkT Pause
    if ($hget(AkT,Parent) == AkT) AkT.close
    else {
      hadd -m AkT Parent $deltok($hget(AkT,Parent),-1,59)
      hadd -m AkT Dir $deltok($hget(AkT,Dir),-1,59)
      akt.explore $hget(AkT,Dir)
      drawdot @AkT
    }
  }
  elseif ($calc(($1 -102)^2 + ($2 -102)^2) < 10000) {
    var %a = $gettok($hget(AkT,Liste),$hget(AkT,Pos),59), %l = $gettok(%a,1,32), %a = $regsubex($gettok(%a,2-,32),^\.*,)
    if ((!%a) || (!%l)) return
    hadd -m AkT $hget(AkT,Dir) $hget(AkT,Pos) $hget(AkT,First)
    if ($regex(%a,:([^:]+)$)) {
      var %i = 1, %l = $numtok($regml(1),124)
      while %i <= %l {
        $eval($gettok($regml(1),%i,124),2)
        inc %i
      }
      if ($window(@AkT)) window -a @AkT
    }
    elseif (%a != -) {
      hadd -m AkT $hget(AkT,Dir) $hget(AkT,Pos) $hget(AkT,First)
      hadd -m AkT Parent $+($hget(AkT,Parent),;,%a)
      hadd -m AkT Dir $+($hget(AkT,Dir),;,%l)
    }
    AkT.explore $hget(AkT,Dir)
    drawdot @AkT
  }
  elseif (%c == $akt.col(1)) AkT.move $1-2
}
alias -l AkT.explore {
  var %a = $gettok($hget(AkT,Parent),-1,59), %p = $1-, %f = AkT.data
  if (%p == 0) hadd -m AkT Liste $hget(AkT,Racine)
  else {
    if ((!%a) || (!%p)) return
    if ($hget(AkT,Liste)) hdel AkT Liste
    filter -cffgn %f temp-AkT.txt .+
    var %r = $read(%f,nw,$gettok($1-,-1,59) *), %l = $gettok($read(temp-AkT.txt,nw,* %r),1,32), %n = $calc($len($regsubex($gettok(%r,2-,32),[^\.].*,)) +1)
    filter -cffgr $+($calc(%l +1),-,$lines(%f)) %f temp-AkT.txt $+(^[0-9]+ \.,$chr(123),%n,$chr(44),$chr(125))
    var %t = $calc($gettok($1-,-1,59) +1), %i = 1, %l = $lines(temp-AkT.txt)
    while %i <= %l {
      var %r = $read(temp-AkT.txt,n,%i)
      if ($gettok(%r,1,32) != %t) break
      if ($len($regsubex($gettok(%r,2-,32),[^\.].*,)) == %n) hadd -m AkT Liste $instok($hget(AkT,Liste),%r,0,59)
      var %t = %t + 1, %i = %i + 1
    }
  }
  .remove temp-AkT.txt
  AkT.parents %a
  tokenize 32 $hget(AkT,%p)
  hadd -m AkT Pos $iif($1 isnum 1-,$1,1)
  AkT.drawliste $iif($2 isnum 1-,$2,1)
}

;****
;Move
;****
alias -l AkT.move {
  if (!$2) return
  var %x = $mouse.dx, %y = $mouse.dy
  if ($mouse.key & 1) {
    hadd -m AkT Move 1
    .timerAkT.move -m 1 0 AkT.move $1-
    window @AkT $calc(%x - $1) $calc(%y - $2)
  }
  elseif ($hget(AkT,Move)) {
    hdel AkT Move
    .timerAkT.move off
  }
}
;*****
;Liste
;*****
alias -l AkT.liste {
  var %a = $1
  if ($1 !isnum 1-) return
  var %f = $hget(AkT,First)
  if (($calc(%a - 9) > %f) || (!%f)) {
    var %f = $calc(%a - 9)
    if (%f < 1) var %f = 1
  }
  elseif (%a < %f) {
    var %f = %a, %t = 1
  }
  AkT.drawliste %f
}

alias -l AkT.drawliste {
  if ($hget(AkT,Pause)) return
  if (!$window(@AkT)) return
  if ($1 !isnum 1-) return
  var %t = 0, %l = $hget(AkT,Liste)
  hadd -m AkT First $1
  drawrect -dfnr @AkT $akt.col(9) 1 215 32 150 156 20 20
  drawrect -dnr @AkT 0 1 215 32 150 156 20 20
  while %t <= 9 {
    var %r = $gettok(%l,$calc($1 + %t),59), %te = $eval($regsubex($gettok(%r,1,58),^[0-9]+ \.*,),2), %s = $iif($gettok(%r,2,58),1,0), %c = $iif(%s,$akt.col(6),$akt.col(7))
    if ((%te) && (%s)) var %te = $chr(149) %te
    if ($hget(AkT,Pos) == $calc(%t + $1)) {
      drawrect -dfnr @AkT $akt.col(8) 1 220 $calc(36+ %t *15) 140 15 10 10
      if ($width(%te,Tahoma,12,0,1) > 130) {
        if (!$timer(AkT.balayage)) .timerAkT.balayage -m 1 500 AkT.balayage
        hadd -m AkT Balayage $calc(%t +1) 0
      }
      elseif ($hget(AkT,Balayage)) hdel AkT Balayage
    }
    if (%te) drawtext -pcnr @AkT %c Tahoma 12 225 $calc(36+15* %t) 130 20 %te
    if (%te == -) drawline -pcnr @AkT %c 1 225 $calc(44+15* %t) 355 $calc(44+15* %t)
    inc %t
  }
}
alias -l AkT.balayage {
  if (!$window(@AkT)) return
  var %t
  if (!$window(@AkT.balayage)) window -BCdg0hk0pR +dL @AkT.balayage -1 -1 200 22
  var %i = 1
  while %i <= 2 {
    drawrect -fnr @AkT.balayage $iif(%i == 1,$akt.col(8),$akt.col(11)) 1 0 0 200 30
    tokenize 32 $hget(AkT,$iif(%i == 1,Balayage,Balai))
    if (($1 isnum 1-) && ($2 isnum)) {
      var %p = $calc($2 +3), %p1 = %p, %t = 1, %r = $gettok($hget(AkT,Liste),$1,59), %s = $gettok(%r,2,58)
      var %te = $eval($regsubex($iif(%i == 1,$gettok($gettok(%r,1,58),2-,32),$gettok($hget(AkT,Parent),-1,59)),\.+,),3)
      if ((%te) && (%s)) var %te = $chr(149) %te
      var %l = $width(%te,Tahoma,12,0,1), %w = $calc(%l - $iif(%i == 1,130,154))
      ;echo -a k0 %te
      if (%w > 0) {
        if (%p >= $calc(%l + 50)) var %p = 0
        hadd -m AkT $iif(%i == 1,Balayage,Balai) $1 %p
        if (%te) {
          var %c = $iif(%i == 1,$iif(%s,$akt.col(6),$akt.col(7)),$akt.col(10))
          drawtext -pnr @AkT.balayage %c Tahoma 12 $calc(%p *(-1)) 0 %te
          drawtext -pnr @AkT.balayage %c Tahoma 12 $calc(%p *(-1) + %l + 50) 0 %te
        }
        if (%i == 1) drawcopy -nr @AkT.balayage 0 1 130 14 @AkT 225 $calc(22+ $1 *15)
        else drawcopy -nr @AkT.balayage 0 1 154 14 @AkT 214 13
      }
    }
    inc %i
  }
  if (%t) .timerAkT.balayage -h 1 50 AkT.balayage
  drawdot @AkT
  drawdot @AkT.balayage
}
alias -l AkT.parents {
  drawrect -fnrd @AkT $akt.col(11) 1 205 10 170 20 20 20
  drawrect -nrd @AkT 0 1 205 10 170 20 20 20
  drawtext -cnr @AkT $akt.col(10) Tahoma 12 214 12 154 20 $eval($$regsubex($1-,\.+,),3)
  if ($width($1-,Tahoma,0,1) > 154) {
    if (!$timer(AkT.balayage)) .timerAkT.balayage -h 1 500 AkT.balayage
    hadd -m AkT Balai 1 0
  }
}

alias -l AkT.df {
  var %m = $0, %t = 2
  while %t <= %m {
    var %co = $gettok($1-,%t,32), %pos = $gettok($1-,$+($calc(%t +1),-,$calc(%t +2)),32)
    drawfill -snr @AkT %co $1 %pos
    hadd -m AkT $+(Flash,$calc((%t -2)/3)) $1 %co %pos
    inc %t 3
  }
}
alias -l AkT.back {
  var %t = 0
  while $hget(AkT,$+(Flash,%t)) {
    drawfill -snr @AkT $ifmatch
    inc %t
  }
  hdel -w AkT Flash?
  if ($hget(AkT,Temp)) hdel AkT Temp
}
;**************
;Aliases Divers
;**************
alias -l sgn {
  if ($1 < 0) return -1
  if ($1 == 0) return 0
  return 1
}
alias -l ext return $regsubex($1-,(.+)\.([^\.]+)$,\2)
alias -l noext return $regsubex($1-,\.[^\.]+$,)


;**********
;Résolution
;**********
alias -l AkT.resol {
  hadd -m AkT Pause 1
  hadd -m AkT Resol $iif($readini(AkT.ini,Config,Résolution),$ifmatch,20)
  hadd -m AkT Parent $+($hget(AkT,Parent),;Résolution)
  hadd -m AkT Dir $+($hget(AkT,Dir),;0)
  AkT.showresol $hget(AkT,Resol)
}
alias AkT.showresol {
  if ($1 !isnum 0-) return
  AkT.clear
  drawrect -dfnr @AkT 16777215 1 235 95 106 10 10 10
  if ($1 > 4) drawrect -dfnr @AkT 65280 1 236 95 $calc(104 * ($1 -4) / 196) 10 $iif($1 < 10,20,20)
  drawrect -dnr @AkT 0 1 235 95 106 10 10 10
  var %te = Résolution : $1
  drawtext -nr @AkT 0 Tahoma 12 $calc(237 + (102 - $width(%te,Tahoma,12))/2) 120 %te
}
;********
;Couleurs
;********
alias -l AkT.color {
  if ($1 !isnum 1-11) return
  hadd -m AkT Pause 1
  hadd -m AkT Col $1
  tokenize 44 $rgb($gettok($readini(AkT.ini,Config,Colors),$1,32))
  hadd -m AkT Parent $+($hget(AkT,Parent),;Couleur)
  hadd -m AkT Dir $+($hget(AkT,Dir),;0)
  AkT.showcolor $hget(AkT,Col) 1 $1-3
}
alias -l AkT.showcolor {
  if ($0 != 5) return
  hadd -m AkT Col $1-
  AkT.clear
  var %l = 255 65280 16711680, %i = 1
  while %i <= 3 {
    if ($2 == %i) drawrect -dfnr @AkT $akt.col(8) 1 230 $calc(-5+40* %i) 116 40 20 20
    drawrect -dfnr @AkT 16777215 1 235 $calc(5+40* %i) 106 10 10 10
    if ($gettok($1-,$calc(%i + 2),32) > 4) drawrect -dfnr @AkT $calc(256^(%i -1) *255) 1 236 $calc(5+40* %i) $calc(104 * ($v1 -4) / 251) 10 $iif($v1 < 10,20,20)
    drawrect -dnr @AkT 0 1 235 $calc(5+40* %i) 106 10 10 10
    var %te = $gettok(Rouge Vert Bleu,%i,32) : $+($v1,/255)
    drawtext -nr @AkT 16777215 Tahoma 12 $calc(236 + (102 - $width(%te,Tahoma,12))/2) $calc(20+40* %i) %te
    drawtext -nr @AkT 0 Tahoma 12 $calc(237 + (102 - $width(%te,Tahoma,12))/2) $calc(21+40* %i) %te
    inc %i
  }
  drawrect -dfnr @AkT $rgb($3,$4,$5) 1 245 165 86 20 20 20
  drawrect -dnr @AkT 0 1 245 165 86 20 20 20
  drawdot @AkT
}
alias -l AkT.col {
  if ($1 !isnum 1-) return
  return $iif($gettok($hget(AkT,Color),$1,32) != $null,$ifmatch,$gettok(16773360 15098980 16745090 16759225 16765650 0 13107200 16763080 16777215 0 15369854,$1,32))
}
;*****
;Ligne
;*****
alias -l AkT.ligne {
  writeini -n AkT.ini Config Lignes $1
  if ($readini(AkT.ini,Config,Apply)) {
    AkT.apply
    hadd -m AkT Dir $deltok($hget(AkT,Dir),-1,59)
    hadd -m AkT Parent $deltok($hget(AkT,Parent),-1,59)
  }
}
;*************
;Clear & Apply
;*************
alias -l AkT.clear drawrect -fnr @AkT $akt.col(1) 1 215 32 150 156
alias -l AkT.apply $+($iif(!$readini(AkT.ini,Config,Lignes),.),AkT.draw) anim

;*******
;Exemple
;*******
alias -l AkT.exemple {
  var %c = write exemple.txt
  write -c exemple.txt
  %c AkT Begin
  %c Menu 1
  %c .Sous Menu 1
  %c ..Nom:Action
  %c .Nom:Action
  %c .Sous Menu 2
  %c ..Sous Sous Menu 1
  %c ...Nom:Action
  %c ...-
  %c ...Nom:Action
  %c ..Sous Sous Menu 2
  %c ...Nom:Action
  %c ..Nom:Action
  %c -
  %c Menu 2
  %c .Nom:Action
  %c AkT End
  run exemple.txt
  .timer 1 2 .remove exemple.txt
}
;******
;Remove
;******
alias AkT.remove {
  .remove AkT.ini
  echo 2 -at * Données de l'ArKaTool effacées !
}
;End Of File

Conclusion

Merci de me faire part de vos idées d'application, remarques, conseils (surtout sur l'esthétisme de préférence :D), ...
C'est un début et si ça plait, je pourrai l'améliorer pour le rendre beaucoup plus utile. J'espère que ce code vous plaira :)

Si vous trouvez un skin plus joli que celui de base, je suis preneur ! Envoyez moi la ligne Colors qui est dans le fichier AkT.ini

Il faut impérativement mIRC 6.17 pour que le code fonctionne, et 6.21 pour qu'il soit parfait :p

Merci à Jordane, Panthouffle et Wims pour leur test et leurs avis
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

03 mars 2007 13:49:28 :
Détails concernant la personnalisation de la PicWin
05 mars 2007 02:36:23 :
v1.2 : Une animation d'ouverture (si les lignes noires sont désactivées) - Prise en compte du commentaire de Wims

Commentaires et avis

signaler à un administrateur
Commentaire de wims le 04/03/2007 16:51:40

Je brise la glace en postant le premier commentaire même si j'ai déja donné mon avis moulte et moulte fois sur cette source :

if ($exists(AkT.ini)) .remove AkT.ini
le if ne sert a rien vu que tu met un . sur le remove

$+($iif(!$readini(AkT.ini,Config,Lignes),.),AkT.draw) anim
ligne 545, tu peux le remplacé par l'alias AkT.apply qui fais exactement la même chose il me semble

Tu peux simplifier l'alias sgn
alias -l sgn return $iif($1 < 0,-1,$iif($1 == 0,0,1))

if ($1 !isnum 0-) return
lol :( ?
Je suppose que c'est fais expres mais ca veux dire quoi ?

les $eval deviennent $()

Pourquoi -h sur tes timer, ca bouffe la ram ?

if ($hget(AkT,Flash)) drawfill -snr @AkT $ifmatch
if ($hget(AkT,Flash1)) drawfill -snr @AkT $ifmatch
if ($hget(AkT,Flash2)) drawfill -snr @AkT $ifmatch
dans l'alias AkT.back, tu peux simplifié ca par une boucle :
var %a 3 | while (%a) { if ($hget(AkT,$+(flash,$replace($calc(%a -1),0,$null))) drawfill -snr @AkT $ifmatch | dec %a }

même si c'est un peux abusé :x

Tu peux suppprimé la ligne 437

Voila pour le code qui est quand même tres bien codé.

Je t'ai déja dis que comme c'etais la, ca ne servait pas a grand chose ni a grand monde. et que tu devrais faire un snippet pour crée des menus simple en picwin ( sans le disque, qui est malheuresement une bonne idée, mais avec la souris, on a trop tendance a aller sur le menu pour faire défilé... )

signaler à un administrateur
Commentaire de thanassos le 16/03/2007 22:04:40

Bah moi je ne critiquerai pas et je dirais meme bravo pour le script :) tres bien fait et simple d'utilisation reste a faire une modif pour qu'il accepte les fichiers de popups ;)

signaler à un administrateur
Commentaire de hunter38 le 09/06/2007 15:51:22

j'ignore un peu a quoi elle sert mais g pri du temps pour le le script et je lé trouvé pas malmais je lé pas installé
Bien joué
9/10

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Deux Scripts HORS DU COMMUN à réaliser [ par TiFoXy ] Salut tout le monde!Deux questions:1/ Comment puis-je faire en sorte qu'un menu nicklist,query ne s'affiche que si je suis sur un chan déterminé ?Exem Activation et désactivation autovoice par menu [ par sarevok ] Bon, voilà... Je sais comment on personnalise un menu (de façon basique)et je sais comment on fait un autovoice (par l'onglet remote)Mais je voudrais phrases toute prete pour la nicklist [ par Stephane ] salut a tousvoila je débute completement en irc, et je voudrais faire un menu quand je clicke droit sur la nicklist, et que dans ce menu il y est plus Ajout de menu [ par crazycat ] Bonjour ici,je suis en train de réaliser un petit script mirc (en fait un ensemble d'alias/remote/popup) et je voudrais pouvoir ajouter mon propre men Dégradé [ par Bloock ] Bon voila, je vais faire un lecteur mp3 en picwin, et j'aimerai savoir comment on fait [/b]un dégradé dans une fenêtre Picwin[/b]! Merci d'avance <img faire un menu d'affichage de fond d'ecran et logviewer a l'occasion [ par Vanyel ] bonjour, j'ai un peu honte de poser ces questions aussi simples.1. quelqu'un peut me rappeler comment on peut mettre dans un popups ou un remote une c Identifiant pour céer des sous menus [ par ~vikings~ ] ~vikings~Voila je cherche l'identifiant permettant de créer un sous menu dans un menu.Explication :dialog test {title "Snif les items"size -1 -1 100 1 Aide pour commencer menu avec Mpopup.dll [ par _Dams_ ] bonjour,Donc voila je souhaites créer un menu pour la liste des pseudo mais je ne sais pas comment commenceret j'utilise Mpopup.dll ou popups.dll on m Aide Socket & picwin [ par _VeSpArO_ ] Salut tout le monde je voulai savoir comment stocker un fichier txt d'un site dans un fichier .txt ou autre dans mon mirc.CAD: telecharger par exemple Hotlink dans une fenêtre ? [ par Nymouas ] Bonjour,Je voudrais savoir comment je peux créer une hotlink sur un nick (le doigt qui s'affiche) ds une fenêtre @ avec une liste de nick à droite (co


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements