|
转载8 _/ ~. j" L5 g% X
8 ]; l, G9 ~& p" b0 s7 Q$ |" l" p. X: B& A
- ////////////////////////////////////////////////////////////////////////////////////////////////) D$ T5 s8 _* C) P8 }! }
- // D2Client Functions //函数表
9 {/ y( h: c" I% Z0 B3 j3 T - ////////////////////////////////////////////////////////////////////////////////////////////////
1 t, n# q! V- q3 x+ N! R
+ @0 d" q/ _5 r4 {" w3 e7 G1 y- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//! }6 U0 o U4 p+ F, ?4 K
- FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//5 e+ u- M1 F9 Q4 T: I
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)// F7 B% r+ a) |9 D- h W. R
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//( H( A! ?& ?$ l5 W
- FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
% s' u2 r l1 h; i; f' F - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//
" |! ~0 F, f! n" h - FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//" n! U0 t e1 e* s2 g
- FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)/// W+ X6 \! d. e0 r% {
- FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//& z* |( L3 p4 G
- FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//8 z, h: p: p. a7 Q+ s9 o
- FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//# U. T' m5 h9 a3 x6 _/ }4 l
- FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//* Z8 ^8 p% @0 j9 A& s
- FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//$ R/ P" \ f8 U& U! J5 L- X
- FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
+ [& `0 R$ ~3 w" l3 ?; z' q0 | - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//
& U( r$ T* e9 T3 n - FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//
+ c, M) h) X* C d4 }1 ? - FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//
$ n7 @$ ~8 J* E - FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//
) y) a0 |: P9 t) i/ z3 l3 ~6 Q - FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//
0 V8 V+ h& j- N+ n - FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)/// q' [1 f. p3 b5 p$ R4 ]- P8 ^
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
* s8 @! m1 u7 D" s) U - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//
. I h) C* V( B6 o - FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//# T8 P& p7 P& d" }% J% r
- FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)/// t3 L+ j/ U8 q3 I2 g" |; g
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//) \3 O8 W% H4 b# e
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//8 C) r) g2 H% k- t( p' a% T
- FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//) C: E0 M) Z7 L1 H/ l8 h4 Z# }
- FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//, c+ D6 D5 h6 r/ G5 X
- FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//: g. I' i1 s0 [
- FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//3 [' `0 `& l3 q/ I' M/ G
- FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//! c) J7 g8 z3 H0 \7 n
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//: j0 C- x$ o6 D7 s. B% a
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
* o- n c: C$ \ - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//
0 y2 T: l$ M# ?3 [) B a' S, r/ O - FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)/// K0 ~0 X. \, \! i; B
- FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//7 N9 o/ H) o- \. M* I: ~
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
" t4 z8 e2 a- _1 v - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//
6 O( j, O. C+ U- ]) o/ l4 C* R - FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
. J- q6 h9 {7 `9 X$ F- V4 G2 @ - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//+ l+ o1 h1 D5 _3 u1 f% P& g0 g
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//& `" @$ \- {& x
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//, z J# u. M, c7 R
- FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//5 s: [$ y8 f' ?" C5 [5 _! h" ^
- FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//, q; p9 V0 Z9 e4 ^; S
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//; S: E+ C9 o8 x; i0 J! p7 ]
- FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
+ s* `6 T0 w4 t1 t. z+ `/ O9 g" B - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);# y; o+ m+ z) ~/ q
- : H3 |) |4 Y& w; |5 W8 O
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////- p8 v8 z' f# b7 h" H
- // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找$ Q1 E1 g1 ?* w8 @
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////. D: F- z" l$ _( a
: @: U+ m* H. E2 T- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//6 b# [9 X. H1 S% Q5 a. P) P
- VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//+ |; l. {6 q* n# e4 f4 h% d
- VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//& F5 i8 ?/ _& k# A% q
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//: V2 G u' y `+ ~* O6 o
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到
8 V4 Y4 [+ R* Z( O4 Z2 }4 @ - //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到; b6 ~9 y, R J/ c) N
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到2 l5 V% `9 t& v& q4 N1 @
- //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到5 o7 s% f H+ L5 Z2 u& I
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到; V+ O5 ?$ d+ B& ^$ @% X; Z$ O
- //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到# Y6 @+ v/ ~; b* {$ x5 V* m
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到; a% T- T) s% P2 k$ n- j6 h+ P
- //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到 w! {3 k8 S2 @: c& m8 W# l
- //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到
0 }5 L8 _/ T/ `8 v S - //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到
% i: b, q, p7 h/ B. Y$ Y' w6 L - //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
( q# L l0 ^2 C8 w; E9 v - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到4 R6 h& i& P1 M# ~* I8 R
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
! K2 t3 [# d' I. W% p$ Q+ M |. w* z6 B - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到
2 g6 q1 P" [+ z5 A) x7 f4 q" v8 W - //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到# s% I4 m& v+ y) O: v2 V t6 X
- //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到
2 m' l! @( o, k5 W0 q* M; n - //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到
; i5 v3 ?, q8 W+ j; o. Y - //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到# o- I9 r8 D1 Q4 E0 [/ S* k
- //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到8 F% C7 G4 u% {. t
- //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
- I, a: x# N3 b. |( x( a - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到/ p. q/ S: ]% X2 L6 n5 m
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到
# g1 v1 c! N) g0 P$ l - //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
+ ?, x5 c! J6 ^+ j5 w& m: e - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到2 m9 s4 ?# o5 H
- //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到
, n: U; X0 K# T/ _ - //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到2 H: }1 ]: W2 c# T
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到5 Q ]1 E5 ~: r( u: j0 D
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到# {8 O1 T3 ^) t* O3 o0 e
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到* N6 ^: a+ z0 H. [
- //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到
( A, N$ P# @4 b4 h - //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到
/ I q$ x2 Z: E; R: D/ t2 S, ? - //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到. ?+ e; I% B& q! z4 w
- //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
; w4 }5 @5 w8 @! y0 O3 ^& b - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到5 |+ h* s& F l) R+ \, e6 v! o
- //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到5 \6 B" i: ~. M9 F3 Y" `
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到
& I0 n& c$ ^) O' I - //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到; C0 S* [3 A' [, a! L, p* o
- VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]% R6 Q5 E9 l4 h: K+ {- j# E
- //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到+ U; q0 H0 s" l# J' s x7 @+ o) C
- VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]
5 ?) O& Z7 f$ e6 A' ]0 O7 R- T4 P - //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到
* c) A2 F/ _) i X' }, i - //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到$ |( m+ H7 _$ q+ @5 H
- //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到$ h8 w" e& e. [+ b4 c; u) ~
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
0 F) c0 P) H% B. e' A - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到7 _/ I: D) [# e
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到
% D' h( V, `. s - //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
9 x( Q7 c6 }& n2 ^ - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到
, M8 Y6 V+ N8 f) X7 z& L - //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到% {7 i, M0 o, G; h- V p
- //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到1 O1 G e7 M# w/ W% x
- //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到
. t3 J- {. b* }+ D& c, L/ k - //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
. k) M" b9 m& @8 G - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
) K9 B, y) `$ z& [ - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到' `. S, h* Y+ x, ~
- //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码
9 X3 P* ~) E( u) j" v) |
7 h% o6 q9 a3 d/ N8 H2 W |
|