Path: blob/master/Assets/Lua/Genesis/Castlevania Bloodlines.lua
2 views
-------------------------------1----Castlevania Blood Lines----2-------------------------------34--Author Pasky1356---------------7----Toggles----8---------------9local draw_ehp = true -- Set to false to turn off HP display for enemies10local draw_php = true -- Set to false to turn off HP display for 1P11local draw_pproj = true --Set to false to turn off player projectiles1213local draw_ph = true -- Set to false to turn off player hitboxes14local draw_eh = true -- Set to false to turn off enemie hitboxes1516local infhp = true --Set to false to turn off infinite HP for the player171819local playerbase = 0xB30020local face = 0x2C21local php = 0x9C1122local weapon = 0xB48023local spear = 0x9CA724local enemybase = 0xB3802526local xcord = 0x1827local ycord = 0x1C2829303132local function playerhitbox()3334-------------------------35----Vulnerability box----36-------------------------37local facing = mainmemory.read_u8(playerbase+face)38local x = mainmemory.read_u16_be(playerbase+0x18)39local y = mainmemory.read_u16_be(playerbase+0x1C)40local xoff = mainmemory.read_s16_be(playerbase+0x34)41local yoff = mainmemory.read_s16_be(playerbase+0x36)42local xrad = mainmemory.read_u16_be(playerbase+0x38)43local yrad = mainmemory.read_u16_be(playerbase+0x3A)4445gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xF00000FF,0x300000FF)464748---------------------49----weapon hitbox----50---------------------51facing = mainmemory.read_u8(playerbase+face)5253x = mainmemory.read_u16_be(weapon+0x18)54y = mainmemory.read_u16_be(weapon+0x1C)55xoff = mainmemory.read_s16_be(weapon+0x34)56yoff = mainmemory.read_s16_be(weapon+0x36)57xrad = mainmemory.read_u16_be(weapon+0x38)58yrad = mainmemory.read_u16_be(weapon+0x3A)5960if mainmemory.read_u8(weapon+0x01) == 1 and mainmemory.read_u8(weapon+0x28) > 0 then61gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFFFFFF,0x40FFFFFF)62end6364end6566local function player_projectiles()6768local start = 0xC90069local base70local x71local y72local xoff73local yoff74local xrad75local yrad76local facing77local ehp78local oend = 3279local active = false8081for i = 0,oend,1 do82active = false83base = start + (i * 0x80)8485x = mainmemory.read_u16_be(base + xcord)86y = mainmemory.read_u16_be(base + ycord)8788if mainmemory.read_u8(base+1) == 1 then89active = true90end9192if y < 224 and y > 0 and x < 320 and x > 0 and active == true and (mainmemory.read_u8(base+0x45)) > 0 and mainmemory.read_u8(base+0x4F) > 0 and mainmemory.read_u8(base+0x28) == 1 then9394facing = mainmemory.read_u8(base+face)95x = mainmemory.read_u16_be(base+0x18)96y = mainmemory.read_u16_be(base+0x1C)97xoff = mainmemory.read_s16_be(base+0x34)98yoff = mainmemory.read_s16_be(base+0x36)99xrad = mainmemory.read_u16_be(base+0x38)100yrad = mainmemory.read_u16_be(base+0x3A)101102gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFFFFFF,0x40FFFFFF)103104gui.text((x-8) * xmult,(y+10) * ymult,"DMG: " .. mainmemory.read_u8(base+0x45))105end106107end108end109110local function playerinfo()111local x = mainmemory.read_u16_be(playerbase+xcord)112local y = mainmemory.read_u16_be(playerbase+ycord)113local hp = mainmemory.read_u8(php)114115if draw_php == true then116gui.text((x-12) * xmult,y * ymult,"HP: " .. hp)117end118119if draw_ph == true then120playerhitbox()121end122123if draw_pproj == true then124player_projectiles()125end126127end128129local function enemyinfo()130131local base132local x133local y134local xoff135local yoff136local xrad137local yrad138local facing139local ehp140local oend = 44141local active = false142143for i = 0,oend,1 do144145active = false146base = enemybase + (i * 0x80)147148x = mainmemory.read_u16_be(base + xcord)149y = mainmemory.read_u16_be(base + ycord)150151if mainmemory.read_u8(base+1) == 1 then152active = true153end154155local ehp = mainmemory.read_u8(base+0x55)156157if base ~= weapon then158159if y < 224 and y > 0 and x < 320 and x > 0 and active == true then160161if draw_ehp == true and ehp > 0 then162gui.text((x-10) * xmult,y * ymult,"HP: " .. ehp)163end164165--------------------166----Enemy Hitbox----167--------------------168169if draw_eh == true then170facing = mainmemory.read_u8(base+face)171x = mainmemory.read_u16_be(base+0x18)172y = mainmemory.read_u16_be(base+0x1C)173xoff = mainmemory.read_s16_be(base+0x34)174yoff = mainmemory.read_s16_be(base+0x36)175xrad = mainmemory.read_u16_be(base+0x38)176yrad = mainmemory.read_u16_be(base+0x3A)177gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFF0000,0x40FF0000)178end179180end181end182183end184185end186187188189local function infinitehp()190memory.writebyte(php,80)191end192193local function scaler()194xmult = client.screenwidth() / 320195ymult = client.screenheight() / 224196end197198while true do199scaler()200playerinfo()201enemyinfo()202if infhp == true then203infinitehp()204end205emu.frameadvance()206end207208209