|
|
食品车:6 [$ B3 m% Q. j; @+ H) U
尾翼:5 J& m0 H3 u" n: o0 m6 S
5 O& `# z Y2 ?% E0 e) j代码:
( i u1 s/ L& {" h* u8 e4 V' @CWndAutoFood::CWndAutoFood()+ w, C. E5 ]* E
{
! Q& N- h' l+ H m_pItemElem = NULL;- v4 n: D+ }% X" H+ d
m_pTexture = NULL;
' ~& k$ M Z4 R$ o5 Z r bStart = FALSE;4 T' c0 i& D" o$ O9 B
}3 |1 g8 B- j( _) \3 G
4 G p% f7 c+ E5 t7 pCWndAutoFood::~CWndAutoFood()7 Q8 b! Y4 @0 y; H6 O
{6 k6 d7 c- |2 ]
AfxMessageBox( "AutoFood ist gestorben " );5 P! A4 p* f5 h
}8 E- H3 ?& m2 G" N* ?& r6 x
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )! K1 v( A1 X& T; _- u3 g
{1 P: o+ J: |, v3 @, o+ P! o- A
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
* Q, m2 p& V! O}: P2 g! v; P! S
: ?% N6 o) J) zBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )9 a- g( I' [6 @% F+ h
{
0 k- r7 D8 c8 i LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( Y$ g4 S. o# v5 n0 A/ ~ CRect rect = pWndCtrl->rect;
0 a: P! ]# v2 p2 Z) @0 v if( rect && rect.PtInRect( point ) )
- R/ \: n( V& C" l% U6 w6 m {
I+ ]& p+ I" X CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );1 R6 ^& }- i; P: }8 j/ ^4 n. N, f7 Z5 y
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
7 x* H' Y. F3 E( @: W/ }6 m9 k {
( ^/ K+ f3 X3 e/ P1 r if( m_pItemElem )
* ~# }; L, `: T4 T! Q {
3 T, H! I- z. d3 M6 a m_pItemElem = NULL;
0 |* R' r$ N# b+ C6 C7 }- V) G5 e" M }+ i1 o$ ]7 N3 S Z
m_pItemElem = pItemElem;3 H/ H6 c: X! M8 z: s% ]5 ?
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff ); m- K3 T5 y7 T: q0 ]5 x# e
}else{1 q- r2 D* C/ p3 H; C3 G
SetForbid( TRUE );, ]4 s% } k' `& r+ F
}
# e. D6 r/ p4 O# C! ^/ P }else{
1 y4 x5 h5 ^; N2 m. @ SetForbid( TRUE );
5 L1 Q/ a& B/ o% m) P- k2 e( S- P }
4 U/ B8 \) f' c return TRUE;
# _( ^1 @0 u) q5 f" P7 e}4 i. H+ u1 e* K0 f
1 Y! O; W% T6 m' Z" ?7 L3 P) \9 R
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
6 K, \( y2 s$ B5 O2 c{
; [$ ~9 H3 X( ~; S" { switch( nID )
% l( N/ Y- h, q2 v {
! W0 H- {3 P0 ~ u2 M0 n( L; C7 G$ N case WIDC_BUTTON3:! }( } D; U. W, m" j" F. o2 e/ j
{
0 O! H- ~8 d q: [$ j) f bStart = TRUE;
8 r) R: N7 n. Y break;- l. U5 n: ^* `2 u ]4 G5 b- f
}6 a+ ?; F& \, B' h* ~) C
case WIDC_BUTTON4:
; z) e) D" V+ Z% T& _& ?3 | {
" H/ X9 a. |, k3 B, q Q! h" N. T$ a8 k bStart = FALSE;# Q+ ^6 g! f' b: {) t) X
break;
- |5 } Z! k V# \% w | }6 v4 @& h$ }! ]8 w6 L( Q
}
3 R; \ M9 D7 A return CWndNeuz::OnChildNotify( message, nID, pLResult );( @3 E. X& s( ~1 f
}
6 h1 [8 U) m# r5 z4 nvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )7 H0 a& p& X2 F7 P4 y7 c
{6 h; P; B! ?, \# V# P
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );) V; \; i) \9 P. R
if( bStart || !m_pItemElem )3 ^) j6 _- E, g1 D3 N# B
{
n% [# \% W& g- `3 F' v pBtn->EnableWindow( FALSE );" f* K `; D7 A- u
}else% a; K$ `1 D/ {$ {0 Z
pBtn->EnableWindow( TRUE );) G* x; E: [7 i, S' T2 F
if( m_pTexture )
- M$ c7 r; y2 w7 N0 n: K {, T+ \7 }; ~9 {# x$ f: A' ?0 v& l/ {
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
* n5 s% I5 P, V if( wndCtrl && wndCtrl->rect )- B9 s" {% A/ a+ b
{) C2 E% `. B" K
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );8 f6 K3 a, e7 F0 d4 i
}* Q9 v! [! {* B3 ~2 t; ^
}
v( P) T# N0 y- I, ^: g6 ~2 H}0 e% G$ x* S \# v: m, r
% X5 u3 j) T* C4 a$ V: H
BOOL CWndAutoFood: rocess()
9 n- R7 R* @5 F2 I# ~, P, _1 @! j{; X# C7 R: o1 |5 b
if( bStart )
4 j8 O% F' k7 C7 F0 m6 r {/ \7 [, c2 ~8 B! z- ]( R% G
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
6 \" R/ o; O! ~" |/ W& q- Z3 q7 { {
. C: ?6 S: \$ `% Z {- `: t if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
! o- z# w' }3 s g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );- |# c4 L ]- }% M
}else{+ k# X6 a" l9 m
bStart = FALSE;; T+ Z& S# U+ p1 Y: \# c4 Y
m_pItemElem = NULL;
/ t: S \$ ~1 `& G% j: q" _: Y } s( Z9 \1 ?+ Y3 ^% m0 a9 m( f# B
}
9 n4 E! W$ q2 t8 E& A# M M return TRUE;
% { h' Q4 t; Q9 |& b}
3 T9 ]# S+ ]7 u t, u$ d1 {# ?
7 v' e4 h! a& y6 y$ ~+ U9 v; h登录视频废话:
/ j. l3 M4 F+ m$ I5 Q' j尾翼:
* U. H) @7 I. J* ~0 B Y2 ]) _( J
: C F: A; c$ B9 b4 J' ?$ L+ Z4 b# }代码:
& l6 _2 o% `6 ], g; f( h, x' O: P) x
void CWorld::SetLight( BOOL bLight )" t9 M X# _! [9 a
durch
0 c' x+ T- S0 T- I( HCode:" e# R6 ~& P' a6 T b0 O: U
void CWorld::SetLight( BOOL bLight )! t# l4 k' U4 ]" v* ]4 G
{6 ]% o2 H6 Q9 F+ j, k
//ACE("SetLight %d \n", bLight);: u/ t, n. j4 F/ ]& s* k
+ N' b# D+ d5 B# `/ h! v#ifndef __WORLDSERVER
' h7 i% ], z6 E0 Z: I L& r. M DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);' |7 g/ b" d5 [; k: Y9 y; b% I
CLight* pLight = NULL;
) r2 @9 N8 ~ V4 i+ a% E0 ^# M0 _, N6 n1 q
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
9 A1 l/ C) ]- k* \# l2 Q7 R
' M9 e( }) C8 e/ K- r pLight = GetLight( "direction" );: q h( V0 Y7 F
) }9 t# f* P& f1 g; ]* F& t
#if __VER >= 15 // __BS_CHANGING_ENVIR. x. Z+ Y+ S8 t4 r
if( g_pPlayer ){
3 V/ P# u' ?. L- l) f, V ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
& l5 \" ~1 x0 Z' Y if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ ^/ `3 Z5 U8 M; k8 T {5 y) i9 c9 ^ {2 D
if( pLight )
0 c& v: F* P5 v! z {
" @: U0 q2 _+ [ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) |( W a* J$ K6 ^3 ?8 e7 i
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
* q9 H8 E( j4 p8 Q pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
% H# k( E) w m2 @ T- B
) ~7 W5 \: Y' R: E6 ~5 G3 Y pLight->Specular.r = 2.0f;
r" m3 V+ H2 o$ ^2 p5 o pLight->Specular.g = 2.0f;
2 _6 J+ V! x( {/ j, l9 U, F7 { pLight->Specular.b = 2.0f;
* C+ i( _, ?% I" p
& F: d+ T4 ~4 T) [% r2 i4 \9 v/ G pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
3 t8 e9 p) ?/ {5 ~ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];4 D* k1 n: O c5 O% b! P
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
7 n; A7 ~ x' V8 V ' e/ m# h1 h# [2 L
HookUpdateLight( pLight );
/ Z" n7 n U* W$ ^) t5 g
3 i- V+ s6 D" _( c0 L, c' R memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 a; c: v2 o0 Q* h) v6 `. }! V/ h
! L1 e* b- z$ ^8 K8 F$ k- E pLight->Diffuse.r *= 1.2f;
8 D0 y% N" G8 J! Y pLight->Diffuse.g *= 1.2f;
5 _9 ~% |& F* m" Q pLight->Diffuse.b *= 1.2f;/ d8 T/ P+ k6 x- c! q
8 }) o" s% }9 }: j7 r. Z# `5 c
pLight->Ambient.r *= 0.8f;
- [& I& Y5 @/ E$ I pLight->Ambient.g *= 0.8f;; w6 V& ?$ p% h4 b" C
pLight->Ambient.b *= 0.8f;
# O, N! n A1 J) _2 K, s" l( v / r" L" Y L e0 x$ t. N
memcpy( &m_light, pLight, sizeof( m_light ) );
0 ~* S" v3 M# [. }* ]( w: L N- m5 U) Y% `
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 W; n! j: Z% h
D3DXVec3Normalize(&(vecSun),&(vecSun));1 o4 Z7 s7 c% t# j* _
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- R8 H! e% T# O/ w% _6 q pLight->Appear( m_pd3dDevice, TRUE );
$ }* h2 `: ?! V- Q4 J
! ?' \& }: L1 U- g$ Q: p! I DWORD dwR, dwG, dwB;+ Z5 X6 i7 O; s" N8 i% w
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 J& m# ]2 v `4 X5 F dwG = (DWORD)( pLight->Ambient.g * 255 );: p6 O" t/ _# s0 S o; x" f
dwB = (DWORD)( pLight->Ambient.b * 255 );3 u0 R" q0 h5 ]$ B" y/ P, D
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( Z3 a& w1 I1 M }1 J1 l# l- H- K6 k: ?+ K
}
/ @! `5 m: S H" j$ r; Y }
# I! A& E' L4 q& y9 J else
* S+ n% T, k1 m* [/ n+ \) s#endif 4 N9 h+ M* V% w# f% \! ~4 l
+ b1 e' ?! J) C$ N5 h8 x if( m_bIsIndoor ), M/ H2 Z: E$ P3 v' Z; x4 E, Z/ t
{
( |/ z, ~; c l/ \' I if( pLight )
+ |: f" [% r2 w8 J' ~5 d. n. U {
" |! H0 ]9 D; M! l( c- n // à??μ oˉè*
6 X# a. L' p8 x pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;( e7 Y' P% V3 d3 {8 q
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
K7 U' p$ o' q9 Q6 c( C1 t2 { pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;5 c* o( T3 k& R+ J1 \/ n: c
6 X$ D( M& y# M6 n
// oˉè* ??à? + |6 M' z6 M' G& X
pLight->Specular.r = 1.0f;
2 R0 u$ l% U4 S) `# ~ pLight->Specular.g = 1.0f;
$ i: ]+ l% O) f' r1 f- w4 \ pLight->Specular.b = 1.0f;: Y t0 R0 e# Q% b, s7 s
// àü?? oˉè*
0 ^ g Z3 K" Y, D pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;1 @$ ?7 B6 e% s; v4 F
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;6 G# n. C, U- w) F% R, ~8 Z
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
3 f. E# ? m* a
" y+ ]0 H+ [6 d! v$ O0 z6 g3 f if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ L# t" p% x& Q9 O
{
& ]: C: V4 A8 f4 A/ D; _: [( Z7 D pLight->Diffuse.r *= 0.6f;7 u) Q1 u" a0 E: k- z6 q
pLight->Diffuse.g *= 0.6f;
+ H5 A0 }8 @! x* L2 m8 I! O pLight->Diffuse.b *= 0.6f;
! Y' }: g" z7 z1 n6 |- l pLight->Ambient.r *= 0.7f;
% d6 D7 [2 D3 T pLight->Ambient.g *= 0.7f;1 x) M/ ]" X% \2 H
pLight->Ambient.b *= 0.7f;
1 G6 g& q/ k0 U }, A' ^: G9 _9 {" j9 Q @/ x
* D% T1 w; ^9 x' G0 M' P' P& U( g
#if __VER >= 15 // __BS_CHANGING_ENVIR; ~$ @( b, I6 C4 _
if( g_pPlayer )# i; L2 i/ Q; a6 s, R: j: C8 c$ q) g- E
HookUpdateLight( pLight );
, a' L! f$ k9 {8 g- ~#endif
" N! n+ d1 |9 h memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ B9 e2 L; M9 f- g. s- W7 A2 M/ A, U+ J" d2 l
pLight->Diffuse.r += 0.1f;# g( E8 L5 G, L
pLight->Diffuse.g += 0.1f;6 T$ ?! \* `2 A8 M) \ d M' o
pLight->Diffuse.b += 0.1f;
! ~$ z3 F! E; u3 a- T* i) [ // oˉè* ??à?
( g$ ~% ]" J6 h7 ]' K pLight->Specular.r = 2.0f;5 |1 z x" _. ?. H
pLight->Specular.g = 2.0f;
% D" w0 X4 T6 c' B1 Q1 F9 Y3 c pLight->Specular.b = 2.0f;
$ ^5 \1 \& C* m1 {' S% t# Y3 _; }+ ~ // á?oˉ
! B( c5 E* w' Y, M# ]9 A pLight->Ambient.r *= 0.9f;. |! P% _7 l8 Y
pLight->Ambient.g *= 0.9f;8 r7 H0 Z+ w% q' ^4 _
pLight->Ambient.b *= 0.9f;: [: k: w' J- M& M! O
: B$ @2 \. `% t8 t8 q) N1 s
memcpy( &m_light, pLight, sizeof( m_light ) );- t& M- _" H' \9 U) i0 l' Z
: e5 B: g P: ~+ x( h
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );! F( k! w; Q5 ]7 _* j* p, h ?9 w
pLight->Appear( m_pd3dDevice, TRUE );
6 L9 M: b2 ^# s# R 6 w/ O2 C$ m' }# X R: T4 E
DWORD dwR, dwG, dwB;) f: z1 S9 Z w8 h+ K# g7 b- L
dwR = (DWORD)( pLight->Ambient.r * 255 );
, [) I" h+ V, ], f* \' u: ~$ }6 B dwG = (DWORD)( pLight->Ambient.g * 255 );3 z3 L0 V- d( g# { b
dwB = (DWORD)( pLight->Ambient.b * 255 );
( V& C2 o+ k* z7 d1 w ?7 t dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 N4 t0 X# t/ e. P }
. i" p2 g3 H3 j }
8 T: I Q/ [7 L5 a/ w. | else
. [- G( b, {, r- K4 Y3 m: b {
" I4 Q& r4 R: g! Q) f if( pLight )' o* u3 @" Y1 f8 Q/ ]$ ?# h
{* Q# U: ` b$ [1 {7 b9 x
5 Q+ H8 I- u5 W& F" E Q
int nHour = 8, nMin = 0;6 D! o$ h/ E9 W
#ifdef __CLIENT g4 d8 y0 P8 ?0 }# d- y
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & p" X* J: d9 B9 H8 p7 g
nHour = g_GameTimer.m_nHour;7 l( E0 u0 U- Q7 \) V
nMin = g_GameTimer.m_nMin ;" B0 R4 u$ v8 G6 n, W
#else
4 B& D$ c& T7 m // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.& U! v1 Y* ^" q0 R! g
if( m_nLightType == 1 )
4 j: j: L5 B( a$ ?7 @8 h nHour = m_nLightHour;
0 o$ v2 ^2 x1 S. U! i/ H. D/ z #endif. f; H# a& i) V, u
nHour--;, J' l6 |2 P ^, {& U
if( nHour < 0 ) nHour = 0;
) u2 `6 O O+ y# Y& s! k if( nHour > 23 ) nHour = 23;
) L0 c$ F6 W1 H# G+ v4 q# t- s. ~2 W% u, x
//if( m_bFixedHour )$ R% [' [$ H* [! D9 U2 _5 w
// nHour = m_nFixedHour, nMin = 0;
6 P: V8 O r* U" n# y8 u! K LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];" ~. S4 @ ]3 j: F) ?+ `$ q- o9 O% H
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
8 o$ b& A) ^3 C. `5 Q! v& V% B7 F! x( F6 r! `/ k t
//m_lightColor = lightColorPrv;7 P/ D9 C" T1 ` Z* G0 E0 N! R9 ?. v
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;5 `" r0 C' }5 s9 u
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;2 ]1 b* u: W# O' `: m8 c1 p3 |& ~) \" N
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
( |5 L# ^* b3 o( Q9 z0 } lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;. m# _, @4 C; G3 n
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;: X3 M: A3 j. T9 A$ z7 X% d k
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;5 }7 ]3 S/ N" A# Q3 U
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
/ P/ F5 W0 v* V. j1 h1 I& [
2 o$ f/ n' x% `& G/ K5 c _8 d // à??μ oˉè*
$ M5 j: ~3 |* w pLight->Diffuse.r = lightColorPrv.r1;
( ]$ U+ Y7 J! a0 k pLight->Diffuse.g = lightColorPrv.g1;
- y# \3 @( G8 W3 T4 A pLight->Diffuse.b = lightColorPrv.b1;
7 \ T" S4 [( \+ S6 s1 R, A9 ` ` // oˉè* ??à? 2 ]) |9 [: N) z* G2 ~- Z* Q
pLight->Specular.r = 1.0f;( F- C8 j5 \, w% Q$ Z. ^
pLight->Specular.g = 1.0f;0 g% l" Z9 G/ U8 S' |4 j9 L# I
pLight->Specular.b = 1.0f;
1 B; y: m, Q/ V: H1 s9 J. e // àü?? oˉè* 7 y8 u& C( D9 B1 a# j
pLight->Ambient.r = lightColorPrv.r2;( }9 A K. K0 [1 v
pLight->Ambient.g = lightColorPrv.g2;
1 p, J6 R3 F( g' ] pLight->Ambient.b = lightColorPrv.b2;
* m2 |1 c7 n# q/ H. ?- w1 u+ H- e2 Y X+ X7 F
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- L7 x2 H5 C2 o
{1 f& t: I, F% Q6 E2 P
pLight->Diffuse.r *= 0.6f;
4 s' I7 Y6 N+ ?( _' J- g pLight->Diffuse.g *= 0.6f;: j- m d8 t8 i X5 X$ w
pLight->Diffuse.b *= 0.6f;0 [1 E- E6 T- q, X$ k2 \9 n! Q
pLight->Ambient.r *= 0.7f;- D# a" Z8 G5 l. e/ F4 [ h
pLight->Ambient.g *= 0.7f;3 K: n- t! I. e! R+ j
pLight->Ambient.b *= 0.7f;
+ ]* n+ q8 d1 M5 Z) S* m8 f/ h' Y }
y: M" z6 y" p) _) ?1 M$ o4 {- t % S% |/ P, L3 Z3 c+ t
#if __VER >= 15 // __BS_CHANGING_ENVIR8 l* Z, S( K P4 M0 C2 ?4 T% q
if( g_pPlayer )
% S' H0 m& D+ O, z- p9 U! R HookUpdateLight( pLight ); - i1 q5 H6 Z f
#endif9 v! y5 b+ {8 w* E" |4 r5 s9 Z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 j2 o9 B3 N) A i
9 }1 N' n* ?; C2 x1 B8 ~
#ifdef __YENV
0 ?" ?. w& @8 m: M( y* j7 H5 B pLight->Diffuse.r *= 1.1f;
s5 q4 C2 k( g$ f; |, D pLight->Diffuse.g *= 1.1f;4 H+ ^# K! k+ W1 \
pLight->Diffuse.b *= 1.1f;: k+ H4 Q0 Q, U' H. h$ @& C$ `2 g
// oˉè* ??à?
$ Y D ]9 o- f' N/ g pLight->Specular.r = 2.0f;, D2 r5 K s. _3 y
pLight->Specular.g = 2.0f;
8 K/ h; _: Y# p pLight->Specular.b = 2.0f;
6 [ t B1 U' j' f // á?oˉ 9 v; l, t8 Q- r$ S( i- d
pLight->Ambient.r *= 1.0f;1 u2 A/ L, j9 R& u i
pLight->Ambient.g *= 1.0f;
' w3 j9 I" u0 a$ v. M pLight->Ambient.b *= 1.0f;; H7 i; U' g" {6 U; }- m
#else //__YENV
6 c% v' M, ?! C3 j' M* {/ _ pLight->Diffuse.r *= 1.1f;
1 L7 r5 |' |* s1 w' l+ u pLight->Diffuse.g *= 1.1f;
9 o$ ^% N2 g" Q6 [, n pLight->Diffuse.b *= 1.1f;7 X" h+ t+ u, B3 F+ W. M6 ?# H
// oˉè* ??à?
) f; Q" Q5 _/ u. a! m/ _7 v pLight->Specular.r = 2.0f;
: L4 }. T$ Q3 B( W pLight->Specular.g = 2.0f;
: I3 X; e# Q' I3 a5 p. ]! C3 b pLight->Specular.b = 2.0f;
! f d( W6 g, K- o( } // á?oˉ % E+ L7 t( i% H# j: w1 I
pLight->Ambient.r *= 0.9f;" U1 c6 Y$ x1 C8 `
pLight->Ambient.g *= 0.9f;. q; E3 m+ V9 v% B9 B
pLight->Ambient.b *= 0.9f; _5 g# O' K! {7 @- X' Z+ l
#endif //__YENV
* u6 B; x5 h8 A" Y + {( W Z/ m; G a g) R6 `" }
memcpy( &m_light, pLight, sizeof( m_light ) );
$ A) d: R+ a0 M . H6 o/ u- ^" } g- q
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
) f) U6 j; e1 _5 |4 N2 v" V D3DXMATRIX matTemp;
! w$ m! a. Z6 X7 s4 B( u static const float CONS_VAL = 3.1415926f / 180.f;8 ]' f# D( j1 y: E7 x4 v! u
' _$ O7 Y. O, C/ ~- b5 w D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
, i' h _ t0 t3 t1 N* x D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
+ N. W6 q3 V9 A pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ) N0 H0 k% v$ I2 _' }
pLight->Appear( m_pd3dDevice, TRUE );
+ S. D: [2 [# q
. d) P! k3 G* G W" q% h // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 _ a7 R1 x! h) N
// D3DXVec3Normalize(&(vecSun),&(vecSun));
3 l5 a+ ^3 F, D // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
7 _) s6 V: N, x4 |7 ?" F& o: ~0 k4 v" M5 @6 D
DWORD dwR, dwG, dwB;
3 n0 ^: o0 c$ ^ dwR = (DWORD)( pLight->Ambient.r * 255 );* g. w% X, u- ~/ E2 `- w3 N
dwG = (DWORD)( pLight->Ambient.g * 255 );
. e- T- ~ N4 t, c dwB = (DWORD)( pLight->Ambient.b * 255 );
$ k; J) `+ {0 m* A dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. B7 F0 [ I- p# }1 Y }
( T* P3 ^! L% Q) t }
0 X1 L7 c4 L. N- e! ?+ Q) z
6 V! c* l. J: Z6 d m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
: g& S2 b% y- d, s# Q6 A1 p+ W# _8 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) );: b7 P; b6 Y; w8 H7 D
::SetLight( bLight );
. H; D# S# z& i9 w
" c( d/ Z! o' r! {7 d K // ±ao? ?D?í???ó á¤à?
0 {* Q: Y1 P2 X7 U a m_pd3dDevice->SetMaterial( &m_baseMaterial );
: q- V1 m# Z5 t! k& K( i
: x5 T6 ]! K$ S8 A#endif // not WORLDSERVER! s$ w& X% U' G, N- [% C7 O
}
" s3 \8 o, Z- M, L1 {, f7 r6 `- V并更换
' h" ~* U) Q2 F- h: @. G, P! Z E" H: ]Code:
, l9 c q! u: |- V5 U__FLYFF_INITPAGE_EXT' r u2 X4 u: y- Y4 v5 L4 `
定义
4 [8 _' Y2 S- ^, w" F/ j0 i
6 G1 L& A8 V% z x' R' f. r! C8 ?6 i$ T
L; Y, d$ K6 ^& e, R3 }5 R% G- S! S j2 W3 T. ]3 v' |: w
现在终于删除我的狗屁加速..., e( H& }6 e7 n) {
7 a( M4 I+ Q9 r* U: y% @, I8 [0 n; ]9 k3 {0 S7 {
4 j2 @8 }* h; Y$ _
|
|