Guest User

Untitled

a guest
Jul 2nd, 2013
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.72 KB | None | 0 0
  1. local camx
  2. local camy
  3. local HPDISPLAY = true
  4.  
  5. function findbit(p)
  6.     return 2 ^ (p - 1)
  7. end
  8.  
  9. function hasbit(x, p)
  10.     return x % (p + p) >= p
  11. end
  12.  
  13. local function hex(val)
  14.     val = string.format("%X",val)
  15.     if string.len(val) == 1 then
  16.         val = "0" .. val
  17.     end
  18.     return val
  19. end
  20.  
  21. memory.usememorydomain("BUS")
  22.  
  23. local function camera()
  24.     camx = mainmemory.read_u16_le(0x1E16)
  25.     camy = mainmemory.read_u16_le(0x1E18)
  26. end
  27.  
  28. local function player()
  29.     local sword = 0x19C0
  30.     local x = mainmemory.read_u16_le(0x19A4 + 2) - camx
  31.     local y = mainmemory.read_u16_le(0x19A4 + 4) - camy
  32.     local xrad = mainmemory.read_u8(0x019BA)
  33.     local yrad = mainmemory.read_u8(0x019BC)
  34.     gui.drawBox(x+xrad,y+yrad,x-xrad,y-yrad,0xFF0000FF,0x300000FF) -- blue
  35.    
  36.     -- Player sword:
  37.     if mainmemory.read_u8(sword + 0xE) ~= 0 then
  38.         x = mainmemory.read_u16_le(sword + 2) - camx
  39.         y = mainmemory.read_u16_le(sword + 4) - camy
  40.         xrad = mainmemory.read_u8(sword + 0x16)
  41.         yrad = mainmemory.read_u8(sword + 0x18)
  42.         gui.drawBox(x+xrad,y+yrad,x-xrad,y-yrad,0xFFFFFFFF,0x30FFFFFF) -- white
  43.     end
  44. end
  45.  
  46. local function findhp(base)
  47.     local offset = mainmemory.read_u8(base + 0xC)
  48.     local ptr = memory.read_u16_le(0x838010 + offset)
  49.     local hp = mainmemory.read_u16_le(ptr + 0x22)
  50.     return hp
  51. end
  52.  
  53. local function objects()
  54.     for i = 2,31,1 do
  55.         local obase = mainmemory.read_u16_le(0x136E + (i * 2))
  56.         local otype = mainmemory.read_u16_le(obase)
  57.  
  58.         if obase ~= 0 then
  59.             if mainmemory.read_u8(obase + 0x0E) ~= 0 and mainmemory.read_u16_le(obase) ~= 01 and obase ~= 0x19A4 then
  60.                 local x = mainmemory.read_u16_le(obase + 2) - camx
  61.                 local y = mainmemory.read_u16_le(obase + 4) - camy
  62.                 local xrad = mainmemory.read_u8(obase + 0x16)
  63.                 local yrad = mainmemory.read_u8(obase + 0x18)
  64.                 gui.drawBox(x+xrad,y+yrad,x-xrad,y-yrad,0xFFFF0000,0x30FF0000)
  65.                 if HPDISPLAY == true then
  66.                     local hp = findhp(obase)
  67.                     gui.text(x,y,"HP:" .. hp)
  68.                 end
  69.             end
  70.         end
  71.     end
  72.  
  73.     local pjbase
  74.     --projectiles
  75.     for i = 0,31, 1 do
  76.         pjbase = 0x1BD4 + (0x12 * i)
  77.         local pj_type = mainmemory.read_u8(pjbase)
  78.         local pj_xrad = 0
  79.         local pj_yrad = 0
  80.         if pj_type > 0 then
  81.             local pj_x = mainmemory.read_u16_le(pjbase + 2) - camx
  82.             local pj_y = mainmemory.read_u16_le(pjbase + 4) - camy
  83.            
  84.             if pj_type == 0x81 or pj_type == 1 then
  85.                 pj_xrad = 4
  86.                 pj_yrad = 4
  87.                 gui.drawBox(pj_x+pj_xrad,pj_y+pj_yrad,pj_x-pj_xrad,pj_y-pj_yrad,0xFFFF0000,0x30FF0000) -- red
  88.             else
  89.                 pj_xrad = mainmemory.read_u8(pjbase + 0x16)
  90.                 pj_yrad = mainmemory.read_u8(pjbase + 0x18)
  91.                 gui.drawBox(pj_x+pj_xrad,pj_y+pj_yrad,pj_x-pj_xrad,pj_y-pj_yrad,0xFFFFFFFF,0x30FFFFFF) -- white
  92.             end
  93.         end
  94.     end
  95.    
  96. end
  97.  
  98. while true do
  99.     camera()
  100.     player()
  101.     objects()
  102.     emu.frameadvance()
  103. end
Advertisement
Add Comment
Please, Sign In to add comment