Crashing EQ while running Tribute macro

A forum for reporting bugs NOT related to custom plugins.

Moderator: MacroQuest Developers

Manual
orc pawn
orc pawn
Posts: 16
Joined: Sat Feb 14, 2009 5:10 pm

Crashing EQ while running Tribute macro

Post by Manual » Mon Feb 16, 2009 12:54 pm

I think I did it right..


Microsoft (R) Windows Debugger Version 6.11.0001.402 X86
Copyright (c) Microsoft Corporation. All rights reserved.

*** wait with pending attach
Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path. *
* Use .symfix to have the debugger choose a symbol path. *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is:
ModLoad: 00400000 00b47000 C:\Program Files\Sony\EverQuest\eqgame.exe
ModLoad: 7c900000 7c9af000 C:\WINDOWS\system32\ntdll.dll
ModLoad: 7c800000 7c8f6000 C:\WINDOWS\system32\kernel32.dll
ModLoad: 21100000 2115f000 C:\Program Files\Sony\EverQuest\mss32.dll
ModLoad: 7e410000 7e4a1000 C:\WINDOWS\system32\USER32.dll
ModLoad: 77f10000 77f59000 C:\WINDOWS\system32\GDI32.dll
ModLoad: 76b40000 76b6d000 C:\WINDOWS\system32\WINMM.dll
ModLoad: 77dd0000 77e6b000 C:\WINDOWS\system32\ADVAPI32.dll
ModLoad: 77e70000 77f02000 C:\WINDOWS\system32\RPCRT4.dll
ModLoad: 77fe0000 77ff1000 C:\WINDOWS\system32\Secur32.dll
ModLoad: 71ad0000 71ad9000 C:\WINDOWS\system32\WSOCK32.dll
ModLoad: 71ab0000 71ac7000 C:\WINDOWS\system32\WS2_32.dll
ModLoad: 77c10000 77c68000 C:\WINDOWS\system32\msvcrt.dll
ModLoad: 71aa0000 71aa8000 C:\WINDOWS\system32\WS2HELP.dll
ModLoad: 6ce10000 6ce48000 C:\WINDOWS\system32\DINPUT8.dll
ModLoad: 00b50000 00db0000 C:\WINDOWS\system32\d3dx9_30.dll
ModLoad: 78050000 78120000 C:\WINDOWS\system32\WININET.dll
ModLoad: 77f60000 77fd6000 C:\WINDOWS\system32\SHLWAPI.dll
ModLoad: 00330000 00339000 C:\WINDOWS\system32\Normaliz.dll
ModLoad: 78000000 78045000 C:\WINDOWS\system32\iertutil.dll
ModLoad: 10000000 1063b000 C:\Program Files\Sony\EverQuest\xul.dll
ModLoad: 00340000 003a8000 C:\Program Files\Sony\EverQuest\js3250.dll
ModLoad: 30000000 30028000 C:\Program Files\Sony\EverQuest\nspr4.dll
ModLoad: 7c340000 7c396000 C:\Program Files\Sony\EverQuest\MSVCR71.dll
ModLoad: 003b0000 003b8000 C:\Program Files\Sony\EverQuest\plc4.dll
ModLoad: 003c0000 003c6000 C:\Program Files\Sony\EverQuest\plds4.dll
ModLoad: 7c9c0000 7d1d7000 C:\WINDOWS\system32\SHELL32.dll
ModLoad: 774e0000 7761d000 C:\WINDOWS\system32\ole32.dll
ModLoad: 77c00000 77c08000 C:\WINDOWS\system32\VERSION.dll
ModLoad: 73000000 73026000 C:\WINDOWS\system32\WINSPOOL.DRV
ModLoad: 763b0000 763f9000 C:\WINDOWS\system32\comdlg32.dll
ModLoad: 5d090000 5d12a000 C:\WINDOWS\system32\COMCTL32.dll
ModLoad: 76390000 763ad000 C:\WINDOWS\system32\IMM32.dll
ModLoad: 773d0000 774d3000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
ModLoad: 015c0000 01605000 C:\Program Files\WinEQ2\EQPlayNice.dll
ModLoad: 01620000 0163e000 C:\Program Files\WinEQ2\Lavish.dll
ModLoad: 76d60000 76d79000 C:\WINDOWS\system32\iphlpapi.dll
ModLoad: 03000000 030d4000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\MQ2Main.dll
ModLoad: 74720000 7476c000 C:\WINDOWS\system32\MSCTF.dll
ModLoad: 01910000 01956000 C:\Program Files\WinEQ2\WinEQ2.dll
ModLoad: 76bf0000 76bfb000 C:\WINDOWS\system32\PSAPI.DLL
ModLoad: 71a50000 71a8f000 C:\WINDOWS\system32\mswsock.dll
ModLoad: 662b0000 66308000 C:\WINDOWS\system32\hnetcfg.dll
ModLoad: 71a90000 71a98000 C:\WINDOWS\System32\wshtcpip.dll
ModLoad: 76f20000 76f47000 C:\WINDOWS\system32\DNSAPI.dll
ModLoad: 76fb0000 76fb8000 C:\WINDOWS\System32\winrnr.dll
ModLoad: 76f60000 76f8c000 C:\WINDOWS\system32\WLDAP32.dll
ModLoad: 16080000 160a5000 C:\Program Files\Bonjour\mdnsNSP.dll
ModLoad: 76fc0000 76fc6000 C:\WINDOWS\system32\rasadhlp.dll
ModLoad: 01d10000 01d55000 C:\Program Files\WinEQ2\WinEQ2-EQ.dll
ModLoad: 76380000 76385000 C:\WINDOWS\system32\MSIMG32.dll
ModLoad: 01d70000 01d92000 C:\Program Files\WinEQ2\WinEQ2-D3D9.dll
ModLoad: 4fdd0000 4ff76000 C:\WINDOWS\system32\d3d9.dll
ModLoad: 6d990000 6d996000 C:\WINDOWS\system32\d3d8thk.dll
ModLoad: 01ed0000 01f1d000 C:\Program Files\WinEQ2\WinEQ2-D3D8.dll
ModLoad: 01f40000 01f68000 C:\Program Files\WinEQ2\WinEQ2-DI8.dll
ModLoad: 04000000 04021000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2labels.dll
ModLoad: 01fe0000 02015000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2itemdisplay.dll
ModLoad: 02050000 0207b000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2custombinds.dll
ModLoad: 020b0000 020dd000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2hud.dll
ModLoad: 02140000 02188000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2map.dll
ModLoad: 755c0000 755ee000 C:\WINDOWS\system32\msctfime.ime
ModLoad: 01de0000 01e4b000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2bzsrch.dll
ModLoad: 77690000 776b1000 C:\WINDOWS\system32\NTMARTA.DLL
ModLoad: 71bf0000 71c03000 C:\WINDOWS\system32\SAMLIB.dll
ModLoad: 02460000 025ff000 C:\Program Files\Sony\EverQuest\EQGraphicsDX9.DLL
ModLoad: 01e70000 01ec8000 C:\Program Files\Sony\EverQuest\dpvs.dll
ModLoad: 02210000 0223f000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2chatwnd.dll
ModLoad: 02ef0000 02f10000 C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\mq2eqbugfix.dll
ModLoad: 02f80000 02f8e000 C:\Program Files\Belkin\Nostromo\nost_FSH.dll
ModLoad: 688f0000 688f9000 C:\WINDOWS\system32\HID.DLL
ModLoad: 77920000 77a13000 C:\WINDOWS\system32\SETUPAPI.DLL
ModLoad: 76c30000 76c5e000 C:\WINDOWS\system32\WINTRUST.dll
ModLoad: 77a80000 77b15000 C:\WINDOWS\system32\CRYPT32.dll
ModLoad: 77b20000 77b32000 C:\WINDOWS\system32\MSASN1.dll
ModLoad: 76c90000 76cb8000 C:\WINDOWS\system32\IMAGEHLP.dll
ModLoad: 064b0000 064d7000 C:\Program Files\IncrediMail\bin\B4ImApp.dll
ModLoad: 77120000 771ab000 C:\WINDOWS\system32\OLEAUT32.dll
ModLoad: 26f00000 26f2a000 C:\Program Files\Sony\EverQuest\mssmp3.asi
ModLoad: 26400000 26436000 C:\Program Files\Sony\EverQuest\mssvoice.asi
ModLoad: 22100000 2211f000 C:\Program Files\Sony\EverQuest\mssa3d.m3d
ModLoad: 22200000 22219000 C:\Program Files\Sony\EverQuest\mssds3d.m3d
ModLoad: 22600000 2261c000 C:\Program Files\Sony\EverQuest\mssdx7.m3d
ModLoad: 22300000 22329000 C:\Program Files\Sony\EverQuest\msseax.m3d
ModLoad: 22700000 22764000 C:\Program Files\Sony\EverQuest\mssrsx.m3d
ModLoad: 77be0000 77bf5000 C:\WINDOWS\system32\MSACM32.dll
ModLoad: 22400000 22417000 C:\Program Files\Sony\EverQuest\msssoft.m3d
ModLoad: 24100000 2411c000 C:\Program Files\Sony\EverQuest\mssdsp.flt
ModLoad: 72d20000 72d29000 C:\WINDOWS\system32\wdmaud.drv
ModLoad: 72d10000 72d18000 C:\WINDOWS\system32\msacm32.drv
ModLoad: 77bd0000 77bd7000 C:\WINDOWS\system32\midimap.dll
ModLoad: 73f10000 73f6c000 C:\WINDOWS\system32\DSOUND.DLL
ModLoad: 73ee0000 73ee4000 C:\WINDOWS\system32\KsUser.dll
ModLoad: 22f10000 23513000 C:\Program Files\Sony\EverQuest\vivoxsdk.dll
ModLoad: 222b0000 222e8000 C:\Program Files\Sony\EverQuest\ortp.dll
ModLoad: 221d0000 221f2000 C:\Program Files\Sony\EverQuest\alut.dll
ModLoad: 23520000 23740000 C:\Program Files\Sony\EverQuest\wrap_oal.dll
ModLoad: 722b0000 722b5000 C:\WINDOWS\system32\SensApi.dll
ModLoad: 76fd0000 7704f000 C:\WINDOWS\system32\CLBCATQ.DLL
ModLoad: 77050000 77115000 C:\WINDOWS\system32\COMRes.dll
ModLoad: 68000000 68036000 C:\WINDOWS\system32\rsaenh.dll
ModLoad: 76d40000 76d58000 C:\WINDOWS\system32\MPRAPI.dll
ModLoad: 77cc0000 77cf2000 C:\WINDOWS\system32\ACTIVEDS.dll
ModLoad: 76e10000 76e35000 C:\WINDOWS\system32\adsldpc.dll
ModLoad: 5b860000 5b8b5000 C:\WINDOWS\system32\NETAPI32.dll
ModLoad: 76b20000 76b31000 C:\WINDOWS\system32\ATL.DLL
ModLoad: 76e80000 76e8e000 C:\WINDOWS\system32\rtutils.dll
(554.15e4): Break instruction exception - code 80000003 (first chance)
eax=7ffdf000 ebx=00000001 ecx=00000002 edx=00000003 esi=00000004 edi=00000005
eip=7c90120e esp=2239ffcc ebp=2239fff4 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\ntdll.dll -
ntdll!DbgBreakPoint:
7c90120e cc int 3
Missing image name, possible paged-out or corrupt data.
Missing image name, possible paged-out or corrupt data.
0:022> g
[MQ2]CCommandHook::Detour(/macro tribute.txt)
[MQ2]Macro - Loading macro: C:\Documents and Settings\Connie\Desktop\Monty\MQ2\New Folder\Release\Macros\tribute.txt
[MQ2]Macro - Starting macro with '/call Main'
[MQ2]Call - Calling subroutine Main with params
[MQ2]Echo - [MQ2] Starting Bazaar Tribute Search...
[MQ2]WriteChatColor([MQ2] Starting Bazaar Tribute Search...)
[MQ2]/delay ending early, conditions met
[MQ2]Call - Calling subroutine SetTextBox with params BazaarSearchWnd BZR_MaxPriceInput 1000
[MQ2]GetFuncParam(1): 'string Wnd'
[MQ2]GetFuncParam(2): ' string Ctrl'
[MQ2]GetFuncParam(3): ' string Inp)'
[MQ2]Next - End of loop 1 to 2
[MQ2]Next - End of loop 1 to 2
[MQ2]Next - End of loop 1 to 2
[MQ2]Next - End of loop 1 to 2
[MQ2]Next - End of loop 1 to 2
[MQ2]Next - End of loop 1 to 2
[MQ2]Next - End of loop 1 to 2
[MQ2]Next - End of loop 2 to 2
[MQ2]Next - End of loop 1 to 4
[MQ2]Next - End of loop 2 to 4
[MQ2]Next - End of loop 3 to 4
[MQ2]Next - End of loop 4 to 4
[MQ2]Return - Returned to /call SetTextBox BazaarSearchWnd BZR_MaxPriceInput ${MaxPrice}
[MQ2]Call - Calling subroutine selectSlotAndSearch with params 3
[MQ2]GetFuncParam(1): 'int slotNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]count = 16320

