|
|
食品车:# B! J( G) F/ P
尾翼:7 Q3 ~1 L9 b' A8 D f) C
! i! e) h/ Z3 z" D6 L- l代码:
0 w$ W8 o; U9 z$ M2 Z, E8 GCWndAutoFood::CWndAutoFood()
4 m9 K/ E) Z1 M+ e- G: U* F{9 g- s: }+ M! {$ `* ^4 V& D
m_pItemElem = NULL;
7 @! X' p% V$ j% a m_pTexture = NULL;
9 h( X Z9 }; X* n( k- H. U1 f* ] bStart = FALSE;
0 u. S! u/ b5 |+ u1 g; A}
2 Y! s" R* s& t5 T: n( a# b7 f' V
+ u# m3 R- P! B2 q+ CCWndAutoFood::~CWndAutoFood()9 {- b( L1 `% V) v, A
{: l3 D' t1 e- x, a; C; \/ M
AfxMessageBox( "AutoFood ist gestorben " );
6 w$ u& t( e' Q5 X( `}. l, Q% {8 p6 K" p# B
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ), f5 E, J6 W Z
{" y$ L2 i+ x+ @: y, T8 D" o
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );" V7 s/ `& t+ J3 n. L) F
}- h1 H a* N0 ^0 |2 \9 h8 S
' F( a K$ h# Y+ b. RBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
. c# s: X% S4 u% B5 z{0 S7 @9 n y9 y6 x' z9 t2 [) s% @
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 {# L0 N* B# u CRect rect = pWndCtrl->rect;
: {6 \) \ y3 G- k5 q0 C, V* `% j if( rect && rect.PtInRect( point ) )
3 L: }/ U& N8 O# Y9 {: e$ S {
" K4 B, Y& g1 m i1 M0 ? CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
. q. `0 v" k* E& v$ v" G if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 r4 g4 [1 z% Y* V# [
{
9 D; D. l) e. U( b8 }6 v if( m_pItemElem )
$ \' ?! [( s. H {
% s5 ~1 F1 _6 O m_pItemElem = NULL;
) E- R5 C6 e2 H6 X }7 `" |' d7 E0 {: B3 H* a
m_pItemElem = pItemElem;; }' q- h2 E, l* _% z
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
- M, e- A; r2 y& s4 a6 k }else{- U- D% p- N4 d; |% Y% K
SetForbid( TRUE );! z' |( ~+ @0 j; W
}- Q; G% e% r' T2 q* C# T
}else{
3 z+ G( O; n( B% Q SetForbid( TRUE );
* h) A# H2 L& I3 e9 N! e }6 M, _" T% I. ~2 \1 f
return TRUE;
' S) }. c' N; _$ G' O}
; `! B- T5 G) |" s& x0 U ?5 B
" T6 w3 ]' D3 x8 ^8 kBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); M G. A# z$ y2 V0 o- f
{) }9 [4 }0 m9 F/ v3 v
switch( nID ); T' U6 `5 _3 k$ U; f
{
$ t3 B. _" k2 @5 h" N case WIDC_BUTTON3:
/ q6 d2 L: G! K2 c3 Z) o {
, x% }! @% Y/ Z bStart = TRUE;; Y1 a' s# W# U5 z. ~9 o- _! u6 {
break;" U- j" }& P9 b3 ~' \
}2 }" g( ~8 U8 ^1 u
case WIDC_BUTTON4:
# a/ @3 H+ F! r0 t! C6 L1 H7 ^ {
, Y+ H; P2 B8 a bStart = FALSE;0 G. I2 Y* I) f3 ?
break;0 e' u \. h) i; ~; F9 [
}) U( v; h) c6 Y8 L
}& F; L, F* l! Y
return CWndNeuz::OnChildNotify( message, nID, pLResult );7 }) c) F' I& G) _
}
6 B" |" u$ I1 p! F8 H, h+ Ivoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
9 U9 ~) e4 W( ~- ]: } w. p{
8 |" V d# t6 B0 K0 K8 u. b CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );& \' Q+ ?7 F d( M: C) z( b, A
if( bStart || !m_pItemElem )* e3 R" |) \2 v- j
{/ ]5 Q+ ~3 q$ C; {! @- G' u
pBtn->EnableWindow( FALSE );
% w$ k3 ]" q4 H1 x* k* N f/ o9 ~ }else6 T2 o/ X" o% v6 `$ e, X% I7 U3 B, _
pBtn->EnableWindow( TRUE );
- h8 W, s+ ^# C/ j if( m_pTexture )+ }0 L( B: L1 d3 ?- |$ W { e
{. E& M! T; E/ V' _3 b& k
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );. ~* s9 P+ P+ y. k
if( wndCtrl && wndCtrl->rect )
$ I, q' E9 c# w, K7 K& @ {
7 _8 Z' x9 k7 {7 R5 [' H/ @ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );$ p3 h! |/ b8 b, R8 ]1 H$ O4 W
}
) T9 b" s# p( ?" M- n: g& V: c. [ }# H, e0 k, O. n* O- F
}
+ e5 }* S' N. o8 A( e- R9 s) u7 P$ n
BOOL CWndAutoFood: rocess()
, C$ Q7 k/ T6 s* o/ k, B{
8 {- D# o0 s9 H& F& z4 k; y% @ if( bStart )1 C' ]1 J' f. G! t/ s+ J4 \, _
{
/ D" q+ k& O( i+ `! Q if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )6 f. R6 t( F3 ?' S/ d9 o& ^: g
{; e* l% V. \" ^$ G9 ?/ {
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
! P4 W0 y) t5 ~7 [! C g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
" ~- G, B/ N) N }else{
$ r; A+ _0 @; h5 n1 h5 x, a bStart = FALSE;
: ?; P: }/ ^8 v5 @! p6 I m_pItemElem = NULL;
8 z( e7 n* d1 v }# w; C1 r$ {* ^( N6 e
}
S5 u) V$ ]! z return TRUE;
: M. r- p& W+ Z}
4 ~& S+ b7 f3 E, \5 i2 C5 W2 C5 T. |/ L+ V* O+ E6 i6 \, ?# ?
登录视频废话:2 R, ^% w2 g- B- L f* K6 J M4 w
尾翼:+ ^% H J2 Q; q3 e. X7 E7 `8 ^8 k
& p# _* v8 U6 V2 A- O
代码:
7 P/ w5 `4 _; l! D. A/ A, R
& a+ T4 o2 f; l* Rvoid CWorld::SetLight( BOOL bLight )
8 h6 [& q( U" _6 \1 B; qdurch
+ t; V. q( U! Z. O- X- }Code:! g9 C2 b# D; o& ~" g y
void CWorld::SetLight( BOOL bLight )0 P4 Y3 R1 i5 o, i1 K
{' d1 X8 h3 [1 b' }2 O! z
//ACE("SetLight %d \n", bLight);/ o+ K4 V- k$ F
5 A* l: e, `+ |( T; x. f#ifndef __WORLDSERVER
! q. s8 \3 m' w DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);9 @& O2 R" u, p) z
CLight* pLight = NULL;5 @6 R9 O) N8 k: Z- {2 @) L
& T$ y4 [# |5 K+ }: g/ K9 r
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );- {) ]; w9 L0 `, G4 s; y" ^. B/ D* t
& w% j7 S3 T+ _. D pLight = GetLight( "direction" );
7 p& B _( [. i" i( l( g3 y
/ o; P) T! \& p% ?& C' [#if __VER >= 15 // __BS_CHANGING_ENVIR; L, a$ f2 X# `, i: {( Y" c( C$ a8 @
if( g_pPlayer ){ w' m! u7 v5 t+ \$ ?
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );) P" Z2 N6 K) c" [
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
" L5 j4 z3 g) u- ? x( q {
. v! S) [7 d4 b8 t if( pLight )6 s- W6 \5 @: q/ W+ u
{
% ~/ M8 j6 u4 V" W+ p pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
9 X1 `, x( f& f6 d pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
: p+ Q# t3 {8 a! K/ \ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
! {3 w4 f* s7 M( [" B0 q* s: D# h9 o# _) G& k, i3 y6 O
pLight->Specular.r = 2.0f;8 ^; x( O& F# m- \' Y+ n$ R
pLight->Specular.g = 2.0f;
$ s( s. l% m0 w! C8 \ pLight->Specular.b = 2.0f;1 h" N* n7 Z! S4 L) @' ^. N; e" E
2 R: I, X% i+ K6 u$ j
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
+ h2 r/ P h7 W$ K* ]! \ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];* o- ^. V4 r/ `. Q- e3 f1 \# X
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ]; m, u, f" ]- R, u" g! ?
& `) {" h- a# Z8 g
HookUpdateLight( pLight );
; R0 ^( ]" z4 e
% z4 ~0 @0 F' \% C3 s+ T0 d memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( Q+ ?8 \7 J+ R. i5 Y4 k5 K* d
6 z* {2 M% W$ |$ T pLight->Diffuse.r *= 1.2f;
# i1 N+ g+ h6 _5 O pLight->Diffuse.g *= 1.2f;
& j( M0 M, B% Z. I( Z1 f6 a. | pLight->Diffuse.b *= 1.2f;
8 L+ f, s' y8 t# B, _" M: z
2 q, Q& b/ A) U R2 k pLight->Ambient.r *= 0.8f;
4 v% `0 F' D& D. ~ \) g( ~ pLight->Ambient.g *= 0.8f;' |3 L" W: u1 d5 K: N! j+ z, O0 l* ?
pLight->Ambient.b *= 0.8f;, _, O F' B5 b5 q4 \
* V7 T5 l9 n& U' f7 g/ M memcpy( &m_light, pLight, sizeof( m_light ) );, S2 i1 n2 b4 i" n" N3 J6 U! e6 C
! b9 \. \$ f5 R D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 S) O2 l9 t7 |
D3DXVec3Normalize(&(vecSun),&(vecSun));- `# ^4 L8 V( M1 r) x" M9 ]1 [
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 k) @! ^& W0 | l% E, t0 `+ ]/ A$ ~ pLight->Appear( m_pd3dDevice, TRUE );! s' U# E: y( Y8 q8 b1 }
$ Y t2 r5 M% m: \) j, F
DWORD dwR, dwG, dwB;
3 ~* _5 H* }2 l6 j. [8 x' E' ?, t dwR = (DWORD)( pLight->Ambient.r * 255 );
, E6 m) A* q% e+ b% U dwG = (DWORD)( pLight->Ambient.g * 255 );
" }( j1 W/ R' W. ]3 q dwB = (DWORD)( pLight->Ambient.b * 255 );
$ `& I( \$ \! v. D! f, }+ O dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );* N- k8 l" r7 E* m5 \: l1 e
}4 ^1 l% |9 p! C$ o
}4 _. W9 O- C) S* p% Z5 Z! W) C
}) l5 O" t% M( O: [3 b0 l3 e: X
else- M8 D8 m% w/ M5 S" h: q+ o
#endif . W! ^2 \2 |8 u* W$ \9 N) L
6 L- @& [) h7 {( G& t% [/ p/ t if( m_bIsIndoor )+ u/ d6 w) @8 \$ k6 ?/ u+ b2 r
{; ~- v6 F* T; R, T: L6 X& T
if( pLight )2 X% R; A4 x7 n6 T0 X P
{
% t, i2 y- h4 m, s // à??μ oˉè*
$ d8 e4 @+ @. t1 d7 F8 ]$ D6 q7 G pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
' t6 T0 `, V9 N pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;- J' M6 x9 t8 h/ e1 V7 Q/ _
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
" b* d4 |* S# c: X. S
U9 [; a Q7 k: k" G, x // oˉè* ??à? : _' r- t5 B3 |6 B
pLight->Specular.r = 1.0f;" [/ g- a+ t0 K# k" M3 ^
pLight->Specular.g = 1.0f;
# r' g% u B7 P pLight->Specular.b = 1.0f;0 K1 h Y# A) c! v
// àü?? oˉè* + q: C) X& `* a3 N0 [$ Z2 X
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;8 E: g, r" V( E# W1 J k
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
* \7 Y0 {4 e2 A1 f pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;* e9 T2 b5 i2 O" p
5 l0 E/ p: A( p+ s2 Y8 h
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 N0 h* c; n s* }- j8 z3 V5 u7 | {$ |7 A o7 {5 p1 U# {
pLight->Diffuse.r *= 0.6f;
5 v& y& m; r2 _: P, v' D8 W0 p pLight->Diffuse.g *= 0.6f;
" }5 d0 P$ e$ T5 ~( T3 U pLight->Diffuse.b *= 0.6f;
2 H) \$ T4 }8 P. D5 q pLight->Ambient.r *= 0.7f;
! b1 y9 h! L9 Z' L5 `2 j pLight->Ambient.g *= 0.7f;3 B0 T) B+ Z6 a" C- A( a
pLight->Ambient.b *= 0.7f;
. l* {3 t1 s& P, _% S+ V2 C }7 E; C- v& Z8 q/ {
9 Q9 y3 ^/ o2 ~3 X& Q#if __VER >= 15 // __BS_CHANGING_ENVIR: E6 ^1 e# y( M$ Y Q# j& S5 t8 W
if( g_pPlayer )
S. x3 u( p, r+ p f j HookUpdateLight( pLight );6 C/ X0 g+ u+ A R# o) x
#endif# x$ [" c0 ]: }- X( o7 P# m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );/ g" j+ g% w( g' G9 ~% j
; w: f2 N% u6 t3 f! I, | pLight->Diffuse.r += 0.1f;
9 G' _( ?+ U U% V pLight->Diffuse.g += 0.1f;. O i1 Y: X# O. l8 Z
pLight->Diffuse.b += 0.1f;' l6 F0 F( F9 {0 e
// oˉè* ??à?
; T' o0 M8 C3 V6 a pLight->Specular.r = 2.0f;9 n1 u8 o" |, B, ?% i
pLight->Specular.g = 2.0f; E2 {8 q, p( e0 k7 s
pLight->Specular.b = 2.0f;1 z0 `# d& h* y3 F& t. T
// á?oˉ ( [: h2 @! F1 o" Z
pLight->Ambient.r *= 0.9f;9 V- e2 J+ l ^. K5 A( o5 o' s
pLight->Ambient.g *= 0.9f;+ q: Z4 F' K" `, S% U6 f; D, `# p
pLight->Ambient.b *= 0.9f;
# W* v' ?: P, l; X. r& v- Q2 O$ z) C- x: ~7 r
memcpy( &m_light, pLight, sizeof( m_light ) );1 m. L, d% ]) s! ^, w
0 _) }5 K4 P$ `9 _7 m
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );0 F- {7 d7 G( Y/ z2 K
pLight->Appear( m_pd3dDevice, TRUE );6 g6 ^7 D4 J0 s$ \: |$ X. V
# O7 g+ }4 {. ?5 }
DWORD dwR, dwG, dwB;2 g. X3 ^1 r# _ O* q( L
dwR = (DWORD)( pLight->Ambient.r * 255 );
- X$ h+ H, d, |4 D9 y dwG = (DWORD)( pLight->Ambient.g * 255 );
2 H) I, |8 k6 V1 o dwB = (DWORD)( pLight->Ambient.b * 255 );
% \, g3 @4 m1 D( W# l dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
% x0 [$ Z q9 x }
9 w: u5 }9 I3 a Q7 w! Y }
" O4 |: m2 l1 I5 B. B0 L else
1 F2 ^, G# c# ~& e {
) E! K3 n9 d4 ]" Y! x: Q if( pLight )' J' O) r1 D- ?' \6 q) ~% X* N
{1 C4 o4 b2 v$ \4 r$ c
/ D% p) m! I( }: L2 g6 n# b
int nHour = 8, nMin = 0;
. H$ M: d* K" J* C) E9 H #ifdef __CLIENT/ Q* `: Z, ^! S; R0 r+ i# m& z
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ; F# Z' |# P6 v
nHour = g_GameTimer.m_nHour;
2 i4 O _2 m; ^% j nMin = g_GameTimer.m_nMin ;
& B$ B {( w: q' e: T #else0 W( o) l H% G1 J4 t _
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
. w1 g& x$ J6 c/ V8 Q( P C1 \ if( m_nLightType == 1 )( j" I0 n w/ f
nHour = m_nLightHour;; V" E% L( }! M7 Q! N) d& u
#endif8 ^8 e# ]. o$ F2 }! W: _6 d
nHour--;! w, S& P3 `8 a+ X: B% `1 J
if( nHour < 0 ) nHour = 0;: ?+ q' W, H7 S4 }
if( nHour > 23 ) nHour = 23;
9 ~- r- P3 j6 e" K: q2 o, f0 g% ]: d# m2 E5 f# p, M
//if( m_bFixedHour )) t0 n% ?2 ]$ h7 b6 L
// nHour = m_nFixedHour, nMin = 0;: T; D! n/ B. G) N9 k% u @& X
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
7 [: _- S- M/ |1 u& e5 A e LIGHTCOLOR lightColor = m_k24Light[ nHour ];
5 [% `9 l! a* c
( o/ ~1 _% _) x' g- t% `4 F //m_lightColor = lightColorPrv;
2 u$ i* n: j7 ], P# D; j) o lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;$ \2 l5 A% n) M6 n# |
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;5 \- L; ~8 n3 x5 d9 U
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
D9 I, o4 x' k9 F lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;/ m k* Y/ E+ m+ W2 |, ^
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
; z r' K/ s I; w# i" [. t lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;; X/ `* p. P2 R9 f* k
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
! T$ m, u. }* c/ i9 j& {2 d/ J+ d
$ k( H. T# H- @: ? // à??μ oˉè*
* t6 {; {: _4 ~! n3 ?& h: G) A pLight->Diffuse.r = lightColorPrv.r1;
/ {; l+ V* H2 j& `; V8 N7 Q, p; Y pLight->Diffuse.g = lightColorPrv.g1;" `- b4 E1 C% Z# B; q
pLight->Diffuse.b = lightColorPrv.b1;
* u+ p1 n- k/ j. `; r% x5 j) P // oˉè* ??à? 5 W3 e" ^0 C2 [' N `8 h
pLight->Specular.r = 1.0f;
3 ]- g- @! ~3 I3 Q; ~$ G7 X pLight->Specular.g = 1.0f;
# [* [; _. e9 x1 o! i) F pLight->Specular.b = 1.0f;: T0 B8 v* t) n$ E2 p8 S( _4 ^
// àü?? oˉè* 8 J7 `/ f" S9 j
pLight->Ambient.r = lightColorPrv.r2; P% f" L8 w w" s
pLight->Ambient.g = lightColorPrv.g2;. q6 |; `% `) ~3 \3 s2 J1 \
pLight->Ambient.b = lightColorPrv.b2;
. _+ }7 [6 F% W q( A9 R3 p" t* ~6 J0 ]% p) J" I% B" d: ?
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 [8 v4 ?4 ]2 X/ u {8 F/ u, J+ M: y0 r+ O
pLight->Diffuse.r *= 0.6f;- t9 e; Q7 u3 ^) d
pLight->Diffuse.g *= 0.6f;4 j; F* }7 {& r) v: H" l
pLight->Diffuse.b *= 0.6f;/ U) y0 W. X4 }4 f5 k- ]
pLight->Ambient.r *= 0.7f;
* x7 B. ]/ {! A/ R( r pLight->Ambient.g *= 0.7f;
- V0 ^7 J2 g* h, t: G, ? pLight->Ambient.b *= 0.7f;$ U1 b* T0 y4 d; C
}& {9 F }% d0 c: R
* O3 h# }0 k- \8 d: r3 o5 j+ f#if __VER >= 15 // __BS_CHANGING_ENVIR
; L& ]0 S1 L8 {! ` if( g_pPlayer )+ }! R* D b* x6 W/ I
HookUpdateLight( pLight );
1 l% O9 a0 x& m7 z#endif6 w5 l* }) W3 t# l! O: @
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 R# c, r( S0 Y& C8 E Q9 ]% _3 o' o( t( g
S. n0 r6 h1 j; Z! K s
#ifdef __YENV
1 b4 n& f0 N4 {3 K6 ?0 \ pLight->Diffuse.r *= 1.1f;/ @& ^9 `; Z0 E0 d
pLight->Diffuse.g *= 1.1f;
# [( }- f: Z: H* C5 J pLight->Diffuse.b *= 1.1f; @3 x k( l" P1 y8 a# c. U
// oˉè* ??à? ! f7 l, b. D5 |6 _
pLight->Specular.r = 2.0f;
2 b5 C' P# V% J& ]" U pLight->Specular.g = 2.0f;9 I% ]# z8 T+ B, {* S; \
pLight->Specular.b = 2.0f;
$ f$ s L6 K1 P- C& c# Y // á?oˉ * w) b$ a8 r6 }/ d9 E6 h0 n2 i
pLight->Ambient.r *= 1.0f;
7 _1 E6 J0 A0 o% F7 O pLight->Ambient.g *= 1.0f;
+ `! b9 A8 Q( r6 `9 s1 A! i pLight->Ambient.b *= 1.0f;
( C5 Q7 F8 P; m+ O1 L1 o. C( \#else //__YENV* t& x6 a, B4 s* Y s4 X4 X
pLight->Diffuse.r *= 1.1f;
/ ]" B6 J( J; H5 ^: G1 ?4 H pLight->Diffuse.g *= 1.1f;* K; ~; p( m( D% g) e, ?; n
pLight->Diffuse.b *= 1.1f;
9 a+ c) K4 m, t // oˉè* ??à? + T8 y, a* P5 p* J
pLight->Specular.r = 2.0f;# I+ i7 H2 y3 L; p! F6 l* b f
pLight->Specular.g = 2.0f;
' G8 Y. ?- L# z1 q" b" V pLight->Specular.b = 2.0f;
& ?" w& I" K4 L // á?oˉ
& I$ R/ b; u+ s( \/ y4 L pLight->Ambient.r *= 0.9f;. J. O' l7 ?6 G4 g2 ?: u. w
pLight->Ambient.g *= 0.9f;
) g9 Y4 a |; J5 v pLight->Ambient.b *= 0.9f;* c4 W* v4 T& O
#endif //__YENV ; L2 P( E& \: ?8 ^" C
6 F" S* l$ E! V' F6 n
memcpy( &m_light, pLight, sizeof( m_light ) );& U8 e8 e( @1 ^$ I
7 ~" q& E4 y& B( b D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
& l: j5 m; N6 D9 k8 D4 G! ^' k; ` D3DXMATRIX matTemp;2 N% Y2 A; K2 Y1 |" F3 U" x, [5 l
static const float CONS_VAL = 3.1415926f / 180.f;. n) P; p' B+ `: Q$ a/ Y. ~
; C- I# ]! X/ f/ }+ N r D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);+ w& E3 E. S' R. C6 f, {
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
: c/ C) A2 Z$ B+ B8 p- R& C pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
0 J# K. i" J c( s+ |: T8 E; {; J; S/ o pLight->Appear( m_pd3dDevice, TRUE );* E5 Q Q6 R! a3 v& O# u S
! [" p+ g+ {0 @! c: A3 ^; F
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" U6 d- L# T: y
// D3DXVec3Normalize(&(vecSun),&(vecSun));
6 H) G7 j5 M0 I- M1 A // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 c6 A- `. A x
* o. R1 O9 u v2 a# d% g h( `
DWORD dwR, dwG, dwB;
0 b4 [: M0 ^: e/ J6 v" _ dwR = (DWORD)( pLight->Ambient.r * 255 );
& w- K- C) }3 p. f3 N dwG = (DWORD)( pLight->Ambient.g * 255 );
R j( A( C$ o: f% {* t4 w dwB = (DWORD)( pLight->Ambient.b * 255 );
! V/ E7 o: {2 F4 i M dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- o/ }) s6 }4 B8 M% I& Q# ? }
8 J4 Y" W& p1 g- B! L2 ^2 o+ Y/ S }
: e* C4 l! Q( W% Q% L+ v# f- l
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );/ ^/ E) a- E1 L2 n& c
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) );
* ?7 i& ?. ]8 K* J' B4 u+ X* i ::SetLight( bLight );
6 B/ W8 B/ B K1 {# i( P/ J1 M0 X; o+ w! ^4 `
// ±ao? ?D?í???ó á¤à? 8 @5 l" t9 M% A' S) h: ]
m_pd3dDevice->SetMaterial( &m_baseMaterial );
/ t" ~0 ]' Z% q+ J3 p& _, h & ~% E- l1 S/ H" z
#endif // not WORLDSERVER+ u8 w) Y6 L/ y
}
! g) } ?0 A/ m ^. \) `, S( k并更换0 o! W. x7 P4 x! T8 E" g
Code:$ \2 Q( [5 Q! i E; w
__FLYFF_INITPAGE_EXT
0 U: H8 K b6 a定义) g5 B( S) C, U& U
) Z6 r( Q7 L3 Y3 V
( a2 d. \$ \- J8 O$ N" v+ l! S# U/ X( E; Z( c F. m$ z7 ~& H) K" z
0 a3 k! E# c2 M
现在终于删除我的狗屁加速...
5 }' E4 v* d7 y. I) E# I- u2 i- A* X
$ v! p1 X# X# C
! g) O: n/ F# n |
|