All pastes #835341 Raw Edit

BleachBot A-Attacks

public text v1 · immutable
#835341 ·published 2007-12-28 20:41 UTC
rendered paste body
doattack {
  if ($rini($2,Battle,Attacking) == Yes) {


    Dodge $2 $3
    Parry $2 $3
    wini $2 Battle Attacking No
    if ($readini(attacks.data,$1,type) == Status) {
      dostatus $readini(attacks.data,$1,Status) $2 $3 $1
    }

    set %base $readini(attacks.data,$1,power)
    set %dmg $calc((%base / 100) * $rini($2,Stats,Attack) - $rini($3,Stats,Defense))
    set %exp $readini(attacks.data,$1,exp)
    if (%Dmg < 1) { set %Dmg 1 }
    Counter $2 $3 %dmg
    var %crit = 12Normal Hit
    var %critchance = $rand(1,100)
    if (%critchance <= 5) {
      if ($readini(attacks.data,$1,criteffect) != $null) { criteffect $readini(attacks.data,$1,criteffect) $2 $3 }
      else { 
        var %admg = $calc(%dmg * 2.5)
        var %crit = 4Critical
      }
    }
    var %hits = $gettok($readini(attacks.data,$1,hits),1,32)
    if (!%hits) || (($gettok($readini(attacks.data,$1,hits),2,32) == crit) && (%critchance > 5)) { var %hits = 1 }
    var %cur = 0
    var %tdmg = 0
    while (%cur != %hits) {
      inc %cur
      var %hdmg = $rand(%dmg,$calc(%dmg * 2.2 - $rini($3,Stats,Defense)))
      inc %tdmg %hdmg
      var %admg = %admg ( $+ %hdmg $+ )
    }
    if (%hits > 1) { var %admg = %admg ( $+ %tdmg total) }
    var %admg = dealing %admg damage
    var %hitmsg = $replace($readini(attacks.data,$1,hitmsg),&user,$2 $+ $chr(40) $+ $rini($2,$2,Name) $+ $chr(41),&target,$3 $+ $chr(40) $+ $rini($3,$3,Name) $+ $chr(41),&dmg,%admg)
    if (%dbat != $null) { dbmsg %dbat %hitmsg (Gained 12 $+ %exp 2EXP!) ( $+ %crit $+ 2) }
    else { msg %chanset %hitmsg (Gained 12 $+ %exp 2EXP!) ( $+ %crit $+ 2) }
    wini $3 Stats HP $calc($rini($3,stats,Hp) - %tdmg)
    wini $2 Stats Exp $calc($rini($2,stats,Exp) + %exp)
    If ($rini($3,$3,Class) == Bounto) { wini %Nick Stats HP $Calc($rini(%Nick,Stats,HP) - %tdmg) }
    If ($rini(%Nick,Stats,HP) <= 0) { deadcheck $2 $3 }
    lvlcheck $2
    deadcheck $2 $3 
  }
}