|
|
食品车:: d4 [7 W& S! g9 x
尾翼:
- `; ~* P( O- m/ E( u c1 v) u. \0 t4 @
代码:
$ n$ |" M7 `! p0 LCWndAutoFood::CWndAutoFood()8 b) ~5 S4 Y; o: }! w4 @+ y
{( [" O- M1 [7 }, [$ @' U8 N
m_pItemElem = NULL;! n& _: `/ e: Q0 y. e
m_pTexture = NULL;
. A* B4 \& }8 k+ g) y bStart = FALSE;$ g% h9 e3 g6 u$ V
}/ w% L: D2 q. A5 u
* {. N8 T+ k* Q; N/ M8 ?2 w7 A
CWndAutoFood::~CWndAutoFood()( S& ~4 A( t. [! C7 H
{7 Y4 ]6 M( c. z0 f! [
AfxMessageBox( "AutoFood ist gestorben " );4 S3 d- p7 `* i( H( o( F
}
8 Y2 u. L) A* [- tBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )$ p9 c3 P% n7 X$ U! @7 H6 N
{
4 d6 u/ F) M4 r return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );# Z0 P- K' B( Z6 N0 I
}
( |. M* A1 S! {- u3 a6 Y& }/ O% O# k! M" C5 v$ o& h% _
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
! n2 T5 S5 i" g `{
1 b! s9 T) t4 U# g. S, t LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ X' a& a# [. c; k
CRect rect = pWndCtrl->rect;
+ s5 N G# f; K( J+ D4 \ if( rect && rect.PtInRect( point ) )
7 L8 b1 Y0 N& i, T7 x; S {
1 x( H/ S8 F; n5 L9 ~) P CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );& O7 T) r" l/ |0 n9 t
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )+ j! V4 N& a8 G4 Z' A/ ?
{
$ i2 M# U0 u% u# v# M5 Q if( m_pItemElem )
2 f/ M, y: H" o$ J$ }# e9 Q. q {
1 Z4 o0 a v! J: Z$ o7 t1 v2 } m_pItemElem = NULL;
J' k8 H d2 o }
( e9 A' u( \$ C m_pItemElem = pItemElem;0 C0 m; T* M' o! u" w. j) Z2 v" H
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );; W* ?3 e/ _* x9 A5 [& f
}else{
7 O6 o- ^$ ?) Z$ v+ D: V SetForbid( TRUE ); O) I# a+ `- O" I( g
}8 b, ]3 e0 ]7 t4 m8 T% E! r
}else{; {" T5 S* B7 t# r: I
SetForbid( TRUE );
, @( A3 Z$ ]& [) P }# v. `* i. A8 S% `- G3 b% o
return TRUE;
: w4 |. q% `7 Y( y( M}' r: P, x* y3 ~% |& \ ~2 l2 ^: Q
: i2 J3 b, t+ K5 p+ R5 V, fBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )* ?: t6 W3 W7 E. }: d# x& Y0 N9 R' j
{
( e/ z- @+ M; I8 ] switch( nID )
; @- w4 L- Z. l# e' C }- n0 x8 u {
q8 w" C) Z4 d3 L, k8 W) j9 C% H: _ case WIDC_BUTTON3:( ]* b. x6 I+ _% D# |
{0 ~. i9 v* H7 Q L( P0 ?9 U
bStart = TRUE;
: i& [4 i1 Z, {2 r! [! w break;( z4 @& y/ q1 y& k
}$ l3 c2 c* g6 z
case WIDC_BUTTON4:2 @' h& e9 H: m$ |
{; {% t& E O$ e) P c
bStart = FALSE;, J( u% M! Q& x# n3 d
break;
$ y& ` v6 d R/ q: |3 w$ U }
1 Q4 T% L+ E( N3 I }
( _3 j2 S* R2 t return CWndNeuz::OnChildNotify( message, nID, pLResult );/ R8 k8 U- u! g3 f+ v, K
}
: O& @0 x# w6 D, M% G4 n2 wvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
9 C( p- J4 ?& `' {) i( p{8 Y( G* [! h0 Y" U! Q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
% o. p Y3 B! a0 v% U if( bStart || !m_pItemElem )
0 o6 h4 b6 R- F( _8 \ Y {1 h" I9 X" B f$ t( T; I, E+ T0 J7 v
pBtn->EnableWindow( FALSE );% s8 z' o) l# C5 G4 }9 `* g$ ~' ^
}else7 o2 c f# K+ t' E. X, N' T2 p* m
pBtn->EnableWindow( TRUE );1 T! F9 ^: F E& P+ o: v& W
if( m_pTexture )0 \* k1 G+ F: t) R5 _: {; W' f
{
1 g) F, M' ~0 S7 C LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, F( Z d5 E) u% U' n6 E3 H$ d if( wndCtrl && wndCtrl->rect )
# j7 m6 O, J+ }9 {. ?$ X {$ k& Y& a& ~6 c* y- `
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
2 \" Z' k7 M' t# G9 n# P }& W+ l" p5 w$ @5 G- _2 `
}- |7 E$ u8 {( A
}
! j# X2 R2 f% w0 w+ Z3 P2 t, |2 F% t" T
BOOL CWndAutoFood: rocess()- Q1 w; c) |9 D* r( `
{
( H ]7 G' i K3 e5 l0 X9 v if( bStart )9 V* l2 B$ V: [" }1 x
{
) l2 V3 s2 M+ Z p6 `! x if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )" l$ W& K! Y& ~. f2 y
{
' ~: B! g/ g/ j if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
' a( P( G/ R2 z4 I/ e g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );' P' O1 Z* Z* k( i/ I/ A% R. L' H8 F
}else{
% l# w* p, k2 {: A bStart = FALSE;: I- h8 i( w1 A( ^2 S
m_pItemElem = NULL;2 g3 m+ U7 r ~: c: u$ r
}
1 S1 f4 f1 ? x' H/ p }+ e) y" O# x- j) O5 i
return TRUE;6 L+ {% I/ m: _: E, b
}1 e+ W" w5 G8 [) ^7 P$ S
3 w" P5 v* [) N/ {登录视频废话:: R% a& b3 ~+ M4 O- B
尾翼:" k0 t1 H4 m. J1 N
( o9 l3 m. P# b, d
代码:; U1 e+ `$ a) f" Z* a2 ^
- V7 E; W8 h$ i' `9 {void CWorld::SetLight( BOOL bLight )
+ C4 {9 x3 z! n& {) l- Xdurch
- `5 C" u8 v8 ?* E, P& eCode:
; d6 z' m+ L7 E4 T; I+ pvoid CWorld::SetLight( BOOL bLight )
& w, e' \3 L5 |% _6 W{
9 J @9 J( q, j1 c2 h6 Y6 h. R //ACE("SetLight %d \n", bLight);& x+ ?: B. `; n m
, c7 d# h$ P! y5 V6 }7 I. L6 r#ifndef __WORLDSERVER
* r# [# }) A1 d0 G$ b DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);. E* c4 B1 \$ G+ M. j
CLight* pLight = NULL;( H4 W; a- M+ M0 q# r% Q8 K8 \
3 Y2 j6 F# {2 V7 b! Y$ n* j D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );# e4 @0 @ E' U5 l7 q
7 b$ z* ]' W& G: @8 i' E
pLight = GetLight( "direction" );
/ s+ e5 H8 t7 J- x* n( M7 B3 S
; ?2 [0 _9 ?4 c% i2 E2 M#if __VER >= 15 // __BS_CHANGING_ENVIR- q* e( ^ b' m" v# s# n" O
if( g_pPlayer ){0 d* G1 H( b K( r. f, x0 s; L
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
$ ~+ m y9 C9 P8 v K if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!) s; p& m, y! e) L5 `" w8 d
{) y% W/ s8 c& i! D
if( pLight )
; c) {" ^( O5 M1 W R* ] {; G! ?/ [% t# M. d7 }
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];8 U Y' ~1 B( H; r6 c
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];* E3 Z( `9 \( I% s
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];$ p' ~9 z: g( |: R9 {; n% R6 ]
0 r' B& ^$ H" D) V+ }) I pLight->Specular.r = 2.0f;
! Y( L) G2 s: J$ |& U pLight->Specular.g = 2.0f;# @" X8 Y& O' f3 J8 K, l2 D$ P- Y
pLight->Specular.b = 2.0f;
& l1 B1 t! O( Y) `# H, e
1 B+ [) m0 y; D pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];/ n3 x" F% w! S4 H3 t3 f5 v
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];+ `' H( P) y* A# w
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
( F3 O* ~- c) S6 g: h* f/ c: E
" T1 d0 l9 C/ z h HookUpdateLight( pLight );
p1 Q: m7 o& X3 F# B; Q- |/ A: H, t3 z* z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ w! ~# e0 k0 i$ X( n9 h, d
; Z ~ p |4 c9 Q0 L! J
pLight->Diffuse.r *= 1.2f;( N$ I+ i% s+ ^8 K
pLight->Diffuse.g *= 1.2f;# z, u# X2 d4 k* Q! f+ X
pLight->Diffuse.b *= 1.2f;& d8 ?# n. n" X5 a# G4 j3 Y) ?
+ e! n, o9 G* t* @/ r% j: i( [ D pLight->Ambient.r *= 0.8f;
( L6 _& n4 b1 x; M( v9 j pLight->Ambient.g *= 0.8f;
: u9 }# D# ~% q( G2 I: p pLight->Ambient.b *= 0.8f;" C# a5 v' q7 `+ ~* ]( E$ V. l# z
+ b1 M+ @' ?, u memcpy( &m_light, pLight, sizeof( m_light ) );
: X& e) K5 |) ?
+ _8 k+ ?3 ~" H$ W9 { D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
8 _2 U$ R/ a' B ?; K& z; j) E D3DXVec3Normalize(&(vecSun),&(vecSun)); R4 K$ a6 @7 G4 T
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 u; n# k4 e' Q0 z pLight->Appear( m_pd3dDevice, TRUE );' N' ]7 d2 H* Y* \- v2 N5 | K
, v5 H' K0 _" J3 h7 y
DWORD dwR, dwG, dwB;% K5 D3 Y9 r- O8 _# o6 ~
dwR = (DWORD)( pLight->Ambient.r * 255 );8 }; n- y! s: z" p4 w( Z- e1 |
dwG = (DWORD)( pLight->Ambient.g * 255 );# q( @# o, Z& _+ w" i
dwB = (DWORD)( pLight->Ambient.b * 255 );& V8 s; c1 j/ i- t# j5 W5 q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );2 b! [) V- u9 {, p9 I
} R& H9 ~6 H) ^1 w" x/ f) a# [0 o! O
}0 [8 _) }0 D- i, a B4 S* F4 b
}
6 B- Q5 e7 M8 _. C. Q else% M3 f# {, @2 c, T% S( }
#endif - M4 d0 a2 Q$ @% T
. X" W1 o' y) b* _7 H6 w if( m_bIsIndoor )- n) o. H3 s( ], R% I
{
- r# S; L6 r9 `; a9 K4 ] if( pLight )8 e% S8 q& ^# I( d2 S
{
' F/ F" F% v/ l // à??μ oˉè* & C3 T" B; q; Z- t
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
. @4 E) O- W4 ?7 W2 M# n6 f2 x' ? pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
& I# }& q( Y7 P; g9 s pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
. {! b5 J$ x: W+ x* p9 I4 I z9 Y6 p6 ~. k P- T2 O3 H
// oˉè* ??à? 0 g, j+ t: u" `0 F& U
pLight->Specular.r = 1.0f;6 w; w( p2 x# ?1 _$ R
pLight->Specular.g = 1.0f;
4 W; x, u u7 _ pLight->Specular.b = 1.0f;
8 s1 h% M# i2 N2 W- |# d# S // àü?? oˉè*
* \" j: y% n5 r7 m* ~3 f6 m pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
: b% Q+ }: f4 L6 o* X9 l8 d' X pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;' V m8 X8 W: l$ E5 G9 [$ H; c& H
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
; k/ j6 `$ {& B0 _3 r# e4 A' f4 [+ Q! _
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* B: I! K5 k' F a1 e* ~
{/ Z( |2 c$ P/ ~ g
pLight->Diffuse.r *= 0.6f;
; S$ |" K O! l, j' R4 C pLight->Diffuse.g *= 0.6f;
; q* I, d% Y0 r$ I# } pLight->Diffuse.b *= 0.6f;6 ?# b0 V0 Z6 N4 T" Y
pLight->Ambient.r *= 0.7f;
+ E z6 L, F$ w6 ^* h+ S9 j pLight->Ambient.g *= 0.7f;8 p5 M+ z4 o! j
pLight->Ambient.b *= 0.7f;
- i6 s4 P* z' w$ p8 r }
$ u C. W' Q: i q3 L/ d
) ~' t& r: U" M) a& k- G6 k2 u# Y#if __VER >= 15 // __BS_CHANGING_ENVIR
/ S6 o7 V' r* O if( g_pPlayer ); w: a9 n+ ]7 o( @, j9 b
HookUpdateLight( pLight );# b7 Q X) T% z- ~1 a0 o1 t
#endif
/ ` B* t) g& y( E memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
d% t# ^: P- \' s3 |) M0 l
4 _3 x* ?- Q( q3 F; G$ f pLight->Diffuse.r += 0.1f;
& _& r2 A6 _6 @4 S pLight->Diffuse.g += 0.1f;0 f2 f" Z" X# H4 G: ^
pLight->Diffuse.b += 0.1f;7 e0 C! `. X8 d1 d9 \% L
// oˉè* ??à?
# ^% f5 V! Z: P$ T: T5 B) o pLight->Specular.r = 2.0f;& k2 t- ? p3 P8 O/ A% Y( E
pLight->Specular.g = 2.0f;3 ?: v' t4 y+ A$ j: s W/ ~* z* Z# g
pLight->Specular.b = 2.0f;: Q3 t0 r- @- I
// á?oˉ , B: X, u6 C2 t" ^% a5 A
pLight->Ambient.r *= 0.9f;
5 c' y: w' E( j8 _1 o } pLight->Ambient.g *= 0.9f;. d5 g* s- E/ C6 F/ u
pLight->Ambient.b *= 0.9f;1 Y8 c* a- N# n P; }. |
4 P o1 b9 _& O1 X& | memcpy( &m_light, pLight, sizeof( m_light ) );
& E+ c- x8 Q' i% ?9 u - ?- D( \ x, P0 o' z1 k2 L
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );/ _& g P8 z4 Z- w) e0 K. |0 H N$ M
pLight->Appear( m_pd3dDevice, TRUE );6 n9 o& w( d* y+ s
: E G* I9 r0 D" ~) {' x; q
DWORD dwR, dwG, dwB;
4 G% y. u3 D; ~ dwR = (DWORD)( pLight->Ambient.r * 255 );
% @% A( Z3 c# Z- z- n& _2 ~ dwG = (DWORD)( pLight->Ambient.g * 255 );
& h" G5 d2 Q, w dwB = (DWORD)( pLight->Ambient.b * 255 );) D; E: s0 K, O, l8 K5 {
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 X7 [; _0 h* u
}$ F7 j. o3 u+ J! F. ~
}
; ~" F7 r7 w. d* }" S else
* v; o! j: |' E9 T# N {
/ T7 ^' T9 U6 _! G! C3 G9 `( M5 ^6 e if( pLight ) A h: G; b3 Z
{8 e& j' |. N P( b2 Q) T- K
4 d/ o4 e& I# _" p: l8 B. _" t int nHour = 8, nMin = 0;
: B# w% k* M! d4 r8 A# h9 E #ifdef __CLIENT
6 ]/ y2 x) M6 `/ M, b. f // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
/ L2 f, p9 T2 ^$ A; R nHour = g_GameTimer.m_nHour;4 I @8 { p* ^, c
nMin = g_GameTimer.m_nMin ;+ K1 g) C/ \$ a, {! f7 \ D% L
#else
7 h! o6 D) o* y( ~2 z // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
5 w) i2 U N" t5 a if( m_nLightType == 1 )
, O n5 h5 \ h6 Y) t6 K( b; x6 h nHour = m_nLightHour;
( B& `+ ^7 t! K& x #endif: `' O- t$ C5 ^9 y1 I) d
nHour--;5 |+ G5 q; V r! w+ l1 ]' e3 ]0 m; }
if( nHour < 0 ) nHour = 0;# z$ ]- X: ]5 Q: @+ n
if( nHour > 23 ) nHour = 23;2 M0 K3 d, @5 n" w7 U, k1 h/ u6 I! y: z
; E" F$ k5 I- D+ ` Y! }4 T: x
//if( m_bFixedHour )
3 G z ]% r, \; u1 b+ J' U' ~ // nHour = m_nFixedHour, nMin = 0;
5 `! Z$ E# h/ U# `. e9 j/ Q LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
3 |$ M5 U, S+ o0 D8 C$ [ LIGHTCOLOR lightColor = m_k24Light[ nHour ];$ X I- _0 R: w4 h' ^% d
- e t4 O5 [, Z! Z2 n5 } //m_lightColor = lightColorPrv;
b& q# M- L4 O- @5 S" G( U lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
( J, O8 O- R! l) e* N1 C lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;) d8 w" Q$ ^! Z0 X K
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;/ P7 g3 u) t9 `
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 m; P; ~3 M# V7 j lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;0 z. [8 F, _# n: V0 s1 W& l5 x+ D
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;8 e3 t, |$ o* i9 B4 Q3 T
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)9 M% Z. q! c2 D4 J! v$ m: L9 x, _
8 H; A$ G4 X; Z: E9 P // à??μ oˉè* ) U. p4 ]5 y3 W6 Y6 @
pLight->Diffuse.r = lightColorPrv.r1;
6 d% ?# k. `6 J1 b/ f r) E pLight->Diffuse.g = lightColorPrv.g1;# b, v" ?- @ M- I& v
pLight->Diffuse.b = lightColorPrv.b1;
+ T( U/ J i1 W/ L; C7 a // oˉè* ??à?
T! |: |+ C9 m* ^. F. F3 m& I pLight->Specular.r = 1.0f;+ f0 h' {6 V3 {
pLight->Specular.g = 1.0f;
, B, A4 Y @7 h$ M" g! K: v3 G pLight->Specular.b = 1.0f;+ V5 Z" W+ _8 e1 r# D* Z: p
// àü?? oˉè* $ P' M8 {; w) W9 Y; T5 _
pLight->Ambient.r = lightColorPrv.r2;
- s$ o; G; {& p% y1 [; r) b, A" j pLight->Ambient.g = lightColorPrv.g2;
* a2 ]8 ?1 r5 |% X, U pLight->Ambient.b = lightColorPrv.b2;# X9 d" W" @1 e) F1 X0 D7 C
& L% m/ D. E" R( ^
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% n; o T6 e# V# b8 p
{8 _3 p% A* Q9 {6 {6 T6 Z# q
pLight->Diffuse.r *= 0.6f;
# d9 h1 B# v4 U; o pLight->Diffuse.g *= 0.6f;
: k4 Z2 W6 S9 g pLight->Diffuse.b *= 0.6f;
. s1 D, z, z& o g5 D$ x. j pLight->Ambient.r *= 0.7f;
; Q) Z# n5 A4 }$ L: J5 i4 Z, ^6 \ pLight->Ambient.g *= 0.7f;
+ s7 R; b+ R, a! ^* K pLight->Ambient.b *= 0.7f;
. Z1 X. b: `. s }
' b# ?0 c+ u8 H; e0 @
" a$ y3 `9 A" K/ f& p& r* Q" I#if __VER >= 15 // __BS_CHANGING_ENVIR1 l& [) \% q- p( E7 W
if( g_pPlayer )" B1 f* x( v" t8 D; B! M
HookUpdateLight( pLight ); 4 E% d, y) W B
#endif
# n9 b1 t$ L$ N, m8 r/ d% g7 a# y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );/ r* H: @$ I- ]: c7 |+ N i. @
$ G9 U9 I# a' U+ Z9 u#ifdef __YENV! N5 Z/ ^$ |$ W9 \1 ]
pLight->Diffuse.r *= 1.1f;
) b6 P8 m0 Z( `% g) x pLight->Diffuse.g *= 1.1f;: T- @* b) w. q$ R
pLight->Diffuse.b *= 1.1f; n) L/ U8 v7 V( D4 w
// oˉè* ??à?
- h5 ~. D0 [2 { pLight->Specular.r = 2.0f;
$ ~5 H: [) x8 b pLight->Specular.g = 2.0f;
* c' ]' g8 S' q- S! W; C pLight->Specular.b = 2.0f;: A" \; I9 i. n6 y1 u- A
// á?oˉ
- `- H* t) g+ h pLight->Ambient.r *= 1.0f;
. M" O- v7 i$ }4 H pLight->Ambient.g *= 1.0f;
: ^6 z4 r2 |& s [. {7 B, o pLight->Ambient.b *= 1.0f;1 }. a( a6 x+ y% s- ^+ Y; W
#else //__YENV
, r. J8 T# @4 b( p: I5 r pLight->Diffuse.r *= 1.1f;5 _7 W. Y* V0 `/ T: k
pLight->Diffuse.g *= 1.1f;
2 R, O# g$ o8 F# s4 H1 A pLight->Diffuse.b *= 1.1f;2 _9 R- ] k* w( u* ~% S
// oˉè* ??à? 7 B1 T$ @6 ^( [% e! g
pLight->Specular.r = 2.0f;! w2 C8 s( F$ ?* S2 c O. ^
pLight->Specular.g = 2.0f;0 p5 Q% ~7 u5 b* E
pLight->Specular.b = 2.0f;/ O6 h4 o' `' i4 d( h3 g
// á?oˉ : l; F8 t* O5 a, d9 J
pLight->Ambient.r *= 0.9f;
+ u0 D$ c+ h2 X7 k pLight->Ambient.g *= 0.9f;
& o5 T6 Z$ V5 u D: r% u pLight->Ambient.b *= 0.9f;' A2 C h' y, l2 m4 J& F5 i0 ]5 ?
#endif //__YENV 0 K$ B3 ~1 o* l7 Q7 [* I4 n' y7 K
( | J) O5 C$ G7 l- |7 ?; s* x" e: q
memcpy( &m_light, pLight, sizeof( m_light ) );
9 u3 T! J' X; Y) g 5 Z) z; O5 p+ R1 s" F! m
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
/ \1 f" a7 o4 y" B/ t% J. U) L D3DXMATRIX matTemp;. N p/ q/ K+ O' P5 Z# k! Z/ g1 D
static const float CONS_VAL = 3.1415926f / 180.f;
: o, Q3 ?1 g% T4 Q; |# W3 b
4 X; o2 \; i7 N( {9 q8 o D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
+ p0 J1 {& ]) F4 h: f: Z# I D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);/ |% x0 O' E+ L- X$ j( D4 W8 @7 l
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 4 m+ u* T ]0 A; i
pLight->Appear( m_pd3dDevice, TRUE );0 c7 y, _3 d% k" |5 u, K; [2 O. D
^" [& a( l' G5 s
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
1 E2 b: c- I6 ~0 F // D3DXVec3Normalize(&(vecSun),&(vecSun));$ ^& d9 m- j1 M n d
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 V" \0 |5 A. c! f" p
' a9 A1 z( \# I5 R, E- T- m6 H
DWORD dwR, dwG, dwB;% f/ L: _. m$ q4 f* y# A! M
dwR = (DWORD)( pLight->Ambient.r * 255 );7 |5 ~; G; l4 y
dwG = (DWORD)( pLight->Ambient.g * 255 );0 o1 U$ p1 }4 R) H) ^* \, t: z# @3 G
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ n, Z/ n( o% S0 a dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 0 H3 b/ ~( N i9 r) U: Q9 E1 _, T1 i
}) u: q/ f0 H; o- F, V+ @, Z$ ^# S
}
/ f$ b5 y$ b" ]5 n( |! F$ T. T
2 Z K) L1 f$ A: N% P V m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );2 z9 Y* i) F% V5 D) Y2 V
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) ); v+ t( N& C/ @) Y" E" X
::SetLight( bLight );
% G k2 H4 h. F7 c9 d) r- S- X0 h7 v' v3 N; p5 `
// ±ao? ?D?í???ó á¤à? ]6 }# j4 l2 m# `8 c4 _
m_pd3dDevice->SetMaterial( &m_baseMaterial );5 p- P; V$ m! E q9 K# D# f& j
0 q4 M, I# e$ ~8 g7 @$ a7 ~#endif // not WORLDSERVER
: Z# t/ J% f' U1 @. }! M}8 f6 M6 U6 |1 w$ q0 m
并更换
5 b* O: ~: G3 {Code:
, B: T3 w; b3 d( ~9 L0 I% b__FLYFF_INITPAGE_EXT
+ k! k! `6 I* r) V; ^9 t m定义9 e$ |+ V D) z" v* V+ A2 r
' M& D; _! V$ G
+ y7 F* G0 f# x! _& p8 j6 X
: @& a- J$ ^# H: m3 }$ X1 p
, B8 }0 f' b! E3 [# U现在终于删除我的狗屁加速..." `$ t6 F3 \3 l: q: O6 U
. ?1 z0 v' o4 `0 h, d
% ?& ?6 Z6 X3 k# n5 y) H2 r, l" P$ V, C
|
|