|
|
食品车:
$ j' U+ f8 d* W0 j) a尾翼:
* K- A6 F; x I W& ]- b2 @5 k* e% u9 b8 H- _$ L3 T6 c6 ?
代码:3 q. }- ?, P. k& G" |+ a4 k# c
CWndAutoFood::CWndAutoFood()' h$ l Q* t) l1 S6 c# Z5 j
{
% m7 J4 M4 {' A: ^. k m_pItemElem = NULL;
* v; T1 E7 o. ~! r2 I m_pTexture = NULL;
; Q. a3 A; S4 @% {2 V6 K8 R" }9 Q bStart = FALSE;
+ E7 |# D- b' X, \& w' ?}2 B7 o0 }8 z! H: I' t# J
9 s( H- P0 l( Q# f7 H: n6 m8 LCWndAutoFood::~CWndAutoFood(), c+ j9 Z% H; G
{2 H6 F( n% M9 R/ B
AfxMessageBox( "AutoFood ist gestorben " );: O8 g% K, a/ N3 E: h l* A
}
) `6 M- Z/ ?( m9 Y$ S* \: F' TBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
, O H' r& B7 A4 [3 ]) Z: x2 ~{8 `4 y) D# f* a" i3 w
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
% J9 Y& }' g: Q7 y0 M) W}2 o1 k- C7 b3 b g( Q
$ c. t! w/ r$ H# b7 T; z
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )9 |. Q+ C* ?; @
{5 X* e, w- P2 ~$ ?# K
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 B$ g4 T- n/ Y4 R; ?
CRect rect = pWndCtrl->rect;
6 o6 _+ G0 a7 c& C& |7 u if( rect && rect.PtInRect( point ) )5 l @& _3 e/ M3 u2 X
{' V. H1 f1 M( e% I6 q, q
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
/ ?, h' K! v0 g if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )/ y x6 ~- ~- |$ _; k1 t
{5 U; m$ f: y' L3 W6 [
if( m_pItemElem )
/ @ [0 {5 M7 T2 e" M! g: ? {
0 D0 l" p2 B9 R {5 Q m_pItemElem = NULL;
* I8 S- B( e0 W }5 S* q: d- ^9 k/ A n
m_pItemElem = pItemElem;8 b7 B2 ] ^. n4 T* x% z2 f2 q
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
g4 K! k) B. s" g: ?2 y }else{
$ v; i0 u4 v) Y3 k% M, V SetForbid( TRUE );
; K4 T8 f2 \, t& Z+ n4 w I0 J$ r }
0 ~; K9 F8 c: ^2 X- N }else{
9 [; g0 B2 S1 Q% Q! h8 {4 W SetForbid( TRUE );* ]5 A; [ n7 {% J8 v! s
}
M0 P' m' ]3 P$ i h. S% T' r return TRUE;* l7 f4 M9 v, b [2 Q. C- D
}3 b0 p4 X5 a/ V; [. I9 `8 U1 T
: ]- x+ X* U9 W. ^) \1 BBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )/ h9 l5 j9 E% p6 n: F ^
{' v; T8 I" r; w' \2 K* u3 M
switch( nID )
2 g% c4 f$ w9 j. J7 Q0 G" _ {7 M! r" e, b) f, A
case WIDC_BUTTON3:
* P# m* d5 y3 ~, g {' \/ z; i; q# H- M6 j
bStart = TRUE;
' m8 V: p# A! T2 ?# A break;4 y& C/ \" u% s! m6 V8 p9 R& I
}
) i0 G! {& e* f# I) s R7 w. t. y0 } case WIDC_BUTTON4:
6 s. M- G1 F* T6 S {
! x. C3 S8 K R( o# U$ B8 b bStart = FALSE;" J3 ~; L" q h3 T' G5 e4 |
break;. d( r* A* Q* D5 d+ B
}6 T) J* u) X3 W& \+ F: k
}$ R% A5 {+ D2 X$ I/ J, M
return CWndNeuz::OnChildNotify( message, nID, pLResult );5 d4 m6 G" g) H4 C1 U
}
: I, v& j$ r: `# Avoid CWndAutoFood::OnDraw( C2DRender* p2DRender )6 [4 ?# x. l9 n$ A
{! w, k8 ^" \1 C9 ^1 t& M; e2 s
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );/ q1 h( e2 m) j
if( bStart || !m_pItemElem )
3 K3 y. @; X; y {
: N2 y% _% o" {4 |5 G2 H pBtn->EnableWindow( FALSE );
; B h4 S% \+ A. D }else
; ^/ D! b8 l3 z- \. P pBtn->EnableWindow( TRUE );
v9 c, T) w8 @3 J4 _" B if( m_pTexture )' z" P9 q& @) C* V% z
{' j0 t7 q! n3 y7 @
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ {) O* O" S* T- x
if( wndCtrl && wndCtrl->rect )
1 f" f8 _4 q. r& b7 ? {
/ r% ?6 A; v1 C' ?. ~# K# f m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
" _0 y$ S: V) O0 _ }; p: J% M _- M: E
}
1 p/ _; m" |) _% B6 y}9 W$ q' `4 |8 M4 q
/ C3 e! L% H1 }7 `4 N0 f7 h# b, A
BOOL CWndAutoFood: rocess()
9 J5 f' _, ?: a( [- m! _{' D" F) A; W: y# H
if( bStart )
% f0 e( b% y5 X1 a+ N8 l6 ]" q {
2 e! z% z8 a& W% X' S/ v if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )5 `" M* W8 Y# C1 m* s9 h3 d
{" k5 _! C3 J2 F K! S% n) b
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ); x( s* N8 I; M) i+ m& s! a
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
, n. }1 H7 Q5 q' \( ]2 c' J1 _ }else{
8 g% R3 v9 K0 `# f6 ^, H3 O5 g bStart = FALSE;( j; k" k4 q! f, L
m_pItemElem = NULL;
/ s- {2 m9 _2 }) h4 T; o& \ }' H2 r/ r3 m3 A0 J# W
}) j+ n3 Z" P; t8 c5 H' o( Q. g5 x
return TRUE;
# k3 B: L5 V" [. t3 @}% |1 V7 m7 c) k s9 K
3 p& f, t/ {* T1 T1 b8 p6 Q) u登录视频废话:
) ~# |1 c; I: u* i @尾翼:
9 _' f8 z3 p Q7 A, g; s8 x4 [
8 S/ O! \' E/ f代码:
5 P6 |3 J$ ?* o0 i) B; M* F3 J& S8 ~
void CWorld::SetLight( BOOL bLight )% ]& C4 R1 W- b* }( A
durch
, o' \! G( g. ECode:2 n* [6 ?" Y* Y! Y z) }6 P4 q
void CWorld::SetLight( BOOL bLight )
# P* N: ^! n7 t) n7 E3 @: d- E- d! C{
, D' O7 P) ~+ f+ E% X //ACE("SetLight %d \n", bLight);
' A9 q) ^3 J9 r6 P4 W4 g& O' z0 _, a) M* _ * Y. m. C) v% N. ^( m$ q# j4 h) D# I
#ifndef __WORLDSERVER ! q0 ~ z. i1 {. Q- U0 _ C+ o m! k
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
3 b0 ]# k& J# ]( A2 P5 G CLight* pLight = NULL;
/ W; Q& s) p1 n8 d7 m" n/ @# I0 `% b; E! K! m5 F
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );+ C l3 j& w# K8 f
: |( c* U6 h& M3 n, C+ M0 E6 h% k pLight = GetLight( "direction" );' C/ Y4 `. ?5 r
7 @. ^8 |/ H9 R#if __VER >= 15 // __BS_CHANGING_ENVIR
: t6 [' N& c$ Z8 A if( g_pPlayer ){
d1 Z* S1 c- B ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
4 U7 H+ g" r' x if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
& F& G8 c o- E( c5 o {
7 Y; R3 u2 K( T! [ if( pLight )
S& a3 @! d) W {) M9 Q" r+ f" ]3 F' B9 q3 w6 Y% A' J* v
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) v5 }( u8 _7 C/ L- o+ |
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];5 r( j! C# U2 H* n$ M% ~/ _% j. q
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
7 w% N# ^ U( w5 v; M* K9 Y( M& f) w
pLight->Specular.r = 2.0f;
+ M! p% X8 [4 m, A5 `+ ` pLight->Specular.g = 2.0f;0 k4 p; H" f0 e
pLight->Specular.b = 2.0f;/ f$ X0 [: \# B! g- E
, s! P7 o; B2 p; l E
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
. Q4 c4 _5 h; f+ b0 ^3 i pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 C2 T" M2 U8 i) g4 _! @; W; `* a pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];7 c0 ~7 t, T5 Z& }/ a) [7 s1 s9 _
8 Y% Y. w% O) c# p' K# ~# J HookUpdateLight( pLight );
6 s; \: x8 }" R7 A M, o& ^1 M# A* I: m* m7 G
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' {* R% D" o- G( _6 U' s
; E4 i2 s- U- w, R6 z% c pLight->Diffuse.r *= 1.2f;* n! t% I3 J9 n: e2 m, Y+ K
pLight->Diffuse.g *= 1.2f;
8 h& L$ U# s3 s0 z pLight->Diffuse.b *= 1.2f;" ?7 N, a; x6 m' }) V: ~ d9 J
4 e" l# I! {, m: F6 _0 Z
pLight->Ambient.r *= 0.8f;* _2 y* A- d, d! q
pLight->Ambient.g *= 0.8f;
; o% x2 c4 z6 M pLight->Ambient.b *= 0.8f;
5 d+ m% C, q' [# N3 o 2 E$ {/ r* w( q3 h' G
memcpy( &m_light, pLight, sizeof( m_light ) );
+ e I$ |" @# r* s$ S
+ @) k1 H6 r. X; ~9 B" r# E D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 s! E! H) H" c8 K7 I2 w D3DXVec3Normalize(&(vecSun),&(vecSun));3 p/ p& X7 ]' L4 H( D. c
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ) P9 v' m* {5 m) R0 T; T8 J
pLight->Appear( m_pd3dDevice, TRUE );( `: B+ M s$ }7 B- n, b- b
: h+ X' M* ?7 y8 W5 d) b& a DWORD dwR, dwG, dwB;
$ N4 Q& K) r5 l2 v- t H' p5 M dwR = (DWORD)( pLight->Ambient.r * 255 );7 d+ x- e8 w+ b3 o( ]
dwG = (DWORD)( pLight->Ambient.g * 255 );$ C! e* H! W# E2 B$ U5 K
dwB = (DWORD)( pLight->Ambient.b * 255 );& A% f5 K2 {$ @( Y. ~ {
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 N' i1 y7 j# b" r7 ?* b }
- M( x1 ]. D# r; i }1 E4 _: D! u( ~: u' E- w5 k
}3 I0 \! K- F1 l' W2 D7 |, Y+ s" ^
else% s% Y0 l7 e, _3 G
#endif
, Q; a$ t7 }' a
' K% h# J+ ?, @5 S if( m_bIsIndoor )
; [( P9 r! \( Y! ` {
6 x9 v+ B) X+ {: v+ \' W: O* f if( pLight )8 A3 f$ ~8 P# w' T u- c: G$ w6 w/ F( V
{ # |. @. Y; u1 M9 }, c5 A! g
// à??μ oˉè*
! k8 a7 @3 S2 ?, l" r# K8 I pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
- m0 ~' b9 ~! y0 S e pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
1 n; u, s5 F# J: _ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;( T. \8 m& h5 C; Q
7 [& _% x6 q- j; V: [ // oˉè* ??à?
5 m, K4 O: j. ^- g7 A pLight->Specular.r = 1.0f;3 G% `; b4 ~% j m; C9 Y7 y3 j
pLight->Specular.g = 1.0f;
: x7 X+ D! G* B ~6 J pLight->Specular.b = 1.0f;' _8 S* r! p A' D$ m0 g
// àü?? oˉè*
7 U% s3 y q! N pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;. ]* [% D3 h4 {; O/ B; M
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
$ `" b- B. E! t. {+ H/ ] pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
& m3 t# O3 o# g& \+ [1 s2 ]5 S& z" ~/ H: p t4 y
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.4 |& h( H# P5 q$ b% T/ a
{& L9 n2 r/ R& ?$ _# y" e
pLight->Diffuse.r *= 0.6f;
: R/ _) W0 U9 p" q- h pLight->Diffuse.g *= 0.6f;
2 U5 ` [+ |/ f7 [+ D pLight->Diffuse.b *= 0.6f;4 `! l/ A/ c) g+ G
pLight->Ambient.r *= 0.7f;
' e$ E7 ]$ _$ }" e# g9 m pLight->Ambient.g *= 0.7f;
, [7 _) @3 u; m) _ pLight->Ambient.b *= 0.7f;
* b) d& z: ]5 u. M }+ a% O, s+ L+ A4 W! V4 S! X" E6 F
$ u9 v+ Q+ W. k
#if __VER >= 15 // __BS_CHANGING_ENVIR
+ F8 |" i- P( G% V9 T if( g_pPlayer )
# D! t! ^9 }/ n* Z& D6 e- O HookUpdateLight( pLight );1 G0 E8 c5 I9 H
#endif- Z( O/ b) s4 Q: ~% m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ ]% j* e0 a) ]! m) ]% w! g4 i; D3 m1 B0 F% v
pLight->Diffuse.r += 0.1f;: l+ |% w# p6 G, P, ?$ { B" e/ a
pLight->Diffuse.g += 0.1f;7 l) h2 i f' p q5 h2 h2 }
pLight->Diffuse.b += 0.1f;0 f# y# E, I3 F% p
// oˉè* ??à? " ]: a1 H6 |4 ^% h$ h
pLight->Specular.r = 2.0f;) b7 z0 I/ O( u9 ]: N0 s) j# T- J
pLight->Specular.g = 2.0f;* i8 D+ w* Q: V3 G, w
pLight->Specular.b = 2.0f;
d- g3 s6 V# e; j // á?oˉ
# e6 O( S# q" M& f* t- k pLight->Ambient.r *= 0.9f;
& n" J" k6 |( c) }8 g0 n+ P pLight->Ambient.g *= 0.9f;
) S" X( Y" @8 J# y4 h% s1 l pLight->Ambient.b *= 0.9f; x& U" r; w1 Z/ U* N
3 {8 P- T5 o" ` memcpy( &m_light, pLight, sizeof( m_light ) );' M3 f4 o% M5 _% J3 ^; \
4 k3 ?0 I" c1 |/ Z6 u! _: r: u pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
$ Y! c" A! }3 S. n pLight->Appear( m_pd3dDevice, TRUE );( }& L( j& u1 ?" ~( a7 U$ ~8 _' r
8 o$ |. Z3 Y; [1 P
DWORD dwR, dwG, dwB;
T% r5 n, q: \: N5 A: p dwR = (DWORD)( pLight->Ambient.r * 255 );: L1 }9 W4 t% m$ h1 ~9 @0 e W
dwG = (DWORD)( pLight->Ambient.g * 255 );3 D* y7 t# n1 z! U, P9 H
dwB = (DWORD)( pLight->Ambient.b * 255 );
- N8 U. S) Q1 I1 ~" O3 T dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 L8 h6 Y9 Y/ Z5 G
}8 b( z+ P/ p/ k0 `* K
}
. L+ D& x% M9 r& H" Y+ p else3 ~8 p4 A( N5 @: T- }- ~
{0 g9 ~, Q( E- P% C7 z. U
if( pLight )( A- t5 L* u x- f
{( U. v; V: R( S$ s6 ^
1 x; s% t+ s( O$ R+ K& m
int nHour = 8, nMin = 0;
& W9 H8 t9 |6 R2 X #ifdef __CLIENT' P7 q4 U2 j; e3 X" p1 h0 J- q( T
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. m8 s/ \" v n- }1 n
nHour = g_GameTimer.m_nHour;3 G; {! m' a+ S" A
nMin = g_GameTimer.m_nMin ; V7 u( Z" X2 j* B$ a
#else
+ S! g9 q, i. `: q) B+ | // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.' X& k' z% e0 l3 M9 K
if( m_nLightType == 1 )5 h/ A3 B) v0 U6 `" f' p
nHour = m_nLightHour;1 G8 u9 K5 x }5 r1 z
#endif
* t2 g t; g, r# W, o9 b5 w nHour--;
4 ?( {# L: ^ _- g if( nHour < 0 ) nHour = 0;
8 y1 S9 \7 A. o if( nHour > 23 ) nHour = 23;5 o* z A4 i1 z
2 K4 a& d" p$ n7 \
//if( m_bFixedHour )9 K( R# C; s& r
// nHour = m_nFixedHour, nMin = 0;9 c2 }1 Q( n9 m
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
1 D$ x3 ]- J) M! M2 [ LIGHTCOLOR lightColor = m_k24Light[ nHour ];* m& b/ M5 S1 [! A5 |! s$ q5 I
" U1 p, Y3 j" v* b- C //m_lightColor = lightColorPrv;$ J% i, G1 f: Z3 E5 J
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
8 `( k4 f+ ~" E: y" n Q/ M" K lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% c9 K( [$ D7 C& Y, H& k0 k lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60; b. s6 R: e' d/ x1 O) |; O3 X. p
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
/ ?* ~. `: J5 h+ V3 r5 a/ `0 r lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
" z4 i6 s5 k! _8 D lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
I' X0 {; Y/ g9 p8 a) c; i# a+ K: ~ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)" ]9 r7 b. T2 O! l
' a- I& a& q9 |/ b // à??μ oˉè*
+ X* Z- q- e1 j8 I2 S# u; | pLight->Diffuse.r = lightColorPrv.r1;
. l5 g9 t3 Q, l8 ^2 o/ r# {2 h" E pLight->Diffuse.g = lightColorPrv.g1;2 C; ]+ F4 M, Z: e* D
pLight->Diffuse.b = lightColorPrv.b1;
( U1 O4 O) G5 f; \ // oˉè* ??à?
/ ]% \( C! n, T' T$ U pLight->Specular.r = 1.0f;) K& Z0 T/ R$ T5 q6 Q' n
pLight->Specular.g = 1.0f;* V4 p# e' {- A$ s4 p1 i) @: U7 Z
pLight->Specular.b = 1.0f;
- r" w% u* G" V# D3 `, v! R" x // àü?? oˉè* % |' |$ ~$ y. a$ U
pLight->Ambient.r = lightColorPrv.r2;% r; c( c9 M) e" `3 U( p4 g6 r
pLight->Ambient.g = lightColorPrv.g2;
+ P) V" B- N, x- ~7 A pLight->Ambient.b = lightColorPrv.b2;
+ r9 u) e4 w, ~' W* D# i8 [. b5 @ C n! u& P( }
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 o$ W& j" J( w! d( f5 N6 l& \ {1 L! o- I: t/ W" N9 F
pLight->Diffuse.r *= 0.6f;
0 _7 y! s) h7 O* q pLight->Diffuse.g *= 0.6f;- \/ m; y E0 p. M
pLight->Diffuse.b *= 0.6f;
/ ?- d% V' `( v- w# ]" e pLight->Ambient.r *= 0.7f;7 H+ g" n" S! \3 L# I
pLight->Ambient.g *= 0.7f;; I4 n) \* O2 Q4 d" B4 ]& o. z N9 K
pLight->Ambient.b *= 0.7f;
8 O# ^( ~: G. n8 }' H2 f }
7 H7 w. `3 `* s6 b- H% ~# C
5 e9 O0 c3 q. b6 i; `4 Y#if __VER >= 15 // __BS_CHANGING_ENVIR
+ p+ w. ~/ `& S. R7 r/ s2 |2 B" F$ G if( g_pPlayer )% u+ i' _% j6 F! y' C
HookUpdateLight( pLight );
2 S2 I7 P/ g6 i' I7 W/ D+ m#endif
- E. x0 n8 d k1 u0 { memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 [* s# s/ @$ u6 _. q! R$ r
6 D: R, G6 M0 b* K/ f& j% r
#ifdef __YENV7 Y8 Y4 F, h8 h" n( [9 L8 X
pLight->Diffuse.r *= 1.1f;: R5 Y! W6 H# q3 v# d$ h5 i" P; u7 T
pLight->Diffuse.g *= 1.1f;
$ L0 p! }7 Q D2 Q pLight->Diffuse.b *= 1.1f;; B( ^ v. `8 _, ]
// oˉè* ??à? - A. K- I" W* w. w$ a
pLight->Specular.r = 2.0f;& f9 H$ E0 [% |6 r C: n
pLight->Specular.g = 2.0f;
+ u( i; B! ]' ^. L& M& m pLight->Specular.b = 2.0f;5 u/ i2 W- |( F* H$ X4 n2 x
// á?oˉ
6 I5 ]$ y5 v" C/ p% C( D pLight->Ambient.r *= 1.0f;
u( d2 V) w9 M pLight->Ambient.g *= 1.0f;
4 X% H% k" J; q3 `5 ? pLight->Ambient.b *= 1.0f;9 A" K) w! u8 Q: K/ A# Z" K0 p$ S
#else //__YENV7 @) p+ H+ i o- C; }% `
pLight->Diffuse.r *= 1.1f;
0 B$ E3 V; a8 w0 h6 w( D! O pLight->Diffuse.g *= 1.1f;8 z6 O0 L( ^. z6 {5 ?0 k8 W: k4 Z1 E& f
pLight->Diffuse.b *= 1.1f;7 e# @+ H! U, y* l2 h( ^* t0 X
// oˉè* ??à? ( T# [: D, R! K8 ?" G! | }
pLight->Specular.r = 2.0f;
+ d- e) @, M5 \ pLight->Specular.g = 2.0f;
) U. @9 m0 X- K* e9 D; {& H* j pLight->Specular.b = 2.0f;: a! Q P! f. ?$ J- B# U6 ^7 m
// á?oˉ s* n4 d( R. ^7 f
pLight->Ambient.r *= 0.9f;
, E1 ` r1 w! M) I9 i& `$ n& x pLight->Ambient.g *= 0.9f;
# k+ D2 X* i' ^' p9 s0 Y' V$ u2 B pLight->Ambient.b *= 0.9f;; J+ E0 b% h9 Y" ^" u7 k8 I
#endif //__YENV
4 A/ ^7 g9 V# \% Y1 T3 i * j% c" i! e, F- e
memcpy( &m_light, pLight, sizeof( m_light ) );
: }8 O+ I) v% L J$ m1 e
+ L, q8 r& G* L D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);1 c$ }5 V( U, F0 M; f
D3DXMATRIX matTemp;0 B3 d/ l! @8 n1 M# F) X, |& W
static const float CONS_VAL = 3.1415926f / 180.f; d! y- i- |2 F5 F4 t1 ]; t* t
/ q& R o# I1 t, f3 [* j D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);4 R( S; E4 M2 O3 [* T! ~
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);. C/ o, J# ~! Q' b+ a
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ( E$ m) r7 i% _3 u9 S. }$ l
pLight->Appear( m_pd3dDevice, TRUE );0 ]8 ~+ U7 K/ _5 Z! \0 L) A
8 n9 B: M$ Q0 d
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 v" [- ^8 ^! [7 z) b8 b6 V% Q# M // D3DXVec3Normalize(&(vecSun),&(vecSun));
2 v2 q0 g: A5 q. z* t/ z // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : c! _: u. o4 x6 z+ u
* m5 E3 Q b( r. M$ O9 ~
DWORD dwR, dwG, dwB;" A2 e) k l% e$ }% `
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 @/ Y n- d% \6 y* K! @ dwG = (DWORD)( pLight->Ambient.g * 255 );
8 x- b0 F$ a0 g6 V8 a* G dwB = (DWORD)( pLight->Ambient.b * 255 );% f# d- m$ O) d3 S2 b
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); . M4 [& H) O+ x6 M
}
" l7 k+ ]6 o+ L$ |! { }, c3 z7 o" A9 N% L
( j( \% z! P. Z1 N m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );- K; ~" V. H( I& 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) );
& h! P( V0 b4 D) [ ::SetLight( bLight );
! y t% _4 |+ w& T: [4 n6 F5 m% X4 U; G
// ±ao? ?D?í???ó á¤à?
. q2 q- ^. v; q9 X/ s5 H) \ m_pd3dDevice->SetMaterial( &m_baseMaterial );$ o% g; j d. y' ~/ n- n. ~
4 K6 t4 @6 H E n
#endif // not WORLDSERVER
! N2 {7 p8 l1 l+ m1 Z) V3 `}. C; }! K! B$ O1 e4 h; l
并更换
" a% S+ J' M, ~6 p: ICode:
2 L7 _ \! J/ e: t__FLYFF_INITPAGE_EXT# n3 t8 i2 |9 _" ?, j* Y/ T6 }
定义# c" c# \- B3 x$ A) s3 x2 E
8 l; R0 J& e/ J( M; q9 O/ i9 Q8 W) _
& E) I9 |, q/ b. {) C
H7 s) ^$ w4 K: w2 J
" Q* j9 N: } r2 s: y ~/ A* `现在终于删除我的狗屁加速...
. e" t1 V* e p- d6 K
Q e# R" K6 r* H9 ~: c; Z. R5 X; K! k* j3 M% ?/ o
" d$ R$ N3 X E& h
|
|