All pastes #2058561 Raw Edit

Something

public text v1 · immutable
#2058561 ·published 2011-05-13 20:51 UTC
rendered paste body
on *:TEXT:.voidgame*:%ch: {
  var %u = $getid2($nick)
  if ( $userlvl(%u) >= $adminlvl ) {
    var %op = %u
    var %game = $get.gamenum($2)
    if (!%game) { return }
    if (!$hget(gamedata,%game)) { return }
    var %result = $game(%game).result
    if ( %result == draw ) { describe %ch Game has been closed as draw. | return }
    var %players = $game(%game).plist
    if ( %result == CT ) {
      var %wfrom = 1
      var %lfrom = 4
      var %exp = $game(%game).elist
    }
    elseif ( %result == Terror ) {
      var %wfrom = 4
      var %lfrom = 1
      var %exp = $game(%game).aelist
    }

    var %plist

    var %i = %wfrom
    var %l = %wfrom + 4
    while ( %i <= %l ) {
      var %u = $gettok(%players,%i,46)
      var %e = $calc(-1 * $gettok(%exp,%i,46))
      noop $xsetuser(%u,-1).win
      noop $xsetuser(%u,%e).exp
      var %plist = %plist $getname(%u) $+ $iif(%e >= 0,$enclose(+ $+ %e),$enclose(%e))
      inc %i
    }

    var %i = %lfrom
    var %l = %lfrom + 4
    while ( %i <= %l ) {
      var %u = $gettok(%players,%i,46)
      var %e = $calc(-1 * $gettok(%exp,%i,46))
      noop $xsetuser(%u,-1).lost
      noop $xsetuser(%u,%e).exp
      var %plist = %plist $getname(%u) $+ $iif(%e >= 0,$enclose(+ $+ %e),$enclose(%e))
      inc %i
    }
    var %gamelist = $hget(gamedata,%game)
    var %gamelist = $puttok(%gamelist,1,12,46)
    hadd gamedata %game %gamelist
    describe %ch Game $game(%game).name voided! Experience changes: %plist
    $Addrecord %op .voidgame Game# %game voided
  }
}