[MQ2]count = 20

[MQ2]List: index is 0

[MQ2]Return - Returned to /call selectSlotAndSearch ${aSlotNum[${I}]}
[MQ2]Call - Calling subroutine getPriceAndSelect with params 1
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]Adding WndNotification target 'ItemDisplayWindow'
[MQ2]Adding WndNotification target 'IDW_ItemDescriptionTab'
[MQ2]Adding WndNotification target 'IDW_ItemLoreTab'
[MQ2]/delay ending early, conditions met
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine lookAhead with params 1
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]Call - Calling subroutine getItemName with params 1
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call lookAhead ${J}
[MQ2]Next - End of loop 7 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 8
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 97 to 10000
[MQ2]Next - End of loop 98 to 10000
[MQ2]Next - End of loop 99 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 8 950 750
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 8
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 8 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 9
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 115 to 10000
[MQ2]Next - End of loop 116 to 10000
[MQ2]Next - End of loop 117 to 10000
[MQ2]Next - End of loop 118 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 9 450 1766
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 9
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 9 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 10
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 97 to 10000
[MQ2]Next - End of loop 98 to 10000
[MQ2]Next - End of loop 99 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 10 100 336
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 10
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Call - Calling subroutine getPriceAndSelect with params 11
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${lastOccur}
[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 11 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 12
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine lookAhead with params 12
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]Call - Calling subroutine getItemName with params 12
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call lookAhead ${J}
[MQ2]Next - End of loop 12 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 13
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 77 to 10000
[MQ2]Next - End of loop 78 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 13 9 12
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 13
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 13 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 14
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 97 to 10000
[MQ2]Next - End of loop 98 to 10000
[MQ2]Next - End of loop 99 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 14 500 700
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 14
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 14 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 15
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 123 to 10000
[MQ2]Next - End of loop 124 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 15 100 12
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 15
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 15 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 16
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 112 to 10000
[MQ2]Next - End of loop 113 to 10000
[MQ2]Next - End of loop 114 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 16 100 144
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 16
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Call - Calling subroutine getPriceAndSelect with params 17
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${lastOccur}
[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 17 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 18
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine lookAhead with params 18
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]Call - Calling subroutine getItemName with params 18
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 1 to 2
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call lookAhead ${J}
[MQ2]Next - End of loop 21 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 22
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]MQ2Map::OnRemoveSpawn(Sebesiz) = 14272
[MQ2]/delay ending early, conditions met
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine lookAhead with params 22
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]Call - Calling subroutine getItemName with params 22
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call lookAhead ${J}
[MQ2]Next - End of loop 22 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 23
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
[MQ2]Next - End of loop 97 to 10000
[MQ2]Next - End of loop 98 to 10000
[MQ2]Next - End of loop 99 to 10000
[MQ2]Next - End of loop 10000 to 10000
[MQ2]Return - Returned to /call getSelectedTributeValue
[MQ2]Call - Calling subroutine checkAheadCompareAlert with params 23 475 120
[MQ2]GetFuncParam(1): 'int itemNum'
[MQ2]GetFuncParam(2): ' int tPrice'
[MQ2]GetFuncParam(3): ' int tTrib)'
[MQ2]Call - Calling subroutine getItemName with params 23
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 0

