4/5 (16 avis)
Vue 9 925 fois - Téléchargée 599 fois
;Crée par Clément Vialettes http://www.zeubu.com ;il 'y a pas de variable utilisée ;tout est enregistré dans la hastable ;la hastable est nommée popslap ;les items sont : slapspseudo et slapscanal qui pourront prendre la valeur on ou off ; mslapspseudo et mslapscanal pourront prendre la valeur me ou say ; nslapspseudo et nslapscanal sont la liste des noms des slaps séparé par des token (chr 182) ; Nlslapspseudo et Nlslapscanal sont les slaps, N correspondant au n° du token du nom du slap ;la hashtable est enregistrée sous le fichier popupslap ;et une image slaps.bmp est crée pour l'affichage du slaps ;*****cet alias permet de modifier la table en utilisant moins de code alias hdt { ;***si il est appelé comme un identificateur on va chercher une valeur dans la table if ($isid) return $hget(popslap,$1) ;***sinon on va modifier une valeur else hadd popslap $1- } ;*****un alias pour savoir dans qu'elle tab on se trouve (car pour utiliser encore moins de code les id des éléments des tab sont identiques ) alias tab { return $iif($dialog(dialslaps).tab == 1,$1,$2) } ;*****un alias pour afficher la liste des slaps alias aff { did -r $dname 61 | didtok $dname 61 182 $hdt($tab(nslapspseudo,nslapscanal)) } ;*****un alias pour créer un slap en bmp alias affslap { ;***création de la fenêtre (non visible) window -c @slaps | window -hp +Lfd @slaps 0 0 578 24 ;***affichage du slap dans la window (non visible) et sauvegarde en bmp drawtext -pb @slaps 1 0 verdana 11 2 2 $1- | drawsave @slaps slaps.bmp 289 12 } ;*****Message lors du chargement du script on *:load:{ echo -a 0,1[7Dialogue pour les slaps créer par 13^Clément Vialettes^. 7Pour y mettrent des slaps 13 déjà fait http://zeubu.chez.tiscali.fr 0] } ;*****quand on quitte mIRC : sauvegarder la table popuslap sous le fichier popuslap on *:exit:{ hsave -o popslap popupslap } ;******au démarage de mIRC ou au chargement du script on *:start:{ ;***si la table est déjà chargée, la suprimmer et la recréer if ($hget(popslap)) .hfree popslap | hmake popslap 200 ;***si le fichier popupslap (sauvgarde de la table) existe alors le charger if ($exists(popupslap) = $true) .hload popslap popupslap ;***sinon mettre les valeurs des items slapspseudo et slapscanal à OFF ;***et mettre ME dans mslapscanal et mslapspseudo else { hdt slapspseudo off | hdt slapscanal off | hdt mslapscanal me | hdt mslapspseudo me } ;***si le fichier.bmp d'affichage du slap n'existe pas, on le crée avec le texte 0 if ($exists(slaps.bmp) = $false) affslap 0 } ;*****si l'utilisateur clique sur la tab 1 ou 2, on affiche pour les paramètre des slaps du canal ou des pseudos on *:dialog:dialslaps:sclick:1,2:{ if ($devent == sclick) { ;***on enregistre une bmp blanche et on l'affiche affslap 0 | did -g $dname 65 slaps.bmp ;***si slapspseudo = ON on met le chek à ON (de même pour OFF) if ($hdt($tab(slapspseudo,slapscanal)) == on) did -c dialslaps 67 if ($hdt($tab(slapspseudo,slapscanal)) == off) did -u dialslaps 67 ;***on met le ratio à ME ou SAY if ( $hdt($tab(mslapspseudo,mslapscanal)) == me ) { did -c dialslaps 6 | did -u dialslaps 7 } if ( $hdt($tab(mslapspseudo,mslapscanal)) == say ) { did -c dialslaps 7 | did -u dialslaps 6 } ;***on efface l'edit et on la réaffiche la liste did -r dialslaps 3 | aff } } ;*****si l'utilisateur clique sur la chek, on enregistre ON ou OFF on *:dialog:dialslaps:sclick:67:{ hdt $tab(slapspseudo,slapscanal) $iif($did(67).state == 1,on,off) } ;*****séléction du ratio ;***sélection du ratio ME on *:dialog:dialslaps:sclick:6:{ if ($did == 6) hdt $tab(mslapspseudo,mslapscanal) me } ;***sélection du ratio SAY on *:dialog:dialslaps:sclick:7:{ if ($did == 7) hdt $tab(mslapspseudo,mslapscanal) say } ;*****si l'utilisateur clique sur la liste on *:dialog:dialslaps:sclick:61:{ if ($devent == sclick) { ;***on va chercher le slap correspondant (si clique sur la 2ième ligne de la liste canal alors on va chercher le slap 2lslapscanal) var %b = $did(61).sel $tab(lslapspseudo,lslapscanal) var %c = $hdt($remove(%b,$chr(32))) ;***on crée le bmp et on l'affiche affslap %c | did -g $dname 65 slaps.bmp ;***et on affiche le slap dans l'edit did -ra dialslaps 3 %c } } ;*****si l'utilisateur modifie l'edit on *:dialog:dialslaps:edit:3:{ if ($devent == edit) { ;***on vérifie qu'il y est du text dans l'edit (si il n'y en a pas on affiche une bmp blanche et on sort du script) if ($did(dialslaps,3) == $null) { affslap 0 | did -g $dname 65 slaps.bmp | .halt } ;***sinon on affiche en bmp le texte présent dans l'edit affslap $did(dialslaps,3) | did -g $dname 65 slaps.bmp } } ;*****enregistrer le slap sous un nouveau nom on *:dialog:dialslaps:sclick:63:{ ;***si il n'y a rien à enregistrer dans l'edit, on sort du script if ($did(dialslaps,3).text == $null) { did -ra dialslaps 3 Veuillez tout d'abord écrire le slap ici ;-) | .halt } ;***on demande le nom du slap var %b = $$?="Entrer le nom du slap:" ;***on vérifie que ce nom n'existe pas (cette vérification est dut à $puttok qui permet de mettre un token à la fin, mais si il existe, il n'est pas mis) if ($istok($hdt($tab(nslapspseudo,nslapscanal)),%b,182) == $true) { ;***si il existe, on en demande un autre var %b = $$?="Le nom du slaps existe déjà, entrer un autre nom :" } ;***on enregistre le nom du slap hdt $tab(nslapspseudo,nslapscanal) $addtok($hdt($tab(nslapspseudo,nslapscanal)),%b,182) ;***on enregistre le slap à la suite des autres et on réaffiche la liste var %c = $numtok($hdt($tab(nslapspseudo,nslapscanal)),182) $tab(lslapspseudo,lslapscanal) hdt $remove(%c,$chr(32))) $did(dialslaps,3).text | aff } ;*****enregistrer le slap dans le nom sélectionné dans la liste on *:dialog:dialslaps:sclick:5:{ hdt $remove($did(61).sel $tab(lslapspseudo,lslapscanal),$chr(32)) $did(dialslaps,3).text } ;*****supprimer le slap sélectioné dans la liste on *:dialog:dialslaps:sclick:64:{ ;***supprimer le slap N et renommer les slaps >N (pour qu'ils suivent toujours l'ordre des noms des slaps) var %c = $did(61).sel while ($hget(popslap,$remove($calc(%c + 1) $tab(lslapspseudo,lslapscanal),$chr(32))) != $null) { hdt $remove(%c $tab(lslapspseudo,lslapscanal),$chr(32)) $hget(popslap,$remove($calc(%c + 1) $tab(lslapspseudo,lslapscanal),$chr(32))) hdel popslap $remove(calc(% c+ 1) $tab(lslapspseudo,lslapscanal),$chr(32)) inc %c } ;***supprimer le nom du slap hdt $tab(nslapspseudo,nslapscanal) $deltok($hdt($tab(nslapspseudo,nslapscanal)),$did(61).sel,182) ;***réafficher la liste aff ;***vider l'edit did -r dialslaps 3 ;***et afficher une bmp blanche affslap 0 | did -g $dname 65 slaps.bmp } ;*****modifier le nom du slap on *:dialog:dialslaps:sclick:115:{ var %b = $$?="Entrer le nom du slap:" ;***si il existe déjà on en demande un autre if ($istok($hdt($tab(nslapspseudo,nslapscanal)),%b,182) == $true) var %b = $$?="Le nom du slaps existe déjà, entrer un autre nom :" ;***on l'enregistre par dessus l'ancien hdt $tab(nslapspseudo,nslapscanal) $puttok($hdt($tab(nslapspseudo,nslapscanal)),%b,$did(61).sel,182) ;***et on réaffiche la liste aff } ;*****initialisation du dialog on *:dialog:dialslaps:init:*:{ ;***mettre la chek à ON ou OFF ;***lorsque le dialog et ouvert on arrive sur la tab1, alors c'est la varible slapspseudo if ( $hdt(slapspseudo) == on ) { did -c dialslaps 67 } | if ( $hdt(slapspseudo) == off ) { did -u dialslaps 67 } ;***ratio ME ou SAY if ( $hdt(mslapspseudo) == me ) { did -c dialslaps 6 } | if ( $hdt(mslapspseudo) == say ) { did -c dialslaps 7 } ;***on affiche la liste et une bmp blanche aff | affslap 0 | did -g $dname 65 slaps.bmp } ;*****on met un accés à la fenêtre de dialogue dans le menu menu menubar { - Modifier les slaps:dialog -dmav dialslaps dialslaps - } ;*****popup ;***alias submenu pour l'affichage des slaps dans le menu popup de la nicklist alias slapsnick { if ($1 == begin) return - if ($1 == end) return - ;***si $1 (nb incrémenté) et inférieur ou égal au nombre de token (c'est à dire nb de slaps) if ($1 <= $numtok($hget(popslap,nslapspseudo),182)) { ;***alors on met le nom du slap dans %x et le slap dans %y (si on le fait directement sur le return cela ne marche pas) var %x = $gettok($hget(popslap,nslapspseudo),$1,182) var %y = $replace($hdt($remove($1 lslapspseudo,$chr(32))),[canal],#,[moi],$me,[pseudo],$snicks) ;***et on retourne le tout, %x sera affiché dans le menu et %y à l'écran si il y a clique sur %x if ( $hdt(mslapspseudo) == say ) return %x :say %y else return %x :me %y } } ;*****dans le menu popup de la nicklist menu nicklist { ;***selement si ON afficher slaps, sinon rien $iif($hdt(slapspseudo) == on,Slaps $$snicks) ;***et faire apelle au submenu .$submenu($slapsnick($1)) } ;*****idem pour le menu popup du canal alias slapschan { if ($1 == begin) return - if ($1 == end) return - if ($1 <= $numtok($hget(popslap,nslapscanal),182)) { var %x = $gettok($hget(popslap,nslapscanal),$1,182) var %y = $replace($hdt($remove($1 lslapscanal,$chr(32))),[canal],#,[moi],$me,[pseudo],$snicks) if ( $hdt(mslapscanal) == say ) return %x :say %y else return %x :me %y } } menu channel { $iif($hdt(slapscanal) == on,Slaps #) .$submenu($slapschan($1)) } dialog dialslaps { title "Modification des Slaps" size -1 -1 305 158 option dbu tab "Slpaps sur un pseudo", 1, 1 1 302 155 text "[pseudo] = le pseudo sur le quel le slap est lancé", 90, 179 89 120 8, tab 1 tab Slaps sur un canal, 2 icon 65, 4 116 289 11, slaps.bmp, 0, noborder text "Ctrl+k : Couleurs ( ajouter '','' et un autre chiffre pour le fond)", 4, 159 23 142 8 text "Ctrl+u : souligné ", 10, 159 32 53 8 text "Ctrl+b : Gras", 12, 159 41 79 8 text "Ctrl-o : normal ", 13, 159 49 70 8 text "Ctrl+r : inversé", 14, 159 57 51 8 text "[moi] = renvoi votre pseudo", 15, 179 72 79 8 text "[canal] = le canal dans le quel le slap est écrit", 16, 179 81 111 8 check "On/Off", 67, 103 26 28 10, flat list 61, 4 26 97 87, size button "Modifier le nom", 115, 107 85 42 10, flat button "Supprimer le slap", 64, 107 100 42 10, flat edit "", 3, 4 129 289 10, autohs button "Enregistrer le slap sous un nouveau nom", 63, 4 141 120 10, flat button "Enregistrer le slap sous le nom séléctionner dans la liste", 5, 128 141 165 10, flat radio "/say", 7, 110 43 23 10, group radio "/me", 6, 110 35 23 10 }
26 mars 2004 à 22:02
Bonne continuation C v.
27 mars 2004 à 09:19
27 mars 2004 à 17:14
Tempusus
28 mars 2004 à 14:17
28 mars 2004 à 18:26
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.