|
转载
* M; i l& `) T# y, S3 S( |0 G+ q: w" ^' f- Z
6 b" X& v8 B5 F" L4 t4 y% K
- ////////////////////////////////////////////////////////////////////////////////////////////////
7 \/ j6 N. a2 N - // D2Client Functions //函数表
; _% X( n! A8 J+ g) ? - ////////////////////////////////////////////////////////////////////////////////////////////////" k/ Z, Y( z- z8 @
, q2 X. a6 d7 [, z9 k; M2 e- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//
4 C/ p! P x* [ - FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//: x. g4 P: c' |: w# i
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//
0 s; e) Q5 q6 A* @9 k, e: {0 v - FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//# v* m+ u1 b4 n: [) y( Y
- FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
\, G) ~- d6 ^9 D& i - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//
5 n7 o Z+ V: h( a; _0 F7 C - FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//
3 U( b) j7 O( L) f - FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//
! D, e# ~. Q* O) D - FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//
- c# i$ R0 @9 ]6 m - FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//
- o9 ], g% N7 N) j: f0 ]0 O$ t - FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//; \7 g8 [8 h- e* L
- FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//: Q5 T, m3 e, F) z6 p5 w! h/ l1 A: g
- FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
8 u! K- Z& l0 a - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//7 W. g* p" o: \' e5 L# X
- FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//9 I2 M* H3 J: P$ {7 ^
- FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//' V# j) z& ]' \! X
- FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//
1 R$ t7 y$ ^3 s0 K9 Q, p/ _, k - FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//
8 Y% X/ m/ i7 k0 o- Y& F0 v - FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//6 D4 X" r8 c; A+ B: q" _
- FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//! I' Q. j% D7 G A% `( c
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
/ p2 E( X! v0 P" B - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//9 m) K0 X* Y. h2 C$ n' M3 r
- FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//
& e' p+ N& a9 q# I5 g* V/ V' ^% l - FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//2 @- y6 v" }) G" X4 m
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)/// P0 N3 T8 J5 l0 x( P' |4 H
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
/ u2 _6 _/ K- u" I. Q( Z( e, C" A - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//# J9 L0 y k; b! T" @) `( m% P; X% N
- FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
9 f& W& q8 \: C/ @- u - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//
4 n) Z9 {: ?$ t( a - FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//
7 n# L$ W, ]1 E/ w - FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//3 Y; Y+ V5 O; a6 D
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//: a" K: \& K3 V
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//9 x; s, K- s8 i. N
- FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//2 W6 M3 _; m9 k6 J$ \
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
# ]2 }* C7 Z+ Q B3 U - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//
. p1 S2 N7 B$ K - FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//0 c. m9 q/ ?" \5 c7 k% F! r% q# @1 R8 f
- FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//+ E. D" F7 m* p& S
- FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//- A4 I1 j+ i* {
- FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//2 ~( N1 J' g: a% `! n
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//
4 c7 }8 l! w x1 o4 ?( y - FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//
8 | }, \6 C2 J - FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//. i' g; d- a9 |' e( E
- FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//
: }) I* ~0 p- n6 n \ - FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//+ u0 H& H6 ~! f% p6 h/ n3 t0 J
- FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
4 J/ E" Z( q5 H8 c* t; l. D1 W - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30); y4 V6 P9 Q8 Y" y" a/ A- Q9 q8 T& _
8 Y6 q6 {! x7 I2 c7 w1 e' D9 h. \3 Z; ~" F- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
& ^$ `# I4 Q$ K - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
0 I: \5 ?( h6 B9 W R3 p' h) V8 I0 l# Q - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
) W) b: S" u, \
, x, a9 j$ Y7 h1 Y! _4 J( I- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//. W/ ?/ z" t: d/ A5 G
- VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//4 v/ F4 |3 \8 [
- VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//
5 z6 D1 R& f" a/ S& l1 @; M - VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//8 O) V$ U/ g x$ c4 d
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到# H7 l Q/ J# K
- //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到
, s# s8 R: Z x6 y' n - //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到* D F4 H+ G. W' a
- //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到9 U$ p. g" u/ m/ C+ [
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
( w/ x0 _- S1 ? - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到& G5 R1 w6 h1 x
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到
3 G" p+ D1 f2 K8 J0 d6 @$ T - //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
; B- r" V0 U- D v- d$ D' Q& b - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到
7 U7 R% u; c; Q% o - //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到. e7 a4 U8 K* E: ~+ Y, K- a: M$ p
- //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
( _! y7 i+ u4 N - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到
2 u- e$ G O* {% b2 P7 h6 r/ K5 } - //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到) I% o( v" z6 Q! W- t ~
- //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到$ ^% H& {/ U$ B0 f. M% _) j
- //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
( c, w2 A! r) m' i - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到
( J6 M+ R+ m1 T0 F2 b - //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到+ T- I; A# V. V+ m% E) R
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到) m; i1 {8 U6 U2 ^4 f
- //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
1 Y; p: N# I% Q3 ^ - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
: [3 Z s P5 X) I$ o9 _3 x - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到3 K2 k U( l8 _* ]
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到
% U% i9 F% `" K# D- k - //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
8 b% u1 f. H, i q - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到
$ X- j6 B! ?& \1 y% C' N# |5 Y - //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到$ Q# N9 }0 \9 h, Y4 Y
- //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到# R: N4 W1 r. E
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到4 M. s7 X( e1 _1 p) g {0 p* V
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到
% L4 U6 z6 @ p* P$ T1 o - //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到
, }6 X: _+ c" P" A- A3 W# m5 ~) b - //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到/ E/ |, h5 I- G* b( U! X! ?0 J
- //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到
9 b0 C8 A/ N+ [, U. r1 F0 p - //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到
% ?( Q/ t" v* a. D! O, l4 F - //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
5 T- R# ~0 i8 c3 i4 l2 D - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到4 X5 r( W. ?; J7 z
- //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到
6 n6 s& Q: u' q) w& p9 X3 m6 B - //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到+ I' e# l+ G* o; G; d; L- ^
- //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到
0 v5 Q% F+ l$ F+ G2 R$ y$ Y) E7 K7 P - VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
3 Q$ q1 j( P- X9 B, L% S - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到! D3 g3 _) d8 `0 c3 Q F9 Q9 z; @
- VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]: c* B6 e& z+ L8 R6 K
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到) p8 X6 J5 R$ \, c: H H8 h3 Y
- //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到6 r0 e5 Z7 u/ }6 F- N
- //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到7 w" v9 c3 A- }5 N4 w! ]
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
- `' C0 C+ r! a4 }( T3 j+ e* b - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到3 R! q$ p' s: m" T. @& a+ \9 O
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到2 l5 s* L! N/ O# z/ z, {
- //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
+ U6 A" G g1 Q! i& q4 n4 E - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到
6 N9 b( [# V8 M/ u! B. E7 n - //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到
) ]3 O' T. [3 v/ M - //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到# Q# f L k& `5 U
- //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到. Q4 a, n( j: }( U j
- //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
) O# `( U+ l7 Y9 {8 l3 M: o+ J& Q - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
8 b5 K& e6 _% b( l) X: T: S& Z - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
5 y! _' J' S0 r7 N1 E - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 3 k/ [$ ^" N& j" L- ]$ ^
E& ?8 B9 A' m }/ t0 A |
|