|
转载
: |2 R5 T& X _' a! |0 M5 w8 ^3 S( Q, w: L3 k# Y
6 [+ H4 e; p0 s* M% A
- ////////////////////////////////////////////////////////////////////////////////////////////////
- j* K2 F6 u Q( p+ O - // D2Client Functions //函数表
/ t# w I" P. F4 w, {) a4 J - ////////////////////////////////////////////////////////////////////////////////////////////////
. c( l/ U/ U, E* \2 Q/ Z
! t: N. ]* Y0 C# f" b: G4 o- |- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//% c3 s, Y0 C7 x/ R
- FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//
1 _$ Y, |* y- b- B, O - FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//5 g1 Q$ y9 M; @
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//# w) W* @6 K! `7 v) Y' |. a# {
- FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//: `0 R4 A# s9 b5 |
- FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//' X9 _( p5 j1 X8 q
- FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//
: {& n! t: W5 w( x; I% {6 t - FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//
( @# d3 l% Y: ^* p - FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//! Q! B: z2 {% B' Y! c
- FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//" {5 {. p9 y( B# p8 f: `
- FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//! q+ j- C; y3 `. `. n4 J
- FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//
: }4 u' b X/ l$ a - FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
! ~4 z0 M9 H7 D+ k& }8 H, Y" O - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
% ]% d7 {0 k n9 ?- a3 [4 v8 _ - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//
) c/ Y+ M4 v$ E6 d1 q - FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//
$ \2 d# i% x' m+ Z9 ~ - FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//* `) w! }: a" A! ]; p! g
- FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//! e0 N) @! g. d
- FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//& ]& N) H5 v1 f- S. |
- FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//
. J4 P5 B8 k: \0 X$ s - FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
* f4 b$ t6 {4 q5 |% _4 n& U - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//1 T5 K/ V6 d( z4 S% Y
- FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//
. p _. b7 T0 T. n* P ~: B - FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//
, y" R- j$ j$ W: a# F9 H - FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//
/ Z; }1 ], ^! s5 n7 y: i& z) U - FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
8 {1 r9 j& T. B8 z6 X7 q; {6 e5 L - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//
( ^5 T8 y- h$ d - FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
2 q: }: P, p( z9 L - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//
3 V/ `: c$ { R6 Q: A# ` - FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//
& }- l/ N n) y8 U - FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//) @) \% P3 [1 ~ |
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//) h# z& q, z) T* K# V
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
J7 f; t' h8 U - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)// {% o3 ^. B; R
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
+ ] i8 e7 K9 f6 B1 [2 O- } - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//7 _7 ^# E$ k. m8 h& [( Y9 G
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
' p2 O7 {8 C% G0 b - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//+ H) \2 P8 V6 x7 i
- FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
0 u- [/ c# ^; g+ [ - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//
' j6 ], H# f8 Q0 z$ h - FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//
* z9 {3 A' P& ~* A4 l2 S, f9 h2 \ - FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//
$ n- ~1 O' U7 H6 x+ U8 F H4 H4 s/ J - FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//
( }8 g& B' S: m3 n% `% T: | - FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//
, n+ D, S4 O( J7 u, ?# s9 R, Z - FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//
1 O+ H M/ ^( p# a5 _% [ - FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
) [1 ?7 n/ Y K, X4 t, E4 I - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);0 R3 j5 ~# `" {( ]0 v0 w+ F
+ ?% {5 E, I5 L8 K' y- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
; A, _0 ?- a+ L6 U. s/ s - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
# ~9 `$ P- ^6 m% F2 Q: y - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
7 E9 o6 q7 F- `8 B+ j8 |; [
+ T" P* r% N7 o% U! ~- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//0 P% m- K/ a$ ^
- VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//
: V: G* Z1 c: @& a2 Y( { - VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//' q1 o0 `6 \ S+ V
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//
3 A! Q$ F: E# a6 } - //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到5 [0 N+ W/ n6 W' S
- //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到
+ g: l" {$ y- [ z2 Z. N P3 d: ?1 M - //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到
. q* {" y, l# m! h0 W& c - //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到5 Z7 s4 |6 j# v# i
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
: m$ i% L4 ~; q) ] - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到, K! }8 u. l( _
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到
2 P- L+ q h$ }2 \5 C7 O0 O% D3 j - //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到6 K4 P# x1 ]0 W" \- n% G! C- g
- //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到
% i" y* o1 g+ W3 h- U0 |/ h# Y2 a& L0 c - //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到
1 n% p2 t% c n" y" @4 L$ } - //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
; N9 |9 C$ \& O7 |1 P# [ - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到
+ b( o" p! n1 a - //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到1 b* a$ T7 \0 k D- I9 D3 r- a. z1 {
- //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到) C4 L+ D" K3 V2 f0 x: @* E! I" [: J% @( Z
- //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
/ E W3 k% ]4 D+ r! {) K' ^& M - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到& O4 ?+ d# F5 V
- //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到. o6 G, g% W, r7 b0 {0 _
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到
/ w k3 h5 e' g: K3 M! Q - //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到5 B) o/ v7 p# q( e! q
- //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
' h0 Y1 c5 } s5 G m - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到* k% E4 [ j; H1 s
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到3 n9 B4 ?; Y( [; w9 w, a9 b0 U: Z% E
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到 I) ^9 x. C' E( t! d6 M; @
- //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到
1 n& |: y& G* \; o/ J+ ~$ M3 M7 [ - //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到 \2 P. P, I! |: j
- //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到! j8 W" ?& L, [& c" w; m; p; \
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到 i. Q3 o# @/ c& f" j
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到4 y3 L! a6 s- z5 z; ]
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到# m( @( @1 B; W$ B! Y5 m7 b
- //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到3 m9 {- j* Z( M$ @) F
- //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到) t& ~7 H" X( X. I5 k( l$ Q
- //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到: m( q, r4 K7 ~! N
- //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
% K: n6 H9 ?) K9 y - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到; G* c" Y4 F: i5 c/ P# o5 _
- //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到# B- O! a! j# p: [( K* k6 ?5 b; n
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到. q+ ]$ w5 t, e3 B0 O8 I3 G
- //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到/ w! y f) [" T0 c x# }
- VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
& s: f- r, K, ^, Z, u6 }9 }/ f5 K - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到7 q* R/ D; V4 p, f2 M# U
- VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]
: f1 S1 P- b: _, F+ ?+ Z - //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到4 d5 e& y- V) Y9 Z. z* ?- Q
- //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到
: J7 n ]: Y1 e9 w+ X! l! V( Z7 Z - //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到5 Z8 B7 Y a( s8 n4 G- x
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
9 ~ W" M. [' J7 e5 N4 B; q- ~ - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到5 z: ? T1 h* K! S: ? [% I, W
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到
" N' J6 z5 H) ]# N3 C - //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
9 _& O* g2 j, x - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到7 ^2 f' W' j% F& x! b
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到
% o! O$ `/ A' o0 B - //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到
2 G. \: O4 O+ I ~6 | - //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到; o* u m2 ~' o* k
- //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
0 h9 Z% I, x) A, ^- h - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
! L' s3 ]) e2 |: N2 I - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到" I9 F9 q* K! l# ?3 @' t
- //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 - z t" }8 y* Q7 p3 T: @
; A$ ]! c9 @2 W& a$ E& y |
|