All pastes #816736 Raw Edit

Something

public text v1 · immutable
·published 2007-12-14 23:14 UTC
rendered paste body
alias whipmax {
  set %whipmax $1
  echo 2 -at *** max hit for whip is now $1
}
alias hitpoints {
  set %hitpoints $1
  echo 2 -at *** max hitpoints is now $1
}
alias sharks {
  set %sharks $1
  echo 2 -at *** max sharks is now $1
}
alias heal {
  set %heal $1 
  echo 2 -at *** shark now heals $1 hitpoints
}
alias dmoff {
  unset %player1 [ $+ [ $chan ] ]
  unset %player2 [ $+ [ $chan ] ]
  unset %hp1 [ $+ [ $chan ] ]
  unset %hp2 [ $+ [ $chan ] ]
  unset %whip [ $+ [ $chan ] ]
  unset %dds [ $+ [ $chan ] ]
  unset %turn2 [ $+ [ $chan ] ]
  unset %turn [ $+ [ $chan ] ]
  unset %dm [ $+ [ $chan ] ]
}
on $*:text:/^[@!]dm$/Si:#pkdm:{
  if (!%dm [ $+ [ $chan ] ]) {
    msg $chan if you would like to dm $nick then you have 30 seconds to type $qt(!dm) otherwise the dm request will halt.
    set %dm [ $+ [ $chan ] ] $chan
    set %player1 [ $+ [ $chan ] ] $nick
    set %request [ $+ [ $chan ] ] on
    timerdmoff 1 30 dmoff
  }
  elseif (%request [ $+ [ $chan ] ] == on) && (!%player2 [ $+ [ $chan ] ]) && (%player1 [ $+ [ $chan ] ] != $nick) && (%dm [ $+ [ $chan ] ]) {
    timerdmoff off
    set %player2 [ $+ [ $chan ] ] $nick
    unset %request [ $+ [ $chan ] ]
    $iif($rand(0,1),set %turn [ $+ [ $chan ] ] %player1 [ $+ [ $chan ] ],set %turn [ $+ [ $chan ] ] %player2 [ $+ [ $chan ] ])
    set %hp1 [ $+ [ $chan ] ] %hitpoints
    set %hp2 [ $+ [ $chan ] ] %hitpoints
    set %shark1 [ $+ [ $chan ] ] %sharks
    set %shark2 [ $+ [ $chan ] ] %sharks
    set %whip [ $+ [ $chan ] ] $rand(0,40)
    set %turn2 [ $+ [ $chan ] ] $iif(%turn [ $+ [ $chan ] ] == %player1 [ $+ [ $chan ] ],%player2 [ $+ [ $chan ] ],%player1 [ $+ [ $chan ] ])
    msg $chan dm starting... %turn [ $+ [ $chan ] ] goes first. each player has %sharks sharks which heal %heal hitpoints, in addition, each player also has %hitpoints hitpoints. type $qt(!dmc) to view the dm commands.
  }
  elseif (%player1 [ $+ [ $chan ] ] == $nick) {
    notice %player1 [ $+ [ $chan ] ] you can't dm yourself.
  }
  elseif (%dm [ $+ [ $chan ] ]) && (!%request [ $+ [ $chan ] ]) && (%player2 [ $+ [ $chan ] ]) {
    notice $nick there is already an active dm in $chan
  }
}
on $*:text:/^[@!]turn$/Si:#pkdm:{
  if (%dm [ $+ [ $chan ] ]) {
    notice $nick it is currently $+(%turn [ $+ [ $chan ] ],'s) turn for the active dm in $chan
  }   
  elseif (!%dm [ $+ [ $chan ] ]) {
    notice $nick there is not an active dm in $chan
  }
}
on $*:text:/^[@!]whip$/Si:#pkdm:{
  if (%turn [ $+ [ $chan ] ] == %player1 [ $+ [ $chan ] ]) && (%turn [ $+ [ $chan ] ] == $nick) && (- !isin %hp2 [ $+ [ $chan ] ]) {
    set %whip [ $+ [ $chan ] ] $rand(0,%whipmax)
    msg $chan %turn [ $+ [ $chan ] ] inflicts %whip [ $+ [ $chan ] ] damage on $+(%turn2 [ $+ [ $chan ] ],$chr(44)) using a $remove($1,!,@) and leaves %turn2 [ $+ [ $chan ] ] with $iif(- isin $c(%hp2 [ $+ [ $chan ] ] - %whip [ $+ [ $chan ] ]),0,$c(%hp2 [ $+ [ $chan ] ] - %whip [ $+ [ $chan ] ])) hitpoints.
    set %hp2 [ $+ [ $chan ] ] $c(%hp2 [ $+ [ $chan ] ] - %whip [ $+ [ $chan ] ])
    var %turn1 [ $+ [ $chan ] ] %turn [ $+ [ $chan ] ]
    set %turn [ $+ [ $chan ] ] %turn2 [ $+ [ $chan ] ]
    set %turn2 [ $+ [ $chan ] ] %turn1 [ $+ [ $chan ] ]
    if (- isin %hp2 [ $+ [ $chan ] ]) || (%hp2 [ $+ [ $chan ] ] == 0) {
      msg $chan %player2 [ $+ [ $chan ] ] has been defeated by %player1 [ $+ [ $chan ] ]
      dmoff
    }
    else { 
      msg $chan it is now $+(%turn [ $+ [ $chan ] ],'s) turn
    }
  }
}
elseif (%turn [ $+ [ $chan ] ] == %player2 [ $+ [ $chan ] ]) && (%turn [ $+ [ $chan ] ] == $nick) && (- !isin %hp1 [ $+ [ $chan ] ]) {
  set %whip [ $+ [ $chan ] ] $rand(0,%whipmax)
  msg $chan %turn [ $+ [ $chan ] ] inflicts %whip [ $+ [ $chan ] ] damage on $+(%turn2 [ $+ [ $chan ] ],$chr(44)) using a $remove($1,!,@) and leaves %turn2 [ $+ [ $chan ] ] with $iif(- isin $c(%hp1 [ $+ [ $chan ] ] - %whip [ $+ [ $chan ] ]),0,$c(%hp1 [ $+ [ $chan ] ] - %whip [ $+ [ $chan ] ])) hitpoints.
  set %hp1 [ $+ [ $chan ] ] $c(%hp1 [ $+ [ $chan ] ] - %whip [ $+ [ $chan ] ])
  var %turn1 [ $+ [ $chan ] ] %turn [ $+ [ $chan ] ]
  set %turn [ $+ [ $chan ] ] %turn2 [ $+ [ $chan ] ]
  set %turn2 [ $+ [ $chan ] ] %turn1 [ $+ [ $chan ] ]
  if (- isin %hp1 [ $+ [ $chan ] ]) || (%hp1 [ $+ [ $chan ] ] == 0) {
    msg $chan %player1 [ $+ [ $chan ] ] has been defeated by %player2 [ $+ [ $chan ] ]
    dmoff
  }
  else { 
    msg $chan it is now $+(%turn [ $+ [ $chan ] ],'s) turn
  }
  elseif (- isin %hp2 [ $+ [ $chan ] ]) {
    msg $chan %player2 [ $+ [ $chan ] ] has been defeated by %player1 [ $+ [ $chan ] ]
    dmoff
  }
  elseif (- isin %hp1 [ $+ [ $chan ] ]) {
    msg $chan %player1 [ $+ [ $chan ] ] has been defeated by %player2 [ $+ [ $chan ] ]
    dmoff
  }
}
on $:text:/^[@!]dh$/Si:#pkdm:{
}
on $*:text:/^[@!]shark$/Si:#pkdm:{
  if (%turn [ $+ [ $chan ] ] == %player1 [ $+ [ $chan ] ]) && (%turn [ $+ [ $chan ] ] == $nick) && (%shark1 [ $+ [ $chan ] ] != 0) {
    msg $chan %turn [ $+ [ $chan ] ] eats a shark and heals %heal hitpoints. %turn [ $+ [ $chan ] ] now has $c(%heal + %hp1 [ $+ [ $chan ] ]) hitpoints left.
    set %hp1 [ $+ [ $chan ] ] $c(%heal + %hp1 [ $+ [ $chan ] ])
    var %turn1 [ $+ [ $chan ] ] %turn [ $+ [ $chan ] ]
    set %turn [ $+ [ $chan ] ] %turn2 [ $+ [ $chan ] ]
    set %turn2 [ $+ [ $chan ] ] %turn1 [ $+ [ $chan ] ]
    dec %shark1 [ $+ [ $chan ] ] 1
    msg $chan it is now $+(%turn [ $+ [ $chan ] ],'s) turn
  }
  elseif (%turn [ $+ [ $chan ] ] == %player2 [ $+ [ $chan ] ]) && (%turn [ $+ [ $chan ] ] == $nick) && (%shark2 [ $+ [ $chan ] ] != 0) {
    msg $chan %turn [ $+ [ $chan ] ] eats a shark and heals %heal hitpoints. %turn [ $+ [ $chan ] ] now has $c(%heal + %hp2 [ $+ [ $chan ] ]) hitpoints left.
    set %hp2 [ $+ [ $chan ] ] $c(%heal + %hp2 [ $+ [ $chan ] ])
    var %turn1 [ $+ [ $chan ] ] %turn [ $+ [ $chan ] ]
    set %turn [ $+ [ $chan ] ] %turn2 [ $+ [ $chan ] ]
    set %turn2 [ $+ [ $chan ] ] %turn1 [ $+ [ $chan ] ]
    dec %shark2 [ $+ [ $chan ] ] 1
    msg $chan it is now $+(%turn [ $+ [ $chan ] ],'s) turn
  }
}
on $*:text:/^[@!]stop$/Si:#pkdm:{
  if (%dm [ $+ [ $chan ] ]) {
    if ($nick isop %dm [ $+ [ $chan ] ]) || ($wildsite = $address($me,2)) || ($nick == %player1 [ $+ [ $chan ] ]) || ($nick == %player2 [ $+ [ $chan ] ]) {
      msg $chan halting the current dm on request of $nick
      unset %player1 [ $+ [ $chan ] ]
      unset %player2 [ $+ [ $chan ] ]
      unset %hp1 [ $+ [ $chan ] ]
      unset %hp2 [ $+ [ $chan ] ]
      unset %whip [ $+ [ $chan ] ]
      unset %dds [ $+ [ $chan ] ]
      unset %turn2 [ $+ [ $chan ] ]
      unset %turn [ $+ [ $chan ] ]
      unset %dm [ $+ [ $chan ] ]
      unset %shark1 [ $+ [ $chan ] ]
      unset %shark2 [ $+ [ $chan ] ]
    }
    elseif ($nick !isop %dm [ $+ [ $chan ] ]) || ($wildsite != $address($me,2)) || ($nick != %player1 [ $+ [ $chan ] ]) || ($nick == %player2 [ $+ [ $chan ] ]) {
      notice $nick access denied.
    }
  }
  elseif (!%dm [ $+ [ $chan ] ]) {
    notice $nick there is not an active dm in $chan
  }
}