[MQ2]List: index is 0

[MQ2]Return - Returned to /call getItemName ${itemNum}
[MQ2]List: index is 0

[MQ2]Next - End of loop 2 to 2
[MQ2]Return - Returned to /call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}
[MQ2]Next - End of loop 23 to 200
[MQ2]Call - Calling subroutine getPriceAndSelect with params 24
[MQ2]GetFuncParam(1): 'int itemNum)'
[MQ2]List: index is 1

[MQ2]Return - Returned to /call getPriceAndSelect ${J}
[MQ2]Call - Calling subroutine getSelectedTributeValue with params
[MQ2]/delay ending early, conditions met
(554.814): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=00000001 ecx=0012c1d0 edx=030b41e8 esi=bb77a10f edi=00000001
eip=a29ea43f esp=0012d9cf ebp=0012e210 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00210202
a29ea43f ?? ???
0:000> .sympath SRV*c:\winnt\symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: SRV*c:\winnt\symbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\winnt\symbols*http://msdl.microsoft.com/download/symbols
0:000> r
eax=00000000 ebx=00000001 ecx=0012c1d0 edx=030b41e8 esi=bb77a10f edi=00000001
eip=a29ea43f esp=0012d9cf ebp=0012e210 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00210202
a29ea43f ?? ???
0:000> kv
ChildEBP RetAddr Args to Child
WARNING: Frame IP not in any known module. Following frames may be wrong.
0012d9cb 286c6583 4c002361 26d25065 2600370e 0xa29ea43f
*** WARNING: Unable to verify checksum for C:\Program Files\Sony\EverQuest\eqgame.exe
*** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\Sony\EverQuest\eqgame.exe
0012e210 004f8f4b 037a7520 037a7520 0012e7e0 <Unloaded_G32.dll>+0x286c6582
00000000 00000000 00000000 00000000 00000000 eqgame+0xf8f4b

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Mon Feb 16, 2009 2:05 pm

