• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

/zone the future

odessa said:
cronic you probably zone through HWM fake packet or outgoing packet right? The actual DoTheZone process changed.

oooo that sounds like it would be fun.... :D

what exactly is HWM fake pacet
 
odessa said:
cronic you probably zone through HWM fake packet or outgoing packet right? The actual DoTheZone process changed.

Nah, I did before but it has a few limitations. I call CEverQuest::MoveToZone (which is what I thought DoTheZone actually was) directly. Nothing weird happening for me.

cronic

Edit: HWM is kind of an inside technique, so don't go spouting off too much lest you lose some of your ooberness to the masses.
 
cronic the whole thing came up because of changes in the routine, look in IDA and compare previous dothezone to this one
 
I was getting the impression that the changes in the routine actually affected the calls to it for some people, and that old code would no longer work. I guess I misread.

cronic
 
thenameless said:
hmm... think thats a good quick fix to get it up and runing but, remember that not all zones are zone lines..... POK Books, Sebilis, ECT...
but my idea would still work if by some chance /zone is nerfed for good, if all else failed i mean lol
 
cronic just look in disassembly :) function shows no parameters now and yet works when we pass the parameters (it also works with 0 parameters if properly pre-setup by previous subroutine).
 
cronic said:
Edit: HWM is kind of an inside technique, so don't go spouting off too much lest you lose some of your ooberness to the masses.


true that my friend.....

cronic said:
Nah, I did before but it has a few limitations. I call CEverQuest::MoveToZone (which is what I thought DoTheZone actually was) directly. Nothing weird happening for me.

um ok so wut needs to be done to fix either warp to enable zone or mabee piggy

replace
Rich (BB code):
LocalCEverQuest__DoTheZone
with
Rich (BB code):
CEverQuest::MoveToZone
??

or have i just misunderstood the whole post??
 
This thread confuses me. DoTheZone works just like it always did. Offset as of this post is 0x49DE8F. Everything is exactly as it was.
 
I'm dasm'ing eqgame right now, I'll confirm if it still works with a spare account.
 
Cosmic said:
This thread confuses me. DoTheZone works just like it always did. Offset as of this post is 0x49DE8F. Everything is exactly as it was.

Agreed. I think what has happened is because SoE changed portions of that routine, it looks quite a bit different in IDA and it was more difficult to find the location using certain search patterns. Maybe?

cronic
 
The location was found in a second, the issue is the number of arguments a new function 'seemed' to take comparing to the old one. Look at the new function, it seemingly takes no arguments but if you look at call stack you will see the 'trick' :)
 
you know what let me explain this so people don't have any more questions, here's the old dothezone:

Rich (BB code):
.text:004AB814 sub_4AB814      proc near 
.text:004AB814 var_35C         = dword ptr -35Ch
.text:004AB814 var_358         = dword ptr -358h
.text:004AB814 var_354         = dword ptr -354h
.text:004AB814 var_340         = dword ptr -340h
.text:004AB814 var_308         = dword ptr -308h
.text:004AB814 var_304         = dword ptr -304h
.text:004AB814 var_204         = dword ptr -204h
.text:004AB814 var_104         = dword ptr -104h
.text:004AB814 var_84          = dword ptr -84h
.text:004AB814 var_44          = dword ptr -44h
.text:004AB814 var_24          = byte ptr -24h
.text:004AB814 var_4           = dword ptr -4
.text:004AB814 arg_0           = dword ptr  8
.text:004AB814 arg_4           = dword ptr  0Ch
.text:004AB814 arg_8           = dword ptr  10h
.text:004AB814 arg_C           = dword ptr  14h
.text:004AB814 arg_10          = dword ptr  18h
.text:004AB814 arg_14          = dword ptr  1Ch
.text:004AB814 arg_18          = dword ptr  20h
.text:004AB814 arg_1C          = dword ptr  24h
.text:004AB814
.text:004AB814                 push    ebp
.text:004AB815                 mov     ebp, esp
.text:004AB817                 sub     esp, 340h

you see how there are args and how stack is properly configured at entry?
ok here's the new one:
Rich (BB code):
.text:0049DE8F MoveToZone      proc near
.text:0049DE8F var_414         = dword ptr -414h
.text:0049DE8F var_410         = dword ptr -410h
.text:0049DE8F var_40C         = dword ptr -40Ch
.text:0049DE8F var_58          = dword ptr -58h
.text:0049DE8F
.text:0049DE8F                 push    ebp
.text:0049DE90                 lea     ebp, [esp+var_58]
.text:0049DE94                 sub     esp, 3F8h

you see how IDA is showing no args?

I hope that answers the question about where all this came from.
 
Last edited:
Rich (BB code):
.text:00465227                 push    offset aZonetransfer ; "ZoneTransfer"
.text:0046522C                 push    dword ptr [ebx]
.text:0046522E                 call    sub_49DE8F
.text:00465233                 jmp     loc_46559F

The new "DoTheZone keyword" is "ZoneTransfer"
 
If your IDA looks different than this, one of two things has happened:

1: You stopped it before it finished disassembly
2: Your IDA is out of date

The prototype for this function is unchanged from previous versions.

IDA translates parameters automatically as seen on line 6:
int __stdcall sub_49DE8F(int,char *,int,int,int,int,int,int)

Rich (BB code):
.text:0049DE8F
.text:0049DE8F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0049DE8F
.text:0049DE8F ; Attributes: bp-based frame fpd=58h
.text:0049DE8F
.text:0049DE8F ; int __stdcall sub_49DE8F(int,char *,int,int,int,int,int,int)
.text:0049DE8F sub_49DE8F      proc near               ; CODE XREF: sub_419462+1251p
.text:0049DE8F                                         ; sub_45A9D3+37Ep ...
.text:0049DE8F
.text:0049DE8F var_46C         = dword ptr -46Ch
.text:0049DE8F var_468         = dword ptr -468h
.text:0049DE8F var_464         = dword ptr -464h
.text:0049DE8F var_3F8         = dword ptr -3F8h
.text:0049DE8F var_3C8         = dword ptr -3C8h
.text:0049DE8F var_3C4         = byte ptr -3C4h
.text:0049DE8F var_2C4         = byte ptr -2C4h
.text:0049DE8F var_1C4         = dword ptr -1C4h
.text:0049DE8F var_144         = byte ptr -144h
.text:0049DE8F var_C4          = byte ptr -0C4h
.text:0049DE8F var_44          = dword ptr -44h
.text:0049DE8F var_4           = dword ptr -4
.text:0049DE8F arg_0           = dword ptr  8
.text:0049DE8F arg_4           = dword ptr  0Ch
.text:0049DE8F arg_8           = dword ptr  10h
.text:0049DE8F arg_C           = dword ptr  14h
.text:0049DE8F arg_10          = dword ptr  18h
.text:0049DE8F arg_14          = dword ptr  1Ch
.text:0049DE8F arg_18          = dword ptr  20h
.text:0049DE8F arg_1C          = dword ptr  24h
.text:0049DE8F
.text:0049DE8F                 push    ebp
.text:0049DE90                 lea     ebp, [esp-58h]
.text:0049DE94                 sub     esp, 3F8h
 
/zone the future

Users who are viewing this thread

Back
Top
Cart