Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 18th, 2010 | Syntax: None | Size: 2.96 KB | Hits: 33 | Expires: Never
Copy text to clipboard
  1. alias wolf3d {
  2.   if ($window(@wolf3d)) window -c @wolf3d
  3.   if ($hget(wolf3d)) .hfree wolf3d
  4.  
  5.   .hmake wolf3d 10
  6.   hadd wolf3d wolf.x 9
  7.   hadd wolf3d wolf.y 9
  8.   hadd wolf3d wolf.a 0
  9.   wolf3d_map
  10.  
  11.   window -aBCdfp @wolf3d -1 -1 120 120
  12.   wolf3d_drawmap
  13. }
  14. alias -l wolf3d_map {
  15.   hadd wolf3d wolf.map.w 18
  16.   hadd wolf3d wolf.map.h 18
  17.   hadd wolf3d wolf.map.1 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
  18.   hadd wolf3d wolf.map.2 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  19.   hadd wolf3d wolf.map.3 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  20.   hadd wolf3d wolf.map.4 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  21.   hadd wolf3d wolf.map.5 1.0.0.0.3.0.0.0.0.0.0.0.2.0.0.0.0.1
  22.   hadd wolf3d wolf.map.6 1.0.0.0.3.0.0.0.0.0.0.0.2.0.0.0.0.1
  23.   hadd wolf3d wolf.map.7 1.0.0.0.3.0.0.0.0.0.0.0.2.0.0.0.0.1
  24.   hadd wolf3d wolf.map.8 1.0.0.0.3.0.0.0.0.0.0.0.0.0.0.0.0.1
  25.   hadd wolf3d wolf.map.9 1.0.0.0.3.0.0.0.0.0.0.0.0.0.0.0.0.1
  26.   hadd wolf3d wolf.map.10 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  27.   hadd wolf3d wolf.map.11 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  28.   hadd wolf3d wolf.map.12 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  29.   hadd wolf3d wolf.map.13 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  30.   hadd wolf3d wolf.map.14 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  31.   hadd wolf3d wolf.map.15 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  32.   hadd wolf3d wolf.map.16 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  33.   hadd wolf3d wolf.map.17 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
  34.   hadd wolf3d wolf.map.18 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
  35. }
  36.  
  37. alias -l wolf3d_drawmap {
  38.   var %x 0, %xm 120,%c,%s,%x2,%y2,%x1,%y1,%vx,%vy,%k,%3
  39.   drawrect -frn @wolf3d 13107200 0 0 0 120 60
  40.   drawrect -frn @wolf3d 65280 0 0 60 120 60
  41.   while (%x < %xm) {
  42.     %c = $cos($hget(wolf3d,wolf.a))
  43.     %s = $sin($hget(wolf3d,wolf.a))
  44.     %x2 = 1
  45.     %y2 = $calc(0.5 * (120 / 2 - %x) /120)
  46.     %x1 = $calc(%x2 * %c - %y2 * %s + $hget(wolf3d,wolf.x))
  47.     %y1 = $calc(%x2 * %s + %y2 * %c + $hget(wolf3d,wolf.y))
  48.     %vx = %x1 - $hget(wolf3d,wolf.x)
  49.     %vy = %y1 - $hget(wolf3d,wolf.y)
  50.     %k = 0.5
  51.     while (1) {
  52.       if ($token($hget(wolf3d,wolf.map. $+ $int($calc($hget(wolf3d,wolf.y) + %k * %vy))),$int($calc($hget(wolf3d,wolf.x) + %k * %vx)),46)) break
  53.       inc %k 0.5
  54.     }
  55.     %3 = $int($calc((120 - 120/(2* %k))/2))
  56.     drawline -nr @wolf3d 8421504 1 %x %3 %x $int($calc(%3 + 120 / (2 * %k)))
  57.     inc %x
  58.   }
  59.   drawdot @wolf3d
  60. }
  61.  
  62. on *:keydown:@wolf3d:37,38,39,40:{
  63.   if ($keyval == 38) { hinc wolf3d wolf.x $calc($cos($hget(wolf3d,wolf.a)) / 4) | hinc wolf3d wolf.y $calc($sin($hget(wolf3d,wolf.a)) / 4)  }
  64.   elseif ($keyval == 40) { hdec wolf3d wolf.x $calc($cos($hget(wolf3d,wolf.a)) / 4) | hdec wolf3d wolf.y $calc($sin($hget(wolf3d,wolf.a)) / 4)  }
  65.   elseif ($keyval == 37) hinc wolf3d wolf.a 0.2
  66.   elseif ($keyval == 39) hdec wolf3d wolf.a 0.2
  67.   wolf3d_drawmap
  68. }
  69.  
  70. alias rpos return $regsubex($1,/(-?\d+)-(-?\d+)/g,$regsubex(x,$str(.,$calc($iif(\2 > \1,\2 - \1,\1 - \2) + 1)),/./g,$iif( [[ \2 ]] > [[ \1 ]] , $calc( $v2 + [[  \ $+ n ]] - 1),$calc( $v2 - [[  \ $+ n ]] + 1)) $chr(32)))