|
转载
: _- Q4 a0 s ~4 G% j2 D8 W: L5 A. o2 K+ O
1 `2 E+ E) D$ z; _* N6 Q+ c* l* i- ////////////////////////////////////////////////////////////////////////////////////////////////8 _, F; ]$ n, C0 h7 m
- // D2Client Functions //函数表4 Z: l; k- C* G
- ////////////////////////////////////////////////////////////////////////////////////////////////
$ R1 T4 Z3 {; U4 P+ F
, P8 `- Y/ F' \4 O- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//
& {! |3 J8 d$ ]8 B! M' i Y - FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//6 h5 D+ X! @, ]1 i
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//' }" O0 c [6 `. c
- FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
9 {5 c- v! a9 {, o t+ B - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
' F8 G; C1 T3 n - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//3 ?; Z1 w( |! @' o. R7 E
- FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//
8 |- Q9 z7 z9 p; Z3 w - FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//
2 E) z0 Q# e/ ~3 S# t! H8 W - FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//
" \- k# {8 t: x" W, h - FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//
, N& {& M2 g3 F- V5 z6 A - FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//3 ] ]6 q- h) l% f7 Y! J
- FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//* u4 _+ ^1 r) j! W! W9 |# R
- FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
1 b. b% u+ c5 L8 a G - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//8 q, L; {" t8 J9 Y j
- FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//
1 D' |& s' B, M: f- B - FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//
2 Y/ q, ^- `1 o; i# C# c' n1 z/ K& j - FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)// G2 f5 V0 f6 ^4 d1 d+ r6 o3 h
- FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//
: u) d: [# J+ ?* N0 C0 M1 c4 @8 D. F& _ - FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//
. B8 I9 E% y3 X9 G7 X - FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)// i# M- |) {6 |
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
. S& C8 b8 }) y1 {+ B9 p - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//9 `2 Q m* o2 Y. F- z1 h, z! T
- FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//
0 C# h/ J3 r) w6 k+ N. y/ C# G - FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//2 \5 H7 j% k3 k8 g* l4 \6 h
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//" A4 T; ~7 C& F$ a* I0 M8 a4 R
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
% d/ J# m7 A1 [' I; M* K - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//7 V. Y& m2 p: _! U" e, a
- FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//* l7 P$ B# a9 h; p3 r& e
- FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//
/ Z- W: n! }- Z8 B - FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//3 r" E. v) \& k, c$ E' X; h' b) M
- FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//* J+ a; P4 ~) E( M$ V, I- y
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//- R( f; P7 m9 r! `
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
7 o$ r" }6 s, t/ j) _1 } - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//' F# {1 d6 _- _ p7 B
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//+ Q0 s, f R0 s0 M4 U C
- FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//
7 v' l5 g2 l2 Y9 U( w( W* G% h - FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
8 f5 _8 f4 Z2 L: |$ E u* t5 v$ X - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//
- r, E ]) y' R9 Y4 o - FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
' |% W! y' { V; \1 p7 u - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//7 y% E. ?6 }3 V5 N7 y
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//7 N" [! T. S* Z
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//! k% {) J3 Q; y, s; |6 I7 K% K, p
- FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//
4 U, ^3 U* D# o4 { - FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//5 c8 Q" k' R$ t
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//
1 Z1 g& K L7 \* s9 n7 T - FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
- t7 G$ H/ u2 W7 i+ z) l& { - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);
; Q% s) P* ~# V* i u' j2 c. a' ? - e5 q/ O: L. W" C S" A# Y4 L# e) ` l
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
% g9 D: k6 I$ M" Q5 \ - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
n$ Z. x6 S$ X. p - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
( D& ^( b- J1 U& e/ R( B, O
6 n2 f3 [6 N& ~# u }+ V4 G- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
. r" V( M+ e5 d+ d% ` - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//
4 [; K+ E/ ]6 I+ w* W: E - VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//$ P2 ?; x- e( [( y( F
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//4 X8 p- B: i. c. f$ k. k: r3 |
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到- r, ]9 c4 @3 V7 r
- //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到. a! ^7 u# S' F7 a& R0 X6 f$ E
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到 P( g/ d L. ~+ h0 l$ `6 d
- //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到
* I5 I" e5 t: F" l1 m% q - //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
; E+ Q Y5 E8 T$ y; V3 ~ e1 `. \) D - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到
- @4 |( t& l0 u5 }( K - //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到
/ M _ H% j4 \3 Q( o - //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
5 B, P! [; f& `- T+ I. r# S - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到/ m. j. P5 H/ V6 t) t4 ?
- //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到
0 ~6 O% ^0 U5 z7 G - //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到+ d+ C3 U) J n& |
- //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到
* i. _4 f/ [6 e - //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
6 F' p: g& c6 O! S5 L - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到
/ @% t# [* {! R; G# m4 N6 n* P$ j4 E - //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到
, [& M( u( Z. L9 H& b; ] - //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到 t2 j' g r) {
- //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到. C [: k% Z* l: K3 N; l _
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到
! r4 a8 y6 v v+ m& [! w - //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到1 |; r$ W8 V$ q" K
- //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
- z1 C/ G {6 M. n+ G - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到
: L( s$ ~6 N4 ~7 r/ _& @ - //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到
' m! e7 N9 l+ B2 Y( h - //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到
8 E, [8 M: g8 c6 N3 ^, S: O1 H - //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到- U4 e5 [4 r/ f; y. c4 ?: [
- //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到! C1 e+ H/ u% [- V2 k' O. \. u
- //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到
, C3 d$ G. D: o+ f7 W6 S4 N - //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到% M5 x# y: ~3 M# K/ T
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到6 q2 A/ r: d: |) L" }4 [: [
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到
- N' D; e3 f+ L* c - //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到
3 v& j, F8 M2 ?9 n& o( o2 b& H - //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到
/ J8 X+ k: B9 y8 h( {6 T5 J0 C - //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到* [" @& s/ S: ?% h# c: ]
- //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
& l, G# g( L* \8 ?! h: C3 ^$ k7 ] - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到4 m5 A: b5 y& V
- //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到
6 @- |& Z# y" B' a* s5 Z& e6 m - //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到
# B5 a2 l0 _/ p- |; L5 Z0 J l - //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到
( m9 R; J0 T$ Z - VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
( n0 e" ]8 |) V) J: M' z - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到
4 u" z( x. h+ B6 X# [ - VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]
u+ I, }% T- S4 |; e1 t5 \8 o# c0 Z - //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到$ g. M( \# T3 G; m! ^5 s
- //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到 L) D* Y+ m! ^; j9 A( z6 ]$ _2 w
- //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到
% o1 c1 z( h% c) m - //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到+ E. p3 q" k9 d* y, ^
- //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到2 n b; ~2 Z8 D5 }5 ~1 ]
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到
8 F' Z' [0 w) y- S( r - //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到% v& S/ y0 I8 u# W3 x; x4 M
- //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到0 c2 ^8 v/ c. ^6 S# Q
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到
5 u6 o/ v8 ^# w) h! Q Y- b' Y# _, X - //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到( w: F% o! z% V
- //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到
9 f8 K& }* M" z - //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
- D& Y! Y: _/ h9 i - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到# _( c3 L' M3 _: O* ]' F
- //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到2 y: U0 D& ~# s k, R9 Q7 T0 z( J
- //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码
x* r( W f; S& S! o! q8 Y( `0 R3 h# j0 I6 _- \
|
|