UN SYSTÊME VIP TRÈS SIMPLE

RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009 - 16 juil. 2006 à 17:03
NOMADYSTIC Messages postés 21 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 10 juillet 2007 - 10 juil. 2007 à 09:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38636-un-systeme-vip-tres-simple

NOMADYSTIC Messages postés 21 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 10 juillet 2007
10 juil. 2007 à 09:38
Je post ici et ailleur car jai pris cette source et les doublé pour mon usage, mais jessais de faire le tout en un seul.mrc mais le on join semble pas fonctioné, quelqu'un pourrais maider? la source original est ici http://www.ircfr.com/codes/SYSTEME-VIP-TRES-SIMPLE_38636.aspx et celle que je bricolle ici:



alias IDoAdd {
if ((!$read(crypt\IDoList.txt,w,* $+ $address($$1,2) $+ *)) && ($$1 ison $$2)) {
write crypt\IDoList.txt $address($$1,2)
echo -a 15[ID-System] $$1 avec l'host $address($$1,2) ajouté à la liste des OPs.
}
else {
echo -a 15[ID-System] $$1 ( $+ $address($$1,2) $+ ) est déjà dans la list ou n'est pas présent sur $$2 $+ .
}
}
alias IDvAdd {
if ((!$read(crypt\IDvList.txt,w,* $+ $address($$1,2) $+ *)) && ($$1 ison $$2)) {
write IDvlist.txt $address($$1,2)
echo -a 14[ID-System] $$1 avec l'host $address($$1,2) ajouté à la liste des Voices.
}
else {
echo -a 14[ID-System] $$1 ( $+ $address($$1,2) $+ ) est déjà dans la list ou n'est pas présent sur $$2 $+ .
}
}
alias IDoDel {
if (($read(crypt\IDoList.txt,w,* $+ $address($$1,2) $+ *) != $null) && ($$1 ison $$2)) {
write -dw $+ $address($$1,2) crypt\IDoList.txt
echo -a 15[ID-System] $$1 avec l'host $address($$1,2) effacé de la liste des OPs.
}
else {
echo -a 15[ID-System] $$1 ( $+ $address($$1,2) $+ ) n'est pas dans la list ou n'est pas présent sur $$2 $+ .
}
}
alias IDvdel {
if (($read(crytp\IDvList.txt,w,* $+ $address($$1,2) $+ *) != $null) && ($$1 ison $$2)) {
write -dw $+ $address($$1,2) crypt\IDvList.txt
echo -a 14[ID-System] $$1 avec l'host $address($$1,2) effacé de la liste des Voices.
}
else {
echo -a 14[ID-System] $$1 ( $+ $address($$1,2) $+ ) n'est pas dans la list ou n'est pas présent sur $$2 $+ .
}
}
alias IDoList {
var %x = 1
var %i = $lines(crypt\IDoList.txt)
if (%i) {
while (%x <= %i) {
echo -a 15[Liste des hosts OPs] $read(crypt\IDoList.txt,%x)
inc %x
}
}
else {
echo -a 15[ID-System] Il n'y a aucuns OPs dans la liste pour le moment.
}
}
alias IDvList {
var %x = 1
var %i = $lines(crypt\IDvList.txt)
if (%i) {
while (%x <= %i) {
echo -a 14[Liste des hosts Voices] $read(crypt\IDvList.txt,%x)
inc %x
}
}
else {
echo -a 14[ID-System] Il n'y a aucuns Voice dans la liste pour le moment.
}
}

on *:JOIN:#Last.Call:{
if ($read(crypt\VIPoList.txt,w,* $+ $address($nick,2) $+ *) != $null) {
mode $chan +o $nick
msg $chan 3ID Confirmed. Access authorized.
msg $chan 5Welcome in the pack! Bienvenue dans la meute! ;)
}
}

