Is this a pixel bot, because I know a good way to get an "approximite" full hp that I developed myself.
meh, i'll come up with a macromonkey script and post it here, how about that :]
Edit: Got it working.
The rest I'll keep for personal use, however I cannot get this to work fullscreen without bypassing HS and modifying some winapi conditions of the client.
But, here is how to read your hp value in windowed mode. Note, for this example you need to have the dragonica game client window positioned at 0,0. To overcome this you simply need to get the x,y value of the location of the client window, then to add that value to pixel read (so it works dynamically). For this example im not doing that for yall, learn how (or ask in MM forums fo rhelp )
anyways...
You can find MM at

Umm... not trying to advertise, its just a badass game macro system. lol
all thats left is creating a function to look at mp, then to create the key presses and conditions. Pretty easy, its pretty accurate, could use a bit of tweaking but meh.
For instance, you may be at 50% and it could report 49.78878787%, or like 47%. I've used this script in other games and it worked well enough anyways, and it should for dragonica
Code:
local game_win = win.Find("Dragonica Online (Client Ver : 1.0.8)", nil, 0,0, win.FIND_TILE_INSIDE)
--IMPORTANT: Change "GameWindowTitle" to the title of the window your game uses or this won't work
-- We could do without this, but I worked around the example pixel read of MM so I just use it.
function printf(...)
io.write(string.format(...))
end
-- Found this Online somewhere... Needed it to round out the health as it can be quite long.
function round(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
function ReadHp()
--128,762 to 181,762. There is 53 pixels, so 53 == 100%
local sX = 475 -- Starting Pixel
local eX = 762 -- Ending Pixel
local Row = 743 -- The row we'll use
local tHP = 287 -- Total Hp
local xNum = 1 -- Just a counter for whichever pixel we are on
local gHP = 0 -- Good Hp
local bHP = 0 -- Bad Hp, not used, but it places a countable value of areas where your hp is "not". Such as when the health bar changes color as it "decreases".
local cR = 236 -- Your red, green, and blue value of your target bar pixel color
local cG = 76
local cB = 44
-- We increase the starting pixel and read that pixel each round of the loop
while sX < eX do
local R,G,B = win.GetPixel(fWin, sX, Row)
cColor = color.RGB(R,G,B)
if R then -- if there is color data for this pixel, continue
--printf("\nPixel #"..xNum..":\n")
--printf("R: %d, G: %d, B: %d.\n", R,G,B)
--printf("H: %.1f, S: %.1f, L: %.1f.\n", color.RGBtoHSL(R,G,B))
if color.DeltaRGB(color.RGB(cR,cG, cB), cColor) < 0.1 then
gHP = gHP + 1
else
bHP = bHP + 1
end
end
sX = sX + 1
xNum = xNum + 1
end
local pHealth = gHP / tHP
-- We will round the HP to 2 decimal places. Make note that it will show in decimal form, so you won't see a "30%", but rather a "0.30"
--pHealth = round(pHealth, 2)
print("\nHealth is currently at "..pHealth)
return pHealth
end
-- This will examine a range of pixels and return the value of hp
if (game_win == nil) then
print("\n** Game window not found! **")
else
-- The window needs to be into focus for a proper screen shot
win.SetState(game_win, win.SW_SHOW)
time.Sleep(0.200) -- Some time for window to come in focus..
while true do
ReadHp()
console.KeyPause()
end
console.KeyPause()
end