Just downloaded the program--didn't load work the first time (got the same screen as @Guarocuya) but it worked the second time I opened it. Thank you very much @Ravel!
EDIT: And I got a Ranger with a total of 91 and a Strength of 18/00!!!
Updated front page to announce the compatibility upgrade for v1.0.2011 of BG:EE. Works on my machine, would love to confirm it works on others' machines as well. It's available on GameFront and MediaFire.
Still haven't tracked down the Access Violation error, so if you were having that before - I apologize, but it likely won't be fixed for you in this new verison either
Thanks for the update, works here in Win7 x64, but only for the campaign and not BP. Would you mind sharing your .CT?
@Andargor Yeah, the .CT should be available on either of those links in the source zip file. The only thing I changed from the version of the source to the most recent version, was to update the memory offset from v1.0.2009 to v1.0.2011 - everything else is the same.
Does anyone have the new offset for the reroller yet?
@LukevanV When updating the roll monitor, I had to update it to 0055E6AC. My guess is that it's the same for the reroller, though I haven't tried it yet.
edit: Just confirmed that offset works for the reroller.
@Aliard1806 What you would be looking for is something like
if(StrPercent == 100) then setMousePos(700,700) end
The problem with this is that UpdateStrPercent is executed every 10 milliseconds, which means you'd be resetting your mouse position every 10 milliseconds to 700,700 - making it nearly impossible to reroll. There are a handful of ways to fix this, but the easiest would probably be to turn off the update timer inside the if statement above, and just hit Start again once you've rerolled (assuming you don't want to keep that particular roll).
That would look something like this:
if(StrPercent == 100) then setMousePos(700,700) timer_setEnabled(BGEEStats_CETimer1, false) end
Here's a list of LUA functions in the Cheat Engine library which may be useful to you.
i tried with your command....but when i found 100 the mouse don't move...but if i set the actual value showed on the BG monitoring and i press execute script he run....what is the problem?
If you used the first command, that's because it resets the mouse to 700,700 every .01 seconds making it near impossible to move. If you used the second one, the command to turn off the timer likely isn't being recognized - so if you could screenshot or copy exactly how you added it into the UpdateStrPercent function, I'd be able to see what the problem was.
function updateStrPercent(sender) --StrPercent = memoryrecord_getValue(StrPercentAddress) StrPercent = readBytes(StrPercentAdd,1,false) if(StrPercent == nil) then closeCE() else control_setCaption(BGEEStats_StrPercent, StrPercent) end end
if(StrPercent == 100) then setMousePos(700,700) timer_setEnabled(BGEEStats_CETimer1, false) end
Str = readBytes(StrAdd,1,false) Dex = readBytes(DexAdd,1,false) Con = readBytes(ConAdd,1,false) Int = readBytes(IntAdd,1,false) Wis = readBytes(WisAdd,1,false) Cha = readBytes(ChaAdd,1,false)
control_setCaption(BGEEStats_StatTotal, StatTotal) end function CETimer1Timer(sender) updateStrPercent(sender) updateStatTotal(sender) end
function ButtonExit(sender) closeCE() end function CEButton2Click(sender) --updateStatTotal(sender) --updateStrPercent(sender) timer_setEnabled(BGEEStats_CETimer1, true) end
function FormClick(sender)
end
This is the total command if you try you will see what about i intend....even if i find a 100 the mouse don't change position!! ty for your help m8
if(StrPercent == 100) then setMousePos(700,700) timer_setEnabled(BGEEStats_CETimer1, false) end
before the second "end" statement in this section of code:
function updateStrPercent(sender) --StrPercent = memoryrecord_getValue(StrPercentAddress) StrPercent = readBytes(StrPercentAdd,1,false) if(StrPercent == nil) then closeCE() else control_setCaption(BGEEStats_StrPercent, StrPercent) end end
Basically it should look like this, instead:
function updateStrPercent(sender) --StrPercent = memoryrecord_getValue(StrPercentAddress) StrPercent = readBytes(StrPercentAdd,1,false) if(StrPercent == nil) then closeCE() else control_setCaption(BGEEStats_StrPercent, StrPercent) end if(StrPercent == 100) then setMousePos(700,700) timer_setEnabled(BGEEStats_CETimer1, false) end end
Does anyone have the new offset for the reroller yet?
@LukevanV When updating the roll monitor, I had to update it to 0055E6AC. My guess is that it's the same for the reroller, though I haven't tried it yet.
edit: Just confirmed that offset works for the reroller.
And I've got game version 1.0.2011 (game update 5, Dec. 14). It gives the error saying it couldn't get the correct readings, and it may be due to an update and I would need to update the offset.
Any reason this updating the ini thing couldn't be included in the next monitoring utility release? It might make things easier for all concerned.
How are you finding the new value, anyway? Like, if someone comes across this thread in 10 years and we don't have you to rely on anymore, what would they do?
@PugPug I could probably have the utility run off of a .ini file, but I'd have to look up how to do it, and honestly it probably wouldn't happen before the new year.
As far as finding the offset, I use a program called Cheat Engine to find it. When you first launch the program it will pop up some tutorials which will cover what you need to know in order to find the offset - specifically paying attention to tutorials 6 and 8 which deal with pointers.
Can you tell me the difference between the versions on the download sites? There are lot of different versions of your utility. I see at least 3 for each BGEE update. How do I know which is the one to download?
For the 2011 BGEE update I see the following:
BGEE Roll Monitor32 v1_0_2011.zip BGEE Roll Monitor Big v1_0_2011.zip BGEE Roll Monitor v1_0_2011.zip
What's the difference between those 3 versions of your utility?
Change the offset value in the ini file. It will have to be changed after most patches. Right now, it should read:
OFFSET = 0x0055E6AC
Well, this utility actually doesn't use a .ini file. I believe you're confusing it with the auto-reroller which has been discussed alongside the reroll monitor I made.
Change the offset value in the ini file. It will have to be changed after most patches. Right now, it should read:
OFFSET = 0x0055E6AC
Well, this utility actually doesn't use a .ini file. I believe you're confusing it with the auto-reroller which has been discussed alongside the reroll monitor I made.
Comments
EDIT: And I got a Ranger with a total of 91 and a Strength of 18/00!!!
Still haven't tracked down the Access Violation error, so if you were having that before - I apologize, but it likely won't be fixed for you in this new verison either
edit: Just confirmed that offset works for the reroller.
i tried to add this script under the end of UpdateStrPercent but it not work...
if(StrPercentAdd == "100")
then MoveMouse (700, 700, 0)
end
what do you think about that?
if(StrPercent == 100)
then setMousePos(700,700)
end
The problem with this is that UpdateStrPercent is executed every 10 milliseconds, which means you'd be resetting your mouse position every 10 milliseconds to 700,700 - making it nearly impossible to reroll. There are a handful of ways to fix this, but the easiest would probably be to turn off the update timer inside the if statement above, and just hit Start again once you've rerolled (assuming you don't want to keep that particular roll).
That would look something like this:
if(StrPercent == 100)
then setMousePos(700,700)
timer_setEnabled(BGEEStats_CETimer1, false)
end
Here's a list of LUA functions in the Cheat Engine library which may be useful to you.
errorOnLookupFailure(false)
form_show(BGEEStats)
--statAddresses=getAddressList()
--StrPercentAddress=addresslist_getMemoryRecordByDescription(statAddresses, "Strength %")
--StrAddress = addresslist_getMemoryRecordByDescription(statAddresses, "Strength")
--DexAddress = addresslist_getMemoryRecordByDescription(statAddresses, "Dexterity")
--ConAddress = addresslist_getMemoryRecordByDescription(statAddresses, "Constitution")
--IntAddress = addresslist_getMemoryRecordByDescription(statAddresses, "Intelligence")
--WisAddress = addresslist_getMemoryRecordByDescription(statAddresses, "Wisdom")
--ChaAddress = addresslist_getMemoryRecordByDescription(statAddresses, "Charisma")
StrPercentAdd="[baldur.exe+0055E6AC]+5E5"
StrAdd="[baldur.exe+0055E6AC]+5E4"
DexAdd="[baldur.exe+0055E6AC]+5E8"
ConAdd="[baldur.exe+0055E6AC]+5E9"
IntAdd="[baldur.exe+0055E6AC]+5E6"
WisAdd="[baldur.exe+0055E6AC]+5E7"
ChaAdd="[baldur.exe+0055E6AC]+5Ea"
function updateStrPercent(sender)
--StrPercent = memoryrecord_getValue(StrPercentAddress)
StrPercent = readBytes(StrPercentAdd,1,false)
if(StrPercent == nil)
then closeCE()
else control_setCaption(BGEEStats_StrPercent, StrPercent)
end
end
if(StrPercent == 100)
then setMousePos(700,700)
timer_setEnabled(BGEEStats_CETimer1, false)
end
function updateStatTotal(sender)
--StrInt=readBytes(StrAdd,1,false)
--print(StrAdd)
--print(StrInt)
--Str = memoryrecord_getValue(StrAddress)
--Dex = memoryrecord_getValue(DexAddress)
--Con = memoryrecord_getValue(ConAddress)
--Int = memoryrecord_getValue(IntAddress)
--Wis = memoryrecord_getValue(WisAddress)
--Cha = memoryrecord_getValue(ChaAddress)
Str = readBytes(StrAdd,1,false)
Dex = readBytes(DexAdd,1,false)
Con = readBytes(ConAdd,1,false)
Int = readBytes(IntAdd,1,false)
Wis = readBytes(WisAdd,1,false)
Cha = readBytes(ChaAdd,1,false)
--StatTotal = tonumber(Str) + tonumber(Dex) + tonumber(Con) + tonumber(Int) + tonumber(Wis) + tonumber(Cha)
StatTotal = Str + Dex + Con + Int + Wis + Cha
control_setCaption(BGEEStats_StatTotal, StatTotal)
end
function CETimer1Timer(sender)
updateStrPercent(sender)
updateStatTotal(sender)
end
function ButtonExit(sender)
closeCE()
end
function CEButton2Click(sender)
--updateStatTotal(sender)
--updateStrPercent(sender)
timer_setEnabled(BGEEStats_CETimer1, true)
end
function FormClick(sender)
end
This is the total command if you try you will see what about i intend....even if i find a 100 the mouse don't change position!! ty for your help m8
if(StrPercent == 100)
then setMousePos(700,700)
timer_setEnabled(BGEEStats_CETimer1, false)
end
before the second "end" statement in this section of code:
function updateStrPercent(sender)
--StrPercent = memoryrecord_getValue(StrPercentAddress)
StrPercent = readBytes(StrPercentAdd,1,false)
if(StrPercent == nil)
then closeCE()
else control_setCaption(BGEEStats_StrPercent, StrPercent)
end
end
Basically it should look like this, instead:
function updateStrPercent(sender)
--StrPercent = memoryrecord_getValue(StrPercentAddress)
StrPercent = readBytes(StrPercentAdd,1,false)
if(StrPercent == nil)
then closeCE()
else control_setCaption(BGEEStats_StrPercent, StrPercent)
end
if(StrPercent == 100)
then setMousePos(700,700)
timer_setEnabled(BGEEStats_CETimer1, false)
end
end
My autoroller.ini file reads:
[Settings]
OFFSET = 0055E6AC
DELAY = 80
STRPERMIN = 90
And I've got game version 1.0.2011 (game update 5, Dec. 14). It gives the error saying it couldn't get the correct readings, and it may be due to an update and I would need to update the offset.
That did the trick, thanks!
Any reason this updating the ini thing couldn't be included in the next monitoring utility release? It might make things easier for all concerned.
How are you finding the new value, anyway? Like, if someone comes across this thread in 10 years and we don't have you to rely on anymore, what would they do?
As far as finding the offset, I use a program called Cheat Engine to find it. When you first launch the program it will pop up some tutorials which will cover what you need to know in order to find the offset - specifically paying attention to tutorials 6 and 8 which deal with pointers.
For the 2011 BGEE update I see the following:
BGEE Roll Monitor32 v1_0_2011.zip
BGEE Roll Monitor Big v1_0_2011.zip
BGEE Roll Monitor v1_0_2011.zip
What's the difference between those 3 versions of your utility?
Thank you!
32 I assume is for 32-bit operating systems, and Big has bigger numbers. I think some people had trouble seeing the first iteration.
Change the offset value in the ini file. It will have to be changed after most patches. Right now, it should read:
OFFSET = 0x0055E6AC