Skip to content

Instantly share code, notes, and snippets.

@Roper70
Created April 16, 2013 01:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Roper70/22da93c2564437ee2956 to your computer and use it in GitHub Desktop.
Save Roper70/22da93c2564437ee2956 to your computer and use it in GitHub Desktop.
Graze Game
alias checkeday {
if ($asctime(HH) != 03) { timerceday -o 03:00 0 1 checkeday | halt }
unset %bsm.*
if (!$readini(WeeksG.ini,Week,$eday) || %ceday == $eday) { timerceday -o 03:00 0 1 checkeday | halt }
else if ($readini(WeeksG.ini,Week,$eday) && %ceday != $eday) {
msg #VMA-214 The results are in for the week of %ceday $+ - $+ $calc(%ceday +6) $+ ! The winning herd is...
tokenize 46 $sorttok($regsubex($str(-,$ini(Graze.ini,Oats,0)),/./g,$readini(Graze.ini,Oats,$ini(Graze.ini,Oats,\n)) $ini(Graze.ini,Oats,\n) $+ .),46,nr)
var %wt $gettok($1,2,32)
msg #VMA-214 %wt $+ !
msg #ApeCage %wt won last week's grazing!
topic #ApeCage $regsubex($chan(#ApeCage).topic,\d\d\d\d.\d\d\d\d ... won,%ceday $+ - $+ $calc(%ceday +6) %wt won)
topic #VMA-214 $regsubex($chan(#VMA-214).topic,\d\d\d\d.\d\d\d\d ... won,%ceday $+ - $+ $calc(%ceday +6) %wt won)
writeini -n Graze.ini Winner 1 %wt
timer 1 4 rename Graze.ini " $+ $mircdir $+ Graze\ $+ %ceday $+ to $+ $calc(%ceday +6) $+ .ini $+ "
.timer 1 5 unset %graze.*
set %ceday $eday
}
}
/*
alias team0 return $replace($regsubex($iif($read(roster_db.txt,r,m/^\d+ $+ $chr(44) $+ ([a-z0-9]+)? $+ $chr(44) $+ \d+ $+ $chr(44) $+ "? $+ $replace($1-,|,\|) $+ .+?"? $+ $chr(44) $+"?.+?"?/i),$v1,$read(roster_db.txt,r,m/^\d+ $+ $chr(44) $+ ([a-z0-9]+)? $+ $chr(44) $+ \d+ $+ $chr(44) $+ "?.+?"? $+ $chr(44) $+"? $+ $replace($1-,|,\|) $+ .+?"?/i)),m/.*(\d[A-Z][A-Z][A-Z]?).*/,\1),1,,0,,PH,6Purple Herd,GH,3Green Herd,YH,8Yellow Herd,BH,12Blue Herd,RH,4Red Herd,HG,14H04o14n04o14r 04G14u04a14r04d,WH,White Herd)
alias team return $regsubex($iif($read(roster_db.txt,r,m/^\d+ $+ $chr(44) $+ ([a-z0-9]+)? $+ $chr(44) $+ \d+ $+ $chr(44) $+ "? $+ $replace($1-,|,\|) $+ .+?"? $+ $chr(44) $+"?.+?"?/i),$v1,$read(roster_db.txt,r,m/^\d+ $+ $chr(44) $+ ([a-z0-9]+)? $+ $chr(44) $+ \d+ $+ $chr(44) $+ "?.+?"? $+ $chr(44) $+"? $+ $replace($1-,|,\|) $+ .+?"?/i)),m/.*(\d[A-Z][A-Z][A-Z]?).*/,\1)
*/
alias team {
return $readini(Team.ini,Sheep,$1)
}
alias team0 {
return $replace($iif($regex($1,/^(1GH|1YH|1BH|1RH|1PH|0HG)$/i),$1,$team($1)),1,,0,,PH,6Purple Herd,GH,3Green Herd,YH,8Yellow Herd,BH,12Blue Herd,RH,4Red Herd,HG,14H04o14n04o14r 04G14u04a14r04d,WH,White Herd)
}
ON $*:TEXT:m/^[~!@`.]assign/i:#ApeCage:{
if ($regex($3,/^(1GH|1YH|1BH|1RH|1PH|0HG)$/i)) {
writeini -n Team.ini Sheep $2 $3
msg $chan $c1($nick,$2) $c2($nick,has been assigned to) $team0($2)
}
else { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Please use one of these:) 061PH 031GH 081YH 121BH 041RH 14004H14G | halt }
}
ON *:SOCKOPEN:rosterdb:{
var %a = sockwrite -n $sockname
var %b data= $+ S%B3D%85c%E0l%85%D5%D2%01 $+ $chr(9) $+ $iif(%dv,roster_db $+ $urlencode(%dv),roster_db)
%a POST /db_api_server.php HTTP/1.0
%a Host: eblacksheep.tk
%a Content-Type: application/x-www-form-urlencoded
%a Connection: close
%a Accept: */*
%a User-Agent: Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
sockwrite $sockname Content-Length: $len(%b) $crlf $+ $crlf
sockwrite $sockname %b
}
ON *:SOCKREAD:rosterdb:{
var %tmpro
:roster
sockread %tmpro
if ($sockerr) { e 11 -a ERROR! $sockerr | return }
if ($regex(%tmpro,m/HTTP\/1\.\d 200 OK|Date|Server|X-Powered-By|Connection|Content-Type/)) { goto roster }
else if ($left(%tmpro,1) == $chr(1)) { set -u5 %reqro 1 | set %dv $regsubex(%tmpro,m/(................)/g,\1) | write -c roster_db.txt | goto roster }
else if ($left(%tmpro,1) == $chr(0)) { set -u5 %reqro 0 | return $regsubex(%tmpro,m/(.)/g,$+ $asc(\1) $+ ) }
else if (($left(%tmpro,1) isnum) && ($len(%tmpro) > 10)) { write roster_db.txt %tmpro | goto roster }
}
alias rosterdb sockopen rosterdb eblacksheep.tk 80
ON *:SOCKCLOSE:rosterdb:{
msg #ApeCage $iif(%reqro == 1,Roster synchronization complete.,Roster on file is already synced with online roster. No action necessary.)
}
ON $*:TEXT:m/^[~!@.`]team/i:#VMA-214,#ApeCage,#QM:{
if ($len($2) < 3) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Please specify more than 2 characters!) | halt }
var %tm $2
if ($regex($2,/^(1GH|1YH|1BH|1RH|1PH|0HG)$/i)) { msg $chan $c2($nick,.::) $+ $c1($nick,TEAM) $+ $c2($nick,::. Members of) $team0($regml(1)) $+ $c2($nick,:) $regsubex($str(-,$lines(roster_db.txt)),/./g,$iif(%tm isin $read(roster_db.txt,\n),$noqt($gettok($read(roster_db.txt,\n),$iif($len($gettok($read(roster_db.txt,\n),2,44)) > 16,4,3),44)) $+ $chr(44) $+ $chr(32),)) }
else { msg $chan $c2($nick,.::) $+ $c1($nick,TEAM) $+ $c2($nick,::.) $c1($nick,$iif($2,$2-,$nick)) (closest match: $regsubex($str(-,$lines(roster_db.txt)),/./g,$iif(* $+ %tm $+ * iswm $gettok($read(roster_db.txt,\n),3,44) || * $+ %tm $+ * iswm $gettok($read(roster_db.txt,\n),4,44) || * $+ %tm $+ * iswm $gettok($read(roster_db.txt,\n),5,44),$noqt($gettok($read(roster_db.txt,\n),$iif($len($gettok($read(roster_db.txt,\n),2,44)) > 16,4,3),44)),)) $+ ) $c2($nick,is in:) $c1($nick,$team0($iif($2,$2-,$nick))) $+ $c2($nick,.) }
;$gettok($read(roster_db.txt,r,m/^\d+ $+ $chr(44) $+ ([a-z0-9]+)? $+ $chr(44) $+ \d+ $+ $chr(44) $+ "? $+ $iif($2,$2-,$nick) $+ .+?"? $+ $chr(44) $+ "? $+ $iif($2,$2-,$nick) $+ .+?"?/i),4,44)
}
ON $2:TEXT:m/^[~!@.`]rosterupdate$/i:#ApeCage: msg $chan $c2($nick,.::) $+ $c1($nick,ROSTER UPDATE) $+ $c2($nick,::. Checking roster on file vs. online roster...) | rosterdb
ON $*:TEXT:m/^[~!@`.]meat/i:#VMA-214,#ApeCage: {
var %meat1 $iif($2-,$2-,$nick), %meat0 $read(roster_db.txt,r,/ $+ %meat1 $+ .+? $+ $chr(44) $+ \d $+ $chr(44) $+ /i)
if ($gettok($read(roster_db.txt,r,/ $+ %meat1 $+ .+? $+ $chr(44) $+ \d $+ $chr(44) $+ /i),2,44) >= 32) { var %meat0 $puttok($read(roster_db.txt,r,/ $+ %meat1 $+ .+? $+ $chr(44) $+ \d $+ $chr(44) $+ /i),$chr(44),2,44) }
msg $chan $c2($nick,.::) $+ $c1($nick,INFO) $+ $c2($nick,::.) eRep Name: $noqt($gettok(%meat0,3,44)) || IRC Nick: $gettok(%meat0,4,44) || Citizen ID: $gettok(%meat0,2,44) || Herd: $gettok(%meat0,8,44) || Supply option: $replace($gettok(%meat0,9,44),1,No supplies,2,120 pieces of Q5 grass - 0 Q7 Tractors,3,90 pieces of Q5 grass - 9 Q7 Tractors,4,0 pieces of Q5 grass - 12 Q7 Tractors) || Commune: $noqt($gettok(%meat0,10,44))
}
alias farmer {
if (!%farmer) { return 0 | halt }
else {
if (%farmer. [ $+ [ $1 ] ]) { return 0 | halt }
else if (!%farmer. [ $+ [ $1 ] ]) { return 1 }
}
}
alias farmeralert {
var %call $nick(#VMA-214,0)
while (%call > 0) {
var %calln %calln $nick(#VMA-214,%call)
dec %call
}
msg #VMA-214 $sorttok(%calln,32)
}
alias farmerz {
var %r $r(3600,10800), %memz $regsubex($str(-,$lines(roster_db.txt)),/./g,$iif(0HG isin $read(roster_db.txt,\n),$noqt($gettok($read(roster_db.txt,\n),$iif($len($gettok($read(roster_db.txt,\n),2,44)) > 16,5,4),44)) $+ $chr(32),)), %memn $numtok(%memz,32)
timerfarmerz -o 1 %r set -u900 %farmer 1
timerfarmerzz -o 1 %r msg #VMA-214 4.::10PANIC4::.9 $gettok(%memz,$r(1,%memn),32) $+ $chr(44) the 4crazy farmer $+ $chr(44) is out!!! Look $+ $chr(44) $iif($r(1,2) == 1,12he's,13she's) dropping oats everywhere!! Everyone graze!
timerfarmer2 -o 1 %r farmeralert
timerfarmer 1 $calc(%r + 900) msg #VMA-214 4.::8WHEW4::. The crazy farmer left.
}
ON $*:TEXT:m/^[~!@`.]graze$/Si:#VMA-214,#ApeCage:{
if (!$timer(ceday)) { timerceday -o 03:00 1 1 checkeday }
if (!$timer(farmerz)) { farmerz }
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
if ($farmer($nick)) { goto farmer }
if ($ctime < $readini(Graze.ini,GTime,$nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. You still have to wait) $duration($calc($readini(Graze.ini,GTime,$nick) - $ctime)) $c2($nick,to graze again.) | halt }
:farmer
var %team $team($nick), %oats $gold($nick,$bronze($nick,$r(1,3))), %oat0 $readini(Graze.ini,Oats,%team), %money $readini(Graze.ini,Money,%team), %xp $readini(Graze.ini,XP,$nick)
msg $chan $c2($nick,.::) $+ $c1($nick,GRAZE) $+ $c2($nick,::.) $c1($nick,$nick) $c2($nick,has grazed) $c1($nick,%oats) $c2($nick,oat $+ $iif(%oats = 1,$chr(44) which has,s $+ $chr(44) which have) been added to) $team0($nick) $+ $c2($nick,'s barn. You also added) $c1($nick,+ $+ $chr(36) $+ $gm($nick,3)) $c2($nick,to the team funds and gained $gxp($nick,1) XP.)
writeini -n Graze.ini XP $nick $calc(%xp + $gxp($nick,1))
writeini -n Graze.ini Oats %team $calc(%oat0 + %oats)
writeini -n Graze.ini Money %team $calc(%money + $gm($nick,3))
var %xpz $readini(Graze.ini,XP,$nick)
if (%xpz = 4) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick, $chr(44) you have leveled up to level) $c1($nick,2) $+ $c2($nick,. Here's a new trough that will help you gather more oats and double XP! Next level $+ $chr(44) you'll get an item to earn more money.) | writeini -n Graze.ini Items $nick trough2 $remove($readini(Graze.ini,Items,$nick),trough2) }
else if (%xpz = 10) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,3) $+ $c2($nick,. You unlocked the ability to steal. Let the thievery begin.) | writeini -n Graze.ini Items $nick Thief $remove($readini(Graze.ini,Items,$nick),thief) }
else if (%xpz = 20) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,4) $+ $c2($nick,. Have some fertilizer that'll give you more oats and double money! Next level $+ $chr(44) receive an item to decrease your digestion time.) | writeini -n Graze.ini Items $nick fertilizer2 $remove($readini(Graze.ini,Items,$nick),fertilizer2) }
else if (%xpz = 32) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,5) $+ $c2($nick,. The barn masters have bought you a bigger restroom so you can eat more often now!) | writeini -n Graze.ini Items $nick time2 $remove($readini(Graze.ini,Items,$nick),time2) }
else if (%xpz = 46) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,6) $+ $c2($nick,. You have unlocked) $c1($nick,Black Sheep) $c2($nick,mode!) $c2($nick,Use ") $+ $c1($nick,.help graze Black Sheep mode) $+ $c2($nick,") | writeini -n Graze.ini Items $nick BSM $remove($readini(Graze.ini,Items,$nick),BSM) }
if ($farmer($nick)) { set -u900 %farmer. [ $+ [ $nick ] ] 1 | halt }
else if (!$farmer($nick) && %bsm. [ $+ [ $nick ] ] == 1) { writeini -n Graze.ini GTime $nick $calc($ctime +900) }
else if ((!$farmer($nick)) || (%bsm. [ $+ [ $nick ] ] !== 1)) { writeini -n Graze.ini GTime $nick $calc($ctime + $gtime($nick)) }
}
alias gtime {
var %time2 $iif(Restroom isin $readini(Graze.ini,Items,$1),-3600,0), %time3 $iif($readini(Graze.ini,Silver,$team($1)),-3600,0), %time4 $iif($readini(Graze.ini,Platinum,$team($1)),-7200,0)
return $calc(21600+ %time2 + %time3 + %time4)
}
alias bronze return $iif($readini(Graze.ini,Bronze,$team($1)),$calc($2 *2),$2)
alias gold return $iif($readini(Graze.ini,Gold,$team($1)),$calc($2 *3),$2)
alias gxp {
if (trough isin $readini(Graze.ini,Items,$1)) {
;return $calc($2 * $right($wildtok($readini(Graze.ini,Items,$1),trough*,1,32),-6))
return $calc($2 *2)
}
else return $2
}
alias gm {
if (fertilizer isin $readini(Graze.ini,Items,$1)) {
;return $calc($2 * $right($wildtok($readini(Graze.ini,Items,$1),fertilizer*,1,32),-10))
return $calc($2 *2)
}
else return $2
}
ON $*:TEXT:m/^[~!@`.]transform$/Si:#VMA-214,#ApeCage:{
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
if (BSM !isin $readini(Graze.ini,Items,$nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) you haven't unlocked Black Sheep mode!) | halt }
if (%bsm. [ $+ [ $nick ] ]) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) you already activated) $c1($nick,Black Sheep) $c2($nick,mode today.) | halt }
msg $chan $c2($nick,.::) $+ $c1($nick,BSM) $+ $c2($nick,::.) $c1($nick,Black Sheep) $c2($nick,mode activated!) $c1($nick,.graze) $c2($nick,now.) *admin msg: powergrazing, if available, will make Black Sheep turn into normal sheep, so don't do it for an hour.
set -u3900 %bsm. [ $+ [ $nick ] ] 1
timerbsm $+ $nick 1 3900 set %bsm. [ $+ [ $nick ] ] 2
writeini -n Graze.ini GTime $nick $ctime
}
ON $*:TEXT:m/^[~!@`.]steal/i:#VMA-214,#ApeCage:{
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
if ($readini(Graze.ini,XP,$nick) < 10) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. You need to be level 3 to steal.) | halt }
if ($readini(Graze.ini,Thief,$team($nick))) {
if ($readini(Graze.ini,TTime,$nick) > $ctime) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. You are so bad; please wait $dur($calc($readini(Graze.ini,TTime,$nick) - $ctime)) to try to steal again.) | halt }
var %memz $regsubex($str(-,$lines(Team.ini)),/./g,$iif(%0HG == $readini(Team.ini,Sheep,$ini(Team.ini,Sheep,\n)),$ini(Team.ini,Sheep,\n) $+ $chr(32),)), %memn $numtok(%memz,32), %gtimeb $readini(Graze.ini,GTime,$nick)
if ($readini(Graze.ini,Oats,0HG) < 50) { $c2($nick,.::) $+ $c1($nick,SELFISH) $+ $c2($nick,::. HEY) $c1($nick,$nick) $+ $c2($nick,$chr(44) $team0(0HG) DOESN'T EVEN HAVE 50 OATS YET. HOLD ON. GOSH.) | halt }
else if ($readini(Graze.ini,Oats,0HG) >= 50) {
if ($r(1,3) == 3) {
var %gtimea $r(3600,5400)
describe $chan watches as $nick goes to steal from $team0(0HG) $+ ...
.timer 1 3 msg $chan $c2($nick,.::) $+ $c1($nick,THIEF) $+ $c2($nick,::. Woah $+ $chr(44) little sheep! Looks like $team0(0HG) caught you and) $c1($nick,$gettok(%memz,$r(1,%memn),32)) $c2($nick,is not happy.)
.timer 1 4 describe $chan puts $nick in jail for $duration(%gtimea) $+ .
writeini -n Graze.ini GTime $nick $calc(%gtimeb + %gtimea)
halt
}
else {
var %steala $calc($r(1,10) + $readini(Graze.ini,Thief,$team($nick))), %oats $readini(Graze.ini,Oats,$team($nick)), %stealb $ceil($calc($readini(Graze.ini,Oats,0HG) * $+($iif($len(%steala) == 1,.0,.),%steala))), %oatsb $readini(Graze.ini,Oats,0HG), %gtimea $r(1800,2700)
describe $chan watches as $nick goes to steal from $team0(0HG) $+ ...
.timer 1 3 msg $chan $c2($nick,.::) $+ $c1($nick,STEALTH) $+ $c2($nick,::. You climbed out of) $team0(0HG) $+ $c2($nick,'s barn with) $c1($nick,%stealb) $c2($nick,oats. It'll take you) $c1($nick,$dur(%gtimea)) $c2($nick,to get back to the herd.)
writeini -n Graze.ini Oats $team($nick) $calc(%oats + %stealb)
writeini -n Graze.ini Oats 0HG $calc(%oatsb - %stealb)
writeini -n Graze.ini GTime $nick $calc(%gtimeb + %gtimea)
}
}
writeini -n Graze.ini TTime $nick $calc($ctime + 10800)
}
else if (!$readini(Graze.ini,Thief,$team($nick))) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your team does not have a) $c1($nick,Thief's Sceptre) $+ $c2($nick,.) | halt }
}
ON $*:TEXT:m/^[~!@`.]bazaar$/Si:#VMA-214,#ApeCage:{
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
msg $chan $c1($nick,$team($nick)) $c2($nick,currently has:) $c1($nick,$readini(Graze.ini,Money,$team($nick)) $+ $) $c2($nick,and) $iif($readini(Graze.ini,Gold,$team($nick)),8Golden Shears,no golden shears) $iif($readini(Graze.ini,Bronze,$team($nick)),5Bronze Shears,no bronze shears) $iif($readini(Graze.ini,Platinum,$team($nick)),14Platinum Hourglass,no platinum hourglass) $iif($readini(Graze.ini,Silver,$team($nick)),15Silver Hourglass,no silver hourglass)
msg $chan $c2($nick,Items for sale:) ( $+ $c1($nick,40$) $+ ) 05Bronze $c2($nick,shears - double amount of oats your entire herd earns from every graze.) [add to purchase list with !auction bronze] -- ( $+ $c1($nick,85$) $+ ) 08Golden $c2($nick,shears - get 3 times the oats your entire herd earns from grazing.) [Add to purchase list with !auction golden]
msg $chan $c2($nick,Items for sale:) ( $+ $c1($nick,35$) $+ ) 15Silver $c2($nick,hourglass - decrease wait time between grazing by 1 hr.) [add to purchase list with !auction silver] -- ( $+ $c1($nick,55$) $+ ) 15,14Platinum $c2($nick,timeglass - decrease wait time by 2 hrs.) [Add to purchase list with !auction platinum] ( $+ $c1($nick,50$) $+ ) 12Thief's Sceptre $c2($nick,- increase random % stolen from 0HG by 5%) [add to purchase list with !auction thief]
}
ON $*:TEXT:m/^[~!@`.]auction /Si:#VMA-214,#ApeCage:{
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
if ($ini(Graze.ini,Purchasing,$team($nick))) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your team is already purchasing an item.) | halt }
if ($readini(Graze.ini,$2,$team($nick)) && $2 != thief) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your team already has that item.) | halt }
if ($ini(Items.ini,$2) > 0) {
if ($readini(Graze.ini,Money,$team($nick)) >= $readini(Items.ini,$2,Cost)) {
if ($2 == thief && $readini(Graze.ini,Thief,$team($nick)) >= 10) { msg $chan There's no need to be such a criminal, ok? Let's stop buying these. :( | halt }
writeini -n Graze.ini Purchasing $team($nick) $2
writeini -n Graze.ini Purchasing $team($nick) $+ .approvals $nick
msg $chan $c2($nick,.::) $+ $c1($nick,AUCTION) $+ $c2($nick,::.) $team0($nick) $c2($nick,has started to purchase a) $c1($nick,$2 $readini(Items.ini,$2,Type)) $+ $c2($nick,.) $team0($nick) $+ $c2($nick,$chr(44) to approve of this purchase $+ $chr(44) use .approve $+ $chr(59) if you don't want it $+ $chr(44) type .reject)
}
else if ($readini(Graze.ini,Money,$team($nick)) < $readini(Items.ini,$2,Cost)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your team has) $c1($nick,$chr(36) $+ $readini(Graze.ini,Money,$team($nick))) $c2($nick,and a) $c1($nick,$2 $readini(Items.ini,$2,Type)) $c2($nick,costs) $c1($nick,$chr(36) $+ $readini(Items.ini,$2,Cost)) $+ $c2($nick,.)
}
}
}
ON $*:TEXT:m/^[~!@`.]approve/Si:#VMA-214,#ApeCage:{
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
if ($ini(Graze.ini,Purchasing,$team($nick) $+ .approvals)) {
if ($nick isin $readini(Graze.ini,Purchasing,$team($nick) $+ .approvals) || $nick isin $readini(Graze.ini,Purchasing,$team($nick) $+ .rejections)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) you already chose!) | halt }
var %approve $numtok($readini(Graze.ini,Purchasing,$team($nick) $+ .approvals),32), %approvals $readini(Graze.ini,Purchasing,$team($nick) $+ .approvals), %2 $readini(Graze.ini,Purchasing,$team($nick))
msg $chan $c1($nick,$nick) $+ , $c2($nick,you are the) $c1($nick,$ord($calc(%approve +1))) $c2($nick,person to approve your herd's purchase.)
writeini -n Graze.ini Purchasing $team($nick) $+ .approvals $nick %approvals
if (%approve = 1) { var %money $readini(Graze.ini,Money,$team($nick)) | msg $chan $team0($nick) has added a %2 $readini(Items.ini,%2,Type) to their suitcase! | if (%2 == thief) { var %thief $readini(Graze.ini,Thief,$team($nick)) | writeini -n Graze.ini %2 $team($nick) $calc(1+ %thief) } | writeini -n Graze.ini %2 $team($nick) 1 | remini Graze.ini Purchasing $team($nick) $+ .approvals | remini Graze.ini Purchasing $team($nick) | remini Graze.ini Purchasing $team($nick) $+ .rejections | writeini -n Graze.ini Money $team($nick) $calc(%money - $readini(Items.ini,%2,Cost)) }
}
}
ON $*:TEXT:m/^[~!@`.]reject/Si:#VMA-214,#ApeCage:{
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
if ($ini(Graze.ini,Purchasing,$team($nick) $+ .approvals)) {
if ($nick isin $readini(Graze.ini,Purchasing,$team($nick) $+ .rejections) || $nick isin $readini(Graze.ini,Purchasing,$team($nick) $+ .approvals)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) you already chose!) | halt }
var %reject $numtok($readini(Graze.ini,Purchasing,$team($nick) $+ .rejections),32), %rejections $readini(Graze.ini,Purchasing,$team($nick) $+ .rejections), %2 $readini(Graze.ini,Purchasing,$team($nick))
msg $chan $c1($nick,$nick) $+ , $c2($nick,you are the) $c1($nick,$ord($calc(%reject +1))) $c2($nick,person to reject your herd's purchase of %2 $readini(Items.ini,%2,Type))
writeini -n Graze.ini Purchasing $team($nick) $+ .rejections $nick %rejections
if (%reject = 1) { msg $chan $team($nick) has rejected their purchase of a %2 $readini(Items.ini,%2,Type) $+ . | remini Graze.ini Purchasing $team($nick) $+ . rejections | remini Graze.ini Purchasing $team($nick) $+ .approvals | remini Graze.ini Purchasing $team($nick) }
}
}
ON $*:TEXT:m/^[~!@`.]h(ay)?s(cores)?$/Si:#VMA-214,#ApeCage:msg $chan Herds: $regsubex($str(-,$ini(Graze.ini,Oats,0)),/./g,$c2($nick,[) $+ $team0($ini(Graze.ini,Oats,\n)) $+ $c2($nick,:) $c1($nick,$readini(Graze.ini,Oats,$ini(Graze.ini,Oats,\n))) $c2($nick,oats]) $+ $chr(32))
ON $*:TEXT:m/^[~!@`.]h(ay)?s(coring)?s(heep)?(\d+)?$/Si:#VMA-214,#ApeCage:{
;var %rank $iif($remove($1,h,a,y,s,c,o,r,i,n,g,e,p),1- $+ $v1,1-5)
msg $chan $regsubex(@ $gettok($sorttok($regsubex($str(-,$ini(Team.ini,Sheep,0)),/./g,$readini(Graze.ini,XP,$ini(Team.ini,Sheep,\n)) - $ini(Team.ini,Sheep,\n) @),64,nr),1-10,64),/@/g,\n. $+ $chr(41) $+ $chr(32))
}
ON $*:TEXT:m/^[~!@`.]t(op|eam)?s(cores?)?/Si:#VMA-214,#ApeCage:{
var %1 $iif($2,$2,$nick), %tm $iif($team(%1),$v1,%1), %memz $regsubex($str(-,$lines(Team.ini)),/./g,$iif(%tm == $readini(Team.ini,Sheep,$ini(Team.ini,Sheep,\n)),$ini(Team.ini,Sheep,\n) $+ $chr(32),))
;%memz $regsubex($str(-,$lines(roster_db.txt)),/./g,$iif(%tm isin $read(roster_db.txt,\n),$noqt($gettok($read(roster_db.txt,\n),$iif($len($gettok($read(roster_db.txt,\n),2,44)) > 16,5,4),44)) $+ $chr(44),))
if (!%tm) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) either you're not in a team or you didn't give me an actual team name!) | halt }
msg $chan $team0(%1) $+ 's Team Stats: $regsubex($regsubex(@ $sorttok(@ $left($regsubex($str(-,$numtok(%memz,32)),/./g,$iif($readini(Graze.ini,XP,$gettok(%memz,\n,32)),$v1,0) - $gettok(%memz,\n,32) @ $+ $chr(32)),-1),64,nr),/@/g,$c1($nick,\n) $+ $c2($nick,. $+ $chr(41))),/\d+?\. $+ $chr(41)/g,14\n04.14 $+ $chr(41))
}
ON $*:TEXT:m/^[~!@`.]s(uit)?c(ase)?/Si:#VMA-214,#ApeCage:var %1 $iif($2,$2,$nick) | msg $chan $c2($nick,.::) $+ $c1($nick,SuitCase) $+ $c1($nick,::.) $c2($nick,[) $+ $c1($nick,TEAM) $+ $c2($nick,:) $team0($iif($2,$2,$nick)) $+ $c2($nick,]) $c2($nick,$chr(40)) $+ $c1($nick,ITEMS) $+ $c2($nick,$chr(41)) $iif($readini(Graze.ini,Bronze,$team(%1)),Bronze shears $+ $chr(44) $+ $chr(32),) $iif($readini(Graze.ini,Gold,$team(%1)),Gold shears $+ $chr(44) $+ $chr(32),) $iif($readini(Graze.ini,Silver,$team(%1)),Silver timeglass $+ $chr(44) $+ $chr(32),) $iif($readini(Graze.ini,Platinum,$team(%1)),Platinum timeglass $+ $chr(44) $+ $chr(32),) $iif($readini(Graze.ini,Thief,$team(%1)),Thief x $+ $readini(Graze.ini,Thief,$team(%1)) $+ $chr(44) $+ $chr(32),) $c1($nick,$iif($replace($readini(Graze.ini,Items,%1),$chr(32),$chr(44) $+ $chr(32),time2,ivory restroom),$v1,-)) $c2($nick,XP:) $c1($nick,$readini(Graze.ini,XP,%1)) $+ $c2($nick,/) $+ $c1($nick,$iif($readini(Graze.ini,XP,%1) < 4,4,$iif($readini(Graze.ini,XP,%1) < 10,10,$iif($readini(Graze.ini,XP,%1) < 20,20,$iif($readini(Graze.ini,XP,%1) < 32,32,$iif($readini(Graze.ini,XP,%1) < 46,46,Infinity)))))) $c2($nick,Level:) $c1($nick,$calc(1+ $numtok($readini(Graze.ini,Items,%1),32))) $c2($nick,[) $+ $c1($nick,Graze?) $+ $c2($nick,] $iif($ctime < $readini(Graze.ini,GTime,%1),In $duration($calc($readini(Graze.ini,GTime,%1) - $ctime)),Now!)) - $c2($nick,Time reduction:) $c1($nick,$dur($calc(21600 - $gtime(%1)))) $c2($nick,$chr(40)) $+ $c1($nick,TEAM INFO) $+ $c2($nick,$chr(41)) $c2($nick,[) $+ $c1($nick,Money) $+ $c2($nick,]) $c1($nick,$readini(Graze.ini,Money,$team(%1))) $c2($nick,[) $+ $c1($nick,Oats) $+ $c2($nick,]) $c1($nick,$readini(Graze.ini,Oats,$team(%1))) $c2($nick,$chr(40)) $+ $c1($nick,BUYING?) $+ $c2($nick,$chr(41)) $iif($remove($read(Graze.ini,w,[ $+ $team(%1) $+ .*]),[,],$team(%1) $+ .),A $v1 item!,Nothing!)
ON $*:TEXT:m/[~!@`.]l(ast)?w(eek)?/i:#ApeCage,#VMA-214:{
msg $chan $c2($nick,The winner last week was) $c1($nick,$readini(" $+ $mircdir $+ Graze\ $+ $calc(%ceday -7) $+ to $+ $calc(%ceday -1) $+ .ini",Winner,1)) $c2($nick,with) $c1($nick,$readini(" $+ $mircdir $+ Graze\ $+ $calc(%ceday -7) $+ to $+ $calc(%ceday -1) $+ .ini",Oats,$readini(" $+ $mircdir $+ Graze\ $+ $calc(%ceday -7) $+ to $+ $calc(%ceday -1) $+ .ini",Winner,1))) $c2($nick,oats.)
}
ON $*:TEXT:m/^[~!@`.]powergraze$/Si:#VMA-214,#ApeCage:{
if (!$timer(ceday)) { timerceday -o 03:00 1 1 checkeday }
if (!$team($nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. Sorry) $c1($nick,$nick) $+ $c2($nick,$chr(44) your nick is not in my database.) | halt }
if ($ctime < $readini(Graze.ini,Powergraze,$nick)) { msg $chan $c2($nick,.::) $+ $c1($nick,ERROR) $+ $c2($nick,::. You have to wait) $duration($calc($readini(Graze.ini,Powergraze,$nick) - $ctime)) $c2($nick,to powergraze again. I need to recover from your assault.) 14:12''13 $+ $chr(40) | halt }
:farmer
var %team $team($nick), %oats $calc($gold($nick,$bronze($nick,3)) *2), %oat0 $readini(Graze.ini,Oats,%team), %money $readini(Graze.ini,Money,%team), %xp $readini(Graze.ini,XP,$nick)
msg $chan $c2($nick,.::) $+ $c1($nick,OMGRAZE) $+ $c2($nick,::.) $c1($nick,$nick) $c2($nick,has gone on a rampage!! Don't hurt me $+ $chr(44) just take) $c1($nick,%oats) $c2($nick,oats.) $c2($nick,And here's my money:) $c1($nick,+ $+ $chr(36) $+ $gm($nick,4)) $c2($nick,and take $gxp($nick,1) XP.) 14:12''13 $+ $chr(40)
writeini -n Graze.ini XP $nick $calc(%xp + $gxp($nick,1))
writeini -n Graze.ini Oats %team $calc(%oat0 + %oats)
writeini -n Graze.ini Powergraze $nick $calc($ctime + 72000)
writeini -n Graze.ini Money %team $calc(%money + $gm($nick,4))
var %xpz $readini(Graze.ini,XP,$nick)
if (%xpz = 4) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $c2($nick,you have leveled up to level) $c1($nick,2) $+ $c2($nick,. Here's a new trough that will help you gather more oats and double XP! Next level $+ $chr(44) you'll get an item to earn more money.) | writeini -n Graze.ini Items $nick Trough $remove($readini(Graze.ini,Items,$nick),Trough) }
else if (%xpz = 10) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,3) $+ $c2($nick,. You unlocked the ability to steal. Let the thievery begin.) | writeini -n Graze.ini Graze.ini Items $nick Stealability $remove($readini(Graze.ini,Items,$nick),Stealability) }
else if (%xpz = 20) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,4) $+ $c2($nick,. Have some fertilizer that'll give you more oats and double money! Next level $+ $chr(44) receive an item to decrease your digestion time.) | writeini -n Graze.ini Items $nick Fertilizer $remove($readini(Graze.ini,Items,$nick),fertilizer) }
else if (%xpz = 32) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,5) $+ $c2($nick,. The barn masters have bought you a bigger restroom so you can eat more often now!) | writeini -n Graze.ini Items $nick Restroom $remove($readini(Graze.ini,Items,$nick),Restroom) }
else if (%xpz = 46) { msg $chan $c2($nick,.::) $+ $c1($nick,LEVEL-UP) $+ $c2($nick,::.) $c1($nick,$nick) $+ $c2($nick,$chr(44) you have leveled up to level) $c1($nick,6) $+ $c2($nick,. You have unlocked) $c1($nick,Black Sheep) $c2($nick,mode!) $c2($nick,Use ") $+ $c1($nick,.help graze Black Sheep mode) $+ $c2($nick,") | writeini -n Graze.ini Items $nick BSM $remove($readini(Graze.ini,Items,$nick),BSM) }
writeini -n Graze.ini GTime $nick $calc($ctime + ($gtime($nick) *1.5))
}
ON *:JOIN:#VMA-214:{
if ($team($nick)) {
if (($readini(Graze.ini,Purchasing,$team($nick))) && ($nick !isin $readini(Graze.ini,Purchasing,$team($nick) $+ .approvals))) { msg $chan $c2($nick,Hey $+ $chr(44)) $c1($nick,$nick) $+ $c2($nick,!) $team0($nick) $c2($nick,is buying a) $c1($nick,$readini(Graze.ini,Purchasing,$team($nick)) $readini(Items.ini,$readini(Graze.ini,Purchasing,$team($nick),Type))) $+ $c2($nick,. To see what it does $+ $chr(44) use) $c1($nick,.bazaar) $c2($nick,To approve the purchase $+ $chr(44) type) $c1($nick,.approve) $c2($nick,or to reject it $+ $chr(44) type) $c1($nick,.reject) }
}
}
ON $*:TEXT:m/^[~!@`.]farmer$/i:#ApeCage: msg $chan $c2($nick,.::) $+ $c1($nick,FARMER) $+ $c2($nick,::. The farmer will be here in) $c1($nick,$dur($timer(farmerz).secs))
/*
ON $*:TEXT:m/^[~!@`.]t(eam)?l(inks?)?/i:#VMA-214,#ApeCage:{
var %tm $iif($2,$replace($2,green,1gh,yellow,1yh,blue,1bh,red,1rh,purple,1ph,honor,0hg),$team($nick))
var %mem $regsubex($str(-,$lines(roster_db.txt)),/./g,$iif(%tm isin $read(roster_db.txt,\n),$noqt($gettok($read(roster_db.txt,\n),$iif($len($gettok($read(roster_db.txt,\n),2,44)) > 16,5,4) $+ : $iif($len($gettok($read(roster_db.txt,\n),2,44)) > 16,3,2),44)) $chr(124),)), %memn $numtok(%memz,32)
while (%memn) {
msg $nick $gettok(%mem,%memn,124) $gettok(%mem,$calc(%memn - 1),124) $gettok(%mem,$calc(%memn - 2),124)
dec %memn 3
}
}
*/
ON $*:TEXT:m/^[~!@`.]help graze/i:*:{
if ($chan) { msg $chan $c2($nick,.::) $+ $c1($nick,HELP) $+ $c2($nick,::. I sent you a PM.) }
if ($3) { goto $3 }
else if (!$3) {
msg $nick $c2($nick,.::) $+ $c1($nick,HELP) $+ $c2($nick,::. Hey there $+ $chr(44)) $c1($nick,$nick) $+ $c2($nick,! Here are some topics you can ask about. To ask, type .help graze topic) Topics: basics, items, commands, Black Sheep mode, crazy farmer, thief. Speak up if you have any ideas for the game 10<133
halt
}
:basics
:basic
msg $nick The point of the game is to gather more oats than the other sheep herds. You can graze every so often using .graze, which will give you oats, money, and XP. Money lets you buy things and XP is to level up and gain special features. **Please remember that this game is still in developmental mode, so the game will be changing! Also, all commands can be started with ~!@`. but we'll use "." here because I prefer it.
halt
:items
:item
msg $nick Bazaar Items: [Shears increase oat-gathering bonuses when grazing and it applies to the ENTIRE herd. ] [Hourglasses decrease wait times for the entire herd.] [Thieves Sceptres allow oat stealing. More info: .help graze thief]
msg $nick Level-up Items: [A special trough gives you 2x XP so you level up faster. Added at level two.] [Fertilizer helps you out by giving you 2x money (but the money goes to your herd's bank). Added at level four.] [An ivory restroom decreases your wait time by 1 hour. Added at level five.] [Black Sheep Mode, added at level 6, is displayed in your suitcase as an item called "BSM". More info under .help graze Black Sheep Mode.]
halt
:commands
:cmds
:cmd
:command
msg $nick ---- Stats and stuff ----- (shortcuts in parentheses will work)
msg $nick [.hayscores (.hs) - The current rankings of all the herds] [.hayscoringsheep (.hss) - Top 5 sheep so far this week]
msg $nick [.teamscores (.ts) herd (optional, if you want to see another herd: 1PH,1GH,1BH,1YH,1RH,1GH,0HG) - The herd breakdown of all sheep in the herd]
msg $nick [.lastweek (.lw) - The previous week's winning herd (will add ability to see even farther back in history and more stats)]
msg $nick [.suitcase (.sc) nick (optional, if you want to see another sheep's stats) - Personal info like items, xp, etc.]
msg $nick [.powergraze - Get double oats, but it increases your graze timer. Only usable every 20 hours (recommended before bed :D)]
msg $nick [.bazaar - Check out the item marketplace. Purchases need to be approved or rejected by two herd members.]
msg $nick [.approve item or .reject item - Approve or reject the purchase of an item to add it to your herd suitcase or cancel the purchase]
msg $nick [.transform - Transforms into Black Sheep. More info under .help graze Black Sheep mode]
halt
:BSM
:Black
:Black Sheep Mode
msg $nick Black Sheep Mode is unlocked at level 6. It is referred to as "BSM" in your suitcase. It allows the sheep to transform every day for one hour and become a powerful sheep. This sheep ignores normal time limits. Instead, it can graze every 15 mins for 1 whole hour. To transform, use .transform
halt
:farmer
:crazy
msg $nick The crazy farmer is a member of the Honor Guard who has gone crazy from pressure. He or she will suddenly drop our surplus food, like Q5 grass and oats. This happens every few hours, and anyone can graze for a 10-20 minute period. Grazing will not reset your normal graze time. Ex: If you have 40 mins left until you can graze and the farmer shows up, you can graze and still have 40 mins left.
halt
:thief
msg $nick A thief's sceptre allows a sheep to start going down the path of evil. Every 3 hours, sheep can try to steal between 1% to 10% of oats from the Honor Guard. There is a chance of failure and punishment. Buying more sceptres increases the range of percentages by 1%. Steal using .steal at level three.
halt
}
ON $*:TEXT:m/[^help]/i:?: msg $nick Sorry $nick $+ , but please use any non-help commands in the private channel!
}
@Roper70
Copy link
Author

Roper70 commented Apr 18, 2013

This has a few things that needs fixed, and some things needs to be added. Game was still in development when our coder had to leave. We've been playing it for about 5 months now.
I'll give a list of known bugs along with a few things off the top of my head that needs changed/added...

  1. Game does not always reset each week as it should, would like that fixed or a .reset command only usable from #ApeCage
  2. .steal was designed wrong and needs to steal from highest ranked herd
  3. Farmer was working great but last week stopped letting some .graze when he was out, he's also not been announcing when he was leaving.
  4. New command .snack which will only be usable when .graze timer is over 4 hours. Snack is a 1/2 graze which does not affect Graze timer.
  5. Game currently stops at level 6. It needs to go to Level 10 with a few more items. Level 10 with all items then herd graze timer should be 1 hour.

I am sure I have forgotten a few things and this game has alot to it I know, anyone who wishes to help it would be appreciated. We hang out on irc.rizon.net @ #blacksheep

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment