|
|
食品车:
: V+ { A- p, M尾翼:
W, X& k: Q# ]
& H Y/ ~) ]* u2 S" q: a8 w代码:
; S- ^3 P, X( l$ z* v; M: aCWndAutoFood::CWndAutoFood()
0 z3 I1 }: o, m0 r/ o- z{/ K' N1 ^( @+ } j
m_pItemElem = NULL;
8 P0 M; i; n" ?( j# D ?. U m_pTexture = NULL;
+ m2 T* A6 ]7 K3 P# g5 p bStart = FALSE;
7 g, V3 D- l* D}
. l% Y! R- X; O) c" [) T1 W7 t$ `5 n6 Z( z9 f& e9 k% u
CWndAutoFood::~CWndAutoFood()
2 r0 P0 l' w ~1 N) w{0 m! a9 z& |8 V$ j$ n
AfxMessageBox( "AutoFood ist gestorben " );
+ C* c; ], J, {2 r% U}
+ r, L7 K; d6 A0 ~BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
% M5 c8 l; O3 n" U" s{
9 T( l2 m# B5 ^3 ^# ?4 Z return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );9 T. M$ V8 f. J; C& B. C
}
" x' h7 d5 F& {. o' A% s8 Z7 n& F9 `/ g
- p( [" N; U Z7 CBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )' \2 i9 Z2 m6 w3 A, c( F
{
8 n6 `" I( N- l& a) i LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
4 w- e$ l4 x' S CRect rect = pWndCtrl->rect;; w% d4 c/ ^" P4 u7 ?5 z O
if( rect && rect.PtInRect( point ) )" s: J, M7 X& V4 l9 X0 i4 f5 A
{* X; ~% X9 _) Z. F% C9 {: t
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );1 z' m1 s! F) c5 u& ]
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
7 ]- X l, h. X0 \2 A! j( f( d8 Y {& D1 @& Z& x; y( n
if( m_pItemElem )
6 z( x9 Y I; @5 U; R4 x& W {2 d- e3 ?* Q7 F" ]# \3 q0 \! F# u
m_pItemElem = NULL;
+ |+ m( B1 c% q# g* J) `# D3 m }& d, Y& ?8 S) j/ t( |! ^
m_pItemElem = pItemElem;0 M. W) q; L6 X/ n; m+ m7 l
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 ? L! |; A7 F
}else{' ^' g% k% `. m1 r6 p
SetForbid( TRUE );! U [0 f8 }" Q q% e
}
/ e0 u3 S: e0 z; Y: X }else{8 k3 I( r2 Y+ Z U! D+ }
SetForbid( TRUE );
' R8 D& F5 V# @) g }. w/ h' n% T8 K0 M: y3 y
return TRUE;
8 V7 {. v$ z7 g6 E6 B3 G}* M) |# j5 c% H o
9 \( o9 X0 @. l8 V7 NBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 x6 g8 G+ l- D4 D
{; e K" |, j# z2 s4 A
switch( nID )
: z$ `: t0 Z# {( `4 b, B* K {
/ n2 j% ]" f* f$ C( F; ] case WIDC_BUTTON3:' w7 h- n+ e s4 G. h
{
% K7 k; [- f s! E* }, y. ]2 _ bStart = TRUE;
) [( u1 ]( `- a; x/ A+ ` break;1 I8 S6 k. @0 v9 l' Q: z% t
}
+ c. p. k% V1 \& p2 g case WIDC_BUTTON4:
$ w9 ^9 A) \- ?7 J {' S+ ^6 u2 H3 T5 z& c8 Q' ~' L1 ?
bStart = FALSE;! D1 m. y5 `& L0 n+ q _; v
break;
3 O E' ]# d c; w& C( e/ g; m7 k }
% Q Z( F( K8 W& J7 r; E, v' J }
: O' L* g; d3 [ return CWndNeuz::OnChildNotify( message, nID, pLResult );
1 D4 J b1 n6 o}
1 t/ n ?* R: ~+ R% _: Y* Mvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
* c) x+ b0 `! y{
9 g- }8 D2 X+ D& w6 i& `8 V CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
9 R# p2 ]- d8 D3 W V% I, P if( bStart || !m_pItemElem )
" D, R" b$ ^) P2 D {
5 C8 L/ p- p g, ^% x3 P' d pBtn->EnableWindow( FALSE ); F6 h' |' L, ]5 K* K, N! k
}else
, _% T O' a7 \5 i1 \ pBtn->EnableWindow( TRUE );
) P2 V5 m$ S6 f if( m_pTexture )) k. m: O6 j, }
{1 C4 I( v; P' U! n: L1 e
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );5 ~5 f2 G* Z; g/ j9 z' H/ z( m8 ~
if( wndCtrl && wndCtrl->rect )
/ S. x# G1 k" l. B S {% k" [" Q" j0 Q6 S: p( ?, R8 |* q
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
, a! q) x7 V# u! J4 Y3 P9 v }" g! H) L- @5 |3 o2 W
} _$ `2 B/ Z4 y* v s7 Z
}" A T/ ^. {1 U
+ R: O7 v( o# w& q4 _& z" ?/ \) TBOOL CWndAutoFood: rocess()
# X2 h$ v0 ]/ u; `3 ?6 c{0 x p; X) w. [& d
if( bStart )" M( W4 f- M$ [* b$ g
{
! N4 C& Q+ @' ?( ^3 B8 r if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
$ n# @* H0 Y, M. q$ X {% p! [- }( \. g/ p# ]0 p
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )7 L% k4 l" G( p, G6 D, {
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
7 d( V4 t& |$ [% v( s }else{ H: n' ~( W2 j! T! b( q& X* `% l
bStart = FALSE;
2 P$ j% k" W' k0 V( O m_pItemElem = NULL;3 O5 L# V6 E8 R1 H* s/ Y( ?. w
}! h* K1 E, R a2 b1 ? `9 ~
}
- f. a U! o! G/ a( q return TRUE;
2 @% B6 G" S j( s8 Y1 B}( _& ?1 }2 A; y( M2 |; Y* b
" [: K! Z+ a6 R3 K6 Z/ t# m登录视频废话:
! Q/ d, A4 L: L6 n尾翼:9 [* @, B9 Y$ f' @- [' |. C& F
V4 B8 f A8 Z9 P5 w8 ~5 u9 t
代码:
; t" f5 h( T- \0 ?3 d7 z
! l4 f/ ]. K% G% x1 s- d5 R% dvoid CWorld::SetLight( BOOL bLight )2 v' @9 z8 V. C3 C' ]
durch
# o. |& V% n, C: t4 F- [# eCode:
% x3 o9 N; d) i" `* [; _; Qvoid CWorld::SetLight( BOOL bLight )7 s" T/ H) c, ^3 _
{' V7 @& c3 y8 {6 I
//ACE("SetLight %d \n", bLight);: v; g4 E, u9 X/ `; T8 F" v
* J3 K" x# q9 }6 E
#ifndef __WORLDSERVER 4 F3 M) f1 P- d6 ^4 g/ }/ O/ j
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
+ f4 M7 D! r1 t+ |, a( E/ ^ CLight* pLight = NULL;* ]. I' c7 @- R8 w7 x0 m; O. m) J
) q0 I c" H0 |, u8 b5 n0 @
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );6 |8 w' j9 @: h
5 K9 q, R) P( i
pLight = GetLight( "direction" );- h1 D4 ]% V0 @3 ?5 K
' ~( e, V: q5 m#if __VER >= 15 // __BS_CHANGING_ENVIR
( G4 _/ Y' e, ?2 U8 `# o if( g_pPlayer ){
; M! c8 {' w3 l ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
% h1 c; E- \5 J% k& u+ I: f) Q6 Q if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
4 _& E. J) U( l9 s {# x" j) }5 P1 [* d- ^
if( pLight )5 A( N7 \3 K& t' E: M
{9 _2 K: Z7 j3 |9 r! I
pLight->Ambient.r = pInfo->_fAmbient[ 0 ]; z. I# R" a8 Q5 ^' U# h* X2 X
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
; @9 u$ X5 u: Z, K! _& w pLight->Ambient.b = pInfo->_fAmbient[ 2 ];3 w/ U! p! v! G4 S, N7 @0 A
5 `+ r3 U' o" y6 R/ f pLight->Specular.r = 2.0f;
$ ~6 o" q+ ]+ e+ l2 b# ^ pLight->Specular.g = 2.0f;
" p7 w7 [0 L3 _/ v0 B pLight->Specular.b = 2.0f;, ?$ p+ t6 w! B
) d' m7 X8 v+ h pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];$ J0 z9 N8 T. R; Y+ k) U
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
6 q4 C* q" S0 Y6 |& L( X$ N pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];, t! @9 U# `8 U1 j/ Q
2 S* @/ C" H9 @5 N* q. X( @7 Y* M HookUpdateLight( pLight );
4 `! J3 C# `! l3 a- S& I5 @7 S& n* F0 }9 K( z' h
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; J, M; P. {; X- r4 p
6 m ]! F/ B/ W. Q, K: Q' ?6 K pLight->Diffuse.r *= 1.2f;
" v# R* }3 M0 j6 b2 e pLight->Diffuse.g *= 1.2f;9 I; T6 }3 ?" ]* P* x1 J
pLight->Diffuse.b *= 1.2f;
+ } c3 {2 X" q# F
2 H- h% I( C# E4 A- x6 r% m pLight->Ambient.r *= 0.8f;
1 p: j/ ]1 l& B- b; \8 t# d pLight->Ambient.g *= 0.8f;8 z; f- l& h6 Y6 N0 {8 o, y
pLight->Ambient.b *= 0.8f;
( w _% C* R0 C# P
1 f) h+ d5 z9 @* ~( v" f; l" N7 @ memcpy( &m_light, pLight, sizeof( m_light ) );/ ?7 A' a7 e) ~
5 s# X1 v! t! {# l0 ?% Y D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 y3 J+ l9 y6 J$ I4 J6 ^ D3DXVec3Normalize(&(vecSun),&(vecSun));5 {, O* ? D% L5 [5 D
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 g1 L$ p& m. M7 X9 ^ pLight->Appear( m_pd3dDevice, TRUE );
* ?0 z0 }" T' ^1 y9 L N# U7 b2 Z/ m$ y
DWORD dwR, dwG, dwB;
- N: F! O% q5 n4 P! W' l9 O dwR = (DWORD)( pLight->Ambient.r * 255 );6 x9 C8 f9 O& f2 k# ?; w9 Q
dwG = (DWORD)( pLight->Ambient.g * 255 );
/ Y) i- n/ w" w, E& } dwB = (DWORD)( pLight->Ambient.b * 255 );( l4 r. p$ `0 z; v( m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 q r# b$ H" t# l }6 o( a! K+ _3 H! h
}
$ A# o9 @" ~) c( t2 O, F/ j }
! g; v$ ?' W8 C) ?0 F2 N7 n1 Q/ s else
- D2 W) p$ T2 v. }#endif ' j$ m. m; a$ h1 I5 ?$ A
/ Q, v9 }+ e% V4 g
if( m_bIsIndoor )5 R8 n0 v9 _1 ~' n9 \! g( L
{' t# b0 a2 ^, j* n
if( pLight )/ d5 E: z9 |$ g1 P8 ^5 [
{
/ @. E3 b9 I' W$ f& k; l // à??μ oˉè* ; S4 J' n8 j, G! B8 U
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;% V1 U0 M" \; f1 p- z3 w
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
* w3 J. `1 H! O# I# @7 i/ I pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;9 [0 Y' b& [/ h
6 O2 T8 I$ M: e. q0 n
// oˉè* ??à? 7 \1 Q$ y' ~$ r
pLight->Specular.r = 1.0f;
5 c; u* y/ I! b pLight->Specular.g = 1.0f;
* @5 v- u9 d5 W1 Q6 v- m pLight->Specular.b = 1.0f;
5 j+ e) A8 j6 V. G* x# G! a" x // àü?? oˉè*
. j) ^1 ]6 D. r! ~5 f y& y% Z- e6 S pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
. f0 x5 [6 H0 i1 n; z pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;3 K2 L X' o5 I, C2 I. u4 j
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
# D+ O+ q( }4 {0 ]/ }1 e9 W0 ?
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 R$ k4 o3 Q2 l( G) P {' h$ |9 G9 u+ G- C
pLight->Diffuse.r *= 0.6f;/ N( Z' [: ?6 |: z5 F- Z
pLight->Diffuse.g *= 0.6f;. X4 D7 o; K( V0 i
pLight->Diffuse.b *= 0.6f;
8 y; t, k; }( { pLight->Ambient.r *= 0.7f;
! o4 j3 m1 f/ A pLight->Ambient.g *= 0.7f;+ g! {! l9 |' K' e% ]9 X
pLight->Ambient.b *= 0.7f;
$ H6 `0 s9 C1 A3 K* r1 [6 F2 z }
: i4 U+ ]+ R* G$ P/ t0 z
! d4 ?/ M* E! r- ]3 b( x# i#if __VER >= 15 // __BS_CHANGING_ENVIR2 u9 M( k5 \) R+ A2 u
if( g_pPlayer )6 [! B" I0 v! Q" L& X
HookUpdateLight( pLight );
" w' }% v f; s#endif- o, P! m/ l5 V8 E7 W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 X1 W m. ~& H8 n! S( }6 T: W$ q
( j2 x# z. s# Q! D/ J# a6 g9 ?
pLight->Diffuse.r += 0.1f;4 G# e$ f. K: G; F0 Z
pLight->Diffuse.g += 0.1f;
# f+ _ b4 y( g0 ^% t, J* r3 W" b pLight->Diffuse.b += 0.1f;
w9 m1 G5 V6 N- R1 _! k- m // oˉè* ??à?
v% r* R5 H# P) ^' O pLight->Specular.r = 2.0f;
5 X, J8 J2 M2 A, L; z, O' r pLight->Specular.g = 2.0f;% }- l i" w+ I4 j
pLight->Specular.b = 2.0f;
2 n# m# P6 H- O& e" } // á?oˉ
' _" T# u9 Z2 ?3 d pLight->Ambient.r *= 0.9f; D% @- X1 y$ K' \9 k" ^" G
pLight->Ambient.g *= 0.9f;, q; W8 [2 Z' r! A; Z& ?
pLight->Ambient.b *= 0.9f;: J' V% V' q. w$ N; Q
9 p) U" Y9 C' m7 i
memcpy( &m_light, pLight, sizeof( m_light ) );. @- R/ h4 D2 L L4 J m | G: g
/ l( p5 Z+ z6 s6 T+ Y8 c pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
4 X& ?2 \2 s- J& O+ d6 C$ | pLight->Appear( m_pd3dDevice, TRUE );
, A J- b: E0 h0 B5 s; E
8 }6 A" ?3 D. y5 _ DWORD dwR, dwG, dwB;# G, B" e, K. T" @# o9 {
dwR = (DWORD)( pLight->Ambient.r * 255 );$ Y' X2 i' J: d0 S# m
dwG = (DWORD)( pLight->Ambient.g * 255 );% G- E/ `3 Y: h7 H2 o0 t/ f1 Y2 `
dwB = (DWORD)( pLight->Ambient.b * 255 );
: |: N% F7 K2 P# p0 J dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );( Y9 O3 I# \2 y8 u& z: A) o/ M
} J5 ^+ N W: t- D6 r8 _
}
4 L: n& P* x3 |) U* v else
7 u3 j- D! s7 \) i1 k+ p {0 X- |% r8 C1 Y4 ]0 M
if( pLight )
2 V4 G. w, F7 a( C {
* i5 p, a' B0 H1 V0 S( w1 ?
$ s- |) ^- S/ R/ W, T% \ int nHour = 8, nMin = 0;4 {' F/ K5 s6 f" i$ R! e9 n
#ifdef __CLIENT
2 S, n* ]0 B1 b3 N. P; k // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & V: M5 u: ]- a- D1 ]! x
nHour = g_GameTimer.m_nHour;
. d, r+ v) U% e2 j7 e7 n' l7 y nMin = g_GameTimer.m_nMin ;
' s) f, g. ~ }1 G1 E5 L #else
9 }/ M- n8 l: q) v- D: u# @ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
6 P' E% H( \" s if( m_nLightType == 1 )
! T3 I7 Y( r& | nHour = m_nLightHour;
' f2 t. p" v% W4 E, A9 O2 B& T9 ] #endif
6 O5 O+ L& j8 j4 B nHour--;
. Q% I$ d$ w, k9 p. I+ g if( nHour < 0 ) nHour = 0;
1 h, L$ c. ]3 ~ if( nHour > 23 ) nHour = 23;8 b8 x; U' O7 o2 m1 l- p3 S
$ ^- l% q8 d# Z, u9 s4 V( s' _ //if( m_bFixedHour )
% X+ l k) E2 ?; i5 z# d$ ~+ ? // nHour = m_nFixedHour, nMin = 0;
8 d+ G, T/ V$ k H# U4 A0 f8 e, i LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
" w/ U1 J. V3 e9 J. l* x+ i+ @1 [ LIGHTCOLOR lightColor = m_k24Light[ nHour ];
' z8 m5 e$ g6 l# f$ _& U0 y
7 U# O$ p8 s, w" Y- v //m_lightColor = lightColorPrv;' D# a* ^2 U4 }/ x7 R- o6 B
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
3 i9 o# O Z5 n! X2 A& l3 N lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
' h% y; S- q* Z lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
d/ u3 g0 l, y' @) U lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
6 n/ S u0 O/ j lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
* e% U @' o5 V( E, m& Q* V6 ~ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' o$ m1 B! C' J4 _) r) G
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)9 [8 I5 l, w" k5 y" U+ Y
$ q7 r& \4 L, u' ^% f. W" u4 {" { // à??μ oˉè* ) d8 D. t9 K! d% @5 M' f
pLight->Diffuse.r = lightColorPrv.r1;2 Z8 {9 L, j. {1 B% O
pLight->Diffuse.g = lightColorPrv.g1;
, ? w7 p3 s" k0 ]: w. F pLight->Diffuse.b = lightColorPrv.b1;
) l% P2 e2 _" P( z7 |2 `1 S // oˉè* ??à?
; a5 I l9 P9 F4 c pLight->Specular.r = 1.0f;; F I& k* I3 |* [
pLight->Specular.g = 1.0f;0 v' G/ A- H: y% P) `
pLight->Specular.b = 1.0f;
7 {- k: b: J& a) ~2 H // àü?? oˉè* 5 P6 K7 R/ t6 G1 ]6 ]
pLight->Ambient.r = lightColorPrv.r2;% `6 M/ X" l7 p8 }5 H! c, u
pLight->Ambient.g = lightColorPrv.g2;
* ^, _ ^& @# u3 V pLight->Ambient.b = lightColorPrv.b2;1 x# Y8 N! p7 u1 F( c
. J) b0 M; _( M3 n
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
% n5 u: M0 h3 ^, @0 D/ M {. X8 ]0 a Y3 i. g+ h
pLight->Diffuse.r *= 0.6f;6 B9 N. H% n# M" C
pLight->Diffuse.g *= 0.6f;- P! w. n* G# |) X
pLight->Diffuse.b *= 0.6f;- b! Q$ n2 l( J! g7 i; A d
pLight->Ambient.r *= 0.7f;+ ]) w& @8 P. i- ?% }6 f
pLight->Ambient.g *= 0.7f;3 S/ C. e4 o: x" K/ n! r: k; [
pLight->Ambient.b *= 0.7f;8 _4 v& ~* ^4 f
}1 @, G9 W3 {0 } e9 s" Q7 r6 k
/ J- T7 o: j; j: i
#if __VER >= 15 // __BS_CHANGING_ENVIR+ M9 p! o ?- \1 e. [$ N2 S# q9 X
if( g_pPlayer ) k& O* b$ C$ s, M
HookUpdateLight( pLight ); 5 e: I! H2 h4 I' E- P; X- g V
#endif! Y- T* C) G! ]* Z: x: d
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; n) t) a1 p. V+ _
3 X. N# E+ ^% z0 Q( j- R
#ifdef __YENV
& v! R% h' v1 U, b pLight->Diffuse.r *= 1.1f;& p% m( R S9 f4 ?8 [3 s9 a& k
pLight->Diffuse.g *= 1.1f;
* y2 M2 A: n2 Z2 Z7 A I, q pLight->Diffuse.b *= 1.1f;. V9 j4 L( d% E; j
// oˉè* ??à?
( a, |" t" }0 a8 y2 f3 `7 g pLight->Specular.r = 2.0f;; p% H# \: P& @2 g# a
pLight->Specular.g = 2.0f;
: r1 ]( W3 s+ }4 K q pLight->Specular.b = 2.0f;
9 {7 a9 f, z/ p' g // á?oˉ
1 |) X. _& }0 @! i3 V' u$ v2 \+ q pLight->Ambient.r *= 1.0f;
$ y' O( D7 ~9 O0 \ pLight->Ambient.g *= 1.0f;
# V6 F" @- v/ a1 G1 h/ l7 @* X pLight->Ambient.b *= 1.0f; h, a7 S; Y! r/ r6 B0 p
#else //__YENV' x- c( [/ e6 _0 f
pLight->Diffuse.r *= 1.1f;; g1 N) A3 B9 M7 v5 C' C- y
pLight->Diffuse.g *= 1.1f;+ F( K! x+ G9 Y1 }) ^7 N
pLight->Diffuse.b *= 1.1f;
) e# q9 Z& r+ R( s1 M9 I // oˉè* ??à? 9 f- Y) d) A) ^" h6 |4 v
pLight->Specular.r = 2.0f;
, q8 z) t# Z5 w pLight->Specular.g = 2.0f;& M' g, [ [% C- U! ~5 A
pLight->Specular.b = 2.0f;% L& @; U- q5 R$ s) G
// á?oˉ
- l' }2 G5 P( b0 O6 r& N pLight->Ambient.r *= 0.9f;, { p2 i; V0 x; } {1 ?! o# L6 o4 `
pLight->Ambient.g *= 0.9f;
( \8 L1 ^7 U) F pLight->Ambient.b *= 0.9f;3 `( G( ~0 c" L4 J3 s% f
#endif //__YENV
! J8 h; c% H; K! Z ( _' H# c+ Q; f8 P; u, h& v2 {
memcpy( &m_light, pLight, sizeof( m_light ) );
5 S# _+ Q; `( _5 Y, V7 z, B / q, I: A$ u: Z: {7 E$ r. j
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
& ^+ r: o( k: A2 d* L% E8 m D3DXMATRIX matTemp;
* [8 e8 k) k/ m3 \' J static const float CONS_VAL = 3.1415926f / 180.f;( }% n* ^# e I; e! ^) E: u4 I
2 `8 B- x0 J4 J) O D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
j2 Y. y7 Z/ b! p/ e D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);) k6 Y3 K! _: B+ ^( ~+ S) |
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 w) K2 M0 ~+ w# b0 L3 ^" f5 B
pLight->Appear( m_pd3dDevice, TRUE );
. ^6 ^$ s/ m8 i% R, ~3 M/ Y N+ @+ A! \. Z4 Z7 l
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 E6 u4 p$ x" W // D3DXVec3Normalize(&(vecSun),&(vecSun));$ y) d) m: V( B" T4 q. a4 Z4 q
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
! Z9 F" r7 f; O* Q @0 c3 R
1 _. s% P4 P0 z DWORD dwR, dwG, dwB;
6 g3 W( O6 z2 M- d1 H7 e dwR = (DWORD)( pLight->Ambient.r * 255 );
/ ^# I1 R( Q1 ~5 }* f* N0 a( R( w dwG = (DWORD)( pLight->Ambient.g * 255 );
/ M7 Y" g" p9 |& \- t0 q dwB = (DWORD)( pLight->Ambient.b * 255 );% `* e* \! d: T8 S
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); - S9 u2 P! [5 y7 _6 G: w1 U
}9 E/ H! `; g+ b3 ]2 Z0 @
}+ i1 x! a* l' }- t
% |2 {# s' n3 T m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
" x1 K. }; k$ ^5 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) );: f8 O. c0 ?+ @) R7 m) T( r/ [
::SetLight( bLight );
5 a( k9 D' e$ X! ]8 T7 ~2 e) _; Y" ~4 J; H" H
// ±ao? ?D?í???ó á¤à?
) @* J7 M3 a5 |5 D5 u) e m_pd3dDevice->SetMaterial( &m_baseMaterial );. M; O, P& ^' c9 z2 n
$ T* {6 K" j1 [0 D
#endif // not WORLDSERVER0 s" A. o/ Q# ]1 b
}
7 m; N2 ^! I* j1 u并更换6 e1 u+ G( H2 c0 o( O1 I5 q$ T4 E
Code:
; O* q, I% n2 t8 P( c__FLYFF_INITPAGE_EXT) H' B% V/ o! N
定义; m3 V% ]% s l$ d, P
N, q# d9 O6 q, Q
" {* K; j" O3 t9 ]4 ^. \6 R3 Z. o: c
5 x: S0 w: d9 o d
: \6 a- p. U( j6 o; t' X6 b8 V
现在终于删除我的狗屁加速...
. f' Q C9 S: y U P$ f/ ?; x6 g3 ^: p7 S0 y) `
3 b" o' a; a S) h' `. _5 E! D, P, A3 L5 R- B- J4 a& c9 F+ l
|
|