Which macro are you running? There is nothing very telling in you crash.

[MQ2]Call - Calling subroutine getSelectedTributeValue with params

Searching for getSelectedTributeValue returns no results.

Manual
orc pawn
orc pawn
Posts: 16
Joined: Sat Feb 14, 2009 5:10 pm

Post by Manual » Mon Feb 16, 2009 5:23 pm

I copied this from the macro depot.


| tribute.mac v0.2
|
| Author: I made it myself =P (zoobish)
| =======
|
| Function: Searches bazaar for tribute items worth buying.
| ========= You set the RATIO you like, i.e. 10 means 100pp
| for 1000 tribute. You may set the RATIO via the
| first argument when calling this.
| e.g. /mac tribute 15
| You can also set the MaxPrice with the second
| argument if you wish.
| e.g. /mac tribute 15 3000
| I find 3000 to be ample.
| It will alert you when it finds something.
|

#turbo

| This is the trigger for restarting the search after yah buy the current item.
| You can change it to whatever you want I suppose...
#event gogogo "#*#i need more TRIB now#*#"

#event notForSale "#*#That item is no longer for sale in the bazaar#*#"

Sub Main
| SET THESE IF YOU WISH, overridden by calling arguments.
/declare RATIO int outer 10
/declare MaxPrice int local 3000

