|
|
食品车:& s7 |* ^* I, r3 R6 \
尾翼:" w l- J* d; {* O+ @. c& O- H c# w
& w5 A: ~. `4 y# m代码:
8 y* C2 }* r2 l- ?CWndAutoFood::CWndAutoFood()
5 K5 i1 Y e3 F' c+ j: P{/ \5 A G/ Q! c9 R( o
m_pItemElem = NULL;, i+ {, [4 f5 q+ c3 ]% ~6 r# ^' a5 l
m_pTexture = NULL;
/ W3 E0 h# G; Y. |/ Q# z2 Y6 b bStart = FALSE;
1 u$ U; J' I: A! W* N}
^8 D& w$ E& k6 E$ r$ y% V# [2 q
CWndAutoFood::~CWndAutoFood()6 J! H' @ ]9 f/ J! \
{
1 [( m' j; ^8 C$ ` M AfxMessageBox( "AutoFood ist gestorben " );. H6 c4 A" F0 ^; H6 q( _: s
}
$ c3 M5 k7 ~9 v; Z9 nBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )" O( {3 v0 K7 [: o7 g" |, ?7 T
{9 Q$ J9 T% T. S" U. y J
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
$ g1 B! R, f) }0 Y3 _. G" t}3 L! b/ C$ z+ B( [
. [4 t8 {+ g4 l$ o% V9 Q
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
6 d; }- S+ s! P- L0 V' R{0 u# p2 ~# B( C. k
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 T N" T; x% j
CRect rect = pWndCtrl->rect;- k1 c2 M" E0 W
if( rect && rect.PtInRect( point ) )
5 Z9 V# a- j: p% T8 A* z {& Y- b4 P4 c7 V+ r- h5 a. h0 ?* q4 y
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );% o+ f& V; \& `1 o4 C$ o
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
: a9 w% Z3 H! C j, h0 N+ A {2 N/ h# q1 M6 t9 P' N
if( m_pItemElem )( V9 i: `9 h" ?- A1 _; B) S
{
% P0 V/ i9 i a4 d# a& C1 \ m_pItemElem = NULL;* s$ e) E9 O: u' l. n
}
8 U4 b6 L2 J |+ h m_pItemElem = pItemElem;$ P1 `* e8 m. p- j+ k8 o$ ]
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
$ R4 m u+ w% `) ~& [% l; T1 W; ^ }else{
1 j4 b0 O% t( X) H, d) ~4 b SetForbid( TRUE );
* j3 P3 `1 K H5 S }
1 g {; u9 v6 s% M* l5 l O }else{
/ I$ ]; K I5 ]! T SetForbid( TRUE );6 X% ~3 x) h+ `0 X7 |: d& Z
}
/ ]1 U7 m" C- E/ ?6 K return TRUE;/ [2 V2 d7 c" z& E% |" v8 I' _
}. w$ w4 B* }* e5 [
2 R: u( o6 g- r9 z( `- Y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ): @! Q1 B- q3 p" g8 R; v1 ~
{, z( o0 J% x( z/ d' n# j
switch( nID )9 C! [# [( h! \( ?# z" J; X
{" \$ o( H$ ]1 t2 l9 `( X* g/ j
case WIDC_BUTTON3:' s2 H6 Z$ g' X
{! `1 P* f9 A% c; b. s
bStart = TRUE;
e+ C( y" m! H" O break;
' u4 R) q9 f: U! c e9 y- c }! d5 |0 Q, \ G2 k
case WIDC_BUTTON4:% ~9 v% r! x1 N/ E" c& \! ~
{
( e" H# |$ z! o6 u% U% k1 s bStart = FALSE;8 H& K+ k! p" L: r/ T, H# N& n
break;1 a0 @* a) Z) V: N8 g4 w/ @
}
% s. s! G4 t4 m& u0 W }
( B% s! N' p0 L9 P* Y- _' n7 D# X return CWndNeuz::OnChildNotify( message, nID, pLResult );
! I, r2 Z% r/ S* y6 W9 V) ~3 _9 d; i} 3 o# h4 [/ |- b9 F, A: e
void CWndAutoFood::OnDraw( C2DRender* p2DRender )7 y* v4 P/ p3 ^; { I+ b9 y9 R5 h
{. X, k) b8 t+ i7 }. f- O8 [
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );/ C1 `7 i( k8 ?' D* K. u( A+ y
if( bStart || !m_pItemElem )0 N. L! V `0 U. C' c
{
% z) h0 i, t0 h' m pBtn->EnableWindow( FALSE );
. d, a% ]7 n _. g }else
8 Q! \5 Q d7 D& o pBtn->EnableWindow( TRUE );
: L R- B N) H# l) I8 D' S if( m_pTexture )2 E% [0 ^2 D+ [$ g# b: `
{( x b1 @% |: [9 s* B2 z' } r
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 U% @$ E9 Y. f- O if( wndCtrl && wndCtrl->rect ), R& x( x2 k3 |: p# x7 ]+ P
{
3 F% v3 w3 N3 E; P. c! U) Y m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );0 d8 a* j. Q* C; o$ A
}
& U; m! l8 t7 w$ N3 o7 T }
2 f0 P4 g; g; H+ Z}; @3 N4 {$ b! t2 M! _
- d# o% \- P" v* [; JBOOL CWndAutoFood: rocess()
1 I8 V- V: g" l3 J- }6 Y+ k3 Y2 s{ |( O) M, N1 Q) @3 E# ^
if( bStart )
2 D- q/ u2 X4 B( }& x' } {
* U7 L" t# Z& U+ d8 @1 q9 Q% J if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )- q( z1 t, H) q2 V, ?
{
+ N" i6 F/ b. x3 e6 u if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
& S9 } J2 Q" L g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );* q8 x5 I: D- P
}else{2 M+ k4 G5 Z6 l' k. K8 z' U
bStart = FALSE;
+ S9 O) `* X; N" g8 N5 g& k* ` m_pItemElem = NULL;( f' E; ?' ]5 M! q0 r T. x( z
}0 B0 L9 S; K& ~, ]. L; Y
}0 H- ]7 W9 B- c0 N- X/ ~
return TRUE;
& ^# z& `1 t6 G, r0 P5 }+ q}/ \5 a8 J. Z( u' }) {
( c( x1 S/ W% q( a3 ^1 j登录视频废话:
& L- a0 T. c+ f尾翼:
- D( g/ y6 j! T5 Z5 S) i) R" V: J2 i( H) ]4 |+ J- t
代码:9 S6 q& M& V% j
- o! Q! G% O% n
void CWorld::SetLight( BOOL bLight )4 n( T5 w; r, N4 \& v7 G, z
durch5 u% u D1 m: C* \
Code:. e# d' i$ S3 \) S) t8 Z" D
void CWorld::SetLight( BOOL bLight )6 V" Y2 U+ W5 h( c" @
{ q3 O6 E4 w& e
//ACE("SetLight %d \n", bLight);
) x* T# E' L( L
# ]' p% F* ?: u& @% E- r, |5 J#ifndef __WORLDSERVER " W5 X! M; P5 N6 B3 [, }! X
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
3 N6 b5 N0 Q0 c& |0 J0 m! k/ }! g CLight* pLight = NULL;3 n* t5 o$ N, o" f+ M7 ]
. K0 g7 I$ V) o1 T/ f D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );: U1 r" P' j/ e( U
2 p8 a* ]8 T o pLight = GetLight( "direction" );, k9 m% A) K& r% {
% E$ J3 U; N' x1 O7 [. o
#if __VER >= 15 // __BS_CHANGING_ENVIR
& Y: E$ K% a t2 @; H! d) o! _ if( g_pPlayer ){
3 ]$ U) N3 x! \9 f ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
% K% E+ b: D2 a if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!0 \; M$ P' ?7 K7 r* J- \% C
{3 T" T4 S! f/ [ W; M# Z/ T
if( pLight )
, i8 f6 z/ g' \) v7 N" d, R" l* w {
1 }: j) M/ p: J* F% K6 N$ O pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
. f) ^* t; f3 K pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 b H1 K3 j A( {( t( X
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];2 c$ y7 c# X4 T7 H2 H; ]
: C5 n% f) N1 t) F: j
pLight->Specular.r = 2.0f;
. ~/ u$ ~2 F4 ^5 {) c0 J! z pLight->Specular.g = 2.0f;
9 L; j5 p! I5 |+ _' W1 ^6 o- a, x1 n pLight->Specular.b = 2.0f;
4 k! D; H C7 p( ?. q s $ E- N9 e% P. x9 Q1 x
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];9 l. F8 K: i- u) L* n+ k
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];0 d2 o) ^5 m2 ]/ ], q1 E
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
/ z8 e- t. K4 n6 X L0 H6 y% E: S / k& ]6 N! s" S" j- E
HookUpdateLight( pLight ); - A. o C4 H) ?- {. q
' u. u3 U$ [7 Q0 @; L. h
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 }# h$ G5 E; O* F( g1 c4 E4 U0 n) D
- B" i8 a# v5 f& H
pLight->Diffuse.r *= 1.2f;
, Z4 N- [' l0 q6 Z, t, D pLight->Diffuse.g *= 1.2f;
2 b# u" V. d8 o' @' R! t% X: ~ pLight->Diffuse.b *= 1.2f;% R+ c, q# o( c+ ~+ w9 a, r& W
- y% o1 _2 ^3 ~( C; V pLight->Ambient.r *= 0.8f;: L; z2 L9 v$ u b
pLight->Ambient.g *= 0.8f;
- `7 v. N7 z6 x0 B pLight->Ambient.b *= 0.8f;3 Z5 O( t/ a, w& h/ \7 `8 t
0 C0 Y- d5 z7 E9 k memcpy( &m_light, pLight, sizeof( m_light ) );+ N+ |% c* i1 q" U+ L; j
, G% o$ Q. v8 ?; A# q5 `; }: ~
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; b" M$ K w' Z) L) p D3DXVec3Normalize(&(vecSun),&(vecSun));
! N! ?! Y7 w/ n+ l* F! ]9 x pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
" R% W6 m* B2 l U$ {8 Y' ^: [ pLight->Appear( m_pd3dDevice, TRUE );
. _) T9 m; i* Q# K2 J$ a 4 j! d6 d3 ~, L U
DWORD dwR, dwG, dwB;
" \, Z1 y& h# {3 p: u* H; g7 f5 X dwR = (DWORD)( pLight->Ambient.r * 255 );' ]+ N, \' T7 _- C3 y- g
dwG = (DWORD)( pLight->Ambient.g * 255 );3 c8 h9 U; Z8 b9 d$ X
dwB = (DWORD)( pLight->Ambient.b * 255 );6 X ]* @: r* M1 W8 f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ P" l5 ?& U9 j/ g( a1 M8 j
}
: s& N0 a; M3 E- Z+ O }# X( ]% ^5 S! e8 d5 x" X7 F
}6 r3 j* s6 D+ c1 h4 [7 @/ H8 L
else
Y: }7 H; ~3 Q4 L) w' }! O#endif # a9 c. v$ w" T' P* G
, N# ]9 E0 ?+ ]% p: e7 A
if( m_bIsIndoor )1 l7 i8 k3 \& x- H0 @, M
{: Z7 B! b% H* z' B% a5 q
if( pLight )( ]# r2 P1 I. Q+ Z: V
{ 2 w+ f& l! m! L5 q# ^8 ]" v
// à??μ oˉè* * ?# w2 V9 Z! w/ V
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
9 v+ ] ^+ ?+ ~, r& W( _ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;8 n1 u6 N- k0 z1 g& ]3 |
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;" x5 j6 y3 m% X' c
( Q& f% F5 g7 W* `; m1 { // oˉè* ??à?
/ X7 e7 t7 r$ g' q2 @: \! x1 q; O pLight->Specular.r = 1.0f;
6 A5 w! d2 _' W! f pLight->Specular.g = 1.0f;
: c$ K( e0 B8 W3 f8 `& f Y; x; [9 R pLight->Specular.b = 1.0f;) ?( k- h7 b. K: ~5 q% F9 I
// àü?? oˉè*
4 ^ S( ~9 F* p- O pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;4 |( I0 H; h9 O
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
6 G) Q: H- N8 x1 O$ f2 [; } pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
" t# I8 }5 s. V. q7 a, s* T4 `8 |- F# N, V
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- a4 a; g. W" ?( O; I1 ^
{$ I8 G: [( t/ l n6 [
pLight->Diffuse.r *= 0.6f;' V) L1 w2 t- ?4 D3 J
pLight->Diffuse.g *= 0.6f;5 |+ S3 P+ l6 O
pLight->Diffuse.b *= 0.6f;6 F L. {; @ m: C) M5 V, D
pLight->Ambient.r *= 0.7f;5 U7 H8 ~% c1 t% V0 O& L# y5 N Q
pLight->Ambient.g *= 0.7f;
' k5 I3 p: Z3 L$ ] pLight->Ambient.b *= 0.7f;7 {) s$ O: B9 g) k- S
}
, p$ z' ?5 q# G' ~
2 F8 }. s3 Q! r. \! k5 O2 O8 R#if __VER >= 15 // __BS_CHANGING_ENVIR
$ f( Z% S- I# P% n if( g_pPlayer )
+ T5 r9 }; y3 d0 _; N HookUpdateLight( pLight );0 w& l0 O7 R ?. `* k7 p
#endif1 D& |2 [4 P; \# f" D# b: `
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. Y6 c6 S1 m5 X) J1 M; t+ R' p8 R" Q; L/ \. `6 s
pLight->Diffuse.r += 0.1f;+ S6 G. h& w( A a1 r8 W" c
pLight->Diffuse.g += 0.1f;' [: m+ X, t! }( t% q d5 B" o
pLight->Diffuse.b += 0.1f;
3 b( z. ^/ h5 O5 x' ~, C // oˉè* ??à?
( |& l: K- ], x" z5 @7 \ pLight->Specular.r = 2.0f; Q' [# m2 ^ N/ T6 ~" |' N* N
pLight->Specular.g = 2.0f;
% g: X: j0 P& H5 b( s pLight->Specular.b = 2.0f;) [3 X% Y2 h1 ~; H- `5 ~3 H( U
// á?oˉ : @ ]$ Z. z X: i2 {
pLight->Ambient.r *= 0.9f;' d% i6 b% W1 h% ^8 }: f% T8 y
pLight->Ambient.g *= 0.9f;6 f& c4 R, a" R) J# b! q4 D( I& v
pLight->Ambient.b *= 0.9f;
7 {+ A5 @9 ?, k! z4 L8 |5 Z- O- m, c! i2 m8 k# J7 D0 k9 O
memcpy( &m_light, pLight, sizeof( m_light ) );
7 g5 r* v* l x) h2 m5 g( D # _( t$ s1 m( s$ i6 S$ b
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; H+ Q6 M" B, E. O5 {0 r
pLight->Appear( m_pd3dDevice, TRUE );
! P/ s& O# o; _& p# H . l) t4 f7 d6 j; S
DWORD dwR, dwG, dwB;
- M5 ?" f/ f: T dwR = (DWORD)( pLight->Ambient.r * 255 );
' N. s+ I4 u" Q/ C- Z! x; j dwG = (DWORD)( pLight->Ambient.g * 255 );
4 ]: _, N+ |# ]0 i# X" t dwB = (DWORD)( pLight->Ambient.b * 255 );
7 s0 p, q h) R5 \1 v. B dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 n4 u2 E) g+ e5 T. S5 v$ q4 y }
# f5 j$ [- u5 l- D$ f. }# c9 S }
, C8 G- u- _' d( O8 w$ i1 U else4 @2 ?4 `( P" H+ M3 g. @3 C
{
?* U8 z6 m; a4 e+ Y if( pLight )" \' e" ?' u, G+ X7 w
{5 q1 S$ N& |4 H; Y% C
, ^5 j4 e/ q9 _( i9 W# O! |4 J int nHour = 8, nMin = 0;
9 c$ K4 f4 b# L! A #ifdef __CLIENT
; |$ \2 i5 Z2 V$ ?2 y9 f // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
( T! r& D5 Z( o" ~6 C nHour = g_GameTimer.m_nHour;
9 Q# f2 W0 I. H, d9 s& U9 ~5 T: t nMin = g_GameTimer.m_nMin ;4 I; R) Q% A- r, Y; O6 l
#else' H5 @, v$ v, _) v$ P: a: K
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.% M0 t9 k6 N0 w* `- b5 t: `7 H
if( m_nLightType == 1 )! e0 j' v) r2 E, a
nHour = m_nLightHour;
! ^" M$ G; W( u. G3 a u, E& w #endif
0 }, r7 N1 O' J# ?' n0 m nHour--;, h9 Y* R, V2 e
if( nHour < 0 ) nHour = 0;+ Q+ c7 N5 _, C! E' R/ L( D
if( nHour > 23 ) nHour = 23;
P8 f- S" C; w0 \& q) z4 [
# i9 T6 P1 J* `, _0 J: k3 S* L: D6 t //if( m_bFixedHour )8 E' e- C: T3 g$ K) L5 A Z
// nHour = m_nFixedHour, nMin = 0;5 F4 T2 S1 L8 g* F& G% k
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
1 \( d! V; A: W- E, { LIGHTCOLOR lightColor = m_k24Light[ nHour ]; n. a5 ~, i b: C
/ b f0 b0 h4 v! m
//m_lightColor = lightColorPrv;/ o: V. P. y# u" D
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;) t3 o, i) _% ?2 S6 F! F
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
9 K; n; a/ u& A+ d7 q1 v lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;6 h; N2 z- i, t2 Q
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
; l4 X7 u- D& R4 Z; f( [3 _ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;% T$ w8 }- p4 P: [3 p
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
! ^& L! h Q5 U1 c' O" N# p // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)& d) i& t3 n. f! p) d, L2 u; ?2 H
+ n0 L/ [$ B+ z1 o; e% m // à??μ oˉè* * D+ [$ X. F/ [: I" F2 t
pLight->Diffuse.r = lightColorPrv.r1;1 ~- t/ e3 f, Q# ]0 U
pLight->Diffuse.g = lightColorPrv.g1;. V5 s4 Q( i8 ^: B; b8 n0 B& C- M9 w
pLight->Diffuse.b = lightColorPrv.b1;$ E3 O. m+ ~' o @8 d/ V
// oˉè* ??à? 1 c1 [6 e- S" ^) t; e
pLight->Specular.r = 1.0f;
4 A( s$ \1 H4 B7 J" \ pLight->Specular.g = 1.0f;
; \+ h6 d4 D1 q" f pLight->Specular.b = 1.0f;
7 t; B& E. o+ @2 C& E // àü?? oˉè* 2 c" W8 c9 e; [9 N# H5 _/ J! z9 J
pLight->Ambient.r = lightColorPrv.r2;1 d0 p$ I# } L |% c& j
pLight->Ambient.g = lightColorPrv.g2;' f( F+ y4 l. w- Q
pLight->Ambient.b = lightColorPrv.b2;8 |" }( X8 t4 P# z) ]9 P
" T3 c+ [! A4 q! u1 F
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
; B& H w; ~8 \* C1 c1 N" S {
# ~$ G3 m8 N( E. j) e pLight->Diffuse.r *= 0.6f;
/ b3 C* g5 v7 x: l pLight->Diffuse.g *= 0.6f;" g8 m( J! e& u! B
pLight->Diffuse.b *= 0.6f;
, A, t0 u, c# i; H. g3 \7 X* \ pLight->Ambient.r *= 0.7f;
2 A+ Y" t& |0 A# C2 D* ] pLight->Ambient.g *= 0.7f;
- R$ A4 ]7 w! G. h9 j, S+ i pLight->Ambient.b *= 0.7f;# Z5 u/ k. N& j. H% x4 [8 o3 O
}/ A- t* B0 C7 V' ?, I8 @) w6 t# @- m
5 X, j# w$ r. ^, Y5 ^5 a#if __VER >= 15 // __BS_CHANGING_ENVIR* {% i# V$ x5 Y1 l+ r4 F
if( g_pPlayer )% R$ f" D! w# |7 X0 A& G, {
HookUpdateLight( pLight ); * \& i% ]. g& i
#endif
* Z$ M I/ {. F+ V' F memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! o# Q3 F0 [8 g2 f H+ s( K/ ~, O
5 q5 I' C, l6 ^, p#ifdef __YENV3 l E. Y8 n. t5 t4 G
pLight->Diffuse.r *= 1.1f;4 l4 g' T$ |8 P/ l1 e6 D
pLight->Diffuse.g *= 1.1f;' b/ r" |$ _6 D4 n4 [( B1 W! w
pLight->Diffuse.b *= 1.1f;
5 r6 G1 T5 i" S8 c // oˉè* ??à?
+ d5 i& G% ]$ G) P pLight->Specular.r = 2.0f;% F& Q- |, j6 N' a- G, S: F0 H
pLight->Specular.g = 2.0f;) E0 C4 [* b! q% G9 \( ]" s
pLight->Specular.b = 2.0f;% O' @+ l% l+ X# ^
// á?oˉ 4 A4 k/ t5 n1 U, c
pLight->Ambient.r *= 1.0f;
! }/ I& v, ?; j! j( E5 q4 L pLight->Ambient.g *= 1.0f;, [; }: H! P7 V: }2 O
pLight->Ambient.b *= 1.0f;: K: _, M% A# P
#else //__YENV z' M% \' K1 {. }
pLight->Diffuse.r *= 1.1f;
* q1 G, u n1 ~; F- q4 X pLight->Diffuse.g *= 1.1f;7 a0 k/ g& ], c
pLight->Diffuse.b *= 1.1f;+ V8 G$ g# `( g) r; @! q( p
// oˉè* ??à? . n) b d, E1 }) l6 {4 E5 K/ d! Y
pLight->Specular.r = 2.0f; T, u' X" ]# [4 t" ~
pLight->Specular.g = 2.0f;
0 v; I& l s. N, H pLight->Specular.b = 2.0f;' m& u8 V+ @) W7 e& P% [" S
// á?oˉ
4 ?! @3 F( U. v! E pLight->Ambient.r *= 0.9f;1 ~2 D/ p" `- [7 G0 M/ }& Y J% b
pLight->Ambient.g *= 0.9f; v5 I) J% m" B1 |
pLight->Ambient.b *= 0.9f;
5 Q& U, T6 n5 @, \#endif //__YENV
! ]/ |3 _: @8 I, E0 C ( n A. d1 w+ b/ V/ v
memcpy( &m_light, pLight, sizeof( m_light ) );
9 F+ W* O/ i o# L9 `; L3 X 3 `. [$ Q7 C+ \
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);3 t8 N+ l) r& `$ y& v: K4 V" @
D3DXMATRIX matTemp;8 r* n2 S) ]8 |# w
static const float CONS_VAL = 3.1415926f / 180.f;7 D0 e' d( a8 s! F) Z# P* U; t
( Y. Y& v$ [8 C3 D
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);2 ^8 f0 f7 E8 k/ |, R5 E3 i `
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! R1 l# {0 m. z8 @& d
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ( ~% ?9 z$ W) s2 l: e
pLight->Appear( m_pd3dDevice, TRUE ); Z# ]: s' q5 F, J8 E
# C i2 ]7 r$ M+ w, E7 ]7 i1 B // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ u4 d& x5 B& D' F' x // D3DXVec3Normalize(&(vecSun),&(vecSun));7 Q$ D/ P6 ]- }2 i6 D8 J/ @8 ^
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ( x$ R% Q. w6 w8 l4 ^3 f
- {6 M3 N9 t4 q- z4 J) ] DWORD dwR, dwG, dwB;
0 U" m2 ^% T: E2 B* ~, M dwR = (DWORD)( pLight->Ambient.r * 255 );9 f4 c2 V, ~; ~2 `2 H
dwG = (DWORD)( pLight->Ambient.g * 255 );
/ M7 g# j% b n# `; ~9 w dwB = (DWORD)( pLight->Ambient.b * 255 );
4 Z2 M; X c4 P9 u% i, t3 w; Z dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: {" F6 r7 x9 n* \, E2 Z6 { }
6 {# E; N" @: z* [: ]' ? }& o5 g; P8 y% m5 T3 V0 T3 }3 J7 s( @- j
6 d% W7 d3 D. R2 W) l _' w' @
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );& N! v. }. }4 j. l
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) );
+ z0 t1 [% c* \. d2 I, V9 V ::SetLight( bLight );; W2 Q9 ~- Z1 \$ i. f
6 e7 c) U) f0 D0 P" g8 ], f // ±ao? ?D?í???ó á¤à? ( v& y) ]4 x) m# g4 g4 P) w
m_pd3dDevice->SetMaterial( &m_baseMaterial );- P& i- Z- @9 e* s) K' r- [
- B2 G0 q; P0 e- m) ~+ d
#endif // not WORLDSERVER
0 ]5 ]1 \& r% f! |+ }2 B: D H}
4 f& O4 _% K, k/ j M1 z" I1 M并更换
% [3 h5 n" z3 K3 }; ]# I& r tCode:
) s- k" I/ O: d6 |__FLYFF_INITPAGE_EXT
0 B: G4 N7 {' Z+ t2 K \! T/ ]7 L定义
- l0 D+ \- D' ?9 p9 d- _ u
4 @% x* E% T' m( R; ^+ G5 p7 A# }0 N
, s1 W+ b7 o7 V0 O/ |2 a
/ Z6 U+ ]3 Q4 F6 B: p5 v% i
现在终于删除我的狗屁加速...2 Z3 m t4 S& W8 k; y3 m
& ~9 o& n% G( f4 S& j
8 f7 z/ Y/ \" n9 E6 w) g& a/ t) c3 ]2 P" \; Q) F
|
|