on *:JOIN:#Last.Call:{
if ($read(crypt\IDvList.txt,w,* $+ $address($nick,2) $+ *) != $null) {
mode $chan +v $nick
msg $chan 3ID Confirmed. access authorized.
msg $chan 5Welcome in the pack! Bienvenue dans la meute!
}
}
NOMADYSTIC Messages postés 21 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 10 juillet 2007
7 juil. 2007 à 10:02
au fait bonne continuité au codeur du code, jai apris en jouent avec ;) 9/10 mais sa ses la note dun gars qui code pas :P
NOMADYSTIC Messages postés 21 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 10 juillet 2007
7 juil. 2007 à 09:59
jai ajouter des popup et tout car je veut me faire un script et jai doubler pour avoir les 2 mode.. on peut compresser ca en une seul remote car la jen est 2 .mrc

menu bar
UnderNet VIP
.V-OP
..Add VIP:/vipoadd $$?="Nicknames:" #$$?="Chan:"
..Del VIP:/vipodel $$?="Nicknames:" #$$?="Chan:"
..VIP List:/vipolist
.V-Voice
..Add VIP:/vipvadd $$?="Nicknames:" #$$?="Chan:"
..Del VIP:/vipvdel $$?="Nicknames:" #$$?="Chan:"
..VIP List:/vipvlist

Nick List
UnderNet VIP
.V-OP
..Add VIP:/vipoadd $$1 $chan
..Del VIP:/vipodel $$1 $chan
..VIP List:/vipolist
.V-Voice
..Add VIP:/vipvadd $$1 $chan
..Del VIP:/vipvdel $$1 $chan
..VIP List:/vipvlist

alias vipoadd {
if ((!$read(viplist.txt,w,* $+ $address($$1,2) $+ *)) && ($$1 ison $$2)) {
write viplist.txt $address($$1,2)
echo -a 15[VIP-System] $$1 avec l'host $address($$1,2) ajouté à la liste des VIPS.
}
else {
echo -a 15[VIP-System] $$1 ( $+ $address($$1,2) $+ ) est déjà dans la VIP list ou n'est pas présent sur $$2 $+ .
}
}
alias vipodel {
if (($read(viplist.txt,w,* $+ $address($$1,2) $+ *) != $null) && ($$1 ison $$2)) {
write -dw $+ $address($$1,2) viplist.txt
echo -a 15[VIP-System] $$1 avec l'host $address($$1,2) effacé de la liste des VIPS.
}
else {
echo -a 15[VIP-System] $$1 ( $+ $address($$1,2) $+ ) n'est pas dans la VIP list ou n'est pas présent sur $$2 $+ .
}
}
alias vipolist {
var %x = 1
var %i = $lines(viplist.txt)
if (%i) {
while (%x <= %i) {
echo -a 15[Liste des hosts VIPS] $read(viplist.txt,%x)
inc %x
}
}
else {
echo -a 15[VIP-System] Il n'y a aucuns VIP dans la liste pour le moment.
}
}
on *:JOIN:#N:{
if ($read(viplist.txt,w,* $+ $address($nick,2) $+ *) != $null) {
mode $chan +o $nick
msg $chan ID 3Confirmed access authorized.
msg $chan 0, 2007 14::15 VIP Détecté 14::0 $nick
msg $chan 5Welcome in the pack! Bienvenue dans la meute! ;)
}
}

@@@@@@@@@@@@@@@@@@@@@

