Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[ hacked together by true for pwn adventure z contest ]]--
- -- user variables
- show_monster_list = false
- -- addresses
- ADDR_ENEMY_TP = 0x0363
- ADDR_ENEMY_X = 0x036b
- ADDR_ENEMY_HP = 0x037b
- ADDR_ENEMY_Y = 0x0373
- ADDR_ITEM_X = 0x0598
- ADDR_ITEM_Y = 0x05a8
- ADDR_ITEM_ID = 0x0588
- ADDR_ITEM_TP = 0x05e8
- ADDR_ITEM_CT = 0x05f8
- ADDR_SCRN_X = 0x00c0
- ADDR_SCRN_Y = 0x00c1
- ADDR_ENEMY_KI = 0x0025
- ADDR_GEN_BASE = 0x04c6
- -- lists
- items = {
- "axe",
- "sword",
- "pistol",
- "smg",
- "lmg",
- "ak",
- "shotgun",
- "sniper",
- "handcannon",
- "rocket",
- "grenade",
- "bandage",
- "healthkit",
- "fuel",
- "sticks",
- "cloth",
- "shirt",
- "pants",
- "metal",
- "gem",
- "gunpowder",
- "campfire",
- "sneakers",
- "wizardhat",
- "armor",
- "tinfoilhat",
- "ghillie",
- "coffee",
- "wine"
- }
- itemtype_zombie = {
- "none", "stick",
- "cloth", "shirt", "pants", "stick",
- "gunpowder", "gunpowder", "gunpowder", "gunpowder",
- "metal", "metal", "metal", "metal",
- "gem", "stick"
- }
- -- rng "noise" table
- rand = {
- 0xcb,0x38,0x35,0xa2,0x7b,0x12,0xc2,0xe8,0x8c,0x30,0x99,0x10,0x9b,0xdc,0x0b,0x67,
- 0x61,0x65,0xe5,0xad,0xb4,0x2c,0xcf,0xf7,0xd5,0x22,0x64,0xbd,0x4a,0x2f,0x71,0x4c,
- 0x45,0xe6,0xb3,0x0c,0xa3,0x43,0x80,0xd3,0x23,0xfe,0x6e,0x96,0x74,0x2d,0x3c,0xac,
- 0x8f,0xc9,0x00,0x29,0xb8,0x0a,0xbc,0xd4,0x2a,0x34,0xe1,0xaf,0x1a,0x07,0xbb,0x5c,
- 0x85,0x91,0xb0,0x75,0xf4,0x44,0x1d,0xf3,0xa4,0xe9,0x84,0xa9,0x62,0x86,0x59,0x53,
- 0x6f,0x77,0x4d,0xd8,0x01,0x7c,0x05,0xf0,0x7d,0x28,0x40,0x66,0x9e,0x1c,0xfa,0x79,
- 0xde,0x93,0x50,0xf9,0xd6,0xc3,0x6a,0x3e,0xaa,0x87,0xdd,0x1b,0x37,0x57,0x1f,0x90,
- 0xcd,0x3b,0x7f,0xda,0x19,0xe0,0xa0,0x25,0xf6,0xd0,0x03,0xc5,0xfb,0x5b,0xab,0x94,
- 0x08,0xa6,0x18,0xce,0x0e,0x55,0xb7,0x21,0x15,0xc0,0x72,0xfc,0xae,0x63,0xc4,0x97,
- 0x4b,0x04,0x6d,0x2b,0x83,0x4e,0x11,0x02,0xed,0x3f,0xb9,0x41,0x5e,0x13,0x51,0xee,
- 0xf2,0x0f,0x6b,0x3d,0xc7,0x46,0x60,0x78,0xb5,0xbf,0xa5,0x5f,0x17,0x58,0x73,0xb6,
- 0x9a,0x9c,0xf5,0x33,0x82,0x54,0xec,0x49,0x52,0x0d,0xd9,0x47,0xe4,0x31,0xfd,0xd7,
- 0x48,0x20,0xcc,0x92,0x5a,0x7a,0x39,0xef,0x36,0x9d,0xf8,0x27,0x56,0xea,0x24,0x32,
- 0x16,0x8e,0xc6,0x9f,0xa1,0x8b,0xa8,0xb1,0xc1,0x76,0xf1,0x1e,0x3a,0x8d,0xb2,0x69,
- 0x70,0x98,0x2e,0x5d,0xdf,0x42,0x68,0x06,0xdb,0x26,0xe7,0x89,0xd1,0xa7,0x88,0x09,
- 0x6c,0x8a,0x81,0xeb,0x95,0xe2,0xca,0xc8,0xd2,0xff,0x4f,0xe3,0xbe,0x7e,0x14,0xba
- }
- --------
- -- emulates the result of the random function in the game...literal interpretation from the code
- function rand_itemdrop(idx, killval)
- local temp = {0, 0}
- local sx = memory.readbyte(ADDR_SCRN_X)
- local sy = memory.readbyte(ADDR_SCRN_Y)
- local kidx = memory.readbyte(ADDR_ENEMY_KI) + idx
- local genb = {
- memory.readbyte(ADDR_GEN_BASE),
- memory.readbyte(ADDR_GEN_BASE + 1)
- }
- temp[1] = sx + genb[1]
- temp[2] = sy + genb[2]
- temp[1] = rand[((((kidx + killval) ) + temp[1]) % 256) + 1]
- temp[2] = rand[((((kidx + killval) * 2) + temp[2]) % 256) + 1]
- ret = bit.bxor(temp[1], temp[2])
- return (ret % 16) + 1
- end
- while true do
- local ytext_e = 8
- local ytext_i = 8
- if show_monster_list then
- gui.text(00, ytext_e, "EnX")
- gui.text(32, ytext_e, "EnY")
- gui.text(64, ytext_e, "EnHP")
- gui.text(96, ytext_e, "EnTy")
- end
- for i = 0, 7 do
- local etype = memory.readbyte(i + ADDR_ENEMY_TP)
- if (etype ~= 255) then
- ytext_e = ytext_e + 8
- local ex = memory.readbyte(i + ADDR_ENEMY_X)
- local ey = memory.readbyte(i + ADDR_ENEMY_Y)
- local hp = memory.readbyte(i + ADDR_ENEMY_HP)
- local ki = memory.readbyte(i + ADDR_ENEMY_KI)
- -- left monster list
- if show_monster_list then
- gui.text(00, ytext_e, tostring(ex))
- gui.text(32, ytext_e, tostring(ey))
- gui.text(64, ytext_e, tostring(hp))
- gui.text(96, ytext_e, tostring(etype))
- end
- -- hp and next item drop overlay
- gui.text(ex + 11, ey + 20, tostring(hp))
- gui.text(ex + 11, ey + 27, itemtype_zombie[rand_itemdrop(i, 8)])
- end
- end
- for i = 0, 15 do
- ytext_i = ytext_i + 8
- ix = memory.readbyte(i + ADDR_ITEM_X)
- iy = memory.readbyte(i + ADDR_ITEM_Y)
- id = memory.readbyte(i + ADDR_ITEM_ID)
- it = memory.readbyte(i + ADDR_ITEM_TP) + 1
- ic = memory.readbyte(i + ADDR_ITEM_CT)
- -- dropped item overlay
- if id == 18 then
- if ic == 1 then
- gui.text(ix + 8, iy + 14, items[it])
- else
- gui.text(ix + 8, iy + 14, items[it].."("..tostring(ic)..")")
- end
- end
- end
- emu.frameadvance()
- end
Advertisement
Add Comment
Please, Sign In to add comment