Heya
Most of my projects either crash during or need to be restarted after zoning. So my question is pretty straight forward.
Can I monitor 'zoning' out-of-process?
Heya
Most of my projects either crash during or need to be restarted after zoning. So my question is pretty straight forward.
Can I monitor 'zoning' out-of-process?
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
"I cried a little earlier when I had to poop" - Sku
Hai Rob
The way I implemented this in my program, so it didn't matter what order the program and wow were started in is as follows:
Start a background thread with an loop than continuously checks whether
a) Process exists
b) can read from process
c) can read values (eg. is logged in) .
And if it can't it puts the main thread on hold, until it can read values again.
There is probably a better way, but this works, and it's simple.
Thanks for explaining, It sounds like a bandaidfix though, there must be something prettier
I know that it's probably possible to hook WoW's events (I assume the loadscreen is one of them) but I'm to much of a tool atm to do such a thing (C++ is planned for next month)
I'm hoping that there's a static address somewhere that could tell me what 'state' wow is in atm.
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
"I cried a little earlier when I had to poop" - Sku
Pseudo-code:
Not sure if this is what Gamer meant, but this is what I use.Code:Try Read memory and stuff Catch e As Error While Error.Exists Sleep(1000) End While End Try
Check pointers for null, early and always.
From memory there's a global variable that has the logged-in state.
Read the zone var, if zone != -1, you're in game, otherwise:
#define GAMESTATE 0x0103E6E8
That will tell you what screen you're at.
Then it comes to be that the soothing light at the end of your tunnel
Was just a freight train coming your way
You can also hook EVENT_PLAYER_ENTERING_WORLD from BroadcastEvent at 0x0077F5D0.
WoWX uses this method and then you can add a check if event == EVENT_PLAYER_ENTERING_WORLD { load shizz in game } and same with other events.
Check into WoWX if you want more info!![]()