Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Système de plainte
#1
Money_euro 
Bonjour à toutes et à tous.

J'ai codé récemment un système de plainte, et je souhaitais vous le faire partager.

Si vous y voyez des erreurs, ou des améliorations à apporter.


tcl
########################
#Système de plainte par BlackNight#
########################
 
set chanplainte "#plaintes"
 
bind MSGM - "*plainte*" plainte
proc plainte { nick host ident arg } {
global chanplainte
putserv "NOTICE $chanplainte :6Une plainte a été déposée par $nick"
putserv "PRIVMSG $chanplainte :$nick dépose une plainte contre [lindex $arg 1]"
putserv "PRIVMSG $chanplainte :motif: [lrange $arg 2 end]"
putserv "PRIVMSG $chanplainte :Tapez !prend $nick pour prendre en charge la plainte"
putserv "NOTICE $nick :Votre plainte à bien été envoyée au staff. Elle sera traitée dans les plus brefs délais."
}
 
bind pub - !prend prend
proc prend { nick uhost handle channel arg } {
global chanplainte
   if ![string compare -nocase $channel "$chanplainte"] {
    set comp [lindex $arg 2]
     if ![string compare -nocase $comp ""] {
putserv "NOTICE [lindex $arg 0] :Votre plainte a été prise en charge par $nick." 
unset comp
	} else {
	putserv "NOTICE [lindex $arg 0] :Votre plainte a été prise en charge par $nick. informations complémentaires: [lrange $arg 1 end]"
 
 }
}
}
 
putlog " plaintes.tcl v1.1 by BlackNight"

#2
Euh y'a des carractères de couleurs la dans ton code
Et si je me souviens bien faut pas en mettre paske ça casse les flux RSS et tout du forum
Tu devrais plutôt mettre le machin de substitution, a savoir \003 pour le code couleur, \002 pour le gras, etc.... tout est substitué par TCL (la valeur est en octal).
Sinon je dirais que ça à l'air plutôt bien, mais ca vaudrait surement mieux de faire une vraie commande plutôt que *plainte* je pense.
Aussi, if ![string compare -nocase $comp ""] { -- Tu peux faire if {$comp ne ""}
#3
ça fait pas bizarre de taper !prend nick pour recevoir une plainte ? c'est un script pour adultes ? :]
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#4
Pour la dernière fois: Utilisez les bons codes pour la mise en forme de vos tcl (couleurs, gras, soulignés, ...)

Que ce soit pour le forum ou pour la portabilité, suivez les rêgles !
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
@ CrazyCat: désole pour les couleurs, j'en prend note pour ne plus refaire la même erreur.
En passant, merci pour le coup de main (IRC) pour le cinema.tcl (ca date d'il y a deux mois maintenant, mais bon.)

@Artix: J'ai été obligé de mettre *plainte* , car sur le serveur ou je me sert de ce code, j'utilise un alias Unreal. et sans les * *, cela ne fonctionne pas en passant par l'alias. Ci dessous le code de l'alias (je vais utiliser la balise code, ne sachant pas laquelle prendre pour du codage unreal).


Code:
alias "plainte" {
    format "^[^#]" {
        nick "MonBot";
        type normal;
        parameters "plainte %0-";
    };
    type command;
};
Artix Wrote:Aussi,
tcl
if ![string compare -nocase $comp ""] { --

Tu peux faire
tcl
if {$comp ne ""}
Je vais essayer ça dès que possible.
est-ce que de cette façon c'est correct ?:
tcl
bind pub - !prend prend
proc prend { nick uhost handle channel arg } {
global chanplainte
   if [$channel ne "$chanplainte"] {
    set comp [lindex $arg 2]
     if [$comp ne ""] {
putserv "NOTICE [lindex $arg 0] :Votre plainte a été prise en charge par $nick."
unset comp
   } else {
   putserv "NOTICE [lindex $arg 0] :Votre plainte a été prise en charge par $nick. informations complémentaires: [lrange $arg 1 end]"
 
}
}
}


@MenzAgitat: non pas pour adulte :p j'entendais cela dans le sens de prendre en charge (-:
#6
Cela serais pas mieu un :

tcl
if {$channel != "$chanplainte"} { putserv "notice $nick Hop hop hop tu n'est pas sur le bon salon pour sa"; return }


?
#7
@heretoc: Bah non, j'ai pas envie qu'il y ait un message d'erreur si ça n'est pas sur le bon salon.

Si des boulets trouvent ce genre de chose il peuvent s'amuser avec et faire lagger le bot. donc plutôt que de coder en plus un anti flood, autant pas le mettre directement.

d'autres suggestions ?
#8
ouai enfin tu peut faire en sorte qu'après 2 essais le bot shun la personne (a)
#9
bah c'est ce que je dis, ca reviens a faire du codage supplémentaire alors que sans, c'est aussi bien.
#10
Dans tous les cas pour faire un test c'est entre {} que tu mets, si tu mets entre [] pour lui c'est une commande.
Donc [$channel ...] revient à appeller la commande "#tonsalon" avec comme paramètre "ne #lechanplanite".


Possibly Related Threads…
Thread Author Replies Views Last Post
  Plainte avec contrôle anti flood Amand 0 150 02/09/2022, 18:34
Last Post: Amand
  Système de bannissement d'utilisateur qui idle trop longtemps sur un salon d'aide mecmec 4 2,789 15/08/2019, 00:38
Last Post: CrazyCat
  [Résolu] Commande /plainte pseudo raison gérer par un eggdrop avec un alias Unrealircd Alucard`68 3 4,016 01/02/2017, 03:39
Last Post: Alucard`68
  Plugin systeme dans un TCL ZarTek 7 6,217 21/06/2012, 00:27
Last Post: djkenny
  Petit système à améliorer alanfollow 5 3,872 09/12/2010, 22:04
Last Post: alanfollow
  Plainte.tcl Aragorn 11 7,730 14/04/2009, 12:36
Last Post: MorDenX

Forum Jump:


Users browsing this thread: 1 Guest(s)