Système seen

Description

Voilà un petit système de seen que je viens de coder, petit truc tout simple mais ou j'ai appris pas mal de chose surtout au niveau du write + read.
En gros petit code de débutant pour apprendre et franchement pas vraiment utile lol mais je le post ici, pour m'aider a des amélioration / optimisation :)

Source / Exemple :


;      Système de Seen ;
;   Par Niamor         ;
;         Version 1.0  ;
; MAJ 21/10/08         ;

on *:LOAD:{
  echo -a 10The system has been 4installed !
  echo -a 10Thank you for having taken :D
  hadd -m seen_v1.0 language default
  hadd -m seen_v1.0 trigger Off
}

on *:UNLOAD:{
  if ($hget(seen_v1.0,language) == fr) {
    echo -a 10Il ne vous a pas plus ?
    echo -a 10Envoyez un petit mail pour toute améliorations que vous aimeriez voir.
    echo -a 4niamor@stream-animation.com
  }
  else {
    echo -a 10He has not given you more ?
    echo -a 10Send a mail to any improvements you'd like.
    echo -a 4niamor@stream-animation.com
  }
  if ($hget(seen_v1.0)) hfree seen_v1.0
  .remove scripts\seen_v1.0\seen_v1.0_hashtable.ini
}

on *:INPUT:#:{
  if ($1 == +seen) {
    if ($nick == $2) {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 msg # 10[7SEEN10]5 $nick se recherche
      else .timer 1 1 msg # 10[7SEEN10]5 $nick research is
    }
    elseif (!$2) {
      if ($hget(seen_v1.0,language) == fr) {
        .timer 1 1 .notice $nick 10[7SEEN10]3 Commandes :
        .timer 1 2 .notice $nick 3Savoir depuis quand s'est déconnecté une personne :4 +seen <nick>
        .timer 1 3 .notice $nick 3Changer la langue de Seen :4 +seen_lang <lang>
        .timer 1 4 .notice $nick 3Trigger +seen :4 +seen_trigger <on/off>
        .timer 1 5 .notice $nick 3Connaitre la version de Seen :4 +seen_version
        .timer 1 6 .notice $nick 3Crédits :4 +seen_credits
      }
      else {
        .timer 1 1 .notice $nick 10[7SEEN10]3 Commands :
        .timer 1 2 .notice $nick 3Know how long a person has disconnected :4 +seen <nick>
        .timer 1 3 .notice $nick 3Changing the language Seen :4 +seen_lang <lang>
        .timer 1 4 .notice $nick 3Trigger +seen :4 +seen_trigger <on/off>
        .timer 1 5 .notice $nick 3About version Seen :4 +seen_version
        .timer 1 6 .notice $nick 3Credits :4 +seen_credits
      }
    }
    else {
      hadd -m seen_v1.0 chan $chan
      hadd -m seen_v1.0 nick $2
      hadd -m seen_v1.0 whois 1
      whois $2
    }
  }
  elseif ($1 == +seen_lang) {
    if ($2 == $hget(seen_v1.0,language)) {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 .notice $nick 10[7SEEN10]3 Vous utilisez déjà cette langue.
      else .timer 1 1 .notice $nick 10[7SEEN10]3 You already use this language.
    }
    elseif ($2 == default || $2 == en && $2 != $hget(seen_v1.0,language)) {
      .timer 1 1 .notice $nick 10[7SEEN10]3 English language.
      hadd -m seen_v1.0 language default
    }
    elseif ($2 == fr && $2 != $hget(seen_v1.0,language)) {
      .timer 1 1 .notice $nick 10[7SEEN10]3 Langage Français.
      hadd -m seen_v1.0 language fr
    }
    elseif (!$2) {
      if ($hget(seen_v1.0,language) == fr) {
        .timer 1 1 .notice $nick 10[7SEEN10]3 Langue actuelle :4 $hget(seen_v1.0,language)
        .timer 1 2 .notice $nick 10[7SEEN10]3 Langage disponible :
        .timer 1 3 .notice $nick 3default :4 Change la langue en Anglais.
      }
      else {
        .timer 1 1 .notice $nick 10[7SEEN10]3 Current language :4 $hget(seen_v1.0,language)
        .timer 1 2 .notice $nick 10[7SEEN10]3 Language available :
        .timer 1 3 .notice $nick 3fr :4 Change the language in French.
      }
    }
    else {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 .notice $nick 10[7SEEN10]3 Langage inconnu.
      else .timer 1 1 .notice $nick 10[7SEEN10]3 Unknown language.
    }
  }
  elseif ($1 == +seen_trigger) {
    if ($2 == $hget(seen_v1.0,trigger)) {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 .notice $nick 10[7SEEN10]3 Le trigger est déjà $hget(seen_v1.0,trigger)
      else .timer 1 1 .notice $nick 10[7SEEN10]3 The trigger is already $hget(seen_v1.0,trigger)
    }
    elseif ($2 == on && $2 != $hget(seen_v1.0,trigger)) {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 .notice $nick 10[7SEEN10]3 Trigger On !
      else .timer 1 1 .notice $nick 10[7SEEN10]3 Trigger On !
      hadd -m seen_v1.0 trigger On
    }
    elseif ($2 == off && $2 != $hget(seen_v1.0,trigger)) {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 .notice $nick 10[7SEEN10]3 Trigger Off !
      else .timer 1 1 .notice $nick 10[7SEEN10]3 Trigger Off !
      hadd -m seen_v1.0 trigger Off
    }
    elseif (!$2) {
      if ($hget(seen_v1.0,language) == fr) {
        .timer 1 1 .notice $nick 10[7SEEN10]3 Actuellement :4 $hget(seen_v1.0,trigger)
        .timer 1 2 .notice $nick 10[7SEEN10]3 Option disponible :
        .timer 1 3 .notice $nick 3On :4 Active le trigger.
        .timer 1 3 .notice $nick 3Off :4 Désactive le trigger.
      }
      else {
        .timer 1 1 .notice $nick 10[7SEEN10]3 Currently :4 $hget(seen_v1.0,trigger)
        .timer 1 2 .notice $nick 10[7SEEN10]3 Option available :
        .timer 1 3 .notice $nick 3On :4 Activates the trigger.
        .timer 1 3 .notice $nick 3Off :4 Disables the trigger.
      }
    }
    else {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 .notice $nick 10[7SEEN10]3 Option inconnu.
      else .timer 1 1 .notice $nick 10[7SEEN10]3 Option unknown.
    }
  }
  elseif ($1 == +seen_version) .timer 1 1 msg # 10[7SEEN10]3 Version 1.0 Final
  elseif ($1 == +seen_credits) {
    if ($hget(seen_v1.0,language) == fr) .timer 1 1 msg # 10[7SEEN10]3 Crédits : Codé par Niamor, aide de Flyswat. Site : www.stream-animation.com
    else .timer 1 1 msg # 10[7SEEN10]3 Credits : Coded by Niamor, using FlySwat. Website : www.stream-animation.com
  }
}