/declare reStartFlag bool outer
/declare I int local
/declare J int local
/declare cPrice int local
/declare cTrib int local
/declare forSale bool outer
/declare aSlotNum[15] int local
/varset aSlotNum[1] 3
/varset aSlotNum[2] 4
/varset aSlotNum[3] 6
/varset aSlotNum[4] 7
/varset aSlotNum[5] 8
/varset aSlotNum[6] 9
/varset aSlotNum[7] 10
/varset aSlotNum[8] 11
/varset aSlotNum[9] 12
/varset aSlotNum[10] 13
/varset aSlotNum[11] 14
/varset aSlotNum[12] 16
/varset aSlotNum[13] 18
/varset aSlotNum[14] 19
/varset aSlotNum[15] 20

/echo Starting Bazaar Tribute Search...

| Check if a ratio and price were entered when called...
/if (${Defined[Param0]}) {
/echo RATIO set to ${Param0}
/varset RATIO ${Param0}
}
/if (${Defined[Param1]}) {
/echo MaxPrice set to ${Param1}
/varset MaxPrice ${Param1}
}

| *** Open the Bazaar window.
/baz
/delay 10s (${Window[BazaarSearchWnd].Open})
/if ( !${Window[BazaarSearchWnd].Open} ) {
/echo FATAL ERROR: Bazaar window could not be found or opened.
/echo ABORTING...
/endm
}
| *** Reset the Bazaar Search form.
/notify BazaarSearchWnd BZR_Default leftmouseup

| *** Key in monetary values
/call SetTextBox BazaarSearchWnd BZR_MaxPriceInput ${MaxPrice}

