[HELP] create character question menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 21
  1. #1
    leather's Avatar Member
    Reputation
    1
    Join Date
    Jun 2007
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [HELP] create character question

    I want to show the creating new character sence by calling the lua function,so please help me when i push the button "create new character" ,which lua function will be triggered ? and what the function address is?

    [HELP] create character question
  2. #2
    flo8464's Avatar Active Member
    Reputation
    30
    Join Date
    Apr 2009
    Posts
    434
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    CreateCharacter 0x483210
    Maybe ?

    Here is a dump of all available lua functions before the world is entered: http://nopaste.org/p/aW1BOojUbb

  3. #3
    leather's Avatar Member
    Reputation
    1
    Join Date
    Jun 2007
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks flo8464
    but i want to show the creating character sence before creating new character.
    just like this lua function: RequestRealmList 0x480d90
    when i call RequestRealmList, a new frame with all of the realms will be shown.

  4. #4
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm not sure about this, but I think you have to use SetGlueXML or something like that.

    It's SetCurrentScreen. 0x47ED60.
    Last edited by lanman92; 09-05-2009 at 11:55 AM.

  5. #5
    Nesox's Avatar ★ Elder ★
    Reputation
    1280
    Join Date
    Mar 2007
    Posts
    1,238
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    DoString("SetGluescreen(\"charcreate\")");

    you have to run that from the render thread it won't work with remote threads it will throw an ASyncRead != FALSE exception.

  6. #6
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wasn't there a thread on that issue a LONG time ago?

  7. #7
    Nesox's Avatar ★ Elder ★
    Reputation
    1280
    Join Date
    Mar 2007
    Posts
    1,238
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There was one on gd, I started it I. Was having problems calling SetGluescreen but it was because wows mainthread keeps acessing the models or something

  8. #8
    leather's Avatar Member
    Reputation
    1
    Join Date
    Jun 2007
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks to Nesox
    DoString("SetGluescreen(\"charcreate\")"); it works!

    Where can i get more information about "SetGluescreen" ?
    Last edited by leather; 09-05-2009 at 08:29 PM.

  9. #9
    flo8464's Avatar Active Member
    Reputation
    30
    Join Date
    Apr 2009
    Posts
    434
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by leather View Post
    Thanks to Nesox
    DoString("SetGluescreen(\"charcreate\")"); it works!

    Where can i get more information about "SetGluescreen" ?
    Maybe with your disassembler? Can't be hard to look where its referenced etc.

  10. #10
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I don't think that's built into the code. Might be in Interface/ files inside locale.mpq. That'd be my guess.

    I'm right Interface/GlueXML/GlueParent.lua. Turns out SetGlueScreen is just a wrapper around SetCurrentScreen.
    Last edited by lanman92; 09-05-2009 at 09:23 PM.

  11. #11
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    int __cdecl lua_SetCurrentScreen(lua_State *L)
    {
      char ST10_1_0; // ST10_1@0
      lua_State *refL; // esi@1
      int result; // eax@2
      char *pszScreen; // eax@3
    
      refL = L;
      if ( sub_801BA0() )
      {
        pszScreen = FrameScript_ToString(refL, 1, 0);
        CGlueMgr__UpdateCurrentScreen(pszScreen);
        AsyncFileReadWaitAll();
        result = 0;
      }
      else
      {
        FrameScript_DisplayError(refL, "Usage: SetCurrentScreen(\"screen\")", ST10_1_0);
        result = 0;
      }
      return result;
    }
    Code:
    .text:0047ED60     ; <"Usage: SetCurrentScreen("screen")">
    .text:0047ED60     ; Attributes: bp-based frame
    .text:0047ED60
    .text:0047ED60     ; int __cdecl lua_SetCurrentScreen(lua_State *L)
    .text:0047ED60     lua_SetCurrentScreen proc near          ; DATA XREF: .data:01036D54o
    .text:0047ED60
    .text:0047ED60     L               = dword ptr  8
    .text:0047ED60
    .text:0047ED60 000                 push    ebp
    .text:0047ED61 004                 mov     ebp, esp
    .text:0047ED63 004                 push    esi
    .text:0047ED64 008                 mov     esi, [ebp+L]
    .text:0047ED67 008                 push    1
    .text:0047ED69 00C                 push    esi
    .text:0047ED6A 010                 call    sub_801BA0      ; Call Procedure
    .text:0047ED6F 010                 add     esp, 8          ; Add
    .text:0047ED72 008                 test    eax, eax        ; Logical Compare
    .text:0047ED74 008                 jnz     short loc_47ED89 ; Jump if Not Zero (ZF=0)
    .text:0047ED76 008                 push    offset aUsageSetcurren ; "Usage: SetCurrentScreen(\"screen\")"
    .text:0047ED7B 00C                 push    esi             ; L
    .text:0047ED7C 010                 call    FrameScript_DisplayError ; Call Procedure
    .text:0047ED81 010                 add     esp, 8          ; Add
    .text:0047ED84 008                 xor     eax, eax        ; Logical Exclusive OR
    .text:0047ED86 008                 pop     esi
    .text:0047ED87 004                 pop     ebp
    .text:0047ED88 000                 retn                    ; Return Near from Procedure
    .text:0047ED89     ; ---------------------------------------------------------------------------
    .text:0047ED89
    .text:0047ED89     loc_47ED89:                             ; CODE XREF: lua_SetCurrentScreen+14j
    .text:0047ED89 008                 push    0               ; length
    .text:0047ED8B 00C                 push    1               ; index
    .text:0047ED8D 010                 push    esi             ; L
    .text:0047ED8E 014                 call    FrameScript_ToString ; Call Procedure
    .text:0047ED93 014                 push    eax
    .text:0047ED94 018                 call    CGlueMgr__UpdateCurrentScreen ; Call Procedure
    .text:0047ED99 018                 add     esp, 10h        ; Add
    .text:0047ED9C 008                 call    AsyncFileReadWaitAll ; <"AsyncFileReadWaitAll() Leave", "AsyncFileReadWaitAll() Enter">
    .text:0047EDA1 008                 xor     eax, eax        ; Logical Exclusive OR
    .text:0047EDA3 008                 pop     esi
    .text:0047EDA4 004                 pop     ebp
    .text:0047EDA5 000                 retn                    ; Return Near from Procedure
    .text:0047EDA5     lua_SetCurrentScreen endp
    The relevant stuff.

  12. #12
    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)
    Strange, my output is showing something different....

    Code:
    // <"Usage: SetCurrentScreen("screen")">
    int __cdecl lua_SetCurrentScreen(void *pState)
    {
      int Result; // eax@2
      char *pScreen; // eax@3
    
      if ( sub_801BA0(pState, 1) )
      {
        pScreen = LuaToString(pState, 1, 0);
        sub_47B500(pScreen);
        AsyncFileReadWaitAll();
        Result = 0;
      }
      else
      {
        LuaError(pState, "Usage: SetCurrentScreen(\"screen\")");
        Result = 0;
      }
      return Result;
    }
    Most notably, the call to LuaError has two params...

    EDIT:

    @Apoc, do you really need the instruction comments enabled? :s

    EDIT:

    The disassembly agrees with me. It says you fail:
    push offset aUsageSetcurren ; "Usage: SetCurrentScreen(\"screen\")"
    push esi
    call LuaError
    Last edited by Cypher; 09-06-2009 at 01:03 AM.

  13. #13
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post
    Strange, my output is showing something different....

    Code:
    // <"Usage: SetCurrentScreen("screen")">
    int __cdecl lua_SetCurrentScreen(void *pState)
    {
      int Result; // eax@2
      char *pScreen; // eax@3
    
      if ( sub_801BA0(pState, 1) )
      {
        pScreen = LuaToString(pState, 1, 0);
        sub_47B500(pScreen);
        AsyncFileReadWaitAll();
        Result = 0;
      }
      else
      {
        LuaError(pState, "Usage: SetCurrentScreen(\"screen\")");
        Result = 0;
      }
      return Result;
    }
    Most notably, the call to LuaError has two params...

    EDIT:

    @Apoc, do you really need the instruction comments enabled? :s

    EDIT:

    The disassembly agrees with me. It says you fail:
    push offset aUsageSetcurren ; "Usage: SetCurrentScreen(\"screen\")"
    push esi
    call LuaError
    Na, don't need them enabled at all. Just lets me skim through ASM much faster with it enabled. (Saves me ~5-10s per function I read)

    Also, I'm fairly certain its just the difference in HexRays versions. It is passing 2 args to the sub_801BA0 call. HexRays just sees it not used, and assumes it's 'bogus'. (Complete, utter, speculation there...)

    Edit; Er... that function call is just a sanity check anyway.
    Last edited by Apoc; 09-06-2009 at 01:58 AM.

  14. #14
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Is there a cracked hexrays? That's pretty nice looking.

  15. #15
    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)
    Originally Posted by lanman92 View Post
    Is there a cracked hexrays? That's pretty nice looking.

    Only a very old version.

Page 1 of 2 12 LastLast

Similar Threads

  1. [Help] Creating character
    By Tornad0z in forum World of Warcraft Emulator Servers
    Replies: 12
    Last Post: 05-17-2008, 04:22 PM
  2. Help! Creatting accounts
    By Robob in forum World of Warcraft Emulator Servers
    Replies: 0
    Last Post: 09-08-2007, 08:34 AM
  3. Need help about Character Models
    By mizery in forum World of Warcraft General
    Replies: 0
    Last Post: 08-23-2007, 08:46 AM
  4. Transfering Characters Question
    By sola in forum World of Warcraft General
    Replies: 5
    Last Post: 05-11-2007, 06:16 PM
  5. Making x amount of gold on summoning and creating character!
    By handyman in forum World of Warcraft Guides
    Replies: 3
    Last Post: 04-18-2007, 11:56 AM
All times are GMT -5. The time now is 06:32 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