|
转载" G; k0 @8 x9 A- N5 n8 L8 V% v
* w- c' A( N5 }( k" S
6 `$ f1 d4 _% L- ////////////////////////////////////////////////////////////////////////////////////////////////
& v% q$ k$ u( c - // D2Client Functions //函数表- k# D; G# M$ p8 p, Z6 w
- ////////////////////////////////////////////////////////////////////////////////////////////////
, }4 h" k9 [2 U \3 R+ Z
7 h5 w7 C+ _5 `- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//5 P5 O- d; I7 `- o! L% n4 X# L
- FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//: E/ m$ k7 O" W2 I+ F1 M1 s+ H+ I, X
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//* u8 I. D f8 Z, V T! |
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
d2 \& w+ t! t& J$ m - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//: }: R3 g& B" X4 d
- FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//* u8 G# ^0 r1 V% ?+ i6 M, ^1 v
- FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//" @; l8 p$ A# P9 b( R
- FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//) T i- ^& ]/ [3 _ V6 V* t
- FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//3 V- L; W. M7 ^. c5 M. c7 Y- F! f" U
- FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//
6 l! t; \+ j; J( U/ O - FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//
4 ^- j5 r0 S9 k1 m( W9 q ~ - FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//
; ^- d& x1 z; q! A - FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
& m: S% B6 p7 P - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
2 J1 X5 l. V4 g6 H - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//# N( W! D" A% T, G8 Y/ f
- FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//
2 A F: P. y, x g. b - FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//
+ S' o2 L6 v. C8 ^7 t - FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//9 n' t/ x/ s# P! g7 [
- FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//7 c' X/ v0 S0 O5 R
- FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//, G$ |$ T2 t' Z# J" a% C8 n" S
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
. ?7 p) e% ]% | - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//
4 @0 }/ K7 }' O0 q - FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//; M6 ?. }1 x5 x$ b
- FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//! {8 f7 ~: n( I. u( x7 f/ a
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//
+ G3 q5 P4 V6 ~" u; r- u8 `! e. P - FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
1 Y B" t+ A' n& @( f8 e/ F - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//
3 x7 |3 t5 s0 s. [# j - FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
, q) e5 x+ R: e% d1 W9 x - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//8 e5 {" _, E, }. q/ e
- FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//% B: n+ _2 `8 H- w
- FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//, S! G: n7 ?/ W) D, L
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//
( c0 N: O- f3 B9 t - FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
& g6 _! g* `7 m& A k# W( x/ O6 Q* d - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//# u7 v. S8 J# g
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
2 E& ^' l% Z1 | - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//1 d8 ]- R( C! |! a3 @6 m
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//9 U5 o% G. Q& \: w$ Z/ V4 N1 O
- FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//6 o! Q( M9 s( I% E
- FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
$ F( o1 v! {8 M* Z8 c+ T - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//2 \. @3 H/ o( o
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//; P5 h+ h) n+ n1 @
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//- K* O; H$ q3 p" T- E
- FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//, d" d4 a5 n- j! w* v) C, n
- FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//; o! k0 s5 {. U4 f3 `
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//- H' Y7 u! N, s2 Z, T
- FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//: R+ B4 \% j% }6 A G R4 k
- FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);
) H& K2 v$ G% ?: \8 u" N# U$ D0 w6 n, q - 3 D# i/ k) c) q- E
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9 U( Q! q! d4 |: q: T# c$ y* I8 b - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找% q" [/ Q; d1 K+ B$ L8 ~
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4 t6 U. P, K8 N$ T v$ J
; q2 m1 f0 ? |% ^) G/ Z- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
' d6 o- R- z, i' l$ R - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//. y6 Z0 V7 z& k6 r
- VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)/// t7 b) T+ ?5 a1 V' f
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//
% l" U+ w% p2 l6 U7 U `( Y - //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到
9 | c# u4 I$ V* a. M0 l" J _8 J - //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到
; _( [: s2 x9 @3 E - //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到
) b, u# D. a. G& N - //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到/ V+ V4 }9 c) K& y9 _2 j/ r
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
9 N6 ?7 P7 ]3 u9 c6 I7 e7 T - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到9 g/ u+ G# v! B& t. k
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到. Q$ S$ t7 c) g2 g& E5 q1 J" z3 v6 {
- //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
8 K! W+ w1 [! T# n% P1 j - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到
4 _8 Q" X( ?; H2 a3 t2 B- E, K J - //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到: O1 A- S9 j' W* e( N% l. M
- //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
6 {* e. k$ V# J5 Y8 D - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到
9 Q* X9 |! v" v. C! Q; C& t - //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
! r$ ^1 a, t* }* C- E( d6 g - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到& m# S4 I& W0 G4 K7 K
- //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
0 R% D) O5 W' q7 m- @7 A" f; s: H) s - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到
- b) t( R7 R5 e( j0 x - //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到4 A" _3 `& b# v0 |2 k4 J
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到. k, @: R+ Y C% f* d7 j2 a
- //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
* Y. ~; n# S' o& x7 z% j/ l4 ?& B - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到0 T) l( W, U s
- //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到
5 T& j( ~9 c7 T6 H - //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到' \7 f% s- b6 z: A+ W1 b
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
- d9 a5 f6 J3 {2 O& e N e0 C - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到
: P$ q" }) b% K' M+ ~- P2 }/ d - //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到
, f0 M+ R0 d$ E: v0 e0 i6 V - //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到) t- c4 A- k6 G
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到' U5 X/ p% N* ^/ ^
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到6 _- Q! y5 D. w8 u: b9 o4 M( P+ [. x
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到
7 D, W Z: w! S4 R, l5 x# D - //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到7 h# D$ j3 t) w3 V) h9 B4 W$ V
- //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到
: L k0 j+ X& u, b) I7 B - //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到
7 H; j( ?" s, v& s; x - //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
& v% w6 P) n V5 l0 W( \ - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到. t3 t$ ^5 y) u; D: t0 @7 u
- //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到
8 X, _6 m6 [0 K7 H+ B - //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到
9 @1 \. b& W( `+ H: r- q1 a - //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到
. U& k# A$ L/ Q$ V - VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]& `1 O3 d3 g+ j/ `
- //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到; y3 l, `1 n: l4 g0 v1 M
- VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]: G6 \) T8 ]( C, a- _/ f
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到
( o/ k0 L7 R0 D/ a h6 P - //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到
1 e, H6 @; V" W% R* u - //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到
7 I, ^9 F: R, v - //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
( ?" D* H+ n) R: b - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到
, f0 V+ E6 _, J K5 N' \ - //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到! }1 S$ n/ S, A5 t
- //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
1 Z2 x. U! f( P - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到
g. x* B2 j6 x4 c4 v$ w7 e - //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到
0 j: U* S% G3 @$ H7 T - //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到
1 U; [# U: t' U5 o) D0 f- n - //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到
, K% {4 s7 Y" X6 ^' K - //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到+ ^* B1 l8 K) R* t& D+ q
- //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到- z" V* O( p/ c5 ^# ~. j$ Z& O
- //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
+ d/ i$ i+ y7 I6 k1 ]3 W- \* o* ] - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 . g. f2 _: |4 P" V4 v" y a% k7 [
0 Y$ T/ P5 K7 q5 ]
|
|