| *** Loop using Search by Slot.
/for I 1 to 15
/call selectSlotAndSearch ${aSlotNum[${I}]}

| *** Fix for activating "Inspect Item" button.
/notify BazaarSearchWnd BZR_ItemList leftmouseup

| *** Open each item and check stats
/for J 1 to 200
/varset cPrice NULL
/varset cTrib NULL

| *** Get the price of the item
/call getPriceAndSelect ${J}
/varset cPrice ${Macro.Return}

| *** If end of list, get next slot.
/if ( ${cPrice} == NULL ) /next I

| *** Get the tribute value, if any...
/call getSelectedTributeValue
/varset cTrib ${Macro.Return}

| *** If no tribute value, get next item via looking ahead.
/if ( ${cTrib} == NULL ) {
/call lookAhead ${J}
/varset J ${Macro.Return}
/next J
}

| *** Check ahead for the same item, and compare, alert if good.
/call checkAheadCompareAlert ${J} ${cPrice} ${cTrib}

| *** Set J to the position of the last item of the "copies"
/varset J ${Macro.Return}

/if ( ${Window[ItemDisplayWindow].Open} ) /keypress esc
/next J
| *** End item loop
/next I
| *** End Slot loop
/echo DONE.
/return


|==============================================================================
| Returns the position of the last occurrance of the item.
Sub lookAhead(int itemNum)
/declare lastOccur int local ${itemNum}
/declare iName string local
/declare K int local

/call getItemName ${itemNum}
/varset iName ${Macro.Return}

/for K 1 to 2
/varcalc lastOccur ${lastOccur} + 1
| Check if named the same...
/if ( ${Window[BazaarSearchWnd].Child[BZR_ItemList].List[${lastOccur},1].Find[${iName}]} ) {
/varset K 1
} else {
/varset K 2
}
/next K
/varcalc lastOccur ${lastOccur} - 1
/return ${lastOccur}


|==============================================================================
| Returns the name of the item, without the (number) bit...
Sub getItemName(int itemNum)
/declare iName string local NULL
/declare len int local

