Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Congo Caper's Collision Box Viewer
- -- Author: Pasky13
- camx = 0
- camy = 0
- memory.usememorydomain("CARTROM")
- function findbit(p)
- return 2 ^ (p - 1)
- end
- function hasbit(x, p)
- return x % (p + p) >= p
- end
- local function RetrieveBox(obase, switch)
- if switch == 1 then
- pointer = mainmemory.read_u8(obase + 0x19)
- elseif switch == 2 then
- pointer = mainmemory.read_u8(obase + 0x18)
- elseif switch == 3 then
- pointer = mainmemory.read_u8(obase + 0x1A)
- end
- local pointer = bit.lshift(pointer,3)
- local base = 0x66962
- local box = {0, 0, 0, 0 }
- box[1] = memory.read_s16_le(base + pointer) -- x1
- box[2] = memory.read_s16_le(base + pointer + 4) -- y1
- box[3] = memory.read_s16_le(base + pointer + 2) -- x2
- box[4] = memory.read_s16_le(base + pointer + 6) -- y2
- return box
- end
- local function camera()
- camx = mainmemory.read_u16_le(0x7E0427)
- camy = mainmemory.read_u16_le(0x7E0429)
- end
- local function player()
- local x = mainmemory.read_u16_le(0x23) - camx
- local y = mainmemory.read_u16_le(0x26) - camy
- local face = mainmemory.read_u8(0x2D)
- local box
- local box = RetrieveBox(0x20,1)
- if hasbit(face,findbit(7)) then
- gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box
- box = RetrieveBox(0x20,2)
- gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFFFFFFFF,0x35FFFFFF) -- Hit box
- else
- gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box
- box = RetrieveBox(0x20,2)
- gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFFFFFFFF,0x35FFFFFF) -- Hit box
- end
- end
- local function enemies()
- local ebase = 0x1100
- for i = 0,64,1 do
- base = ebase + (i * 0x40)
- if mainmemory.read_u8(base) > 0 then
- local x = mainmemory.read_u16_le(base + 3) - camx
- local y = mainmemory.read_u16_le(base + 6) - camy
- local face = mainmemory.read_u8(base + 0xD)
- local box = RetrieveBox(base,2)
- if hasbit(face,findbit(7)) then
- gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFFFF0000,0x35FF0000) -- Hit box
- box = RetrieveBox(base,1)
- gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box
- box = RetrieveBox(base,3)
- gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFF00FF00,0x3500FF00) -- Can be jumped on box
- else
- gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFFFF0000,0x35FF0000) -- Hit box
- box = RetrieveBox(base,1)
- gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box
- box = RetrieveBox(base,3)
- gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFF00FF00,0x3500FF00) -- Can be jumped on box
- end
- end
- end
- end
- local function scaler()
- xm = client.screenwidth() / 256
- ym = client.screenheight() / 224
- end
- while true do
- scaler()
- camera()
- player()
- enemies()
- emu.frameadvance()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement