|
食品车:8 f. z- V& j+ c# Z! J
尾翼:: ]9 Q2 v" X. B' K4 ~+ |% e
9 g( c/ Y- N8 c& l, m代码:
# D8 r+ N& l# p [: n& \CWndAutoFood::CWndAutoFood()
( i8 I+ J, @' ]( ]. z/ U8 ]- t( e0 `- h{5 q( [# i# `) V
m_pItemElem = NULL;
$ G; | N7 b( r6 o0 O$ W* o m_pTexture = NULL;
$ r( l6 Z1 S8 W' T. N bStart = FALSE;
+ l1 ]% u6 B3 @4 {8 ^. A* F}" Q7 H6 h+ \7 w: j
$ ?9 x9 w& z5 p6 h' J; UCWndAutoFood::~CWndAutoFood()4 M+ t7 j$ O) c1 A5 |2 l w
{. y9 _3 L9 Y: N0 W% v
AfxMessageBox( "AutoFood ist gestorben " );
$ P" `) w9 g' L3 E* I3 r}! T$ x2 l0 _. n5 j
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )) [6 z9 J9 n: S( H$ u
{
6 d1 z, ^$ B# a$ m. @( T- | return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
- b9 G9 n+ X x2 L9 V/ T- h9 }}
) u% U* g6 f# R4 q+ \6 B2 e; c5 c5 V
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
+ H; Q* g: y! Q{; U; v Q2 D! X4 E1 O. `' J$ \
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% T& |: C! o, g3 y& n( n+ U O: n# d
CRect rect = pWndCtrl->rect;
7 s9 f, n4 v0 m) g/ ^" T if( rect && rect.PtInRect( point ) )
0 ^9 J. {% n* Z+ v {
. `/ F0 m+ R" G5 `) q CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
$ L7 u8 g* @$ B; Y0 n if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )# A! G2 s0 ?1 |7 h2 h9 ^5 a& D
{" L% @2 ~4 I( A3 K' E" j- `
if( m_pItemElem )
. Y. |6 r+ @2 S# \% c {8 ]" s" m2 K C/ c
m_pItemElem = NULL;
) Z9 K+ ]" Z/ e/ r/ _0 d }
0 Z& M1 ?; Q1 D! T m_pItemElem = pItemElem;: b+ z$ a( A7 P& A* h% y7 p
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
( z/ ~1 q: _- F4 M2 H* ?9 n }else{: H2 U3 o/ C! k7 _
SetForbid( TRUE );5 b! y8 i' N! P! F
}
3 A& ?, }* |! ~ I }else{
& P7 q8 |& t* m$ Z. S SetForbid( TRUE );+ l$ C: ?# i0 P1 x- v! K
}2 ` w2 v U0 s( z% h; K
return TRUE;1 r9 G& h+ H G- B; A
}& c% R% b6 ?2 _1 t1 z i
# w# L5 j Q6 Q2 m5 l- A4 X" J
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )4 i" @7 i; q. }1 e) x0 L
{
1 J, u C0 x0 L% A switch( nID )/ @7 V5 R$ A, S
{
& E2 k5 O* ?/ L+ {/ f& |& G: g case WIDC_BUTTON3:
3 l0 R& d4 o O" u) u$ j5 l4 M2 Y) W0 \ {
- B, I9 @6 X5 ^ bStart = TRUE;
# e" M( N: X2 M4 i+ l7 D& I( W1 O break;
. b' ]; ^% Q) f- P8 i1 F* A }- B/ T( u, b, N4 P+ J2 k
case WIDC_BUTTON4:' }# K, \- }4 `6 h z$ i/ k1 O
{
_8 |. ^4 o O0 Y$ x bStart = FALSE;
1 u. Q" f5 ^ X4 a break;( z8 J. L: R5 U& ~! {
}
/ A% o, x' D* I& X }0 W- J4 }& e9 R
return CWndNeuz::OnChildNotify( message, nID, pLResult );% r" Y. F0 H' e' H! ^
}
7 k" e j: E: Y: b3 |; H0 \, |void CWndAutoFood::OnDraw( C2DRender* p2DRender )5 l- b( ^* W, a8 F! G# F
{
0 \( E J* i- }5 l5 W+ X CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );* T+ s9 D8 ?! m% Z, `. ^. @# M
if( bStart || !m_pItemElem )
5 E8 D' a. U- b* N {4 W9 n! m; V4 _
pBtn->EnableWindow( FALSE );
6 q: G9 i$ k' l }else
+ C1 X/ E0 W# G3 u# Y5 P6 H pBtn->EnableWindow( TRUE );% Z% O" o& H( T/ g' `
if( m_pTexture )
) Y7 x. }3 i& a0 |7 y" L {, E5 n; s1 S5 l* U. B$ q% e2 {
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; r: x) D8 ?# g& W$ u& \2 p- H if( wndCtrl && wndCtrl->rect )
4 H, g6 \' R- {6 {7 r {
$ E! m7 [- j' q" Z y- f: Q' t m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
6 @, L5 `# y+ k ?% u }
1 c M8 e- B/ x% h# o; T8 w }1 x7 j& L0 B4 `1 _2 q W
}
9 H5 h$ o( T3 Y
7 z( v6 h* s' V# U8 B/ `BOOL CWndAutoFood: rocess()
; a6 C% `$ A& n' H7 z( D{
O' N" v; m4 C9 [6 T) ~ if( bStart ): ]7 M6 ^/ i1 o4 H
{
. e: Y5 m; |2 a* D' A! r8 D if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
9 _- b, V8 w% X {# ^1 n% o( ]1 X8 T( z, f
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
/ r5 H! E( T& l# i* f; M/ } g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );) V1 _" w: ?( Y) t7 w
}else{
# ]; b( z8 y( B; G bStart = FALSE;
, g" o3 o }( M+ j+ S2 c m_pItemElem = NULL;
; f% m( e' y7 Q9 C& ] }
V/ |$ b$ f0 E% ^; @, T }
. v. q7 d" O% f6 R4 y' u) ~+ C return TRUE;( `( Q$ d M7 ]. P7 L, u
}
0 R. C. ?( e/ D% ?! R4 {, O! F# U) g# R
登录视频废话:
; ^% I7 Y1 U a' K; m尾翼:
. I' f4 J+ W0 Z4 O6 n( w; f
6 s5 h. L) O. H+ }, a3 h1 D代码:; `0 T8 ^. [* Z
, g2 }, G7 u* \% r$ W1 x9 F# z
void CWorld::SetLight( BOOL bLight )1 x {! g' T% W' L; Q
durch
$ A- q9 p' G% c8 jCode:
- |: ?% [$ Q: j) M; Tvoid CWorld::SetLight( BOOL bLight )2 e Z' Q2 P* \3 C& b, Y \
{2 u: M* L; }; Y
//ACE("SetLight %d \n", bLight);9 e/ x- |; N$ p7 ` U- @; K
" m; j) n5 b& X) A#ifndef __WORLDSERVER
: A( ]7 ~0 O2 s1 R! k; e DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
$ F4 N" A0 @3 _8 j" |. N3 @( ` CLight* pLight = NULL;
/ r5 D( @' [ X
! V) O/ L6 `8 F% g& T& f e/ D( w D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
@( q" c9 u% c! o7 k/ Q: n
: F$ Y3 x1 _7 c8 a* _" [5 [! r5 Z pLight = GetLight( "direction" );% r! I8 I" f! w9 C r% Y* c# N
# Q6 q% j, }+ C4 X/ k0 ~#if __VER >= 15 // __BS_CHANGING_ENVIR# c1 n: }8 t% x0 j
if( g_pPlayer ){: p0 y- ~. l/ P7 ?+ I1 P
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );; H+ y. _( |$ S( J
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!4 p2 [4 V- F& W( C
{
; a! f0 j) J* T3 x6 x/ F if( pLight )& M% O1 {/ c( ]# X
{
8 J7 i" F( Q! W3 N* x2 x pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
7 Q0 L: \2 ` C6 ~* X% ^. u5 X8 k pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
# o/ @9 F7 E8 R8 h2 X$ H$ t pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
/ t5 Z, Q8 f/ q, V& N t) X1 G, W. M% H: ]9 i) J2 G, f6 v9 C; ]- u# o
pLight->Specular.r = 2.0f;
1 `4 n2 L8 e: b- E/ t/ } pLight->Specular.g = 2.0f;* }( V1 h. g3 A4 C
pLight->Specular.b = 2.0f;
# X# q, A7 M2 N6 _
) M \% J" E5 y: ~8 O3 T pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
. q5 X1 |- b! ~% N( r* u pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];& Q8 e: ]/ R9 r9 w
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
; D, m% c! g t) T6 k. l9 j: ] % i! ~, z0 ]( p6 K$ _
HookUpdateLight( pLight );
. ]0 _! S, B7 {' x5 q- Z- I
! _3 U# P& Q- u- J6 @ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 h( m6 a: }/ t( a$ J, i
+ J& n% _1 s. B* g3 e pLight->Diffuse.r *= 1.2f;. @/ L3 Y4 i) T8 U4 u/ x- i
pLight->Diffuse.g *= 1.2f;
* W y; r# _2 \) N pLight->Diffuse.b *= 1.2f;) L3 e2 L: s4 ?& Z- Y: M* C
; U4 N' D% H4 [, R7 o" ` pLight->Ambient.r *= 0.8f;5 o* i b6 d; c0 t
pLight->Ambient.g *= 0.8f;$ ?, I' s1 c$ U/ \: K
pLight->Ambient.b *= 0.8f;
2 A0 c# [/ E3 T8 n( |7 G6 h
' K, S. W. M5 x) ~ memcpy( &m_light, pLight, sizeof( m_light ) );
' Y+ t/ _/ r4 H2 {
. [* v. E! G/ o) V9 V: { D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' m/ S6 |, u+ E9 Q
D3DXVec3Normalize(&(vecSun),&(vecSun));, g; l- u* y# {, z+ z, L
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
7 h7 G2 }8 F$ Q* s/ } pLight->Appear( m_pd3dDevice, TRUE );
3 w0 R. X& ^: _$ R$ i# C% e & r! ~3 A; ^6 J. O
DWORD dwR, dwG, dwB;
L% x# @, v9 S1 t: r! D5 j dwR = (DWORD)( pLight->Ambient.r * 255 );
1 w; r& l* M) O9 H5 U2 C) Q3 J dwG = (DWORD)( pLight->Ambient.g * 255 );
6 t& _0 B6 ^3 @! p' O8 m$ p dwB = (DWORD)( pLight->Ambient.b * 255 );
4 \8 \. g0 n6 O( K; N: d% [4 X' }+ ^ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );/ `& d1 [) {, l, N
}
, S8 X) {9 ^: {" y* H7 o8 m2 A9 F4 I4 M }. A3 a9 Q8 j Y' Z
}
3 T; L: p9 b) B% R4 S/ U else2 k. ^ X1 e' O5 ~/ q8 n$ X
#endif
5 Q! V }( Z+ \% c( @5 X A/ o( o- I! y8 Q) \
if( m_bIsIndoor )8 ]& _) }# k( J6 f
{
1 ]) ?' `1 Q5 F. f! J5 c5 c if( pLight )
/ \5 D2 F3 m% R9 l) Q { # p n# i( Z# b0 l
// à??μ oˉè* / N) _* ^5 j& e6 l. U
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;' N& q" v a4 i3 }. J
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 y( w- a7 N% `2 n6 x pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& l6 y6 f" k2 D P
s, z% C; E1 H // oˉè* ??à? 0 S; Y7 T4 N- u$ E( p+ Q7 B
pLight->Specular.r = 1.0f;
9 ^9 _/ G4 a) E2 j pLight->Specular.g = 1.0f;
* m5 K- W+ S5 W/ |" L0 H pLight->Specular.b = 1.0f;( f; w3 _; K# Q% `5 q7 X
// àü?? oˉè*
% P( [& s' B& }: T pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
& m2 K* a. _/ c( D pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;- c' h0 T2 p7 P; y9 \! J
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
! ~8 M+ o% q1 f% l/ ~; ]% h- m: o' j! V- e+ c% I2 c0 N6 T
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
3 e$ O1 K$ s) n/ J1 O9 X {
7 z/ D0 d- R% n6 e7 [" i$ O- C6 B pLight->Diffuse.r *= 0.6f;) p- O7 g+ o7 [
pLight->Diffuse.g *= 0.6f;
, z; h& X3 z$ r* Y, Y pLight->Diffuse.b *= 0.6f;
6 {' X$ y* C8 S5 M% n pLight->Ambient.r *= 0.7f;
/ \7 e/ s: X" a! U. j2 F4 B6 ` pLight->Ambient.g *= 0.7f;
6 P: ^1 X1 O5 F' K3 a5 }% N) N pLight->Ambient.b *= 0.7f;
0 k6 B# Z9 B" _" M* t6 t$ [ }
: P: I% L3 o4 {9 l7 I4 h
' D. W7 @- r6 Q( q* C5 L#if __VER >= 15 // __BS_CHANGING_ENVIR
% i2 Q! x; q; e if( g_pPlayer ). N: \+ ~' n/ m* L$ B8 g1 t3 _
HookUpdateLight( pLight ); ]- s+ ^# ^7 ~5 g$ K
#endif
1 \4 |" N" S: ?$ j memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. q' ?7 b7 n- j3 D V) L! X2 I
O% e& S& |+ w' r pLight->Diffuse.r += 0.1f;
+ x" f, w9 I% E* Y pLight->Diffuse.g += 0.1f;( W) A2 ?; }% M$ }
pLight->Diffuse.b += 0.1f;% Y0 N* }; z+ \- z+ `0 K8 F
// oˉè* ??à?
' r; ]+ U* A) B pLight->Specular.r = 2.0f;) c: J. u3 E- _7 f( X+ }. [6 N
pLight->Specular.g = 2.0f;
) h* U' T0 T4 o: ^" y x pLight->Specular.b = 2.0f;$ [' t. j. G9 p6 S, K
// á?oˉ + @ `# I" l6 @: K) M+ Q. \6 x
pLight->Ambient.r *= 0.9f;& r+ s) w* S' ]+ M k" \7 v, d7 [. A/ j; s
pLight->Ambient.g *= 0.9f;
8 \- i! v+ t' N. J/ n pLight->Ambient.b *= 0.9f;% v5 ] b1 K- m4 D {2 ?
8 V$ w/ I+ m2 j" Y4 @' p% i
memcpy( &m_light, pLight, sizeof( m_light ) );7 G4 f" F! Y0 Z+ O% W
1 o3 h# O7 n a0 ^1 Y. Y
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
8 |# b, T9 E) W! U" Y pLight->Appear( m_pd3dDevice, TRUE );
& G5 h1 v1 Q/ s# a8 r
8 f+ t" D; N' C8 Q% F W DWORD dwR, dwG, dwB;
" |" i# I- S% F dwR = (DWORD)( pLight->Ambient.r * 255 );( B2 B! q; J. t1 t7 P1 w7 R
dwG = (DWORD)( pLight->Ambient.g * 255 );
3 |) K* ]4 Z0 }/ b: L) U dwB = (DWORD)( pLight->Ambient.b * 255 );; B9 W5 i. v/ D9 h* y4 P
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- P* V8 |: f1 O3 S
}
6 L+ C& l6 }) x, G; e }
4 A3 O* }1 N/ k0 F | else
. O, Y+ _, A" L {
/ s2 W! `. P m$ _& C- V* d if( pLight )
% Z7 M. D& _ h4 X2 P! z" P7 a {
# Q+ o9 B' W0 O2 V$ s1 c; d' S0 L
. y, q3 F% ^' c; Q* i- a" i int nHour = 8, nMin = 0;
! F% @* x1 ?6 U& U; A( A2 v7 [ #ifdef __CLIENT
) @3 y& O" |" `) F9 V3 l8 H // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 7 m0 J( {& m( R3 K3 ^! c8 n- t
nHour = g_GameTimer.m_nHour;5 p/ v* }# u6 P J
nMin = g_GameTimer.m_nMin ;
2 z8 m5 X, _0 H% l #else- l( Q- [6 Q$ k3 p" W
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù./ H9 v) f4 o' y, z
if( m_nLightType == 1 )* _0 g8 a& d/ |, c9 X) g0 e/ Y) x
nHour = m_nLightHour;# M: d: |5 G" N- z8 `; H8 {
#endif* y; Y2 E; g7 y; \; S8 y, ~ Z; S
nHour--;+ }1 q* y- P8 v& a
if( nHour < 0 ) nHour = 0;
" Z. v7 x0 u1 {1 f" a* B3 b if( nHour > 23 ) nHour = 23;
. L7 W7 [% ^6 Q d; v" L6 D) Y* R# ^# g- V
//if( m_bFixedHour )
# P$ ~. ?6 N1 F% z1 V // nHour = m_nFixedHour, nMin = 0;
, @' j8 A8 n; Y' V2 \ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];( k7 v0 a0 N, `2 q y
LIGHTCOLOR lightColor = m_k24Light[ nHour ];$ Q( i F+ U$ U1 F& [" f1 F
( B! o* R- l/ b- D$ }# ^ E4 c //m_lightColor = lightColorPrv;! i4 D+ f8 s% ?$ J) Y
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;! C+ F1 a2 T5 H1 h- W9 y2 Z* y
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;+ @. D! k" y7 W& r4 b2 g6 r
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;( l+ p! [8 t) B* k7 I) w
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;6 a2 }" j+ z" m8 _
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;. `8 e( N1 R4 E$ S
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
0 j6 x: U1 h: w) I // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)6 A+ }. R8 O. u; ~/ G' Y% M' O* a7 Q
5 X0 h9 C2 v R8 ?0 j; v1 `" r g
// à??μ oˉè* 3 v2 _9 E; W" C- U. U
pLight->Diffuse.r = lightColorPrv.r1;
# P9 H5 C6 S7 W% d pLight->Diffuse.g = lightColorPrv.g1;
% ~9 U0 X4 n. ?8 j pLight->Diffuse.b = lightColorPrv.b1;6 J4 G ~- k- I7 Q& x" C- a- J3 i1 k
// oˉè* ??à? $ M! K, l+ g% s8 O# W ^8 x
pLight->Specular.r = 1.0f;2 T/ n2 U* I8 p: ]
pLight->Specular.g = 1.0f;
# w+ E8 P p' |0 z$ J* n& Q! @ pLight->Specular.b = 1.0f;
, M4 Z _! @, ~% k // àü?? oˉè* 5 \2 N3 a% m1 Z4 A# J
pLight->Ambient.r = lightColorPrv.r2;
, v" k) ?' a' C( J pLight->Ambient.g = lightColorPrv.g2;
. m. S1 z& L/ @9 T4 } pLight->Ambient.b = lightColorPrv.b2;+ p' Y, M3 \7 o0 w ]
F* F% i1 ~. n: T8 s
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
* T* N& {6 U* O7 W7 K5 M {
, i+ B1 }% U" J. T5 i$ @ pLight->Diffuse.r *= 0.6f;
; Q! X; c% A! Q4 d% }- X: b pLight->Diffuse.g *= 0.6f;4 i* a$ P/ n5 t
pLight->Diffuse.b *= 0.6f;
: y, k6 l- u1 m+ E" F pLight->Ambient.r *= 0.7f;- u( k! N) |. ]4 c+ X T* v: [
pLight->Ambient.g *= 0.7f;& B4 Q! O. s. p7 D
pLight->Ambient.b *= 0.7f;( q& {5 B8 i! o" B8 N
}
7 W0 d' x; ^; v1 |7 N 9 s0 |& r9 F8 @ }: Y4 G9 U0 l
#if __VER >= 15 // __BS_CHANGING_ENVIR+ k% E( Q. P1 j( |# }
if( g_pPlayer )
! R6 x `) Y3 i/ Y% e+ C HookUpdateLight( pLight );
9 l; R$ O4 w, O( T9 }#endif
. c( z; N! C6 X/ K5 L memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& n9 k5 |8 ?' G* Z; o1 U) \! h
& H7 K6 K0 B5 r#ifdef __YENV% t2 i% N0 ^ ^: p* m$ ?
pLight->Diffuse.r *= 1.1f;$ _! ~% Q& E3 b' r% z6 d" j
pLight->Diffuse.g *= 1.1f;
1 f" j6 I9 s# g/ ~) e! x4 J. f pLight->Diffuse.b *= 1.1f;4 w% e# B7 ~8 I0 Q
// oˉè* ??à?
! W6 R k6 k' e5 ?! m pLight->Specular.r = 2.0f;8 o! t2 Y$ a1 S' o6 d# `, B
pLight->Specular.g = 2.0f;
4 R. A+ D2 Q: x$ w5 c9 J- _9 L pLight->Specular.b = 2.0f;
- k( z$ c' @* Z$ w8 X; } // á?oˉ 5 `, w- W# N+ O% `& k4 J& w9 ^ k
pLight->Ambient.r *= 1.0f;
/ ^8 }. u; }* V) }6 |0 u! V" U C pLight->Ambient.g *= 1.0f;
9 k( L) W1 O4 i, w* G" r- q1 f pLight->Ambient.b *= 1.0f;% T( \0 I7 ]& E( b6 [7 Q
#else //__YENV
( o- a9 }, z6 F6 j7 v0 [ pLight->Diffuse.r *= 1.1f;
" @/ t7 A$ [$ Z; n$ F; M+ q pLight->Diffuse.g *= 1.1f;& O/ H- l7 f H5 B
pLight->Diffuse.b *= 1.1f;
" m& W5 }( y) D5 |) S. f& T // oˉè* ??à?
4 a/ G/ Z; T- {( z pLight->Specular.r = 2.0f;: @- _# d; {; ]" P2 O
pLight->Specular.g = 2.0f;. L# }4 l1 a" a6 j/ V4 J7 Q
pLight->Specular.b = 2.0f;% y+ N. \( Q/ a4 e$ V0 Q+ H
// á?oˉ
3 q8 p: I" l: @/ [+ _ pLight->Ambient.r *= 0.9f;
- J+ S9 f( z% T; M I pLight->Ambient.g *= 0.9f;
: o; {; H( ^% H5 [ Y pLight->Ambient.b *= 0.9f;- S8 V7 ^2 v7 ~4 @7 {8 g
#endif //__YENV / [4 ^5 ^* P( j( f3 n! C' y5 b4 A) c
2 M+ C5 k) Q( ? memcpy( &m_light, pLight, sizeof( m_light ) );* \# w- v, v. p5 a" K1 H
1 C% r$ D# D" _+ Q
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);3 h, Z+ a2 g9 r( c9 K
D3DXMATRIX matTemp;
$ e ~# b" K, F' [( { static const float CONS_VAL = 3.1415926f / 180.f;- q$ G+ m+ Z0 Q
( ~9 m. m+ R% m/ o- w6 K# a
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);* i( r; S+ E: ~' F7 F o" I
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);* z& p( _1 @7 B; p
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
- Q5 @2 D1 s) c9 J9 S. P pLight->Appear( m_pd3dDevice, TRUE );
- p& s2 _7 |4 o* Z7 u, v+ C v6 ~' P/ Z
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, I& j( \. o5 [2 j. b // D3DXVec3Normalize(&(vecSun),&(vecSun));
0 V- U0 c4 T- y+ S% o0 \ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ m0 O" {# [6 s5 @( e Y) \' {' J- M" E6 M' u- W$ I- t/ p6 q
DWORD dwR, dwG, dwB;
5 B9 \/ J6 B0 ]: Z, { dwR = (DWORD)( pLight->Ambient.r * 255 );& Q- ~" I( ?# R$ c
dwG = (DWORD)( pLight->Ambient.g * 255 );
) G) p4 n/ {" M dwB = (DWORD)( pLight->Ambient.b * 255 );5 M+ O3 }% L; O7 ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); % U8 v6 K" \) O9 ^
}
) T1 k% K3 o+ { }
3 ]. S7 f V) F* J y, _4 @! l7 C4 ?5 o) |
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );: M1 e% q( u* j- D
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. o3 k! U! O8 I/ A
::SetLight( bLight );! L1 O" g5 S1 V" K. b0 p! s
. K1 V0 a) _) w5 I // ±ao? ?D?í???ó á¤à?
' f" w. ^1 }7 [* k/ X+ U* } m_pd3dDevice->SetMaterial( &m_baseMaterial );
, T) @, c- z$ ]& Z) A. C " d8 i6 w) K/ i2 p- u( z! ~, ]
#endif // not WORLDSERVER4 n+ ~0 E& N( k7 u- o+ M
}
! I" O4 _/ }; O: T0 U并更换- @& v; o5 ]& t5 g* v' B
Code:" S2 i) B$ y( Z. Q G! J; V; V
__FLYFF_INITPAGE_EXT5 i7 d) T* K' }& r: a! N6 x8 M
定义
. n% ?5 ]- ?- Y- V9 U/ a$ w
$ ~ G; l5 m8 F: c
+ x! Y: K, G Y9 v* j* d# u
7 S, Y8 M2 J5 {6 W3 _& n7 h' Z% u5 f
7 s7 m, W( q7 Y% N现在终于删除我的狗屁加速...
" R+ }+ L/ {' O1 }: T- k
l. P, J5 m6 Q8 ~7 c+ G; q) k! O, x9 w, W- I x( o
( u2 x8 g. L: z; ^3 }. ~ u" M |
|