/varset iName ${Window[BazaarSearchWnd].Child[BZR_ItemList].List[${itemNum},1]}
/varset len ${Window[BazaarSearchWnd].Child[BZR_ItemList].List[${itemNum},1].Find[(]}
/varcalc len ${len} - 1
/return ${iName.Mid[1,${len}]}


|==============================================================================
| I suppose v0.1 of this was crap, it opened every item to find tribute value.
| This was slow, especially when there is usually a few of the same item for
| sale. This just looks at the first occurrence of an item for the tribute,
| then looks ahead at the prices to find the cheapest, without re-opening an
| item window(cause of much time waste). Returns the position of the last
| occurrence.
Sub checkAheadCompareAlert(int itemNum, int tPrice, int tTrib)
/declare lastOccur int local ${itemNum}
/declare lowPos int local ${itemNum}
/declare lowPrice int local ${tPrice}
/declare iName string local
/declare K int local

/call getItemName ${itemNum}
/varset iName ${Macro.Return}

/for K 1 to 2
/varcalc lastOccur ${lastOccur} + 1
| Check if named the same...
/if ( ${Window[BazaarSearchWnd].Child[BZR_ItemList].List[${lastOccur},1].Find[${iName}]} ) {
/varset K 1
| Get the price...
/call getPriceAndSelect ${lastOccur}
/if ( ${Macro.Return} < ${lowPrice} ) {
/varset lowPrice ${Macro.Return}
/varset lowPos ${lastOccur}
}
} else {
/varset K 2
}
/next K
/varcalc lastOccur ${lastOccur} - 1

| Check if item meets value requirements. If good, alert and wait.
/varcalc lowPrice ${lowPrice} * ${RATIO}
/if ( ${lowPrice} < ${tTrib} ) {
/call getPriceAndSelect ${lowPos}
/call alertAndWait "${iName}"
}
/return ${lastOccur}

|==============================================================================
| Alerts, beeps, and waits for continue text...
Sub alertAndWait(string itemName)
/declare K int local
/if ( ${Window[ActionsWindow].Child[AMP_EndFindButton].Open} ) {
| end find...
/notify ActionsWindow AMP_FindButton leftmouseup
/delay 1
}
/popup GOOD ITEM FOUND: >>> ${itemName} <<<
/notify BazaarSearchWnd BZR_FindTraderButton leftmouseup
/for K 1 to 5
/beep
/delay 2
/next K
/popup GOOD ITEM FOUND: >>> ${itemName} <<<
/call waitForGo
/return

|==============================================================================
| Returns the tribute value of an item. Does this by opening its item view and
| extracting the text.
Sub getSelectedTributeValue
/declare K int local
/declare tTrib int local NULL
/declare tInfo string local
/declare tPos int local NULL

/if ( ${Window[ItemDisplayWindow].Open} ) /keypress esc
| Open the item window
/notify BazaarSearchWnd BZR_RequestItemButton leftmouseup
/delay 6s (${Window[ItemDisplayWindow].Open})
/if (!${Window[ItemDisplayWindow].Open}) {
/varset forSale TRUE
/doevents
/if ( ${forSale} ) {
/echo BAD ITEM...
/return ${tTrib}
}
}
| Get the text, check for tribute...
/varset tInfo ${Window[ItemDisplayWindow].Child[IDW_ItemDescription].Text}
/varset tPos ${tInfo.Find[<BR>Tribute Value:]}
/if ( ${tPos} == NULL ) {
/return ${tTrib}
}

| Parse the tribute value
/varcalc tPos ${tPos} + 19
/varset tTrib 0
/for K ${tPos} to 10000
/if ( ${tInfo.Mid[${K},1].Compare[<]} != 0 ) {
/varcalc tTrib ${tTrib} * 10
/varcalc tTrib ${tTrib} + ${tInfo.Mid[${K},1]}
} else {
/varset K 10000
}
/next K
/return ${tTrib}


|==============================================================================
| Gets the price of an item in the bazaar search list, also selects it in list.
Sub getPriceAndSelect(int itemNum)
/declare tPrice int local NULL
/notify BazaarSearchWnd BZR_ItemList listselect ${itemNum}
/delay 1
/varset tPrice ${Window[BazaarSearchWnd].Child[BZR_ItemList].List[${itemNum},2]}
/return ${tPrice}


|==============================================================================
| Selects the Item Slot and does search. Waits Max 10s for results.
Sub selectSlotAndSearch(int slotNum)
/declare gotText string local
/declare count int local 0
/declare tt int local NULL
/notify BazaarSearchWnd BZR_ItemSlotCombobox listselect ${slotNum}
/notify BazaarSearchWnd BZR_QueryButton leftmouseup
:WAIT_RESULT
/delay 5
/varset gotText ${Window[BazaarSearchWnd].Child[BZR_ItemList].List[1,1]}
/varset tt ${gotText.Find[(]}
/if ( ${tt} != NULL ) /goto :WAIT_END
/varcalc count ${count} + 1
/if ( ${count} > 20 ) {
/echo ALERT: There doesn't seem to be anything to look at from the search...
/return
}
/goto :WAIT_RESULT
:WAIT_END
/delay 5
/return


|==============================================================================
| This waits for the user to buy the found item, user then keys a phrase,
| and search restarts.
Sub waitForGo
/varset reStartFlag FALSE
:WAIT
/doevents
/if ( ${reStartFlag} ) /return
/delay 1s
/goto :WAIT
/return


|==============================================================================
|This is the event handler for when the user has keyed the restart phrase
Sub Event_gogogo
/varset reStartFlag TRUE
/return


|==============================================================================
|This is the event handler for when the item is no longer for sale
Sub Event_notForSale
/varset forSale FALSE
/return


|==============================================================================
| This sets the text in a text box control. Does not affect sliders. There is
| different code for that.
Sub SetTextBox(string Wnd, string Ctrl, string Inp)
/declare I int local

| Clear the text box
/notify ${Wnd} ${Ctrl} leftmouseup
/for I 1 to 2
/notify ${Wnd} ${Ctrl} leftmouseup
/if ( ${Window[${Wnd}].Child[${Ctrl}].Text.Length} > 0 ) {
/keypress backspace chat
/varset I 1
} else {
/varset I 2
}
/next I

| Fill the box...
/for I 1 to ${Inp.Length}
/keypress ${Inp.Mid[${I},1]} chat
/next I
/return

|===========================================================================end

deadchicken
a hill giant
a hill giant
Posts: 161
Joined: Thu Sep 28, 2006 1:00 pm

Post by deadchicken » Mon Feb 16, 2009 5:44 pm

You probably picked a item that has more than 2048/4096? text or some such.
Agripa: So what you are saying is that MY code drives users insane and YOUR code drives the computer insane.

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Tue Feb 17, 2009 2:21 am

Elaborate Defiant Chain Sleeves for example.
Slot 1, type 7 (General: Group): empty<BR>Slot 2, type 13 (Energeiac: Group): empty<BR><BR>Effect: Cleave II (Worn)<BR>Focus Effect: Sothgar's Anger<BR><BR><BR><C "#8AA3FF">Cleave II</C><BR>Spell Effect: Fills your muscles with fury, increasing the chance of scoring a critical hit with a melee weapon.<BR><BR><C "#8AA3FF">Sothgar's Anger</C><BR>Spell Effect: Increases the damage of fire-based spells by up to 25 percent. This bonus will decay on spells over level 75.<BR><BR><c "#00FFFF">Item ID: 50193<br>Value: 9pp 5gp 3sp 7cp<BR>Tribute Value: 80<br>Guild Tribute Value: 80<br>Item Lore: For the use of anyone willing to take up arms<BR></c><BR><c "#FFFF00">Spell Info for Worn effect: Cleave II<br>ID: 3884&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Duration: 60.0 minutes<br>RecoveryTime: 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecastTime: 0.00 <br>Range: 100<br><br>Slot 1: Chance to Critical Hit for 1H Blunt by 80%<br>Slot 2: Chance to Critical Hit for 1H Slashing by 80%<br>Slot 3: Chance to Critical Hit for 2H Blunt by 80%<br>Slot 4: Chance to Critical Hit for 2H Slashing by 80%<br>Slot 5: Chance to Critical Hit for Backstab by 80%<br>Slot 6: Chance to Critical Hit for Bash by 80%<br>Slot 7: Chance to Critical Hit for Flying Kick by 80%<br>Slot 8: Chance to Critical Hit for Hand To Hand by 80%<br>Slot 9: Chance to Critical Hit for Kick by 80%<br>Slot 10: Chance to Critical Hit for Piercing by 80%<br>Slot 11: Chance to Critical Hit for Frenzy by 80%<br><br></c><BR><c "#9F9F00">Spell Info for Focus effect: Sothgar's Anger<br>ID: 9522&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Duration: 195.0 minutes<br>RecoveryTime: 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecastTime: 0.00 <br>Range: 100<br><br>Slot 1: Increase Spell Damage by 1%<br>Slot 2: Limit: Max L


Here's the fix:

Code: Select all

|/varset tInfo ${Window[ItemDisplayWindow].Child[IDW_ItemDescription].Text}
/varset tInfo ${Window[ItemDisplayWindow].Child[IDW_ItemDescription].Text.Left[2000]}

Manual
orc pawn
orc pawn
Posts: 16
Joined: Sat Feb 14, 2009 5:10 pm

Post by Manual » Tue Feb 17, 2009 9:40 am

Yes actually, it is when it comes to an Elaborate Defiant piece of armor.

And thanks for your help.

User avatar
KungFuHamster
a snow griffon
a snow griffon
Posts: 337
Joined: Wed Oct 02, 2002 7:47 am

Post by KungFuHamster » Tue Feb 17, 2009 12:32 pm

Gotta love the embedded spaces.

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Re: Crashing EQ while running Tribute macro

Post by dont_know_at_all » Wed Apr 27, 2011 2:31 am

Cruz,

Replace

Code: Select all

| Get the text, check for tribute...
/varset tInfo ${Window[ItemDisplayWindow].Child[IDW_ItemDescription].Text}
/varset tPos ${tInfo.Find[<BR>Tribute Value:]}
/if ( ${tPos} == NULL ) {
/return ${tTrib}
}

| Parse the tribute value
/varcalc tPos ${tPos} + 19
/varset tTrib 0
/for K ${tPos} to 10000
/if ( ${tInfo.Mid[${K},1].Compare[<]} != 0 ) {
/varcalc tTrib ${tTrib} * 10
/varcalc tTrib ${tTrib} + ${tInfo.Mid[${K},1]}
} else {
/varset K 10000
}
/next K
/return ${tTrib} 
with

Code: Select all

/return ${DisplayItem.Tribute}