V& M# B5 `3 x- Q) l) b" Z代码: 7 d0 \8 b) Q1 nCWndAutoFood::CWndAutoFood() ! m4 n! z2 ~9 f6 _% f{ $ ~8 x, j* b3 y- ~9 ^ m_pItemElem = NULL;) k# r6 m7 t1 v+ B+ a q2 N
m_pTexture = NULL; 1 F/ s9 a8 N$ S; f$ X3 C bStart = FALSE; 0 }5 n% W: H5 q- e}, d6 O/ D" Z1 l7 Z, L8 p. G: V
/ u- z/ x7 N+ g1 K9 R( H
CWndAutoFood::~CWndAutoFood() , J1 s0 C+ i$ S/ U; c9 ~9 B3 K{5 c' n" f: \. C( D
AfxMessageBox( "AutoFood ist gestorben " );3 n) ^- p- {3 c# X9 K$ V \
} ' F% Y! P) @: d0 f+ n6 GBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ) / }" a% v. P: j4 R2 _. q{ ( ^9 B! y8 y6 |2 r+ b( b return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );2 @( F ?, `0 V$ X! Q
} c5 T% q7 I5 N4 L* h5 Q
+ n) c3 ^4 [: X7 [
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ) : h, A9 r+ p9 n3 ?% \, r7 W{ q# I6 n- g' @ LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); / j: A# i+ `5 M: i& ]3 X4 h CRect rect = pWndCtrl->rect;% m& Z9 I; T- J/ @* C' U
if( rect && rect.PtInRect( point ) ) ; N, f) W3 ^5 F4 f$ C7 O$ j { ) k0 ~8 \- f3 O" L. p! q CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); * c3 }4 w0 V+ B2 p5 f5 ^/ K2 z if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )2 l2 G. ?; P3 p3 C/ s6 p- X% a: t) t
{ ' \ `9 P6 l- {% P if( m_pItemElem )9 `( M, B4 S( [* ?8 R
{2 Z& T4 Z8 R1 r% Q( ]7 S( C9 N
m_pItemElem = NULL;7 D$ F7 c+ W0 G2 J9 n. X1 N4 Z* R4 {
}5 U, I* B& b- p8 P8 E) P
m_pItemElem = pItemElem;$ o# O0 k1 R6 T" L3 }+ }* w
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );$ |4 e/ e0 Q; ^. d. E4 R! F1 S
}else{ & U7 s8 U0 \' _; G* c% V' q: r( P9 p. O" T SetForbid( TRUE ); 9 s- b, r0 H5 i! g* a/ w( m# n$ e } ! N: J* D' }+ X }else{ : j3 O2 _- L$ w: Z/ P; y SetForbid( TRUE );# h2 a) N4 }) B+ C5 a4 v$ w
}) ^1 L1 ^2 N% s( N5 [* }! [
return TRUE;6 p& X) E, T% p& \- v
} * w2 [1 I5 x. q3 I- c6 P) c' B$ U/ n' M
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); W' ?7 t: }3 o& v Z1 @8 t
{) S; J0 A$ Y( T6 Z, S
switch( nID ) ) w$ R/ E$ ]" z- q# h l( N$ \( Q/ W {! [7 b& N3 f6 h7 \0 k% |1 T9 G
case WIDC_BUTTON3: ; y6 k" o0 P/ } H9 x2 J2 A {6 X+ y+ _4 T/ o9 y- b: e
bStart = TRUE;9 O! G0 ?$ `- b
break; ( k. F% _0 O, d } # O5 A, A. E( i; J6 N- C/ C0 u+ { case WIDC_BUTTON4: 6 D+ X# {4 c! h, C6 L! | { 4 \$ M D& a2 Y& w bStart = FALSE;3 m# H- M( _/ U7 C
break;8 L/ n" w% P2 P: N Q6 G4 e' c; O
} ; b) I$ n, n( j7 j3 x: j' o8 ? } ( _; q5 O1 h7 z% O return CWndNeuz::OnChildNotify( message, nID, pLResult );9 Y" U1 l: b% u% h! ^# t( L
} d; u4 E6 |2 Z7 _* Dvoid CWndAutoFood::OnDraw( C2DRender* p2DRender ) \9 t" Q; y& _+ {{4 i6 w+ K- p1 a6 ^9 L2 y7 s
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );% {1 f: M, h0 j. V' {& I7 ?
if( bStart || !m_pItemElem ) : ^* @1 }, U }; Y( I; d8 v { 1 R! y- A3 f* _0 i pBtn->EnableWindow( FALSE ); ( K, a& x: z7 G( O8 q! D) p }else5 x! w& S5 x! I) M# G. O
pBtn->EnableWindow( TRUE ); 6 q- T: }; w# f- L if( m_pTexture )8 k& W/ ?" O3 B" D, i8 M
{) [0 ~! H. _) S% n) a( D
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); # ]$ m, Z( x9 T if( wndCtrl && wndCtrl->rect ); Q% l. s9 P, @ R9 z1 ^1 ^
{ . u4 E j/ j; m m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );( E' i3 J7 t f4 q" P
}) z+ c* ^' ~+ Z% R$ Z
}; ]! e0 S1 |- Q* V
}0 P. U. i( m6 E
) A1 ?* A4 X9 fBOOL CWndAutoFood:rocess()* k1 D5 K( e- g4 a0 O8 p5 k
{+ ~7 m! x$ l. L+ u
if( bStart )# P% Y( V& _: U8 M
{! a; x3 ^$ ^! L- X/ z
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ) 8 Q1 Q2 P5 X: T { $ f. p9 U+ W& |% v" I$ N if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )3 p. ?) F& R( V* p
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts ); |- l* [/ ~4 l4 X
}else{ " {+ ]- f: Q/ F) P+ K4 N( m bStart = FALSE; 9 D$ ~ M) }1 H1 \& Z4 C4 p m_pItemElem = NULL; & j, n4 s2 a& }: c7 F+ v. k }4 z: ]2 F. `- a* M! _
}4 J9 h) v/ n* q% w
return TRUE; 3 A& X/ j+ W7 }9 n; o4 U% J: ?} ! \, u2 O+ [2 @) r, Y ; r3 X1 ^0 r& n [ w+ M登录视频废话: / A A6 u- M2 C- W1 j尾翼:% o+ n; e& C6 ]. A) O2 n
9 h: X. V5 x; ^) b/ R8 A+ u3 |# A
代码:6 Q3 q6 G. w) P
V! ^6 z2 M( c9 N m z4 ^
void CWorld::SetLight( BOOL bLight )3 e9 z* i O) V1 e g0 b4 K& k
durch$ y5 X( K6 T" i3 w
Code: ! i" T' P' Y" `4 m6 z& ^void CWorld::SetLight( BOOL bLight )! O( g0 H$ q, @# k3 }
{/ ^2 b! ~( Y; N; X
//ACE("SetLight %d \n", bLight);) p) \% r" Y. ?8 b0 L* f5 x
7 ~9 B! R# B( p( `) k# e% `! L
#ifndef __WORLDSERVER 7 s+ E& `, W9 `) T# ^) l
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);5 r$ E/ j/ d# Y$ \2 P' Y
CLight* pLight = NULL;5 h5 r# L/ N1 E0 y# l: k. c7 A( u h
/ z) g; }" s/ K4 s S' s
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );% Z% U% ]9 c8 z; o0 @
! m6 ^7 |3 p c% W! S, [! x
pLight = GetLight( "direction" ); . A* M" n! k% ^* ~- _; V 0 c; t- ^- T0 X8 d. M) \#if __VER >= 15 // __BS_CHANGING_ENVIR 6 N, K7 [! k: U7 n2 k) T; _, Q if( g_pPlayer ){ + ^. D9 v( u* i& U9 r( D- z ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) ); 8 c1 u: p5 p8 y3 j! v if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !! 9 Z0 f6 y. D% ~4 {% [6 W( Y/ z { , C6 T9 t+ j5 p1 k if( pLight )" C/ W' A$ k5 H: B7 x. q7 X
{ 8 k' f8 S/ x; h9 D3 o/ t' N pLight->Ambient.r = pInfo->_fAmbient[ 0 ];9 D5 ^1 E; p! O0 `2 C- b
pLight->Ambient.g = pInfo->_fAmbient[ 1 ]; ) ~" O; h3 F& X pLight->Ambient.b = pInfo->_fAmbient[ 2 ]; 9 c/ ~. Y; X! D. t' c X+ G# S# J/ t/ [9 b7 V/ _
pLight->Specular.r = 2.0f; % \0 B y1 w' Q _9 v pLight->Specular.g = 2.0f;# g0 x, [1 M! X; s# U
pLight->Specular.b = 2.0f;4 l$ h! [5 w r! n% _
+ i' P/ V9 u9 ?) f9 M
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ]; z- i/ b& j: R pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ]; 0 t2 f5 y1 Q" i5 ? h! \% q7 X8 k6 z. Y pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];; U" _- \' ~3 @) z4 H- F
8 `- u3 W( m6 @- i3 I
HookUpdateLight( pLight ); 5 ]* D/ X" S9 Z4 ~- A; B
% Y0 Q/ n( F2 _1 g memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ O9 m. Q5 S7 d0 q
4 A( o" b$ \1 Z/ P pLight->Diffuse.r *= 1.2f;" N- D( S0 {$ I, h( z$ H
pLight->Diffuse.g *= 1.2f; 3 N. @% ~( F/ u- ^5 f pLight->Diffuse.b *= 1.2f;. ?4 W/ i- w, t; E8 N
& `; Y8 T( U2 ~, f" T pLight->Ambient.r *= 0.8f;& D Q6 N. |5 l% M. L
pLight->Ambient.g *= 0.8f;9 N1 r; P: v) |8 W' ~- k& n
pLight->Ambient.b *= 0.8f;2 V) t# m) N1 h+ l. }2 o- _
& f0 N8 v T" `+ W. J memcpy( &m_light, pLight, sizeof( m_light ) );$ c. \8 i! T1 e$ Z( I9 ?% B
) q0 t8 W1 ]* ?5 e7 y7 k: Q2 v D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 Q; G6 \; T5 }1 l/ d) g
D3DXVec3Normalize(&(vecSun),&(vecSun)); 1 L" u' G n! C, W2 ^ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 n8 g5 Q/ m+ t pLight->Appear( m_pd3dDevice, TRUE ); 6 o1 I5 M& B5 g $ x3 e7 C9 u7 p
DWORD dwR, dwG, dwB;2 J6 n: _, d6 C' j
dwR = (DWORD)( pLight->Ambient.r * 255 ); P) W8 q2 m( T7 \9 X dwG = (DWORD)( pLight->Ambient.g * 255 );8 M% y& ~2 c s- l1 P1 m; ~
dwB = (DWORD)( pLight->Ambient.b * 255 ); * b6 g, W W( a& o1 d% k' d dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );* E9 `. E5 B/ j2 ]: z$ T2 V( l+ u& ?
}8 _0 ~9 x- {6 a0 X4 d. I S
} + G/ R% m% T' [4 K& @( o3 C; h4 I }, s; h2 ?& N& i& ]' i! H
else * U8 P9 V+ K- @#endif 6 s' `) z1 V$ \9 P