|
|
转载7 m/ V) e% R9 ~/ [7 v$ X) S
6 A+ S7 i# }. C8 P. {" Z: s
& o( A5 w) q: [+ n" R# y- ////////////////////////////////////////////////////////////////////////////////////////////////) |4 @; l5 L: R+ R* d6 F1 v9 ~
- // D2Client Functions //函数表2 M: g3 V% O6 D/ `: j( u2 A
- ////////////////////////////////////////////////////////////////////////////////////////////////$ o2 x1 `/ O2 z' \: U
) I& [+ n& g% e. c' ~% |- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//* T1 B& s! S+ K
- FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//4 |* _* @8 m _
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//8 D' X; c4 I4 j6 b9 }; H
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//' B% b8 Y. N/ i/ L5 e
- FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
& a- w" {( b1 M" F/ g5 u0 P - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//
1 u& o+ G( t; h6 ^7 d - FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//1 F& b4 A$ C1 {. h& n7 j- u, F
- FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)/// ~1 t* m% I' V7 f2 M! Q- K) o
- FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//
7 l. O1 C; I) [; q - FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//
, C& z9 o( y& w5 e, S/ |% E5 k" f - FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//
! ?% }1 ?# V. x6 s. v - FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//8 M- S$ j. Z# W3 Q
- FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//6 c/ o `$ J2 N2 s
- FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//3 a u/ U+ s5 F
- FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//
6 I7 d& u0 d3 i+ \ - FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//7 s1 `0 K7 L8 m U
- FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//# [! ^' {; s6 N m& {8 k# a4 `
- FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//( H( w% o! L. V
- FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//
. Z; y* b% w+ p* g# |4 z - FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//6 g- B% ?, Y$ H( A* b
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//0 y8 C8 b5 l, U9 m
- FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//
7 W" p/ n u0 [& g - FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//6 T7 A1 D# v9 {
- FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//
% k0 j$ v+ x9 S! c. Z: V - FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//
9 u3 j! H& _5 x - FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//; {4 q4 n& R7 G# h S1 y
- FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//
. h2 s+ O' l2 B8 O) K* p$ j - FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
$ N' ^; g$ f- O; j4 T; A - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//2 j5 f, |$ ~; A7 I. K
- FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//4 n" x* }( y/ g6 J+ q% ?' y5 K) U
- FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//) z5 \) W( l0 B2 u& g
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//' n. N# R% ^, ?4 H5 R
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
, C7 r. l0 T$ i) T, X - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//
: W0 O+ e6 }6 Q, i/ m# _% n* r - FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
, t% P) G& s- c' G n1 |; x - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//
5 N! u' i+ o! v - FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//; b$ ?0 O3 j! [
- FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//6 |, E2 a @: {8 Y- z
- FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//! Q6 r+ u4 T4 q) V* G7 @% w% p- p
- FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//
9 w9 m6 g9 F- o6 w# Y- R% I' z - FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//
* p# ^; Q( U% Q9 ^7 n' j+ T5 [! { - FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//& k+ t5 e$ j% {& N+ k" s8 m3 `
- FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//
3 x! Y i3 Y0 E! S8 ~" A. d, r - FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//9 Y/ K1 M1 a2 o7 \
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//
) k7 u3 d& `0 N& R& Z; m7 A - FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//! S; w2 ^# ? j/ R8 ^
- FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);3 s! I4 s1 o$ |% G2 s0 m
" d* l; \6 [% \( z, k( \- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
8 b' M8 W- I; k - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找5 }$ c2 B: Q" N- E, T# r1 u4 l
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
8 E. \5 N) s$ S
- A5 `3 l" g" }: X, M; a- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//8 S% i6 y* t% \! \
- VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//
; e/ h6 h+ v( u2 A% b- M* n( h: k/ [ - VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//
8 X# `1 L' ]/ _4 n% @ - VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//7 N9 n" H$ |- R) `
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到
, ?- N9 T6 J$ j6 s: R6 {5 ^; B - //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到* f; E% @+ C' |; P1 K
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到% A# n& T2 p, X2 b6 o/ D
- //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到+ d; P2 e8 I0 S) `3 {! ~2 n- }. E
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到2 [. I( A1 n5 M0 L5 \
- //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到; e& D( ]9 ^4 r& u; M* G
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到
0 x/ u, v( P' D9 ? - //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
8 o3 c) s& C$ |4 O0 \8 g! i - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到+ d c5 R7 z# C1 t' o1 b, y
- //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到
9 O# P8 w4 q( X( Z$ l) g* H - //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
& W8 }; U: j0 W( e# m: P2 _# b - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到5 [* K* b3 y8 d: F0 k5 b
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到$ T/ s H# A0 _
- //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到1 V, t5 X, B e( s* B0 z8 Q
- //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
) i1 t, Q4 r3 c K* X+ h8 [ - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到
7 t+ Z8 T' M! f' w, e, _$ w - //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到
2 J' t- N5 s; z5 R+ Y - //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到
1 G0 B2 N m9 [/ d - //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
5 w {/ C) O" b - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
) A8 `# U5 `+ N K' P - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到5 K, I6 ]. J K- X2 K
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到/ E. y9 w2 }9 E' H- j: f$ l8 ?
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
" @/ h E% a5 X: _! { - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到
* e/ w) o2 ~# J9 b! r - //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到
, o" E' h( ^8 j; j. f: N* S$ u - //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到. d: A7 p9 E4 p
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到
: \, [6 ^" Q0 C - //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到0 g# O) w! g0 c5 q9 R& K4 _/ }
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到( Q$ m4 N0 g- u9 v0 H; e5 V
- //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到
. {1 p! L3 e! \, @( B* R5 p9 c - //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到0 ]8 c W0 d9 s7 w0 L
- //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到
# U4 ?2 J. Y' K2 D - //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到* h3 x% M2 D% ~# A
- //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到
) s( X5 n' b* _1 e - //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到% h' {. x8 p |0 g' v2 e% B) q
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到
) C! q4 a( J" S6 s0 H - //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到
' l. G3 U: ~7 `# c8 R - VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
5 G/ R( r5 B9 } - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到1 M& X3 U% p4 f- u$ k2 n; R
- VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]
) K9 E" r4 P2 r: K - //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到/ O8 b( _( c2 c8 ~/ @& S
- //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到& L! @4 P8 @ \$ R
- //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到3 `8 j" h" _( i& z. @4 X' I
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
' s; T" ?8 p' G0 k - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到
' ?! `" _5 v& I - //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到; }0 e9 _/ p- t7 [2 I6 X# y
- //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
: h# M4 k' J& J% ? - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到
- d+ S& p# [- b( ]2 L; n2 t# \7 d) _ - //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到" i( c* L0 D: @+ J
- //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到) f) L+ f% R8 h+ p; c
- //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到! C y9 b; [" ~1 X
- //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到% m, z( O) W* n+ {. b8 m) [
- //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
% r' L4 u# @0 L) U7 U7 l - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到/ m% s8 H8 Y& e! y) v+ X8 z3 z
- //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 8 _5 m* G& Q. U0 r8 y2 Y
: ?2 G, j" n. u0 T4 r* l
|
|