|
|
食品车:
9 c% W( @& _6 h5 U. ?* c. ]尾翼:+ ^; d q l( m7 j
8 q! A, e+ Q) ]% f代码:2 I2 ~0 {! q2 i) R: G, S
CWndAutoFood::CWndAutoFood()# L# p. O/ [( k% x
{+ P( w7 }+ v( E$ D& Y0 E
m_pItemElem = NULL;
Q9 S+ v8 V' `! L, d" ? m_pTexture = NULL;
- z9 N4 O6 ~' z, t% h! o: x9 S0 t8 Y bStart = FALSE;
2 L# X: D( D, h1 D}
% b1 U5 O1 i8 \
* D; D# _0 W! [* u8 j) GCWndAutoFood::~CWndAutoFood()2 ~. W: x" j0 J. l8 Z
{; h6 \! [8 M! D
AfxMessageBox( "AutoFood ist gestorben " );
8 m5 e' s% r6 k/ w S3 R K}( b, y8 e* n* h! `
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
/ y7 ^, ?& A) `0 u1 k1 E0 Y{. `& O: Y' t8 H$ f# ]4 T, s
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
4 R: W0 o6 n( X$ J1 B6 S; }% K& g7 J}
$ R% \( G* c. @1 D2 W( u$ `: j
4 Z- E4 \ Y/ {4 ~$ v0 j0 cBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )+ R# r7 ]9 t# i8 B
{/ G% X2 ]8 d- y* V; E" c$ ~+ r
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
W# U; G1 o# Q# | CRect rect = pWndCtrl->rect;' L9 S6 L; V. ]+ @
if( rect && rect.PtInRect( point ) )
' {5 a5 k" t8 z R {
) w. v* E' k( X, h, |0 N; l; K CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );& [& k0 j. D d& v. c/ U9 N3 W
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
& J; S- _7 J/ J5 B {
& l% _5 j2 D) I6 L if( m_pItemElem )
6 V" W4 ^ |1 @# {0 G' } {
3 _3 Q3 T0 P' I+ y% M m_pItemElem = NULL;
' @+ q4 L& t' d/ \8 K5 T' F$ w1 v* C }
. ?, N* l) I1 `1 a6 B& j5 V. d- `# V m_pItemElem = pItemElem;6 a2 g0 I" ], L. u1 o
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );5 m2 _! z% a k! `. z+ H; W& F
}else{! O w" V! p/ ?- n
SetForbid( TRUE );
0 d* x5 O# M S1 W) p }
/ ]# }8 W \! G0 X, Q$ W }else{
: H2 S9 n8 p6 Q7 E8 d1 @) G SetForbid( TRUE );) a+ b9 f# D1 Q* V+ S4 V' s+ e
}
# T, D; c1 o& g2 J3 S return TRUE;
# D! {9 O& @9 N B3 y7 n5 n# N}3 N+ |. T0 ~* y& t& `. B
( C& w# v# y) ?1 W: D4 Z+ V4 V5 c. E9 y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )$ J# d0 N. A4 x1 j$ l+ F: b
{& h# k+ Q# x3 x' g2 f' A
switch( nID )0 C3 ` v4 |2 k; r
{0 A$ D) C) ^8 l# ?3 K
case WIDC_BUTTON3:
* u4 Z+ t+ L7 v8 s) k1 m, E {
# Z6 D9 ]' @2 g( ] bStart = TRUE;
, A0 ?3 H+ `! T: D5 g. l) X+ ^/ I9 ~ break;, c/ y. I# v" s* \: l! g3 H
}/ ]/ j; m4 t$ I2 ^
case WIDC_BUTTON4:
! u, i) \/ w }1 } {
5 T+ D, u$ t* O bStart = FALSE;
+ Q$ G R0 ?# U8 }7 E2 i' S break;
" l$ i2 r, Q- `; A# g+ r }2 l. k" b) J/ b% t$ e6 r! D
}
; V n4 r8 n' H0 N0 W5 z& p! S return CWndNeuz::OnChildNotify( message, nID, pLResult );" \ m6 s/ e- @
}
J5 ^: b+ Z& T# ^- c- tvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
. W! @, y( R+ {, o% M4 G! e% K& E{ w z) ]& j# R
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );! B6 h5 c- k! F! M
if( bStart || !m_pItemElem )) D! }7 u4 e- N+ D- s+ m* y
{
. z9 o f* E$ u pBtn->EnableWindow( FALSE );" q' ^ Z9 q* S1 } ?
}else+ [0 G' T% P. ]
pBtn->EnableWindow( TRUE );! M( J5 C F" \+ o4 S& w% i7 p
if( m_pTexture ). v0 @& b' c+ K1 b" w/ [4 {4 k* a
{$ f) O$ i. _' |+ F) L( F
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );! G- T0 S; O5 m5 w! |! w: A
if( wndCtrl && wndCtrl->rect )3 N5 p1 K; J: L' F
{
6 [- U- T* A& d3 W, u m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
/ [! f t0 ]' ], w }% y! W) B2 K1 Q( M
}0 \% J. X A2 @) B) K# _
}
4 i; U5 K; Z* h, i% O* k2 A: N4 w$ _0 ~$ d- g
BOOL CWndAutoFood: rocess()& N( {) N( h. y: F$ Z$ z! {
{. i$ f9 A& c. V$ v: r
if( bStart )! ?" m+ F' Z- P5 @
{% }1 `7 Z# q, e( z
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
, H3 l' g* o0 k2 N {
7 C4 j' ~" h. |7 z4 V+ K# K if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )6 ]3 |9 n" \* X3 Y" u/ _
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
5 U) \9 H: ]! v4 g5 i }else{
& E) f+ ?2 ?- h; g7 Q, t6 x/ k bStart = FALSE;* s( Y( g* ~- W( s; j& i
m_pItemElem = NULL;
' c* S) G/ C* Y z1 _# ~2 ?; y4 {5 Y }
. Q6 _8 d6 r0 u" e4 J0 O6 l }) C' K! I: U: @2 q6 K
return TRUE;
8 }# M- S, n; s; H' T" j}
# n ]+ G% I2 p7 l* @' ?4 [: N4 `: x* H
登录视频废话:
" d6 k. r" p! a/ Z3 M; a7 c2 K3 b+ |6 N尾翼:
2 B) l) S. J% s& E: @" ?+ G d* F5 }7 z" o/ G3 N* Y/ R8 x, [8 _
代码:8 |9 ?8 ~2 M8 s
0 R3 B0 v8 P2 p8 A4 M
void CWorld::SetLight( BOOL bLight )5 c; N" r; C6 z- w3 e- O/ J
durch8 b5 G* c+ x! K( {, j
Code:
' N; k( L% x2 H- r8 _5 i0 l7 evoid CWorld::SetLight( BOOL bLight )
5 u8 |: `4 X# _& V{/ x" U; K+ N& P# s( e: `
//ACE("SetLight %d \n", bLight);
9 _( C. [6 m, h
' o( B6 U3 {( X- R a/ o( i#ifndef __WORLDSERVER 6 ~7 g: ]/ \ F8 h% p! c g, y# l
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
) T- O6 s. i& k. T% G" H9 D- |$ d CLight* pLight = NULL;
4 a7 P; |3 J7 M' ^; D j
) X9 Q3 W2 \* A E4 r% [# ^ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
9 R" ~/ R9 v' L4 ?+ I8 e7 \- T# Q& X- p6 Z' b! I. S* J
pLight = GetLight( "direction" );
7 y1 b' Z" K }0 n- D7 C7 @
8 n: L# S( s1 i( C* Z$ Y#if __VER >= 15 // __BS_CHANGING_ENVIR8 B% F0 l n* d) K# U
if( g_pPlayer ){
: v: y( Q9 `1 W5 q$ L ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );+ L2 o0 S$ ]$ U
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!0 A0 }1 Q0 ?% b. E6 l M- [& r
{
) q! g) Y: w& F) a if( pLight )
' d4 ^, ]/ D( F$ P {+ `- T6 H- W8 F- `
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
5 q8 Z- g) _# |& q+ T+ } pLight->Ambient.g = pInfo->_fAmbient[ 1 ];+ r2 j- h0 {4 `/ o- n
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( O' X0 x1 B0 W3 [8 G2 [. E5 B* d; q# [$ h; O( n
pLight->Specular.r = 2.0f;3 E* Y& S5 c: o6 l: K: M: `$ ]
pLight->Specular.g = 2.0f;: Q) d9 o. C/ U+ N" X( X% L; s: A
pLight->Specular.b = 2.0f;
. d- e1 S. `) \4 c. I& A
* S0 c+ k# z6 E* ~! i1 N" r pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];5 ^# ^6 \# r9 l; g( v2 |6 _, l4 Z8 l+ U
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
! e! g* M4 v# o pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
0 P- i3 t( Q7 d+ |$ I* w
8 O% j& x- a6 `8 c. a) Y HookUpdateLight( pLight );
8 R* |$ ?" R1 R5 v9 f
: k5 m8 N' E5 x( ]. m( H memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% i# q, g+ [, U4 M/ K
' A% w N# F1 v( `' A pLight->Diffuse.r *= 1.2f;3 e* g) i3 W3 t' b
pLight->Diffuse.g *= 1.2f;' n& e2 t& Q, V8 o0 c4 _" Q# r
pLight->Diffuse.b *= 1.2f;
8 ~3 l2 G8 f/ [4 D4 u. u# M( }6 c* Z5 f4 d2 R1 F9 n
pLight->Ambient.r *= 0.8f;
7 ?2 ^; P5 \0 D2 v pLight->Ambient.g *= 0.8f;; a( l' y% r9 O7 d6 F1 L
pLight->Ambient.b *= 0.8f;9 ^2 ?; ^* w4 m- g+ ^- c& \
2 e: J+ j8 i8 m1 G memcpy( &m_light, pLight, sizeof( m_light ) );
( k+ x2 q& [, S
* D! K T4 X5 ?' W- _ U H4 ~ D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 A5 ?5 u4 X! A$ j& O9 \% t
D3DXVec3Normalize(&(vecSun),&(vecSun));% B9 x9 {9 Y+ s8 |+ p- ^, ~5 d
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : X0 C s7 g( B4 K Z
pLight->Appear( m_pd3dDevice, TRUE );0 T/ V5 c: f. \9 d8 p! {
! A/ G% X. M. V2 i. g# _ DWORD dwR, dwG, dwB;) L w, K0 C! {: p4 Y. Y, y1 V
dwR = (DWORD)( pLight->Ambient.r * 255 );
, }3 L/ k8 d. ], n9 F: d dwG = (DWORD)( pLight->Ambient.g * 255 );/ Z; B& ^" Y, g9 y
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 f& j4 Y' Z; R R5 i T( d( m( L+ u dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( @" m9 g- C; C3 a }* w! C# F4 p: T( n2 K
}
8 L+ ]6 r% o2 H }
* H5 C( C. F* z; z/ g! N else
% v* q! u; I8 _ O3 d#endif
% b+ V4 { q/ P! O8 X- \8 p
+ U9 D; [' Q6 i# y* A& z0 b if( m_bIsIndoor )& S$ k; J. M- p8 o) j3 T& {
{( _% G, m* @$ E
if( pLight )1 E" T8 X5 [+ P) q$ g
{ : f8 P8 l+ T4 D1 x7 S+ y( Y5 G
// à??μ oˉè* ' Q7 A) x# c2 L
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;) x+ C L) ^; A! y5 E; y+ \) F
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
! Q3 D: N" K8 i6 _ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
( p. m+ R9 h; o' _% x
7 c3 r5 ?4 p! J4 T) H0 J // oˉè* ??à?
' h3 _' g" t( E* J. ]% R: g pLight->Specular.r = 1.0f;
) p n7 }# _/ q# B/ ~3 R$ ` pLight->Specular.g = 1.0f;
) r" g( Q2 W0 ] pLight->Specular.b = 1.0f;
/ ^2 x! L4 |$ N0 S/ [+ q // àü?? oˉè* : p3 b0 E! s8 y3 ~
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
~) t1 h& l. G/ U4 H/ a$ j pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;6 Z v6 L8 x. p5 j, S3 o5 Y+ ?/ H$ e
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 l. y u6 @. A3 F5 |+ v% Y! x; b* c6 I4 }7 s- R9 D
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
4 N) h& b p. I6 ]1 Y- J% M# L/ j! g {
8 l9 M$ d1 g- _6 d. x# }3 | pLight->Diffuse.r *= 0.6f;! t. y+ |( m0 ~
pLight->Diffuse.g *= 0.6f;
8 n! U2 ?8 D' w* V pLight->Diffuse.b *= 0.6f;# Z' x9 l* p& {; H, [
pLight->Ambient.r *= 0.7f; n* L+ j' }3 G" i
pLight->Ambient.g *= 0.7f;
! ?" }5 y' [, L( d pLight->Ambient.b *= 0.7f;
8 q$ S7 Q0 [2 c3 G3 i( N$ T }
* N' c$ H' r6 U$ J& ~7 o) c P2 N$ i# p0 p+ h
#if __VER >= 15 // __BS_CHANGING_ENVIR( ~6 Y; G/ f. d; ^; f
if( g_pPlayer )/ _! M# j$ ?0 x% W% V* G" b" V+ {
HookUpdateLight( pLight );0 e3 A6 l. `- ?3 M( @- J
#endif. z# L. |0 d% n0 S; ?
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! X+ B8 l2 n. |; @9 F _* Z& w t) n; c6 A2 z; ~7 L% J
pLight->Diffuse.r += 0.1f;
8 r8 q' v/ I0 H# F) } pLight->Diffuse.g += 0.1f;
2 t8 W _3 }1 L0 I% N3 b) \ pLight->Diffuse.b += 0.1f;3 J; y7 q4 I* [* E- c% O
// oˉè* ??à?
: V8 h5 P& `6 L: X* u pLight->Specular.r = 2.0f;3 D u9 }2 }3 v( o) e) Y f1 w9 ^
pLight->Specular.g = 2.0f;
# g% w$ q% Z$ N/ X, D( U+ ` pLight->Specular.b = 2.0f;
$ [; f7 d" g8 [- d; e5 i3 a // á?oˉ 2 K W" e2 n# y$ ?* q, u2 l
pLight->Ambient.r *= 0.9f;) V, H* w4 b7 X. E
pLight->Ambient.g *= 0.9f;3 }, m' p( L, e, s
pLight->Ambient.b *= 0.9f;
2 [) p( d$ h2 b' z5 r1 t/ z; G2 t+ p. X! R4 Z$ z$ E
memcpy( &m_light, pLight, sizeof( m_light ) );/ v( v# m7 o. g* g
9 C; M1 ?1 f" q5 L* Q pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );' i+ D; | P: j7 f8 |% z) M2 b" G
pLight->Appear( m_pd3dDevice, TRUE );
, i5 L# ^, @0 i$ S! t( _8 E 9 g1 v) a2 i* }3 j# h
DWORD dwR, dwG, dwB;
* V* [5 \# k2 c! ] dwR = (DWORD)( pLight->Ambient.r * 255 );
% H, _- R. I& i, G dwG = (DWORD)( pLight->Ambient.g * 255 );
; i6 ]7 [' w" o: p- j dwB = (DWORD)( pLight->Ambient.b * 255 ); ]: H- v( `4 o, r+ J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ G& w! n+ l0 r4 `5 d7 ^ }" ~$ |$ g1 m. k2 E9 O1 X
}1 x/ w7 k8 K' r
else# m1 z7 q5 J0 t% @8 e
{0 Y* b! T0 s! ~9 v7 `
if( pLight )
% M1 a/ N, E9 ?; {" q { t b& e8 a# l2 t2 N3 d2 h% x
. d/ l5 s. G P; q% R- p
int nHour = 8, nMin = 0;
( J) h8 o% d% W1 G, X #ifdef __CLIENT" p" D" o4 f# \) D! @+ x" s0 u/ _
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. . L3 n/ L. e% @1 ?6 }- U
nHour = g_GameTimer.m_nHour; M& @8 \, f( O
nMin = g_GameTimer.m_nMin ;+ }5 H) E2 r# y9 w- I, k3 Z
#else, c P* p% s" C% J7 d
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.4 i+ {' J4 r& u4 F' I( p. _. O- F
if( m_nLightType == 1 )% x+ v9 O3 r: o+ M3 O
nHour = m_nLightHour;
2 n5 V1 v9 E ?6 L3 b7 g% T #endif
0 `2 Z% a1 ~1 K' t5 i nHour--;5 \, g0 i9 |$ b
if( nHour < 0 ) nHour = 0;
/ n9 d! V" [+ u, n4 E4 M7 k if( nHour > 23 ) nHour = 23;
, U# F N# D' Y4 R. l4 y Y+ q) U( q
//if( m_bFixedHour ). R( t7 a* t: x9 [
// nHour = m_nFixedHour, nMin = 0;6 o, r) e1 @, I( d
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 ^! X. T: W. |) ]% `
LIGHTCOLOR lightColor = m_k24Light[ nHour ];/ H1 i4 r, c/ b8 Y$ E+ J4 m
; I3 W& j8 b; o' _5 O( G U
//m_lightColor = lightColorPrv;4 Q: r# n' @* G9 A
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
* `' x8 z0 g, M& f/ n7 o5 H5 ]8 y* |. Q lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;; x4 Y* c! l' V# D; s" d
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' j! t9 ` t6 t, d& y5 C. U
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- Y- Q) x' L6 h- |# N* R lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
" F$ O) F J! u+ W* s5 M lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;: I3 W+ V+ x" N. {6 _0 O4 S6 a! W
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
3 @0 r! ~- U8 f6 S5 w0 J+ R9 n( {, V) M' U( ^. X. Z
// à??μ oˉè* 7 d, Y' Q5 l# u" _
pLight->Diffuse.r = lightColorPrv.r1;& E- w7 V5 ?. j* Q4 ~0 |4 @
pLight->Diffuse.g = lightColorPrv.g1;
* e. R7 J/ c3 j5 P" v pLight->Diffuse.b = lightColorPrv.b1;4 C4 i1 F' y7 Q, Z- \" [5 G
// oˉè* ??à? : c8 g# b! l3 K+ q: a* n0 x
pLight->Specular.r = 1.0f;
; _1 w' [5 ?. U5 W2 H pLight->Specular.g = 1.0f;
1 w- Q9 E8 g/ \( T5 G1 A pLight->Specular.b = 1.0f;! Z; |3 G0 d- y) T" e: e ~/ y
// àü?? oˉè*
4 A! m# p# y, ^0 D# F pLight->Ambient.r = lightColorPrv.r2;5 _# P( m. g( H. X5 X7 D
pLight->Ambient.g = lightColorPrv.g2;( Q: b+ B3 J# u5 e, c% r
pLight->Ambient.b = lightColorPrv.b2;
9 G: n# P6 [6 e7 {0 R; e& [
# M9 m2 l; M* c if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: F) w; @! m; K, n C2 {' a {
: ]/ H. u) B5 ?" k B pLight->Diffuse.r *= 0.6f;0 `1 k" K1 B0 J5 ?/ N
pLight->Diffuse.g *= 0.6f;
; }$ U' r8 E. s/ C) r pLight->Diffuse.b *= 0.6f;
, z& k& c& ]; L" ^' a pLight->Ambient.r *= 0.7f;& z; q3 z8 E% v" I6 J. u- ~
pLight->Ambient.g *= 0.7f;
; Q1 y; B$ a* @/ P( [) b+ |4 ` pLight->Ambient.b *= 0.7f;; D8 V x# c$ B, Q
}1 C( ]0 b, E- Q, P$ S5 O
" g- O( n4 E, e( } \0 Z) V; p
#if __VER >= 15 // __BS_CHANGING_ENVIR
3 T" ]- J2 Z3 z7 K if( g_pPlayer )6 z! Y/ H+ o9 a$ H, n/ J
HookUpdateLight( pLight );
D, M: f7 Z8 k8 N. i5 q& c#endif
% M1 v/ U8 y: u2 |# w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% X$ `$ C6 o/ n9 f
( n& [) _0 L6 E# z( ~#ifdef __YENV, Y. \6 N! U! X$ `; l5 Y: R
pLight->Diffuse.r *= 1.1f;
$ F5 e* Q8 W& \# o' C; e" r: M8 @ pLight->Diffuse.g *= 1.1f;; |8 V9 q+ s1 M# w8 ~! U
pLight->Diffuse.b *= 1.1f;% V: D# Q7 L0 q \8 s' u6 m& ?' v
// oˉè* ??à?
, X" a% F- X' e$ l0 O5 L pLight->Specular.r = 2.0f;; c2 ]/ Q9 x z3 \4 L9 f
pLight->Specular.g = 2.0f;# a, F, o1 c. p: {) s
pLight->Specular.b = 2.0f;6 _: a+ X: ^: z; ^4 P( ?
// á?oˉ 3 Q, k' d( F4 T8 b( r$ l( G" N
pLight->Ambient.r *= 1.0f;
) r$ `% H1 C9 v/ |" O% m+ d pLight->Ambient.g *= 1.0f;; n; g- L( N$ V' H- E0 v) S/ m5 |
pLight->Ambient.b *= 1.0f;4 \: \: P" C0 T) w' C* [( Q$ T& q
#else //__YENV
: \, m( K# L: b' }/ [4 d pLight->Diffuse.r *= 1.1f;" d* T6 n, j8 ]. s+ {# j2 m
pLight->Diffuse.g *= 1.1f;# k: J6 i0 r$ Y1 b% t
pLight->Diffuse.b *= 1.1f;
0 |/ |/ `' f3 _4 g // oˉè* ??à?
' }6 V6 z6 A5 {1 R, n" R pLight->Specular.r = 2.0f;
2 x9 [* d, ~# @$ s O* z pLight->Specular.g = 2.0f;
8 p' O% b( S I pLight->Specular.b = 2.0f;
% Y( v. n J8 V4 j) k! ?; }% q. J // á?oˉ 4 v! e! s# `: r, ]& r4 m0 m9 v
pLight->Ambient.r *= 0.9f;0 p3 ^1 q4 c8 y, U1 T: g& L
pLight->Ambient.g *= 0.9f;
* n- W1 |8 O& k pLight->Ambient.b *= 0.9f;% i( X: F+ y9 k7 u
#endif //__YENV % ?6 m% c$ W' W( c) q/ C
/ e2 t: a7 u1 {6 h2 o9 w
memcpy( &m_light, pLight, sizeof( m_light ) );9 e s+ w6 _, i/ L* a
2 O( ]: q" @ `+ V: u6 i2 N* y1 Z( E D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
4 r+ L3 T, m: X D3DXMATRIX matTemp;
; X" j* H. {9 ^9 ]* U4 p static const float CONS_VAL = 3.1415926f / 180.f;
0 p( z+ ~9 C' o& \
# Y; _6 k& z+ C0 o8 m D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);' k, _) V! l: ]; W2 ~3 Q' l; }
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);) E" Z& k2 H; C" q$ G1 Y3 d8 i
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 a4 o- ]1 e( j5 K" ] pLight->Appear( m_pd3dDevice, TRUE );
0 m1 Y) r9 K5 H) O! G
1 b. Y! G; ^2 j( k/ q/ j1 K // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; i' M8 N& U$ j E3 N3 J% Z
// D3DXVec3Normalize(&(vecSun),&(vecSun));; s. r/ b- F7 w6 G7 P
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, f" Z, z* A* n' q% Y8 C) U9 I+ ^6 u
DWORD dwR, dwG, dwB;
5 T9 d3 Q5 S! F6 E |+ U8 r( S dwR = (DWORD)( pLight->Ambient.r * 255 );
3 d4 n x7 V& V% e' K0 N dwG = (DWORD)( pLight->Ambient.g * 255 );4 x& C8 S: K: N- d {; D
dwB = (DWORD)( pLight->Ambient.b * 255 );
' [6 H) [+ u1 x/ O) s i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 ?) O7 z E, X B M* f" Z }8 v- z v/ ]$ J# \) O. x$ c
} D1 |# M+ l8 u+ W
( G3 H9 Q& ^/ H$ S6 K( Y m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
& y6 q. |, n) P% j 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) );6 {4 U. K' c; h
::SetLight( bLight );
1 e" D4 L4 O! @$ H3 @6 u3 R" Y; h' {. c" S! ~
// ±ao? ?D?í???ó á¤à?
6 \% e& X+ J) y m_pd3dDevice->SetMaterial( &m_baseMaterial );% e: N4 Y. D5 ~* ]5 U
1 b7 r- W, }. Z# d( `! @) z
#endif // not WORLDSERVER7 g1 d$ x* i! _) G" z5 A3 q9 T
}
4 ?, s2 [3 \0 M4 Y+ ^0 ]2 R$ ~并更换
, l9 X9 V6 I1 DCode:
5 } ~. g/ R9 h7 Z: \6 [$ f__FLYFF_INITPAGE_EXT4 D: b! c. P W* G2 w; d
定义
- l4 {. j: e- m" v0 P( |6 e5 P* L# N4 B3 x
2 }+ X0 a- W4 ?
5 y& k+ H5 H! H6 v- n: ? o+ |
D) d2 o% I& \5 U5 s& W8 i
现在终于删除我的狗屁加速..." P; A/ U% Y8 e' v& h7 f: T3 q
- ?" l( ]6 p0 f4 T
4 U3 L2 j2 o, {( _
2 Y0 {) f2 e! K0 R. \+ R. q- ^ |
|