voila ce script fonctione de la fascon suivante:
.:02·27·10:. «@Adamaru» !def lol
.:02·27·11:. «@Mokoto» La definition de lol est: Laughing out loud
.:02·27·12:. «@Mokoto» La definition de lol est: mdr quoi
pour lui faire apprendre des definition:
!apprends MOT Defintion de votre choix
!nb-def pour le nombre de definition
!randdef definition aléatoire
!def-num X (x est un numero)
!ap_info def (donne le nom, le channel et la date dun ajout de definition)
et surtout le plus important: /Wap
pour ouvrir le dialog de config
perso je conseil:
General ON (si on le mé a off ca desactive tout)
!apprends ON
!auto oubli ON
!Oubli OFF
!Nb-def ON
si vous avez deja ma V1 de cet addon faites : /apcvt2
cela convertira vos def actueles en hash tables pour la V2 (ouais j'ai penssé a tout loool)
n'oubliez pas d'editer la variable %admin a la ligne 70
Source / Exemple :
dialog wbsapprend {
title "Script Apprends V2.0 By Adamaru"
size -1 -1 194 97
option dbu
box "Chans", 1, 2 2 190 24
edit "", 2, 5 10 182 10, autohs
box "Modes", 3, 3 27 47 55
check "general", 4, 6 35 32 10
check "!Apprends", 5, 6 43 36 10
check "!Oubli", 6, 6 51 30 10
check "Auto-Oubli", 7, 6 59 38 10
check "!Nb-def", 8, 6 67 33 10
box "Limites", 9, 51 27 140 22
text "Autoriser un seul !def toutes les", 10, 55 36 77 8
edit "", 11, 133 35 16 10
text "Secondes", 12, 150 36 23 8
button "Ok", 13, 154 83 37 12, ok
box "Commande pour les reponces: (msg $chan)", 14, 51 49 140 33
edit "", 15, 55 58 133 10, autohs
text "Limiter a ", 16, 55 70 22 8
edit "", 17, 78 69 14 10
text "Definition par mots.", 18, 93 70 47 8
button "Voir les def", 19, 115 83 37 12
button "Creer page web", 20, 3 83 47 12
}
alias wap { dialog -m wbsapprend wbsapprend }
alias -l apadd { hadd -m wbs.apprends $1- }
alias -l aget { return $hget(wbs.apprends,$1-) }
on *:dialog:wbsapprend:*:*:{
if ($devent == init) {
if ($aget(chans)) { adid 2 $ifmatch }
if ($aget(mflood)) { adid 11 $ifmatch }
if ($aget(max)) { adid 17 $ifmatch }
if ($aget(com)) { adid 15 $ifmatch }
if ($aget(gen) == 1) { did -c $dname 4 }
if ($aget(ap) == 1) { did -c $dname 5 }
if ($aget(oubli) == 1) { did -c $dname 6 }
if ($aget(auto_oubli) == 1) { did -c $dname 7 }
if ($aget(nb-def) == 1) { did -c $dname 8 }
}
elseif ($devent == sclick) {
if ($did == 13) {
apadd chans $did(2)
apadd gen $did(4).state
apadd ap $did(5).state
apadd oubli $did(6).state
apadd auto_oubli $did(7).state
apadd nb-def $did(8).state
apadd mflood $did(11)
apadd com $did(15)
apadd max $did(17)
hsave -o wbs.apprends $wbshdir $+ wbs.apprends.txt
}
elseif ($did == 19) { wbsopen wbs.ap.def }
elseif ($did == 20) { ap.makepage }
}
}
on *:text:*:#:{
if ($aget(gen) == 1) {
if ($findtok($aget(chans),$chan,32) || $aget(chans) == $chr(35)) {
wbs.ap.event $1-
}
}
}
on *:input:#:{
if ($findtok($aget(chans),$chan,32) || $aget(chans) == $chr(35)) {
.timer 1 1 wbs.ap.event $1-
}
}
alias -l wbs.ap.event {
var %msg = $1- , %com = $iif($aget(com),$ifmatch,.msg botserv say $chan) , %admin = Adamaru , %nick = $iif($nick,$ifmatch,$me) , %k = 1 , %pass = WBS
if ($+($left(%msg,1),$right(%msg,1)) == $str($chr(163),2)) { %msg = $mdecrypt($mid(%msg,2-,$calc($len(%msg) -2)),%pass) }
if (%msg) { tokenize 32 %msg }
if ($1 == !apprend) { wapprend $2- }
elseif ($1 == !apprends) { wapprend $2- }
elseif ($1 == !def) && ($2) { mdef $2- }
elseif ($1 == !info_ap) { wbs.ap.info $2- }
elseif ($1 == $chr(63)) && ($2) { mdef $2- }
elseif ($1 == !nb-def) {
if ($2) {
var %mot = $replace($strip($2-),$chr(32),$chr(95)) , %data = $hget(wbs.apprend.data,%mot)
if (%data) {
if (%mot == %nick) { $eval(%com,2) Tu as $numtok(%data,1) definition $+ $iif($numtok(%data,1) > 1,s) %nick $+ . }
else { $eval(%com,2) " $+ %mot $+ " à $numtok(%data,1) definition $+ $iif($numtok(%data,1) > 1,s) $+ . }
}
}
else { $eval(%com,2) Il y a $hget(Wbs.apprend.data,0).item Definitions dans la base de données. }
}
elseif ($1 == !oubli) {
if ($2 == $nick) {
if ($aget(auto_oubli) == 1) { oubli $2- }
else { $eval(%com,2) Je suis Désolée mais tu ne peu pa effacer ta definition toi meme $nick }
}
else {
if ($nick == %admin || !$nick) { oubli $2- }
else { $eval(%com,2) Désolé mais seul l'admin du script peu me faire oublier des definition. }
}
}
elseif ($1 == !defnum) {
if ($2) {
if ($hget(wbs.apprend.data,$2).item) { mdef $ifmatch }
else { $eval(%Com,2) Désolé $nick mais le nombre que tu a entré est trop grand, je ne conait que $hget(Wbs.apprend.data,0).item definition }
}
else { $eval(%com,2) non $nick $+ , tu doit metre un nombre apres le $1 : example: !defnum 1 }
}
elseif ($1 == !randdef) {
var %def = $hget(Wbs.apprend.data,$rand(1,$hget(Wbs.apprend.data,0).item)).item
if (%Def) { mdef $ifmatch }
else { $eval(%com,2) Je suis désolé $nick $+ , mais je n'ai pa trouvé de definition aléatoire }
}
}
alias -l wbs.ap.info {
var %table = Wbs.apprend.data , %mot = $strip($1) , %mot = $replace($strip($1-),$chr(32),$chr(95)) , %item = $hget(%table,%mot) , %chans = $aget(chans)
var %com = $iif($aget(com),$eval($ifmatch,2),.msg botserv say $chan) , %nick = $iif($nick,$ifmatch,$me)
if (!$nick) {
if (%item) {
var %i 1 , %n = $numtok(%item,1) , %k 1
while (%i <= %n) {
var %Data = $gettok($gettok(%item,%i,1),2,165) , %ctime = $gettok(%data,2,32)
if (%ctime) {
%com %i $+ $chr(93) $gettok(%data,1,32) $intime(%ctime) le $date(%ctime) à $time(%ctime) $gettok(%data,3,32)
inc %k
}
inc %i
}
if (%k == 0) { %com désolé mais il n'y a pas de traces de la persones ayant ajouté " $+ %mot $+ " à mes definition. }
}
else { $eval(%com,2) je ne conais pas la definition de %mot }
}
else { %com seul l'admin peu efectuer cette commande. }
}
alias wapprend {
var %table = Wbs.apprend.data , %mot = $strip($1) , %def = $remove($replace($2-,$chr(32),$chr(160)),$chr(1),$chr(165)) , %item = $hget(%table,%mot) , %chans = $aget(chans)
var %com = $iif($aget(com),$eval($ifmatch,2),.msg botserv say $chan) , %nick = $iif($nick,$ifmatch,$me)
if ($aget(ap) == 1) {
if ($findtok(%chans,$chan,32) || %chans == $chr(35)) {
if (%mot) {
if (%def) {
if ($calc(942 - $len(La definition de " $+ %mot $+ " est: %item %def %nick $ctime $chan)) <= 0) { %com Je suis désolée %nick mais la taille totale des caracteres autorisée pour cette definition a étée depassé: utilise une definition avec moin de letres. | return }
if (%item) {
var %tmp = $ifmatch , %nick = $iif($nick,$ifmatch,$me)
if (!$findtok($strip(%tmp),$strip(%def),1)) {
var %max = $aget(max) , %actd = $numtok($hget(%table,%mot),1)
if (%actd <= %max) {
hadd -m %table %mot %item $+ $chr(1) $+ %def $+ $chr(165) $+ %nick $ctime $chan $+ $chr(165)
hsave -o %table $wbshdir $+ %table $+ .txt
if ($aget(last.def. $+ $chan) == %item) { hdel %table last.def. $+ $chan }
$eval(%com,2) c'est bon %nick j'ai bien retenue la $calc($numtok(%item,1) +1) $+ eme definition de %mot $+ .
}
else { $eval(%com,2) Desolé %nick mais le nombre maximum de defintion pour %mot a été atteind, %actd definition onts étées enregistrées }
}
else { $eval(%com,2) Desolé %nick mais je connais deja cette definition de %mot $+ . }
}
else {
hadd -m %table %mot %def $+ $chr(165) $+ %nick $ctime $chan $+ $chr(165)
wbssave %table
$eval(%com,2) c'est bon %nick j'ai bien retenue la definition de %mot $+ .
}
}
else { $eval(%com,2) Tu ne m'a meme pas donné de defintion à appendre %nick $+ . }
}
else { $eval(%com,2) Donne moi deja un mot et une definition pour que je puisse apprendre qqch... }
}
}
else { $eval(%com,2) je suis désolée mais l'admin a interdis cette commande à causes des abus }
}
alias mdef {
var %table = Wbs.apprend.data , %mot = $strip($1) , %item = $hget(%table,%mot) , %chans = $aget(chans) , %nick = $iif($nick,$ifmatch,$me)
if ($findtok(%chans,$chan,32) || %chans == $chr(35)) {
var %Def = $hget(%table,%mot) , %com = $iif($aget(com),$eval($ifmatch,2),.msg botserv say $chan)
if ($gettok($aget(last.def. $+ $chan),1,32) != %mot $+ $2) {
if (!$aget(tflood)) {
hadd -mu600 Wbs.apprends last.def. $+ $chan %mot $+ $2 $ctime
if (%def) {
if ($2) {
var %def2 = $gettok($gettok(%def,$2,1),1,165)
if (%Def2) { %com La definition de " $+ %mot $+ " est: %def2 }
else { %com Je suis désolée %nick mais je ne connais pas la $2 $+ $iif($1 == 1,er,eme) definition de " $+ %mot $+ ". }
}
else {
var %n = $numtok(%def,1) , %i 1
while (%i <= %n) {
var %def2 = $gettok($gettok(%def,%i,1),1,165)
if (c !isincs $chan($chan).mode) { $eval(%com,2) La definition de " $+ %mot $+ " est: %def2 }
else { %com La definition de " $+ %mot $+ " est: $strip(%def2) }
inc %i
}
}
}
else { %com je ne connais pas la definition de " $+ %mot $+ " $+ . }
}
else {
%com Desolé %nick mais tu dois attendre $duration($iif($aget(mflood),$ifmatch,1)) et non pas $duration($calc($ctime - $gettok($aget(tflood),1,32))) $&
entre chaque chaque !def sur le chan
}
hadd -mu [ $+ [ $iif($aget(mflood),$ifmatch,1) ] ] wbs.apprends tflood $ctime %nick
}
else { %com Desolé mais on m'a deja demandé cette definition %nick $+ , il y a $intime($gettok($aget(last.def. $+ $chan),2,32)) $+ . }
}
}
;################# debut pour la convertion ####################
alias apcvt2 {
if (!%dossierdef) { wecho Impossible de trouver le fichier des def | halt }
var %i = $apnum
while (%i > 0) {
var %def = $ini(%dossierdef,%i) , %n = $apget(%def,0) , %m 1
while (%n >= %m) {
aphadd Wbs.apprend.data %Def $apget(%def,%m)
inc %m
}
dec %i
}
}
alias -l apnum { return $ini(%DossierDef,0) }
alias -l apget {
if ($2 != 0) { return $readini(%DossierDef,n,$1,$2) }
else {
var %i 1
while ($readini(%DossierDef,n,$1,%i)) {
inc %i
}
return $calc(%i -1)
}
hsave -o Wbs.apprend.data $wbshdir $+ Wbs.apprend.data.txt
}
alias -l aphadd {
var %table = $1 , %item = $2 , %val = $3-
if (%table) && (%item) && (%val) {
var %act = $hget(%table,%item) , %result = %act $chr(1) %val
hadd -m %table %item %result
}
}
;################# Fin de la convertion ####################
alias oubli {
var %def = $strip($1) , %com = $iif($aget(com),$eval($ifmatch,2),.msg botserv say $chan) , %table = Wbs.apprend.data , %o = 1 , %data = $hget(%table,%def) , %n = $numtok(%data,1) , %i 1
if ($gettok(%data,2,32)) {
if (!$2) {
while (%i <= %n) {
var %tmp = $gettok($gettok(%data,%i,1),2,32)
if ($nick == %tmp) { inc %o }
inc %i
}
}
elseif ($gettok($gettok(%data,$2,1),2,32) == $nick) { var %o = %n }
}
if (!$nick || %o == %n) {
if (%Def) {
if ($hget(Wbs.apprend.data,%def)) {
if (!$2) {
hdel Wbs.apprend.data %def
%com definition de " $+ %Def $+ " effacée.
}
else {
var %tmp = $hget(%table,%def)
if ($numtok(%tmp,1) >= $2) {
if ($deltok(%tmp,$2,1)) { hadd -m %table %def $v1 }
else { hdel %table %def }
%com la $2 $iif($2 == 1,er,eme) definition de " $+ %Def $+ " à étée effacée.
}
else { %com il n'y à pas de $2 $iif($2 == 1,er,eme) definition à " $+ %def $+ " il n"y en à que $numtok(%tmp,1) $+ . }
}
hdel %table last.def. $+ $chan
wbssave %table
}
else { %com definition de " $+ %def $+ " inconue }
}
else { %com parametres insufusant }
}
else { %com vous n'avez pas access a cette commande }
}
dialog wbs.ap.def {
title "Visioneur de definitions"
size -1 -1 295 138
option dbu
list 1, 2 3 67 132, sort size
text "Mot", 2, 71 4 10 8
edit "", 3, 82 3 172 10, autohs
list 4, 71 14 183 121, size hsbar
button "Effacer", 5, 255 15 37 12
button "Afficher", 6, 255 2 37 12
}
on *:dialog:wbs.ap.def:*:*:{
if ($devent == init) {
var %n = $hget(wbs.apprend.data,0).item , %i 1
while (%i <= %n) {
adid 1 $hget(wbs.apprend.data,%i).item
inc %i
}
}
elseif ($devent == sclick) {
if ($did == 1) {
odid 3 1 $did(1).seltext
rdid 4
var %data = $replace($hget(wbs.apprend.data,$did(3)),$chr(160),$chr(32)) , %n = $numtok(%data,1) , %i 1
while (%i <= %n) {
adid 4 %Def $gettok(%data,%i,1)
inc %i
}
}
elseif ($did == 5) {
if ($?!="Etes vous sur de vouloir supprimer cette definition ?") {
hdel wbs.apprend.data $did(3)
did -d $dname 1 $did(1).sel
rdid 4
rdid 3
hsave -o Wbs.apprend.data $wbshdir $+ Wbs.apprend.data.txt
}
}
elseif ($did == 6) {
rdid 4
var %data = $replace($hget(wbs.apprend.data,$did(3)),$chr(160),$chr(32)) , %n = $numtok(%data,1) , %i 1
while (%i <= %n) {
adid 4 %Def $gettok(%data,%i,1)
inc %i
}
}
}
}
;################# fin pour la convertion ####################
alias ap.makepage {
var %file = wbs.apprends.html , %table = wbs.apprend.data , %n = $hget(%table,0).item , %i 1 , %com = .fwrite -n %file
if ($fopen(%file)) { fclose %file }
if ($exists(%file)) { .remove %file }
write %file <BR>
.fopen %file %file
%com <title>Listes de Definition de $me $+ </title>
%com <body bgcolor="#FFFFFF" text="#000000" background="back3.gif"
%com <style type="text/css">
%com .Style7 { color: #FFFFFF }
%com a:link { color: #000000; }
%com a:visited { color: #000000; }
%com a:hover { color: #000000; }
%com body,td,th { font-family: Tahoma; font-size: 12px; color: #000000; }
%com a:active { color: #00FF00; }
%com </Style>
while (%i <= %n) {
var %mot = $hget(%table,%i).item , %data = $hget(%table,%mot) , %o = $numtok(%data,1) , %m 1
%com <HR><BR><TABLE WIDTH="100%" BORDER=2 CELLSPACING=2 CELLPADDING=2><TR ALIGN=LEFT VALIGN=TOP><TR><TH>N</TH><TH>Definition de " $+ %mot $+ " $chr(91) $+ %i $+ $chr(93) $+ </TH></TR>
while (%m <= %o) {
var %data2 = $gettok($gettok(%data,%m,1),1,165) , %def = $replace(%data2,$chr(160),$chr(32))
if (%Def) {
%com <TR><TD> $+ %m $+ </TD><TD> $+ $replace(%data2,$chr(160),$chr(32)) $+ </TD></TR>
}
inc %m
}
%com </table>
%com <BR><BR>
inc %i
}
.fclose %file
run %file
}
alias -l adid { did -a $dname $1- }
alias -l rdid { did -r $dname $1- }
alias -l odid { did -o $dname $1- }
alias -l wbsopen { dialog -m $1 $1 }
alias -l wbshdir { return $mircdir }
alias -l wecho { echo -a $1- }
alias -l wbssave { hsave -o $wbshdir $1 $1 $+ .txt }
Conclusion :
vous devez surement vous demander ce que fout cette ligne dans mon code:
alias -l wbshdir { return $mircdir }
et bien c'est tout simplement a cause du fait que ce script n'est pas fait pour fonctioner seul a la base, il est censsé accompagner un plus gros addon que j'ai fait ( j'ai bien tenté de le poster ici plusieurs fois mé bon sans success lol)
si vous trouvez des bugs/oubli de ma part prevenez moi ;)
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.