|
转载) O* G' a. X [* _+ u, @& o
9 s3 R$ k" W* P
0 D8 R+ E3 g4 \
- ////////////////////////////////////////////////////////////////////////////////////////////////
( V) _7 ]6 S- A - // D2Client Functions //函数表
& i0 D& z( W* ^! B% F1 E7 B - ////////////////////////////////////////////////////////////////////////////////////////////////
- b* W' x2 P. ? @/ z
" N5 n+ V2 \2 N- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//. m4 v I5 f1 a4 W% r
- FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//
( m" d3 q% q8 n( P - FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//: s6 x- X: W; t- A- A) V
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//4 t; @ s8 l0 O' N! l% s
- FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
* n3 F) |, k* t; f: g5 T - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//
: A- v* m. j) p4 H* i" w' _" w | - FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//
' _4 n5 y5 Q4 S8 Z' } - FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//
4 f! j0 B" S( E1 u - FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//1 |, M5 f- f3 _, @
- FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//0 Y* o7 Z% N3 j3 Z' X
- FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//
# U+ o: [" i' v- R - FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//
. H( c: c; D" e/ _6 ` - FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//" y/ ]1 _, h* V9 I4 p! w
- FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
3 q1 @+ L& ?& B2 S2 e& l- l% W - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//, F9 x% m; G& R( J$ ^) [1 j; u
- FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//* h) `& t2 ]- F# j
- FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//
; Q+ @8 A0 [* a, E9 \$ I9 ^; g8 J - FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//
9 t! T. A1 t3 C6 F! w - FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//
. ~9 ?0 y, R7 v) g - FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//. K O. v/ E) ^- [5 H4 F4 b- g& J
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//& C1 v) C0 R- t9 a" x: \8 @3 U3 S
- FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//
! m! P( M c- d/ D - FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//2 |) E* p6 i ~2 d+ F1 j. \
- FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//5 D8 X- t9 Z$ q% O
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//" y7 x$ C* z3 j' B: [9 S
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
8 c m$ |( B4 _( f8 P - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//
" y- b- ]3 `8 F1 ~6 ^; J - FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
, ~" F+ W/ I1 K9 z `9 P1 i - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//; @( O( v" ~) c2 A
- FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//& t9 O& Q, N: u) b4 K' L9 c6 t
- FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//
% J8 _ v, Z% ~* D" \/ [2 r; b - FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//
+ A% c/ r3 h/ Y0 E9 d* P+ P - FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//9 ^. K4 {$ j% y6 ?0 B! h
- FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//
8 w6 _( c: ^8 l& P - FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
% }2 d* R' k c" a - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//0 F- I* d# A$ N. \3 @ s% D
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
0 Q1 C8 z7 c9 n4 ` - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//- v- D- T6 ]1 D
- FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//; z, T; J0 B( a3 m/ t6 f& W
- FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//# a* C0 ^! p9 Q! B6 ], `9 W( ]3 p
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//% g6 b! y. Z( R5 s/ D
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//
4 l- A2 n8 i6 a6 b' f/ Y - FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//
+ D; U3 w* S4 L4 I, C - FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//, o% j* t1 _: ^/ Y
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//
H( \" k o, F5 G6 W5 Y - FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
2 {$ U1 C h; y: v) y5 u - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);9 ]% l9 Z& y# w$ g- R+ C: q
9 t# k* J8 `9 V( g% |& Z" v1 g3 s- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- B' n; c/ `, V0 ?# |( z - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
0 S) Y! n' A# I4 }) m/ v+ A - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
0 w- |- u& [) y/ g$ I- w
2 `2 z7 z$ P4 t3 N3 Y0 v. d- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
# o8 p6 e4 f1 T! I) e' | - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//# N" ], u9 Q; D' v7 O$ n7 s
- VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//
6 q/ F$ T5 s4 O; c4 L( w. Q - VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//
2 [4 A* u2 h" f8 V3 N- G - //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到8 ]3 a$ l" A$ S5 \8 N
- //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到! J. p6 m6 _7 ~' E
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到* _9 K- G6 |+ q7 ~. r
- //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到$ V: ^4 E) T( E4 ]( q6 F
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
4 ~. [5 V C8 T* r9 p6 e - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到
; k$ f- H- @" _4 w, ~$ W - //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到4 X+ J' K8 h+ L" }" x- `5 _
- //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到3 \3 s5 P) d9 l: b/ ~4 w2 x7 }* U$ W
- //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到
" ~/ @/ F8 {/ I1 |- N - //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到- S( \4 ?3 \3 N# E2 U( {7 S; B, P% m
- //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
) g+ s3 p: K% r3 O - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到
$ o1 _: R8 l! L. N. ?7 ~- ?5 m - //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
6 [7 y/ ` P5 _6 r4 H/ k+ ^: s - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到, u/ j1 L3 U4 |, ?* n9 G
- //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到8 S+ G9 D- m! Y
- //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到
! w# [# L, G; [+ y8 y5 k - //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到& ~0 J7 o4 U2 w
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到9 j* h d3 Z( }! U: K! l
- //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到, @) {6 ^8 }3 h7 Y
- //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
5 x! J+ h5 R* Z, i - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到1 U. y ]# w. q2 a) F5 A& X
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到) |( \; N& R. I1 k
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
0 K5 V! l" Y q4 n0 P& @ - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到3 n; I8 I& ~+ G/ Y
- //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到! i( M4 s" M- F6 h; _ X) ~
- //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到
2 ^/ M j. Y" ^$ l% T' c" u - //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到4 C& U' c* b' E
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到4 Z2 k. z3 u6 U
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到
2 Z: O7 m) ?, M# j2 U! ? - //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到
1 o) I0 n. R, a: l7 L- m1 W - //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到/ L2 |7 G1 y B' L1 L
- //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到
6 c( j% s( E, m @7 @ - //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
" [9 t& ?# X0 {+ m; m8 E6 c - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到
G4 k$ \: A3 _0 k& b* ]5 f1 `% [ - //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到/ Y$ K- c" I( ^
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到
# u+ w E ]8 C* |" G3 ` - //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到( B4 K% F( F) H# g' y7 _0 }
- VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
/ n, m! a# z b4 ^5 L - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到
. @2 R4 R: Z/ E3 Q6 n - VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]1 A5 Y* ^% P. u J) t* ~+ x `0 u
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到1 R$ d& g; j4 i1 @: M* V, v
- //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到
7 {2 D2 l6 _; R - //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到7 Q* _5 w* F( m/ H
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
- R9 v$ Q7 I# H3 ^" w) D0 B( } - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到& \3 _/ `4 q. d0 \
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到$ _1 ]; ]( P8 W
- //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
% G& b2 U3 x2 }) Q - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到2 |2 d- q# P6 b1 H9 j; u; T0 F: A
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到: U8 F. T% N# d! P0 g% H
- //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到6 T6 x( s, d: w6 d! I9 x! B: `/ Y
- //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到8 `* a/ i3 X9 k% x1 \
- //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
: s, ^* j6 {& _- t - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
2 ^% J/ F9 E# U# j+ g5 t0 [; f/ V - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
" ?: o3 e" k# X4 T4 E+ u - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 9 S' g3 N) [9 l+ M# Y
5 g2 n4 D/ l; Y) \3 z, {- _3 ` |
|