mIRC Ski — File Browser

mIRCSkiv0.9 / mIRCSkiv0.9 / ski.mrc

ski.mrc — 21.22 KB — Download this file

;
;.24.41
;
;-----===== SKI by puzzling =====-----
;msn: puzzlin@hotmail.co.uk

Alias ski.pic {
  if ($hget(ski)) hfree ski

  window -phf +d @ski.buf 0 0 100 70
  window -phf +d @ski.map 0 0 400 5200

  drawrect -rf @ski.buf 16777215 1 0 0 400 400
  if ($exists(" $+ $scriptdirski.bmp")) drawpic @ski.buf 0 0 " $+ $scriptdirski.bmp"
  else {
    window -c @ski.buf
    window -c @ski.map
    var %bla = $input(Unable to open the SKI-Image: $crlf $+ ski.bmp is missing in $scriptdir,owd,Error)
    halt
  }
  ;----tree
  drawline -r @ski.buf $rgb(0,128,0) 1 0 54 19 54 15 41 17 41 10 30 3 41 5 41 0 54
  drawfill -r @ski.buf $rgb(0,150,0) $rgb(0,128,0) 9 52
  drawrect -rf @ski.buf $rgb(130,104,0) 1 7 55 6 3
  drawdot -r @ski.buf $rgb(0,128,0) 1 5 50 10 48 12 40 10 35 8 38 17 47 9 43 3 52 18 51 8 53 7 52
  drawdot -r @ski.buf $rgb(0,192,0) 1 5 49 12 32 10 37 6 44 13 48 16 39 10 41 4 53 17 52 5 54
  ;----slalom
  drawline -r @ski.buf 0 1 20 43 20 30 30 30 30 36 20 36 30 36 30 43
  ;----snowman
  drawrect -er @ski.buf 0 1 32 38 18 16
  drawrect -erf @ski.buf 16777215 1 36 31 11 12
  drawrect -er @ski.buf 0 1 36 31 11 12
  drawdot -r @ski.buf $rgb(255,0,0) 1 39 39 40 39 40 38 41 38 40 37 41 37 42 37
  drawdot -r @ski.buf 0 1 39 35 43 35 36 32 37 32 40 32 41 32 42 32 45 32 46 32 39 31 43 31 39 30 40 30 41 30 42 30 43 30 40 40 41 40 42 40 43 39 35 42 33 40 33 39 33 38 33 37 45 43 46 42 48 40 49 39 50 38
  ;----flag left
  drawline -r @ski.buf 0 1 67 20 67 0 87 0 92 5 87 10 67 10
  drawcopy @ski.buf 67 0 30 30 @ski.buf 96 32 -30 30

  ;---- hash table
  hmake ski 10
  hadd ski pic 1
  hadd ski posx 200
  hadd ski posy 50
  hadd ski yeti 0
  hadd ski time 0
  hadd ski yetip $rand(4500,7000)

  ;---- map
  window -phf +d @ski.map 0 0 400 5200
  drawrect -fr @ski.map $rgb(255,255,255) 1 0 0 400 5200

  var %a = 400,%b
  while (%a < 4900) {
    if ($rand(0,5) == 1) {
      %b = $rand(0,390)
      drawrect -er @ski.map 0 1 %b %a 20 20
      drawrect -rf @ski.map 16777215 1 %b $calc(%a + 7) 20 13
      if (%b > 380) {
        drawrect -er @ski.map 0 1 $calc(%b -400) %a 20 20
        drawrect -rf @ski.map 16777215 1 $calc(%b - 400) $calc(%a + 7) 20 13
      }
      hadd ski hill $addtok($hget(ski,hill),%b %a,124)
    }
    if ($rand(0,3) == 2) {
      %b = $rand(0,400)
      drawcopy -t @ski.buf 16777215 0 30 20 28 @ski.map %b %a
      if (%b > 380) { drawcopy -t @ski.buf 16777215 0 30 20 28 @ski.map $calc(%b -400) %a }
      hadd ski tree $addtok($hget(ski,tree),%b %a,124)
    }
    if ($rand(0,5) == 3) && (%a < 3300) {
      %b = $rand(300,900)
      hadd ski rock $addtok($hget(ski,rock),%b %a,124)
    }
    if ($rand(0,10) == 3) && (%a < 3300) {
      %b = $rand(400,800)
      hadd ski snow $addtok($hget(ski,snow),%b %a,124)
    }
    if (%a isnum 3300-3500) { inc %a 300 }
    inc %a 30
  }

  if (!$window(@ski)) { window -apdfk0 +t @Ski 400 200 400 400 }
  titlebar @Ski v 0.9

  drawrect -rfn @ski 16777215 1 0 0 400 400
  drawcopy -trn @ski.buf 16777215 0 0 20 29 @ski 190 50 20 29

  if ($1 isletter sh) {
    hadd ski posy 300
    hadd ski posx $iif($1 == s,-200,600)
    $iif($hget(ski,paus),ski.pause,ski.go)
  }
  else {
    drawfill -r @ski.buf $rgb(0,0,255) 0 70 5 80 35
    drawcopy -tn @ski.buf $rgb(255,255,255) 67 0 30 30 @ski 50 330
    drawcopy -tn @ski.buf $rgb(255,255,255) 67 32 30 30 @ski 320 330

    drawrect -rn @ski 0 1 0 0 400 400
    drawtext -rn @ski 13158600 "Monotype Corsiva" 10 10 20 by
    drawtext -rn @ski 13158600 "Monotype Corsiva" 24 25 10 puzzling
    drawtext -rn @ski 0 fixedsys 10 60 200 «« Slalom $chr(160) FreeStyle $chr(160) Hardcore »»
    drawtext -rn @ski $rgb(255,0,0) fixedsys 10 60 200 «« Slalom $chr(160) FreeStyle $chr(160) Hardcore
    drawtext -rn @ski 0 fixedsys 10 60 200 «« Slalom $chr(160) FreeStyle $chr(160) H
    drawtext -rn @ski $rgb(0,0,255) fixedsys 10 60 200 «« Slalom $chr(160) FreeStyle
    drawtext -rn @ski 0 fixedsys 10 60 200 «« Slalom $chr(160) F
    drawtext -rn @ski $rgb(0,255,0) fixedsys 10 60 200 «« Slalom
    drawtext -rn @ski 0 fixedsys 10 60 200 «« S
  }
  drawdot @ski
}
;----==== S K I - M O V E ====----

