|
|
转载
0 |0 z6 l; \8 v! F* F' U0 Q) w. Y- T
9 d5 @0 Y* A' j8 u- R
- ////////////////////////////////////////////////////////////////////////////////////////////////
( j. O8 g3 F- J0 Z$ J+ V$ [ - // D2Client Functions //函数表
3 p# O! a( L9 _ - ////////////////////////////////////////////////////////////////////////////////////////////////
- [7 k8 {: a$ M$ W" i4 d
$ ]2 ~, D3 N# d9 h$ p) K- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//
$ O6 `0 e5 H! K8 x6 H - FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//
8 W+ K4 {8 G) |$ i* R4 @ - FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//
" R6 d! g: B& p: i, H* a1 E6 E' j1 J - FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
/ |9 D* T2 _/ u% B! Y/ l% { - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//
# j$ h, R4 h) c! J - FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//
4 Y, e( o z# L6 y - FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//* z) F- ?5 j* h
- FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//
, g0 c' r4 d b+ t! m" {, u - FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//; S: ?1 u+ G, G' j; m* z
- FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//, F1 b. D; J' w
- FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)//# H x% [+ _: P
- FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//
7 J u/ }4 d) \& l- a - FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//
# Y$ o/ A% U- J3 K7 U3 E - FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
! t7 e; P$ o8 ?% Q- O% I9 \, M5 p9 w7 v - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//4 h9 O4 w8 P1 `* r+ f' b
- FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//, F; y; h# H: ^0 O R; V5 k
- FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//2 a( | H" v6 [1 l& n! M
- FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//8 t( I( Y* x& F% e% V; @4 ^+ b f
- FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//
0 L6 _1 m3 ~! h7 |$ F0 g" { - FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//
9 f% m3 j# g) _, D m - FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//
$ z: i$ d: U5 P9 R - FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//
3 W8 s8 y: v# `6 o - FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//
$ C6 r1 c# ]8 m* y! w8 e5 K5 ? - FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//
- o6 _; g. V5 A" M$ s - FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//- e$ e9 r3 Y( ?, A' H# y4 {
- FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//5 l8 Y# E) F6 `5 m
- FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//8 b. N9 p5 q0 d' q; p* ~0 Z+ L) X
- FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//9 `( b* J6 T0 o* J. C7 o O
- FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//& S/ i# y2 f- T% d& S
- FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//
- b/ d4 r6 o9 @2 h, ~) U& O - FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//: D7 _* Z' Z6 k9 u' ?0 f
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//. `3 {9 v; p9 D& d4 P& b3 s
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
0 s& J. O6 _* R - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//- [* s0 B$ C/ N* g# {) A. S
- FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
; Z& i; I5 a; K- K - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//
5 q6 l8 \, G5 E - FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//- ?: w, X' b: d, u' @- G! ?) G& X! G4 }
- FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//
6 b, |1 y/ W) G3 f$ }; }9 R - FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//
2 x) k2 ?3 x* J: {8 K' Y - FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//5 j$ C( o3 V Q4 h
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//
: n3 ^2 @# X2 P/ x0 T - FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//
- A' U4 N; \/ A; X, ]2 j. s- M - FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//
$ L; Q1 L; n* ?3 c s3 g - FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//" `' ?! }7 h6 @6 a
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//
' ^2 u! ^. ?3 |4 r/ S - FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//) R8 V8 \+ X7 d# Z% [$ x/ j
- FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);
! E9 j+ z8 V: J+ E - : z+ K+ d" g, _- {8 A' I& c
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
' o0 o9 B, B8 D% u+ i4 t: O1 H - // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
: B2 t: D, q4 O1 n0 E/ F: H - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$ K. a+ d9 l3 U* O! i+ J
8 C3 a+ Q1 \8 c* u- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
1 M- |8 q6 m. Y) e$ V9 s - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//; k# Z6 j% K$ s& P; U5 b
- VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//7 C" w7 Y% O }0 O* D2 `3 C
- VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//( L+ t5 J r$ F9 J6 T6 O( O
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到, E5 O2 ]: |- A0 e
- //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到& ]6 V( G; r: J0 f% i6 }) Y
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到
" V$ M4 ?" B3 ^+ x! ]3 D9 b4 z - //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到
3 w3 k/ A% Q$ u0 i6 W7 O2 h - //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
/ q4 H( C9 ^2 p2 Z1 B7 ? - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到" R @+ }, C3 H: B( d" T
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到; x8 F/ W0 a4 ]
- //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
- f8 J ]' Z: G& [5 x - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到
, ~& ~. W$ f. ^0 A' ~ - //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到6 q3 y0 `8 d3 T
- //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到" M I0 f8 x ], h, c
- //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到/ r1 L3 G2 A* W- u" J; t
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到. B% E, p0 `% a0 Q
- //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到
" z, a$ \; l% ^ - //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到 B% y- K, Y3 {3 E% z, i9 ~2 i; T
- //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到& f, }, @0 E$ a# k* \9 R2 E7 d
- //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到) R( E7 O; [3 H4 @& K+ A3 n5 d
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到" ?& z* Y$ p/ b t! G; B
- //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到 t# M6 p" } a4 k) d, y
- //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
/ y9 l4 ~8 W) E8 _8 e7 {* X5 N - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到" g# L+ R4 F+ [. B2 Q/ i8 n
- //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到
L3 B6 I3 T$ }( }/ U$ s - //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到4 d7 ?$ ?9 z, e
- //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到
" V$ H ^) o; Q# y - //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到7 Z' t, r% r* R; T$ T! W
- //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到# N5 m( s! O8 M
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到
4 J/ e/ j$ j. s( C9 V7 Y& n# d - //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到0 w: ]8 F# ?1 O& Y |$ I
- //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到
5 S6 o" z: u9 k! C - //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到: w6 b8 w5 @3 u# V5 _. D. y& F
- //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到5 ?! V" h4 H9 `6 ^) w7 n: G4 I: M
- //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到- v. S# x$ q# ?2 P3 S( X7 U
- //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
0 @* b- S! c2 H - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到; s9 E z* M: G& ~. X3 k
- //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到 _- g+ u' b8 i$ {( I- Y
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到
9 J& R5 b T8 x" o0 p9 {# r3 f - //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到
( |) n" J: `+ g; D7 c2 _+ ` - VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
# u2 ^1 a6 R! c8 |( m - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到
* g) @4 m! T2 E# ^8 C; N# h - VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]5 O3 U( g; j+ j7 }# `
- //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到
5 g4 u3 x# x( U( @; e" I8 \ - //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到$ F. t, |9 l1 j" v5 k
- //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到% N" |: x3 y8 h8 b- _- o' @- J9 J
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到0 Y8 t3 v- @4 g: i3 {
- //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到$ |: W% X; Q3 _4 o
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到
: I; u- P+ h- Z9 l6 o+ Y' t5 k - //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到, M* e# ~& [% _4 u ]- [- ]7 z" I
- //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到7 J, d6 @7 @( w
- //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到" m3 ?9 i) i+ r" g3 ^% d
- //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到
9 k* g/ R+ Z6 c$ ~4 I1 x+ n - //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到
$ e$ R: j9 S4 F- e! m- ` - //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到2 Q. e, H' J' m# y6 T4 w4 A
- //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
" N* Z+ t/ A; O6 W" T - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
u/ I$ P) l5 d - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码 8 D- d) m. T9 R! t% M
4 q8 w9 J6 g6 F" Y: l8 U: h
|
|