Jump to content

Archived

This topic is now archived and is closed to further replies.

coders-irc_Bot

Save & restore modes

Recommended Posts

  • Administrators

Voici ma 2ème sources ici, à mettre sur un bot, qui consite à sauvegarde les modes d'un channel et des users et le topic. Je m'explique :
$save : Le bots sauvegarde les modes du salon actuel (genre +CmNuD) et des users (Ceux qui sont @, + ou reg) et le topic

Dans le cas d'un massdevoice, mass deop, tapez : $reop et tous les utilisateurs qui étaient @ regagnent leur @, de même pour les voices.
Dans le cas d'un changement de mode, tapez : $restore et le bots remet les modes sauvegardé auparavant.
Dans le cas d'un changement de topic, tapez: $restore et le bots remettra l'ancien topic ;)

Le script utilise le system de level de mIRC, et peut etre facilement modifiable! Ce script est également coupé a un autre script, PUSHMODE, que je vais publier après celui là (ce dernier n'étant pas de moi et requiert quelques explications)

 

on *:LOAD:{
set %command.save $chr(36) $+ save
set %command.reop $chr(36) $+ reop
set %command.restore $chr(36) $+ restore
}
on *:text:*:#:{ 
  if ($ulevel >= 5) && ($1 == %command.save) {
    remini -n save.ini $chan
    set %topic. [ $+ [ $chan ] ] $chan($chan).topic
    writeini -n mode.ini $chan mode $gettok($chan($chan).mode,1,32) 
    save $chan
    .notice $nick Done. Tried to save everything on $chan
  }
  if ($ulevel >= 5) && ($1 == %command.restore) {
    restore $chan
    .timer.restore. $+ $chan $+ .1 1 1 mode $chan -klimnpstrDdcCNu
     if (k isincs $gettok($chan($chan).mode,1,32)) { .mode $chan -k $chan($chan).key }
    .timer.restore. $+ $chan $+ .2 1 2 mode $chan $readini(mode.ini,$chan,mode)
    .timer.restore. $+ $chan $+ .3 1 3 topic $chan 
    .timer.restore. $+ $chan $+ .4 1 4 topic $chan %topic. [ $+ [ $chan ] ]
  }
  if ($ulevel >= 5) && ($1 == %command.reop) {
   restore $chan
  }
}

alias save {
  var %x = 1
  while (%x <= $nick($1,0)) {
    set %nick $nick($1,%x)
    if (%nick isop $1) {
      writeini -n save.ini $1 $address(%nick,1) +o
    }
    if (%nick isvoice $1) {
      writeini -n save.ini $1 $address(%nick,1) +v
    }
    if (%nick isvoice $1) && (%nick isop $1) {
      writeini -n save.ini $1 $address(%nick,1) +ov
    }
    inc %x
  }
}
alias restore {
  var %x = 1
  while (%x <= $nick($1,0)) {
    set %nick $nick($1,%x)
    if ($readini(save.ini,$1,$address(%nick,1)) == +o) {
      pushmode $1 +o %nick
    }
    if ($readini(save.ini,$1,$address(%nick,1)) == +v) {
      pushmode $1 +v %nick
    }
    if ($readini(save.ini,$1,$address(%nick,1)) == +ov) {
      pushmode $1 +o %nick
      pushmode $1 +v %nick
    }
    inc %x
  }

 

Link to comment
Share on other sites



×
×
  • Create New...