mIRC Snake v2 — File Browser
mIRCSnakev2v2.3 / mIRCSnakev2v2.3 / mSnake2.txt
mSnake2.txt — 6.13 KB — Download this file
;
; mSnake v2.3 by Varvail
; using HASH tables.
; if mirc is minimized Snake pauses
;
; to Load: /load -rs mSnake2.mrc
;
; To start /snake2
;
on 1:KEYDOWN:@snake2:32,37,38,39,40:{
if ($keyval == 32) {
if ($hget(snake2d,status) != game over) {
if ($hget(snake2d,start) == yes) {
hadd snake2d start no
titlebar @snake2 $iif(%_s2_solid != no,SOLID,not solid) - Score: $hget(snake2d,score) -GAME PAUSED-
hadd snake2d status paused
}
else {
hadd snake2d start yes
titlebar @snake2 $iif(%_s2_solid != no,SOLID,not solid) - Score: $hget(snake2d,score)
hadd snake2d status playing
}
return
}
snake2
return
}
if ($hget(snake2d,start) == no) { hadd snake2d start yes }
if ($hget(snake2d,p)) { return }
if ($keyval == 37) { if ($_s2_dir == right) && ($_s2_len > 1) { return } | hadd snake2d direction left }
if ($keyval == 38) { if ($_s2_dir == down) && ($_s2_len > 1) { return } | hadd snake2d direction up }
if ($keyval == 39) { if ($_s2_dir == left) && ($_s2_len > 1) { return } | hadd snake2d direction right }
if ($keyval == 40) { if ($_s2_dir == up) && ($_s2_len > 1) { return } | hadd snake2d direction down }
hadd snake2d p yes
}
alias snake2 {
window -p @snake2 100 50 510 530
drawrect -f @snake2 1 1 0 0 510 530
if ($hget(snake2)) { hfree snake2 }
if ($hget(snake2d)) { hfree snake2d }
hmake snake2 10000
hmake snake2d 100
hadd snake2d status playing
hadd snake2 1 25 25
hadd snake2d 25_25 snake
hadd snake2d start no
hadd snake2d size 1
hadd snake2d score 0
titlebar @snake2 $iif(%_s2_solid != no,SOLID,not solid) - Score: $hget(snake2d,score)
var %f_x = $r(1,50)
var %f_y = $r(1,50)
var %f_xy = %f_x $+ _ $+ %f_y
hadd snake2d fruit_x %f_x
hadd snake2d fruit_y %f_y
hadd snake2d %f_xy fruit
hadd snake2d num 1
hadd snake2d 25_25 snake
drawdot @snake2 4 4 $calc($_s2_loc($hget(snake2d,fruit_x)) +5) $calc($_s2_loc($hget(snake2d,fruit_y)) +5)
drawrect -f @snake2 7 1 $_s2_get2(1)
.timersnake2 -m 0 50 _snake2
}
menu channel {
playing mIRC Snake:/me is playing mIRC Snake v $+ %_s2_ver status: $hget(snake2d,status) Points: $hget(snake2d,score)
}
menu @snake2 {
Snake2 for mIRC:echo -s made by Varvail
-
Wall Status- $iif(%_s2_solid != no,SOLID,not solid) -:{
if (%_s2_solid != no) { set %_s2_solid no }
else { set %_s2_solid yes }
}
-
restart:/snake2
pause:{
if ($hget(snake2d,status) != game over) {
if ($hget(snake2d,start) == yes) {
hadd snake2d start no
titlebar @snake2 $iif(%_s2_solid != no,SOLID,not solid) - Score: $hget(snake2d,score) -GAME PAUSED-
hadd snake2d status paused
}
else {
hadd snake2d start yes
titlebar @snake2 $iif(%_s2_solid != no,SOLID,not solid) - Score: $hget(snake2d,score)
hadd snake2d status playing
}
return
}
}
}
menu menubar {
Snake2:/snake2
}
alias _snake2 {
set %_s2_ver 2.2
if (!$window(@snake2)) { .timersnake2 off | return }
if (!$appactive) || ($active != @snake2) {
hadd snake2d start no
titlebar @snake2 $iif(%_s2_solid != no,SOLID,not solid) - Score: $hget(snake2d,score) -GAME PAUSED-
hadd snake2d status paused
}
if ($hget(snake2d,start) != yes) { return }
drawdot @snake2 4 4 $calc($_s2_loc($hget(snake2d,fruit_x)) +5) $calc($_s2_loc($hget(snake2d,fruit_y)) +5)
var %x = $gettok($_s2_get($hget(snake2d,num)),1,32)
var %y = $gettok($_s2_get($hget(snake2d,num)),2,32)
if ($_s2_dir == left) { dec %x }
if ($_s2_dir == up) { dec %y }
if ($_s2_dir == right) { inc %x }
if ($_s2_dir == down) { inc %y }
hadd snake2d num $calc($hget(snake2d,num) +1)
var %xy = %x $+ _ $+ %y
if (%_s2_solid == no) {
if (%x > 50) { dec %x 50 }
if (%y > 50) { dec %y 50 }
if (1 > %x) { inc %x 50 }
if (1 > %y) { inc %y 50 }
var %xy = %x $+ _ $+ %y
if ($hget(snake2d,%xy) == snake) {
goto go
}
}
if ((%_s2_solid != no)) && (($hget(snake2d,%xy) == snake) || (1 > %x) || (%x > 50) || (1 > %y) || (%y > 50)) {
:go
.timersnake2 off
drawtext @snake2 10 arial 80 20 150 Game Over
if (!%_s2_ms) || ($hget(snake2d,score) > %_s2_ms) {
drawtext @snake2 8 arial 30 130 100 New high score
set %_s2_ms $hget(snake2d,score)
;set %_s2_mn $input(input name,eo,New High Score)
set %_s2_mn $?="New High Score, input name"
}
drawtext @snake2 10 arial 20 200 300 Topscore:
drawtext @snake2 3 arial 20 190 330 %_s2_ms : %_s2_mn
hadd snake2d status game over
return
}
drawrect -f @snake2 7 1 $_s2_loc(%x) $_s2_loc(%y) 10 10
if ($_s2_len > 1) { drawrect -f @snake2 1 1 $_s2_get2($calc($hget(snake2d,num) -1)) | drawrect @snake2 7 1 $_s2_get2($calc($hget(snake2d,num) -1)) }
var %q = $_s2_len
if ($hget(snake2d,%xy) == fruit) {
hadd snake2d score $calc(9+ $hget(snake2d,score))
titlebar @snake2 $iif(%_s2_solid != no,SOLID,not solid) - Score: $hget(snake2d,score)
hadd snake2 $hget(snake2d,num) %x %y
hadd snake2d %xy snake
var %f_yx = YldGa1pTQmllU0IyWVhKMllXbHM=
:create
var %f_x = $r(1,50)
var %f_y = $r(1,50)
var %f_xy = %f_x $+ _ $+ %f_y
if ($hget(snake2d,%f_xy)) { goto create }
hadd snake2d fruit_x %f_x
hadd snake2d fruit_y %f_y
hadd snake2d %f_xy fruit
drawdot @snake2 4 4 $calc($_s2_loc($hget(snake2d,fruit_x)) +5) $calc($_s2_loc($hget(snake2d,fruit_y)) +5)
hadd snake2d size $calc($_s2_len +1)
goto _snakeend
}
var %lenxy $replace($_s2_get($calc($hget(snake2d,num) - %q)),$chr(32),_)
hdel snake2d %lenxy
drawrect -f @snake2 1 1 $_s2_get2($calc($hget(snake2d,num) - %q))
hdel snake2 $calc($hget(snake2d,num) - %q)
hadd snake2 $hget(snake2d,num) %x %y
hadd snake2d %xy snake
:_snakeend
hdel snake2d p
}
alias _s2_dir { return $hget(snake2d,direction) }
alias _s2_loc { return $calc(($1 -1)*10) }
alias _s2_get { return $hget(snake2,$1) }
alias _s2_get2 { var %a = $hget(snake2,$1) | return $_s2_loc($gettok(%a,1,32)) $_s2_loc($gettok(%a,2,32)) 10 10 }
alias _s2_len { return $hget(snake2d,size) }