Petit bot pour chan

Description

Bon vu qu en ce moment c est la mode des bots d animationns, voila le mien. Bon c est un petit code de bot gerant un rpg, n ayant pas le temps et plus la motivation, je mets le code en open source. Le bot n est donc pas entierement fini (il reste a faire des monstres pour la carte des lvl 120 a 200 ainsi que l equipement, juste des fichiers ini a faire).
Au niveau gameplay, le jeu gere :
-les levels
-l or
-les primes de pk
-les potions (vie/mana)
-les armes/armures
-inventaire pour les armes
-revente des armes
-loot sur les nameds
-2 quetes pour passer a la carte suivante
-3 classes (mage/guerrier/assassin)
-10 competences au total
-les deplacements
-les monstres
-l ia des monstres
-la possibilité de donner de l argent
-creation de clans
-attaque d unchateau avec bonus de prime

Pour toutes les autres infos ( http://rpgmollusque.free.fr/help.php )

Source / Exemple :


Petit exemple du code ( gestion des items notamment ) : 

alias item {
  if ( $1 = use && $2 = vie && $3 )   {
    if ( $hget($nick,pvie)  > 0 ) {
      hadd $nick pvie $calc($hget($nick,pvie) - $3 )
      if ( $calc($hget($nick,hp) +  $3 * ( 45 * ($hget($nick,lvl) / 5)) )  >= $hget($nick,maxhp) ) {
        hadd $nick hp $hget($nick,maxhp)
      }
      else {
        hadd $nick hp $calc($hget($nick,hp) +  $3 * ( 45 * ($hget($nick,lvl) / 5)) )
      }
      msg # 0,14 $nick se regenere de $calc( $3 * ( 45 * ($hget($nick,lvl) / 5)) ) points de vie
    }
    else { msg # 0,14 $nick tu n as plus de potion de vie ! tape !item buy vie pour en racheter ! }
  }
  if ( $1 = use && ($2 = mana || $2 = endu) && $3 ) {
    if ( $hget($nick,pmana)  > 0 ) {
      hadd $nick pmana $calc($hget($nick,pmana) - $3)
      if ( $calc($hget($nick,sp1) + $3 * ( 5 * $hget($nick,lvl)) )  >= $hget($nick,maxsp1) ) {
        hadd $nick sp1 $hget($nick,maxsp1)
      }
      else {
        hadd $nick sp1 $calc($hget($nick,sp1) + $3 * ( 5 * $hget($nick,lvl)) )
        msg # 0,14 $nick se regenere de 6,14 $calc( $3 * ( 5 * $hget($nick,lvl)) ) de mana/endu
      }
    }
    else { msg # 0,14 $nick tu n as plus de potion de mana/endurance ! tape !item buy mana pour en racheter ! }
  }
  if ( $1 = see && !$2 ) {
    ;;  if ( $hget($nick,item) ) hdel $nick item
    msg # 0,14 $nick 1,14 : 7,14 $hget($nick,pvie)  1,14potions vie - 7,14 $hget($nick,pmana) 1,14potions de mana - Arme :12,14 $gettok($hget($nick,arme),1,46) 1,14(P:8,14 $gettok($hget($nick,arme),2,46) $+ 1,14 $+ % $+ ) (Vit:8,14 $calc($gettok($hget($nick,arme),3,46) * 2) $+ 1,14 $+ s $+ ) - Armure :12,14 $gettok($hget($nick,armure),1,46) 1,14(def:7,14 $gettok($hget($nick,armure),2,46) $+ 1,14%)1,14 - Item:9,14 $hget($nick,item) -1,14Quete:8,14 $hget($nick,quete) 
  }
  if ( $1 = see && $2 = arme ) {
    var %l
    if ( $hget($nick,classe) = mage ) %l = 1 
    else if ( $hget($nick,classe) = guerrier ) %l = 15
    else { %l = 29 }
    var %m = %l
    var %ll = $calc(%l + 1)
    msg # 1,14 $read(rpg\armes.ini, %l)
    while ( %ll < $calc(%m + 3) ) {
      var %arme = $read(rpg\armes.ini, %ll)
      msg # 12,14 $gettok(%arme,1,61) 1,14- Power:7,14 $gettok($gettok(%arme,2,61),1,46) 1,14% - Vitesse :6,14 $calc( $gettok($gettok(%arme,2,61),2,46) * 2 ) $+ 1,14 sec - Prix :8,14 $gettok($gettok(%arme,2,61),3,46) ors
      inc %ll
    }
  msg # 1,14 Suite: 9,14 http://rpgmollusque.free.fr/armes.txt  }
  if ( $1 = see && $2 = armure ) {
    var %l
    if ( $hget($nick,classe) = mage ) %l = 1 
    else if ( $hget($nick,classe) = guerrier ) %l = 8
    else { 
      %l = 15 
    }
    var %m = %l
    var %ll = $calc(%l + 1)
    msg # 1,14 $read(rpg\armure.ini, %l)
    while ( %ll < $calc(%m + 7) ) {
      var %arme = $read(rpg\armure.ini, %ll)
      msg # 12,14 $gettok(%arme,1,61) 1,14- def:7,14 $gettok($gettok(%arme,2,61),1,46) 1,14% - Prix :8,14 $gettok($gettok(%arme,2,61),2,46) ors
      inc %ll
    }
  }
  if ( $1 = see && $2 = prime ) {
    if (!$hget($nick,pf)) hadd $nick pf 1 
    if (!$hget($nick,pd)) hadd $nick pd 1 
    if (!$hget($nick,pv)) hadd $nick pv 1 

    msg # 0,14 Boutique de prime : 
    msg # 0,14 Force amelioré (8,143%0,14) : 11,14 $calc(500 * $hget($nick,pf)) 0,14primes.
    msg # 0,14 Defense amelioré (8,143%0,14) : 11,14200 0,14primes. 
    msg # 0,14 Vie amelioré (8,143%0,14) : 11,14200 0,14primes.
    msg # 0,14 Science du Crystal mystique (8,14restore 60% mana0,14) : 11,141500 0primes
  }
  if ( $hget($nick,pos) == 5 || $hget($nick,pos) == 90 ) { 
    if ( $1 = buy && $2 = vie && $3 ) {
      if ( $hget($nick,or)  > $calc(29 * $3) ) {
        hadd $nick pvie $calc($hget($nick,pvie) + $$3)
        hadd $nick or $calc($hget($nick,or) - (30 * $$3))
        msg # 0,14 $nick 1,14vient d acheter 9,14 $3 1,14 potion de vie
      } 
      else { msg # 0,14 $nick 1,14il faut 8,14 $calc(30 * $3)  or 1,14pour acheter des potions !! }
    }
    if ( $1 = buy && $2 = mana || $2 = endu && $3) {
      if ( $hget($nick,or)  > $calc(29 * $3) ) {
        hadd $nick pmana $calc($hget($nick,pmana) + $$3)
        hadd $nick or $calc($hget($nick,or) - 30 * $$3)
        msg # 4 $nick 1vient d acheter 3 $3 1,0 potion de mana/endu
      }
      else { msg # 0,14 $nick 1,14il faut 8,14 $calc(30 * $3)  or 1,14pour acheter des potions !! }
    }
    if ( ($1 = buy) && ($2 = arme) ) {
      var %item = $readini(rpg\armes.ini,$hget($nick,classe),$3)
      if ( $hget($nick,or)  >= $gettok(%item,3,46) ) {
        hadd $nick item $hget($nick,item) $+ / $+ $3 $+ . $+ %item
        hadd $nick or $calc($hget($nick,or) - $gettok(%item,3,46))
        msg # 4 $nick 1vient d acheter 3 $3 1,0 
      }
      else { msg # 0,14 $nick 1,14il faut 8,14 $gettok(%item,3,46)  or 1,14pour acheter $3 !! }
    }
    if ( ($1 = sell) && ($2 = arme) ) {
      var %item = $readini(rpg\armes.ini,$hget($nick,classe),$3)
      var %arme = $3 $+ . $+ %item
      if ( $3 isin $hget($nick,item) ) {
        hadd $nick item $remtok($hget($nick,item),%arme,47) 
        hadd $nick or $calc($hget($nick,or) + ( $gettok(%item,3,46) / 4) )
        msg # 4 $nick 1vient de vendre 3 $3 1,0 
      }
      else { msg # 0,14 $nick 1,14il faut 9,14 $3 1,14pour vendre 9 $3 !! }
    }

    if ( $1 = buy && $2 = armure ) {
      var %item = $readini(rpg\armure.ini,$hget($nick,classe),$3)
      if ( $hget($nick,or)  >= $gettok(%item,2,46) ) {
        hadd $nick armure $3 $+ . $+ %item
        hadd $nick or $calc($hget($nick,or) - $gettok(%item,2,46))
        msg # 4 $nick 1vient d acheter 3 $3 1,0 
      }
      else { msg # 0,14 $nick 1,14il faut 8,14 $gettok(%item,3,46)  or 1,14pour acheter $3 !! }
    }
    if ( $1 = buy && $2 = prime && $3 ) {
      if (!$hget($nick,pf)) hadd $nick pf 1 
      if (!$hget($nick,pd)) hadd $nick pd 1 
      if (!$hget($nick,pv)) hadd $nick pv 1 
      if ( $3 == force ) {
        if ( $hget($nick,rp) >= $calc( 500 * $hget($nick,pf) ) ) {
          echo -a rp : $hget($nick,rp) cout : $calc( 500 * $hget($nick,pf) )
          hadd $nick p $calc($hget($nick,p) * 1.03)
          hadd $nick rp $calc($hget($nick,rp) - 500 * $hget($nick,pf) )
          hinc $nick pf 
          msg # 0,14 $nick 1,14voit sa puissance augmenter !
        }
      }
      elseif ( $hget($nick,rp) >= $calc( 200 * $hget($nick,pd) ) && $3 == defense  ) {
        hadd $nick def $calc($hget($nick,def) * 1.03)
        hadd $nick rp $calc($hget($nick,rp) - 500 * $hget($nick,pd) )
        hinc $nick pd
        msg # 0,14 $nick 1,14voit sa puissance augmenter !
      }
      elseif ( $hget($nick,rp) >= $calc( 200 * $hget($nick,pv) ) && $3 == vie ) {
        hadd $nick maxhp $calc($hget($nick,maxhp) * 1.03)
        hadd $nick rp $calc($hget($nick,rp) - 500 * $hget($nick,pv) )
        hinc $nick pv
        msg # 0,14 $nick 1,14voit sa puissance augmenter !
      }
      else { msg # 0,14Stfu Nub ! Va rp peon ! PwN3d ! }
    }
  }
  else { msg # 0,14 $+ $nick 1tu dois etre a la 8Boutique 1pour acheter des objets! }
}

Conclusion :


Bon, ce n est pas superement optimisé, loin s en faut, mais le code reste tres rapide (merci les hashtables) et helas non exempté de bugs (il y en a un ou 2 qui traine , mais rien d alarmant ) . Voila vous pouvez utiliser le code a votre guise, je ne demande en retour que des infos sur vos modification , ou les chans + serveurs ou vous utilisez le bot, histoire de pouvoir mettre a jour la source ici presente. je continuerais un peu le developpement cet ete. Voila bon jeu !

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.