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 / Exemple :
;*****************
; 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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.