alias vipvadd {
if ((!$read(viplist2.txt,w,* $+ $address($$1,2) $+ *)) && ($$1 ison $$2)) {
write viplist2.txt $address($$1,2)
echo -a 14[VIP-System] $$1 avec l'host $address($$1,2) ajouté à la liste des VIPS.
}
else {
echo -a 14[VIP-System] $$1 ( $+ $address($$1,2) $+ ) est déjà dans la VIP list ou n'est pas présent sur $$2 $+ .
}
}
alias vipvdel {
if (($read(viplist2.txt,w,* $+ $address($$1,2) $+ *) != $null) && ($$1 ison $$2)) {
write -dw $+ $address($$1,2) viplist2.txt
echo -a 14[VIP-System] $$1 avec l'host $address($$1,2) effacé de la liste des VIPS.
}
else {
echo -a 14[VIP-System] $$1 ( $+ $address($$1,2) $+ ) n'est pas dans la VIP list ou n'est pas présent sur $$2 $+ .
}
}
alias vipvlist {
var %x = 1
var %i = $lines(viplist.txt)
if (%i) {
while (%x <= %i) {
echo -a 14[Liste des hosts VIPS] $read(viplist2.txt,%x)
inc %x
}
}
else {
echo -a 14[VIP-System] Il n'y a aucuns VIP dans la liste pour le moment.
}
}
on *:JOIN:#N:{
if ($read(viplist2.txt,w,* $+ $address($nick,2) $+ *) != $null) {
mode $chan +v $nick
msg $chan ID 3Confirmed access authorized.
msg $chan 0, 2007 14::15 VIP Détecté 14::0 $nick
msg $chan 5Welcome in the pack! Bienvenue dans la meute! ;)
}
}
NOMADYSTIC Messages postés 21 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 10 juillet 2007
7 juil. 2007 à 09:44
ca marrche la mais on peut metre le choix de +v ou +o ? moi je les cloné la
NOMADYSTIC Messages postés 21 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 10 juillet 2007
7 juil. 2007 à 06:40
je narive pas a men servir ces normal?
Foufoune_Palace Messages postés 19 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 30 septembre 2006
30 sept. 2006 à 14:23
Allez , je met 5/10 , sa peut toujours servire à quelques choses
MJ92 Messages postés 185 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 14 décembre 2014
4 sept. 2006 à 15:07
LEBARONROUGE,
Je crois qu'il a été dit que c'était dans un .txt et c'est l'user qui a la source (en l'occurence ici c'est Hathor) :
Utilisation: /vipadd pseudo #salon pour ajouté qu'unlqun dans la vip list.
Utilisation: /vipdel pseudo #salon pour effacer qu'unlqun de la liste des vips.
Utilisation: /viplist pour voir la liste de toutes les hosts vips.
Donc l'user (l'op) du chan qui ajoute celui qu'il veut en n'importe quel mode

... Bref, un bon code qui n'est pas très clair, moi j'utiliserais la liste des notifiés comme ca moins de soucis ^^
cs_lebaronrouge Messages postés 288 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 14 février 2009
3 sept. 2006 à 16:13
Et la condition qui vérifié si l'on est au moins autoriser à voicer? (op) ???
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
4 août 2006 à 14:07
Pour $address($nick,2) tu as $wildsite (plus court ...)
Sinon dans l'alias viplist de Hisoka, il manque un } à la fin

M'enfin j'ai pas l'impression que l'auteur veuille mettre à jour son code :p
hisoka2501 Messages postés 264 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 7 juillet 2009
4 août 2006 à 13:23
bon deja ca se vois: c du torchon et je m'explique:

# else {
# echo -a [VIP-System] $$1 ( $+ $address($$1,2) $+ ) est déjà dans la VIP list ou n'est pas présent sur $$2 $+ .
# }

tu m'explique en quoi un {} est nésscéssaire ici ? quand il n'y a qu'une seulle instruction cela ne sert A RIEN si ce n'est ralentir le code

utiliser un fichier texte pour faire ce genre de taff, c une blague ? utilise au moin du ini car une boucle a chaque join ca fait mal !

pour ce genre de choses j'aurais meme penssé plus a une hash table !

# if ($read(viplist.txt,w,* $+ $address($nick,2) $+ *) != $null) {

dacord dacord je vois...
alors une fois épuré ca donne:

