How to handle changes while zoning? menu

Shout-Out

User Tag List

Results 1 to 9 of 9
  1. #1
    Robske's Avatar Contributor
    Reputation
    305
    Join Date
    May 2007
    Posts
    1,062
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    How to handle changes while zoning?

    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

    How to handle changes while zoning?
  2. #2
    Gamer's Avatar Active Member
    Reputation
    239
    Join Date
    Jan 2007
    Posts
    198
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    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.

  3. #3
    Robske's Avatar Contributor
    Reputation
    305
    Join Date
    May 2007
    Posts
    1,062
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Gamer View Post
    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

  4. #4
    Gamer's Avatar Active Member
    Reputation
    239
    Join Date
    Jan 2007
    Posts
    198
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Robske007a View Post
    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.
    That would still crash if WoW closed :P

    But I agree, it's not pretty.

  5. #5
    RawrSnarl's Avatar Member
    Reputation
    14
    Join Date
    May 2008
    Posts
    65
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Pseudo-code:

    Code:
    Try
         Read memory and stuff
    Catch e As Error
         While Error.Exists
              Sleep(1000)
         End While
    End Try
    Not sure if this is what Gamer meant, but this is what I use.

  6. #6
    argh44z's Avatar Member
    Reputation
    19
    Join Date
    Nov 2007
    Posts
    93
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Check pointers for null, early and always.

  7. #7
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    From memory there's a global variable that has the logged-in state.

  8. #8
    korknob's Avatar Active Member
    Reputation
    29
    Join Date
    May 2008
    Posts
    67
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    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

  9. #9
    ramey's Avatar Member
    Reputation
    45
    Join Date
    Jan 2008
    Posts
    320
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    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!

Similar Threads

  1. [World Edit] How do I change zone-names?
    By Breakdawn in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 05-11-2010, 04:30 PM
  2. [ArcEmu] How do i change PVP in a certain zone?
    By brettsalt1995 in forum WoW EMU Questions & Requests
    Replies: 4
    Last Post: 04-11-2010, 07:28 AM
  3. How do you change a map zone?
    By daggetoface in forum WoW EMU Questions & Requests
    Replies: 2
    Last Post: 03-20-2009, 10:34 PM
  4. How do you change your IP adress
    By wicked_joe in forum Community Chat
    Replies: 4
    Last Post: 08-15-2006, 02:45 AM
  5. How can I change textures?
    By Dregonx in forum World of Warcraft General
    Replies: 5
    Last Post: 06-20-2006, 01:28 PM
All times are GMT -5. The time now is 02:12 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search