+ D) T) V8 p* i pLight->Ambient.r *= 0.8f; 8 ?, Q$ i" s% M+ l0 {2 k pLight->Ambient.g *= 0.8f; ( h/ n) P. E: k8 ]' L! n pLight->Ambient.b *= 0.8f;1 M; I2 S# d. d; I7 x, s1 f
8 ]8 k4 i: D H- m$ k5 y( D' ` memcpy( &m_light, pLight, sizeof( m_light ) );6 k$ g* s2 f, Q( a" V- y
% p% J) ~2 z: @1 c7 S
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f); 8 w/ O# B8 Z2 k+ y$ J. c0 M C+ b D3DXVec3Normalize(&(vecSun),&(vecSun)); ( F- W7 H) ^5 O1 T* Y pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 9 b. E0 i' h& U: g- N( e pLight->Appear( m_pd3dDevice, TRUE );# G, z4 t* e d
) c! K0 p0 o# T7 Z) Q: i
DWORD dwR, dwG, dwB; ) Q2 K$ p; M8 f; L dwR = (DWORD)( pLight->Ambient.r * 255 );0 D: E( X a6 |/ K$ Q
dwG = (DWORD)( pLight->Ambient.g * 255 ); & _, a# U% o3 B3 H) U dwB = (DWORD)( pLight->Ambient.b * 255 );) V" A( N( z) x6 B0 b
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); * a) E, C& f8 z4 e3 N4 ] }6 N/ Q' @ @& d5 g
}, v+ `; Y4 x5 A9 I0 R! g. [
}5 @( W H9 i; g# _& P6 m B# _; H
else # |' ^: O0 {2 `# G, V* ]3 y% B#endif % Y0 Q1 N& X" Z h! Z
* S! [) ?; W, D7 }! q3 k# {2 l- H
if( m_bIsIndoor ) ( N3 B9 k% C: M: |& I0 O* ?) c { - e, ^: X% O- ]+ i9 n! a if( pLight ) , V( s+ l- J) c* ^2 t" w { & O+ r9 g0 Y# _+ W
// à??μ oˉè* 6 W6 u3 e: _9 X _$ `* t# T6 ?
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;2 J: p. i; O. r5 m& l' m
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f; . M0 [8 I3 m' R/ f: |6 d9 s pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;+ C0 n% I2 `7 E% g! i
9 k: l2 S" j" M* b& o
// oˉè* ??à? 8 y# Q. M5 t2 L" ?3 n pLight->Specular.r = 1.0f;3 ^; q: ~0 }4 M% n; M0 P
pLight->Specular.g = 1.0f; : Z4 A+ Y- w8 b" K! U9 m5 N pLight->Specular.b = 1.0f;% L/ [ \" s" L# V2 g2 i
// àü?? oˉè* ! C# J$ \: ~8 t' w$ S" q! u
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f; ! i; l+ }5 A, r7 C4 { pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f; 6 x3 r/ w% W2 x pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f; $ c( G; [, s% ?) x) u8 F0 r& a; F' g R7 a! O5 y
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.9 M! {: T. L# U) n7 w, K ]
{ ! P- w- S6 _6 M6 Z) n pLight->Diffuse.r *= 0.6f;! k6 ^! ^% {% T6 D8 ^3 m' |0 H
pLight->Diffuse.g *= 0.6f;* I+ M1 X& P2 C4 \5 i P5 r: B
pLight->Diffuse.b *= 0.6f;' W; X$ A4 C% n
pLight->Ambient.r *= 0.7f;6 r7 u; A/ N! ]2 A; r
pLight->Ambient.g *= 0.7f;' y: T+ J# _- X. A; |4 ]7 Z
pLight->Ambient.b *= 0.7f; L& H& M( {: a5 u4 M4 k } 1 h, T* f& h" d- K8 N, m; @; j! } 5 ^/ _5 l" Y+ I5 Q! k$ R0 K8 x#if __VER >= 15 // __BS_CHANGING_ENVIR" [' |; O$ W( X7 B3 Y9 V
if( g_pPlayer ) 1 \3 Z/ i* g/ ]5 s9 v; z HookUpdateLight( pLight ); - B5 x8 e8 W. G7 T& I#endif : {5 u- K; b8 S( P" N- T memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) U0 Y- H2 Y& K4 u1 O/ d; k
5 z/ D/ \( U" r pLight->Diffuse.r += 0.1f; # {' ^0 u0 E" q) o pLight->Diffuse.g += 0.1f; $ v! E' ~) ?7 ]6 p0 J# d* n) U2 o pLight->Diffuse.b += 0.1f;2 c: q- D, M R4 K7 ^
// oˉè* ??à? ' Y4 R1 n! h# Q5 R0 L- E3 W* { pLight->Specular.r = 2.0f;, i3 h9 I/ F) N7 u0 T3 J$ J" J
pLight->Specular.g = 2.0f;- p9 I, ~8 a' X
pLight->Specular.b = 2.0f; 5 ~; q# {, n1 ] // á?oˉ " g3 N& u7 p8 h
pLight->Ambient.r *= 0.9f; . e. [6 `2 |% X0 @( @ pLight->Ambient.g *= 0.9f; / _& X' O: l G4 f pLight->Ambient.b *= 0.9f;" d7 ]: N, H( E1 B# G1 u2 W5 r5 q
/ m9 o8 e1 j3 Z memcpy( &m_light, pLight, sizeof( m_light ) ); . A* M; S. j" W0 o4 R: C H / d1 n o; Z" G% h d- j( y- C I
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z ); / k! C( m# k6 G) C! G+ v/ X pLight->Appear( m_pd3dDevice, TRUE );0 k" q, z6 T: M/ r& ^# M+ n! b
# }1 @: a/ [7 z4 t* Z DWORD dwR, dwG, dwB;. B- P6 g6 q, N" E' j
dwR = (DWORD)( pLight->Ambient.r * 255 );% W. M1 \ b, H7 c* B
dwG = (DWORD)( pLight->Ambient.g * 255 ); ?) q& A$ o( n3 A0 l dwB = (DWORD)( pLight->Ambient.b * 255 );# J% {( T" k' _
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );. N$ \1 ~4 T! [% O) b
} 1 o: Z8 N, }+ {6 k7 O } 9 U \2 ]9 r. i L else$ b( U9 \/ F% \
{% @! \7 G* F$ z. A
if( pLight ); w9 ]$ i) x6 G' ?0 G) P! @
{8 R0 z0 q; i2 U) o+ k5 O2 e: \
' y+ r F) u$ m2 E+ d' J int nHour = 8, nMin = 0;# Y6 v. T |* k4 Z
#ifdef __CLIENT) v6 N, W/ m9 G+ ?
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. / {& M2 [% X2 P. d3 C% M
nHour = g_GameTimer.m_nHour; 1 j; n: e% ]- h3 y/ V& p) Z! e9 R nMin = g_GameTimer.m_nMin ; 7 F' x0 z' V0 @, D6 \* S8 V #else ! D2 k1 g ]) w# l: ? J0 H // o??o??′? ??°£à? m_nLightHour???* °?á???′ù. 1 [. l( k4 g/ [# s7 ] if( m_nLightType == 1 ) / |$ Y. l3 A. b% U nHour = m_nLightHour; K$ ?- m* V. A) E #endif3 Q& v! G) M: }
nHour--; s7 j* V! j4 x
if( nHour < 0 ) nHour = 0;/ s" h/ B: f& r/ U2 [
if( nHour > 23 ) nHour = 23; x( R2 D& u: `9 N9 y* c5 q
/ F8 R; W5 E) P9 i S; j' D* H Q8 H" R4 c //if( m_bFixedHour ) # `- f3 c* Q2 z: k // nHour = m_nFixedHour, nMin = 0; & A8 F; i- d- i+ ^( U LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ h4 b, K6 f5 F w
LIGHTCOLOR lightColor = m_k24Light[ nHour ];; d. F4 G8 _5 R5 e, m- K
; I' l! k5 x6 F1 A3 C- ^0 y //m_lightColor = lightColorPrv;% w7 K- R; U# F8 T
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60; ( w. b3 v7 H L( i+ x lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;( }3 c4 B( @; o
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;, F5 h( a8 m$ |8 J5 o
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;- r. [! _- [6 }
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60; 5 ]3 p$ }. V, t" b' T1 W' h lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;7 D1 c0 Z! k& E8 A+ q% x
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol) 3 o& e1 L% U& O- g' n: ~7 p- Z# z. i$ q% |) @
// à??μ oˉè* 1 A% Y' k$ L3 Z( f( N: W, ~' S pLight->Diffuse.r = lightColorPrv.r1; 2 K3 ~$ k5 x0 Y/ G pLight->Diffuse.g = lightColorPrv.g1;2 k2 ~4 k9 N: F3 {! G! H) M$ v7 k
pLight->Diffuse.b = lightColorPrv.b1; 7 ?' m/ T! C0 o/ @( z // oˉè* ??à? 4 I7 @' n4 n. ?/ @ pLight->Specular.r = 1.0f; ' Z. {0 s' p; A% u g$ S. K pLight->Specular.g = 1.0f; 5 S ?& t& F: ]$ [% @# i& Q5 z pLight->Specular.b = 1.0f; # g3 d& {# @3 c // àü?? oˉè* % ^0 ~* ]5 r) \5 {
pLight->Ambient.r = lightColorPrv.r2;; }+ ~4 q- `# Y2 S
pLight->Ambient.g = lightColorPrv.g2; 9 ]: s1 u1 m! V, v6 [ pLight->Ambient.b = lightColorPrv.b2; & Z! \% c, o% F, L' q, |3 P+ {4 U3 L8 A, M$ J
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??. * \" W4 w& l( ?( g {* U2 p3 S" S. C; V% j, y% ~
pLight->Diffuse.r *= 0.6f; 1 b8 O0 { x' O/ U( ?, B- V pLight->Diffuse.g *= 0.6f; ! L! {" X6 {$ p+ c7 |% \1 p* } x0 s pLight->Diffuse.b *= 0.6f; 6 y) F) d s& A, O* v9 i% w pLight->Ambient.r *= 0.7f;( y) W% _& _: u( [
pLight->Ambient.g *= 0.7f; ' u& u/ e' w3 |) y% t- S5 v/ t* W pLight->Ambient.b *= 0.7f; V o/ w6 Q: Q( A, T$ k
}2 O! s+ i+ ^; ?* B' L
5 m m$ W/ K/ F. o- O i4 C7 `9 F
#if __VER >= 15 // __BS_CHANGING_ENVIR 3 `5 V, n5 C+ M# |4 Z4 Q5 ?+ A, C" n if( g_pPlayer ): r8 G# ~) h6 a4 h: y) x
HookUpdateLight( pLight ); . o3 N* c+ X; @# ?( f
#endif 9 V: k5 {' A; ^- z% D7 I memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); |) G" P( \& V
" Y1 z/ n2 B% _; P4 }
#ifdef __YENV. s0 f- A0 ~7 u) A" O% d8 ~/ S
pLight->Diffuse.r *= 1.1f;8 g) w9 ?; M3 }6 s- K
pLight->Diffuse.g *= 1.1f; + ^$ c8 G) |$ O, n pLight->Diffuse.b *= 1.1f;3 g" y& `+ B. h- R& ]
// oˉè* ??à? ) g7 \' E# a8 i: I
pLight->Specular.r = 2.0f;1 P0 K9 i6 b5 i2 V& x% V s4 y. p) x
pLight->Specular.g = 2.0f;" h% Y7 U: q0 O2 z. W
pLight->Specular.b = 2.0f;+ q( J- I+ v; @- S* ?1 Z
// á?oˉ 9 q" E$ ~1 G# A S6 L- t3 M# G
pLight->Ambient.r *= 1.0f;: [; B& P3 f/ H9 @
pLight->Ambient.g *= 1.0f;- U3 m; o$ @/ p2 X
pLight->Ambient.b *= 1.0f; : O4 v) ^: E# b; U+ \- P. q- J" n1 J7 N2 ^#else //__YENV ' Z* \" b* e4 c- Y" q$ C' \) y pLight->Diffuse.r *= 1.1f; ) M# a0 i3 q2 Z( o1 t! V2 @' D/ |& W pLight->Diffuse.g *= 1.1f;- o8 H2 W8 r, R# ], s, s1 U% `- Z
pLight->Diffuse.b *= 1.1f; ' Q: ]& B- d* [# _: S6 g# z // oˉè* ??à? 1 e& T& D7 b8 p. \/ @! _
pLight->Specular.r = 2.0f;3 N; D' u8 D6 b: s/ ]
pLight->Specular.g = 2.0f;3 q+ [4 h# v- `2 u
pLight->Specular.b = 2.0f;4 Z0 o, \' O& _( q2 O
// á?oˉ ) M. n5 o- Q5 o
pLight->Ambient.r *= 0.9f; ; r1 a) _' A! t$ r pLight->Ambient.g *= 0.9f;. D) h. D0 O: z! F- [. H
pLight->Ambient.b *= 0.9f; " ?- W5 ?& p- Q- F#endif //__YENV 2 M- p; v0 I8 X 4 j. Y0 h* W5 m3 N4 p" G- O9 b& n7 m
memcpy( &m_light, pLight, sizeof( m_light ) ); " W+ t7 r e$ m" A% c7 Y% f 5 m/ `4 d1 r2 p. O3 n% {/ O/ g
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);( B$ a+ N- T" s" C6 [7 \9 |
D3DXMATRIX matTemp;! S6 I; O+ x) e' h
static const float CONS_VAL = 3.1415926f / 180.f; " {/ @7 c6 u$ P6 a( p q x7 Y# P) ? T. v
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);- G* T9 E( I. b e
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp); X7 d ], t8 a# K pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ! e7 S1 G8 L, x, Z: M pLight->Appear( m_pd3dDevice, TRUE ); 7 E! a& X8 ^9 s " i. c' R5 [' [8 ~ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! t5 E1 l* _& @9 |; P( u
// D3DXVec3Normalize(&(vecSun),&(vecSun));1 S0 E' K- R, ^" ^
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / j# [8 E" ]0 F0 H0 E / n6 o U" j/ y5 E DWORD dwR, dwG, dwB;! N0 w2 N E9 J+ a. v/ m7 F2 M4 z0 \
dwR = (DWORD)( pLight->Ambient.r * 255 );" e. a% z3 V" ]5 p, A/ D
dwG = (DWORD)( pLight->Ambient.g * 255 ); u) T: V( t1 L7 [ D7 {& V7 h4 v dwB = (DWORD)( pLight->Ambient.b * 255 ); 5 b: n& t2 @7 y4 c* D1 ? dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); - j/ Z- E0 R: ^8 `0 Q2 Y4 ^ } & w$ s3 ? a p# r2 {/ c }) u, ] c; L# h- L1 i: y
5 r, W1 g% L1 U% H0 f |' K
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight ); * q! l2 q# ]0 Q4 o }1 ^ 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) );& N, R Z9 G; q4 m
::SetLight( bLight );* j2 q5 f7 }) y! ?. _
+ Y$ O5 I, f: U y& I
// ±ao? ?D?í???ó á¤à? 7 T) P# Q1 c5 d ?* Q9 Z$ ? m_pd3dDevice->SetMaterial( &m_baseMaterial );( U" {& v) J. o) q5 j
5 o0 E& E0 z# k0 f: ]# J/ B
#endif // not WORLDSERVER# |, i7 f9 d, E- }/ \ P
} # a: I# b) Y$ N" y并更换0 O2 X1 o- a7 W G- n
Code: M. Y5 ]. a/ m: H4 A1 Q6 W7 G
__FLYFF_INITPAGE_EXT 3 A9 K/ v4 @# S ~定义) S, V6 C, o3 t+ O6 L8 [* p( u1 |
" Y: w# o/ F- ~. w
$ z& F* H# B: M o$ H+ C' q2 X! ]8 E4 v5 q1 E
3 x i7 ^$ r% W) g
现在终于删除我的狗屁加速... t* r3 d7 b) N5 Y2 t6 f' e. ]- C) K. S8 e
2 Q. [' K: |' U. A# v. c9 }+ X- L4 f$ i
+ g! p2 ]) E& t! q