Munition animation de chan ...

Contenu du snippet

ce petit script permet de utiliser un systeme de kick/ban se basant sur des munitions(un nombre limité dutilisation pour chaque user). Il comporte aussi la munition boulet ^^.

Source / Exemple :


;{#}-----------------------------------------------[Alias]----------------------------------------------{#}

alias lload {
  if (($exists(" $+ $2- $+ $1 $+ .htable")) && (!hget($1))) {
    hmake $1 10
    hload $1 " $+ $2- $+ $1 $+ .htable" 
    echo -s Table $1 chargée avec succes.
  }
}
alias haddm {
  hadd -m $1 $2-
  var %v = $1 $+ .htable
  hsave -o $1 %v
}
alias munnb {
  if ($findtok($1,$2,0,$3) != 0) {
    return $gettok($1,$calc($findtok($1,$2,1,$3) +1),$3)
  }
}
alias munmod {
  if (($4 !isnum) || ($mid($5,2) !isnum)) { echo Veuillez specifier un nombre | halt }
  var %munh = $hget($1,$2)
  if (%munh) {
    if ($findtok(%munh $+ ,$3,0,$4) != 0) {
      var %o = $findtok(%munh $+ ,$3,1,$4),%c = $calc($munnb(%munh $+ ,$3,$4) + $5)
      if (%c !isnum 1-) { var %c 0 }
      haddm $1 $2 $gettok(%munh $+ ,1- %o $+ ,$4) $+ $chr($4) $+ %c $+ $chr($4) $+ $gettok(%munh $+ ,$calc(%o + 2) -,$4)
    }
    else {
      haddm $1 $2 %munh $+ $+($chr($4),$3,$chr($4),$mid($5,2))
    }
  }
  else {
    haddm $1 $2 $+($chr($4),$3,$chr($4),$mid($5,2))
  }
}
alias munnickgive {
  if ($1 isnum) {
    var %munnick = $hget(munitions,$1).item
    if (%munnick) { return %munnick $+ :munmod munitions %munnick $2 1 + $ $+ + $ $+ ?"Combien lui en ajouter ?"  }
  }
}
alias munnickrem {
  if ($1 isnum) {
    var %munnick = $hget(munitions,$1).item, %v = $hget(munitions,%munnick), %mun = $munnb(%v $+ ,$2,1)
    if (%munnick) {
      if ((%mun != 0) && (%mun)) { return %munnick $+ :munmod munitions %munnick $2 1 - $ $+ + $ $+ ?"Combien lui en retirer (max: %mun $+ ) ?" }
      else { return $style(2) %munnick $+ :return }
    }
  }
}
alias munnicklist {
  if ($1 isnum) {
    var %munnick = $hget(munitions,$1).item
    return %munnick $+ :hdel munitions %munnick $chr(124) echo -a Le nick %munnick a bien été retiré de la liste
  }
}
alias GivemunList.del {
  var %GivemunList = $hget(GivemunList,$1).item
  if ($1 isnum 1-) {
    if (%GivemunList) { return %GivemunList $+ :hdel GivemunList %GivemunList }
  }
}

;{#}-----------------------------------------------[Menu]----------------------------------------------{#}

menu channel {
  Munitions
  .GivemunList
  ..$iif($hget(GivemunList),Donner les acces à quelqu'un,Donner les acces à quelqu'un):haddm GivemunList $?"A qui autoriser le !givemun ?" GivemunList
  ..$iif($hget(GivemunList,0).item != 0,Enlever les acces a quelqu'un)
  ...$submenu($GivemunList.del($1))
  .RemList
  ..$submenu($munnicklist($1))
  .Give
  ..kick
  ...new:var %v = $?="Donner des kicks à ?",%a = + $+ $?="combien lui en donner ?" | munmod munitions %v kick 1 %a
  ...-
  ...$submenu($munnickgive($1,kick))
  ..ban
  ...new:var %v = $?="Donner des kicks à ?",%a = + $+ $?="combien lui en donner ?" | munmod munitions %v ban 1 %a
  ...-
  ...$submenu($munnickgive($1,ban))
  ..boulet
  ...new:var %v = $?="Donner des kicks à ?",%a = + $+ $?="combien lui en donner ?" | munmod munitions %v boulet 1 %a
  ...-
  ...$submenu($munnickgive($1,boulet))
  .Remove
  ..kick
  ...$submenu($munnickrem($1,kick))
  ..ban
  ...$submenu($munnickrem($1,ban))
  ..boulet
  ...$submenu($munnickrem($1,boulet))
  .Options
  ..Annonce
  ...$iif($hget(munconfig,annonce) == 1,$style(1)) Msg:haddm munconfig annonce 1
  ...$iif($hget(munconfig,annonce) == 2,$style(1)) Notice:haddm munconfig annonce 2
  ...$iif(!$hget(munconfig,annonce),$style(1)) Disable:hdel munconfig annonce 
  ..Timers
  ...Bans:var %a = $?"Combien de temps doit durer un ban (en heures) ?" | haddm munconfig banstime $calc( %a * 3600 )
  ...Boulets:var %a = $?"Combien de temps doit durer le mode boulet (en heures) ?" | haddm munconfig bouletstime $calc( %a * 3600 )
}

;{#}-----------------------------------------------[Script(text)]----------------------------------------------{#}

on *:text:*:#:{
  if ($left($strip($1-),1) == !) {
    var %trigger = $remove($strip($1),!)
    if ($0 > 1) {
      unset %nd
      if (%trigger == use) {
        if (($2 == kick) || ($2 == ban) || ($2 == boulet)) {
          if ($3 != $me) {
            var %v = $hget(munitions,$nick), %mun = $munnb(%v $+ ,$2 $+ ,1)
            if ((%mun != 0) && (%mun)) {
              if ($2 == kick) { kick $chan $3 $4- }
              if ($2 == ban) { 
                var %time = $hget(munconfig,banstime) 
                mode $chan +b $3 
                kick $chan $3 $4- ( $+ $duration(%time) $+ ) 
                .timerban $+ $nick 1 %time mode $chan -b $3 
              }
              if ($2 == boulet) { 
                var %ttime = $hget(munconfig,bouletstime)
                haddm boulets $3 $ctime 
                .timerboulet $+ $nick 1 %ttime hdel -s boulets $3 
                msg $chan $3 est maintenant un boulet ^^ (plus que $duration(%ttime) a cuver mdr ;p) 
                kick $chan $3 aller dehors sale boulet !
              }
              munmod munitions $nick $2 1 -1
              notice $nick Vous venez d'utiliser 1 $2, il vous en reste encore $calc(%mun -1) $+ .
            }
            else { .notice $nick Impossible dutiliser un $2, tu n'en a plus en reserve }
          }
          else {
            kick $chan $nick Mouahahah tu ne maura pas de cette façon c'est moi le maitre de ce script mouahahahahaha ! 
          }
        }
        else { notice $nick Erreur, verifie ta commande tu t'es surement trompé (rappel : !use type cible message). }
      }
      elseif (%trigger == givemun) {
        if ($hget(GivemunList,$nick)) {
          if (($2 == kick) || ($2 == ban) || ($2 == boulet)) {
            munmod munitions $4 $2 1 + $+ $3
            msg $chan $3 $2 ont été ajoutés à $4 $+ .
          }
          else { notice $nick Erreur, verifie ta commande tu t'es surement trompé (rappel syntaxe : !givemun type nombre cible). }
        }
        else { notice $nick Désolé tu n'as pas les acces nécessaires pour pouvoir utiliser ce trigger. }
      }
      elseif (%trigger == munitions) {
        if ($2 != $me) {
          var %v = $hget(munitions,$2)
          if (%v) { msg $chan Munitions de $2 $+ : Kicks: $munnb(%v $+ ,kick,1) $+ , bans: $munnb(%v $+ ,ban,1) $+ , boulets: $munnb(%v $+ ,boulet,1) $+ . }
          else msg $chan $2 ne possede aucunes munitions
        }
        else { msg $chan Mouahahah c moi le master donc pour moi c bastos illimité !!! }
      }
    }
  }
}

;{#}-----------------------------------------------[Script(input)]----------------------------------------------{#}

on *:input:#:{
  var %trigger = $remove($strip($1),!)
  if (%trigger == givemun) {
    if (($2 == kick) || ($2 == ban) || ($2 == boulet)) {
      munmod munitions $4 $2 1 + $+ $3
      .timer -m 1 1 msg $chan $3 $2 ont été ajoutés à $4 $+ .
    }
    else { echo -a Erreur, verifie ta commande tu t'es surement trompé (rappel syntaxe : !givemun type nombre cible). }
  }
  elseif (%trigger == munitions) {
    if ($2 != $me) {
      var %v = $hget(munitions,$2)
      if (%v) { .timer -m 1 1 msg $chan Munitions de $2 $+ : Kicks: $munnb(%v $+ ,kick,1) $+ , bans: $munnb(%v $+ ,ban,1) $+ , boulets: $munnb(%v $+ ,boulet,1) $+ . }
      else .timer -m 1 1 msg $chan $2 ne possede aucunes munitions
    }
    else { .timer -m 1 1 msg $chan Mouahahah c moi le master donc pour moi c bastos illimité !!! }
  }
  elseif (%trigger == use) {
    if ($2 == kick) { kick $chan $3 $4- }
    elseif ($2 == ban) { 
      var %time = $hget(munconfig,banstime) 
      mode $chan +b $3 
      kick $chan $3 $4- ( $+ $duration(%time) $+ ) 
      .timerban $+ $nick 1 %time mode $chan -b $3 
    }
    elseif ($2 == boulet) { 
      var %ttime = $hget(munconfig,bouletstime)
      haddm boulets $3 $ctime 
      .timerboulet $+ $nick 1 %ttime hdel -s boulets $3 
      .timer -m 1 1 msg $chan $3 est maintenant un boulet ^^ (plus que $duration(%ttime) a cuver mdr ;p) 
      kick $chan $3 aller dehors sale boulet !
    }
    else { echo -a Erreur de syntaxe (rappel : !use type cible message) }
  }
}

;{#}-----------------------------------------------[Script(join)]----------------------------------------------{#}

on *:join:#:{
  if ($hget(boulets,$nick)) {
    var %time = $calc($calc($hget(boulets,$nick) + $hget(munconfig,bouletstime)) - $ctime)
    if (%time isnum 1-) {
      msg $chan >>>> Voila $nick le gros boulet qui se pointe, attention c'est peut être contagieu ! <<<<
      notice $nick courrage encore $duration(%time) a cuver ;p
    }
    else { hdel boulets $nick }
  }
}

;{#}-----------------------------------------------[Script(start)]----------------------------------------------{#}

on *:start:{
  lload munitions $scriptdir
  lload munconfig $scriptdir
  if (!$exists(" $+ $scriptdir $+ munconfig.htable")) {
    haddm munconfig bouletstime 86400
    haddm munconfig banstime 3600
  }
  lload GivemunList $scriptdir
}

Conclusion :


pour utiliser une munition : !use kick-ban-boulet nick message
voir le nombre de munitions restantes : !munitions nick
donner des munitions (reserver a lowner et aux personnes de la liste daccess) : !givemun kick-ban-boulet nick (remarque : lowner a aussi un menu a sa disposition pour le meme effet)

(PS: javais commencer ce script dans lidee de permettre de cree des munitions a linfini, mais le mircscript ne permettant pas un $submenu($submenu()) et nayant pas envie de membeter avec des dialogs g du limiter le script a 3 munitions differentes)

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.