|
|
转载9 j/ K! A& v, d7 @. s- W2 {
6 Y5 [1 h# h" m3 u
" m& F, f2 R, M5 B0 p' k- ////////////////////////////////////////////////////////////////////////////////////////////////8 v) S7 w2 g. P$ ^& O1 m) q$ ^: }
- // D2Client Functions //函数表' x% H g9 I! W9 _* M) _' N" j! |
- ////////////////////////////////////////////////////////////////////////////////////////////////
, U2 N- b- [. r* H3 j4 m: d% T
! c& I1 A+ r \* `- FUNCPTR(D2CLIENT, GetQuestInfo, void*, __stdcall, (void), 0x45A00)//
* {6 l) g* Z% b; A& b - FUNCPTR(D2CLIENT, SubmitItem, void, __fastcall, (DWORD dwItemId), 0x45FB0)//% y1 t( C. E* ~. d" r) m0 n) S
- FUNCPTR(D2CLIENT, Transmute, void, __fastcall, (void), 0x8CB90)//
( L1 v0 M) P# j5 m4 Z - FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20)//
2 s2 D, K& z; e( _7 v3 J - FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny*, __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40)//" e' O5 I( ?- F' d) I5 D9 I9 J
- FUNCPTR(D2CLIENT, GetCurrentInteractingNPC, UnitAny*, __fastcall, (void), 0x46150)//( \6 i( \5 G, W: N# e! P' F
- FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (void), 0x51A80)//
" b! I; r4 n+ ]- R) c& x; o; b - FUNCPTR(D2CLIENT, GetCursorItem, UnitAny*, __fastcall, (void), 0x16020)//
S# m d3 V V& }& k0 a( N, @ - FUNCPTR(D2CLIENT, GetMercUnit, UnitAny*, __fastcall, (void), 0x97CD0)//
# {* {* ?8 F2 t& n9 _" x5 ~$ @ `, } - FUNCPTR(D2CLIENT, SetSelectedUnit_I, void, __fastcall, (UnitAny *pUnit), 0x51860)//
% Z5 o8 b. i: Y8 b& { - FUNCPTR(D2CLIENT, GetItemName, BOOL, __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)// B, o3 F# T- _6 q: c4 m
- FUNCPTR(D2CLIENT, LoadItemDesc, BOOL, __stdcall, (UnitAny* pItem, int type), 0x93450)//' o9 _$ }. S6 y# l9 d
- FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD nMonsterId), 0x216A0)//" w4 J- X# b3 p" J, [& e
- FUNCPTR(D2CLIENT, GetUnitHPPercent, DWORD, __fastcall, (DWORD dwUnitId), 0x21580)//
4 p7 [) F$ w- E# j - FUNCPTR(D2CLIENT, InitInventory, void, __fastcall, (void), 0x908C0)//
0 R1 ]$ h8 J( A% b - FUNCPTR(D2CLIENT, SetUIVar, DWORD, __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)//
) |4 A/ R$ e$ @ z6 f% ] - FUNCPTR(D2CLIENT, GetUnitX, int, __fastcall, (UnitAny* pUnit), 0x1630)//
! R( ~, I7 s+ s7 p; f - FUNCPTR(D2CLIENT, GetUnitY, int, __fastcall, (UnitAny* pUnit), 0x1660)//1 e: y& k4 v5 Z! d" e7 `
- FUNCPTR(D2CLIENT, ShopAction, void, __fastcall, (UnitAny* pItem, UnitAny* pNpc, UnitAny* pNpc2, DWORD dwSell, DWORD dwItemCost, DWORD dwMODe, DWORD _2, DWORD _3), 0x47D60)//
. g+ f; k) r" \4 ]% T; F - FUNCPTR(D2CLIENT, CloseNPCInteract, void, __fastcall, (void), 0x492F0)//' s2 q+ B8 l7 M
- FUNCPTR(D2CLIENT, CloseInteract, void, __fastcall, (void), 0x43870)//4 {( w3 l& P8 z* k. g2 f q
- FUNCPTR(D2CLIENT, GetAutomapSize, DWORD, __stdcall, (void), 0x5F080)//8 K0 z0 }2 ]; p7 }. I* ~
- FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell *, __fastcall, (void), 0x5F6B0)//% k+ d+ z' h8 S: X1 x
- FUNCPTR(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//- f$ i" W1 y1 L. f
- FUNCPTR(D2CLIENT, RevealAutomapRoom, void, __stdcall, (DRLGRoom *pRoom, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)//
! {4 n W- A. G - FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer*, __fastcall, (DWORD nLayerNo), 0x62710)//
' T1 o2 M1 H) t8 W" P - FUNCPTR(D2CLIENT, ClickMap, void, __stdcall, (DWORD MouseFlag, DWORD x, DWORD y, DWORD Type), 0x1BF20)//
$ ?: f/ {( \, E& i+ b3 E2 @! a9 ] - FUNCPTR(D2CLIENT, LeftClickItem, void, __stdcall, (UnitAny* pPlayer, Inventory* pInventory, int x, int y, DWORD dwClickType, InventoryLayout* pLayout, DWORD Location), 0x96AA0)//% q4 d6 }% e7 i( c8 W/ h
- FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD, __fastcall, (void), 0x3F6C0)//
* S0 N+ B; O v/ o9 a" g) H - FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD, __fastcall, (void), 0x3F6D0)//
& C+ [8 e0 d& Y/ x, f' [! | - FUNCPTR(D2CLIENT, PrintPartyString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D610)//5 V' ?1 V7 V7 N! B. Z# P
- FUNCPTR(D2CLIENT, PrintGameString, void, __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//1 V, y, h* c; C: x) F
- FUNCPTR(D2CLIENT, LeaveParty, void, __fastcall, (void), 0x9E5D0)//
1 n3 z/ n7 D+ z, O: U$ c8 V# _5 p - FUNCPTR(D2CLIENT, AcceptTrade, void, __fastcall, (void), 0x59600)//
% E7 C6 Y% b) u T8 t - FUNCPTR(D2CLIENT, CancelTrade, void, __fastcall, (void), 0x595C0)//
6 Q% r2 g! v& n* r - FUNCPTR(D2CLIENT, TradeOK, void, __stdcall, (void), 0x59980)//0 Z, Y: W- j2 g1 E' b& ~% j
- FUNCPTR(D2CLIENT, GetDifficulty, BYTE, __stdcall, (void), 0x58DA0)//
8 l& {2 `% w$ r' Q - FUNCPTR(D2CLIENT, ExitGame, void, __fastcall, (void), 0x42850)//
- X' [2 _! p2 k( U& u5 h - FUNCPTR(D2CLIENT, GetUiVar_I, DWORD, __fastcall, (DWORD dwVarNo), 0xBE400)//# h! k+ _( I' O) Y( j. U) D5 L) Q
- FUNCPTR(D2CLIENT, DrawRectFrame, void, __fastcall, (DWORD Rect), 0xBE4C0)//7 v f* K. h7 g, D* ~ t
- FUNCPTR(D2CLIENT, PerformGoldDialogAction, void, __fastcall, (void), 0xBFDF0)//+ m+ D8 B& k$ C2 i! s
- FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (void), 0xA4D60)//# p' F! l$ R2 }% N5 F
- FUNCPTR(D2CLIENT, GetLevelName_I, wchar_t*, __fastcall, (DWORD levelId), 0xBE240)//
, Y* g. P4 g8 G# J( M. j( l9 d - FUNCPTR(D2CLIENT, ClearScreen, void, __fastcall, (void), 0x48350)//4 F! ?6 V- m! d4 X+ w0 o
- FUNCPTR(D2CLIENT, CloseNPCTalk, DWORD, __stdcall, (void* unk), 0x7ED30)//
; a4 e: G- x8 l& j& _ - FUNCPTR(D2CLIENT, ClickOnStashButton, void, __fastcall, (DWORD x, DWORD y), 0x8CD00);//
. b, Z' Y! c G; [6 i - FUNCPTR(D2CLIENT, GetUnit, void*, __fastcall, (DWORD dwId, DWORD dwType), 0x78D30);
* G2 D8 L1 R3 t% t. [% {
$ i0 U: S1 ]( n- h% N& l1 ?- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////) d6 M$ S0 }% B- W! y
- // D2Client Globals //数据段内容在游戏内易查找,本人无1.13D版本,故以下数据段内容未查找,需要者自行查找
5 C6 C. R" X$ g, \; p - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
& b( y6 W# C4 V7 p
! ^- D( r J7 I6 }* h& _- VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)//
' f: N; y" q# ?. i5 k1 v2 ~ - VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)//
! f0 t l; j: S& }% B( {( ^ - VARPTR(D2CLIENT, CursorHoverX, DWORD, 0xE0EB8)//
: Y$ J7 N$ n$ Y6 p; d - VARPTR(D2CLIENT, CursorHoverY, DWORD, 0xE0EBC)//7 }$ ^; u; _6 C* G3 n6 d" Y
- //VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950)//未找到
3 H/ o& Y/ h# m4 ^9 M8 a8 l6 d - //VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C)//未找到, |/ A: D% }# F; T/ Q* u
- //VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840)//未找到8 w( ?$ }5 F6 ]' z
- //VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844)//未找到
6 }+ Q( {4 \ e; s - //VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8)//未找到
9 D# J& c" X, p) B3 I! d& U - //VARPTR(D2CLIENT, AutomapMode, int, 0xF34F8)//未找到7 M6 d) A+ d/ a6 W Z p) j3 P; a( k
- //VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C)//未找到
& z6 z; i5 H9 v - //VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28)//未找到
$ k% F$ u+ y# `( ?9 S - //VARPTR(D2CLIENT, MercStrIndex, WORD, 0xF02D8)//未找到 ^6 P4 v4 l7 c& X1 r
- //VARPTR(D2CLIENT, MercReviveCost, DWORD, 0x11CEE8)//未找到( a: e1 s y+ c0 |# c6 c
- //VARPTR(D2CLIENT, ServerSideUnitHashTables, UnitHashTable, 0x1047B8)//未找到
% G/ y: c6 Q: S - //VARPTR(D2CLIENT, ClientSideUnitHashTables, UnitHashTable, 0x103BB8)//未找到 }( i8 B; r8 ] E- \, ^' I5 @" H
- //VARPTR(D2CLIENT, ViewportY, int, 0x106840)//未找到
5 Y h3 m, y" F, O) ^: ?' } - //VARPTR(D2CLIENT, ViewportX, int, 0x106844)//未找到
! _( J# n5 {. s3 L1 `3 w3 n - //VARPTR(D2CLIENT, GoldDialogAction, DWORD, 0x11C86C)//未找到 V6 j2 k+ n( Q/ h. C2 |" Y
- //VARPTR(D2CLIENT, GoldDialogAmount, DWORD, 0x11D568)//未找到3 g/ J' c8 t; f, J; e9 l
- //VARPTR(D2CLIENT, NPCMenu, NPCMenu*, 0xF1A90)//未找到6 R( P" P5 ` n! w& l' `- H& o
- //VARPTR(D2CLIENT, NPCMenuAmount, DWORD, 0xF21E0)//未找到; e2 u& r+ l. [
- //VARPTR(D2CLIENT, TradeLayout, InventoryLayout*, 0x101598)//未找到
5 K$ u0 ?7 _( J* U" V - //VARPTR(D2CLIENT, StashLayout, InventoryLayout*, 0x1015E0)//未找到
2 t3 _- V x6 c - //VARPTR(D2CLIENT, StoreLayout, InventoryLayout*, 0x1016C0)//未找到
4 m' Z+ b$ E" S5 K; M - //VARPTR(D2CLIENT, CubeLayout, InventoryLayout*, 0x1016D8)//未找到) t' L4 u5 m9 N; g# I% J! `, ]
- //VARPTR(D2CLIENT, InventoryLayout, InventoryLayout*, 0x1016F0)//未找到7 ~2 G0 P$ D" U& q0 ^2 q5 V
- //VARPTR(D2CLIENT, MercLayout, InventoryLayout*, 0x11CC84)//未找到! x9 E; }& K9 P" E/ \0 Y1 |& z E% p
- //VARPTR(D2CLIENT, RegularCursorType, DWORD, 0x11C98C)//未找到6 `1 @6 W# }) p! b) o9 h, w6 j
- //VARPTR(D2CLIENT, ShopCursorType, DWORD, 0x11CB24)//未找到! g% `5 o7 Y3 r/ q
- //VARPTR(D2CLIENT, Ping, DWORD, 0x108764)//未找到* z M6 e1 @. L$ D
- //VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10)//未找到
! _3 q0 t$ l- Y# H9 [6 p4 w8 ~ - //VARPTR(D2CLIENT, Skip, DWORD, 0x108770)//未找到" P% g' u J6 O! P- C; j
- //VARPTR(D2CLIENT, Divisor, int, 0xF34F8)//未找到
( r; C" M" W: t7 U; R* k; ? - //VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE)//未找到
( E/ y/ u' I$ F+ D) B8 F% [ - //VARPTR(D2CLIENT, RecentInteractId, DWORD, 0x101895)//未找到
* G* Y/ Y5 O1 b, d) t - //VARPTR(D2CLIENT, ItemPriceList, DWORD, 0x1018B3)//未找到
( z6 q! c' @# S; B7 t6 B$ T; R* n - //VARPTR(D2CLIENT, TransactionDialog, void*, 0x1018D3)//未找到
4 i& l6 n! J! F+ {& ~0 t( s - //VARPTR(D2CLIENT, TransactionDialogs, DWORD, 0x11D58C)//未找到( I7 M( u% l! F9 b# o: \
- //VARPTR(D2CLIENT, TransactionDialogs_2, DWORD, 0x11D588)//未找到# T9 Q) x& r: W- N; j v( s
- //VARPTR(D2CLIENT, pTransactionDialogsInfo, TransactionDialogsInfo_t*, 0x11D584)//未找到6 N2 u/ s. [0 b* w) U1 N$ @0 h+ H
- VARPTR(D2CLIENT, GameInfo, Game*, 0x11B980)// 6FB1FCE0 mov eax,dword ptr ds:[0x6FBCB980]
6 h* ?6 b/ Z. u. r5 y - //VARPTR(D2CLIENT, WaypointTable, DWORD, 0x1088FD)//未找到
! ^% P' E% r+ P - VARPTR(D2CLIENT, PlayerUnit, UnitAny*, 0x11BBFC)// 6FAF4B5E mov ebp,dword ptr ds:[0x6FBCBBFC]
8 N% Z1 \, y1 G9 ` - //VARPTR(D2CLIENT, SelectedInvItem, UnitAny*, 0x11CB28)//未找到6 I8 O: X8 K& b
- //VARPTR(D2CLIENT, PlayerUnitList, RosterUnit*, 0x11CB04)//未找到1 d* \" [0 z- a$ ~5 `0 I& U
- //VARPTR(D2CLIENT, bWeapSwitch, DWORD, 0x11CB84)//未找到. x8 c3 q+ ^. A- I$ L( t! s
- //VARPTR(D2CLIENT, bTradeAccepted, DWORD, 0x11CD54)//未找到
. t8 O% R% O1 E; H! `7 i+ J - //VARPTR(D2CLIENT, bTradeBlock, DWORD, 0x11CD64)//未找到; ]1 T$ N! c9 m
- //VARPTR(D2CLIENT, RecentTradeId, DWORD, 0x11D5AC)//未找到8 n* | x. J- i5 s" ]. _+ n
- //VARPTR(D2CLIENT, ExpCharFlag, DWORD, 0x1087B4)//未找到
3 S: r6 s- O2 n8 k$ q3 q( ]& x - //VARPTR(D2CLIENT, MapId, DWORD, 0x11D204)//未找到
$ Z5 a9 M& u$ b( h2 c# m% [ - //VARPTR(D2CLIENT, AlwaysRun, DWORD, 0x11D234)//未找到
3 ~' t) E. [; K. v2 i& k) P; S - //VARPTR(D2CLIENT, NoPickUp, DWORD, 0x11D574)//未找到
z4 J0 ]0 o/ y8 X4 Y% W2 U4 Y6 w+ [ - //VARPTR(D2CLIENT, ChatMsg, wchar_t*, 0x11D650)//未找到' V1 U: o6 {! V0 \' n$ B
- //VARPTR(D2CLIENT, OrificeId, DWORD, 0x11C9B8)//未找到
$ W* |1 |3 L$ R7 j) H* e - //VARPTR(D2CLIENT, CursorItemMode, DWORD, 0x11C9B0)//未找到
' z7 I& H' i+ h( y4 `' { - //VARPTR(D2CLIENT, pUnitTable, POINT, 0x1047B8)//未找到
" K( S- z `& t& D! s: G" Z - //VARPTR(D2CLIENT, pDescFuncTable, void*, 0x2DAD4)//未找到
复制代码
4 ^3 A! n h9 C7 R+ w5 ^
% L, w9 i2 z' d$ H |
|