Hockey Game 2009
Platform: mIRC
Published Dec 07, 2010
Updated Jul 10, 2011
This is a simple hockey script for mIRC. The readme is in the link below and I encourage those who host the script to read it.
IMPORTANT: This game requires other files to play. Download the files below and put them in the same directory as the script. It is
recommended that you create a new folder somewhere (such as mIRC/scripts/hockey/) and put all files there. The snippet is included in the link so you don't need to copy the code.
Extra Files:
http://www.mediafire.com/?ageg66d89f2s3wo
(last updated July 9, 2011)
Here are some notes:
-Hockey on IRC? Does anyone even care about hockey...
-This can be somewhat spammy at times, so beware.
-I have no control over RL players being traded or injured.
-Goals come at a much higher rate than normal (~60%) because we don't want to run an IRC script for 60 minutes.
Notes on newest version:
-Added anime version for kicks
-Added 1 round of OT where all saves stay in play until a goal is scored
-Improved AI, still inefficient with over 9000 file reads, but hey it's not like we're using Pentium II
-Improved display a bit
-Teams are still 2009 because I'm too lazy
alias h.roll {
var %h.nick $nick
if ($2) { var %h.nick $2 }
var %h.stat 3|0|0|0|0|0|0|0|0|0|0|0|X
write -s $+ %h.nick " $+ $scriptdir $+ h_accounts.txt $+ " %h.nick %h.stat
var %h.temp 1
while (%h.temp <= $iif(%hockey.mode == anime,56,38)) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ L $+ %h.temp $+ |*)) { var %h.avail.l $instok(%h.avail.l,%h.temp,1,124) }
inc %h.temp
}
if ($numtok(%h.avail.l,124) <= 1) { halt }
var %h.l1n $rand(1,$numtok(%h.avail.l,124))
var %h.l1 $gettok(%h.avail.l,%h.l1n,124)
var %h.avail.l $deltok(%h.avail.l,%h.l1n,124)
var %h.l2 $gettok(%h.avail.l,$rand(1,$numtok(%h.avail.l,124)),124)
var %h.temp 1
while (%h.temp <= $iif(%hockey.mode == anime,60,37)) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ C $+ %h.temp $+ |*)) { var %h.avail.c $instok(%h.avail.c,%h.temp,1,124) }
inc %h.temp
}
if ($numtok(%h.avail.c,124) <= 1) { halt }
var %h.c1n $rand(1,$numtok(%h.avail.c,124))
var %h.c1 $gettok(%h.avail.c,%h.c1n,124)
var %h.avail.c $deltok(%h.avail.c,%h.c1n,124)
var %h.c2 $gettok(%h.avail.c,$rand(1,$numtok(%h.avail.c,124)),124)
var %h.temp 1
while (%h.temp <= $iif(%hockey.mode == anime,57,36)) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ R $+ %h.temp $+ |*)) { var %h.avail.r $instok(%h.avail.r,%h.temp,1,124) }
inc %h.temp
}
if ($numtok(%h.avail.r,124) <= 1) { halt }
var %h.r1n $rand(1,$numtok(%h.avail.r,124))
var %h.r1 $gettok(%h.avail.r,%h.r1n,124)
var %h.avail.r $deltok(%h.avail.r,%h.r1n,124)
var %h.r2 $gettok(%h.avail.r,$rand(1,$numtok(%h.avail.r,124)),124)
var %h.temp 1
while (%h.temp <= $iif(%hockey.mode == anime,108,77)) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ D $+ %h.temp $+ |*)) { var %h.avail.d $instok(%h.avail.d,%h.temp,1,124) }
inc %h.temp
}
if ($numtok(%h.avail.d,124) <= 3) { halt }
var %h.d1n $rand(1,$numtok(%h.avail.d,124))
var %h.d1 $gettok(%h.avail.d,%h.d1n,124)
var %h.avail.d $deltok(%h.avail.d,%h.d1n,124)
var %h.d2n $rand(1,$numtok(%h.avail.d,124))
var %h.d2 $gettok(%h.avail.d,%h.d2n,124)
var %h.avail.d $deltok(%h.avail.d,%h.d2n,124)
var %h.d3n $rand(1,$numtok(%h.avail.d,124))
var %h.d3 $gettok(%h.avail.d,%h.d3n,124)
var %h.avail.d $deltok(%h.avail.d,%h.d3n,124)
var %h.d4 $gettok(%h.avail.d,$rand(1,$numtok(%h.avail.d,124)),124)
var %h.temp 1
while (%h.temp <= $iif(%hockey.mode == anime,23,24)) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ G $+ %h.temp $+ |*)) { var %h.avail.g $instok(%h.avail.g,%h.temp,1,124) }
inc %h.temp
}
if (!%h.avail.g) { halt }
var %h.g1 $gettok(%h.avail.g,$rand(1,$numtok(%h.avail.g,124)),124)
var %h.stat $puttok(%h.stat,L $+ %h.l1,2,124)
var %h.stat $puttok(%h.stat,C $+ %h.c1,3,124)
var %h.stat $puttok(%h.stat,R $+ %h.r1,4,124)
var %h.stat $puttok(%h.stat,D $+ %h.d1,5,124)
var %h.stat $puttok(%h.stat,D $+ %h.d2,6,124)
var %h.stat $puttok(%h.stat,L $+ %h.l2,7,124)
var %h.stat $puttok(%h.stat,C $+ %h.c2,8,124)
var %h.stat $puttok(%h.stat,R $+ %h.r2,9,124)
var %h.stat $puttok(%h.stat,D $+ %h.d3,10,124)
var %h.stat $puttok(%h.stat,D $+ %h.d4,11,124)
var %h.stat $puttok(%h.stat,G $+ %h.g1,12,124)
if (%hockey.mode != anime) {
var %h.legend $rand(2,12)
if (%h.legend isnum 2-4) || (%h.legend isnum 7-9) {
var %h.temp 1
while (%h.temp <= 23) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ F $+ %h.temp $+ |*)) { var %h.avail.z $instok(%h.avail.z,%h.temp,1,124) }
inc %h.temp
}
if ($numtok(%h.avail.z,124) < 1) { halt }
var %h.z1 $gettok(%h.avail.z,$rand(1,$numtok(%h.avail.z,124)),124)
var %h.stat $puttok(%h.stat,F $+ %h.z1,%h.legend,124)
}
elseif (%h.legend isnum 5-6) || (%h.legend isnum 10-11) {
var %h.temp 121
while (%h.temp <= 131) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ D $+ %h.temp $+ |*)) { var %h.avail.z $instok(%h.avail.z,%h.temp,1,124) }
inc %h.temp
}
if ($numtok(%h.avail.z,124) < 1) { halt }
var %h.z1 $gettok(%h.avail.z,$rand(1,$numtok(%h.avail.z,124)),124)
var %h.stat $puttok(%h.stat,D $+ %h.z1,%h.legend,124)
}
elseif (%h.legend isnum 12) {
var %h.temp 34
while (%h.temp <= 37) {
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ G $+ %h.temp $+ |*)) { var %h.avail.z $instok(%h.avail.z,%h.temp,1,124) }
inc %h.temp
}
if ($numtok(%h.avail.z,124) < 1) { halt }
var %h.z1 $gettok(%h.avail.z,$rand(1,$numtok(%h.avail.z,124)),124)
var %h.stat $puttok(%h.stat,G $+ %h.z1,%h.legend,124)
}
}
write -s $+ %h.nick " $+ $scriptdir $+ h_accounts.txt $+ " %h.nick %h.stat
h.team return %h.nick
msg $chan $result
}
alias h.select {
var %h.nick $nick
if ($1 != h.select) { var %h.nick $1 }
if (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*|X)) || ($1 != h.select) {
if ($read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ $2-)) && ($1 == h.select) { msg $chan 06[PUCK] Team 06already chosen. }
elseif ($read(" $+ $scriptdir $+ h_select.txt $+ ",w,$2- $+ |*)) {
var %h.lineup $read(" $+ $scriptdir $+ h_select.txt $+ ",$readn)
if ($1 != h.select) { var %h.nick $replace($gettok(%h.lineup,1,124),$chr(32),_) }
h.character $gettok(%h.lineup,2,124)
var %h.team 3| $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,3,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,4,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,8,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,9,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,5,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,6,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,7,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,10,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,11,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ |
h.character $gettok(%h.lineup,12,124)
var %h.team %h.team $+ $gettok($result,1,32) $+ $gettok($result,2,32) $+ $chr(124) $+ $gettok(%h.lineup,1,124)
write -s $+ $strip(%h.nick) " $+ $scriptdir $+ h_accounts.txt $+ " $strip(%h.nick) %h.team
if ($1 != h.select) { return %h.team }
else {
h.team return %h.nick
msg $chan $result
}
}
else { msg $chan 06[PUCK] Team 06not in database. }
}
else { msg $chan 06[PUCK] You 06cannot select until after the next game. }
}
alias h.simulate {
var %h.team1 $gettok($2-,1,47)
var %h.team2 $gettok($2-,2,47)
h.select simulation %h.team1
var %h.s1 $gettok($result,13,124)
h.select simulation %h.team2
var %h.s2 $gettok($result,13,124)
if ($read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$replace(%h.team1,$chr(32),_))) && ($read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$replace(%h.team2,$chr(32),_))) { h.accept simulation $replace(%h.s1,$chr(32),_) $replace(%h.s2,$chr(32),_) }
else {
var %h.temp $read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$replace(%h.team1,$chr(32),_))
if (%h.temp) { write -dl $+ $readn " $+ $scriptdir $+ h_accounts.txt $+ " }
var %h.temp $read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$replace(%h.team2,$chr(32),_))
if (%h.temp) { write -dl $+ $readn " $+ $scriptdir $+ h_accounts.txt $+ " }
}
}
alias h.replace {
var %h.account $read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$nick)
var %h.actions $gettok(%h.account,1,124)
if (!%h.account) {
msg $chan 06[PUCK] You have 06no players in your team!
halt
}
elseif (%h.actions <= 0) {
msg $chan 06[PUCK] You 06cannot make any more replacements!
halt
}
h.character $3-
var %h.pos $gettok($result,1,32)
var %h.num $gettok($result,2,32)
if ($result == null) { msg $chan Error: Player not in Database }
elseif ($read(" $+ $scriptdir $+ h_accounts.txt $+ ",w,*| $+ %h.pos $+ %h.num $+ |*)) { msg $chan Error: Duplicate }
elseif (%h.pos isletter F) || ((%h.pos isletter D) && (%h.num > 120)) || ((%h.pos isletter G) && (%h.num > 33)) { msg $chan Error: This player cannot be picked }
elseif ($gettok($result,1,32) isin $read(" $+ $scriptdir $+ h_order.txt $+ ",s,$2)) {
var %h.account $puttok(%h.account,%h.pos $+ %h.num,$calc($2 + 1),124)
var %h.account $puttok(%h.account,$calc(%h.actions - 1),1,124)
var %h.account $puttok(%h.account,X,13,124)
write -s $+ $nick " $+ $scriptdir $+ h_accounts.txt $+ " $nick %h.account
h.team return $nick
msg $chan $result
}
else { msg $chan Error: Wrong Position }
}
alias h.team {
if (%hockey.mode == anime) { var %h.forward q_forward.txt | var %h.defender q_defender.txt | var %h.goalie q_goalie.txt }
else { var %h.forward %h.forward | var %h.defender %h.defender | var %h.goalie %h.goalie }
if ($2) && (!$read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$2)) {
if ($1 != return) msg $chan 06[PUCK] 12 $+ $2 06does not have a team!
halt
}
else {
var %h.nick $nick
if ($2) { var %h.nick $2 }
}
var %h.account $read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,%h.nick)
if (!%h.account) {
if ($1 != return) msg $chan 06[PUCK] 06You have no players in your team!
halt
}
else {
var %h.l1.id $gettok(%h.account,2,124)
var %h.l1.read $read(" $+ $scriptdir $+ %h.forward $+ ",s,%h.l1.id)
if (!%h.l1.read) { var %h.l1.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.l1.id) }
var %h.l1.name $gettok(%h.l1.read,1,124)
var %h.c1.id $gettok(%h.account,3,124)
var %h.c1.read $read(" $+ $scriptdir $+ %h.forward $+ ",s,%h.c1.id)
if (!%h.c1.read) { var %h.c1.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.c1.id) }
var %h.c1.name $gettok(%h.c1.read,1,124)
var %h.r1.id $gettok(%h.account,4,124)
var %h.r1.read $read(" $+ $scriptdir $+ %h.forward $+ ",s,%h.r1.id)
if (!%h.r1.read) { var %h.r1.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.r1.id) }
var %h.r1.name $gettok(%h.r1.read,1,124)
var %h.d1.id $gettok(%h.account,5,124)
var %h.d1.read $read(" $+ $scriptdir $+ %h.defender $+ ",s,%h.d1.id)
if (!%h.d1.read) { var %h.d1.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.d1.id) }
var %h.d1.name $gettok(%h.d1.read,1,124)
var %h.d2.id $gettok(%h.account,6,124)
var %h.d2.read $read(" $+ $scriptdir $+ %h.defender $+ ",s,%h.d2.id)
if (!%h.d2.read) { var %h.d2.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.d2.id) }
var %h.d2.name $gettok(%h.d2.read,1,124)
var %h.l2.id $gettok(%h.account,7,124)
var %h.l2.read $read(" $+ $scriptdir $+ %h.forward $+ ",s,%h.l2.id)
if (!%h.l2.read) { var %h.l2.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.l2.id) }
var %h.l2.name $gettok(%h.l2.read,1,124)
var %h.c2.id $gettok(%h.account,8,124)
var %h.c2.read $read(" $+ $scriptdir $+ %h.forward $+ ",s,%h.c2.id)
if (!%h.c2.read) { var %h.c2.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.c2.id) }
var %h.c2.name $gettok(%h.c2.read,1,124)
var %h.r2.id $gettok(%h.account,9,124)
var %h.r2.read $read(" $+ $scriptdir $+ %h.forward $+ ",s,%h.r2.id)
if (!%h.r2.read) { var %h.r2.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.r2.id) }
var %h.r2.name $gettok(%h.r2.read,1,124)
var %h.d3.id $gettok(%h.account,10,124)
var %h.d3.read $read(" $+ $scriptdir $+ %h.defender $+ ",s,%h.d3.id)
if (!%h.d3.read) { var %h.d3.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.d3.id) }
var %h.d3.name $gettok(%h.d3.read,1,124)
var %h.d4.id $gettok(%h.account,11,124)
var %h.d4.read $read(" $+ $scriptdir $+ %h.defender $+ ",s,%h.d4.id)
if (!%h.d4.read) { var %h.d4.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.d4.id) }
var %h.d4.name $gettok(%h.d4.read,1,124)
var %h.g1.id $gettok(%h.account,12,124)
var %h.g1.read $read(" $+ $scriptdir $+ %h.goalie $+ ",s,%h.g1.id)
if (!%h.g1.read) { var %h.g1.read $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,%h.g1.id) }
var %h.g1.name $gettok(%h.g1.read,1,124)
if (!%h.l1.name) { var %h.l1.name (L1) }
if (!%h.c1.name) { var %h.c1.name (C1) }
if (!%h.r1.name) { var %h.r1.name (R1) }
if (!%h.d1.name) { var %h.d1.name (D1) }
if (!%h.d2.name) { var %h.d2.name (D2) }
if (!%h.l2.name) { var %h.l2.name (L2) }
if (!%h.c2.name) { var %h.c2.name (C2) }
if (!%h.r2.name) { var %h.r2.name (R2) }
if (!%h.d3.name) { var %h.d3.name (D3) }
if (!%h.d4.name) { var %h.d4.name (D4) }
if (!%h.g1.name) { var %h.g1.name (G) }
h.stats team $gettok(%h.account,2,124)
var %h.rate $gettok($result,10,124)
h.stats team $gettok(%h.account,3,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,4,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,5,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,6,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,7,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,8,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,9,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,10,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,11,124)
var %h.rate $calc($gettok($result,10,124) + %h.rate)
h.stats team $gettok(%h.account,12,124)
var %h.rate $calc($gettok($result,11,124) + %h.rate)
$iif($1 != return,msg $chan,return) 06 $+ Line 1: 05[12 %h.l1.name - %h.c1.name - %h.r1.name 05|03 %h.d1.name - %h.d2.name 05] 06 $+ Line 2: 05[12 %h.l2.name - %h.c2.name - %h.r2.name 05|03 %h.d3.name - %h.d4.name 05] 06 $+ Goalie: 05[04 %h.g1.name 05] 06 $+ Team Rating: 05[12 $round($calc(%h.rate / 11),1) 05]
}
}
alias h.character {
if (%hockey.mode == anime) { var %h.forward q_forward.txt | var %h.defender q_defender.txt | var %h.goalie q_goalie.txt }
else { var %h.forward p_forward.txt | var %h.defender p_defender.txt | var %h.goalie p_goalie.txt }
if ($len($1) <= 4) && ($left($1,1) isletter lcrdgfLCRDGF) && ($right($1,-1) isnum) {
var %h.query $read(" $+ $scriptdir $+ %h.forward $+ ",s,$1)
if (!%h.query) { var %h.query $read(" $+ $scriptdir $+ %h.defender $+ ",s,$1) }
if (!%h.query) { var %h.query $read(" $+ $scriptdir $+ %h.goalie $+ ",s,$1) }
if (!%h.query) { var %h.query $read(" $+ $scriptdir $+ p_legend.txt $+ ",s,$1) }
return $iif(%h.query,$upper($left($1,1)) $right($1,-1) %h.query,null)
}
else {
var %h.query $read(" $+ $scriptdir $+ %h.forward $+ ",w,* * $+ $1- $+ *|*|*|*|*|*|*|*|*) | var %h.line $readn
if (!%h.query) { var %h.query $read(" $+ $scriptdir $+ %h.defender $+ ",w,* * $+ $1- $+ *|*|*|*|*|*|*|*|*) | var %h.line $readn }
if (!%h.query) { var %h.query $read(" $+ $scriptdir $+ %h.goalie $+ ",w,* * $+ $1- $+ *|*|*|*|*|*|*|*|*) | var %h.line $readn }
if (!%h.query) { var %h.query $read(" $+ $scriptdir $+ p_legend.txt $+ ",w,* * $+ $1- $+ *|*|*|*|*|*|*|*|*) | var %h.line $readn }
var %h.pos $gettok(%h.query,1,32)
return $iif(%h.query,$left(%h.pos,1) $right(%h.pos,-1) $deltok(%h.query,1,32),null)
}
}
alias h.stats {
h.character $2-
if ($result == null) { msg $chan 06[PUCK] 06No such player exists. | halt }
var %h.pos $gettok($result,1,32)
var %h.id $gettok($result,2,32)
var %h.stats $deltok($result,1-2,32)
var %h.name $gettok(%h.stats,1,124)
var %h.team $gettok(%h.stats,9,124)
if (%h.pos isletter lcrdfLCRDF) {
var %h.wrist $gettok(%h.stats,2,124)
var %h.slap $gettok(%h.stats,3,124)
var %h.face $gettok(%h.stats,4,124)
var %h.pass $gettok(%h.stats,5,124)
var %h.speed $gettok(%h.stats,6,124)
var %h.check $gettok(%h.stats,7,124)
var %h.block $gettok(%h.stats,8,124)
var %h.wrist $calc(%h.wrist / 0.12)
var %h.slap $calc(%h.slap / 0.12)
var %h.fo $calc(%h.face / (%h.face + 77.25) * 1000)
var %h.ctrl $calc((%h.pass * 2 - 84.33) / 0.75)
var %h.blk $calc((%h.block * 2 - 83.88) / 0.65)
var %h.off $calc(%h.face / %h.pass * 833 - (%h.face / %h.pass * 83) ^ 1.1)
var %h.con $round($calc((%h.check / %h.speed * 100) - 100),1)
if (%h.con >= 0) { var %h.con + $+ %h.con }
if (%h.pos isletter lrLR) {
var %h.rate $round($calc((0.12 * %h.wrist + 0.12 * %h.slap + 0.6 * %h.face + 0.8 * %h.pass + 0.9 * %h.speed + 0.4 * %h.check + 0.3 * %h.block) / 5),1)
var %h.wrist $calc(%h.wrist * 1.1)
var %h.slap $calc(%h.slap * 1.1)
var %h.ctrl $calc(%h.ctrl / 1.1)
var %h.blk $calc(%h.blk / 1.25)
var %h.off $calc(%h.off * 1.15)
}
elseif (%h.pos isletter cC) {
var %h.rate $calc((0.12 * 0.9 * %h.wrist + 0.12 * 0.9 * %h.slap + 0.6 * %h.face + %h.pass + 0.9 * %h.speed + 0.4 * %h.check + 0.3 * %h.block) / 5)
var %h.ctrl $calc(%h.ctrl * 1.1)
var %h.blk $calc(%h.blk / 1.25)
}
elseif (%h.pos isletter dD) {
var %h.rate $round($calc((0.12 * 0.5 * %h.wrist + 0.12 * 0.5 * %h.slap + %h.pass + 0.5 * %h.speed + %h.check + 1.5 * %h.block) / 5),1)
var %h.wrist $calc(%h.wrist / 1.1)
var %h.slap $calc(%h.slap / 1.1)
var %h.ctrl $calc(%h.ctrl * 1.1)
var %h.blk $calc(%h.blk * 1.25)
var %h.off $calc(%h.off / 1.15)
}
else { var %h.rate $round($calc((0.12 * 0.95 * %h.wrist + 0.12 * 0.95 * %h.slap + 0.6 * %h.face + 0.9 * %h.pass + 0.9 * %h.speed + 0.3 * %h.check + 0.4 * %h.block) / 5),1) }
if ($1 == h.stats) { msg $chan 06[PUCK] 04 $+ %h.pos $+ %h.id $+ : 12 $+ %h.name - 06Off: 03 $+ $round($calc(%h.off / 10),1) $+ $chr(37) $+ 06, Acc: 03 $+ $round($calc((%h.wrist + %h.slap) / 20),1) $+ $chr(37) $+ 06, FO: 03 $+ $iif(%h.pos isletter dD,--,$round($calc(%h.fo / 10),1) $+ $chr(37)) $+ 06, Ctrl: 03 $+ $round($calc(%h.ctrl / 10),1) $+ $chr(37) $+ 06, Blk: 03 $+ $round($calc(%h.blk / 10),1) $+ $chr(37) $+ 06, Con: 03 $+ %h.con $+ 06, Rtg: 03 $+ $round(%h.rate,1) $+ 06, $iif(%hockey.mode == anime,Ability:,Team:) 02 $+ %h.team }
else { return %h.name $+ $chr(124) $+ %h.off $+ $chr(124) $+ %h.wrist $+ $chr(124) $+ %h.slap $+ $chr(124) $+ %h.face $+ $chr(124) $+ %h.pass $+ $chr(124) $+ %h.speed $+ $chr(124) $+ %h.check $+ $chr(124) $+ %h.block $+ $chr(124) $+ %h.rate $+ $chr(124) $+ %h.team }
}
elseif (%h.pos isletter gG) {
var %h.gl $gettok(%h.stats,2,124)
var %h.gh $gettok(%h.stats,3,124)
var %h.sl $gettok(%h.stats,4,124)
var %h.sh $gettok(%h.stats,5,124)
var %h.fh $gettok(%h.stats,6,124)
var %h.pc $calc($gettok(%h.stats,7,124) / 4)
var %h.rc $calc($gettok(%h.stats,8,124) / 4)
var %h.stam $gettok(%h.stats,10,124)
var %h.save $calc((%h.gl + %h.gh + %h.sl + %h.sh) / 10)
var %h.rate $calc((0.015 * (%h.gl + %h.gh + %h.sl + %h.sh) + 0.16 * %h.rc) * (%h.stam / 100) ^ 0.33)
var %h.glove $round($calc((%h.gl + %h.gh) / (%h.sl + %h.sh) * (1000 - %h.rc)),1)
if ($1 == h.stats) { msg $chan 06[PUCK] 04 $+ %h.pos $+ %h.id $+ : 12 $+ %h.name - 06Save: 03 $+ $round($calc(%h.save / 10),1) $+ $chr(37) $+ 06, Poke: 03 $+ $round($calc(%h.pc / 10),1) $+ 06, Rbnd: 03 $+ $round($calc(%h.rc / 10),1) $+ 06, Stam: 03 $+ %h.stam $+ $chr(37) $+ 06, Rtg: 03 $+ $round(%h.rate,1) $+ 06, $iif(%hockey.mode == anime,Ability:,Team:) 02 $+ %h.team }
else { return %h.name $+ $chr(124) $+ %h.gl $+ $chr(124) $+ %h.gh $+ $chr(124) $+ %h.sl $+ $chr(124) $+ %h.sh $+ $chr(124) $+ %h.fh $+ $chr(124) $+ %h.pc $+ $chr(124) $+ %h.rc $+ $chr(124) $+ %h.glove $+ $chr(124) $+ %h.stam $+ $chr(124) $+ %h.rate $+ $chr(124) $+ %h.team }
}
}
alias h.check {
var %h.read $read(" $+ $scriptdir $+ q_abilities.txt $+ ",w,$1- $+ *|*)
var %h.abil $gettok(%h.read,1,124)
var %h.desc $gettok(%h.read,2,124)
if (%hockey.mode != anime) { msg $chan 06[PUCK] 06 $+ Abilities are not available for this hockey mode. }
elseif (%h.abil) { msg $chan 06[PUCK] 04Ability: 12 $+ %h.abil -03 %h.desc }
}
alias h.clear {
write -c " $+ $scriptdir $+ h_accounts.txt $+ "
msg $chan 06[PUCK] All 12teams have been 03cleared and 12h.select is 06available $+ !
}
alias h.toggle {
if ($1 == normal) { set %hockey.mode normal }
elseif ($1 == anime) { set %hockey.mode anime }
write -c " $+ $scriptdir $+ h_accounts.txt $+ "
}
alias h.challenge {
if (%prot.h. [ $+ [ $nick ] ] == on) { notice $nick 06[PUCK] Another 06battle cannot be 12initiated so soon. | halt }
if (%h.fight) { msx.busy $nick | halt }
if (%h.challenge == 1) { notice $nick 06[PUCK] A 06challenge is 12already pending. | halt }
if ($2 == $3) { notice $nick 06[PUCK] 12You can't 06challenge yourself! | halt }
if ($3 !ison $chan) { msg $chan 06[PUCK] 12You can't 06challenge someone 06not in the channel! | halt }
if (%msx.chan) { msg $chan 06[PUCK] An 04[MSX] 12battle is 03currently in progress. | halt }
var %h.account.p1 $read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$2)
var %h.account.p2 $read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$3)
set %h.p1 $2
set %h.p2 $3
if (!%h.account.p1) { notice $nick 06[PUCK] 12You don't have an 06team to battle with! | halt }
if (!%h.account.p2) { msg $chan 06[PUCK] 12 $+ $3 has 06no team to battle with! | halt }
msg $chan 06[PUCK] 12 $+ %h.p2 $+ , do you 06accept or 06decline 12 $+ %h.p1 $+ 's challenge?
set %h.challenge 1
.timer.h.challenge.1 1 30 msg $chan 06[PUCK] 12 $+ %h.p2 has 06ignored 12 $+ %h.p1 $+ 's challenge.
.timer.h.challenge.2 1 30 unset %h.challenge
}
alias h.accept {
unset %h.challenge
.timer.h.challenge* off
set %h.chan $chan
var %h.account.p1 $deltok($deltok($read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$2),1,124),12-14,124)
set %h.p1 $gettok($read(" $+ $scriptdir $+ h_accounts.txt $+ ",$readn),1,32)
var %h.account.p2 $deltok($deltok($read(" $+ $scriptdir $+ h_accounts.txt $+ ",s,$3),1,124),12-14,124)
set %h.p2 $gettok($read(" $+ $scriptdir $+ h_accounts.txt $+ ",$readn),1,32)
write -c " $+ $scriptdir $+ h_player1.txt $+ "
write -c " $+ $scriptdir $+ h_player2.txt $+ "
h.stats battle $gettok(%h.account.p1,1,124)
write " $+ $scriptdir $+ h_player1.txt $+ " L1 $result
h.stats battle $gettok(%h.account.p1,2,124)
write " $+ $scriptdir $+ h_player1.txt $+ " C1 $result
h.stats battle $gettok(%h.account.p1,3,124)
write " $+ $scriptdir $+ h_player1.txt $+ " R1 $result
h.stats battle $gettok(%h.account.p1,4,124)
write " $+ $scriptdir $+ h_player1.txt $+ " D1 $result
h.stats battle $gettok(%h.account.p1,5,124)
write " $+ $scriptdir $+ h_player1.txt $+ " D2 $result
h.stats battle $gettok(%h.account.p1,6,124)
write " $+ $scriptdir $+ h_player1.txt $+ " L2 $result
h.stats battle $gettok(%h.account.p1,7,124)
write " $+ $scriptdir $+ h_player1.txt $+ " C2 $result
h.stats battle $gettok(%h.account.p1,8,124)
write " $+ $scriptdir $+ h_player1.txt $+ " R2 $result
h.stats battle $gettok(%h.account.p1,9,124)
write " $+ $scriptdir $+ h_player1.txt $+ " D3 $result
h.stats battle $gettok(%h.account.p1,10,124)
write " $+ $scriptdir $+ h_player1.txt $+ " D4 $result
h.stats battle $gettok(%h.account.p1,11,124)
write " $+ $scriptdir $+ h_player1.txt $+ " G $result
h.stats battle $gettok(%h.account.p2,1,124)
write " $+ $scriptdir $+ h_player2.txt $+ " L1 $result
h.stats battle $gettok(%h.account.p2,2,124)
write " $+ $scriptdir $+ h_player2.txt $+ " C1 $result
h.stats battle $gettok(%h.account.p2,3,124)
write " $+ $scriptdir $+ h_player2.txt $+ " R1 $result
h.stats battle $gettok(%h.account.p2,4,124)
write " $+ $scriptdir $+ h_player2.txt $+ " D1 $result
h.stats battle $gettok(%h.account.p2,5,124)
write " $+ $scriptdir $+ h_player2.txt $+ " D2 $result
h.stats battle $gettok(%h.account.p2,6,124)
write " $+ $scriptdir $+ h_player2.txt $+ " L2 $result
h.stats battle $gettok(%h.account.p2,7,124)
write " $+ $scriptdir $+ h_player2.txt $+ " C2 $result
h.stats battle $gettok(%h.account.p2,8,124)
write " $+ $scriptdir $+ h_player2.txt $+ " R2 $result
h.stats battle $gettok(%h.account.p2,9,124)
write " $+ $scriptdir $+ h_player2.txt $+ " D3 $result
h.stats battle $gettok(%h.account.p2,10,124)
write " $+ $scriptdir $+ h_player2.txt $+ " D4 $result
h.stats battle $gettok(%h.account.p2,11,124)
write " $+ $scriptdir $+ h_player2.txt $+ " G $result
unset %h.fight
h.game
}
alias h.decline {
msg $chan 06[PUCK] 12 $+ %h.p2 has 06declined 12 $+ %h.p1 $+ 's challenge.
unset %h.challenge
.timer.h.challenge* off
}
alias h.game {
if (!%h.fight) {
set %h.p1.score 0
set %h.p2.score 0
set %h.fight 1
set %h.p1.net $read(" $+ $scriptdir $+ h_player1.txt $+ ",s,G)
set %h.p1.goalie $gettok(%h.p1.net,1,124)
set %h.p1.stam $gettok(%h.p1.net,10,124)
set %h.p1.netm.a $gettok(%h.p1.net,12,124)
set %h.p2.net $read(" $+ $scriptdir $+ h_player2.txt $+ ",s,G)
set %h.p2.goalie $gettok(%h.p2.net,1,124)
set %h.p2.stam $gettok(%h.p2.net,10,124)
set %h.p2.netm.a $gettok(%h.p2.net,12,124)
msg %h.chan 06[PUCK] 04Hockey Match between 12 $+ Team %h.p1 and 03 $+ Team %h.p2 has started!
}
if (%h.fight > 1) { .timer.score 1 1 msg %h.chan 06[PUCK] 12 $+ Team %h.p1 has 06 $+ %h.p1.score points. 03 $+ Team %h.p2 has 06 $+ %h.p2.score points. }
if ((%h.fight > 5) && ($abs($calc(%h.p1.score - %h.p2.score)) > 0)) || ((%h.fight == 4) && ($abs($calc(%h.p1.score - %h.p2.score)) == 3)) || ((%h.fight == 5) && ($abs($calc(%h.p1.score - %h.p2.score)) >= 2)) {
write -c " $+ $scriptdir $+ h_accounts.txt $+ "
var %h.win $iif(%h.p1.score > %h.p2.score,%h.p1,%h.p2)
.timer.h.end 1 2 msg %h.chan Congratulations to $iif(%h.p1.score > %h.p2.score,12 $+,03 $+) $+ Team %h.win $+ , the 06winner of this 04Hockey Match!
unset %h.*
halt
}
unset %h.line %h.rink %h.t1 %h.t2 %h.t3
.timer.h.new 1 3 h.faceoff
}
alias h.rink {
var %h.prob $calc(($1 + 200) / 400 * 1000)
var %h.rand $rand(1,1000)
if (%h.rand <= %h.prob) {
var %h.new $rand(1,3)
while (%h.new == %h.num) { var %h.new $rand(1,3) }
return %h.new
}
else {
var %h.new $rand(4,5)
while (%h.new == %h.num) { var %h.new $rand(4,5) }
return %h.new
}
}
alias h.puck {
var %h.puck $floor($calc(($1 + 260) / 40))
var %h.pos $puttok(-|-|-|-|-|+|-|-|-|-|-,04o,%h.puck,124)
return 12[ $+ $remove(%h.pos,|) $+ 03] $iif(!$2,%h.clr.o $+ $iif(%h.file == h_player1.txt,$chr(187),$chr(171)),)
}
alias h.faceoff {
set %h.line.1 $iif($rand(1,1000) > 350,L1|C1|R1|D1|D2,L2|C2|R2|D3|D4)
set %h.line.2 $iif($rand(1,1000) > 350,L1|C1|R1|D1|D2,L2|C2|R2|D3|D4)
set %h.rink 0
var %p1.rand $rand(1,3)
var %p2.rand $rand(1,3)
var %p1.stat $read(" $+ $scriptdir $+ h_player1.txt $+ ",s,$gettok(%h.line.1,%p1.rand,124))
var %p2.stat $read(" $+ $scriptdir $+ h_player2.txt $+ ",s,$gettok(%h.line.2,%p2.rand,124))
var %p1.char $gettok(%p1.stat,1,124)
var %p2.char $gettok(%p2.stat,1,124)
var %p1.fo $gettok(%p1.stat,5,124)
var %p2.fo $gettok(%p2.stat,5,124)
var %p1.fop $round($calc(%p1.fo / (%p1.fo + %p2.fo) * 1000),0)
var %p2.fop $calc(1000 - %p1.fop)
msg %h.chan 06[PUCK] 04Faceoff $iif(%h.fight > 5,OT,%h.fight) $+ : 12 $+ %p1.char ( $+ $calc(%p1.fop / 10) $+ $chr(37) $+ ) 06vs. 03 $+ %p2.char ( $+ $calc(%p2.fop / 10) $+ $chr(37) $+ )
var %h.rand $rand(1,1000)
if (%h.rand <= %p1.fop) {
set %h.char %p1.char
set %h.num %p1.rand
set %h.line %h.line.1
set %h.line.d %h.line.2
set %h.file h_player1.txt
set %h.othr h_player2.txt
set %h.clr.o 12
set %h.clr.d 03
}
else {
set %h.char %p2.char
set %h.num %p2.rand
set %h.line %h.line.2
set %h.line.d %h.line.1
set %h.file h_player2.txt
set %h.othr h_player1.txt
set %h.clr.o 03
set %h.clr.d 12
}
var %h.len $rand(50,100)
set %h.rink $calc(%h.rink - %h.len)
h.rink %h.rink
set %h.stat $read(" $+ $scriptdir $+ %h.file $+ ",s,$gettok(%h.line,$result,124))
var %h.dest $gettok(%h.stat,1,124)
set %h.num $result
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink))
.timer.h.faceoff 1 2.5 msg %h.chan 06[PUCK] %h.clr.o $+ %h.char wins the 04faceoff and passes to %h.clr.o $+ %h.dest $+ . $result
set %h.t1 %h.dest | set %h.t2 %h.char
set %h.char %h.dest
.timer.h.change 1 5 h.trans
}
alias h.trans {
var %h.char.a $gettok(%h.stat,11,124)
var %h.shoot $round($calc((%h.rink - $iif(%h.char.a == Super Luck,-20,80)) / 100 * $gettok(%h.stat,2,124)),1)
if ($2 < -30) { var %h.shoot 1000 }
var %h.netm $read(" $+ $scriptdir $+ %h.othr $+ ",s,G)
var %h.netm.a $gettok(%h.netm,12,124)
var %h.poke $calc($gettok(%h.netm,7,124) * $iif(%h.netm.a == Frisk,1.5,1))
if (%h.char.a == Keen Eye) {
var %h.acc $calc(0.5 * $gettok(%h.stat,3,124) + 0.5 * $gettok(%h.stat,4,124))
var %h.acc $calc((%h.rink / 100) ^ 0.5 * %h.acc * 1.25)
if (%h.acc >= 750) { var %h.shoot 1000 }
else { var %h.shoot 0 }
echo $chan Keen Eye - Rink: %h.rink - Acc: %h.acc
}
if (%h.rink >= $iif(%h.netm.a == Frisk,170,180)) && ($rand(1,1000) <= %h.poke) {
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink))
var %h.goalie $gettok(%h.netm,1,124)
msg %h.chan 10[POKE] $iif(%h.netm.a == Frisk,04+Frisk+ $chr(32),) $+ %h.clr.d $+ %h.goalie 04poke checks the puck away from %h.clr.o $+ %h.char $+ ! $result ( $+ $round($calc(%h.poke / 10),1) $+ )
.timer.h.poke 1 2.5 h.rebound check $rand(140,180)
}
elseif (%h.shoot <= 0) || ($rand(1,1000) > %h.shoot) {
h.rink $calc(0 - %h.rink)
var %h.oppt $read(" $+ $scriptdir $+ %h.othr $+ ",s,$gettok(%h.line.d,$result,124))
var %h.dfnd $gettok(%h.oppt,1,124)
var %h.dnum $result
var %h.oppt.a $gettok(%h.oppt,11,124)
var %h.oppt.pass $gettok(%h.oppt,6,124)
var %h.char.pass $gettok(%h.stat,6,124)
var %h.steal $calc(100 * (%h.oppt.pass / %h.char.pass) / $iif(%h.char.a == Forewarn,3,$iif(%h.char.a == Technician,2,1)) * $iif(%h.oppt.a == Own Tempo,3,1))
var %h.speed $gettok(%h.stat,7,124)
var %h.oppt.check $gettok(%h.oppt,8,124)
var %h.char.check $gettok(%h.stat,8,124)
var %h.check $calc(100 * (%h.oppt.check / %h.char.check) / $iif(%h.char.a == Wonder Guard,3,$iif(%h.char.a == Speed Boost,2,1)) * $iif(%h.oppt.a == Reckless,3,1))
if (%h.steal > 0) && (%h.char.a == Forewarn) { var %h.abil1 %h.char.a }
if (%h.check > 0) && (%h.char.a == Wonder Guard) { var %h.abil1 %h.char.a }
if ($rand(1,1000) <= %h.steal) {
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink)) steal
msg %h.chan 06[PUCK] $iif(%h.oppt.a == Own Tempo,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.o $+ %h.char is 04intercepted by %h.clr.d $+ %h.dfnd $+ ! $result ( $+ $round($calc(%h.steal / 10),1) $+ )
set %h.rink $calc(0 - %h.rink)
set %h.char %h.dfnd
set %h.stat %h.oppt
set %h.num %h.dnum
var %h.file.temp %h.file
set %h.file %h.othr
set %h.othr %h.file.temp
var %h.clr.temp %h.clr.o
set %h.clr.o %h.clr.d
set %h.clr.d %h.clr.temp
var %h.line.temp %h.line
set %h.line %h.line.d
set %h.line.d %h.line.temp
unset %h.t2 %h.t3 | set %h.t1 %h.char
.timer.h.pass 1 2.5 h.trans steal
}
elseif ($rand(1,1000) <= %h.check) {
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink)) check
var %h.type $rand(1,999)
if (%h.check >= 120) && (%h.type <= 25) { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04smashes $iif(%hockey.mode == anime,her,his) elbow into %h.clr.o $+ %h.char $+ s head! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
elseif (%h.check >= 120) && (%h.type <= 50) { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04chops carelessly, 04tripping %h.clr.o $+ %h.char onto the ice! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
elseif (%h.check >= 120) && (%h.type <= 75) { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04cross checks %h.clr.o $+ %h.char from behind! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
elseif (%h.check >= 120) && (%h.type <= 100) { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04swings upward into %h.clr.o $+ %h.char $+ 's face! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
elseif (%h.check >= 120) && (%h.type <= 125) { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04slashes down at %h.clr.o $+ %h.char $+ 's hand! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
elseif (%h.type <= 333) { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04poke checks the puck away from %h.clr.o $+ %h.char $+ ! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
elseif (%h.type <= 666) { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04slams $iif(%hockey.mode == anime,her,his) shoulder into %h.clr.o $+ %h.char $+ ! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
else { msg %h.chan 06[PUCK] $iif(%h.oppt.a == Reckless,04+ $+ %h.oppt.a $+ + $chr(32),) $+ %h.clr.d $+ %h.dfnd 04pushes %h.clr.o $+ %h.char violently into the boards! $result ( $+ $round($calc(%h.check / 10),1) $+ ) }
.timer.h.check 1 2.5 h.rebound check %h.rink
}
elseif ($rand(1,100) <= $calc(%h.speed / 3)) && (%h.rink < 140) {
if (%h.rink <= 0) { var %h.mult $sqrt($calc((%h.rink / 2 - 100) / -100)) }
else { var %h.mult 1 }
var %h.len $round($calc($rand($calc(%h.speed / 1.25),%h.speed) * %h.mult * $iif(%h.char.a == Speed Boost,1.25,1)),0)
set %h.rink $calc(%h.rink + %h.len)
if (%h.rink <= -200) { set %h.rink $calc(0 - $rand(180,195)) }
elseif (%h.rink >= 200) { set %h.rink $rand(180,195) }
if (%h.char.a == Speed Boost) { var %h.abil1 %h.char.a }
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink))
msg %h.chan 06[PUCK] $iif(%h.abil1,04+ $+ %h.abil1 $+ + $chr(32),) $+ %h.clr.o $+ %h.char skates 06forward with the puck. $result
.timer.h.skate 1 2.5 h.trans skate
}
else {
if (%h.rink < -20) { var %h.len $round($calc($rand(75,95) * $sqrt($calc((%h.rink / 2 - 100) / -100)))) }
elseif (%h.rink < 80) { var %h.len $iif($rand(1,100) > 15,$rand(75,95),$calc(0 - $rand(10,30))) }
elseif (%h.rink < 160) { var %h.len $rand(60,95) }
else { var %h.len $calc(0 - $rand(31,50)) }
if (%h.char.a == Technician) || (%h.len > 0) { var %h.len $calc(%h.len * 1.25) }
set %h.rink $calc(%h.rink + %h.len)
if (%h.rink <= -200) { set %h.rink $calc(0 - $rand(180,195)) }
elseif (%h.rink >= 200) { set %h.rink $rand(180,195) }
if (%h.char.a == Keen Eye) {
if (%h.rink > 0) {
var %h.rand $rand(1,3)
while (%h.rand == %h.num) { var %h.rand $rand(1,3) }
}
else {
if (%h.num isnum 4) { var %h.rand 5 }
elseif (%h.num isnum 5) { var %h.rand 4 }
else { var %h.rand $rand(4,5) }
}
set %h.stat $read(" $+ $scriptdir $+ %h.file $+ ",s,$gettok(%h.line,%h.rand,124))
set %h.num %h.rand
}
else {
h.rink %h.rink
set %h.stat $read(" $+ $scriptdir $+ %h.file $+ ",s,$gettok(%h.line,$result,124))
set %h.num $result
}
var %h.dest $gettok(%h.stat,1,124)
if (%h.char.a == Technician && %h.len > 0) || (%h.char.a == Keen Eye) { var %h.abil1 %h.char.a }
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink))
msg %h.chan 06[PUCK] $iif(%h.abil1,04+ $+ %h.abil1 $+ + $chr(32),) $+ %h.clr.o $+ %h.char passes $iif(%h.len >= 0,06forward,10backward) to %h.clr.o $+ %h.dest $+ . $result
set %h.char %h.dest
if (%h.t2 != %h.char) { set %h.t3 %h.t2 } | set %h.t2 %h.t1 | set %h.t1 %h.char
.timer.h.pass 1 2.5 h.trans %h.len
}
}
else {
var %h.char.a $gettok(%h.stat,11,124)
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink))
var %h.loc $iif($rand(1,100) > 50,high,low)
var %h.shot $iif($rand(1,100) > 80 || $1 == skate || %h.rink >= 180,wrist,slap)
if (%h.char.a == Sniper) || (%h.char.a == Zen Mode) || (%h.char.a == Super Luck) || (%h.char.a == Keen Eye) { var %h.abil1 %h.char.a }
if (%h.rink >= 180) && ($1 isnum) {
msg %h.chan 13[LUCK] $iif(%h.abil1,04+ $+ %h.abil1 $+ + $chr(32),) $+ %h.clr.o $+ %h.char 04<deflects> the puck towards the net! $result
var %h.shot deflect
}
else {
if (%h.char.a == Pure Power) && (%h.shot == slap) { var %h.abil1 %h.char.a }
msg %h.chan 13[LUCK] $iif(%h.abil1,04+ $+ %h.abil1 $+ + $chr(32),) $+ %h.clr.o $+ %h.char 04<shoots> the puck %h.loc with a %h.shot $+ shot! $result
}
.timer.h.shoot 1 $iif(%h.shot == deflect,1.5,2.5) h.shoot %h.loc %h.shot
}
}
alias h.shoot {
var %h.char.a $gettok(%h.stat,11,124)
h.rink $calc(0 - %h.rink) shoot
var %h.oppt $read(" $+ $scriptdir $+ %h.othr $+ ",s,$gettok(%h.line.d,$result,124))
var %h.oppt.a $gettok(%h.oppt,11,124)
var %h.dfnd $gettok(%h.oppt,1,124)
var %h.tough $gettok(%h.oppt,9,124)
var %h.shot $iif($2 == wrist,$gettok(%h.stat,3,124),$gettok(%h.stat,4,124))
var %h.block $calc((20 * %h.tough - %h.shot) / 6.5 * $iif(%h.oppt.a == Sturdy,2,1))
if (%h.char.a == Zen Mode) { set %h.block 0 }
if ($rand(1,1000) <= %h.block) {
msg %h.chan 06[PUCK] $iif(%h.oppt.a == Sturdy,04+Sturdy+ $chr(32),) $+ %h.clr.d $+ %h.dfnd 04blocks the shot! ( $+ $round($calc(%h.block / 10),1) $+ )
.timer.h.reb 1 1.5 h.rebound shoot $round($calc((%h.rink + 200) / 2),0)
}
else {
var %h.acc $gettok(%h.stat,$iif($2 == wrist,3,4),124)
if (%h.char.a == Sniper) || ((%h.char.a == Keen Eye) && (%h.rink isnum 160-200)) { var %h.mult 1.25 }
var %h.acc $calc((%h.rink / 100) ^ 0.5 * %h.acc * $iif(%h.mult,1.25,$iif(%h.char.a == Pure Power && $2 == slap,1.5,1)))
if (%h.char.a == Super Luck) { var %h.acc 1000 }
if ($1 == low) {
var %h.p1.save $calc($gettok(%h.p1.net,2,124) / 5 + $gettok(%h.p1.net,4,124) / 5 * (%h.p1.stam / 100) ^ $log(%h.fight))
var %h.p2.save $calc($gettok(%h.p2.net,2,124) / 5 + $gettok(%h.p2.net,4,124) / 5 * (%h.p2.stam / 100) ^ $log(%h.fight))
}
else {
var %h.p1.save $calc($gettok(%h.p1.net,3,124) / 5 + $gettok(%h.p1.net,5,124) / 5 * (%h.p1.stam / 100) ^ $log(%h.fight))
var %h.p2.save $calc($gettok(%h.p2.net,3,124) / 5 + $gettok(%h.p2.net,5,124) / 5 * (%h.p2.stam / 100) ^ $log(%h.fight))
}
if ($rand(1,1000) > %h.acc) {
msg %h.chan 06[PUCK] The 06shot goes 10 $+ $iif($1 == low,wide,over the net) $+ ! $round($calc(%h.acc / 10),1)
.timer.h.reb 1 1.5 h.rebound shoot $rand(185,199)
}
elseif (%h.file == h_player1.txt) {
var %h.rebound $gettok(%h.p2.net,8,124)
var %h.glove $gettok(%h.p2.net,9,124)
if ($2 == wrist) && (%h.p2.netm.a == Inner Focus) {
var %h.focus $true
var %h.p2.save $calc(%h.p2.save * 1.5)
}
else { unset %h.focus }
if ($rand(1,1000) <= %h.p2.save) {
var %h.save $rand(1,1000)
if (%h.save <= %h.rebound) || (%h.fight > 5) {
if (%hockey.mode == anime) { msg %h.chan 10[SAVE] $iif(%h.focus || %h.p2.netm.a == Magic Bounce,04+ $+ %h.p2.netm.a $+ + $chr(32),) $+ %h.clr.d $+ %h.p2.goalie effortlessly 10swats the puck aside. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
else { msg %h.chan 10[SAVE] $iif(%h.focus || %h.p2.netm.a == Magic Bounce,04+ $+ %h.p2.netm.a $+ + $chr(32),) $+ %h.clr.d $+ %h.p2.goalie makes a difficult 10blocker save. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
.timer.h.reb 1 1.5 h.rebound blocker $rand(120,180) $iif(%h.p2.netm.a == Magic Bounce,bounce,)
}
elseif (%h.save <= %h.glove) {
if (%hockey.mode == anime) { msg %h.chan 10[SAVE] $iif(%h.focus,04+Inner Focus+ $chr(32),) $+ %h.clr.d $+ %h.p2.goalie deftly 10snatches the puck out of mid-air. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
else { msg %h.chan 10[SAVE] $iif(%h.focus,04+Inner Focus+ $chr(32),) $+ %h.clr.d $+ %h.p2.goalie easily 10catches the puck in his glove. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
inc %h.fight
.timer.h.next 1 2 h.game
}
else {
msg %h.chan 10[SAVE] $iif(%h.focus,04+Inner Focus+ $chr(32),) $+ %h.clr.d $+ %h.p2.goalie 10deflects the puck into the netting. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ )
inc %h.fight
.timer.h.next 1 2 h.game
}
}
else {
msg %h.chan 04[GOAL] %h.clr.o $+ %h.char 04<scores>! ( $+ $round($calc((1000 - %h.p2.save) / 10000 * $iif(%h.acc > 1000,1000,%h.acc)),1) $+ ) 05[06 $iif(!%h.t2 && !%h.t3,Unassisted,$iif(%h.t3,Assists:,Assist:) %h.clr.o $+ %h.t2 $+ $iif(%h.t3,06 $+ $chr(44) %h.clr.o $+ %h.t3)) 05]
inc %h.p1.score
inc %h.fight
.timer.h.next 1 2 h.game
}
}
elseif (%h.file == h_player2.txt) {
var %h.rebound $gettok(%h.p1.net,8,124)
var %h.glove $gettok(%h.p1.net,9,124)
if ($2 == wrist) && (%h.p1.netm.a == Inner Focus) {
var %h.focus $true
var %h.p1.save $calc(%h.p1.save * 1.33)
}
else { unset %h.focus }
if ($rand(1,1000) <= %h.p1.save) {
var %h.save $rand(1,1000)
if (%h.save <= %h.rebound) || (%h.fight > 5) {
if (%hockey.mode == anime) { msg %h.chan 10[SAVE] $iif(%h.focus || %h.p1.netm.a == Magic Bounce,04+ $+ %h.p1.netm.a $+ + $chr(32),) $+ %h.clr.d $+ %h.p1.goalie effortlessly 10swats the puck aside. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
else { msg %h.chan 10[SAVE] $iif(%h.focus || %h.p1.netm.a == Magic Bounce,04+ $+ %h.p1.netm.a $+ + $chr(32),) $+ %h.clr.d $+ %h.p1.goalie makes a difficult 10blocker save. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
.timer.h.reb 1 1.5 h.rebound blocker $rand(120,180) $iif(%h.p1.netm.a == Magic Bounce,bounce,)
}
elseif (%h.save <= %h.glove) {
if (%hockey.mode == anime) { msg %h.chan 10[SAVE] $iif(%h.focus,04+Inner Focus+ $chr(32),) $+ %h.clr.d $+ %h.p1.goalie deftly 10snatches the puck out of mid-air. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
else { msg %h.chan 10[SAVE] $iif(%h.focus,04+Inner Focus+ $chr(32),) $+ %h.clr.d $+ %h.p1.goalie easily 10catches the puck in $iif(%hockey.mode == anime,her,his) glove. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ ) }
inc %h.fight
.timer.h.next 1 2 h.game
}
else {
msg %h.chan 10[SAVE] $iif(%h.focus,04+Inner Focus+ $chr(32),) $+ %h.clr.d $+ %h.p1.goalie 10deflects the puck into the netting. ( $+ $round($calc((1000 - %h.p2.save) / 10000 * %h.acc),1) $+ )
inc %h.fight
.timer.h.next 1 2 h.game
}
}
else {
msg %h.chan 04[GOAL] %h.clr.o $+ %h.char 04<scores>! ( $+ $round($calc((1000 - %h.p1.save) / 10000 * $iif(%h.acc > 1000,1000,%h.acc)),1) $+ ) 05[06 $iif(!%h.t2 && !%h.t3,Unassisted,$iif(%h.t3,Assists:,Assist:) %h.clr.o $+ %h.t2 $+ $iif(%h.t3,06 $+ $chr(44) %h.clr.o $+ %h.t3)) 05]
inc %h.p2.score
inc %h.fight
.timer.h.next 1 2 h.game
}
}
}
}
alias h.rebound {
unset %h.num
var %h.rbnd 333
h.rink $2
var %h.stat.t $read(" $+ $scriptdir $+ %h.file $+ ",s,$gettok(%h.line,$result,124))
var %h.char.a $gettok(%h.stat.t,11,124)
var %h.num.1 $result
if (%h.char.a == Magnet Pull) { var %h.rbnd $calc(%h.rbnd + 444) }
h.rink $calc(0 - $2)
var %h.oppt.t $read(" $+ $scriptdir $+ %h.othr $+ ",s,$gettok(%h.line.d,$result,124))
var %h.oppt.a $gettok(%h.oppt.t,11,124)
var %h.num.2 $result
if (%h.oppt.a == Magnet Pull) { var %h.rbnd $calc(%h.rbnd - 111) }
var %h.side $rand(1,1000)
if ($1 == blocker) && (%h.side <= 250) && (%h.fight <= 5) {
msg %h.chan 06[PUCK] %h.clr.d $+ $iif(%h.file == h_player1.txt,%h.p2.goalie,%h.p1.goalie) quickly 10freezes the puck. ( $+ $round($calc(%h.side / 10),1) $+ )
inc %h.fight
.timer.h.next 1 2 h.game
halt
}
elseif (%h.side <= $iif($3 == bounce,250,%h.rbnd)) {
set %h.rink $2
set %h.stat %h.stat.t
if (%h.char.a == Magnet Pull) && ($3 != bounce) { var %h.magnet Magnet Pull }
set %h.char $gettok(%h.stat,1,124)
set %h.num %h.num.1
if (%h.t1 != %h.char) { if (%h.t2 != %h.char) { set %h.t3 %h.t2 } | set %h.t2 %h.t1 | set %h.t1 %h.char }
}
else {
set %h.rink $calc(0 - $2)
set %h.stat %h.oppt.t
if (%h.oppt.a == Magnet Pull) { var %h.magnet Magnet Pull }
set %h.char $gettok(%h.stat,1,124)
set %h.num %h.num.2
var %h.file.temp %h.file
set %h.file %h.othr
set %h.othr %h.file.temp
var %h.clr.temp %h.clr.o
set %h.clr.o %h.clr.d
set %h.clr.d %h.clr.temp
var %h.line.temp %h.line
set %h.line %h.line.d
set %h.line.d %h.line.temp
unset %h.t2 %h.t3 | set %h.t1 %h.char
}
h.puck $iif(%h.file == h_player1.txt,%h.rink,$calc(0 - %h.rink))
if ($1 == shoot) || ($1 == blocker) { msg %h.chan 06[PUCK] $iif(%h.magnet,04+Magnet Pull+ $chr(32),) $+ %h.clr.o $+ %h.char grabs the 06rebound. $result }
elseif ($1 == check) { msg %h.chan 06[PUCK] $iif(%h.magnet,04+Magnet Pull+ $chr(32),) $+ %h.clr.o $+ %h.char 06comes away with the puck. $result }
.timer.h.pass 1 2.5 h.trans
}
on *:INPUT:#: {
if ($1 == h.accept) && (%h.challenge == 1) && (%h.p2 == $nick) { msg $chan $1- | h.accept challenge %h.p1 %h.p2 | haltdef }
elseif ($1 == h.challenge) && ($2) { msg $chan $1- | h.challenge challenge $nick $2 | haltdef }
elseif ($1 == h.check) && ($2) { msg $chan $1- | h.check $2- | haltdef }
elseif ($1 == h.clear) { msg $chan $1- | h.clear | haltdef }
elseif ($1 == h.replace) && ($2 isnum 1-11) && ($3) { msg $chan $1- | h.replace $1- | haltdef }
elseif ($1 == h.roll) { msg $chan $1- | h.roll $1- | haltdef }
elseif ($1 == h.select) { msg $chan $1- | h.select $1- | haltdef }
elseif ($1 == h.simulate) && ($chr(47) isin $2-) { msg $chan $1- | h.simulate $1- | haltdef }
elseif ($1 == h.stats) { msg $chan $1- | h.stats $1- | haltdef }
elseif ($1 == h.team) { msg $chan $1- | h.team $1- | haltdef }
elseif ($1 == h.toggle) { msg $chan $1- | h.toggle $2- | haltdef }
}
on *:TEXT:*:*: {
if ($1 == h.accept) && (%h.challenge == 1) && (%h.p2 == $nick) { h.accept challenge %h.p1 %h.p2 }
elseif ($1 == h.challenge) && ($2) { h.challenge challenge $nick $2 }
elseif ($1 == h.check) && ($2) { h.check $2- }
elseif ($1 == h.replace) && ($2 isnum 1-11) && ($3) { h.replace $1- }
elseif ($1 == h.roll) && (!%h.chan) { h.roll }
elseif ($1 == h.select) { h.select $1- }
elseif ($1 == h.stats) { h.stats $1- }
elseif ($1 == h.team) { h.team $1- }
}