Ammélioration de code.

Signaler
Messages postés
37
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2012
-
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
-
Tout d'abord bonjour à tous.

Doila j'ai fait un petit script pour mon bot (que j'ai fait également). Débutant en mIRC scripting, je bute sur deux ou trois petites choses.

je vous met le script et je m'expliquerais après.

;   - Gestion des annnonces -

ON *:TEXT:!annonces:#:{
  if ($istok(%list_mbs,$nick,44)) {
    play $nick annonces.TXT
  }
  else {
    notice $nick Tu dois être membre pour avoir un accès.
  }
}

ON *:TEXT:!addannonce#:.notice $nick  Tapes !addannonce + ton annonce si tu es membres ! 

ON *:TEXT:!addannonce:#::{ 
  if ($istok(%list_mbs,$nick,44)) {
    write ANNONCES.TXT  $nick  a entré l'annonce suivante le  $date : $$2-  
    notice $nick Message correctement enregistré. 
  }
  else {
    notice $nick Tu dois être membre pour avoir un accès.
  }
}

ON *:TEXT:!delannonces:#:{
  if ($istok(%list_admin,$nick,44)) {
    remove ANNONCES.TXT
    notice Annonces correctement supprimés. 
  }
  else {
    notice $nick Tu dois être Admin pour supprimer ce fichier..
  }
}



Ce que je voudrais amméliorer, enfin je compte sur vous la dessus :)

- ce serais de faire en sorte que lorsque l'on tape !annonces d'avoir les annonces en notice et non en pv comme actuellement.

- Je voudrais également pouvoir supprimer une ligne données. ex : !delannonce 3 . ce qui m'effacerais la troisième annonce de la liste.

je pense que certains d'entre vous seront éclairer ma lanterne car cela fait un moment que j'eesai de le faire mais en vain.

je vous remercie d'avance.

10 réponses

Messages postés
1025
Date d'inscription
vendredi 29 août 2003
Statut
Membre
Dernière intervention
28 mars 2005
2
J'essaye de te faire ça pour ce soir ;)

www.DeFimIRC.tk
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
8
Bonjour,

Voici votre code corrigé : (j'ai pris également la liberté d'optimiser quelques trucs)

ON *:TEXT:*:#:{
  if $istok(%list_mbs,$nick,44) {    if $1 !annonces { var %a 0, %b = $lines(annonces.txt) | while %b > %a { inc %a | notice $nick $read(annonces.txt,%a) } | halt }
    if $1 == !addannonce && !$2- { notice $nick Tapes !addannonce + ton annonce si tu es membre ! | halt }
    if $1 == !addannonce && $2- { write annonces.txt $nick a entré l'annonce suivante le $date : $2- | notice $nick Annonce correctement enregistrée. | halt }
  }  elseif ($1 !annonces || $1 !addannonce) { notice $nick Tu dois être membre pour avoir un accès. }
  if $1 == !delannonce && $2 && $istok(%list_admin,$nick,44) && $read(annonces.txt,$2) { write $+(-dl,$2) annonces.txt | notice $nick Annonce correctement supprimée.  }
  elseif $1 == !addannonce { notice $nick Tu dois être Admin pour supprimer cette annonce. }
}


PS : désolé ReMi34, mais je n'avais rien à faire en ce moment :x
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667

:question) Sorn-Creation
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

punaise sorn !!! terrible

tu dors pas ou koi ?!!

[le monde est une fenetre ouverte sur la personne que je ne dois pas etre]
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
8
Kerrigan : si si il m'arrive de dormir quand j'ai le temps. (lol)
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667

:question) Sorn-Creation
Messages postés
37
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2012
1
Merci beaucoup ça marche à merveille.

je vois que j'ai encore enormément à apprendre pour peut être, un jour, arrivé à votre niveau :)

encore une petite question.

lorsque je tape !annonces et qu'il ni a pas d'annonces enregistrées je voudrais avoir une notice du style

pas d'annonces enregistrées tape !addannonce pour en ajouter une.

pareil j'ai essayer mais j'ai encore du mal.

merci d'avance
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
8
Pour cela, tu dois rajouter cette condition :

if $1 == !annonces && !$lines(annonces.txt) { notice $nick Pas d'annonce enregistrée, tapez !addannonce pour en ajouter une. | halt }


Place cette condition juste en dessous de celle contenant $istok(%list_mbs,$nick,44)
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667

:question) Sorn-Creation
Messages postés
37
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2012
1
une fois de plus merci.

pourrais tu par contre m'expliquer le "halt" car je n'ai pas tres bien suivi sur l'aide irc.

j'ai essayer de faire ceci mais avec un $null je voit donc que je n'étais pas sur la bonne voix.
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
8
Lorsque la commande /halt est éxécuté dans un remote, le
script en cours d'éxécution est stoppé.
En voici un exemple simple :

alias bla {
echo -a test | halt
echo -a test 2 ?
}


Dès que tu vas taper /bla, un /echo -a affichant test va s'éxécuter.
Le halt ensuite arrête immédiatement l'éxécution du script en cours (dans notre cas, l'alias bla), et la 2ème ligne comportant la commande /echo -a test 2 ? ne sera pas executé.
En bref se que tu dois retenir : dès qu'un halt est éxécuté dans ton remote, le remote en cours d'éxécution s'arrête.

Et sinon, pour le $null, tu peux l'oublier.
Exemple :
if %bla == $null { }
(qui veut donc dire si la variable %bla est vide)
Tu peux remplacer ca par :
if !%bla { }

if %bla != $null { }
(qui veut dire si la variable %bla n'est pas vide)
peut être remplacé par :
if %bla { }

Tu peux utiliser cette méthode pour tout se qui retourne $null,$false, ou 0
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667

:question) Sorn-Creation
Messages postés
37
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2012
1
Ah voila qui est plus clair. Je te remerci Sorn pour ton aide précieuse.

J'ai vu aussi de très bon tuto sur ton site, surtout celui sur les dialog. Cela ma vraiment aidé.

:)
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
8
De rien eleve :)
Bonne continuation
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667

:question) Sorn-Creation