|
转载8 Z- d' M% O) J6 E W$ V
- ~8 A6 ]1 ^& |$ O3 l8 D [' O1 T$ w' y4 X
$ g7 ]! o" J* b5 A; G* Q& z- ////////////////////////////////////////////////////////////////////////////////////////////////
9 }4 \+ h- {7 a) S4 I: } - // D2Client Functions //函数表
! R7 y3 h) m: L- y( T1 c - ////////////////////////////////////////////////////////////////////////////////////////////////
* W& `! e& m9 ?5 V) Y' r% \
1 u5 F9 Q& Q2 m+ S& z$ O- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//
" h% O% c, i# V( G( l# E - FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//. F1 @& {$ c% a$ S
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//2 [2 s/ _; v, v; _5 W! ]
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
* x8 k( ?9 C ]/ Q A5 Z3 i1 Y - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
7 S# y- g9 `2 P4 _5 t- S! u - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//
! A! s; l/ K5 X4 z& G% u1 |0 k. Y - FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//
, V6 v% o( Z7 r, q% M6 k( |+ W - FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//
3 G8 r* a$ H( E6 C q# I" j - FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//
* @4 O3 Z* }0 b% f. ~+ K - FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//
+ f+ T: s* [! G5 O2 v3 C - FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//
7 w* X# Z% X" M B, l3 C - FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//
% P) J8 u9 } s6 E- t# l - FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
6 h/ z; i4 b, @: C' L- W2 m - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
4 l" o1 W& I% F# h9 n) P - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//& f0 M. r1 _' _+ S0 S' A" Q) z6 N+ }" {+ t
- FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//& I1 v" B+ d6 m" {; J: }! v! B
- FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//% {% f" l1 y! @ P/ r' H( x$ B. @
- FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//: \" W# G) k) G* f: \1 p7 ^
- FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//% R. V% x' e3 W' M$ T
- FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//
! C+ U0 W2 N0 E& K6 n* S y$ A - FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
1 g ^, _7 x8 p1 G/ U - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//7 H6 ~# t: o8 y7 Y! ~, z4 M
- FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//
* x/ P5 o8 ^0 T r - FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//. Y8 P7 C0 n/ i, D$ {" H# M1 F
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//1 C- N1 Y; I) U0 k8 M: n- M$ Q) k1 }
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//0 `. \) F- Y2 T/ w
- FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//& D+ l) b# a3 g& Y5 i3 L
- FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//
( ^; `$ y, ~; T# { - FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//9 T% p) z/ N% \4 [0 ~' M; _
- FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//
! n0 i' q# z5 c7 r: x - FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//
' D0 S4 ~; L, J2 w. w - FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//' `: h3 K# ~0 V" a6 } r
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//& ?, i x( ^. w, c
- FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//: m5 J& z9 x( I7 @. c6 ^; X( u
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//$ I2 R- z' I2 k" R
- FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//- V" i% `3 c& Q! p) p% g6 T
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
, `* T, H) [/ _! R7 j - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)/// O/ u% r' }3 h/ k9 s
- FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
' _7 {- t" p- D) z - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//
- p& f7 f7 {% @: \: k - FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)// {+ e% O( @& \! ], Q" T3 E
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//
, j# d* G2 u7 g6 G) r, s3 ~ - FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//( j. B# W; T$ ~* Z
- FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//9 h9 d m: Y; x. t9 ^
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//( ]# {. i" K. p& A S4 _
- FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
7 ?6 U$ G9 ?) k- d3 `# } - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);3 B3 F' A. r( b
3 w# o3 }1 V6 k5 e. V- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// n; }" g) V8 M, I/ d' K4 o9 N3 j1 j
- // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找$ H+ J6 Q# P) a9 G+ H( j, f
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3 `$ X7 S( t5 H; F
& w. k+ m3 p5 u: h6 y- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
7 n* K3 L& H4 x4 e0 H, V - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//7 c! m) ^- f- W9 [' ~/ ~: N" E
- VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//3 r+ q! e% A+ E. j6 D
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//; M! V: ?3 h8 m0 x5 I+ F9 K. O
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到
3 i* M/ c1 I" a. W# a - //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到3 l8 V7 L- r' c4 \
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到
9 ~8 T! B+ g6 e - //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到1 v1 J, \4 c8 ? D# n; l* s
- //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到9 _8 Y- y- Q1 e
- //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到 w6 {( J. _9 I# c% M4 e" q
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到7 x# z! x/ p& G2 C' O% _+ C
- //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
$ u9 O" n1 @3 ^. E0 G - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到* O% Z, J1 o# p3 ]! V
- //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到
4 S9 R5 C4 s- \6 o! z - //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到" x4 `" R$ E1 K3 }1 m
- //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到5 ~. g3 k- m$ A) a
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
" ~1 W, O' Q- x8 i" s$ B6 x* o - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到
: H% }1 Q- n# h: s$ ?" W - //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
* o: [+ P2 c$ h! H0 v - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到
* u) ]; M! ~- E; h7 }0 R - //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到
k1 B4 ?8 ^4 M$ c" e |( d7 Z - //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到
) ~ o0 F8 F) H4 r- K( s* e0 j - //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
% S$ b+ [/ F1 L1 E% q - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
5 c3 l. L6 h; q4 P - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到
, N( ]" _' K" ]+ { - //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到! J$ D$ A' ~% G4 t( \; s
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
) n" y& Q7 o# P& w - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到, H6 T. ~0 \: O; q% {! X
- //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到# d1 h1 S- m# n$ C
- //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到
8 \( M! Q7 j, F, i- g+ N3 U! j - //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到
( ]* h) x$ u1 Q - //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到3 z: `9 x+ [2 P7 c2 ?- z
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到; q4 ?3 r/ R: _; H b: ^: C
- //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到+ ~* G3 t7 v$ m7 c* I v
- //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到
; N/ x9 {$ w% r! A* ~: Y7 y$ r+ s - //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到
" R; b; B. \' j1 o - //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到+ x S0 |/ H0 A/ [' \. I/ \! x
- //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到
& _6 V! O* f3 O: ] - //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到- d: p# |" A+ J: K! X
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到. D3 z, K- ]" C, N7 [
- //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到
3 W9 x/ q' C" \! k+ L) a Z - VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
' S7 X& j0 r0 N) k l - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到
, u5 r- t8 M% ]2 O2 W6 P2 R - VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]7 G' p$ w4 i/ {/ E
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到
' `: V. Y) a1 l; Y* O - //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到7 U/ \) `' C" v
- //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到; L; h. ?7 x/ H4 U9 k: `
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
- d) i+ {& r7 w0 J! K - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到( G0 [% ~! U4 L8 X9 N+ b& ?, Y, `
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到/ t+ z# E% K a) p" p
- //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
9 O- F- |$ N- h - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到7 ~. e& h5 B r. O Y/ i
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到5 r; {5 i$ W- h% x2 ]$ [ T2 |5 j
- //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到
* s% S. y. u* v& N+ ^ - //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到$ q' {1 @$ h5 ]9 R5 a
- //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
* X7 U$ R) O9 B: n - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
7 b; h5 \/ v4 W5 _" z# x% t, G) ~5 w - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
3 P9 v& K) v5 d6 k) f3 p. P, \# H - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 4 }/ `( _+ R& z& @
" \& o8 x3 v" P$ m9 }& R6 Y |
|