Ammélioration de code.

cs_eleve Messages postés 37 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 4 juillet 2012 - 4 juin 2004 à 03:29
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 - 6 juin 2004 à 10:46
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

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

www.DeFimIRC.tk
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
4 juin 2004 à 10:33
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
0
Kerrigan Messages postés 708 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 17 mars 2005
5 juin 2004 à 01:41
punaise sorn !!! terrible

tu dors pas ou koi ?!!

[le monde est une fenetre ouverte sur la personne que je ne dois pas etre]
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
5 juin 2004 à 09:42
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_eleve Messages postés 37 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 4 juillet 2012 1
5 juin 2004 à 11:09
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
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
5 juin 2004 à 18:12
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
0
cs_eleve Messages postés 37 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 4 juillet 2012 1
5 juin 2004 à 20:21
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.
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
6 juin 2004 à 09:33
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
0
cs_eleve Messages postés 37 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 4 juillet 2012 1
6 juin 2004 à 10:17
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é.

:)
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
6 juin 2004 à 10:46
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
0
Rejoignez-nous