|
|
食品车:9 I& w$ h; p, i% y, G
尾翼:
5 B* X: v* ~( |
8 E( |" ^: I ?( A. z代码:
M2 h8 o: u% r, WCWndAutoFood::CWndAutoFood()
( E1 J( q3 E3 Z7 l- _+ N8 j1 L{
. [( f4 Y: z, Q# c, }7 G m_pItemElem = NULL;
7 F0 A. z5 l# Q: `4 I' E E0 z1 n m_pTexture = NULL;- o, _; W5 C( N$ J! x, v# Z1 f. i
bStart = FALSE;# N9 ^) Z5 U6 E5 d3 _
}
, G" Q2 {. {, d$ `! p$ @- r) G6 n5 e; |7 l3 D. M
CWndAutoFood::~CWndAutoFood()
1 \" X9 Q @$ W7 r% a; ~0 N{/ E8 C2 D. M# z/ b5 ?# S. Q3 i n
AfxMessageBox( "AutoFood ist gestorben " );4 ]) O+ v0 A9 ?( M; J: u0 O
}
" Q1 O$ _9 z7 \& Q4 C6 ]BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )" X8 T! L4 }% K$ E" d3 G9 r' W
{
, t; E' [0 B l- v& Q# N return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );4 T# B& x4 L1 Z8 V3 O3 y. t( S+ q
}
1 Z. j9 ?% Z+ f! U
& ?: O! _' N. {BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
3 V8 e) \/ @8 R2 v8 g# @{. T8 z: r$ p' V: i1 x
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 [$ ^ m8 t- {# V( i' m$ W+ s CRect rect = pWndCtrl->rect;
( p8 a% S" \$ U7 u8 V3 @, r if( rect && rect.PtInRect( point ) )
) y1 h* [% G2 W, ?2 c% K L+ n& S {1 v+ c: M: l2 V
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); [8 h, ]! W8 ~
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
2 a! |% ]; }# i {
% n. d9 S, M4 u" ^% N if( m_pItemElem )
3 N( Y$ O7 w" _& R+ S {
, u6 f% I u/ V" x* u& o m_pItemElem = NULL;
4 h' z! W) [5 s( F S }
; f6 @& o$ b! `, x2 ]& x: l$ X' B m_pItemElem = pItemElem;
: K- ^1 k4 S% h ?1 `, u3 f7 k m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
& }8 |1 P: ?/ Y2 P4 H }else{
- }6 F7 t) k0 q# I) Z' D2 m# [ SetForbid( TRUE );' a' n' m! @9 f- P5 p
}
, N2 |* Y! Q6 h C }else{
1 r5 r/ P. |+ @) |$ d; w4 D6 J- H2 B1 w SetForbid( TRUE );: p- m; ^5 {1 |+ Q/ [
}
/ V! i5 w% _. X7 h% m return TRUE;
4 X! w5 @9 M) T% G% i}0 _' F D j6 I: c7 C' R" h
4 o( r2 @6 Z! ?* d$ H4 NBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )2 i! ~! [6 z" i9 b
{
- N' Y0 G0 C' k; a( I0 W1 v+ N switch( nID )
: c; o4 p1 Y' X- C1 S# k% X$ C {$ _, N: n# B" O4 k6 Y: U
case WIDC_BUTTON3:
, z$ R* y4 l( L4 y; P' O {
% G( x' U) U# s. P* _ W: h bStart = TRUE;0 ^) Q( O5 _+ X" p4 Z5 r
break;
) ]" L. L: X6 c* E' H7 [6 {7 [ }/ l: [' d+ |4 Q5 x+ k
case WIDC_BUTTON4:
4 H# K1 C! w/ z1 H6 K {
" T$ t8 l' C: x' ^ bStart = FALSE;) \) t7 G8 S' ?) N
break;
. r7 W5 | g" V! z }
' l3 \4 g; c( A% Q }
% k4 \5 a; r! s* e- R% e return CWndNeuz::OnChildNotify( message, nID, pLResult );
' h4 E$ f/ J+ K2 o* c}
. |$ @! L9 C! O& Mvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
: l$ a) S9 B0 |; H( W; I{) p& s3 a w0 m+ E. q3 a! S! @
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );& y, }6 ^ o8 ~0 @9 n0 j3 M
if( bStart || !m_pItemElem ), w1 b) e) e% R, e9 Z/ w
{
2 d: l+ p# d. D' X pBtn->EnableWindow( FALSE );
- H# E+ t+ _9 Y. X }else
: R+ h% D! O' n6 ?. W2 M; s pBtn->EnableWindow( TRUE );* w4 J: B2 r$ y
if( m_pTexture )
% n; _( j5 f" h& Z+ w1 w {' d0 @6 l) y* `
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );# L K0 P5 M' ?. {
if( wndCtrl && wndCtrl->rect ): `/ [; ]4 E; ~; E# N
{
5 G0 W6 A# z* V& M m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
7 B% i# ~9 j0 L& z }/ ~ i9 ]3 W( K! f( S
}
4 }0 `: V% @% r! p x' ?}/ m: B3 K. H4 E% k! V7 {& V: K
8 Z# s9 f' Y6 ~8 r! j* K, R
BOOL CWndAutoFood: rocess()0 M: {+ b* v" ^' l8 F6 j
{
1 b5 P' j1 d6 X5 ^! M if( bStart )# Z! e1 O8 s/ _
{
5 q! x0 _. N! q% v& l if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
6 V4 T5 |- q5 {; d/ k {( ]! J* q9 T/ g+ f' _2 D7 |
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 E L7 r( y( p
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& V3 S, y& M- \
}else{( Q* y! b9 C7 K! I8 L: E5 j' S) Z& {
bStart = FALSE;& v" i5 ]4 L$ o, `* [2 h% f4 e9 V
m_pItemElem = NULL;
% {8 Q Y" R9 }7 ]8 ?, M }4 m8 Z/ J+ ~7 \% K
}3 x7 `# H9 H# b. a; g1 d
return TRUE;8 N! @. U/ a P7 G2 X' t$ ?
}
/ c6 I4 A8 P3 |# a! e4 x' L
$ O5 V4 U4 T1 ]# p4 l9 {: x登录视频废话:9 ^- l9 [) ?8 ?8 U% n5 h5 {8 r
尾翼:
* I) K! i" U4 z3 Z+ U
% p, q9 V$ ]" `$ X9 E$ W代码:
& l) Z- w W# c* f
# j- _# s: z7 `void CWorld::SetLight( BOOL bLight )
7 u- w6 F& e8 }% ^4 M7 ~* a( Ddurch3 c4 Z8 f: i2 Z( |& `7 `- t4 Q
Code:
4 J$ n$ F' l1 f1 I- mvoid CWorld::SetLight( BOOL bLight )1 R! r6 n( v9 [8 E* M7 g
{# B5 |7 h h% [' Z
//ACE("SetLight %d \n", bLight);, e& w# a: u/ f
" p2 t o- x, S `, c#ifndef __WORLDSERVER & A* b* x- L7 Z" l; P9 A* Q0 P
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
! u/ A4 w/ Y2 {8 y- \/ p5 E1 B1 V! u) U CLight* pLight = NULL;0 `, ~, P: A$ g4 U1 I. i
$ v8 {9 L$ {8 q `1 x
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 O7 p. r; s" S9 }
, E X* X. ]: z) b0 v" i% M8 R* c pLight = GetLight( "direction" );
4 x( h0 d/ O1 ^- `9 R
, X! ]+ ^( s0 p$ b* m2 [# m' H#if __VER >= 15 // __BS_CHANGING_ENVIR
# o3 s, G9 |- q1 u5 S! Q if( g_pPlayer ){
+ J. v. z8 M1 \% { ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
/ S5 V- l7 j# E3 `% w! t7 s- E4 D if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
. D+ K% o/ T' Z7 x% a6 J {' L. m: b0 G; h6 |6 m/ I
if( pLight )
/ U& z( W3 Z3 e4 W {
1 I8 k6 H0 ]" F* r5 C pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
6 C5 t1 k( l" e, c pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
8 a7 D$ F, }+ Z8 g; O3 [ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];- o# {5 S' _ Z3 v# h
8 }$ m! _; }" |# d( C8 T
pLight->Specular.r = 2.0f;
5 A! o" f) ~+ X/ a pLight->Specular.g = 2.0f;
; O' C# N+ W" I8 j pLight->Specular.b = 2.0f;9 d; i' g8 A }" V
y, N6 d" s& E" o# {( p* Q' m pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
3 i* n7 w3 c9 [' V" C5 n pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 a9 E w0 _1 W% k: E pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];- m' U! j5 U/ a# N9 I$ _
$ ]4 s# D3 v/ @ W- N9 M! A
HookUpdateLight( pLight );
& j; u, `+ Z7 I4 \ _
7 Y6 l: V$ F! [) [" F' x2 t- T memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 \) ]: u* i, Q" @) K) G! d- @
4 |" ]4 Q: V4 ~4 [2 i pLight->Diffuse.r *= 1.2f;$ s( M+ @& k$ i" O
pLight->Diffuse.g *= 1.2f;" r% G( c' _; Z) R
pLight->Diffuse.b *= 1.2f;% X% [) W3 K6 Z9 ^2 ] }4 }
+ S8 Q# c/ F/ B _; y pLight->Ambient.r *= 0.8f; d; |, x- Z5 E& ~( V
pLight->Ambient.g *= 0.8f;
8 I! Q5 i5 y8 m+ T& A+ U2 } pLight->Ambient.b *= 0.8f;9 n7 Y. A' j7 [: D( l: g
2 ]1 V6 g% ]4 K5 y* T' { memcpy( &m_light, pLight, sizeof( m_light ) );) T7 M, }. {9 k4 \/ \
* J1 B; c+ z f D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);5 F3 ~+ r0 A$ v x6 T! h% ?
D3DXVec3Normalize(&(vecSun),&(vecSun));
& T( a% G$ N; {( N pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " c4 F% ?5 }; A k! m5 Q) Y+ C+ f; n
pLight->Appear( m_pd3dDevice, TRUE );5 y' G1 {. D8 E) u F5 r% w
9 y' Z3 u0 C/ x, K A: e* D DWORD dwR, dwG, dwB;
- ?) a' }9 d7 S% p! i dwR = (DWORD)( pLight->Ambient.r * 255 );
) |* Y; \* e, {. | dwG = (DWORD)( pLight->Ambient.g * 255 );
0 \, L% g( C; S. ~: k dwB = (DWORD)( pLight->Ambient.b * 255 );
) ~ ^7 s4 b% W# [/ [0 A dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( T3 Y% g6 s6 H$ d; g$ L. J }4 d2 S9 n7 m$ C/ z5 U- Y
}5 S& O/ H5 V9 Y6 d7 `; u {4 m- H- ~& }+ V
}+ L# K' j5 Y. P% R* V! E
else* f9 r+ Y1 D0 _" O2 b/ d }1 e
#endif ; ]. P8 h) y: \# D3 U3 V* C8 h* Q) U8 _
) e5 c) k7 U9 \# z- e if( m_bIsIndoor )* O9 S. s" k+ f$ r5 M' f0 {
{: G' `2 r, E# i3 @
if( pLight )3 f9 |- S8 }) F t% K
{ 8 I& f) o4 B5 Q" Q, e5 h) y
// à??μ oˉè*
3 }* T* w; s8 D; K7 ?" T pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
2 X+ x: }0 V, F; ]8 R7 b) B3 X pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;3 y! p1 O/ d3 j7 A
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;) i; F3 t7 C6 h4 \# ]
5 g2 U7 N' P3 p2 c ^, B // oˉè* ??à?
0 g" p& a( T- H$ Y" N3 B# U( u* Y pLight->Specular.r = 1.0f;
1 d5 y+ y U2 V& ]: a pLight->Specular.g = 1.0f;
& w A1 t* Q2 u c1 A/ X+ U pLight->Specular.b = 1.0f;
7 U1 |$ {( a8 J: c" {) D: Z // àü?? oˉè* 5 d+ k, h; |# t2 R
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
8 ]+ ]" C- ~# s# l" _ b: t, z) n pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;! T! }# B* R* g9 z
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;& ?0 ^* R+ Y, \; l& k a/ }
P+ @+ g" Z: t9 t
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 g" j$ p) r$ G/ U% E
{ L5 A( \4 b& c" V, Q& T2 m
pLight->Diffuse.r *= 0.6f;
/ P0 Y- g4 |) g% E4 k0 t+ I: D% [ pLight->Diffuse.g *= 0.6f;
4 h- j+ U) t2 d' \( U& x pLight->Diffuse.b *= 0.6f;6 l+ |9 H9 K# n% r, G
pLight->Ambient.r *= 0.7f;
5 c" @1 f' z- K6 V# q& H! [ pLight->Ambient.g *= 0.7f;
! ?1 K+ s' U$ l; d pLight->Ambient.b *= 0.7f;7 h& g+ I$ U+ f, E2 A
}
% c1 m- u+ m1 i: z! [3 X3 O2 h1 W! Z: k- e2 K8 {9 C
#if __VER >= 15 // __BS_CHANGING_ENVIR
* v) z( T4 C" n: e: d4 c, j1 k. x if( g_pPlayer )
# D ^" A, c, a4 h% [- X! I8 k5 @ HookUpdateLight( pLight );
5 Q& _: q* R- ?#endif D+ \ Q0 Y: N& M. Z7 b; E, u( P
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ E( B. O% a" T( c
! {+ Q2 Y" }* M T pLight->Diffuse.r += 0.1f;! I3 q5 k) n9 M. N2 ^1 L
pLight->Diffuse.g += 0.1f;) i# V, x5 h1 n
pLight->Diffuse.b += 0.1f;
5 h( e1 x3 s) C) x/ Q; i J$ H // oˉè* ??à?
% U) i5 G: C9 X0 d) o; ] pLight->Specular.r = 2.0f;; O' j7 H; c8 L
pLight->Specular.g = 2.0f;0 i. O& L/ j% h$ e _& o! @" Z
pLight->Specular.b = 2.0f;2 m6 G# S3 X: h! T; }$ U% M
// á?oˉ
2 f- `7 t- |) ` pLight->Ambient.r *= 0.9f;
7 G) _1 |" C( {# G- w) c2 k1 q pLight->Ambient.g *= 0.9f;
1 {$ U+ v) f+ Z6 U pLight->Ambient.b *= 0.9f;
9 Z+ }$ u0 ]5 i# L, A K1 ^
+ i9 C+ K% {, C) V+ M memcpy( &m_light, pLight, sizeof( m_light ) );" S$ r/ u& z6 S9 A3 |* G
+ N0 z6 a; t& k3 c
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );' B$ P4 H$ |3 M* g3 p4 x9 V9 n
pLight->Appear( m_pd3dDevice, TRUE );
: S' D* r% m3 Y6 i& N
, D$ A7 F- j2 ]+ J DWORD dwR, dwG, dwB;, t. F1 }. Q" s) M5 ]7 U
dwR = (DWORD)( pLight->Ambient.r * 255 );7 t: @6 X, b. q& k9 B. w
dwG = (DWORD)( pLight->Ambient.g * 255 );
1 C7 C/ X: @# C3 s/ g# E dwB = (DWORD)( pLight->Ambient.b * 255 );# X3 i2 T8 L4 M7 k/ D% M) U
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" v7 _+ x5 g) Y( d- y }
/ P4 N- L& P: D' A# n }3 W$ X5 `0 R: D6 \4 O8 P
else
7 v4 m3 _$ U' X& [0 x3 ? {
. K- I+ h4 I9 a% B if( pLight )
9 E- Q5 N, c v5 R {
! R, r W) j6 \( a0 s; N9 I 6 g! l+ Y. c% H4 w D
int nHour = 8, nMin = 0;; u$ o% h3 X, P' u% ^. Y4 b, Z
#ifdef __CLIENT
4 }9 t" M, A l2 N! Z; b4 R8 \ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. + o- K8 ~7 W0 t& L
nHour = g_GameTimer.m_nHour;
|) s- `/ Z: G* c nMin = g_GameTimer.m_nMin ;
, T5 @+ x$ Z4 _& @% r6 n* m, { #else1 i/ h3 ]9 w# v! G* Z9 d
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.# Z4 C$ c$ ^+ _% G, g2 K
if( m_nLightType == 1 )
$ S$ Q0 u' J. ]9 D) c: M( c" P7 K nHour = m_nLightHour;
7 B" `7 P4 }- y4 D3 O5 ^ #endif
) z) w4 k, [/ b, r nHour--;
& y# V9 t6 K! p( { \. T! K if( nHour < 0 ) nHour = 0;
3 L/ e+ P \7 _, z if( nHour > 23 ) nHour = 23;
1 z& G4 _( R7 J; s6 T1 {9 D4 v) N9 [" |1 x
//if( m_bFixedHour )
# V$ ^$ k' ?) e) Z+ d // nHour = m_nFixedHour, nMin = 0;
6 e: J, C" L! c LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 a# M& `0 y) w+ v$ _2 f+ M
LIGHTCOLOR lightColor = m_k24Light[ nHour ];& t9 y8 ^ k* y- f; Y
) l: ^5 I0 h1 N( }" ?+ b7 h
//m_lightColor = lightColorPrv;
! l0 V/ S: A" q. o lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
' p5 w3 A! X( a# O h lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;. x% ]$ ?& D6 l( x- I0 H
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;- r# W7 O* m, ]. I3 _4 D
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
+ C2 X2 v1 k4 n# j2 B9 R lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
! A* r8 q" A2 g9 b' g1 v lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
3 |- x. M& _ w7 K; b4 } // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
# `! C- ?$ R) \ K+ H
! ]' a2 J/ M+ ? y+ W; s // à??μ oˉè* 5 u. n* A7 e3 D L) _
pLight->Diffuse.r = lightColorPrv.r1;" _8 D$ A0 r) r" C. o, D# Z
pLight->Diffuse.g = lightColorPrv.g1;
; M, t: Q0 X4 C3 O* }; p2 B pLight->Diffuse.b = lightColorPrv.b1;. x+ a3 B2 y+ a( J9 w4 ^0 d
// oˉè* ??à?
; t& g2 T" q2 E7 b% v pLight->Specular.r = 1.0f;
) j; U9 k' f6 s" l6 W pLight->Specular.g = 1.0f;4 D" T( W$ L9 c. V. m. v
pLight->Specular.b = 1.0f;& i7 s+ }( e1 d: s
// àü?? oˉè* 4 |9 G3 w+ o" q2 U
pLight->Ambient.r = lightColorPrv.r2;- m8 M: s0 y' ?$ H
pLight->Ambient.g = lightColorPrv.g2;
8 f! ^+ n# D. ?" E4 e$ q6 a1 Z) T pLight->Ambient.b = lightColorPrv.b2;
( S- z- J$ s; |8 r( k% i' ^- U' g2 u8 Y/ ?" v) u% X
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
0 g! p' Z2 ]; b- e {6 O7 |# w& T0 l3 M; H) e | K
pLight->Diffuse.r *= 0.6f;1 u6 K7 d; p5 j- l
pLight->Diffuse.g *= 0.6f;
; U5 Z4 s6 K' Q$ j2 a pLight->Diffuse.b *= 0.6f;. `1 F$ z- p3 {8 B- N# R
pLight->Ambient.r *= 0.7f;, |7 k t K O# V$ x1 w/ L" R
pLight->Ambient.g *= 0.7f;
* U% A, r7 t; [4 c7 H1 F pLight->Ambient.b *= 0.7f;
7 G7 Z- U; @! w8 [6 g: ^/ K. p }0 G7 L6 S0 U5 c& r4 B% v/ q
s, o b+ W" _
#if __VER >= 15 // __BS_CHANGING_ENVIR
* Y3 U: C( k5 y1 S' O0 Y% k9 v if( g_pPlayer ) ^1 Z3 |$ n; l z' R% g
HookUpdateLight( pLight );
" T9 U0 y7 L. D#endif
& q4 ]2 ?: P& i+ | memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 J. z" p, c. n/ t
2 J: F e" k- {% {( \ f3 [0 v#ifdef __YENV& x$ G' }# Q( r2 K( q8 p& x% H
pLight->Diffuse.r *= 1.1f;3 T" T! A P# [. ~2 z+ P
pLight->Diffuse.g *= 1.1f;
; E- J. I' o* O pLight->Diffuse.b *= 1.1f;
- H! W% W$ u; v; v // oˉè* ??à? " K9 x2 H1 j* u
pLight->Specular.r = 2.0f;
% V8 Q# I2 C, f0 P! \ pLight->Specular.g = 2.0f; {+ K' N' Q, C5 {$ B; Y
pLight->Specular.b = 2.0f;, _6 p1 S0 J6 w) I/ v
// á?oˉ ; f& [! V( B! }6 M
pLight->Ambient.r *= 1.0f;
& |2 L( e7 x/ f1 R# Z( J pLight->Ambient.g *= 1.0f;7 n3 o. a! l& N& r1 a1 _8 [1 S
pLight->Ambient.b *= 1.0f;5 R) x4 {0 `5 ^ V5 k; m7 v) H
#else //__YENV
2 D' K2 y) [) n$ L3 l pLight->Diffuse.r *= 1.1f;
& K" h5 Q9 p0 G% c W" G( B2 [8 M pLight->Diffuse.g *= 1.1f;( j0 I! D. G4 j; [
pLight->Diffuse.b *= 1.1f;, z6 d; h' X7 P$ `+ j6 t+ J2 F2 p
// oˉè* ??à? 8 f! O" H L, F) ~2 Q( E T$ `& F2 Z
pLight->Specular.r = 2.0f;; s' \/ b# e c7 f
pLight->Specular.g = 2.0f;
8 J \: Y b" Y$ _. ~ pLight->Specular.b = 2.0f;/ |! K% ~5 U, p2 h& V
// á?oˉ . `* g, Y$ ]7 J& z5 o
pLight->Ambient.r *= 0.9f;5 X: Y2 U, ?8 j5 } g
pLight->Ambient.g *= 0.9f;
) @/ G& e K# L" R$ z! \' ^% i pLight->Ambient.b *= 0.9f;! ]9 V4 C5 @6 F& p8 H
#endif //__YENV ; ^8 l/ Y: o& i6 h7 e5 s
* }3 Q# h& _3 A: N2 D; i
memcpy( &m_light, pLight, sizeof( m_light ) );
5 Q2 ]7 }4 q& G4 e0 u! B) x; u
v. |$ H( y1 s# T D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);, ]+ O& H* L6 D6 z, p& J: z
D3DXMATRIX matTemp;+ {* L, ^: d( Q% c
static const float CONS_VAL = 3.1415926f / 180.f;
0 B) k$ X+ U/ M% l
; ?% A8 R) k. n$ N" C D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
7 i0 |% w5 l# `+ W0 k7 ^ D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);+ L1 ^2 Q0 |4 L5 |: w
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
/ p: ]& [# _! i% u pLight->Appear( m_pd3dDevice, TRUE );8 f, a" M2 Z: m: V
7 k0 t5 s4 x7 j/ V
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 u5 D; C& y5 t1 N7 j. h4 _
// D3DXVec3Normalize(&(vecSun),&(vecSun));3 ]6 Z5 \2 C- F+ x
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " @0 Q+ V/ m# K5 k
! E3 V5 H# g) q# |6 V DWORD dwR, dwG, dwB;" D3 Q I E% q6 s; y* X& B# t
dwR = (DWORD)( pLight->Ambient.r * 255 );4 ]# r' M9 F [ W9 r* x
dwG = (DWORD)( pLight->Ambient.g * 255 );) e* j+ ^7 z l3 T; G
dwB = (DWORD)( pLight->Ambient.b * 255 );
" X% z3 C7 i5 L" P. I$ s dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: x8 F$ m) q: T5 D e2 Y; b% b }
' S0 B* [. s+ r, ` }, n" G5 O, B1 e o
. p: ]* T7 k: a; [8 ~# p7 C' U m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );7 c+ b/ U0 n: T' w3 N3 ]; b
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) );) |- \( x" s5 p2 n0 P3 k J
::SetLight( bLight );
" \% S X5 J9 q+ M7 V& A l, E& L/ C$ s5 C0 M
// ±ao? ?D?í???ó á¤à?
3 s* W5 @; Z' U5 R5 x4 c* B L m_pd3dDevice->SetMaterial( &m_baseMaterial );! _& h' w: ]: c# ]
) e# _+ v8 M5 ?& ^4 I% [* `
#endif // not WORLDSERVER
' n- b$ D; V$ c& S5 o4 |8 _0 [% m}
: S0 t* A6 W; |. j并更换
* B9 c5 k( \ X2 HCode:1 k# k8 o0 M. c+ K# }6 b+ F
__FLYFF_INITPAGE_EXT
! B' O+ W( j) a( l0 Z0 b定义
9 E/ y; [9 X. x/ Z! d) c( h* X/ ]1 p( ]0 i+ J5 Q4 K
7 C; _: p# R7 b1 O0 q2 u3 [: z
& c, K: `) |: w6 a" s1 }
( j/ c. A* v ?1 ?0 |9 l0 D% ?5 V现在终于删除我的狗屁加速..., p3 A: V# ?: ~, G! n
& ]- Q, ?# X |" D1 [
, @3 w I V: c. }' S' M$ @
/ X7 S. S7 K" _8 ^
|
|