vcbfm

NES games_Mighty Final Fight 快打旋风_显示血量

Oct 20th, 2024 (edited)
33
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.50 KB | Source Code | 0 0
  1. --2024.10.12
  2. --首发:http://forum.cheatmaker.org/
  3. --显示血量.
  4.  
  5. -- 定义内存地址和内存类型
  6. local playerHpAddress = 0x3A
  7. local playerXAddressLow = 0x360  
  8. local playerXAddressHigh = 0x380
  9. local playerYAddress = 0x3C0
  10. local nes_screen_x = 0x25
  11. local memoryType = emu.memType.nesInternalRam
  12.  
  13. -- 敌人1的内存地址
  14. local enemy1HpAddress = 0x49C
  15. local enemy1XAddressLow = 0x36C  
  16. local enemy1XAddressHigh = 0x38C  
  17. local enemy1YAddress = 0x3CC
  18.  
  19. -- 敌人2的内存地址
  20. local enemy2HpAddress = 0x49D
  21. local enemy2XAddressLow = 0x36D  
  22. local enemy2XAddressHigh = 0x38D  
  23. local enemy2YAddress = 0x3CD
  24.  
  25. -- 敌人状态地址
  26. local enemyStatusAddress = 0x031C  -- 0x0: 敌人死亡, 0x80: 敌人存活
  27.  
  28. local hpOffsetX = -6
  29. local hpOffsetY = -25  
  30.  
  31. emu.addEventCallback(function()
  32.  
  33.     local playerHp = emu.read(playerHpAddress, memoryType)
  34.     local playerXLow = emu.read(playerXAddressLow, memoryType)
  35.     local playerXHigh = emu.read(playerXAddressHigh, memoryType)
  36.     local playerY = emu.read(playerYAddress, memoryType)
  37.     local screen_x = emu.read(nes_screen_x, memoryType)
  38.    
  39.     local playerX
  40.     local combinedX = playerXLow + playerXHigh * 256  
  41.     if playerXLow > screen_x then
  42.         playerX = playerXLow - screen_x
  43.     elseif screen_x > playerXLow then
  44.         playerX = (playerXHigh == 1) and (combinedX - screen_x) or (playerXLow + 256 - screen_x)
  45.     else
  46.         playerX = playerXLow  
  47.     end
  48.  
  49.     local hpTextX = playerX + hpOffsetX
  50.     local hpTextY = playerY + hpOffsetY
  51.    
  52.  
  53.     local enemy1Hp = emu.read(enemy1HpAddress, memoryType)
  54.     local enemy1XLow = emu.read(enemy1XAddressLow, memoryType)
  55.     local enemy1XHigh = emu.read(enemy1XAddressHigh, memoryType)
  56.     local enemy1Y = emu.read(enemy1YAddress, memoryType)
  57.    
  58.     local enemy1X
  59.     local combinedX1 = enemy1XLow + enemy1XHigh * 256
  60.     if enemy1XLow > screen_x then
  61.         enemy1X = enemy1XLow - screen_x
  62.     elseif screen_x > enemy1XLow then
  63.         enemy1X = (enemy1XHigh == 1) and (combinedX1 - screen_x) or (enemy1XLow + 256 - screen_x)
  64.     else
  65.         enemy1X = enemy1XLow
  66.     end
  67.    
  68.     local enemy1HpTextX = enemy1X + hpOffsetX
  69.     local enemy1HpTextY = enemy1Y + hpOffsetY
  70.  
  71.     local enemy2Hp = emu.read(enemy2HpAddress, memoryType)
  72.     local enemy2XLow = emu.read(enemy2XAddressLow, memoryType)
  73.     local enemy2XHigh = emu.read(enemy2XAddressHigh, memoryType)
  74.     local enemy2Y = emu.read(enemy2YAddress, memoryType)
  75.  
  76.     local enemy2X
  77.     local combinedX2 = enemy2XLow + enemy2XHigh * 256
  78.     if enemy2XLow > screen_x then
  79.         enemy2X = enemy2XLow - screen_x
  80.     elseif screen_x > enemy2XLow then
  81.         enemy2X = (enemy2XHigh == 1) and (combinedX2 - screen_x) or (enemy2XLow + 256 - screen_x)
  82.     else
  83.         enemy2X = enemy2XLow
  84.     end
  85.  
  86.     local enemy2HpTextX = enemy2X + hpOffsetX
  87.     local enemy2HpTextY = enemy2Y + hpOffsetY
  88.  
  89.     local enemyStatus = emu.read(enemyStatusAddress, memoryType)
  90.  
  91.  
  92.     if playerHp ~= 0 and playerHp ~= 255 then
  93.         emu.drawString(hpTextX, hpTextY, "" .. playerHp, 0xFFFFFF, 0xFF000000)
  94.     end
  95.  
  96.  
  97.     if enemy1Hp ~= 0 and enemy1Hp < 240 and (enemy1X > 38 and enemy1X < 252)  then
  98.         emu.drawString(enemy1HpTextX, enemy1HpTextY, "" .. enemy1Hp, 0xFFFFFF, 0xFF000000)
  99.     end
  100.  
  101.  
  102.     if enemy2Hp ~= 0 and enemy2Hp < 240 and  (enemy2X > 38 and enemy2X < 252)  then
  103.         emu.drawString(enemy2HpTextX, enemy2HpTextY, "" .. enemy2Hp, 0xFFFFFF, 0xFF000000)
  104.     end
  105.  
  106.  
  107.  
  108. end, emu.eventType.endFrame)
  109.  
  110.  
Tags: lua NES mesen2
Advertisement
Comments
Add Comment
Please, Sign In to add comment