if ($read(viplist.txt,w,$+(*,$address($nick,2),*))) {


# on *:JOIN:#NomDuSalon:{

je te fais grace de celui la ou je ne dirais que tu ne t'est pas foulé...

organise un .ini avec:
[section]
item=
sous la forme de:
#cannel
IDENT=$nick

ca serais deja un peu plus fiable et surtout bien plus rapide


# msg $chan VIP détecté: $nick
sympa pour flood un canal en cas de net split, comme si le serveur en avais pas deja assé a faire


# alias viplist {
# var %x = 1
# var %i = $lines(viplist.txt)
# if (%i) {
# while (%x <= %i) {
# echo -a [Liste des hosts VIPS] $read(viplist.txt,%x)
# inc %x
# }
# }

devien:

alias viplist {
var %x 1 , %i $lines(viplist.txt)
if (%i) return
while (%x <= %i) {
echo -a [Liste des hosts VIPS] $read(viplist.txt,%x)
inc %x
}

ca parais deja plus propre
aussis si tu tiens vraiement a utiliser un fichier texte classique tu devrais songer au file handeling

voila je ne note pas
cs_lebaronrouge Messages postés 288 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 14 février 2009
24 juil. 2006 à 21:04
Tient j'ai à peu pres le même systeme dans mon script perso :)
Le principe peut être sympa mais juste pour les server ne gérant pas cette commande.
Il manque un petit dialogue pour afficher la VIP liste,la mienne comporte 2 fichiers,un qui affiche les VIP par pseudo pour le dialogue ( plus clair à lire que des hosts) et une seconde qui sert au remote à vérifier si la personen entrée a son host dedans pour être voicé,j'ai d'ailleur ajouté aussi un remote complémentaire à toutes mes protections de salons incluant la protections des kick et kickbans de la personne bénéficiant d'u nacces vVIP.
je vais poster le mien pour te donner une idée et au cas ou il pourait servir à quelqu'un :)

Ca te permettra de voir et comparer pour améliorer le tient ou autre ;)
MJ92 Messages postés 185 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 14 décembre 2014
23 juil. 2006 à 03:36
DJ_BoOmEr, les termes ne sont pas corrects... ouais je suis d'acc avec toi concernant la personne étant absente pas d'accès. Mais comme tu le dis, certain server n'ont pas de BotServ, mais le ChanServ sait également voicé d'ou l'addon n'est pas forcément nécessaire, mais plutot intéressant... et ce n'est pas une aliase, mais un remote, les alias blabla { sont des remotes, ou sinon ce serait : blabla { ou au pire /blabla {

Et pour finir, il serait plus intéressant Hator pour ta source de faire ce que te dis Arkanis (bon scripteur :p), de changer (,2) pour des raisons d'ip variables...

Sinon bien pensé... Bonne continuation !
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
17 juil. 2006 à 15:21
Le but de son code n'est pas de remplacé botserv, il stock juste les $address des differents $nick et quand les users *vip* se connecte sur le salon ils sont voicésn aucun rapport avec botserv
DJ_BoOmEr Messages postés 22 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 30 août 2007
17 juil. 2006 à 12:55
Moi je suis peut etre méchant (mais ce n'est pas mon but hien ;)) mais je ne voit pas l'intéret de ceette source sachant que beaucoup de serveur ont ce que l'ont appelle des Acces ou le mode XOP ... ce qui fait que le host est mémoriser par le Bot, et que lorsque la personne join un channel, elle obtient le grade que l'Owner lui as attribué ... :) mais certain serveur ne dispose peut etre pas de cette fonction, donc elle peut etre utile ... (je pense notement a Quake car je ne connais pas son fonctionnement ... et étant donner qu'il n'as pas de BS, il est probable que cette aliase soit "nécéssaire" ...


Mais un autre point négatif (désolé :s) le problème de cette Aliase, c'est que si le propriétaire de l'aliase, ou plutot de la liste d'adresse, est pas connecté, alors meme si une personne VIP se connecte, elle n'aura pas son Voice ... :p

Voila c'est tout, mais désolé si je suis trop sévère ...

Ciao
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
16 juil. 2006 à 17:30
C'est un peu juste pour poster une source non ?
Pourquoi ne pas le rendre multi-salon\server ?
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
16 juil. 2006 à 17:03
tu prends l'adresse avec l'ip (,2), est-tu sûr que c'est un bon choix ?
Sachant que la plupart ont une connection qui reboot tous les jours pour changer d'IP, à mon avis, c'est pas ce qui est le plus malin de prendre ^^

var %a = ...
var %b = ...
devient : var %a ..., %b ...

Question utilité : c'est très réduit
Tu n'as même pas d'anti-flood sur le ON JOIN (sur un retour de net split, ça doit faire mal) et puis tu ne gères pas le fait qu'$address puisse être vide : renseigne toi à propos de l'IAL

Pour ton VIP LIST, tu ferais mieux d'utiliser /loadbuf, c'est plus rapide et plus simple


enlève le != $null ici : if ($read(viplist.txt,w,* $+ $address($nick,2) $+ *) != $null) {
ça devient : if ($read(viplist.txt,w,* $+ $address($nick,2) $+ *)) {
Rejoignez-nous