|
转载: R2 r1 F3 N! |! |5 i
6 @( T; A9 O" w4 Q& ~ f
2 R V1 v( @' w9 u0 ]- ////////////////////////////////////////////////////////////////////////////////////////////////
! {5 m2 D( d: n7 r, r - // D2Client Functions //函数表7 B: ~; Q% V7 q6 \
- ////////////////////////////////////////////////////////////////////////////////////////////////
* J4 ^, O! B& R7 G p) t" s
% Q* d# M: n$ {; k! L8 r' m- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//
- q) ~1 t4 F6 P$ q: `8 m# j, K2 ` - FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//
" ~6 v$ N: O) C- u - FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//3 }, l! p( t) }9 n" I* G
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
: B; Z/ ^3 m4 p6 a, Q6 x3 Q - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)// ?( _5 L- [) \/ q: Q9 k& J
- FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//
& s6 l" d) i* a - FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//( g) {2 r7 p5 \' O& D4 { `) Y- i
- FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//5 d, {$ E/ M8 C4 b/ x5 x# a
- FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//, ^3 f. L, _; h! j
- FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//5 ~9 n* h" Z8 ^
- FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//# Q! I* Z9 B. d7 ^' k' p: m+ A
- FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//
: w' l" W6 u7 W/ @( ?% H2 b - FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
8 l; D9 n/ [% j& w/ w: K! [, p, Z! J - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
+ K0 V# p3 [7 f# |, D! }/ o6 t+ r - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//% [4 l3 ]& c. w! x3 X4 M
- FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//
0 d" a o# ]$ | l& V - FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//- V' f& J+ y$ T U% y9 N' L g
- FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//7 M5 s% y( d! b [
- FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//2 q6 k" e! ~. e* s3 S
- FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//: i: W9 K7 I( f
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
# f( l2 n6 O1 H# Q3 ^5 R - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//' `2 U; s% l& j. O* W
- FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)/// N* a( g# @. v; a" `1 o' Q
- FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//- N3 }4 Y0 f8 ]( y% ^* C
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//0 W3 N! j* M2 O: k; l. \: ~
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)/// o6 o0 g( t! m) [
- FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//
; ^ O; L& @! T6 R) F# | - FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//! s4 P$ g' x& j- p( T, J
- FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//
0 G$ I% T9 B3 k% E& ~% w - FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//: F; I: B `' {1 y7 `5 X: ]
- FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//
: T" N& ]7 z4 O* L1 {# ?: v - FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)/// ]6 F# X8 v' H2 ^
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
6 S7 e3 T4 Q2 b' I - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//2 Q3 J* \* I9 b2 e
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//! v" P9 \$ h- y" w
- FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//
# n: m1 D" S5 X( u - FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//% P9 v# h: v {7 T4 Y2 R
- FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//
# a8 e4 _7 @; k( R4 v) G- [ - FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)/// o& T( _/ T4 G4 r7 K
- FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//) T8 Y. c4 m1 }( R2 B; z
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)/// \, L& {8 L( [# l" D
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//
6 J: U$ e3 m. P$ W. E% } - FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//3 a$ M9 D$ T% M
- FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//) E4 K* B( T2 c9 m, b
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//4 Z+ U# y+ L+ I. T$ w3 |4 R9 z
- FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//1 ]5 M9 E- s2 f1 e1 D+ r, m3 n
- FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);
5 b- \# D* n/ J/ N+ b. f - , _9 E; }0 v( b/ e8 \' [. k
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////9 D5 e6 k( F) A6 t( z8 v6 F* B# r3 A* p
- // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
# j6 z7 X" v1 f# `% U ? - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////1 P6 a- [. k* s3 F$ e3 O
- % i- S" O8 X' D3 @; O, g
- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
9 f& a+ J! `9 ]- K7 Y - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//! A3 A9 }: t) y* k/ Z. z
- VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//6 b' W- G, ^& a0 w% h
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//9 n2 q6 y: R0 K4 _9 o$ i0 N2 ]
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到
2 t( D3 q. _# n( L+ ] - //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到$ v( {/ W' P% l* M U" F! T+ j
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到& b. P0 E' j# N; \
- //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到
; u8 u, \& J6 s6 ^8 z+ r - //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
% L- a! \5 w/ D/ v w% v - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到
! y9 ]! d; O8 ?. m X' h. e - //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到
) n5 M7 B4 M4 E& g! } - //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到! D- I0 E4 W" P2 @+ H% S* {
- //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到- x3 E- S! e3 f) p. y |! A4 P
- //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到/ g% B' Q* I9 G2 `
- //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
R y( X: H8 k# S6 ]" k% c - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到' f5 S6 Y8 z9 Y! h
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
M2 B! q6 y4 r3 E9 F6 ` - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到
. u9 ?+ ~+ h6 i! ^* W" e% }7 t9 O; r/ S - //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到; C! a+ V) j$ l t
- //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到$ [4 g) `% U5 T
- //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到- q2 X! F; e* i
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到
" q/ Q8 E' m' w% i( l - //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
4 w, O; T. _9 a; o. A - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
4 O @# O* k) E! F+ Y+ T; Q# v; ^ - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到# z$ K) P; u* ]$ Q
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到" l4 L2 {, G: K
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
+ T# v3 N4 O& q0 N: S. C - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到
7 [2 Y7 `7 d9 W( o; m# \/ I( l - //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到
% K7 v% h% M S - //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到3 w1 M0 \& K5 i. F/ @
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到
) s: ]7 s& S5 p6 j6 ^: ]3 T8 T - //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到- G" h; E* S9 a/ R) Q2 T( S
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到; B6 z9 K; H* H9 P- e2 |; n
- //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到
5 O% |& N B0 b' R% y& D - //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到: }( |% [; ~# x: f; C" v
- //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到
9 y& s& F# r7 Y4 a; i' X. {3 M - //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到9 r; _& x @" z% C
- //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到
& o! u7 g3 b9 |4 l# O, d' e0 c - //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到1 c+ V9 p: y. i( H @; y* m
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到3 J, ?( c, g/ h& L* G! h
- //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到
1 m. z) G$ K/ c( Y0 x - VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]/ S, f) y$ S' a! i1 {
- //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到
: O1 _4 X1 y# T& n* h: w' ` - VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]. m' t/ F8 I ^" b& H+ _7 R7 ^ O
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到
5 [3 z' Q$ Y- d - //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到
+ c- ?! `8 {( h% Y X3 M - //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到# Y3 W: C, n$ l
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
6 E' X# a Z) s6 C - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到
8 T, l/ ~" K4 D) i" Q$ i- s - //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到
5 A3 S$ ]% q% U; C1 v8 ? - //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
* v1 o8 R$ ?$ S4 e5 O1 @/ v0 c - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到) n; A$ |' P" e0 O& @. Z
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到
2 U% m$ a, y8 ?( o, d - //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到
9 b6 t( B% R# [ - //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到
+ d) S0 k2 x+ R! h, [8 p - //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
8 d/ b* J( G) G8 K7 Q2 G# g' E - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
5 |, ?# `+ k& s* x+ H! R6 G - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
0 J' L0 E- C. f, r' A( O- P - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 # M7 p# s& M# P/ M. C3 o, o6 g/ E
$ |1 h' i. i3 h |
|