|
|
食品车:
* x& M7 o6 T, G" |9 Z尾翼:+ ?5 i, T) g! n$ k' }/ z% T2 ]; |. b
- m! V' B. L$ M$ t* a6 W代码:6 R2 U" Q0 \3 u: U% [1 z; a
CWndAutoFood::CWndAutoFood()
. {3 w& F- ]. g{
6 q/ s5 \9 x: o: h. O; H! r m_pItemElem = NULL;
; w* T) ^' v( t m_pTexture = NULL;
, z+ T: z. Z4 p+ ^. l1 Y bStart = FALSE;9 N- @, Z1 T# v' m5 M" e( K5 R
}. Z4 _) f$ i' i2 ]5 a# q
) a$ s; w; U$ M. M3 X0 F
CWndAutoFood::~CWndAutoFood()
/ `% d, D# @- o- f& M{
2 Z5 }/ M2 P0 d4 x4 o- J; m4 T9 ~ AfxMessageBox( "AutoFood ist gestorben " );) L* @; H, U3 c) x: y% c/ e' u6 `
}
! P5 k5 u% \, \5 S" uBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
J8 E4 x F1 N/ u2 u{
, E. c! D) C, `3 d return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );* c* I8 s0 Z& e' [4 P
} y+ l+ k2 F3 B( |6 G+ L x' x
2 O% M7 Y$ r% |) b; c
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
. w; @9 Q0 u% A6 x) G x6 b{
( |; R3 k' S) o% F9 b# ~, v% d LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 [2 e3 l# N2 I1 M" a/ P
CRect rect = pWndCtrl->rect;
2 d* C' j0 I4 H; r if( rect && rect.PtInRect( point ) )2 s! `9 t! `9 D! D; i8 Z
{+ _, R% L8 }/ Z
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); K ^6 }0 R: V' H
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
8 ~6 t1 ~3 G! j6 K; z$ k! v {$ N5 K$ ^% g, F8 ?
if( m_pItemElem )5 E$ b9 J" x9 Z7 s3 s5 k0 v
{
$ f7 i% w: \( @; q4 V2 M5 Z m_pItemElem = NULL;" }! k( S8 x9 q
}2 B/ |% I0 C6 Q3 X: d
m_pItemElem = pItemElem;
* w- _6 F; Z8 p: O- k m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
1 U, M$ s1 x- ?- t a" u) m6 f }else{7 a2 ]: E4 w; Z, [ P
SetForbid( TRUE );* {" X: n- C* l
}
) z+ x8 S" d/ h. k$ L }else{
3 {: N! t8 v/ w: E SetForbid( TRUE );) S& A9 j9 u0 e2 v: f* ^5 w( d
}3 w8 X1 b! S( p* C( B
return TRUE;
6 v9 y3 |& A" L( D( S1 W}
H4 d; [4 G K8 u/ U S, ~0 r7 ~
' M+ L. O( d# @5 F& `0 ~BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
7 q- `, m! C. Q8 B{/ h- ~3 i+ u# D) s9 r8 ?4 G
switch( nID )
! ~7 e; Y+ r8 \0 J- p+ t" W {9 w3 n. A+ A% b- q6 E/ b
case WIDC_BUTTON3:7 [' f- z% P6 O$ C
{
0 b' O/ j: d) O( l! U$ i" V! V bStart = TRUE;
: r: D/ B: `1 |) l# ?. e break;
8 h/ \! u) W H5 a3 k! i9 ~ }2 R( Y& g2 D. I0 O
case WIDC_BUTTON4:
# @5 w" E' Q* J9 d, p6 @8 @# _4 X {% g6 H8 }+ E# d
bStart = FALSE;1 t$ B! G i. x5 h
break;+ i/ K) l4 ^, S
}: @9 p& a+ Q* d$ P/ S9 N
}* n) f% j) n3 }( `
return CWndNeuz::OnChildNotify( message, nID, pLResult );& @' _7 B3 g) }; ^/ Z$ Y
}
: y% u% {5 S2 e K: x: F2 \2 e. O2 Qvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )$ Q H! f0 Q* ?- O4 w
{
T3 F- Y- T1 R CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
3 m$ Q8 m( D) [1 ?7 H1 m if( bStart || !m_pItemElem )
/ G/ g4 h% ?6 u) c& Z# v. M6 [ {8 U- c$ A& b' u! ?# o6 n5 o$ C
pBtn->EnableWindow( FALSE );
4 _/ [! g. O0 [$ Q }else9 Y! W; ]1 L0 `, Y4 Y9 F7 |
pBtn->EnableWindow( TRUE );
; o$ Q$ l$ {* C. Y! C0 l% a if( m_pTexture )9 S7 }8 F! f/ u; `# V
{- T( T$ }: e2 Y
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );4 W/ Q, \7 p% U+ p( }
if( wndCtrl && wndCtrl->rect )# p! j2 O0 q2 b, [' ~
{' ]; @6 a& D6 q/ H
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
: i: w. @/ D; |+ F; i }$ D+ Q1 p. h8 m- ~; J/ o
}2 W5 V% E) y" N; w) b
}
0 ?9 c3 ?$ g$ R, j$ a
* ~' \' \5 G ~! M8 ^# ~% F- ABOOL CWndAutoFood: rocess()2 [3 q" t) c; v* E
{
& ~; W+ w+ M5 |9 t7 p8 I. I if( bStart )5 c* L0 C, V( r) e2 W. o7 E' l4 ]
{
, k; t0 }6 P0 r) U2 I if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )5 S2 H' x8 K* P9 e& {
{. _3 R+ @, C" N8 B/ x
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
; r0 L; s' G( s$ T: M g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
5 J- {5 z7 \1 v9 H$ j }* _ }else{
& ^' L. H. H; q4 C bStart = FALSE;
/ R: _- {; n5 A8 {: ]9 s m_pItemElem = NULL;
# x- c, M+ b1 M1 K) ?! @1 f }; @+ Q3 @% \# e) b3 q7 e
}
" z- k0 W" a6 i! L5 }4 R return TRUE;, u" R8 f& E& p) h
}, n; U- h% q* ]) p
4 _7 ^/ E# f9 Y登录视频废话:
2 M6 Q4 g' p( c尾翼:
/ D- m3 D2 E8 q, r0 S$ i; S3 K: H4 L: o3 e u- s$ b2 v
代码:
( q' |, o# _) L g& o" w' h# \2 w6 I2 P! |
void CWorld::SetLight( BOOL bLight )
& q6 C" ?* B; H$ ~0 q( ?# ]* L9 Fdurch
& a; ^. {$ k6 w" s7 @% rCode:! V( O$ {5 N4 ^- V @. m9 ^8 f
void CWorld::SetLight( BOOL bLight )# n4 A: b) e, J
{
& k6 b/ P! ?2 y& A //ACE("SetLight %d \n", bLight);
@1 w( g" @ t9 \5 p- [ ( Z( d; }1 {" a: N
#ifndef __WORLDSERVER ( n' [4 L( d) W4 b- }
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* j: d9 a& d8 B0 c# B8 R- | CLight* pLight = NULL;
( I3 t; b1 b) p7 s/ ~8 d7 K3 M+ e- {3 O
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );9 G# G/ v/ [+ K1 l/ C7 G4 }
4 U0 _5 z( L( B+ X# f0 T pLight = GetLight( "direction" );
/ m+ t1 ^" g2 z( d* c: w4 U
* C2 D, g: v$ U& q; W. }% F( y( W; p#if __VER >= 15 // __BS_CHANGING_ENVIR0 o# ?% R" ^. r. T I
if( g_pPlayer ){
% E5 H2 U! U* l' U ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );8 D# R& ]* ~4 s* U- k
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 d2 I% y# X! h" j: n* [
{
9 |9 h& k% ~/ [% V if( pLight ) i! D) D+ I$ q" C& I
{8 c) s/ d% Y5 r' j0 i
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
f* E9 X3 g I/ I+ Q; c) c pLight->Ambient.g = pInfo->_fAmbient[ 1 ];# h# c2 I& m J9 D- \. E
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];: E! |4 c9 i- \$ t- K q3 r
3 m, X, f% w, P0 Z+ @
pLight->Specular.r = 2.0f;7 W& X' Q7 k$ p2 G' y
pLight->Specular.g = 2.0f;
/ i7 h! S5 l& t B# X) E pLight->Specular.b = 2.0f;
) {% _& t$ U1 y, b6 | ; U! C9 Z, s/ `5 t( g0 r* p, x3 p2 z
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];$ z! `/ X9 q0 \! O
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];6 O+ T+ f! r$ n! P0 g' ~7 V
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
6 U. ? w8 Q& L7 X; O: J/ { " W5 U- }2 Z! r/ v1 _9 v) k) {
HookUpdateLight( pLight ); # z3 q9 M F* [+ {& b
" A5 H- B) t! G2 i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 L/ [ p1 R! u6 \5 N ; V# _, R; W! b# ~8 m% D
pLight->Diffuse.r *= 1.2f;+ M. w5 Q/ e# V! _" h* \; a
pLight->Diffuse.g *= 1.2f;3 n7 ~# |$ e' K3 s( z
pLight->Diffuse.b *= 1.2f;8 n/ ^! P6 s9 n1 K8 V
- b. q( U- n" |) I7 Y( ~& U" H6 J J
pLight->Ambient.r *= 0.8f;9 R- |6 L5 a% s0 K( K4 ]
pLight->Ambient.g *= 0.8f;
2 D1 n: D# @4 |: c" a2 a pLight->Ambient.b *= 0.8f;
- Y! v2 V5 H7 e. k
" F$ Q% L0 H: b1 ` memcpy( &m_light, pLight, sizeof( m_light ) );
( W/ w( A O5 v) T( F7 [8 I1 U( p' z! l. C6 J8 f
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' v" t* S! e' C: [$ L
D3DXVec3Normalize(&(vecSun),&(vecSun));2 r) _' t: h+ x+ S7 }
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, p# e3 M/ X$ T' b( g& n pLight->Appear( m_pd3dDevice, TRUE );$ r' m* }% _5 p. M3 c# S
$ v+ G0 J+ D2 J* b% g
DWORD dwR, dwG, dwB;% p8 V5 ?6 |% E# Z% p( B4 ]! C
dwR = (DWORD)( pLight->Ambient.r * 255 );1 Y6 ~, W& E7 e! H
dwG = (DWORD)( pLight->Ambient.g * 255 );( K7 {) C& \7 x, m W7 l/ ^
dwB = (DWORD)( pLight->Ambient.b * 255 );
" P7 T! R# Y8 A dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ r% v- @% s# d$ s
}
8 j, }. I3 d: g, o! K }% V! S! w% ?* T0 P6 K& H8 X
}% c, Y+ p0 [) I1 P4 t6 d; Q
else' _- k, \( X4 z! C; T5 t G- E5 l
#endif
. S( j. v/ x# L; [# _* @9 a" A. o- l; r
if( m_bIsIndoor )
' ^( o/ f" N( L. l# T! a( m' V {( V2 z8 b# k5 Y h0 \8 T: D1 r
if( pLight )7 v& K% A7 X% r3 L8 I
{ 0 F& N9 T s' X: R% ~
// à??μ oˉè* 4 T, g& u ?& L9 f- M
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
2 W! \9 k) `4 R$ Q/ i+ @ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
% T7 N! a& Z8 E1 P pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;" i+ d+ X/ Y% a
" {; s) N3 o* X+ z2 R
// oˉè* ??à? 7 Q7 @& N2 k# \; z5 G. a& e9 _
pLight->Specular.r = 1.0f;
" U, C2 f5 C; V. x6 x3 G pLight->Specular.g = 1.0f;
! d, E' {- l+ Q( A pLight->Specular.b = 1.0f;
% L; [, Q6 |# d7 `; T, Z0 r5 ~ // àü?? oˉè*
8 z+ I$ C" U G- D pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
3 b* `, N# g! e F6 S: s3 Q pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;- D9 c6 r7 X* u+ e% K; j1 M0 `, O
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;( c! ^9 J4 m: p- e0 e5 }: N+ {$ K
% ~3 g; f" b) a$ W" e {" x
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
) S7 w5 A8 h* L$ ~7 E, G6 p9 o {1 D; h1 W3 R& U6 B7 H0 n3 @" f
pLight->Diffuse.r *= 0.6f;; k8 W" T( Y0 M+ f* |# w: w; ~- r- o
pLight->Diffuse.g *= 0.6f;
' K1 k; Z# r$ S; h4 ?; p pLight->Diffuse.b *= 0.6f;
, O0 U- Q2 O0 _) P pLight->Ambient.r *= 0.7f;
) u: f3 Z6 j0 M2 Z+ t pLight->Ambient.g *= 0.7f;+ c2 w% L" L X8 e, v
pLight->Ambient.b *= 0.7f;. H/ z2 _; f4 o5 A2 ?9 r8 {7 P
}
+ t3 e7 ]" Q8 V- \0 I& s$ g2 [0 L- d& D
#if __VER >= 15 // __BS_CHANGING_ENVIR
% K$ F0 a! @9 ]) ?' n( ^ if( g_pPlayer )
; c# U, }* m1 `% P7 k0 a! ~- Z! s HookUpdateLight( pLight );
# D! A, |& m+ u#endif' [+ V' Y( G0 Y$ S5 T/ d# Q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* f! E* {$ `2 k$ G7 I
+ T! e( I9 z: y, r pLight->Diffuse.r += 0.1f;5 G8 F# A D- U8 u6 k, U' H3 L
pLight->Diffuse.g += 0.1f;8 f+ Y% Z/ r; f7 E- g
pLight->Diffuse.b += 0.1f;
) k: a; y- c$ W3 o! o8 f- y // oˉè* ??à? , u2 S! Y8 g2 E, T! i' {
pLight->Specular.r = 2.0f;
( _7 {4 s2 {% R. H pLight->Specular.g = 2.0f;
O" c; M* [, `4 F0 r1 M$ F1 Z pLight->Specular.b = 2.0f;
- ?$ A8 F% z% y // á?oˉ 4 S7 |: ]5 [; f, x, u: O* O1 X
pLight->Ambient.r *= 0.9f;
% }$ s+ x' ]! S" k) G+ f* P: N pLight->Ambient.g *= 0.9f;/ I% N: C$ X& }' E
pLight->Ambient.b *= 0.9f;
- |: t3 i4 j, T' L6 s* S
) p9 b% A# A/ I) h memcpy( &m_light, pLight, sizeof( m_light ) );
& s3 o0 I* Y$ ]1 S+ k+ S B$ F% b
( p5 T) J7 U) A! d1 O pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
3 a) {( t4 C& J$ x/ \3 } pLight->Appear( m_pd3dDevice, TRUE );
8 D4 p* j& ]2 I3 x( `& H
% q( ?, Y4 y7 A* G" {3 C DWORD dwR, dwG, dwB;) K0 {; m: |3 }# }! d/ g' p' r
dwR = (DWORD)( pLight->Ambient.r * 255 );
1 ^( J! N1 j" Z5 l dwG = (DWORD)( pLight->Ambient.g * 255 );
: Z7 `9 g, k9 C6 V3 i' j1 j dwB = (DWORD)( pLight->Ambient.b * 255 );
% T8 ?0 C& ~7 Y( U* y& U dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" B1 {/ Q9 n1 c6 P0 z$ Z$ j2 @
}
% ]$ S' E0 t0 j/ C( v1 O0 Z" h H/ [* Q/ D }& k. ]- \: S/ M! ?1 L
else. _% a/ Z; Y: F% Z$ X8 j2 G
{
' P s- E8 u5 ^& r8 S0 T if( pLight )
: _5 f3 l* h; o {8 W& P$ q# [- Z& }1 F
, M8 t) B+ ~4 K9 e/ L- P
int nHour = 8, nMin = 0;3 i8 X8 x" G0 N7 J+ N; t( D
#ifdef __CLIENT
2 |$ u3 \% Z5 F8 g8 t9 W+ Q B% z // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. , e2 h$ ?0 G6 u4 {: B3 t# \, Y8 `0 O
nHour = g_GameTimer.m_nHour;
, X; D5 z/ b5 P: [) c. o, h c nMin = g_GameTimer.m_nMin ;
. s! M$ `! r7 I5 O5 W: \# w/ u #else4 W. H6 ^5 ~, @# F2 R0 E) Y
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.( |# ^6 Q9 U. m, a
if( m_nLightType == 1 )
: ^- S$ d3 b ~* g" h H nHour = m_nLightHour;
9 m. p7 ~1 B9 P5 t! E #endif4 H" L, b N+ z4 t, `3 b/ W5 Z
nHour--;2 n: A: D6 D& ]. W) t! ]
if( nHour < 0 ) nHour = 0;+ d' }' ~( g$ r w& g9 z- _
if( nHour > 23 ) nHour = 23;9 ~) H' l0 @: u* ?
6 @, t- v- A, \( J; k
//if( m_bFixedHour )( B" D/ N+ m- ~' l* M6 L
// nHour = m_nFixedHour, nMin = 0;
2 y6 ?$ t6 s) }2 K h7 ^. n6 g LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
# v% {& c7 o: t4 g- | LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- O# a4 `% O5 D9 {; g* n2 ~) u4 }4 X# z& _/ C9 ]
//m_lightColor = lightColorPrv;
4 F! M% z% q& U8 Z, x$ q lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
+ g7 [0 h1 l- U lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
. K" M* Z" E5 H4 Y lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;" H6 s" w% s- {/ J5 C" ? @ @+ L
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
) _2 p4 }3 o; X lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
; l1 U; V' v: n& w" Z; j lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;) h. x8 \* z1 t
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)* s2 p3 y; Q z: Y; D8 I4 p
/ b7 w+ E5 M4 X+ L9 k
// à??μ oˉè*
1 |8 S8 {- @' m: S! e( d7 u6 G6 Q6 _% N pLight->Diffuse.r = lightColorPrv.r1;, Y* T* r) f. l1 i: w
pLight->Diffuse.g = lightColorPrv.g1;) m/ F& X* R- u" ?. k
pLight->Diffuse.b = lightColorPrv.b1;
1 `7 p0 Q5 n% n5 X- I+ c' e+ x+ ? // oˉè* ??à? " T( e) i; B% }. o
pLight->Specular.r = 1.0f;4 N% l, _) h7 B+ `
pLight->Specular.g = 1.0f;
7 e3 M/ F" a( b. W+ T9 d+ P2 [0 C pLight->Specular.b = 1.0f;, |: S8 E- h6 H( P' F1 t
// àü?? oˉè* " D2 j( c; p# J
pLight->Ambient.r = lightColorPrv.r2;
. ?2 h& _* k, j; v pLight->Ambient.g = lightColorPrv.g2;
* @8 _: p, Y# X+ F3 K7 r6 t pLight->Ambient.b = lightColorPrv.b2;% s, n) [$ H, A G: _
0 F, e( d( z$ v0 g
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) Z: V, n6 |+ H
{; l) ]) N# f3 R* |/ G$ U
pLight->Diffuse.r *= 0.6f;- o8 M2 p* |( z
pLight->Diffuse.g *= 0.6f;
% q" V3 u3 {3 o: p8 o7 [6 a" G pLight->Diffuse.b *= 0.6f;
' m7 e+ q+ ^1 F, \ pLight->Ambient.r *= 0.7f; C$ l% v# Y6 n+ f8 o+ F E/ X
pLight->Ambient.g *= 0.7f;+ [9 n" B# G. ?* l) h+ M
pLight->Ambient.b *= 0.7f;, o2 T7 @/ [' F; X4 c/ q2 c! h6 O# O
}6 Q' w q s* J' k' J) K6 `
5 S: l, _" t. e3 }3 a1 J8 r
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 i% o( G1 \ Z2 L4 I/ B6 Q; g+ n if( g_pPlayer )2 t$ I+ Y4 u( ^4 f
HookUpdateLight( pLight );
& @$ ~4 d# o2 J$ f* x. {( g#endif! x& y+ p% M5 B& j, W- M' M
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; x; _9 y& I7 ^6 `4 P" G
! x2 {1 e" {$ _2 M& f- X#ifdef __YENV1 D' F0 @. _+ c7 a e
pLight->Diffuse.r *= 1.1f;
# Y- ?( P- x. o pLight->Diffuse.g *= 1.1f;0 L/ @1 W5 z: [/ M U6 @- D% T9 d$ m
pLight->Diffuse.b *= 1.1f;
: d' x0 V$ o' ~& ^3 H // oˉè* ??à?
/ @0 f9 B2 p4 {+ B' I pLight->Specular.r = 2.0f;
: _/ h( n1 ^1 b3 m: Y3 @ pLight->Specular.g = 2.0f;# \& N! `; q" w' U% V( |. f: ?& H
pLight->Specular.b = 2.0f;, c& Q2 N7 s3 Y8 \, G# U: ]7 v
// á?oˉ
* m, @; d# m8 B6 D% x8 W; g) M) W pLight->Ambient.r *= 1.0f;$ }- M, J. @! M8 T) ?
pLight->Ambient.g *= 1.0f;3 J& k" L* Y; Q( w
pLight->Ambient.b *= 1.0f;
9 L% M0 h+ F' D$ }#else //__YENV
e* u7 S" D1 a. T: l0 w8 W7 k pLight->Diffuse.r *= 1.1f;/ j- e: N) q* A6 B8 E
pLight->Diffuse.g *= 1.1f;* `+ K; H0 o; l; \4 g Y
pLight->Diffuse.b *= 1.1f;5 O% i& n! n! B# l% g2 L
// oˉè* ??à? 1 w" P6 w' B/ w1 E
pLight->Specular.r = 2.0f;! a, V: l* ~. N
pLight->Specular.g = 2.0f;
1 j: `" S0 ~0 L8 a) M pLight->Specular.b = 2.0f;9 y2 R" e/ I* K4 f$ f. I
// á?oˉ 7 a+ t2 a, O) X/ ~4 V2 S- s# h* J
pLight->Ambient.r *= 0.9f;
$ m/ ~: C; _& G, P: e; c* r pLight->Ambient.g *= 0.9f;
! s) f1 A% J, ]) E9 _/ E- P2 H pLight->Ambient.b *= 0.9f;
" i3 g" i D* q3 b#endif //__YENV 7 P+ j& x! X Y' m3 Z
1 n' ?1 m! k# k9 S" b/ f u
memcpy( &m_light, pLight, sizeof( m_light ) );% G: p: }. I, N0 C
' H" \' e' i9 P, L! ]
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
% S9 y& y: T; E9 E% H% m. Y( Z* u D3DXMATRIX matTemp;
+ P' r3 X8 z5 n% ?" e static const float CONS_VAL = 3.1415926f / 180.f;
" m% _1 t( n2 S9 B% v) N: e9 G* G
" p* u+ n% q6 @) p, U D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
3 M8 ?. _- u* g D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
. w6 ]6 C! e0 Z6 X pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 R+ }! A3 o- h" `; D! _: t% a
pLight->Appear( m_pd3dDevice, TRUE );
d. M+ ~$ k' @1 l. h
$ E. ?4 W) [& F$ }4 ?/ U // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
3 K# n( ~. Z6 S1 M/ C+ T // D3DXVec3Normalize(&(vecSun),&(vecSun));
, N" L) Q* Q: d4 \; q/ h! z- v // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; V* u" f F' p# q! G/ ]0 N+ N3 D: w/ }7 f) |4 F
DWORD dwR, dwG, dwB;
! m' y: x# K2 a7 N6 q' z$ U( C dwR = (DWORD)( pLight->Ambient.r * 255 );
, {" |: E0 N* s* ? dwG = (DWORD)( pLight->Ambient.g * 255 );
+ R5 C4 t" I* Q2 G8 |$ b dwB = (DWORD)( pLight->Ambient.b * 255 );
( P2 q7 f1 f# H$ I' ^. P7 H dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
# f4 v5 v; i1 B& C }/ c' w- D6 [& h) r
}
7 G& O$ e/ b6 Y* J0 d+ @) r2 y5 @5 m, j4 G7 U) C- z
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
: v- }, O4 g0 C* D# A. E m_pd3dDevice->SetRenderState( D3DRS_AMBIENT, dwAmbient );//D3DCOLOR_ARGB( 0,0,0,0) ); //m_dwAmbient );//D3DCOLOR_ARGB( 255,128,128,128) );//D3DCOLOR_ARGB( 255,50,50,70) );8 G2 s1 x7 Z! u% p9 k
::SetLight( bLight );3 v* U2 p) W7 f. C# p2 \1 J
' s4 ? _# i; |' z% a4 n // ±ao? ?D?í???ó á¤à?
5 X2 [8 O' ~6 X+ @6 A7 X$ E1 T/ x m_pd3dDevice->SetMaterial( &m_baseMaterial );
9 F% P w5 s7 y3 t- j; p + m. |- B- x# A6 b6 ~
#endif // not WORLDSERVER
* x' t5 u- N5 r# U* g! i& h}
! f9 C$ T( v4 V* y并更换0 R. M$ i- @! L& D
Code:
& R+ L1 i3 ~! h9 H__FLYFF_INITPAGE_EXT
0 d/ W+ ~3 \* q. R% | V定义3 I+ V. L7 n1 V* v1 _
) v1 B' C& k! b1 ?: {2 y* H+ ^3 P" C$ B. D; h, K
& P' \1 ?9 v3 i& ]& O) }4 ]
: U+ T, y3 Y( G" a; k
现在终于删除我的狗屁加速..." U) |6 \1 m( X |5 u/ o
' P' ~: q$ w; X) u0 B* e. x
# N6 z+ O1 N) N4 {
+ Y2 ?9 X# ^2 l |
|