Alias ski.go {
  if (!$hget(ski,yeti)) {
    if ($hget(ski,type) == h) tokenize 32 $round($calc($1 * 1.5),0) $2
    hinc ski posx $iif($1 < 2 && $abs($calc($2 * 3)) > 3,$iif($2 < 0,-3,3),$calc($2 * 3))
    hinc ski posy $1

    ;----select game
    if ($hget(ski,posy) >= 335) && (!$hget(ski,time)) {
      hinc -c ski time 1
      if ($hget(ski,posx) < -45 && $hget(ski,posx) > -355) hadd ski type s
      elseif ($hget(ski,posx) isnum 50-350) hadd ski type n
      elseif ($hget(ski,posx) isnum 450-750) { hadd ski skill 100 | hadd ski type h }
      titlebar @Ski v 0.9 $iif($hget(ski,type) == s,Slalom,$iif($v1 == n,Normal,$iif($v1 == h,Hardcore,None)))
    }

    ;----slalom
    elseif ($hget(ski,posy) >= 1000) && ($hget(ski,type) == s) && (!$hget(ski,slalom)) { hadd ski slalom $iif($hget(ski,posx) > -105,r,f) }
    elseif ($hget(ski,posy) >= 1500) && ($hget(ski,type) == s) && ($numtok($hget(ski,slalom),32) == 1) { hadd ski slalom $hget(ski,slalom) $iif($hget(ski,posx) < -270,r,f) }
    elseif ($hget(ski,posy) >= 2000) && ($hget(ski,type) == s) && ($numtok($hget(ski,slalom),32) == 2) { hadd ski slalom $hget(ski,slalom) $iif($hget(ski,posx) > -130,r,f) }
    elseif ($hget(ski,posy) >= 2500) && ($hget(ski,type) == s) && ($numtok($hget(ski,slalom),32) == 3) { hadd ski slalom $hget(ski,slalom) $iif($hget(ski,posx) < -270,r,f) }
    elseif ($hget(ski,posy) >= 3000) && ($hget(ski,type) == s) && ($numtok($hget(ski,slalom),32) == 4) { hadd ski slalom $hget(ski,slalom) $iif($hget(ski,posx) > -130,r,f) }

    ;----highscore
    elseif ($hget(ski,posy) >= 3335) && ($hget(ski,time) != --:--) && ($hget(ski,type)) {
      hinc ski time $calc($count($hget(ski,slalom),f) * 15)
      if ($hget(ski,type) == h) hinc ski time $calc(100 - $hget(ski,skill))
      var %r,%i = 1,%t = $iif($hget(ski,type) == n,1,$iif($hget(ski,type) == s,2,3)),%scores = $iif(That's you! isin $gettok($sorttok($addtok($right($read($script,%t),-1),$hget(ski,time) <- That's you!,46),46,n),1-10,46),$v2,Too Bad! You should better try again!)
      if (Again !isin %scores) {
        write -al $+ %t $+(",$script,") . $+ $hget(ski,time)
        while ($gettok(%scores,%i,46)) {
          %r = $+(%r,%i,.) $v1 $crlf
          inc %i
        }
      }
      hadd ski time --:--
      hdel ski type
      var %bla = $input($iif(%r,%r,%scores),o,Highscore)
    }
    elseif ($hget(ski,posy) >= $hget(ski,yetip)) { ski.yeti 1 }
  }

  ;----==== D R A W:
  drawrect -rfn @ski 16777215 1 0 0 400 400
  var %a = 1,%c = $calc($hget(ski,posx) - $int($calc($hget(ski,posx) / 400 $iif($hget(ski,posx) < 0,-1))) * 400),%x = $calc(%c - 200 $iif(%c < 200,+400))
  var %y = $calc($hget(ski,posy) - $int($calc(($hget(ski,posy) - 50) / 5000)) * 5000 -50),%d = $calc($hget(ski,posy) - $int($calc($hget(ski,posy) / 5000)) * 5000)
  ;----hill
  while ($gettok($hget(ski,hill),%a,124)) {
    if ($onrect($calc(%c - 10),%d,20,29,$gettok($v1,1,32),$gettok($v1,2,32),20,7)) { hadd -z ski jump 2 }
    inc %a
  }
  %a = 1
  ;----rock
  if ($hget(ski,type) == h) {
    while ($gettok($hget(ski,rock),%a,124)) {
      drawcopy -tn @ski.buf 16777215 40 0 26 19 @ski $calc($gettok($v1,1,32) - $hget(ski,posx) +200) $calc($gettok($v1,2,32) - $hget(ski,posy) + 55)
      if ($onrect($hget(ski,posx),%d,20,29,$gettok($v1,1,32),$gettok($v1,2,32),26,19)) && (!$hget(ski,jump)) { goto rock }
      inc %a
    }
    %a = 1
    while ($gettok($hget(ski,snow),%a,124)) {
      drawcopy -tnr @ski.buf 16777215 32 30 18 24 @ski $calc($gettok($v1,1,32) - $hget(ski,posx) +200) $calc($gettok($v1,2,32) - $hget(ski,posy) + 55)
      if ($onrect($hget(ski,posx),%d,20,29,$calc($gettok($v1,1,32) +2),$calc($gettok($v1,2,32) +2),15,20)) && (!$hget(ski,jump)) { hadd ski snow $deltok($hget(ski,snow),%a,124) | $iif($hget(ski,skill) < 100,hadd ski skill $iif($calc($v1 + 30) > 100,100,$v1)) }
      else inc %a
    }
    %a = 1
  }
  ;----tree
  while ($gettok($hget(ski,tree),%a,124)) {
    if ($ski.tree($calc(%c - 10),%d,$gettok($v1,1,32),$gettok($v1,2,32))) && ($hget(ski,jump) !isnum 2-) { goto crash }
    inc %a
  }

  ;----slalom
  if ($hget(ski,type) == s) {
    %a = 1
    while (%a <= 5) {
      drawcopy -tn @ski.buf 16777215 20 30 11 13 @ski $calc($iif(2 // %a,-75,65) - $hget(ski,posx)) $calc(500 + %a * 500 - %y) 11 13
      drawfill -rn @ski $iif($gettok($hget(ski,slalom),%a,32) == f,$rgb(150,0,0),$iif($v1 == r,$rgb(0,255,0),$iif(2 // %a,$rgb(255,0,0),$rgb(0,0,255)))) 0 $calc($iif(2 // %a,-73,67) - $hget(ski,posx)) $calc(502 + %a * 500 - %y)
      inc %a
    }
  }

  if (%y >= 4600) || (%y < 0) {
    drawcopy -n @ski.map %x 0 $calc(400 - %x) 400 @ski 0 $calc(5000 - %y)
    drawcopy -n @ski.map 0 0 %x 400 @ski $calc(400 - %x) $calc(5000 - %y)
  }
  drawcopy -nt @ski.map $rgb(255,255,255) %x %y $calc(400 - %x) $iif(%y > 4600,$calc(5000 - %y),400) @ski 0 0
  drawcopy -nt @ski.map $rgb(255,255,255) 0 %y %x $iif(%y > 4600,$calc(5000 - %y),400) @ski $calc(400 - %x) 0

  ;---- Y E T I
  if ($hget(ski,yeti) > 0) { ski.yeti $v1 }
  ;----Snowboarder
  if ($v1 < 5) {
    if ($hget(ski,jump)) {
      drawcopy -tn @ski.buf 16777215 $iif($hget(ski,pic) == 1,0,20) 0 20 10 @ski 190 50 20 10
      drawcopy -tn @ski.buf 16777215 $iif($hget(ski,pic) == 1,0,20) 10 20 18 @ski 190 60 20 14
    }
    else { drawcopy -rtn @ski.buf 16777215 $iif($hget(ski,pic) == 1,0,20) 0 20 29 @ski 190 50 20 29 }
  }

  if ($hget(ski,posy) < 450) || ($hget(ski,posy) isnum 2950-3450) {
    ;---- S T A R T / G O A L - N O R M A L
    if ($onrect($calc($hget(ski,posx) - 200),$calc($hget(ski,posy) - 50),400,400,50,330,300,20)) {
      drawfill -r @ski.buf $rgb(0,0,255) 0 70 5 80 35
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 0 30 30 @ski $calc(250 - $hget(ski,posx)) $calc(380 - $hget(ski,posy))
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 32 30 30 @ski $calc(520 - $hget(ski,posx)) $calc(380 - $hget(ski,posy))
    }
    elseif ($onrect($calc($hget(ski,posx) - 200),$calc($hget(ski,posy) - 50),400,400,50,3330,300,20)) {
      drawfill -r @ski.buf $rgb(255,255,0) 0 70 5 80 35
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 0 30 30 @ski $calc(250 - $hget(ski,posx)) $calc(3380 - $hget(ski,posy))
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 32 30 30 @ski $calc(520 - $hget(ski,posx)) $calc(3380 - $hget(ski,posy))
    }

    ;---- S T A R T / G O A L - H A R D C O R E
    if ($onrect($calc($hget(ski,posx) - 200),$calc($hget(ski,posy) - 50),400,400,450,330,300,20)) {
      drawfill -r @ski.buf $rgb(255,0,0) 0 70 5 80 35
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 0 30 30 @ski $calc(650 - $hget(ski,posx)) $calc(380 - $hget(ski,posy))
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 32 30 30 @ski $calc(920 - $hget(ski,posx)) $calc(380 - $hget(ski,posy))
    }
    elseif ($onrect($calc($hget(ski,posx) - 200),$calc($hget(ski,posy) - 50),400,400,450,3330,300,20)) {
      drawfill -r @ski.buf $rgb(255,255,0) 0 70 5 80 35
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 0 30 30 @ski $calc(650 - $hget(ski,posx)) $calc(3380 - $hget(ski,posy))
      drawcopy -tn @ski.buf $rgb(255,255,255) 67 32 30 30 @ski $calc(920 - $hget(ski,posx)) $calc(3380 - $hget(ski,posy))
    }

    ;---- S T A R T / G O A L - S L A L O M
    if ($onrect($calc($hget(ski,posx) - 200),$calc($hget(ski,posy) - 50),400,400,-350,330,300,20)) {
      drawfill -r @ski.buf $rgb(0,255,0) 0 70 5 80 35
      drawcopy -trn @ski.buf $rgb(255,255,255) 67 0 30 30 @ski $calc(-150 - $hget(ski,posx)) $calc(380 - $hget(ski,posy))
      drawcopy -trn @ski.buf $rgb(255,255,255) 67 32 30 30 @ski $calc(120 - $hget(ski,posx)) $calc(380 - $hget(ski,posy))
    }
    elseif ($onrect($calc($hget(ski,posx) - 200),$calc($hget(ski,posy) - 50),400,400,50,3330,300,20)) {
      drawfill -r @ski.buf $rgb(255,255,0) 0 70 5 80 35
      drawcopy -trn @ski.buf $rgb(255,255,255) 67 0 30 30 @ski $calc(-150 - $hget(ski,posx)) $calc(3380 - $hget(ski,posy))
      drawcopy -trn @ski.buf $rgb(255,255,255) 67 32 30 30 @ski $calc(120 - $hget(ski,posx)) $calc(3380 - $hget(ski,posy))
    }
  }

  ;----exhausted
  if ($hget(ski,type) == h) && ($hget(ski,skill) <= 0) && (!$hget(ski,yeti)) { hadd ski yeti -20 }

  goto end

  :rock
  hdec ski skill 40
  :crash
  if (!$hget(ski,yeti)) {
    drawrect -rfn @ski $rgb(255,0,0) 1 0 0 400 400
    drawrect -rfne @ski $rgb(255,115,1) 1 0 50 400 -100 0 350 400 100 50 0 -100 400 350 0 100 400
    drawtext -rno @ski $rgb(255,255,0) "Arial Black" 80 44 135 CRASH
  }
  if ($hget(ski,posy) < 3335) && ($hget(ski,type) == n) hinc -c ski time 5
  elseif ($hget(ski,posy) < 3335) && ($hget(ski,type) == h) hdec ski skill 10

  :end

  ;---- yeti - exhausted
  if ($hget(ski,type) == h) && ($hget(ski,yeti) < 0) && ($hget(ski,skill) <= 0) {
    drawtext -rn @ski 0 Arial 10 130 20 *uff* I'm too exhausted to go on.
    hinc ski yeti $iif($hget(ski,yeti) == -1,2,1)
  }
  ;---- stats
  if ($hget(ski,type) == n) {
    drawrect -frn @ski 16777215 1 300 0 100 50
    drawrect -rn @ski 0 1 300 0 100 50
    drawtext -rn @ski 0 Arial 10 310 5 Time: $iif($hget(ski,time) == --:--,$v1,$asctime($hget(ski,time),nn:ss))
    drawtext -rn @ski 0 Arial 10 310 20 Speed: $1 m/s
    drawtext -rn @ski 0 Arial 10 310 35 Dist: $calc($hget(ski,posy) - 335) m
  }
  elseif ($hget(ski,type) == s) {
    drawrect -frn @ski 16777215 1 300 0 100 50
    drawrect -rn @ski 0 1 300 0 100 50
    drawdot -rn @ski $iif($gettok($hget(ski,slalom),1,32) == f,$rgb(150,0,0),$iif($v1 == r,$rgb(0,255,0),$rgb(0,0,255))) 2 366 10
    drawdot -rn @ski $iif($gettok($hget(ski,slalom),2,32) == f,$rgb(150,0,0),$iif($v1 == r,$rgb(0,255,0),$rgb(255,0,0))) 2 333 15
    drawdot -rn @ski $iif($gettok($hget(ski,slalom),3,32) == f,$rgb(150,0,0),$iif($v1 == r,$rgb(0,255,0),$rgb(0,0,255))) 2 366 20
    drawdot -rn @ski $iif($gettok($hget(ski,slalom),4,32) == f,$rgb(150,0,0),$iif($v1 == r,$rgb(0,255,0),$rgb(255,0,0))) 2 333 25
    drawdot -rn @ski $iif($gettok($hget(ski,slalom),5,32) == f,$rgb(150,0,0),$iif($v1 == r,$rgb(0,255,0),$rgb(0,0,255))) 2 366 30
    if ($calc($hget(ski,posx) * 0.25 + 400) > 300) drawdot -rn @ski 0 2 $calc($hget(ski,posx) * 0.25 + 400) $round($calc($hget(ski,posy) / 100),0)
  }
  elseif ($hget(ski,type) == h) && ($hget(ski,yeti) < 1) {
    drawrect -frn @ski 16777215 1 300 0 100 50
    drawrect -rn @ski 0 1 300 0 100 50
    drawtext -rn @ski 0 Arial 10 310 5 Time: $iif($hget(ski,time) == --:--,$v1,$asctime($hget(ski,time),nn:ss))
    drawtext -rn @ski 0 Arial 10 310 20 Health: $iif($hget(ski,skill) > 0,$v1,none)
    drawtext -rn @ski 0 Arial 10 310 35 Dist: $calc($hget(ski,posy) - 335) $+ m
  }

  drawrect -rn @ski 0 1 0 0 400 400
  drawdot @ski
}

;-----===== P A U S E / R E S U M E
Alias -l ski.pause {
  if ($hget(ski,paus)) {
    hdel ski paus
    .timerSKI -m 0 50 ski.go $!ski.m
    if ($hget(ski,posy) < 3335) && ($hget(ski,posy) > 335) hinc -c ski time 1
    titlebar @Ski v 0.9 $iif($hget(ski,type) == s,Slalom,$iif($v1 == n,Normal,$iif($v1 == h,Hardcore,None)))
  }
  else {
    hadd ski paus 1
    .timerSKI* off
    hadd ski time $hget(ski,time)
    drawtext -ro @ski 0 "Arial Black" 40 100 130 PAUSED
    drawtext -r @ski 0 Arial 12 120 180 (Press F3 or P to continue.)
    titlebar @Ski v 0.9 $iif($hget(ski,type) == s,Slalom,$iif($v1 == n,Normal,$iif($v1 == h,Hardcore,None))) - Paused
  }
}
;-----===== S P E E D
Alias -l ski.m { return $calc($iif($round($abs($calc(5 * ($mouse.y - 50) / ($mouse.x - 200))),0) > 25,25,$v1) $iif($hget(ski,jump),+5)) $round($calc(1.5 * ($mouse.x - 200) / ($mouse.y - 50)),0) }
;-----===== Y E T I
Alias -l ski.yeti {
  hinc ski yeti
  if ($1 isnum 1-4) {
    drawrect -nfer @ski $rgb(175,175,175) 1 $calc($1 * 6 + 162) $calc($1 * 20 -30) 14 20
    drawrect -ner @ski 0 1 $calc($1 * 6 + 162) $calc($1 * 20 -30) 14 20
    drawrect -nfrd @ski $rgb(175,175,175) 1 $calc($1 * 6 + 166) $calc($1 * 20 -41) 12 15 10 10
    drawrect -nrd @ski 0 1 $calc($1 * 6 + 166) $calc($1 * 20 -41) 12 15 10 10
    drawrect -nfer @ski $rgb(128,0,0) 1 $calc($1 * 6 + 169) $calc($1 * 20 -32) 7 4
    drawrect -ner @ski 0 1 $calc($1 * 6 + 169) $calc($1 * 20 -32) 7 4
    drawline -nr @ski 0 1 $calc($1 * 6 + 163) $calc($1 * 20 -26) $calc($1 * 6 + 169) $calc($1 * 20 -22) $calc($1 * 6 + 170) $calc($1 * 20 -19)
    drawline -nr @ski 0 1 $calc($1 * 6 + 175) $calc($1 * 20 -26) $calc($1 * 6 + 182) $calc($1 * 20 -22) $calc($1 * 6 + 182) $calc($1 * 20 -19)
    drawdot -nr @ski 0 1 $calc($1 * 6 + 171) $calc($1 * 20 -22) $calc($1 * 6 + 183) $calc($1 * 20 -22) $calc($1 * 6 + 172) $calc($1 * 20 -23) $calc($1 * 6 + 184) $calc($1 * 20 -23) $calc($1 * 6 + 172) $calc($1 * 20 -21) $calc($1 * 6 + 184) $calc($1 * 20 -21) $calc($1 * 6 + 174) $calc($1 * 20 -38) $calc($1 * 6 + 175) $calc($1 * 20 -39) $calc($1 * 6 + 169) $calc($1 * 20 -38) $calc($1 * 6 + 168) $calc($1 * 20 -39) $calc($1 * 6 +167) $calc($1 * 20 -40) $calc($1 * 6 +176) $calc($1 * 20 -40)
    drawline -nr @ski 0 1 $calc($1 * 6 + 165) $calc($1 * 20 -13) $calc($1 * 6 + 162) $calc($1 * 20 -2) $calc($1 * 6 + 165) $calc($1 * 20 -2)
    drawline -nr @ski 0 1 $calc($1 * 6 + 172) $calc($1 * 20 -13) $calc($1 * 6 + 175) $calc($1 * 20 -2) $calc($1 * 6 + 178) $calc($1 * 20 -2)
    drawdot -nr @ski $rgb(255,255,0) 1 $calc($1 * 6 + 171) $calc($1 * 20 -32) $calc($1 * 6 + 173) $calc($1 * 20 -32) $calc($1 * 6 + 171) $calc($1 * 20 -29) $calc($1 * 6 + 173) $calc($1 * 20 -29)
    drawdot -nr @ski $rgb(255,0,0) 1 $calc($1 * 6 + 170) $calc($1 * 20 -35) $calc($1 * 6 + 174) $calc($1 * 20 -35)
  }
  elseif ($1 >= 5) {
    drawrect -nfer @ski $rgb(175,175,175) 1 186 $iif($1 == 8,48,50) 14 20
    drawrect -ner @ski 0 1 186 $iif($1 == 8,48,50) 14 20
    drawrect -nfdr @ski $rgb(175,175,175) 1 187 $iif($1 == 8,37,39) 12 15 10 10
    drawrect -ndr @ski 0 1 187 $iif($1 == 8,37,39) 12 15 10 10
    drawrect -nfer @ski $rgb(225,0,0) 1 190 $iif($1 == 8,46,48) 7 4
    drawrect -ner @ski 0 1 190 $iif($1 == 8,46,48) 7 4
    drawline -nr @ski 0 1 187 $iif($1 == 8,52,54) 180 $iif($1 == 8,48,50) 180 $iif($1 == 8,40,42) 177 $iif($1 == 8,40,42)
    drawline -nr @ski 0 1 199 $iif($1 == 8,52,54) 206 $iif($1 == 8,48,50) 206 $iif($1 == 8,40,42) 209 $iif($1 == 8,40,42)
    drawdot -nr @ski 0 1 179 $iif($1 == 8,38,40) 179 $iif($1 == 8,39,41) 181 $iif($1 == 8,39,41) 205 $iif($1 == 8,39,41) 207 $iif($1 == 8,39,41) 207 $iif($1 == 8,38,40) 195 $iif($1 == 8,40,42) 196 $iif($1 == 8,39,41) 197 $iif($1 == 8,38,40) 190 $iif($1 == 8,40,42) 189 $iif($1 == 8,39,41) 188 $iif($1 == 8,38,40) 190 $iif($1 == 8,46,48)
    drawline -nr @ski 0 1 189 $iif($1 == 8,65,67) 186 $iif($1 == 8,76,78) 183 $iif($1 == 8,76,78)
    drawline -nr @ski 0 1 196 $iif($1 == 8,65,67) 199 $iif($1 == 8,76,78) 202 $iif($1 == 8,76,78)
    drawdot -nr @ski $rgb(255,255,0) 1 192 $iif($1 == 8,47,49) 194 $iif($1 == 8,47,49) 193 $iif($1 == 8,48,50) 195 $iif($1 == 8,48,50)
    drawdot -nr @ski $rgb(255,0,0) 1 191 $iif($1 == 8,43,45) 195 $iif($1 == 8,43,45)
    drawtext -r @ski 0 Arial 12 128 200 (Press F2 to play again.)
    if ($1 == 12) hdec ski yeti 8
    if ($hget(ski,time)) hdel ski time
  }
}
;-----===== T R E E
Alias -l ski.tree {
  if ($isid && $remove($1-4,$chr(32),$chr(44)) isnum) {
    if ($hget(ski,pic) == -1) return $onpoly(5,3,$1,$2,$calc($1 +20),$2,$calc($1 +20),$calc($2 +13),$calc($1 +11),$calc($2 +28),$calc($1 +4),$calc($2 +28), $3,$calc($4 +24),$calc($3 +19),$calc($4 +24),$calc($3 +10),$4)
    return $onpoly(6,3,$1,$2,$calc($1 +20),$2,$calc($1 +20),$calc($2 +20),$calc($1 +15),$calc($2 +28),$calc($1 +12),$calc($2 +28),$1,$calc($2 +5), $3,$calc($4 +24),$calc($3 +19),$calc($4 +24),$calc($3 +10),$4)
  }
}
;-----===== M E N U / S T U F F =====-----
menu channel,nicklist,query,status {
  Ski:$iif($window(@ski),window -a @ski,ski.pic)
}
menu @ski {
  leave:if (!$hget(ski,paus)) && (!$hget(ski,yeti)) { .timerSKI off }
  mouse:{
    if ($mouse.y > 50 && $mouse.x > 200 && $hget(ski,pic) < 1) { hadd ski pic 1 }
    elseif ($mouse.y > 50 && $mouse.x < 200 && $hget(ski,pic) > -1) { hadd ski pic -1 }
    elseif ($mouse.y > 50) && (!$timer(ski)) && (!$hget(ski,paus)) { .timerSKI -m 0 50 ski.go $!ski.m }
    elseif ($mouse.y <= 50) && ($timer(ski)) && (!$hget(ski,yeti)) { .timerSKI off }
  }
  sclick:hadd -z ski jump 1
  New Game:ski.pic
  $iif($hget(ski,paus),Continue,Pause):ski.pause
  -
  Slalom:ski.pic s
  Normal:ski.pic
  Hardcore:ski.pic h
  -
  Help:$iif($exists(" $+ $scriptdirskireadme.html"),run $+(",$scriptdirskireadme.html"),var %bla = $input(Unable to open the SKI-Helpfile: $crlf $+ skireadme.html is missing in $scriptdir,owd,Error))
  -
  Exit:{
    window -c @ski
    .timerSKI off
    window -c @ski.buf
    window -c @ski.map
    if ($hget(ski)) hfree ski
  }
}


on *:Keydown:@ski:80:ski.pause
Alias F2 if ($window(@ski)) ski.pic
Alias F3 if ($window(@ski)) ski.pause

on *:CLOSE:@ski:{
  .timerSKI off
  hfree ski
  window -c @ski.buf
  window -c @ski.map
}
on *:UNLOAD:{
  .timerSKI off
  if ($hget(ski)) hfree ski
  if ($window(@ski)) window -c @ski
  if ($window(@ski.buf)) window -c @ski.buf
}

;-----===== S N I P P E T =====-----
;$onrect(x1,y1,w1,h1,x2,y2,w2,h2)
Alias onrect {
  if ($isid) {
    return $onpoly(4,4,$1,$2,$calc($1 + $3),$2,$calc($1 + $3),$calc($2 + $4),$1,$calc($2 + $4), $5,$6,$calc($5 + $7),$6,$calc($5 + $7),$calc($6 + $8),$5,$calc($6 + $8))
} }