Hash-table pour bot, !settopic & !loadtopic

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 137 fois - Téléchargée 32 fois

Contenu du snippet

Ce petit bout de code, sert a sauvegarder le topic dans une hash-table pour pouvoir le loader plus tard, au cas où il serais suprimée.
Enfin bon, j'ai surtout codé ce petit add-on pour apprendre les hash-table

Source / Exemple :


on *:start:{
 ;dès le demarrage du script
 hmake bot 100
 ;on crée la table bot
 hload bot hash-bot.txt
 ;on load la table
}

on *:TEXT:!settopic*:#:{ if ($nick isop #) {
 ;on attend qu'un op tape !settopic <topic>
  hload bot hash-bot.txt
 ;on crée et on load la table
    if ($hget(bot,$+(topic.,$chan)) == $null) {
  ;si il n'existe pas de topic sauvegader pour se channel
      hadd bot $+(topic.,$chan) $2-
  ;ajoute a la table bot l'item topic.$chan avec la valeur $2-
      hsave -o bot hash-bot.txt
  ;sauvegarde la table bot dans hash-bot.txt
      notice $nick Topic Enregistrée !
  ;envoi une notice
    } 
    else { 
   ;si un topic existe deja pour ce chan
      hdel bot $+(topic.,$chan)
   ;on le supprime
      hadd bot $+(topic.,$chan) $2-
   ;on rajoute le nouveau
      hsave -o bot hash-bot.txt
   ;on sauvegarde dans hash-bot.txt
      notice $nick Topic Enregistrée !
  ;notice
    }
  }
}

on *:TEXT:!loadtopic:#:{ if ($nick isop #) {
 ;attend qu'un op tape !loadtopic
  hload bot hash-bot.txt
  ;on crée et on load la table
    if ($hget(bot,$+(topic.,$chan)) != $null) {
    ;si un topic est trouvée pour ce chan dans la base
      topic # $hget(bot,$hmatch(bot,$+(topic.,$chan),1))
    ;on le met
    }
else { 
  ;si aucun topic n'est trouvé
   notice $nick Aucun topic trouvé
  ;on le dit
 }
}

Conclusion :


Voila, je l'est testé, il n'y a aucun bug (enfin j'espere).
J'espere que ce code à aidé les debutant.

n3o

A voir également

Ajouter un commentaire

Commentaires

tempusus
Messages postés
363
Date d'inscription
dimanche 8 février 2004
Statut
Modérateur
Dernière intervention
9 octobre 2017
1
Soir,

source commentée, pas très utile mais bonne base.
6/10

Cordialement

Tempusus
Admin CS
cs_neo66
Messages postés
125
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
20 mai 2006

Merci Xquizz :)
Xquizz
Messages postés
3
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
4 août 2004

Ce n'est pas l'utilité qui compte dans ce code mais la demonstration de la htable. Bonne petite source pour les débutant, bravo :)
cs_neo66
Messages postés
125
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
20 mai 2006

Humm, j'aurais pus optimisé se code tres facilement, notament au lieu de:
hdel bot $+(topic.,$chan)
hadd bot $+(topic.,$chan) $2-

Vus que hadd supprime les items moin recent, j'aurais pus directement mettre:
hadd bot $+(topic.,$chan) $2-

Enfin au moin j'aurais montrer comment fonctionne le hdel :p

n3o
Kerrigan
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

bonne idée

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.