|
转载+ e+ K9 Z- Q$ h/ I* X
; t9 }, \9 g1 q# a5 r) I9 }9 Y" V- k
- ////////////////////////////////////////////////////////////////////////////////////////////////; S+ j" G2 {9 e6 [
- // D2Client Functions //函数表
( C" S2 t4 o* Q y$ { - ////////////////////////////////////////////////////////////////////////////////////////////////
. }' w0 K1 A5 ]+ ?, u - 1 \) L$ W' E3 t6 W
- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//
% X6 E. h- A' B+ I" S: N/ N2 s - FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//
% b3 b3 i8 q" j - FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//- [- \: e0 f% ~
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
; M2 e+ \( N1 F! ~ - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
3 Z, T6 u& ~8 m0 p+ I - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//. M, q& i3 a+ L. s' x. I4 I4 s$ J
- FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//. A8 G9 k% V' i4 J) b
- FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//) Y7 B+ X2 p2 s
- FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//: d1 C; U4 Z6 V% i0 w6 H
- FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//: N( J& _0 r; E( B
- FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//
% K) C8 A6 ]2 N: `9 ~ - FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//4 [& D! d2 U4 @+ m( b# ]
- FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//5 @" c2 E! E; Y' F: V
- FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)// O: A* _& ^4 P s
- FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//
4 K' X, j- I/ v4 `' i - FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//
( t" ?( x- p2 b7 O - FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//
. v; }) b, a1 U# h - FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//
! f* U E2 T! N: B6 q( ~ - FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//& Z5 m# V. B9 ~' c7 ]
- FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//
# P$ a# U0 N( s* ~5 r, G) }5 F - FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//4 ?0 H$ \5 U* }+ z
- FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//
: X* z' t( O. p, O - FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//
0 h3 U# O7 c" `9 z. H, K - FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//
' B7 v. H( C- `% g; n+ q- o - FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//( h9 u& v# v. G+ z! n+ e! f" D' ?
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
, S! _3 Z( {4 K( S. H - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//' f. O& \& _- W* n+ E
- FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
8 j) v% i1 w* X4 V - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//& D! U) L! i9 J' k2 C8 b
- FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//
: V' F) v' q6 z. h+ a! B - FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//* ~; t6 q) o$ {3 B
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//0 c7 |: w( I( Q, |6 v; p
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//% ]1 N( {. R3 `" [& f9 G V8 e4 P
- FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//
0 g7 d5 U6 L% X - FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
( Y- @# O2 N0 c - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//; H6 I9 x8 T# m6 D+ J% q
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
( |+ x# N5 E8 k+ v0 g - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//
- Q% ^: i4 f8 b - FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
: T- q0 J! V6 t* Z - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)/// q+ n8 P; U& L- e7 }8 K$ a
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//
8 g% A7 v; C3 A - FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)// C" n4 u% ]: p: m/ \$ N
- FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//. Y9 W c2 _! j) H: c
- FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//
6 O& X+ i1 A; R h0 n2 g' J+ P - FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//5 D! m0 r# l0 Q" X9 h" v/ s
- FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
- _- O' s/ J9 }5 ?) s6 u - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);
- h Y; p J# p+ I
! O8 f+ i# ~. l" A2 V, l+ G- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
% k1 J! Y+ l8 O' O, G: W - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
* K) e( ]. w* ]: T - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////( L" X- p8 u* X6 _3 W+ }3 ]+ q
- ! e: G0 k6 v. `" g9 w. s
- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
( J& N0 @) }3 H - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//
- L1 m2 Z& h. h- l8 {4 | - VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//& s$ q7 l! O! d
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)// m5 \" H* e" ?' F! d
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到
0 e0 _' z1 M0 h - //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到0 }8 t) v, o3 ~" }2 C. f1 ^
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到
8 Q9 c0 O0 P, G7 T - //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到
8 m* P& m+ @+ w# ~7 ] - //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到5 X: F C; e7 d$ o0 F" b
- //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到" e3 a4 s* j6 w
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到% r4 j: x" R m* G; G" r! d
- //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
- b; F. Y" o% Z/ B$ S7 C - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到; }( k2 }! S( q- U L, U, P6 V
- //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到
. g) l2 k2 [/ ~9 p - //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到" v% c K, k+ ?0 k) ?* K$ A1 s
- //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到4 M* I' L4 q9 u0 S/ L1 L$ l* ]
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
& `; ~7 J1 _4 q9 q - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到" |) U4 q' N- x9 c" x0 j
- //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
- }& G) ~- Y' |; C- T - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到$ L2 A5 [' @. S6 B2 e9 S
- //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到8 V* Q/ o6 X6 K4 U# Y) ^# F3 E
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到
" G9 B. {4 W+ G3 _ - //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
+ `6 ^1 n- N$ x% f# X: s' z# {, ?7 l - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到9 i$ O* P4 J7 e# G7 P
- //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到
6 [' l7 I1 [7 b! E) ? - //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到' D8 N) T ^8 O2 h
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到- ` y& f& U1 n" X2 P$ ^6 n6 h# }
- //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到
& V# k0 U5 n/ d9 w' b* n - //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到
; z6 _) J/ ^0 [, Y+ Y - //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到& D, {7 t5 B: w. \: h1 ?
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到
( C4 o( c4 J+ A F - //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到
3 N6 g* I2 ]2 m* C5 E+ x - //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到6 W' \( H# m% S! ^
- //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到
& u9 i! i1 z, C2 F" Y4 f - //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到3 C+ A! H) i4 E- a
- //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到: w2 M# {: I g9 `
- //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
7 `1 S( c6 P/ l$ F4 d$ q: `! \* _ - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到7 _ U2 x8 u, K" f/ L8 r0 R8 I% _
- //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到5 Y+ k' r& d) D! R- J% @
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到5 q# Q. ^, I6 S
- //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到/ m) Y& x( p2 W/ o8 @
- VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]4 n' X/ z; A) u: Y p: C6 N
- //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到. R6 C- P/ g* p* i) r Y ]( |
- VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]) w8 h- x* O& N
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到
+ v2 c0 G# E: u: R# t+ v7 n$ s$ j; o - //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到
, ?- j. U+ I, a* j8 X3 G: Q+ ^ - //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到9 \" e. \; u# `- w1 L( G; x- p7 E: [
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
$ i$ z* v% h' F/ S - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到 T1 q) a, W6 ~$ k
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到
1 C. i( f; ]0 O: b- O( f: R. c - //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
7 ?" M$ F" |- q - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到% E1 u. \# s) A
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到; N: U& N+ A8 p3 F2 x2 [4 ^
- //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到; I# P* Y& _/ A2 v5 O( F" `4 g
- //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到
X; H- I8 t8 S# ^# e. u! m+ y. O - //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
) U* }* D2 n& X0 V - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
3 n& ?# U9 L. L# Z6 V - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
m9 V! m5 Z* L - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 7 N- x: I( \$ X( A" ~
9 W% u8 b' i3 C( [/ L, A
|
|