|
食品车: n& R0 S( R* X: N6 E
尾翼:% p2 U7 e( ^, g' S+ I
! E/ ~% b3 G0 m: h& f
代码:- d) m$ R" s; ^. G2 ~& \" _
CWndAutoFood::CWndAutoFood()
$ Q8 ]* Z6 }7 T% W& |{: t) V6 d7 ?- }
m_pItemElem = NULL;
* \! x7 ? r9 [4 [ m_pTexture = NULL;# Y9 o/ E* X9 T
bStart = FALSE;7 C+ U) j4 A! ]- i! q# q h+ p
}
, A6 }7 ]6 J# a8 r" A0 R E9 b2 C- I8 z; Q
CWndAutoFood::~CWndAutoFood(); H8 H* \1 _. b5 f# K
{9 f; G( g* A4 i3 C; e
AfxMessageBox( "AutoFood ist gestorben " );
, G, e K( ?0 b$ a7 H* e- G* |}& s& a& w& O" P
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
6 \/ {3 x8 M+ D) H$ D{
2 j4 o e4 V+ j5 v6 j9 u return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );5 J3 ?# [* J- G$ N V5 Y
}7 e1 k" j/ A: [0 M! \
/ h$ c2 D+ k- S& c2 ~' X9 ]BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
5 S# i9 I- \4 F: q8 L- W( L{
`# W7 J8 q# X6 `. p6 s0 L- b, z LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ T* g* A/ I) R# ?, i+ N# o
CRect rect = pWndCtrl->rect;# l: z& t4 Q( s
if( rect && rect.PtInRect( point ) )3 u2 y' t+ w5 y: a/ n
{+ ^4 u% S: D% h9 G
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
* W0 j) ~ E6 D9 i7 v0 r# w if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )+ b. n1 v' M6 C% j2 w4 `. Q- F
{
% j' o! _7 \. N2 K/ D" `! ` if( m_pItemElem )2 K }7 q! H: @7 i! _ }5 b
{
, N9 L N! f; K" x m_pItemElem = NULL;
* L4 w4 F: I2 i- I }
$ f; I+ U6 ]; i8 H6 Y/ g m_pItemElem = pItemElem;! H) K+ c, w! A+ b
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 h8 o6 X! E- V# n }else{
; E( u0 j, i& W6 y# [2 ^ SetForbid( TRUE );
$ p' f0 }/ Y- [ }5 P+ k2 d. i% E3 O$ `2 z; S
}else{
3 m5 e$ Z2 r) {, J$ C SetForbid( TRUE );+ q r! g- D2 K1 D, T2 V# J
}% l3 {. f0 l1 [3 h2 [* a& E! F
return TRUE;1 i* P# D. u3 u
}) s4 `) G4 I% H* x* ~
( z8 g0 B/ f9 x, o. G6 Z# ~9 I0 ~BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); A* Y- Z6 }' h/ b; O
{/ V9 i# ~4 y: n
switch( nID )% G1 R3 r$ ~7 s. c- G. A& B
{0 |% t3 g0 J* Y+ H' p, X
case WIDC_BUTTON3:" I& E5 b0 c& O& w% J3 r# Y5 s
{* k# Q# N4 I4 g
bStart = TRUE;' s5 S1 m# l N# \ `' ^. q
break;
2 \# j% s! e5 l( @ }
& [" @. n& D, e0 S$ Z/ ? case WIDC_BUTTON4:
' M- e! G! ]9 K z6 A0 A {& U3 W) b# N9 L$ J4 L( N3 x
bStart = FALSE;+ L& p% Y' f( k! d7 ^% v
break;
8 O' f5 H( K$ e7 j% F" } }1 U! F4 [+ ]7 F4 C& ?) S! u
}: g: |( a3 V. @0 t7 A* M
return CWndNeuz::OnChildNotify( message, nID, pLResult ); P$ J5 ~! T7 \0 L5 z. q" v
} 7 y/ M, x2 y( B
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
, @. l, L" a; D6 r; I3 T0 `- c{
" p% z4 x; j; R p! D# X8 H CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
, Q, M: H* S8 K8 m if( bStart || !m_pItemElem )% u0 E& O- {$ {( f# j6 l
{
& g! q$ ^7 d- ` pBtn->EnableWindow( FALSE );
7 O- P- C2 u, n$ N }else
' g9 t- C: {5 ?) s pBtn->EnableWindow( TRUE );
a# W# B( m+ x& K. O& g if( m_pTexture )" @, p2 h% l9 H( P" v. A
{
5 M7 x6 Q5 x( `, n' c LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 p& _1 y0 V2 L- w! p& @; r if( wndCtrl && wndCtrl->rect )9 {; u, U, F3 E: Z; ~5 H- D
{: M4 h* b8 a1 B% a" s
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
- n. o# f1 g( e6 z0 U }- `8 |& N; U+ b0 c2 i2 D5 k
}- }; h, e i* `; x$ L& j& J7 k
}" \. E2 M" `& C' c7 |/ S3 E
% }; z: {$ v; h* \# ~1 o. cBOOL CWndAutoFood:rocess()
3 `' d9 }3 c( ~6 O8 G- s1 L{9 t- j8 I2 k; ~" m6 v; F% N( }, Z" y
if( bStart )
: b+ ^3 d9 z8 J& e {
$ U/ D; s4 ?7 V7 O8 D# ~ L- m if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )/ J5 Y0 J) k8 r6 Q- z
{
* J5 g o! F. E6 i: h if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
8 i, c" n7 L7 g5 v- G4 g7 E g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );4 ~4 C" X& P+ D, H0 |/ A, f8 h
}else{: {$ O, q" R# ?$ R' d
bStart = FALSE;0 f. P* I7 y) U) R2 U
m_pItemElem = NULL;
" o- {! N$ t& p9 C }
. v( K2 Z+ [! N1 {" s: _6 O }8 V5 |% w, x4 D4 Q
return TRUE;# y8 X- U0 N; E8 @' I& _
}2 W8 }& _; `" e
% d* G, x W7 N3 V' w1 ]& @
登录视频废话:
- B3 q% `* o9 j" |$ j7 T$ o尾翼:& g" Z. m0 f& ~) g* |
- v1 u+ ]6 U! v
代码:
9 Z+ A) l$ [$ u' b# p" d
4 o% q7 @& _& G9 V9 ]: i% a- ?void CWorld::SetLight( BOOL bLight )
6 ^" J8 E+ ~$ Q0 E: X8 C$ ?. qdurch$ g) H1 I$ i/ d& ^4 s' }( Q/ `- o# o
Code:
I* K' z) E2 Fvoid CWorld::SetLight( BOOL bLight )7 s1 z; X2 _' j, P3 T. P
{
u0 f9 n" a7 @+ L //ACE("SetLight %d \n", bLight);
/ u" f' ^* O$ ~% z) `9 { ( K9 x7 c" B6 _& O( X1 W8 J; V( T
#ifndef __WORLDSERVER
+ t* s' U' [: x R3 p) r DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);& ~0 `; t3 L y6 x
CLight* pLight = NULL;
2 U( [ o# Z6 r# I& c2 x& g: m+ Q7 y, s# N3 ]4 |6 \; }- J
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
( n: i K% G* K, e U2 r' a6 d, ?
: n4 v- H. G3 Y) D- T/ E; d pLight = GetLight( "direction" );
j$ I# G! g& g. P/ t# P/ Y
, |' O, A/ P6 _" m, _/ U#if __VER >= 15 // __BS_CHANGING_ENVIR4 m5 E2 o2 q9 X. G- a+ H$ f2 J
if( g_pPlayer ){
3 k5 I" R P7 C6 ^; }4 k ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );; G; Y& \8 y+ l+ ^
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
: K& H5 y( i9 g6 T5 c, {8 L0 m' ^1 E {& V0 a' c' M3 u, C3 t+ C
if( pLight )
: r$ J3 y' N2 M8 M7 u {6 r' S9 L1 ? Q$ l) S/ p: d2 Q# N8 Y- ]
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];* ], b' w! F p" z( [4 D; k
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
' `& h2 t2 D+ p, Z pLight->Ambient.b = pInfo->_fAmbient[ 2 ];4 F% E0 B2 u+ l( @: i {4 y
1 ]- x3 q% J8 a- l b
pLight->Specular.r = 2.0f;
@, C8 ^, f& ?% Q pLight->Specular.g = 2.0f;
% E# D# J" |3 J' M H3 k; U pLight->Specular.b = 2.0f;* F7 ]/ A% e ~2 F
6 B4 b7 P2 p: J: S( }2 ~- z& h
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];* \9 U0 r+ y0 P4 \6 r
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
8 g! S/ L' i4 \0 P* R: z# l6 v+ k pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];& a. R; w) M) n0 P. W& a- t
; b- K2 J1 f Y; R HookUpdateLight( pLight ); F ~+ m% ~9 w+ `" ?- u
* k, o m7 l' b7 m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 P/ s1 I5 Y/ R; s2 \, k2 ^
4 ]# }' m. u- Z pLight->Diffuse.r *= 1.2f;* Y4 M9 C2 W, ^8 x& E0 V- g$ e
pLight->Diffuse.g *= 1.2f;
) T: W: D) y9 P, J8 z5 v pLight->Diffuse.b *= 1.2f;
/ j5 w' S9 p6 \) W( \$ k- j9 H- Q# U% v0 w
pLight->Ambient.r *= 0.8f;
9 q" t1 G X$ A9 X. ^5 i- n pLight->Ambient.g *= 0.8f;
/ _$ I* `+ ?3 K' `+ R9 D pLight->Ambient.b *= 0.8f;
" \2 h! p: F- w , N& ?0 M p6 Q- D! K
memcpy( &m_light, pLight, sizeof( m_light ) );
' {' w, E; @) Z; z" M1 @) _8 _* H7 H0 }' M- F! F( P
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ X8 @1 s7 M v- R
D3DXVec3Normalize(&(vecSun),&(vecSun));
) S; R9 ^2 W" a% Z$ h& v pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , Q2 m$ }& _" T" ?9 J" A5 p# }
pLight->Appear( m_pd3dDevice, TRUE );3 [7 q+ {3 ~3 a6 \5 s
( ] }: g* {4 d
DWORD dwR, dwG, dwB;
( ?3 f' ?/ k+ [$ e dwR = (DWORD)( pLight->Ambient.r * 255 );) v0 I9 \) v* I. j
dwG = (DWORD)( pLight->Ambient.g * 255 );8 \0 E, G: T4 h: q4 T
dwB = (DWORD)( pLight->Ambient.b * 255 );, v! y. v0 q2 X7 |; {( T Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 g2 r2 H# n: a q- w' c }6 b7 M6 m* a& {/ w# Y, ^. q
}. H) _5 Z! `2 A( X
}
* H: M) |! |# S. {0 N5 t else7 U- @2 }5 I; x) V G
#endif
/ `" O0 Y3 ~6 i1 h: Y U# G- c1 |$ J( `4 f4 E* E
if( m_bIsIndoor )
; g) h3 J1 o3 t( z2 H { a" F0 k% b+ ^5 s v
if( pLight )
* @8 m9 L6 [' E8 o0 \ {
7 ^' s0 b9 ~ y$ \# j ?# S* S // à??μ oˉè*
% F6 Q* M* k8 y9 k4 | pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;) _4 B. u: d$ H( ` b8 P
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;4 |1 J2 c9 u9 Z- o0 @! y
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;. x! b- v' E, a$ j, s9 ?
: l1 B5 O1 `, C. B+ J
// oˉè* ??à?
, E0 Y$ ?+ o) b3 ? pLight->Specular.r = 1.0f;" K& t: \ ]/ c/ ~4 K
pLight->Specular.g = 1.0f;4 {$ L% ]$ N1 y3 N- g
pLight->Specular.b = 1.0f;
$ R) o& ?8 E0 w/ I9 \ // àü?? oˉè* * I+ Q9 a: Z9 Z, T# L
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
# z! \$ @! w$ H: m5 l- m$ Z pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;5 M2 D4 t& q1 J9 C# g- U
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;; ]' _$ x' ]) G/ C( X
$ i# L% G7 S2 r+ Q3 Z, q( w1 @1 |/ b
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., ]2 s& ?" X/ S; N- H
{
8 Y% [+ N+ x; ]1 l pLight->Diffuse.r *= 0.6f;3 {0 E2 @2 z( Q. m: d8 G
pLight->Diffuse.g *= 0.6f;% m G! M' `5 H, c4 T
pLight->Diffuse.b *= 0.6f;
/ j @! z3 j- m g1 ^; { pLight->Ambient.r *= 0.7f;
1 W" v. F) ~( m) } pLight->Ambient.g *= 0.7f;
0 k7 H8 d5 U9 a pLight->Ambient.b *= 0.7f;7 a; t0 C) r% S. M' y) t
}+ J; \4 ~2 {6 C; }
$ w E7 e( D: {- m; g1 a
#if __VER >= 15 // __BS_CHANGING_ENVIR; Y+ D& n( o+ S( e5 M7 v/ r
if( g_pPlayer )
( D) R7 w$ z9 p0 _2 Z+ A HookUpdateLight( pLight );
( s1 t/ }; ^2 t9 L6 y$ m#endif
3 n4 A$ }$ I$ W0 l' C memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; c" z, M! T% J) K
# C. I; Q2 O# I o. h
pLight->Diffuse.r += 0.1f;
, j/ _$ D0 x j9 x% f pLight->Diffuse.g += 0.1f;
( a, L: b% M1 R* `7 l pLight->Diffuse.b += 0.1f;
3 D( M) J- ` d7 l& B // oˉè* ??à?
# A* A8 I5 Z: Z/ E4 N pLight->Specular.r = 2.0f;
5 h) |) d+ c; c. K1 p pLight->Specular.g = 2.0f;0 \8 D9 Q$ _: s
pLight->Specular.b = 2.0f;
5 p% L8 a' R2 G9 u1 f% I7 t7 i& v; J // á?oˉ
/ e" }" w/ L6 C pLight->Ambient.r *= 0.9f;
7 a5 W7 _. r$ Z- n5 g: r pLight->Ambient.g *= 0.9f;
2 k: R! t( d; B8 j pLight->Ambient.b *= 0.9f;, P! g8 m- [" g* B& m7 `5 z: B/ L
3 h b) n' r0 z3 B memcpy( &m_light, pLight, sizeof( m_light ) );! j4 Z/ j) F) q( d4 s5 m6 r
6 l/ \: x- ^# L: P# E \: E0 v! \3 v
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );( _8 R, f: W. I7 m% U. M
pLight->Appear( m_pd3dDevice, TRUE ); m0 |/ m3 ~; ^3 T- K# D
1 P, s1 V: E* A/ c DWORD dwR, dwG, dwB;
2 r, S: O. g9 ]9 P" T) s {- e+ Y dwR = (DWORD)( pLight->Ambient.r * 255 );7 u3 E/ ~2 m" [
dwG = (DWORD)( pLight->Ambient.g * 255 );
/ t- ~& ^, |0 R3 Z- F% Z9 F dwB = (DWORD)( pLight->Ambient.b * 255 );
. S3 P9 v; J$ i8 q9 J dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 m0 [' A6 k+ S }
% z9 A6 e# [1 P( K B/ K! J/ \6 [ }
. k# S5 ~# W. X else9 \; l' }; N4 Q: f2 r
{5 N' Q# t, H+ `5 [, R
if( pLight )
# p0 V" J+ @, \" l5 D0 q& t- D {
6 X7 `/ A8 A; b7 h" W
4 Z& G; \9 s. C- P4 ] int nHour = 8, nMin = 0;* i" j0 Q; a7 A; ?% z
#ifdef __CLIENT7 S% { ~; O8 H
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. - ~% T4 Z0 R9 r0 _7 j* W
nHour = g_GameTimer.m_nHour;" v- N$ ~1 w/ I, x% _8 }
nMin = g_GameTimer.m_nMin ;' Y, l( u3 g$ T3 F" C0 Y( e
#else
: v! a; N" f' o" O" U1 D // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
+ |+ Z. ?5 _" x5 F if( m_nLightType == 1 )# U% M2 t* U0 O t" Y6 t
nHour = m_nLightHour;) X' z R6 F% b, G$ l
#endif( N8 I; v6 P2 C" F
nHour--;
8 `3 g8 M1 R0 v4 O/ n' z3 l6 y: n if( nHour < 0 ) nHour = 0;
- N/ t4 |1 t1 J2 s& m7 v$ r4 {! A if( nHour > 23 ) nHour = 23;
0 D4 N* R! W B& N' ?0 G6 k0 Y2 |$ i2 s7 |6 Q+ o
//if( m_bFixedHour )
i7 {; b* l& ?# u4 _ // nHour = m_nFixedHour, nMin = 0;. x9 Y1 x* e+ U2 K4 ?5 r8 M/ |
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
2 p+ E( f x o* u. w# l LIGHTCOLOR lightColor = m_k24Light[ nHour ];
# J! o" C: I: i) Y0 {" [8 E
& i- {9 s* ]! u" q //m_lightColor = lightColorPrv;
|* y# f2 U" Q6 j lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 |* }: @0 l2 w* I. p& s. |% O lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
' o, _( l7 H; L6 O+ q' l lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
' @1 L0 e% i1 [3 ` lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;3 R* d* b: b5 f
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
; `! v5 e2 c+ I. l9 o! V lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;. z, P& K9 J2 x& f
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
) b, f' P' S/ n+ p/ u2 {
, G9 _' i' ?+ f9 J, w8 D2 n7 Z // à??μ oˉè* Z5 P! z3 B. [! Q6 c
pLight->Diffuse.r = lightColorPrv.r1;9 D \0 t/ f3 [3 L2 ]+ w" n% R
pLight->Diffuse.g = lightColorPrv.g1;
( K; ^" y4 x; B8 Q. U1 F9 |9 f pLight->Diffuse.b = lightColorPrv.b1;
2 ~& l7 D: c( C+ l! j( @% R // oˉè* ??à?
, m$ f5 a5 n) U7 X1 @" _ h pLight->Specular.r = 1.0f;0 C% c5 [& s& _+ a) e, r; W) G
pLight->Specular.g = 1.0f;
0 N4 |/ x7 v8 n, w" q pLight->Specular.b = 1.0f;
9 j0 l9 v9 `( V- N // àü?? oˉè* ! E4 b; U7 x6 x f+ _* R4 }$ e
pLight->Ambient.r = lightColorPrv.r2;! x+ h9 ^8 X$ y" I/ H
pLight->Ambient.g = lightColorPrv.g2;
6 `0 x% Y- X: r c, j pLight->Ambient.b = lightColorPrv.b2;$ V: Q1 S! l. N# P2 l3 V4 E
( _/ w$ ?) M! Y: x0 P7 O8 `
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 ^# m7 B: q0 L) T {. u' H' g+ c6 k
pLight->Diffuse.r *= 0.6f;1 c8 q: H) i. t) ]# s
pLight->Diffuse.g *= 0.6f;) B- b3 n* k# H& \* W5 Z
pLight->Diffuse.b *= 0.6f;
" m1 P5 b3 O9 H, z a0 l/ ] pLight->Ambient.r *= 0.7f;
% b m5 o( _, U4 n pLight->Ambient.g *= 0.7f;) t4 D; w2 s b: U) K, s" p
pLight->Ambient.b *= 0.7f;
% }- u5 D8 c; v7 ^ Z }4 L/ d }, V9 r* }( Q5 c7 [) ]
7 v5 h* R' V% n. C
#if __VER >= 15 // __BS_CHANGING_ENVIR
( R: R; d. x6 Z' e2 I) r if( g_pPlayer )
" q% ^' _) }6 k/ n HookUpdateLight( pLight );
9 [) ^1 I* j+ L' [#endif
) |, g0 R& Y% L& ~: b9 U2 G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. I+ E9 C# a! n. r- \2 [2 B
% l; n1 f6 w4 Q7 i* \#ifdef __YENV+ ]7 i4 a3 N2 L% s/ ]6 f
pLight->Diffuse.r *= 1.1f;' ~8 E0 t$ Q3 _6 t
pLight->Diffuse.g *= 1.1f;) V* V$ V8 _& f/ h' T/ u
pLight->Diffuse.b *= 1.1f;: n/ V* |( @# N0 I6 P2 O
// oˉè* ??à? ' e; O I; G3 s7 P: I3 S% C
pLight->Specular.r = 2.0f;
# O, n/ P2 N% H7 n5 }6 A+ c2 u; C pLight->Specular.g = 2.0f; t: r( g6 r w6 O# M! C) [
pLight->Specular.b = 2.0f;- f8 z! _' _) P8 i& Y0 f- s2 D
// á?oˉ 5 U% e, D) \% i, N" N1 F
pLight->Ambient.r *= 1.0f;
9 V. F Z7 @" ?+ p pLight->Ambient.g *= 1.0f;
7 A a) c" ^ d: T: ~4 F pLight->Ambient.b *= 1.0f;+ q8 t3 W$ g$ B2 K% W9 R; S
#else //__YENV
0 @" b3 ^% w6 u& C2 O! L pLight->Diffuse.r *= 1.1f;" y, V5 J' U9 X( j
pLight->Diffuse.g *= 1.1f;
7 Q- q% P' j+ ~0 x: O! u) I pLight->Diffuse.b *= 1.1f;* t% s/ }+ j+ [* c
// oˉè* ??à?
# |6 w: Y5 q j! t$ e" D pLight->Specular.r = 2.0f;5 }. Z0 B2 T6 G+ I6 q
pLight->Specular.g = 2.0f;9 D! F' j* u3 U2 v N1 M0 B
pLight->Specular.b = 2.0f; q0 [( j( u- h; E: E
// á?oˉ ' I& ~5 k* W, \
pLight->Ambient.r *= 0.9f;* }( l8 q6 f `
pLight->Ambient.g *= 0.9f;1 o; L- | r' X
pLight->Ambient.b *= 0.9f;
1 o$ g- ^4 d) U2 z#endif //__YENV
9 m, Q# j2 `& d2 S" X) a8 e ( A5 b6 x$ i1 Z6 Z s) C3 i/ R3 P
memcpy( &m_light, pLight, sizeof( m_light ) );
, A/ ?' h! C, M. G- u : I9 o4 a4 m0 s% `/ d' [0 ~% T
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
4 g, N& E E- [- p6 u6 ^ D3DXMATRIX matTemp;
3 v: R5 R- n+ ], | static const float CONS_VAL = 3.1415926f / 180.f;2 o4 {4 U, j4 f! M. c
, N4 b, i* K3 ~4 o8 b
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
/ M" Y3 L/ V$ F# L3 r D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);% q3 T o9 c6 }: }! o$ H1 s" a
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
3 {+ m# K+ E( f pLight->Appear( m_pd3dDevice, TRUE );
' W1 @+ n+ W3 @6 R0 n3 Q4 b% ^! c3 ]! @: C6 I
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 ^+ F3 h" ]' m/ ~ // D3DXVec3Normalize(&(vecSun),&(vecSun));7 H* ^8 l% v5 U! {) V' Q; c/ l
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
& U7 F/ {# j7 R
! B; f T1 P' \! x6 K- r DWORD dwR, dwG, dwB;" \! T& k4 L: G9 [
dwR = (DWORD)( pLight->Ambient.r * 255 );$ V1 k- f# j# X! m* T$ G
dwG = (DWORD)( pLight->Ambient.g * 255 );
- B) w5 s- [8 t dwB = (DWORD)( pLight->Ambient.b * 255 );9 l, c: w, g6 q* o; Q# M9 T% H
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ e6 Y* R% ]3 T+ @9 \- E1 ~6 c }) U# u" W( P/ O" B$ o: d/ j/ p8 @$ J
}3 [+ J3 r2 P2 M* a; u0 M, A1 y/ C
8 v& _9 H0 ^ A% m- ~ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );. |" t( _; f$ f. I R7 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) );
; L) g! F! O( n ::SetLight( bLight );0 Y2 t0 n8 K" y! v
) _- ^ i, U$ ^' i9 U // ±ao? ?D?í???ó á¤à? . E/ n3 m# ]( A5 ^3 B1 s5 J
m_pd3dDevice->SetMaterial( &m_baseMaterial );0 x1 j% j ^/ [# \& {: l
. O; P" P- q* W
#endif // not WORLDSERVER
" ^. H5 y$ S7 T+ J; X! ?$ o}6 l* L# n5 ^% b8 D
并更换9 T/ A0 e2 |( n8 p) m( N
Code:
& T) z1 P8 ^& |1 c& H) U__FLYFF_INITPAGE_EXT
/ K' u& A2 ~: [) U c定义7 Y3 Y7 f% N' o6 {7 f+ g5 P- u5 ]
4 K3 S F J0 H- q# @% _) _5 ~* o7 {1 p2 J! K
7 [0 @! ~, ?/ l: N% j2 E# t% g& b8 ?" O, G9 a+ n
现在终于删除我的狗屁加速...; i4 H. @2 ?) W, e6 O+ y2 ?
3 L4 C8 N1 }) t( H- b7 B+ F" y+ n- c, d5 y) M9 T1 O6 v
& C* P! i# o4 A4 t5 ? |
|