|
|
食品车:+ v0 t# ?0 n Q0 }1 p; ~7 N
尾翼:" A) @4 ~6 A& T' {2 C
8 G/ f8 X, c6 h; X1 p" J3 V/ m
代码:
/ E' ^$ L; V/ C1 w5 `4 sCWndAutoFood::CWndAutoFood()2 e0 M) `* u, n
{
: V" Z1 \: x8 X% _ m_pItemElem = NULL;8 T' Z, u- m& e- D
m_pTexture = NULL;( u% m# |6 m" M+ j" J- m! q3 V
bStart = FALSE;) d" s8 {8 O, ?3 Z+ z( P
}7 s( ]# ^8 w# l7 B
, F* o- o1 _" Z
CWndAutoFood::~CWndAutoFood()
* q; Y7 w# U, R! C- F' q; ^8 E/ f{
- X6 [, {& m* s, \1 Z6 U AfxMessageBox( "AutoFood ist gestorben " );9 J# H2 v. W4 w' f0 |* y
}, O( g/ z- s+ h; L
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
" J$ \9 C0 f: u# x5 N4 O% [3 G{" X6 j# \6 Q6 S9 n% X
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
2 ]% `- f2 H8 r/ A2 x}$ F( A6 d4 S4 k h% k* Y
* m/ g' _9 B `2 B
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )) I% F0 R/ E' N) c4 ^' ~
{
" @9 J7 ^, j1 o" g LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );6 O" f4 j5 S; m0 _ c1 P9 h3 b
CRect rect = pWndCtrl->rect;
# H% V( [6 u( O" g, @7 x5 L if( rect && rect.PtInRect( point ) )
$ X0 i& d1 s" l* a- E! H3 J$ l {+ o& l. p3 o9 l) x" a8 D% f
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
% G f, \+ K' l7 a8 m( i6 m9 \' ?8 K if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )' t! I' h1 w; @/ s- \* u
{
" E' A* `1 U7 @, w if( m_pItemElem )
& a1 k' B0 s- [7 w {0 j( s8 y8 ~9 o4 C, P1 R9 `
m_pItemElem = NULL;
/ e5 e! z& L9 v+ C }& Q; I3 j* l$ k( e( t8 o
m_pItemElem = pItemElem;7 ]+ O7 k" P( x( J/ D# O: J
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 D- Y7 s1 L' k& U) ` }else{ K( E, P7 g7 v0 s5 K
SetForbid( TRUE );
& {, Q8 P5 s% b/ x. I. i }7 e7 F" C* B3 G% P4 ]
}else{
2 b) D& A6 U) v2 `" H& S3 } SetForbid( TRUE );
. z( C2 C7 e5 Q1 v }
3 L) c* I( r/ }3 u: g return TRUE;) w" F& c* l6 u9 K8 U @
}
, L$ ?# Q( ?( ^* ?4 N5 B5 k; h( z q K* L! W# F, F
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )# X& [( s% x+ J
{0 H# m" ^0 ?* f' u! P& p( I
switch( nID ): y- ~3 S1 l6 X0 h
{
T+ O6 D6 A3 N! d$ P case WIDC_BUTTON3:. g% ]4 T5 v# R
{
! | \( `8 T! {1 k& ?( s bStart = TRUE;6 F7 r- e6 d5 v0 Q I9 B
break;
9 m2 E3 C8 t5 [" P& e% \ }
& }9 h l: A L/ w! U2 o case WIDC_BUTTON4:
. |" ^8 N# w6 W {! f& e" k" e {
4 H. z0 H! {9 o3 Y bStart = FALSE;& A4 c/ b) v0 ?$ q: C
break;
}. W1 w3 p) F8 v0 L3 A( w( ` }4 |: T2 k: P% |# A2 u! Q% G
}( `- A3 x% e- k+ Z3 d
return CWndNeuz::OnChildNotify( message, nID, pLResult );! O2 T: M6 Z' f1 ?
} ) F% ]4 W4 [8 e7 C
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
) W; X* V& ?# k5 d ]{
- M1 f# E) T) m1 l; w CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
' s$ L2 Q( Y2 g+ \( L. k4 Q if( bStart || !m_pItemElem )
; _1 o% y% N0 j$ o3 Y" q {' Y+ j2 A3 _ F% X" Q
pBtn->EnableWindow( FALSE );
* _" e% n3 G" o6 L! x }else( `2 `% g3 j% |' |* j' F
pBtn->EnableWindow( TRUE );# n& K# E3 a4 d6 j6 T
if( m_pTexture )2 ^0 ~3 f/ @7 V$ ~, t
{
" B4 c: O; _& e& A' v LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );- `/ V# U( {( @% v5 s* n
if( wndCtrl && wndCtrl->rect )6 p" O! \+ u6 i4 D& P
{
! j, N0 e1 K' L) C0 q! g m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );4 P; S* c- d |: D0 }
}* w) S" [$ k* k3 J& t# N) ^
}1 i7 `/ m h% |; I; ?
}' z& \5 P+ m1 r9 w& S
7 y1 e8 D/ I7 Q' U$ h+ `
BOOL CWndAutoFood: rocess()
8 Q5 A" h2 i: k5 R3 D+ G/ }# I! Y{
% X+ q3 {1 V3 J/ N7 m$ y5 }$ m- J I if( bStart )
2 b0 T6 _2 O/ ^2 j$ z. m {) Z0 {/ b, ^# B+ V0 `- @6 b
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )" ]( C& e6 x8 @; R
{- A1 y3 _$ ^$ ~: B- }
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )+ u6 J+ [. K+ W
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
7 ~( f& p7 `; ^$ ? U2 t6 \; t }else{
# v! A$ B6 l" T6 o; n bStart = FALSE;
: m1 x- y# M8 | m_pItemElem = NULL;9 v/ J6 M) _5 U7 U _% ^: V
}
3 a: g# n! W) M1 D }, D) v& r) h6 q# r2 Z0 x: \
return TRUE;) _/ i# u+ x7 u* M
}: X4 Y8 Q4 }: c& p! U+ { P7 m: S1 e
5 ^5 D. |0 F+ ?' A$ ~' Y7 x登录视频废话:# c7 L9 }4 V' C* v* X
尾翼:( M, p: X; G+ }- y# U& |) k! C
. E) n( x1 O- V5 j/ _% W
代码:2 y* z6 r# l$ G: Z8 @6 W
* c% L4 k0 L1 |1 w0 J3 f1 A+ _void CWorld::SetLight( BOOL bLight )
# x8 A& s3 e4 o- s$ vdurch/ [ x% Y2 `0 K7 h! }, ~9 Y6 p
Code:; I, K3 v5 W. d$ N( C
void CWorld::SetLight( BOOL bLight )9 V6 z. Y9 ?* V; u/ T
{2 N2 e/ E; y% I% T/ b
//ACE("SetLight %d \n", bLight);1 N$ K& R# N: @
2 q H: L# X& ?5 {! p
#ifndef __WORLDSERVER , [4 H. ]0 n7 M2 q5 s: h* C
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);( |6 x: K3 j9 l. b0 e/ q' V
CLight* pLight = NULL;
/ Y# S5 ]* [5 m4 D. h
1 }: M% g* H5 ` K3 Q3 { D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
3 h4 \6 b) o. ]' q; m
, h0 L- V9 n' ~& G; A4 y. L pLight = GetLight( "direction" );
! W, y6 r4 \$ R, n
6 E3 D" }/ P! u8 v8 C#if __VER >= 15 // __BS_CHANGING_ENVIR* Z* O) E1 {- t9 ]
if( g_pPlayer ){
, l( f- s; p+ |4 ?; T; G& G) S ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
3 H+ o" z& I, n. y. |+ J if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!2 X/ a5 C& l9 s' E
{+ ^4 D' N4 v- J: a
if( pLight )
- M8 i- F) g Y7 \: ?. S, T0 { {& ]: M6 K5 d2 U+ j9 d' p$ I
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
+ h6 N% P. A5 u( H# ?% O pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
6 O! b, d0 M* h2 C pLight->Ambient.b = pInfo->_fAmbient[ 2 ];& [$ F q" D6 i+ V1 E4 H
+ d& \/ M; W% H6 \
pLight->Specular.r = 2.0f;
( y8 S4 J: {6 q0 f7 g$ P% h3 D pLight->Specular.g = 2.0f;
/ W$ V3 n5 P% I) o. a8 | pLight->Specular.b = 2.0f;6 \( U' q. x$ }7 b- Q
" @) \8 O, X5 t. W; l; ` pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];% D6 r1 B& z( [" I! b2 t( W4 |
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];9 J7 G3 w* D- Y8 \
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
/ k+ E, s! ?; }5 `* V4 o5 _
: f |6 @5 U8 A& l3 e HookUpdateLight( pLight );
7 a! `7 q* n8 T, J* }9 S7 ~& I n ^9 f+ h
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
@) \- X$ ?: Z+ O) Q& H 3 j4 @+ E/ }$ R8 V! Q9 y
pLight->Diffuse.r *= 1.2f;
: V9 b: L( i- W3 O8 s; O. n pLight->Diffuse.g *= 1.2f;
3 A4 [! Q3 d# l- T! F pLight->Diffuse.b *= 1.2f;
( U* l0 [1 i! O5 W/ b. k- _
7 K5 L, R, c9 e pLight->Ambient.r *= 0.8f;
- J. j7 `( p5 ~ pLight->Ambient.g *= 0.8f;* {1 t+ Q3 E* a6 L
pLight->Ambient.b *= 0.8f;
% u7 B; U8 a) ]4 O
, h; P: n) ]8 | memcpy( &m_light, pLight, sizeof( m_light ) );1 k) L6 z* T- `& W+ `
) o7 A% ^* R+ q5 {: S$ W
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 O3 }3 H1 T* ?* F6 O" K4 G
D3DXVec3Normalize(&(vecSun),&(vecSun));
1 M1 ^' s, o. \: C. s pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ! @& N# b' O+ A) @5 [
pLight->Appear( m_pd3dDevice, TRUE );! w1 E% w. k& V9 E$ c1 \% V# N
( n2 q+ r+ Q3 X! ~: w
DWORD dwR, dwG, dwB;& t3 L! F2 X& R& x: ~
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 J0 e% S2 P* S& _2 h( j dwG = (DWORD)( pLight->Ambient.g * 255 );5 L7 W/ B: ~: q* Z* `# Q# d' s& A
dwB = (DWORD)( pLight->Ambient.b * 255 );
& o2 r! G& a0 f" p, w dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' F. E$ r( K4 o
}
2 ]) t3 n" d1 [ B) T- `1 o }
) p l3 t. h' p }) q5 t% [1 Z `4 u5 \$ [8 ~
else8 x6 F+ g6 ^. }0 ]
#endif
$ }0 @: Y1 z* r P) v. ?
) W/ s6 r. Q2 o' [ s" r if( m_bIsIndoor )
0 \6 s3 E4 j$ G: |# |. K& g {. @6 x# O, t& X& \
if( pLight ). X) h5 a# k: t$ D+ B
{ 8 L0 c5 _2 B4 A; A
// à??μ oˉè*
( |( a2 q j5 a- }7 ?5 Z( J pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
G x& p Z& N+ D; o$ w' m4 W pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
' i* g. w! B4 a' }0 w pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;& Y- }$ }; m+ m4 m( r& Q" }
s7 Z/ M: t( N8 ~4 ?3 n$ C; m
// oˉè* ??à? , ^9 |% U I1 K) K
pLight->Specular.r = 1.0f;
$ }$ [6 s7 d; f! @ pLight->Specular.g = 1.0f;
+ |0 |# B7 l' J4 I7 F" u pLight->Specular.b = 1.0f;
8 `5 v- D5 n1 Y7 g* Z5 g9 s // àü?? oˉè* 9 x, V' P; I% h' Z
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;9 e4 w7 h6 ]# V' _$ k8 T
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
- ]* \( ^4 t2 M# X. u pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
4 R5 m/ D ?3 l- p: K" {# F# t3 n- H% w$ S
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 P, S! \3 l/ Y, i3 z) l {+ `+ v+ a: V P2 N n B( r
pLight->Diffuse.r *= 0.6f;2 [9 k! L x/ d1 ?3 o( ^0 o
pLight->Diffuse.g *= 0.6f;
8 y) t. L3 e2 J2 k5 \ pLight->Diffuse.b *= 0.6f;3 _( H9 F6 v6 O% {( Z9 M
pLight->Ambient.r *= 0.7f;
9 U7 z- G* r! m. y' Q8 |' z. U: G pLight->Ambient.g *= 0.7f;
4 p, d) `, J- N pLight->Ambient.b *= 0.7f;: k. X$ C/ X5 U6 x+ ^& L+ z
}# I8 |) K- H+ k6 | f, T$ s6 F
6 m6 x. l# I8 o: r; r#if __VER >= 15 // __BS_CHANGING_ENVIR
3 b# G, J9 B6 V2 r5 R; F if( g_pPlayer )
# L3 c/ i$ [, T; X* n! l+ K4 b( b HookUpdateLight( pLight );3 N' @$ z, @5 K, t3 }/ x) e1 m8 u: ]
#endif! Y7 I& `( A! G2 [
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% @ R9 u1 a4 y0 _, V
^( R) a% t" E4 L5 W pLight->Diffuse.r += 0.1f;
. i8 p8 R4 w6 p4 [$ V9 c0 q pLight->Diffuse.g += 0.1f;
# C2 Q/ P. t( R8 h- t4 J pLight->Diffuse.b += 0.1f;
6 S3 i8 P4 K6 C6 M1 `& ~' U // oˉè* ??à? ; W X9 _5 D% z+ s6 D. D0 G. h
pLight->Specular.r = 2.0f;- y/ y& b( v4 Z& K B
pLight->Specular.g = 2.0f;
, [4 @+ T9 T( \5 q4 l4 i6 i pLight->Specular.b = 2.0f;% l# V. N2 L) ?3 I8 }; z
// á?oˉ 2 S! _* @3 Y' {& x
pLight->Ambient.r *= 0.9f;
0 f: l+ I% v6 x" e) y6 D& w, V. v ? pLight->Ambient.g *= 0.9f;% M! K- O, j/ c/ d- U' W
pLight->Ambient.b *= 0.9f;
+ ~4 @8 _- X+ {( O& G* R3 _. k' q# y, G' |* s7 C, S. N6 b* f
memcpy( &m_light, pLight, sizeof( m_light ) );
$ s. ^3 Q% n. }% d 2 ?1 u3 }7 T1 w. @+ a$ a* J- _
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
' E; A' r. u$ Q% e+ w pLight->Appear( m_pd3dDevice, TRUE );! _! J. O8 [* f6 f
2 q1 U- ~! p. b; _, X8 \ DWORD dwR, dwG, dwB;
. p; w$ S* g( R4 g# X6 z' i- E dwR = (DWORD)( pLight->Ambient.r * 255 );
1 q6 V. _; Z1 {: p j dwG = (DWORD)( pLight->Ambient.g * 255 );
, d( x/ F6 |- z* J9 e- A dwB = (DWORD)( pLight->Ambient.b * 255 );( j5 c+ ~; u7 M$ \
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
q& ^# k$ S3 |( T7 m, [; p' {" r }' L8 t" R1 A$ d9 { S5 J0 w, c
}
+ \4 p0 X( N; h# j- h1 B else
* w- w' G. l6 r% {2 X5 f. x1 e. D {
/ y9 ?, z" F7 q" z if( pLight )% \- \0 w8 w3 P% ^( m
{
& x- z( ^! E _# x 3 q4 O4 p7 q; N+ A! ]; J
int nHour = 8, nMin = 0;
; k$ N3 M4 D) i' | #ifdef __CLIENT7 ~1 z, `: A% m$ i
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. , ^7 B- I1 p& H: D( K2 p2 T2 `4 P
nHour = g_GameTimer.m_nHour;1 W) F8 _. U& `$ Q# q4 b
nMin = g_GameTimer.m_nMin ;
4 ^7 Z/ ~3 A q a #else
. S1 `# w0 e8 n; a W // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
! C: J- U2 t* G) i if( m_nLightType == 1 )" j+ }% n0 j+ A* }" O! k) Y
nHour = m_nLightHour;/ s* h7 h4 D4 N6 C& E; }+ b% f
#endif# }6 [( x2 k$ I# u5 p- u
nHour--;
& r" _, N! n$ y& N+ ]' ^7 s% A if( nHour < 0 ) nHour = 0;
6 l8 N4 _, s( w1 U- g if( nHour > 23 ) nHour = 23;7 E' l. w ?$ t% s |7 S0 V
~/ f( n* C) u; i: w7 `
//if( m_bFixedHour )% V! t/ J8 Y. D- O# i8 \8 v! G
// nHour = m_nFixedHour, nMin = 0;( i! Q$ n. U3 ~" n- d O7 f! y
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
4 i' T5 O; H1 z9 F% c" P% f LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 ]1 Q. x, x4 x7 n( v9 U
9 r. L8 `: Y6 c7 y: l
//m_lightColor = lightColorPrv;/ N# S0 T: @- R3 y- x
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;7 g# u' l9 y- [0 f
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;; v* p+ P9 q- l5 G' K
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
: n: S8 e5 o/ [* K X+ Q lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;5 i# u L) t& t. G; B; D9 P; _
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
r- E5 k* V `, {0 G @ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
) a6 S/ ]- C I7 t // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
4 a* \' y. b! m2 d0 V2 ~0 s. B2 s6 `5 B9 k8 S9 @6 I! ?
// à??μ oˉè* ( W% T: w$ Z2 [" o+ D1 {
pLight->Diffuse.r = lightColorPrv.r1;
3 H. D& I5 @# r' k pLight->Diffuse.g = lightColorPrv.g1;9 B! [; E" j$ T/ v0 N5 m2 y
pLight->Diffuse.b = lightColorPrv.b1;: ^) l, \! f, n3 \
// oˉè* ??à? / m4 K4 e% S; j! n
pLight->Specular.r = 1.0f;
. C/ H9 W8 \: Q: z, u pLight->Specular.g = 1.0f;
% M! O, H& y( w pLight->Specular.b = 1.0f;
; V9 K7 S# S( T& u: z( {' Q // àü?? oˉè*
5 W O6 ~6 C; A8 M8 u/ W pLight->Ambient.r = lightColorPrv.r2;" A* G6 N4 [ x7 I, B' Q/ f
pLight->Ambient.g = lightColorPrv.g2;4 K$ [. z' Z+ o9 i# C
pLight->Ambient.b = lightColorPrv.b2;5 ^- ?# `2 t, `4 g: z4 B3 {
2 \+ \8 L/ k" w5 M% I
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 a- Q2 v1 S6 V& r
{
6 i8 E+ K. B( n4 R' D1 k pLight->Diffuse.r *= 0.6f;
; f0 ~* H* c0 T! _' L pLight->Diffuse.g *= 0.6f;
- g) {5 a. }2 j: o$ F pLight->Diffuse.b *= 0.6f;
! k# A0 Q ?3 W) v) w) z' G+ [' g pLight->Ambient.r *= 0.7f;' O& U" p+ s7 O7 X7 H! z
pLight->Ambient.g *= 0.7f;: g: b& z, a w4 u
pLight->Ambient.b *= 0.7f;" H0 D9 [+ O$ G e& ]
}
. c" a0 [; f* b! L ' ?5 W& A0 I& R, u: M
#if __VER >= 15 // __BS_CHANGING_ENVIR. u1 l, z) R, K# M5 k
if( g_pPlayer )
) a7 y& p0 N! l* e HookUpdateLight( pLight ); 7 r. d$ b F, ]( |) o; j
#endif0 ^' e- y y9 h* W% C1 |
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- h1 q9 v7 E8 v c" ]5 p( B/ G
! m( B- |0 {# Q3 _6 b#ifdef __YENV: j* H' y- A0 @1 Q; q) |
pLight->Diffuse.r *= 1.1f;3 I3 Z- a2 f8 o, n7 ~& f4 n; i
pLight->Diffuse.g *= 1.1f;/ m* q' y: d& n( l- s4 M9 B" S' f
pLight->Diffuse.b *= 1.1f;) Q6 ]" u6 n% u/ u
// oˉè* ??à?
4 V" l! a' k4 ?" q) y4 O pLight->Specular.r = 2.0f;
@, g; J; M% ?6 q. q, S pLight->Specular.g = 2.0f;
2 F1 z% }, M" L/ Q, W) ` pLight->Specular.b = 2.0f;
. p- B- x6 H9 Y* U // á?oˉ # q* [4 o' w# E! s
pLight->Ambient.r *= 1.0f;3 ]' ]! J2 {) V7 t- `! f% O
pLight->Ambient.g *= 1.0f;, r1 Z, s( A1 {7 f! ?$ k6 M
pLight->Ambient.b *= 1.0f;
6 Y+ } R' c! u#else //__YENV
/ ?: `% ?$ ]2 P- a7 u* ?) [ pLight->Diffuse.r *= 1.1f;
3 s# j, z) N% Z$ `4 _ pLight->Diffuse.g *= 1.1f;# i% ^) n7 N, G3 N
pLight->Diffuse.b *= 1.1f;
3 A' C* L' o; E ]: J // oˉè* ??à?
1 X' X( n7 T* B) \9 n3 f# I pLight->Specular.r = 2.0f;; w6 m8 n: h" x# n
pLight->Specular.g = 2.0f;
+ g( @' O3 X& n& {" m* _; `$ d pLight->Specular.b = 2.0f; Y; ~7 c1 t, R/ P' U1 a5 V1 H- l
// á?oˉ + a% Z6 ]4 g$ T
pLight->Ambient.r *= 0.9f;/ z+ }, ]2 f! X1 h( o4 {
pLight->Ambient.g *= 0.9f;. V0 x3 n! X- B* s8 m7 p
pLight->Ambient.b *= 0.9f;6 y- u4 N: O) M! L9 U- `8 R
#endif //__YENV
% N- r1 B" A Z' p6 m8 z
4 |, B+ N: Q3 E5 j5 e memcpy( &m_light, pLight, sizeof( m_light ) );
* C) `5 O4 c, G- j- B* f0 p {9 a3 Y- {2 q 2 k: c) A5 z |& j- f8 B
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
; A6 J+ v5 e4 v! X D3DXMATRIX matTemp;
, l2 y0 w6 ]8 v' w3 H static const float CONS_VAL = 3.1415926f / 180.f;7 {7 W; {) @3 {) ]- D) u
$ M Y- |% P. f2 h+ [/ ]' X D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);$ Y! e w! J. n! a2 X6 H
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);# s. Z$ B2 ]$ a9 h, T
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
; G8 P7 u- _* }. [ pLight->Appear( m_pd3dDevice, TRUE );
7 R! [- |& c6 N5 H" ?! ]* C+ K2 G$ J9 c8 {
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& N- I* h! i* o7 j q, j
// D3DXVec3Normalize(&(vecSun),&(vecSun));8 n3 u. _+ E0 Y' z/ [. W
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 \7 _8 s# m- z6 |
. y P# I- \. ]( a
DWORD dwR, dwG, dwB;& W2 F4 a- k1 ^/ e) G
dwR = (DWORD)( pLight->Ambient.r * 255 ); G9 }1 K$ I) p! J5 m1 E: O
dwG = (DWORD)( pLight->Ambient.g * 255 );. \# C! K3 B7 B% i+ B- g7 Y
dwB = (DWORD)( pLight->Ambient.b * 255 );4 s8 K7 R6 t+ @
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 0 n; p/ A! @0 k& m& Z6 r( n9 Q
}
+ b0 Z- i+ Y$ K( h0 B0 \. k }
2 n R( \) `0 y
; b3 p- ^: E: [" C* X% Q& N# C; ~ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
; n! `7 \+ I3 x. z9 \0 v. f }" I! a 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) );4 e% y+ u! \: @
::SetLight( bLight );
1 g- c2 {1 a% p* V8 {. }3 [+ P' I& |5 S( n
// ±ao? ?D?í???ó á¤à? 4 o6 u6 o7 I1 S2 B& y2 `: S: Z
m_pd3dDevice->SetMaterial( &m_baseMaterial ); t% r6 d9 \2 V4 ]* v( i
$ Z2 B3 {. I6 h5 A& R4 [
#endif // not WORLDSERVER
" n! _- Q5 ?" q. K5 `& i}
( f# e# n& M( Q! w" k6 G0 }并更换# F6 Y9 l) e" V
Code:
8 ^0 a& s2 B( H' ?$ e__FLYFF_INITPAGE_EXT
+ O C% v! m2 c& E# }. c* s定义1 @( I8 M; v( v. l5 r; x
, h; k A3 n, b9 e( j
6 R2 C9 `$ s% s! x; O& t7 f5 w7 M
8 h0 t( N: ?- c. u* b/ x$ k+ C h0 G& X
9 j9 n# t5 t& a9 T
现在终于删除我的狗屁加速...2 V2 K2 q: w" {& D- H
) L$ z4 ]* l& F+ ^, X' L3 A! v3 z3 N) |
1 t0 B2 d1 _8 U) f
|
|