on *:TEXT:*:#:{
  if ($1 == +seen && $hget(seen_v1.0,trigger) == On) {
    if ($nick == $2) {
      if ($hget(seen_v1.0,language) == fr) .timer 1 1 msg # 10[7SEEN10]5 $nick se recherche
      else .timer 1 1 msg # 10[7SEEN10]5 $nick research is
    }
    elseif (!$2) {
      if ($hget(seen_v1.0,language) == fr) {
        .notice $nick 10[7SEEN10]3 Commandes :
        .notice $nick 3Savoir depuis quand s'est déconnecté une personne :4 +seen <nick>
        .notice $nick 3Connaitre la version de Seen :4 +seen_version
        .notice $nick 3Crédits :4 +seen_credits
      }
      else {
        .notice $nick 10[7SEEN10]3 Commands :
        .notice $nick 3Know how long a person has disconnected :4 +seen <nick>
        .notice $nick 3About version Seen :4 +seen_version
        .notice $nick 3Credits :4 +seen_credits
      }
    }
    else {
      hadd -m seen_v1.0 chan $chan
      hadd -m seen_v1.0 nick $2
      hadd -m seen_v1.0 whois 1
      whois $2
    }
  }
  elseif ($1 == +seen_version && $hget(seen_v1.0,trigger) == On) msg # 10[7SEEN10]3 Version 1.0 Final
  elseif ($1 == +seen_credits && $hget(seen_v1.0,trigger) == On) {
    if ($hget(seen_v1.0,language) == fr) msg # 10[7SEEN10]3 Crédits : Codé par Niamor, aide de Flyswat. Site : www.stream-animation.com
    else msg # 10[7SEEN10]3 Credits : Coded by Niamor, helps of FlySwat. Website: www.stream-animation.com
  }
}

raw *:*:{
  if ($numeric == 311) {
    if ($hget(seen_v1.0,whois)) {
      if ($hget(seen_v1.0,language) == fr) msg $hget(seen_v1.0,chan) 10[7SEEN10]5 $hget(seen_v1.0,nick) est actuellement connecté sur $network !
      else msg $hget(seen_v1.0,chan) 10[7SEEN10]5 $hget(seen_v1.0,nick) is currently logged on $network !
    }
    hadd -m seen_v1.0 whois 0
  }
  elseif ($numeric == 401) {
    if ($hget(seen_v1.0,whois)) {
      var %read = $read($+(scripts\seen_v1.0\,$network,_quit.log),s, $hget(seen_v1.0,nick))
      if ($hget(seen_v1.0,language) == fr) $iif((%read), msg $hget(seen_v1.0,chan) 10[7SEEN10]5 $hget(seen_v1.0,nick) a été vu pour la dernière fois sur $network il y a $duration($calc($ctime - %read)), msg $hget(seen_v1.0,chan) 10[7SEEN10]5 Aucune information sur $hget(seen_v1.0,nick))
      else $iif((%read), msg $hget(seen_v1.0,chan) 10[7SEEN10]5 $hget(seen_v1.0,nick) was last seen on $network ago $duration($calc($ctime - %read)), msg $hget(seen_v1.0,chan) 10[7SEEN10]5 No information on $hget(seen_v1.0,nick))
    }
    hadd -m seen_v1.0 whois 0
  }
}

on *:QUIT:{
  if ($read($+(scripts\seen_v1.0\,$network,_quit.log),s,$nick)) write $eval(-ds $+ $nick) $+(scripts\seen_v1.0\,$network,_quit.log)
  write $+(scripts\seen_v1.0\,$network,_quit.log) $nick $ctime
}

on *:NICK:{
  if ($read($+(scripts\seen_v1.0\,$network,_quit.log),s,$nick)) write $eval(-ds $+ $nick) $+(scripts\seen_v1.0\,$network,_quit.log)
}

on *:START:{
  hmake seen_v1.0 5
  hload -i seen_v1.0 scripts\seen_v1.0\seen_v1.0_hashtable.ini
}
on *:EXIT:/hsave -oi seen_v1.0 scripts\seen_v1.0\seen_v1.0_hashtable.ini

Conclusion :


Bah voilà j'ai tout dit, il n'est pas complètement fini j'aimerais ajouter plusieurs choses mais je ne sais pas encore comment m'y prendre lol
Exemple : Mémoriser quand une personne change de nick.

Codes Sources

A voir également

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.