|
转载
! G! }& H/ B& C3 ~+ a
9 l8 K% B+ x/ A) G1 A. } l0 K: _5 d& Q8 Q0 O, H( R2 I5 A
- ////////////////////////////////////////////////////////////////////////////////////////////////# W5 `& n" c V" f; O& k& {, a
- // D2Client Functions //函数表
7 J; G; s% `6 a6 }! u, d - ////////////////////////////////////////////////////////////////////////////////////////////////( J( o" w1 f, }
9 k2 w/ m. S% r- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//* j8 C8 K) w1 Q9 ?# c' H# g
- FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//8 ^! S( Q& ^8 I' Y9 [3 E
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//- _0 j( @; C% I) {
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
4 J) T, |! Y& J, | P/ e* [) k - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//% p* b) F5 V: G' s
- FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//. d5 v3 z* a$ I& n+ s
- FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//
% A& D, j" W+ O9 L. ]; c1 y5 x - FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//) V8 N8 Z+ Z5 N! l0 R8 N+ t0 r# \
- FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//
! H% f1 _, Z8 k9 {9 a4 r* }* b - FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//
}7 \6 [* p/ O0 q - FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//
: O0 v) v+ k/ e# F9 `. X - FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//# J8 [# S! E/ C1 ?
- FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
* P( _, i" h: u m7 ~8 O - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
" j. c% z3 g2 \ - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//( Y, O0 {4 K, ]
- FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//+ R) B/ `1 H: l# Y* @4 G
- FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//: |" y0 Q) O; n+ X3 y8 D. R
- FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//
# S5 z+ u& ~. S - FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//! c% K& r( t7 W1 X4 V: @4 g
- FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//7 y' q' J5 s3 }7 ~
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//! I; W ~7 @; l% V/ d
- FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//
! D* V( A4 _( y& u - FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//
2 k. A# @, U' J$ c4 d. L3 p( G C+ f - FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//% k5 S& l0 _1 S2 F
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//" a8 N- o) X) q/ X
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
7 {5 F" K2 k* D4 d: U - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//" M0 X! U0 }- Z. Y3 p! I
- FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
" W6 `; [' D& c8 W/ g! b/ c - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//
1 V" B7 E# G/ O4 v* x - FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//' ?9 S Q( w* `& T8 m c X% C
- FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//
) }: K& R# f- L; _! x/ G# J5 L: u - FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//
6 I8 |4 D! ^9 z. z# D% K, x - FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//# n& [# r" ` P
- FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//# l( }+ K X! v }; R
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
5 [. l9 T( t( w9 p& M1 Y7 i( C - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)/// Z& \; y$ w4 P. J0 j
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
& n k' K4 ]8 A - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//
3 U w3 R i) F7 e o" W; v - FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
M* Z7 l# u% {) Q% q( g4 L( z) S - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//
6 Y; |/ d) O3 p) ` - FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//& u3 p0 D2 R1 p
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//
& N: V* U' F, S - FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//1 _% b K" V/ D6 F' S' M
- FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//9 q7 p# V F3 T" v! e
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//. A9 S; Z1 @: ?% S, v
- FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//. j/ ^* m0 u4 o, v- U
- FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);6 D. Q# v- e# v/ c1 h) u
- / }$ \( H, F; s% \; @! ^
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////1 Y. S. y/ b" [1 Y" {7 E( N+ u
- // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找6 Z# q- {5 S' R& {5 [
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////+ n, f4 K( x4 I4 u# D7 L/ r
) a6 m: x* d$ @. H- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//7 K; v u! P1 e% i
- VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//
2 `0 n/ T9 a( x6 f; l4 H8 Z$ t" S - VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//
# y8 R1 r6 a# N; e - VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//2 P- W8 C, ^3 e/ _" K2 L
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到0 \ F$ y' Y$ g9 R ~! X- t+ X2 V
- //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到
2 w' Z+ B. K$ {$ k) P) N4 _4 j - //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到
! e' U; [0 H7 U: y - //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到! m( J( b; O! n1 X& u& j
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
: @: |6 @* ]5 m2 m3 ~, z7 o - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到9 A% N5 x, V# G/ @/ p
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到2 X9 U3 ~2 L/ N3 f8 M
- //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
; q9 p) }' @, u, m, d3 ]( q - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到4 k1 `' Z; _: S _
- //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到9 T4 X8 }7 h* G- l p7 c
- //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到6 U5 `8 W) k$ d. T) W6 E/ M
- //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到0 U% I; t! c; n/ H
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
2 x$ Y! ?! N% g6 r - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到
5 O6 p" Y$ x. i7 ]) @3 T - //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
6 ]% @# q* l# z - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到
2 k+ {+ |: `# U8 K2 }' \ - //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到: \2 e" h" h. o, e+ _
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到( L- s3 J+ g* o! Q- b+ F; k
- //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
) G6 T0 q% D" I) J# I* d! D# C - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到 q$ B/ P( ?. k# P6 _ s- I, B' m1 w
- //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到! c- E' z1 f4 b. k1 x, a, V, x, ]
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到( e! Z/ ~( o( r( @
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
; g1 x2 l0 D# w/ Y+ o - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到, \5 p5 ~4 Y' @ n
- //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到
$ ~. V& a# P* _" D+ f - //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到 s K! e6 m" [# I
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到: ~' S! B. R: x2 u$ D5 C
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到. F4 ^4 g D! b: e/ h5 e9 e7 ~
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到
! B% v- W7 Z; p4 ` - //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到 W! d% b9 `5 u4 _; c# K% x( Z9 v
- //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到 t2 G) ^+ X/ b7 _* ]5 L
- //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到 i) J9 ~) H, k% V( v. _! }1 {# l
- //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到$ S% ]! U, p9 I* I# `" {
- //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到
: \, r/ U. w! I# U8 ^* N - //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到' D) u- ~6 D2 L4 ]1 D
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到& z' Z8 m- ]" c" P
- //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到/ K: y* W: {+ M l9 R
- VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]- S' S0 \2 L2 N2 ?$ [9 {9 D
- //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到7 I+ e% x" v" }) Q) m7 d- d
- VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]; z/ Y% K& O, ~" @* D5 j* ~
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到
; Q& R) I7 b; x - //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到
/ J7 z- O: S3 `1 C v4 r - //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到
% F B" P; @ J! F - //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
# k" G2 f- p; r, D - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到, [$ J9 ?. @* K& S0 ?$ G) H
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到
7 [ f* G# x; o - //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到, H: v7 L9 b/ S( i( I& _
- //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到( C% v7 r' {1 V# I" r* W: J
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到7 e. c" Z+ S; i! D1 G) O" `+ p
- //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到: B3 F+ a6 z5 B8 ?2 |) a; T
- //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到
2 N$ ]3 n& _, R5 e& n - //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到8 S6 k$ k; e5 f1 }" m
- //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到: `6 a3 B6 o! b
- //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
! `' d, S" ^3 N& Y3 M - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 5 ?" N& N+ ?, c& [% [
2 B4 i* c5 B2 e |
|