doob666
Messages postés149Date d'inscriptionvendredi 3 novembre 2006StatutMembreDernière intervention25 janvier 2011
-
6 nov. 2008 à 18:18
doob666
Messages postés149Date d'inscriptionvendredi 3 novembre 2006StatutMembreDernière intervention25 janvier 2011
-
8 nov. 2008 à 21:18
Bonjour, j'ai fait un petit code pour op/deop/voice/devoice quelqu'un mais jepense que je ne gère pas encore assez bien $mid et $left car ça ne marche pas du tout, je n'ai aucune réponse de mirc, même pas une petite erreur :s
(l'alias botoff n'est pas de moi et je sais plus de qui il est, l'alias ircop viens d'une de mes précédente question)
Merci de m'aider.
Je vous met si dessous le code
Alias botoff {
if ($me ison $$1) && ($server == ircvoila2.tchat.orange.fr) {
var %i = $nick($$1,0,o)
while %i {
if $regex($nick($$1,%i,o),^(Niubot0[0-9]|Niubot1[0-9]|Niubot2[0-9]|Niubot3[0-9])$) { return $regml(1) }
dec %i
}
}
}
alias ircop return $iif(O isincs $usermode,1,0)
on *:input:*:{
if ($left($1-,1) == !) {
if ($mid($1,2) == d) {
if ($mid($1,3) == o) {
if (($me isop #) || ($ircop)) {
if $2 == $null {
mode # -o $me
}
else {
mode $chan -o $2
}
}
}
if ($mid($1-,3) == v) {
if $2 == $null || $me !isop # || $ircop || $me isvo # {
mode # -v $me
}
if $2 == $null || $me !isop # || !$ircop {
echo -a 3;4 Vous n'êtes pas @op
haltdef
}
if $2 == $null || $me isop # || $ircop || $me !isvo # {
echo -a 3;4 Vous êtes déjà devoice
haltdef
}
if $2 != $null || $me !isop # || !$ircop {
echo -a 3;4 Vous n'êtes pas @op
haltdef
}
if $2 != $null || $me isop # || $ircop || $2 !isvo # {
mode # -v $2
}
}
}
if (mid($1-,2) == o) { if $server ircvoila2.tchat.orange.fr && $2 $null && $me !isop # {
msg $$botoff(#) op $$?*="Entrez votre mot de passe Niubot"
} if $server !ircvoila2.tchat.orange.fr || $2 $null || $me !isop # || $ircop {
mode # +o $me
} if $server !ircvoila2.tchat.orange.fr || $2 $null || $me !isop # || !$ircop {
echo -a 3;4 Vous n'êtes pas @op
haltdef
}
if $2 != $null || $me !isop # || !$ircop {
echo -a 3;4 Vous n'êtes pas @op
haltdef
}
if $2 != $null || $me isop # || !$ircop || $2 !isop # {
mode # +o $2
}
if $2 != $null || $me !isop # || $ircop || $2 !isop # {
mode # +o $2
}
}
if ($mid($1-,2) == v) { if $server ircvoila2.tchat.orange.fr && $2 $null && $me !isvo # && $me !isop {
msg $$botoff(#) voice $$?*="Entrez votre mot de passe Niubot"
} if $server !ircvoila2.tchat.orange.fr || $2 $null || $me !isop # || $ircop {
mode # +v $me
} if $server !ircvoila2.tchat.orange.fr || $2 $null || $me !isop # || !$ircop {
echo -a 3;4 Vous n'êtes pas @op
haltdef
}
if $2 != $null || $me !isop # || !$ircop {
echo -a 3;4 Vous n'êtes pas @op
haltdef
}
if $2 != $null || $me isop # || $ircop || $2 !isvo # {
mode # +v $2
}
}
}
}
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 7 nov. 2008 à 01:08
Tiens, l'alias botoff me rappelle quelque chose :-)
Pour ta question, je te conseille de ne PAS utiliser $mid tant que tu pourras. Je trouve ton code illisible : pourquoi faire des $mid de partout quand, en réalité, tu veux vérifier si $1 !dop, $1 !dv, etc. ? De plus, il me semble que $mid prend 3 arguments et non deux, mais je n'ai pas de mIRC sous la main pour tester.
Au pire, le meilleur conseil à te donner est comme pour beaucoup de langages de débugguer toi-même en mettant des echo partout : si tu n'es pas sûr d'une ligne ou d'une condition, tu mets juste avant un /echo qui va te montrer si ton "==" a des chances de fonctionner, et juste après un "/echo -a J'ai réussi à passer la condition 1 ! donc etc."
doob666
Messages postés149Date d'inscriptionvendredi 3 novembre 2006StatutMembreDernière intervention25 janvier 2011 7 nov. 2008 à 07:10
PaDa merci alors pour l'alias botoff lol.
Oui tu as raison je vais passer par les $1 == ... (j'aime me compliquer la vie en fait lol). J'ai déjà testé de mettre des echo de partout, mais je ne reçois pas leurs réponse lol. Pour le $mid tu as raison je viens de voir qu'il comporte 3 arguments ( J'ai la facheuse habitude de regarder l'aide mirc un peu trop tard :x)
Merci bonne journée.
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 7 nov. 2008 à 13:22
Heu... Le mec il dit qu'il débute plus ou moins (en tout cas il apprend)... Il a du mal avec $mid() et $left() et tu viens lui balancer des tokenize et des hash tables sans rien expliquer...
Un peu comme si un mec balance un pattern d'une expression régulière qui fait 10 lignes sans en expliquer le fonctionnement. Bonjour pour la compréhension...
Franchement, dans un but pédagogique, ce serait bien qu'il arrive déjà à bien comprendre le fonctionnement des identifieurs de base avant de s'attaquer à la gestion des structures de données complexes non? ...
Vu la tronche du code qu'il nous donne là, il vaut peut-être mieux voir avec lui la démarche algorithmique avant de passer à la technique de réalisation...
Enfin bon, il va falloir que je me remette un peu la tête dans l'aide de mIRC parce que ça me paraît loin tout ça...
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 7 nov. 2008 à 16:11
Serais tu nostalgique de ce merveilleux 'langage' :) !?
Sinon, c'est evident qu'il ne faut pas utiliser $mid (cf Pada) et que lui donner un code (meme si super), niveau pedagogie, c'est jamais bien (cf Tofu)
Et WorldDMT, meme si ca parait tres gros, ton on text n'est qu'un vicieux code insecurise, la maniere dont il est ecrit permet d'executer nimporte quoi si l'on est intelligent.J'ai surement mal compris mais je pense que :
if ($1 == $3) $iif($2 != $null,$4,$5)
Si $1 == $3, ca implique que $1 != $null et que $3 != $null DONC que $2 != null, ce qui rend la condition inutile et donc le code faux ou illogique :/
Quelque truc pour faire chier :
if ($me ison $$1) && ($server == ircvoila2.tchat.orange.fr) {
var %i = $nick($$1,0,o)
si $1 n'existe pas, alors des la ligne du if, on arretera le code, remettre $$1 ds le /var n'est pas utile (idem ds le regex)
Et :
if $regex($nick($$1,%i,o),^(Niubot0[0-9]|Niubot1[0-9]|Niubot2[0-9]|Niubot3[0-9])$) { return $regml(1) }
pourquoi pas :
if $regex($nick($1,%i,o),^(Niubot\d+)$)
ou un truc du style (je suis pas sur que cette correction soit juste mais c'est l'idee qu'il faut voir.)
doob666
Messages postés149Date d'inscriptionvendredi 3 novembre 2006StatutMembreDernière intervention25 janvier 2011 8 nov. 2008 à 21:18
bonsoir
@Wims
if $regex($nick($1,%i,o),^(Niubot\d+)$) << le d+ corresponds à quoi? un identifieur pour les chiffres?
@WorldDMT
l'alias botoff n'est pas de moi
!op§mode $chan +o $2§mode $chan +o $nick << §mode j'ai pas tout compris a quoi cela sert :s désolé
de plus moi et les hashtable on est pas très copain lol, d'habitude je les fait faire par un amis mais la j'ai vraiment le désir de dévelloper seul mon apprentissage de mirc.
@tofu
Je "re"debute lol j'ai déjà fait pas mal de chose mais je n'étais pas seul on me guidais.