Adventure Merchant CTD?

A forum for reporting bugs NOT related to custom plugins.

Moderator: MacroQuest Developers

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Adventure Merchant CTD?

Post by aChallenged1 » Sun Jan 30, 2005 11:02 am

I do not know if it is MQ2 related or not, so this is just an informative post, at this time.

CTD when tried to open merchant window with an Adventure merchant.
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Sun Jan 30, 2005 12:56 pm

Ok, unless a friend of mine also is using MQ2 without my knowledge, the CTD with adv merchants is not related to MQ2. 3 machines, 2 running MQ2 one likely not all CTD when attempting to open adventure merchant buy/sell windows.

I'll give it a try later on to see if it happens even without MQ loaded.
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Sun Jan 30, 2005 1:28 pm

It's not MQ related. Although we could probably detour the function and fix it if we had to ..lol.

Someone changed the code of a particular functions "is it ok if we run this function" checks.

Previously it was:

Code: Select all

.text:0040681B                 mov     eax, offset sub_5D2887
.text:00406820                 call    __EH_prolog
.text:00406825                 push    ecx
.text:00406826                 mov     eax, pinstPCData
.text:0040682B                 test    byte ptr [eax+0DA0h], 20h
.text:00406832                 push    esi
.text:00406833                 mov     esi, ecx
.text:00406835                 jnz     short loc_40683B
.text:00406837                 xor     al, al
.text:00406839                 jmp     short loc_4068B9

.text:0040683B loc_40683B:                             ; CODE XREF: 
.text:0040683B                 mov     ecx, dword_740FC8
.text:00406841                 push    1
.text:00406843                 push    6
.text:00406845                 call    sub_4A41B0
.text:0040684A                 cmp     dword ptr [esi+168h], 0
.text:00406851                 jz      short loc_4068A5
.text:00406853                 mov     eax, pinstActiveMerchant
.text:00406858                 test    eax, eax
.text:0040685A                 jz      short loc_4068A5
.text:0040685C                 mov     ecx, pinstCEverQuest
.text:00406862                 add     eax, 118h
.text:00406867                 push    eax
.text:00406868                 call    sub_4AB3BC
.text:0040686D                 push    eax
.text:0040686E                 lea     ecx, [ebp-10h]
.text:00406871                 call    CXStr__CXStr3
.text:00406876                 mov     ecx, [esi+168h]
Now, it's:

Code: Select all

.text:0050F253                 mov     eax, offset sub_5D39E7
.text:0050F258                 call    __EH_prolog
.text:0050F25D                 push    ecx
.text:0050F25E                 push    esi
.text:0050F25F                 mov     esi, ecx
.text:0050F261                 call    sub_50D833
.text:0050F266                 test    al, al
.text:0050F268                 jz      loc_50F32D
.text:0050F26E                 mov     ecx, dword_756870
.text:0050F274                 push    1
.text:0050F276                 push    6
.text:0050F278                 call    sub_4A603A
.text:0050F27D                 cmp     dword ptr [esi+1A8h], 0
.text:0050F284                 jz      short loc_50F2D8
.text:0050F286                 mov     eax, pinstActiveMerchant
.text:0050F28B                 test    eax, eax
.text:0050F28D                 jz      short loc_50F2D8
.text:0050F28F                 mov     ecx, pinstCEverQuest
.text:0050F295                 add     eax, 120h
.text:0050F29A                 push    eax
.text:0050F29B                 call    CEverQuest__TrimName
.text:0050F2A0                 push    eax
.text:0050F2A1                 lea     ecx, [ebp-10h]
.text:0050F2A4                 call    CXStr__CXStr3
.text:0050F2A9                 mov     ecx, [esi+1A8h]
So, either the new code is crashing (go figure), or else they've fucked up some virtual function locations. (ie, the 0x168 vs. 0x1a8)

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Sun Jan 30, 2005 2:57 pm

After 3 crashes on 3 machines at different merchants, I didn't think it was MQ, and I'm glad to know it wasn't.
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

Mystic_Blue
a lesser mummy
a lesser mummy
Posts: 69
Joined: Sat Jan 22, 2005 3:31 am

Post by Mystic_Blue » Sun Jan 30, 2005 5:09 pm

sigh, this probably means another patch-patch in the next few days, and another 1-2 days without MQ2....I sure wish SOE programmers who learn about beta testing patches...