J'ai essayé de faire un auto-salut le + configurable et personalisable possible, le voila ;) Tiré de mon script
Source / Exemple :
dialog BS.agreet {
title "Auto Salut !"
size -1 -1 178 180
option dbu
text "Ce système vous permet de saluer automatiquement les personnes arrivant sur IRC. Vous pouvez selectionner l'option de reconnaissance qui pseudo qui mémorise les pseudos arrivés sur un fichier temporaire s'effaçant automatiquement à chaque exit du script et/ou tous les jours à 00h00. Vous pouvez aussi configurer le temps de réponse et les phrases.", 1, 1 2 176 33, center
box "", 2, 0 -2 178 38
text "Phrases de salutation", 3, 1 37 52 8
list 4, 1 45 52 59, size vsbar
text "Phrases de retour", 5, 57 37 44 8
list 6, 55 45 50 59, size vsbar
text "Ajouter une phrase :", 7, 116 37 52 8
edit "", 8, 108 46 67 10, autohs
text "Vous pouvez mettre <nick> dans la phrase qui sera remplacé par le pseudo.", 9, 108 56 67 20, center
button "Ajouter dans :", 10, 108 77 37 13, flat
radio "Salut", 11, 149 76 23 8
radio "Retour", 12, 149 83 26 8
box "", 13, 105 32 73 71
text "", 14, 106 93 70 8, disable center
text "Délais de réponse : Entre", 15, 2 105 62 8
edit "", 16, 65 104 13 10, limit 2 center
text "et", 17, 79 105 6 8
edit "", 18, 86 104 13 10, limit 2 center
text "secondes.", 19, 100 105 25 8
button "Effacer phrase", 20, 127 103 50 12, flat
check "Mémorisation des pseudos", 21, 2 116 74 10
button "Supprimer le fichier d'enregistrement", 22, 77 115 100 12, flat
check "Activer/Désactiver l'auto-salut", 23, 3 168 84 8
button "&OK", 24, 88 166 88 12, flat
box "", 25, 1 162 176 18
check "Ne pas saluer si votre pseudo contient :", 26, 2 128 106 10
edit "", 27, 108 128 69 10, autohs
text "(Pour la case du dessus et au dessous, séparer par des / sans espaces)", 28, 2 137 175 8, center
text "Pseudos à ne pas saluer :", 30, 2 146 63 8
edit "", 31, 66 145 111 10, autohs
text "Salons où ne pas saluer :", 32, 2 156 63 8
edit "", 33, 66 155 111 10, autohs
}
alias BS.agreet { dialog $iif($dialog(BS.Agreet),-x,-m) BS.Agreet BS.Agreet }
alias BS.error {
var %u = $input($$1-,ohd,Erreur)
halt
}
alias plur {
if $1 !isnum { halt }
if $1 > 1 { return s }
}
alias -l BS.Agreetload {
did -r $dname 4,6
if !$lines(BS-Agreet1.txt) {
write -a BS-Agreet1.txt Salut <nick>!
write -a BS-Agreet1.txt Hello <nick> ;)
write -a BS-Agreet1.txt Coucouuu <nick> :)
write -a BS-Agreet1.txt Yop yop <nick> ^^
write -a BS-Agreet1.txt Ouéé coucou <nick> :)
write -a BS-Agreet1.txt Slt <nick>...
write -a BS-Agreet1.txt Coucou $+ $str(u,$r(1,15)) <nick> ^_^
write -a BS-Agreet1.txt Bonjour <nick> :))
write -a BS-Agreet1.txt Wesh <nick> bien ou bien ? XD
write -a BS-Agreet1.txt $+(Pl,$str(o,$r(1,5)),p) <nick> ^^
write -a BS-Agreet1.txt Kikoooo <nick>
write -a BS-Agreet1.txt Kikou <nick> ça va ?
}
if !$lines(BS-Agreet2.txt) {
write -a BS-Agreet2.txt Re $+ $str(e,$r(1,15)) <nick> :)
write -a BS-Agreet2.txt Recoucou <nick> ;)
write -a BS-Agreet2.txt Tiens, re <nick> :)
write -a BS-Agreet2.txt Reuh <nick>
write -a BS-Agreet2.txt Resalut <nick> ;)
write -a BS-Agreet2.txt Reuhh <nick>
write -a BS-Agreet2.txt Recoucou <nick> ça va toujours ?
}
var %a = 1,%b = $lines(BS-Agreet1.txt),%c = $lines(BS-Agreet2.txt),%d = 1
while $read(BS-Agreet1.txt,%a) { did -a $dname 4 $ifmatch | inc %a }
while $read(BS-Agreet2.txt,%d) { did -a $dname 6 $ifmatch | inc %d }
did -ra $dname 14 %b $+(salut,$plur(%b)) $+ , %c $+(retour,$plur(%c)) $+ .
}
on *:dialog:BS.Agreet:*:*:{
if $devent == init {
BS.Agreetload
var %e = $readini(BS-Options.ini,Options,Timegreet)
if !$readini(BS-Options.ini,Options,Timegreet) { writeini -n BS-Options.ini Options Timegreet 3/7 }
if !$readini(BS-Options.ini,Options,Greetrec) { writeini -n BS-Options.ini Options Greetrec ok }
if !$readini(BS-Options.ini,Options,Autogreet) { writeini -n BS-Options.ini Options Autogreet ok }
if !$readini(BS-Options.ini,Options,Nogreetnick) { writeini -n BS-Options.ini Options Nogreetnick ok }
if !$readini(BS-Options.ini,Options,Nonickgreet) { writeini -n BS-Options.ini Options Nonickgreet oqp/away/mange/miam/dodo }
did -ra $dname 16 $gettok(%e,1,47)
did -ra $dname 18 $gettok(%e,2,47)
did $iif($readini(BS-Options.ini,Options,Greetrec) == ok,-c,-u) $dname 21
did $iif($readini(BS-Options.ini,Options,Autogreet) == ok,-c,-u) $dname 23
did $iif($readini(BS-Options.ini,Options,Nogreetnick) == ok,-c,-u) $dname 26
did -ra $dname 27 $readini(BS-Options.ini,Options,Nonickgreet)
if $readini(BS-Options.ini,Options,Greetnonick) { did -ra $dname 31 $readini(BS-Options.ini,Options,Greetnonick) }
if $readini(BS-Options.ini,Options,Greetnochan) { did -ra $dname 33 $readini(BS-Options.ini,Options,Greetnochan) }
did $iif($did(23).state,-e,-b) $dname 4,6,8,10,11,12,16,18,20,21,22,26,27,3,5,7,9,15,17,19,28,30,31,32,33
if !$exists(TGN.txt) { did -b $dname 22 }
if !$did(26).state { did -b $dname 27 }
}
elseif $devent == sclick {
if $did == 4 || $did == 6 { %BS.Temp.did = $did }
if $did == 10 {
if !$did(8) { BS.Error Tu n'as pas indiqué la phrase à enregistrer ! }
if !$did(11).state && !$did(12).state { BS.Error Tu n'as pas séléctionné où tu voulais rajouter la phrase ! }
write -a $+(BS-Agreet,$iif($did(11).state,1,2),.txt) $did(8)
BS.Agreetload
}
elseif $did == 20 {
if %BS.temp.did != 4 && %BS.temp.did != 6 { BS.Error Séléctionne la ligne que tu veux supprimer en cliquant dessus dans l'une des 2 listes ! }
if !$did(%BS.temp.did).seltext { BS.Error Séléctionne la ligne dans une des 2 listes ! }
write $+(-dl,$did(%BS.temp.did).sel) $+(BS-Agreet,$iif(%BS.temp.did == 4,1,2),.txt)
BS.agreetload
}
elseif $did == 22 { if $input(Confirmer la suppression du fichier ?,yid,Confirmation) { .remove TGN.txt | did -b $dname 22 } }
elseif $did == 24 {
if !$did(16) || !$did(18) { BS.Error Tu n'as pas indiqué le temps en seconde entre chaque salut automatique ! }
if $did(16) !isnum { BS.Error Le temps en seconde $+(",$did(16),") n'est pas valide ! }
if $did(18) !isnum { BS.Error Le temps en seconde $+(",$did(18),") n'est pas valide ! }
if $did(16) > $did(18) { BS.Error Le premier temps en seconde doit être inférieur au second ! }
if $did(26).state && !$did(27) { BS.Error Tu as activé le système de désactivation lorsque ton pseudo contient certains mots mais tu n'as indiqué aucun mot ! }
writeini -n BS-Options.ini Options Timegreet $+($did(16),/,$did(18))
if $did(27) { writeini -n BS-Options.ini Options Nonickgreet $did(27) }
writeini -n BS-Options.ini Options Greetnonick $iif($did(31),$did(31),$false)
writeini -n BS-Options.ini Options Greetnochan $iif($did(33),$did(33),$false)
dialog -x $dname
}
elseif $did == 21 { writeini -n BS-Options.ini Options Greetrec $iif($did(21).state,ok,off) }
elseif $did == 26 {
writeini -n BS-Options.ini Options Nogreetnick $iif($did(26).state,ok,off)
did $iif($did(26).state,-e,-b) $dname 27
}
elseif $did == 23 {
writeini -n BS-Options.ini Options Autogreet $iif($did(23).state,ok,off)
did $iif($did(23).state,-e,-b) $dname 4,6,8,10,11,12,16,18,20,21,22,26,27,3,5,7,9,15,17,19,28,30,31,32,33
if !$exists(TGN.txt) { did -b $dname 22 }
if !$did(26).state { did -b $dname 27 }
}
}
elseif $devent == close { unset %BS.Temp.did }
}
On *:JOIN:#:{
if $readini(BS-Options.ini,Options,Autogreet) == ok && $nick != $me {
if $readini(BS-Options.ini,Options,Greetnonick) {
var %a = 1,%e = $readini(BS-Options.ini,Options,Greetnonick)
while %a <= $calc($count(%e,/) + 1) { if $gettok(%e,%a,47) == $nick { halt } | inc %a }
}
if $readini(BS-Options.ini,Options,Greetnochan) {
var %a = 1,%e = $readini(BS-Options.ini,Options,Greetnochan)
while %a <= $calc($count(%e,/) + 1) { if $gettok(%e,%a,47) == $chan { halt } | inc %a }
}
if $readini(BS-Options.ini,Options,Nogreetnick) == ok {
var %a = 1,%e = $readini(BS-Options.ini,Options,Nonickgreet)
while %a <= $calc($count(%e,/) + 1) { if $gettok(%e,%a,47) isin $me { halt } | inc %a }
}
if $readini(BS-Options.ini,Options,Greetrec) == ok {
if !$lines(TGN.txt) { goto next }
var %a = 1,%t = $readini(BS-Options.ini,Options,timegreet)
while $read(TGN.txt,%a) { if $nick == $ifmatch { .TimerAUTOGREET 1 $r($gettok(%t,1,47),$gettok(%t,2,47)) msg $chan $replace($read(BS-Agreet2.txt),<nick>,$nick) | halt } | inc %a }
:next
write -a TGN.txt $nick
}
var %t = $readini(BS-Options.ini,Options,timegreet)
.TimerAUTOGREET 1 $r($gettok(%t,1,47),$gettok(%t,2,47)) msg $chan $replace($read(BS-Agreet1.txt),<nick>,$nick)
}
}
On *:START:{ .Timer 00:00 1 1 BS.vfile }
alias BS.vfile { if $exists(TGN.txt) { .remove TGN.txt } }
Menu channel,menubar {
Auto-Salut Greet:BS.agreet
}
Conclusion :
/BS.Agreet pour le lancer
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.