Advertisement
Iire

n Map Viewer v1.0

Jul 8th, 2014
690
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 7.94 KB | None | 0 0
  1. on *:LOAD:{
  2.   if !$isdir(MapViewer) {
  3.     mkdir MapViewer
  4.     mkdir MapViewer\graphics
  5.     mvgfx
  6.   }
  7.   echo -gaec other * N Map Viewer loaded! To begin, type /mapviewer and press enter, or select Map Viewer from the right click popup menu.
  8. }
  9. on *:SOCKOPEN:mv,*:{
  10.   if !$sockerr {
  11.     sockwrite -nt $sockname GET $+(/30487/115/0/,$gettok($sockname,2,44))
  12.     sockwrite -nt $sockname Host: $sock($sockname).addr
  13.     sockwrite -nt $sockname $crlf
  14.   }
  15.   else echo -gaec Other * Error: $sock($sockname).wsmsg
  16. }
  17. on *:SOCKREAD:mv,*:{
  18.   if !$sockerr {
  19.     sockread &x
  20.     if $bvar(&x,0) { bwrite $qt($+(MapViewer\graphics\,$gettok($sockname,-1,47))) -1 -1 &x }
  21.   }
  22.   else {
  23.     .timer 1 0 noop $!input( Unable to download $gettok(abc/tiles.png,-1,47) $+ .$&
  24.       Please try again later $!+ $!chr(44) or ask Meta for a copy. ,dow,Error)
  25.     halt
  26.   }
  27. }
  28. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  29. menu status,nicklist,channel,query,menubar {
  30.   -
  31.   $iif($window(@MapViewer),$style(2)) $+ Map Viewer:mapviewer
  32. }
  33. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  34. alias -l mvgfx {
  35.   if $isid {
  36.     var %file $+(MapViewer\graphics\,$1.png)
  37.     ;                        ,-- Is this hacky? Should I be using if or $iif() instead? Meh... Doesn't matter, it works. Shut up.
  38.     return $replacex($prop 0,w 0,$pic(%file).width,h 0,$pic(%file).height,$prop 0,$file(%file).longfn)
  39.   }
  40.   else {
  41.     if !$isfile(MapViewer\graphics\tiles.png) { sockopen mv,f5283850/tiles.png z5.ifrm.com 80 }
  42.     if !$isfile(MapViewer\graphics\objects.png) { sockopen mv,f5283849/objects.png z5.ifrm.com 80 }
  43.   }
  44. }
  45.  
  46. alias -l mvdir {
  47.   clear -l @MapViewer
  48.   hadd mapviewer dir $1-
  49.   aline -l @MapViewer < $gettok($1-,-1,92)
  50.   aline -l @MapViewer $str(-,20)
  51.   noop $finddir($1-,*,0,1,aline -l @MapViewer > $gettok($1-,-1,92))
  52.   aline -l @MapViewer $str(-,20)
  53.   writeini $qt(MapViewer\config.ini) config mapdir $1-
  54.   noop $findfile($1-,*.txt,0,1,aline -l @MapViewer $chr(9) $+ $gettok($1-,-1,92))
  55.   drawrect -rf @MapViewer 13683402 1 24 24 744 552
  56.   drawrect -r @MapViewer 8943993 24 0 0 792 600
  57. }
  58.  
  59. alias -l mvrgx return /^(?:\$(?:(?:[^#]*)#){3})?([^|]+)\|([^|#]*)[#|]?/g
  60. ;([^#]*)
  61.  
  62. alias mapviewer {
  63.   if !$window(@MapViewer) {
  64.     mvgfx
  65.     window -Cdfl22p -t2 +fnt @MapViewer -1 -1 792 600
  66.     window -dfhp +dL @MapViewer_TILES -1 -1 816 24
  67.     window -dfhp +dL @MapViewer_OBJECTS -1 -1 988 26
  68.  
  69.     drawfill -rs @MapViewer 13683402 $color($color(background)) 0 0
  70.     drawrect -r @MapViewer 8943993 24 0 0 792 600
  71.  
  72.     drawpic -c @MapViewer_TILES 0 0 $qt($mvgfx(tiles))
  73.     drawpic -c @MapViewer_OBJECTS 0 0 $qt($mvgfx(objects))
  74.  
  75.     hmake mapviewer 100
  76.     if $readini(MapViewer\config.ini,n,config,mapdir) { mvdir $v1 }
  77.     else drawtext -nr @MapViewer 13117480 FixedSys -24 36 36 Right click to select map directory.
  78.   }
  79.   else window -a @MapViewer
  80. }
  81.  
  82. menu @MapViewer {
  83.   lbclick:{
  84.     if $regex($sline(@MapViewer,1),^\t(.+)$) {
  85.       var %file $+($hget(mapviewer,dir),$regml(1))
  86.       renwin @MapViewer @MapViewer - %file
  87.       if $file(%file).size > 0 {
  88.         bread -t $qt(%file) 0 $file(%file).size &file
  89.         hadd -bc mapviewer file &file
  90.         drawrect -nrf @MapViewer 13683402 1 24 24 744 552
  91.         if !$hfind(mapviewer,$mvrgx,1,r).data { drawtext -nr @MapViewer 2631880 FixedSys -24 36 36 INVALID OR CORRUPT MAP DATA! }
  92.         else {
  93.           var %t 1
  94.  
  95.           bset &tiles 1 $regsubex(t,$left($regml(1),713),/(.)/g,$calc($asc(\t) - 47) $chr(32))
  96.           if $regml(2) != $null {
  97.  
  98.             bset -t &objects 1 $v1
  99.  
  100.             var %o 1, %x
  101.             while $bvar(&objects,0) && $gettok($bvar(&objects,1-).text,1,33) != $null {
  102.  
  103.               var %object, %osize, %coord, %dir, %switch, %coord2, %osize2, %drone, %door, %ddir, %dpos, %launchpad
  104.               var %q $v1, %object $base($gettok(%q,1,94),10,13), %props $gettok(%q,2,94), %x $gettok(%props,1,44), %y $gettok(%props,2,44)
  105.  
  106.               if %object == 2 {
  107.                 %launchpad = $regsubex($gettok(%props,3,44) $gettok(%props,4,44),/\d\.\d+/g,0.5)
  108.                 %osize = $calc(27 + $findtok(-1 0:-0.5 -0.5:0 -1:0.5 -0.5:1 0:0.5 0.5:0 1,%launchpad,58) * 16) 0 16 16
  109.                 $iif($calc($gettok(%launchpad,1,32) * $gettok(%launchpad,2,32)),inc,dec) %x $calc($round($gettok(%launchpad,1,32),0) * 2)
  110.                 $iif($calc($gettok(%launchpad,1,32) * $gettok(%launchpad,2,32)),inc,dec) %y $calc($round($gettok(%launchpad,2,32),0) * 2)
  111.               }
  112.               elseif %object == 6 {
  113.                 %drone = $base($gettok(%props,5,44) $+ $gettok(%props,6,44),4,10)
  114.                 %osize = $calc(199 + %drone * 18) 0 18 18
  115.                 if %drone < 5 && $gettok(%props,4,44) {
  116.                   drawcopy -nt @MapViewer_OBJECTS 13683402 415 0 18 18 @MapViewer $calc(%x - 9) $calc(%y - 15)
  117.                 }
  118.               }
  119.               elseif %object == 7 {
  120.                 %dir = $gettok(%props,3,44)
  121.                 %osize = $calc(433 + %dir * 24) 0 24 24
  122.               }
  123.               elseif %object == 8 {
  124.                 %dir = $gettok(%props,3,44)
  125.                 %osize = $calc(529 + %dir * 19) 0 19 19
  126.               }
  127.               elseif %object == 9 {
  128.                 %ddir = $calc($replace($gettok(%props,3,44) + $gettok(%props,8,44) + $gettok(%props,9,44),-1,2))
  129.                 %door = $calc($gettok(%props,5,44)*24-1) $calc($gettok(%props,6,44)*24-1)
  130.  
  131.                 if $gettok(%props,7,44) {
  132.                   %osize = 913 0 8 8
  133.                   drawcopy -nt @MapViewer_OBJECTS 13683402 $calc(709 + 26 * %ddir) 0 26 26 @MapViewer %door
  134.                 }
  135.                 elseif $gettok(%props,4,44) {
  136.                   %osize = 921 0 6 6
  137.                   %dpos = $calc(795 + 25 * %ddir)
  138.                   drawcopy -nt @MapViewer_OBJECTS 13683402 $calc(813 + 25 * %ddir) 0 25 25 @MapViewer %door
  139.  
  140.                 }
  141.                 else drawcopy -nt @MapViewer_OBJECTS 13683402 $calc(605 + 26 * %ddir) 0 26 26 @MapViewer %door
  142.               }
  143.               elseif %object == B {
  144.                 %switch = $ceil($calc(%x - 6.5)) $ceil($calc(%y - 4.5)))
  145.                 %osize = 941 0 26 25
  146.                 drawcopy -nt @MapViewer_OBJECTS 13683402 967 0 13 9 @MapViewer %switch
  147.               }
  148.  
  149.               else %osize = $replacex(%object,0,0 0 7 7,1,7 0 20 20,3,155 0 14 13,4,169 0 12 13,5,181 0 18 20,A,927 0 14 13,C,980 0 8 9)
  150.  
  151.               if %dir == 1 { inc %y }
  152.               if %dir == 0 { inc %x }
  153.  
  154.               if %osize != $null { %coord = $ceil($calc(%x - ($gettok(%osize,3,32) / 2))) $ceil($calc(%y - ($gettok(%osize,4,32) / 2))) }
  155.               if %coord != $null {
  156.                 drawcopy -nt @MapViewer_OBJECTS 13683402 %osize @MapViewer $v1
  157.                 ;if %launchpad { drawtext -rt @MapViewer 0 calibri -7 %coord $v1 }
  158.               }
  159.  
  160.               ;inc %o
  161.               if $deltok($bvar(&objects,1-).text,1,33) != $null { bset -ct &objects 1 $v1 }
  162.               else bunset &objects
  163.             }
  164.           }
  165.           while $bvar(&tiles,%t) != $null {
  166.             drawcopy -nt @MapViewer_TILES 13683402 $calc(($v1 - 1) * 24) 0 24 24 $&
  167.               @MapViewer $calc($ceil($calc(%t / 23)) * 24) $calc($iif($calc(%t % 23),$v1,23) * 24) 24 24
  168.             inc %t
  169.           }
  170.         }
  171.         drawrect -nr @MapViewer 8943993 24 0 0 792 600
  172.         drawdot @MapViewer
  173.       }
  174.     }
  175.   }
  176.   dclick:{
  177.     if $regex($sline(@MapViewer,1),^\t(.+)$) { run notepad.exe $qt($+($hget(mapviewer,dir),$regml(1))) }
  178.     elseif $regex($sline(@MapViewer,1),^([<>]) (.+)$) {
  179.       var %dir $hget(MapViewer,dir)
  180.       mvdir $replace($regml(1),<,$deltok(%dir,-1,92),>,$+(%dir,$regml(2))) $+ \
  181.     }
  182.   }
  183.   -
  184.   Select Map Directory:{
  185.     if $sdir(*) { mvdir $v1 }
  186.   }
  187. }
  188.  
  189. on *:CLOSE:@MapViewer:{
  190.   if $hget(mapviewer) { hfree $v1 }
  191.   close -@ @MAPVIEWER_*
  192.   drawpic -c
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement