|
|
食品车:# `. X- s7 B y4 c+ }0 i, a+ `7 T9 a
尾翼:
3 M( b! S9 S7 U+ v& A2 E6 a1 ]; G) q2 A8 G0 Z
代码:
: X9 J/ M' A' D5 X% _: OCWndAutoFood::CWndAutoFood()
7 S1 A. a( J# W1 `{
, N, L2 d1 Y# Y% x( c& t( t m_pItemElem = NULL;
3 y7 @8 X' j1 Z# @ m_pTexture = NULL; ?5 M; K) H9 S$ J. ^
bStart = FALSE;5 g6 Z: I* e6 C* P" F
}. L" p( t7 d% h7 ~$ @# T0 A
1 i) d d! i/ Q+ [
CWndAutoFood::~CWndAutoFood()8 ~) Z# i _! O2 z/ Q1 A3 H
{$ x0 t# b8 M( q; n4 [
AfxMessageBox( "AutoFood ist gestorben " );
' i; Y. C/ m2 N2 ~5 O}
7 ~& {6 o9 \& E8 D; ^5 ABOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
7 x2 [1 k& {6 s" H: q3 C) v{
% U% @3 o2 V9 h. r return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );4 M7 \8 U: [' B$ R
}
2 l2 a9 K, r% @
; b( W' p7 e, ^% e' gBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
/ u% w# d+ z0 Y+ u# g' ?) ^% f{
# B; V5 J9 ?9 a) h3 @" A7 B9 b LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% X5 d. b, Z, }- Z% p7 U% A
CRect rect = pWndCtrl->rect;
$ }# n1 H. c3 x' T/ E: o) I if( rect && rect.PtInRect( point ) )) S8 f Y3 C$ c2 t# O( p P
{% w+ {, ^0 ^6 i: k
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
9 g" A& P/ j( Q- ]; w3 ? if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 E1 f0 M$ f* G& ~0 ?
{6 r9 v' e* F& O+ c \( B5 h0 ~
if( m_pItemElem )! z7 K2 h% _1 T8 m, T
{" C; a7 E1 ^, Y% D8 \! S
m_pItemElem = NULL;
; F' R9 {& s9 ~" S N& Y+ X1 { }; X! f/ D E% l
m_pItemElem = pItemElem;
- u6 s* A: B7 T# G! _& f m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
( p: M3 R/ C& u+ d+ h/ X4 \4 D }else{0 ^$ T- Z: p0 D6 i( b
SetForbid( TRUE );0 `6 h; G: @3 D
}
: J9 j3 ^! F7 }( i6 U4 `4 a }else{
+ d9 x; E1 H* M SetForbid( TRUE );
( R* S) g1 N) i. \6 H! {3 }' D }
' w4 D+ _% C* [* [! K' J5 _ return TRUE;8 s: `! Q4 B$ {) b/ m
}
* d# T7 M" Z/ y- R4 v( {- t" d( b8 @3 B" H! [- x
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )2 S" ^# l' ^( e5 L( K. z) S2 V+ {
{
2 A. C* ?/ t' Q4 T: ~ switch( nID )
% V# \) c# y& a+ g {6 l) u6 P7 i6 a; F, E
case WIDC_BUTTON3:
e. \. g* r5 N% o8 Q& ^ {! [# @2 {1 l+ o+ m* n* z
bStart = TRUE;
9 f$ k l y: C6 h i+ S: H! j break;6 ?+ B4 B! A" V4 Y9 c7 l% Z! A2 \ g
}
3 T% t0 V& \, d9 D" }1 p case WIDC_BUTTON4:: l( N* t" B1 y" N3 ?5 U" E
{/ S* O; F. q: ?, e0 f {
bStart = FALSE;; r+ e e9 \+ ^8 _
break;" I3 Z5 Q# F1 Y4 o; M
}) K+ D) d& u5 M" U
}7 v7 Q6 Y3 d; b! x/ |, `8 N( m
return CWndNeuz::OnChildNotify( message, nID, pLResult );
$ c6 Q0 K+ n' M B) s) d} 9 e3 L' o- V* |' d! K. s
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
$ |; q; \7 F5 V{2 |5 u6 @5 h( o% G, E) w
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );7 ~- W5 d4 U; R+ i* c- G2 Q2 f# m
if( bStart || !m_pItemElem )9 }5 m/ f9 W, x- f- m
{
. |) ?5 M% t, ~: `9 N- U8 ]; D pBtn->EnableWindow( FALSE );$ p: Q7 i& ?# G5 f
}else
4 x7 S/ A6 b3 [. f pBtn->EnableWindow( TRUE );! b/ B* u8 T, z
if( m_pTexture ); M8 ?* J. Q/ c/ w0 [9 k( Y, b7 {
{
( o- m7 t9 ]% f8 X, c. U LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' |/ P/ a4 g5 f } if( wndCtrl && wndCtrl->rect )* s8 L$ z+ g/ l, ^( z: v1 e
{
( N% f2 J8 ~1 F m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
! c5 W% `( [/ ]: T0 s }
& A, d5 i# J" }2 I* D( w }
$ D6 Q0 \4 T* |& I5 L}
4 n' q3 I% X9 k: I3 r; Q9 E0 O3 A4 F7 a0 ?2 ^
BOOL CWndAutoFood: rocess()
7 E; H, T3 [7 b8 W0 f7 S( W{
' y9 c3 z6 k( n/ u if( bStart ); e$ D6 ~6 w4 h* |
{4 n* A0 |5 v/ W" i
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
# [. l$ q9 _7 E- t" } {
: p$ D w1 ], c* C* {" R* d7 F! a if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ): m! p2 |$ w2 f0 t# ~
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
% y$ N: n- e& K }else{/ X- e5 i7 E8 i. e
bStart = FALSE;! ` O' e+ q' u7 i
m_pItemElem = NULL;
( |9 J' i4 ?. G$ ~$ O) ^ }
z/ Z! L; W) j! m* X }
* r1 U2 }# X- I n; ] return TRUE;
! ?$ b2 A; |$ m# A% E$ ~9 S# G! u}- N9 K$ j# k; p2 e/ b
8 c' ?3 L- `: p. \. B5 \ K
登录视频废话:6 [3 J' v& t9 z. c1 u' c# o
尾翼:) H0 j, u. A1 G3 q8 p' F
+ |2 Q2 B3 ^1 t% R9 w代码:) u6 h9 S( P2 c+ R' d
D" r2 r. i g( J
void CWorld::SetLight( BOOL bLight )( @8 ^: |# ?7 Q9 ^0 `
durch0 k: g0 b. x4 e5 m
Code:& `% m; K, r- {; s. ~% G
void CWorld::SetLight( BOOL bLight )2 ]& F# W1 l. _0 |
{
" D3 W" w7 k/ g5 ~ //ACE("SetLight %d \n", bLight);* {7 `5 W" r4 `
+ R. i: @- x$ ^& F* ^6 r0 y; {9 \
#ifndef __WORLDSERVER ( K/ @1 S# ]; V
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);3 s7 V1 b+ a0 ?
CLight* pLight = NULL;
+ _- M3 ~0 `- `- X6 C; B4 V+ `! r3 T* F8 G
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); i5 ~* b& w z& p1 b' R: H
0 ~8 ]+ U: a* e5 V" j pLight = GetLight( "direction" );
9 v! G5 j. O- |7 L7 E) K9 U3 |1 h: H0 S+ r) `
#if __VER >= 15 // __BS_CHANGING_ENVIR
4 _! d: s7 T: U8 t if( g_pPlayer ){
1 @1 ?1 H7 e5 H$ k3 f5 e) r* d. L4 F ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );& _8 Q/ S6 ]4 Y+ z- E. o' n
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!! s% ], R3 I. S# R
{
6 }2 ^; C6 `, R' z% L) X* R if( pLight )' K( B( y }' _8 H0 f: W0 K) c
{1 i5 X6 L7 [2 Y: p2 ~: y, t: q
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];" p6 Y0 h. N5 @% X& U# x! J% G7 F2 v
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
u# ~9 t: z7 _5 a' |$ p, m C pLight->Ambient.b = pInfo->_fAmbient[ 2 ];" `! o2 c& U: i- n3 _
& J* _- X* o7 t pLight->Specular.r = 2.0f;
4 S J7 w6 B* l pLight->Specular.g = 2.0f;( P- e q4 `" n1 t
pLight->Specular.b = 2.0f;4 w; T4 s" Q) g
- p0 Z) E1 N+ E" U1 ~3 h4 _
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
0 ^4 w% W$ U5 g# d/ A pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
]# a/ i3 Z& m# l0 w6 O pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
5 g3 d1 X8 I7 `* `+ ?: z1 ?7 ^: W
. b1 b& O' n9 T. B+ n HookUpdateLight( pLight ); ' E5 `3 n0 F8 g* V3 p
6 k8 U# X# E( M) t# E4 q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- s4 c3 z" { L0 x2 b7 M+ O+ u 3 w, a+ k" W0 r1 A) S9 w1 B! p' w
pLight->Diffuse.r *= 1.2f;9 U8 s$ d# l; A& F
pLight->Diffuse.g *= 1.2f;0 v7 [1 N4 i* y
pLight->Diffuse.b *= 1.2f;; y$ ^( c' B4 |( o% p4 S+ _
4 u: }+ o0 \% Z pLight->Ambient.r *= 0.8f;! i3 d0 j1 y/ Z3 g
pLight->Ambient.g *= 0.8f;$ c0 d5 e' K+ c
pLight->Ambient.b *= 0.8f;
/ e% s3 C* X+ l+ y' L5 B4 g* w, l, J : Z; A. P( E+ i) O* e! o
memcpy( &m_light, pLight, sizeof( m_light ) );( H6 f7 ~- t/ w+ l+ r5 e
# M# {1 n% @- T [' B D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);* [" V. W6 r/ X. H
D3DXVec3Normalize(&(vecSun),&(vecSun));
# q8 w0 W4 B' r2 C$ k pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ) v' \( ~; q- v7 x. _ `# f- ]
pLight->Appear( m_pd3dDevice, TRUE );8 N4 W9 n0 Y3 w. O, T( d% v
" _) L( B: @2 ]8 X) y5 ?
DWORD dwR, dwG, dwB;
$ R6 J5 N8 [# `( Q7 L- w4 w dwR = (DWORD)( pLight->Ambient.r * 255 );
1 U8 ^. F+ U: y+ _ dwG = (DWORD)( pLight->Ambient.g * 255 );. R+ a) p) @' L
dwB = (DWORD)( pLight->Ambient.b * 255 );3 q% }) t$ B/ P
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );/ h; y# O2 T1 p" p" Y3 w7 D; W4 k
}6 @" P4 A9 r4 m. S( X& i
}$ X/ s) v$ w9 S" M
}
* \+ `" l7 X1 U$ O- {# @1 S else4 W2 k$ \: O8 n7 |9 @
#endif - Q7 Z* O! v* `3 s U- b
0 M* \/ t$ u7 U0 o; A
if( m_bIsIndoor )
0 a9 Z) p9 ~1 I; q" l; | {
8 { M+ W% a/ G/ i6 M8 P; ~ if( pLight )
9 q& j* K m) |; Q { - @8 E+ ~7 P0 }& L: n! J
// à??μ oˉè* 5 e0 D2 e# m$ f- b! H
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;/ e* m1 c0 k" \
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;8 w, c( `8 e. j9 E# \: x
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
! ^" \% e, l4 p' I- O
; i3 D2 _4 y4 P0 g // oˉè* ??à? 2 @' L6 \- T1 _2 o, ~- @
pLight->Specular.r = 1.0f;" q9 G9 v" ^; p6 c" v
pLight->Specular.g = 1.0f;9 T+ ?; C8 Z1 A" Q8 [( s( q
pLight->Specular.b = 1.0f;
& {% ]- V3 j$ Z. B) b // àü?? oˉè* # V8 q) _8 r2 ]: [
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
3 `+ ?. p- }1 C _, ^) E" Q& G9 m pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
% B+ L+ f4 l- A+ I pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
6 o) w2 J- @( Q* r5 w1 X
, t) k6 \+ k8 ?; o% w# m; e& l if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
4 M e/ A. V0 I' G1 j8 P {
' D& A: d% j0 f/ O% g2 z+ H( e P pLight->Diffuse.r *= 0.6f;; c7 f0 r) B+ L
pLight->Diffuse.g *= 0.6f;
/ n- n9 u5 _0 P" }- Q pLight->Diffuse.b *= 0.6f;" N7 C" ?% c/ H+ m' L. |, E
pLight->Ambient.r *= 0.7f;: [& Z1 D# B) N0 m" H6 u% i
pLight->Ambient.g *= 0.7f;/ j* \* u4 C% B
pLight->Ambient.b *= 0.7f;+ q6 o9 I8 r- Z5 I
}' H4 E) j. ^4 S8 u5 g
; v9 p7 V0 b( k6 t1 h7 w7 s Q
#if __VER >= 15 // __BS_CHANGING_ENVIR
& i* m V* D: q% Q if( g_pPlayer )
3 A0 a& X9 _& D+ l# `6 z HookUpdateLight( pLight );
1 H) N( D( u3 x* N; Q2 ^#endif4 e2 j1 H. y5 i. n: u( p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 L2 `$ s& b& Z) M
2 `! U( K4 }9 i X; ~" \. v9 H% z pLight->Diffuse.r += 0.1f; `: t! m1 }7 v/ U! g$ |
pLight->Diffuse.g += 0.1f;
4 ]; A! F) S6 Y& J pLight->Diffuse.b += 0.1f;* b5 v; C! k' n5 n, C
// oˉè* ??à?
3 c3 H: j: \* v2 @1 b2 B pLight->Specular.r = 2.0f;& E; T% {3 r+ s8 A
pLight->Specular.g = 2.0f;+ ~0 H1 a0 w v; {# ]( k$ F& l+ v
pLight->Specular.b = 2.0f;8 |# u, {9 u0 D q
// á?oˉ
5 T1 `( M4 g, q5 N pLight->Ambient.r *= 0.9f;/ ~" K \. U/ A# [+ W% c* D- c
pLight->Ambient.g *= 0.9f;/ f* d4 V0 G' I0 j
pLight->Ambient.b *= 0.9f;
% {# D( m9 W* U& b$ ^4 B* O6 b5 O+ M8 {" ^9 d! g- I
memcpy( &m_light, pLight, sizeof( m_light ) );1 f; h2 L+ `% B* S% U, r
$ I' y8 K6 P. a5 ^
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
- y3 G5 r# N1 c5 M5 T& p. \2 I pLight->Appear( m_pd3dDevice, TRUE );
2 e; ^9 Q/ g; i 0 \1 m* B! y, l# s( | {* c
DWORD dwR, dwG, dwB;
. `0 P4 c& }5 ]6 a dwR = (DWORD)( pLight->Ambient.r * 255 );8 M* ^, i$ M, B$ n n
dwG = (DWORD)( pLight->Ambient.g * 255 );
& ]# H; {# t% Q6 j, m) Y3 N dwB = (DWORD)( pLight->Ambient.b * 255 );
+ x( F7 I" |! u: i* M# G dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- d& a( B" H8 t+ ^ F5 L' `9 O. f( j6 ? }
# _% K0 Q+ G+ u0 x5 t( l3 y- S; x }
* C2 L6 _: H) K/ {4 a! ] else/ b0 P$ G9 U& C7 A0 V& r7 N( p
{3 J3 U$ m1 |) d' y( M
if( pLight )
! z0 N1 ^, P2 a$ U3 \8 _0 V0 g {1 t9 D7 K: V% \5 O- B' e4 y
" Y% N) o# t! H: ^- A- Z
int nHour = 8, nMin = 0;- }2 v, o* a& c i) |0 T; }- W
#ifdef __CLIENT
0 T" v7 W6 X/ ]3 C/ C0 d* x // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
3 t* b/ C# i- @' D F2 Q$ g/ b' @+ d' f nHour = g_GameTimer.m_nHour;
1 f) w' Q1 \: p" { nMin = g_GameTimer.m_nMin ;
4 T- a, [" b2 h( K) c& Z/ D #else
+ j* {! B& x/ m K/ j1 J" ` // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.9 N, W1 H' p( }' h# z: J# }
if( m_nLightType == 1 )
$ H1 E8 V, u5 ~: I nHour = m_nLightHour;4 ~: K. H0 n$ g9 `3 V
#endif
0 N0 s, ^$ \0 T nHour--;' e$ \4 Z+ A# O
if( nHour < 0 ) nHour = 0;+ `; O, v. e: `( J
if( nHour > 23 ) nHour = 23;
# A$ K2 a! w! Q6 e
% y. D8 i3 ^" u4 M+ W9 J7 S( P //if( m_bFixedHour )) |$ X( F- b, l0 }
// nHour = m_nFixedHour, nMin = 0;5 q" h' e. l1 j# B! b# t. `
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' k s3 e, ~+ e4 w/ V LIGHTCOLOR lightColor = m_k24Light[ nHour ];
% Y: ~. d) _( o% t t- @
+ I' k) _1 K$ ?. [4 p //m_lightColor = lightColorPrv;4 n& c: F: v4 a0 A7 e
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
' w: F8 {+ K7 m( \ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;* l" ?8 j5 A. S5 V& Z
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
d8 s1 X z7 A* c4 q lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;; x9 v" Y T! Q
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
: _( g I9 z) H3 ? lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;7 ~! e8 H: ]" @' Z( I' {! u+ K
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
* U2 w3 `- T+ v* u& e8 a$ @ ^& N, \/ ?' o
// à??μ oˉè*
' p7 x, o: V$ w! e8 ^" g; M- I! S pLight->Diffuse.r = lightColorPrv.r1;) n* G7 Q, v5 ^% { Q9 R
pLight->Diffuse.g = lightColorPrv.g1;8 l' [. q1 k9 {, n' z6 T
pLight->Diffuse.b = lightColorPrv.b1;
; h* T4 ?( D; r, M( d( g // oˉè* ??à? ! ]1 t- v4 L# U! X- l8 }( b
pLight->Specular.r = 1.0f;" f7 g+ D3 Z: U9 Y, O* k& W
pLight->Specular.g = 1.0f;
. t4 f( x$ ^0 m" k; T- ? pLight->Specular.b = 1.0f;
* o' ~, C. A! ` // àü?? oˉè* " r6 i% g9 }& H
pLight->Ambient.r = lightColorPrv.r2;. l9 |/ @$ p& ?$ `
pLight->Ambient.g = lightColorPrv.g2;
1 c+ i+ W5 R5 m9 D, q pLight->Ambient.b = lightColorPrv.b2;0 w6 G% x t/ l
& |( E5 q! u% l P if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
0 V& r- S/ U, _6 N* a0 Z {
# Y4 l4 N! y& O: k; s6 Y pLight->Diffuse.r *= 0.6f;2 o% m F6 k6 [* k- X
pLight->Diffuse.g *= 0.6f;
8 G8 n6 s2 T9 e. k3 t pLight->Diffuse.b *= 0.6f;5 X( u9 k9 u' ^0 y) K
pLight->Ambient.r *= 0.7f;
) t# a/ I0 f2 u% N pLight->Ambient.g *= 0.7f;
1 _5 T* X2 U5 d7 O1 e. X; e pLight->Ambient.b *= 0.7f;
: o+ A1 Q% ^+ U% Q: T3 a }. H( G4 l# L3 w3 G6 b; a7 K
, e$ ~0 v! ]! O' r
#if __VER >= 15 // __BS_CHANGING_ENVIR
, ?# m: l% ]; o$ v) Y3 U if( g_pPlayer )
+ `$ q7 i M6 f7 I; D$ V; d) ~% X HookUpdateLight( pLight ); 1 V8 `; E& `% [0 r! u. {
#endif
6 I8 g: j# T# X, W2 S a0 e2 { r memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# t3 W7 p; P+ z. [! ]" O
, @; q- X+ b2 {, v: w# Z; J
#ifdef __YENV" J! A7 Q6 R! t1 R" u& i# d9 R
pLight->Diffuse.r *= 1.1f;3 k* Z" l* {$ L- e, }% N
pLight->Diffuse.g *= 1.1f;
0 l3 _- k' i: Y0 Y0 K pLight->Diffuse.b *= 1.1f;5 Z. _ w2 s& h
// oˉè* ??à? ( L4 P8 j) [$ Q4 m; C0 ^* P2 ]6 _
pLight->Specular.r = 2.0f;" Y& V" O+ B7 B D/ }3 [9 C* d
pLight->Specular.g = 2.0f;
& }( ~! ] Y$ ^) \2 ]$ Z; K pLight->Specular.b = 2.0f;
, o5 [ [9 Y7 _; E! }+ k, p // á?oˉ " b* j2 b$ ]/ y8 k0 w" m
pLight->Ambient.r *= 1.0f;; n; T2 l2 Z& O$ x* I5 `+ |
pLight->Ambient.g *= 1.0f;
8 V; u3 t+ {3 w+ ?) G8 u6 L pLight->Ambient.b *= 1.0f;" x. F3 a5 C% N0 t7 e
#else //__YENV
1 k# x9 L2 i, r. y pLight->Diffuse.r *= 1.1f;3 x) B/ T' W) y: z# o/ ^
pLight->Diffuse.g *= 1.1f;: ~; `1 |9 y+ h4 l# q% c' d. S0 I' E$ i
pLight->Diffuse.b *= 1.1f; g \" U" m+ u B q2 ^$ w+ t# |
// oˉè* ??à? 9 W# \! C4 Z+ Y4 t
pLight->Specular.r = 2.0f;
" x# |6 d y* O2 ~/ e pLight->Specular.g = 2.0f;% K0 j; g% M6 ^3 I! e
pLight->Specular.b = 2.0f;3 e3 Y4 k. C! s3 X% N
// á?oˉ
0 k5 m( ]+ M7 G- I- k pLight->Ambient.r *= 0.9f;
' i; X, j: J1 ~( u9 @+ X pLight->Ambient.g *= 0.9f;
' o3 _5 A2 k7 M. w4 z% w! s pLight->Ambient.b *= 0.9f;
3 p& ~/ j; f: k# R. N) ]#endif //__YENV
# V- P4 ?( l/ u/ s
3 }% G, k2 V) o; I+ u" p9 A memcpy( &m_light, pLight, sizeof( m_light ) );
) d. l3 Z9 Z; K3 I1 E" l# P7 z * N) B* J, M3 S d, o7 v O N
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);1 X" Y' o! c+ v, h3 s* H7 O% R" G, g" }
D3DXMATRIX matTemp;
+ Y9 n, Q2 ]0 u+ A6 ?" } static const float CONS_VAL = 3.1415926f / 180.f;+ m4 V6 f9 |* _8 k7 L8 m3 k
6 b- m) c& {4 H* s' }+ r4 ` D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! x8 z# D! R D' F* t9 d- H! G D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);6 F9 F4 i# A" u% ?( Q
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ! f1 {1 V7 V& B$ ?6 x) s
pLight->Appear( m_pd3dDevice, TRUE );; Y; F" l# a$ [
& U X# C5 Y- y3 y- h( W0 c! o // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 I8 v9 X8 t0 O% J& ?
// D3DXVec3Normalize(&(vecSun),&(vecSun));3 H8 {& k7 z6 ]" h4 B; N# X9 ?
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 }2 E* T5 R7 I2 ?) W1 M* r/ y
, C5 k" c6 `( O$ f. d, O
DWORD dwR, dwG, dwB;
, Y! v: \; E, p v9 G; f* @ dwR = (DWORD)( pLight->Ambient.r * 255 );& \& B; P* s& h! C T2 g9 [( T
dwG = (DWORD)( pLight->Ambient.g * 255 );
3 J% a8 p1 N- R+ {4 p5 ^+ U, Y0 B dwB = (DWORD)( pLight->Ambient.b * 255 );
& H c, H9 {/ ^* Q1 _: r+ ], A K5 ^7 k9 P dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ o7 ]! B9 F' a( w, k, q# U- K }* ` f) i3 t; `7 l
}: B8 y3 `" E% O8 h& L$ O
2 l V- r! J: i+ P2 W, _4 h
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
/ n3 `8 E4 h/ e. \: E 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) ); z. a; |, g/ [/ ]; |" t
::SetLight( bLight );
, _5 `3 ?* I: N, n% ]8 ^/ A7 ^$ ]0 D! {
// ±ao? ?D?í???ó á¤à? 5 O1 ]0 P" }/ a" A& I/ w& Q, W1 W
m_pd3dDevice->SetMaterial( &m_baseMaterial );0 m( i3 L" |+ V* t5 p; S3 g
) Y! J4 D* f t G) f _. I
#endif // not WORLDSERVER& k; s: F7 `3 l
}
2 V# N# G3 k0 z并更换( d! n# F9 U0 A; L0 V% X# x
Code:
% [- M! u4 i0 o9 \' Y# `6 b__FLYFF_INITPAGE_EXT2 y: Y6 P @8 D6 I( B. W5 P
定义
3 Z! b, J. E7 h# j; \/ F/ t: p: y% s, B2 S7 y4 a x* _
+ {( S+ L5 l- P: H. g& b/ a2 x; [
- y) N* N: n* ^& N( e, T' a, E n \6 S* X# K
现在终于删除我的狗屁加速...$ \& I% G j6 u; D: E# L
6 c0 `& y' b D5 ~( p4 ]
/ @8 B1 e, U8 K% `
7 \7 r E2 @6 H. w% z |
|