|
食品车:: r6 v4 K$ ~6 v
尾翼:
: h; j6 h/ _1 R, Q( k4 o( r# F7 ^5 a( n8 i+ @: P
代码:# \ K/ T! t- ]9 P, Q
CWndAutoFood::CWndAutoFood()
6 w; c9 T' D" `6 v{( C9 D1 `2 n# P) {# p
m_pItemElem = NULL;5 n, r; \! Y6 @" l
m_pTexture = NULL;* E9 I& G! g; S
bStart = FALSE;
; C; M$ J" e6 i( \* p}; O- c* E# j% K4 }9 r/ f1 p
# U$ Z! v* V3 D; r C$ g' O4 I) @
CWndAutoFood::~CWndAutoFood(); g: l, F9 Y/ C6 T4 p
{3 ?( }% |4 t' |' J3 d t& J( {8 J" n
AfxMessageBox( "AutoFood ist gestorben " );
4 w; ^9 n+ U, p$ V}: K V/ S. ~2 ~' h$ ? x
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )' ~" M* f0 e, z6 E5 W& J+ h z
{# ~ B* N H5 p5 F* w3 l
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );0 F$ E) }' G( a& ^# w4 g' O% s
}
1 A, p0 t5 @$ j5 d& O* r& i
; |1 @, y+ }( _3 vBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
( F( ?6 @& h, g) E1 f5 f* F+ l{8 o$ j; j( j, B. L. m, H
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! ^5 E$ Z3 z$ G. A$ Y& Y, u, v CRect rect = pWndCtrl->rect;
) Z0 v' K1 Z6 ?0 C: ?/ [4 ^ if( rect && rect.PtInRect( point ) )
0 Y" U* n! ]; H5 `, | {
$ f& a9 r, a1 |* { CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );/ d7 V4 V7 i h. z* x, W, R
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )* p; w; c) l$ O; U) Z. k
{! }9 {$ i/ l+ j: K8 ~$ _7 B
if( m_pItemElem )
$ r" ?; z, X, a: \3 J4 L% \ {1 D8 S0 w" o- d, o
m_pItemElem = NULL;9 u+ m2 }6 N' Z- s5 U+ e+ S" g
}8 ^/ a% E3 d- d3 P2 H+ @( B* f
m_pItemElem = pItemElem;
$ S2 m1 w5 z! N# _# [5 O) W8 r m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 f( E7 Z7 H5 v7 W$ |* f& t' S }else{% p5 h- ~. q2 G) f
SetForbid( TRUE );6 \+ ?- }( S w, w9 E/ |
}
! P& r$ ]1 T5 y0 Y }else{3 |# B5 g+ z( }% P! K* @
SetForbid( TRUE );7 d: C1 ]& _/ |& S; x4 _# a/ V3 _
}5 ?+ ^: Y9 Z2 r
return TRUE;2 v7 h: [# M2 K; ?% P6 k) Q4 r7 i
}
5 G& a; H5 ?% X: ~/ l f% S0 K
$ p6 n* l6 c$ \BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
, U- V* _! {1 Q/ O! z. G{
|7 J6 D0 m( [) u9 h switch( nID )
8 b* {. Y* [& ^2 v1 Q7 q% s {
. G7 `5 y2 s3 Z8 n( { case WIDC_BUTTON3:
% H' A5 ]/ ^; H2 L* Z {
( b2 y8 v7 b4 a5 H bStart = TRUE;* S) y# h/ z2 d. F" N z. a1 i
break;2 j. u2 y1 P: o- g `
}
. A" E6 i, a0 B) q! k9 P% P' s case WIDC_BUTTON4:
, c; y! H. r1 W( |0 A" f {
' n7 i- C7 P+ i2 b6 [1 p) l bStart = FALSE;/ D" } M6 R1 }# v
break;0 u4 Q6 m% V3 }8 H( Q( j9 _
}
! c o9 A2 {4 J' \( r2 i }9 {$ f: M5 O% B, J% M8 x# U& @
return CWndNeuz::OnChildNotify( message, nID, pLResult );7 L& \2 I8 @' P @. m) B
}
! e" B9 p- B' I& V$ L9 lvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )2 p2 S. t* e$ J1 d2 L% q
{9 J, q& l- {# i4 ]. a
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
0 z8 i0 Z' i# B' z# G if( bStart || !m_pItemElem )6 |, B i4 w6 ~8 u% p
{
0 U2 ^) F( P& H- h( r pBtn->EnableWindow( FALSE ); M J; k. Z8 Q
}else
* M B) ^) l" b8 I, y! x pBtn->EnableWindow( TRUE );
9 d, M* ~% d) f, O( H0 C* b6 \, b if( m_pTexture )- F0 \ w% L8 H& a
{
2 ]7 u) N* A1 S+ j: G# t LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
/ O+ `9 j7 D" [$ y* u0 F if( wndCtrl && wndCtrl->rect )* k: u! M9 B6 Y: I+ ~4 n% A Y" |, F
{' y- H2 h4 Q+ f/ R$ ^/ t6 \
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );9 ~/ S8 `+ q3 i8 R- q' b
}/ v4 ?4 ~! ~, F3 J( {) C, K0 ?+ k
}/ `8 P0 G" y7 B4 \3 a2 f
}
5 E$ A5 J* q! k5 }5 H" ]7 U) d) N. L$ n L! a5 \# a" Y8 q
BOOL CWndAutoFood: rocess()" e$ ~" T5 M1 D. l. F0 Z3 ?( p# ` }* k
{ p+ e$ @6 L6 \( X9 _
if( bStart )
" t, ]- d: i' H6 ^7 _# ^" j& s {& t3 Y8 N! N. k
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )3 \; t4 H4 @6 x. H) h4 |
{1 q g5 j& K) s) P; E% |) F/ i3 G, `
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )) a4 g, N7 O6 T6 u# C
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
{4 G6 v) ]5 |; z7 Q4 G. F }else{
f+ j$ t( e: d( C3 \( [! y bStart = FALSE;/ s: w4 S3 G ?
m_pItemElem = NULL;! j- G. a5 a9 I7 @$ C* l- R
}
4 g( i3 } z7 z2 ]# | Y1 [ }
3 ]5 c3 ]# B9 x$ W' V return TRUE;6 ^/ {, Y0 P+ |. b( r3 i
}' t6 S3 y' P" B, |! H" _0 A
5 b" n) x+ Z h: D% y
登录视频废话:
% Q7 t, W6 a: r" ~+ V6 L' E尾翼:# s0 ^1 X) m$ L y) ^/ Q; F6 `/ u
7 X k) F; g( u( z7 y" Q, S
代码:
$ B9 i6 ?) Q1 o+ v7 U) @; l* Y* \; ~8 L& U' s- M8 N, U( O
void CWorld::SetLight( BOOL bLight )
. F% M% d9 | z) s( U; bdurch+ e* N" d8 |; M
Code:
: ~3 s e, F N- _0 G: I: k% _4 K' bvoid CWorld::SetLight( BOOL bLight )/ m! P7 L4 e' N9 x1 o" Z% W! U
{5 |) Q/ \, t# W
//ACE("SetLight %d \n", bLight); k/ ]) h9 F. z6 B! S; ~1 x7 u
, f; g4 T6 ^, ]#ifndef __WORLDSERVER
9 Y0 {" X+ t. b* r, O DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);# a' E) v1 n8 e1 l$ J2 L
CLight* pLight = NULL;4 J6 c. g. v* o; b! B2 T$ \
- C/ D0 \! @& o" P- }
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
: A8 F! m# K8 k3 h W* o* |
3 i) f; O$ ^6 t! u7 i pLight = GetLight( "direction" );
, Y N/ l D- z& R- x# i! D- B- H) @4 Q9 s: g" V, R
#if __VER >= 15 // __BS_CHANGING_ENVIR2 w: W* R# }, D1 ~
if( g_pPlayer ){
7 W. H2 l5 c8 ^5 c6 t ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
# M7 t) }! g# k* B if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!2 v6 f" l- ^+ b! W
{
1 \( T, j* y. T. h, \6 @ if( pLight )- v6 l1 b1 Q/ j8 Z7 U5 v" @
{. P, f. ~: d$ V: m) C8 Y3 k: U7 \4 L
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
7 X) t+ q1 J9 b. d7 g0 E pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
* e( ~, _; H, I! N- l3 [ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
/ T9 H0 p7 j' v A6 J( T ~1 u7 s: M
! g1 x6 a. m7 p$ n. P pLight->Specular.r = 2.0f; \* ~& Z$ _: x7 q
pLight->Specular.g = 2.0f;2 k: q; A% B5 H2 G
pLight->Specular.b = 2.0f;! ~0 B, i' c0 U7 i r# }2 t
' _2 _+ ^9 M5 z pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
$ F6 g4 j3 e8 G$ G! v1 r pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
( [/ X! y5 e. r- d+ B pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];9 V/ Q2 U* @; s3 t
- n2 Q9 M7 G: Z HookUpdateLight( pLight ); # p* F- U2 R6 {2 p2 x' j3 L
1 m. Q$ }, J" X% K# h) V+ X6 D3 B% W memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ Z1 e# f) X; }! J' Y4 i2 a0 _ s5 F / z/ a& d# H, ] c' B6 b: |
pLight->Diffuse.r *= 1.2f;! j* f' |- L% {* q; ~) s: v& T- Q
pLight->Diffuse.g *= 1.2f;! x/ j2 X! e/ h3 [# Z: u
pLight->Diffuse.b *= 1.2f;! q: K$ r3 D. t/ l! t& o7 O
' \8 c2 n- w2 N- ]6 @8 W0 F5 l3 O
pLight->Ambient.r *= 0.8f;8 M- h" n9 k2 o
pLight->Ambient.g *= 0.8f;6 X t! ^* t3 Y2 K
pLight->Ambient.b *= 0.8f;5 j0 d! K, t+ ~7 O
/ s' f1 n! {, m5 g2 o
memcpy( &m_light, pLight, sizeof( m_light ) );
9 k! y9 K* T0 ?. F# \( h1 S1 b
" P3 ^& w9 ]! l; M& t, V3 E D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# l# |& Q9 @, p( K8 ?9 ~1 ?- `5 H D3DXVec3Normalize(&(vecSun),&(vecSun));/ p s1 q" ^; M( c- h
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 9 `3 K9 H/ ^" [ H& J( w
pLight->Appear( m_pd3dDevice, TRUE );
* G/ {; e/ V% _5 z
! U5 n% P6 s) G: O- G/ h- h' R DWORD dwR, dwG, dwB;, H$ C M' K# Z- T. N5 R
dwR = (DWORD)( pLight->Ambient.r * 255 );
, i, Y; U7 Q7 U& v6 n. ~" P* e dwG = (DWORD)( pLight->Ambient.g * 255 );
/ d4 m8 }) x7 v" t dwB = (DWORD)( pLight->Ambient.b * 255 );
6 X& _& V9 u8 M5 n c6 L0 n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );3 f& r5 Y' G- ^. m
} E' P i3 X1 `/ W; y/ f
}$ I, o1 l3 U. u/ s0 t/ r
}* }% D/ c7 |2 X, [" h* K- v% U4 _5 _
else
' `6 e( _& ~" W; E3 X7 f9 F#endif 8 x* m7 p" {: a* o/ |1 O
( R( Q3 N9 F6 \' c
if( m_bIsIndoor )" K+ N: A& `0 e7 ?
{
' I1 r8 V v6 H8 s; N5 C if( pLight ); R7 K7 {0 E- J% G4 l) ]
{
' V6 Y) t# c: a& F // à??μ oˉè* ; E' @4 ]3 c' x7 E: x- K
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;. M1 @$ w' p1 ?( s
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;2 `' G _7 a6 p7 i
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;5 a& z! M* D* ^; }$ a/ B3 A O+ [
+ P) C% Q" b! b! t' n _( O3 ?
// oˉè* ??à? 1 o S/ [' |7 m8 R. R7 w
pLight->Specular.r = 1.0f;
# F: j0 v0 o8 b pLight->Specular.g = 1.0f;
# i% j0 d- q# \' x* U9 ` pLight->Specular.b = 1.0f;8 n; R1 f( ]# t+ G) ?3 E2 R
// àü?? oˉè* 7 \8 y+ x2 a" v r7 |# I3 h
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
H3 J' h- o/ P; x. a pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;3 D- f% U8 Q% E: x6 i7 B4 a
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;' L9 M9 v2 n1 K8 Y
n, a T* u! e/ {( Y( w; o if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: W2 [, L% N: c2 m, a$ o {
) ?3 ^% N( h I0 n4 | pLight->Diffuse.r *= 0.6f;
/ F& b: ]* X& Z, [5 n4 `% ?% u pLight->Diffuse.g *= 0.6f;# B, ?9 b; a* Q. m8 m4 Y2 X+ o
pLight->Diffuse.b *= 0.6f;9 T ~3 Z1 N' z+ V' G
pLight->Ambient.r *= 0.7f;. D: U. g5 T! e, |, G9 ~
pLight->Ambient.g *= 0.7f;( u" B5 p/ A0 E
pLight->Ambient.b *= 0.7f;
0 l% N' \5 d3 n3 _: Y; g2 J6 A }
9 N1 h' _4 ?! f9 M
. }2 V3 @. ?9 z6 d# n4 K#if __VER >= 15 // __BS_CHANGING_ENVIR
; m- ~# R; e! [- M if( g_pPlayer )& B3 h9 {6 ]) O. S2 k
HookUpdateLight( pLight );* L4 V6 v/ O8 l: e3 I @0 E
#endif6 W4 x# ^. Y0 r3 K5 J- j
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 M7 K& Z5 J R2 P7 h9 p, J
; W6 W r' z- ^" y9 q1 q pLight->Diffuse.r += 0.1f;
. R8 \' L9 S7 I. V pLight->Diffuse.g += 0.1f;
1 {& {6 I. s) C4 Y' [ pLight->Diffuse.b += 0.1f;+ ~; H+ \& k- [. R4 g" v
// oˉè* ??à?
6 K8 V8 X6 j" z5 D* g pLight->Specular.r = 2.0f;
9 F0 o* R+ z: r* ` pLight->Specular.g = 2.0f;
/ @- k L7 s. G* I: h9 H pLight->Specular.b = 2.0f;# o% h1 `* ^- ~, }, s
// á?oˉ
+ L3 {- I4 O# _6 a3 u" d( y pLight->Ambient.r *= 0.9f;
* v Q% I' ~0 S$ f# \7 o" n pLight->Ambient.g *= 0.9f;7 d& D9 c: S+ @" J9 N6 Z! Z" I0 b
pLight->Ambient.b *= 0.9f;
2 u% M/ T0 i+ n! M* V8 z# R
0 c# p1 R4 A) q5 ]& ]- m, f0 j memcpy( &m_light, pLight, sizeof( m_light ) );
) L8 a8 u) u* }; B1 K6 E
j! K0 r+ X& | pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );, ], @* y7 x" a0 J$ F9 f% S" Q
pLight->Appear( m_pd3dDevice, TRUE );
& y2 E8 Q, H& a& W7 [
) l5 t& H9 F& ]! I0 f0 u DWORD dwR, dwG, dwB;( p0 q$ j( ^5 X: v2 W$ G) T
dwR = (DWORD)( pLight->Ambient.r * 255 );+ K9 j8 Q' b, `% r
dwG = (DWORD)( pLight->Ambient.g * 255 );, ] ~7 H. q4 r% ?6 @; @+ y2 \
dwB = (DWORD)( pLight->Ambient.b * 255 );! M; F& I6 _ v7 c2 w
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 X4 X, t* C$ o( d }
* I1 V8 b( U) j Z* P1 a }
( ~# a* j3 u+ G: R else
, [" K2 {$ ^& N; l: ?1 G) ^ {
1 N+ ^+ X1 `3 l0 Y+ H if( pLight )
' d& A# }) N( ]7 c8 x0 [ {
9 n/ o7 {+ Q7 t/ O! |
5 _+ ^4 Y9 d$ h9 T int nHour = 8, nMin = 0;
" z( X4 Y" ?( o$ P7 ^9 N #ifdef __CLIENT
1 P4 `" S6 `- X3 _+ c // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 7 h$ ? P8 r2 d& z
nHour = g_GameTimer.m_nHour;4 J" k. m0 \3 N8 ]# K6 T
nMin = g_GameTimer.m_nMin ;' ^; l4 O n: s2 L9 ~" i
#else$ s( H9 m! \* o) q
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.$ p, ] ]6 }4 k* @ I
if( m_nLightType == 1 )
: c( r9 s) T' r2 ?% x5 P; C nHour = m_nLightHour;
- U3 d& R" A: G8 K. B3 _4 k #endif6 K; I- X2 S( v) C3 ~
nHour--;. n4 a% d$ v) q- M- H* r9 ?
if( nHour < 0 ) nHour = 0;$ y$ V% l8 t0 Q2 s. U+ a
if( nHour > 23 ) nHour = 23;
9 g" n4 S2 w/ Q. g
* [: q3 _8 j; J //if( m_bFixedHour ), \6 u! S* g8 w b5 q* T9 R. Y
// nHour = m_nFixedHour, nMin = 0;
' l2 [0 @, W% V8 l LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
! e0 @% Y% F5 f! ~9 c6 ` LIGHTCOLOR lightColor = m_k24Light[ nHour ];. W+ s( Y0 R) C2 G( m6 o
1 T3 {6 Y$ `$ |2 O) j8 I
//m_lightColor = lightColorPrv; a6 @- L& r( Q4 [! r
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
* R' }* g$ S& R+ y" L- q lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;' @; q* N0 L! I6 j
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
2 J: V! E' O' [; V- h+ r3 J lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
2 k1 m# `8 W6 p* V( d lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;& M @9 b7 t2 b, x8 }$ G) i
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
! q1 \. a% h' x1 C5 { // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
0 w1 m% _" h' s% Q- W4 d
$ Q. D& d1 B. |8 n' @ // à??μ oˉè*
& w* Y5 ~! u6 C7 l. U pLight->Diffuse.r = lightColorPrv.r1;
; s* F' N, z1 m pLight->Diffuse.g = lightColorPrv.g1;
& ^' e3 @1 }2 s/ S! A pLight->Diffuse.b = lightColorPrv.b1;
$ o: J" s8 A( A // oˉè* ??à? / D3 d3 \. N# b! } |, n6 W0 I) k
pLight->Specular.r = 1.0f;4 w ^$ @, X4 _& U' u: d
pLight->Specular.g = 1.0f;
$ t) A7 Y% W' p' S pLight->Specular.b = 1.0f;; v8 g4 J) J" [" l( u- G
// àü?? oˉè*
# Z1 X) M3 S% F" ] pLight->Ambient.r = lightColorPrv.r2;# X/ W( U; f: S- o/ P* U$ p) i
pLight->Ambient.g = lightColorPrv.g2;
* k' F( z2 F# A8 D* ~9 E ^ pLight->Ambient.b = lightColorPrv.b2;; K2 ]) `. z7 t A* R3 [
) Z7 R6 @ x! ~ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 W- z" P! T& A
{
% y* \# Q4 f ~' Q pLight->Diffuse.r *= 0.6f;
' P! ^7 S# c( x$ ~9 w% o' [ pLight->Diffuse.g *= 0.6f;2 o0 M' }# N! w# F: K b8 l4 [
pLight->Diffuse.b *= 0.6f;1 V2 r/ e/ r# f0 ~/ [
pLight->Ambient.r *= 0.7f;2 M! E8 p; }* y C
pLight->Ambient.g *= 0.7f;4 W7 `- r6 U) Y
pLight->Ambient.b *= 0.7f;
! L+ k+ E% D( f" L+ f }/ l+ x6 D+ V( j
: D' G3 n) @" I$ y- K$ n9 {- e/ H
#if __VER >= 15 // __BS_CHANGING_ENVIR8 [2 f2 D4 a: u
if( g_pPlayer )
9 q$ V) ^9 z) V" H6 _6 p9 z HookUpdateLight( pLight ); ! G; U. z7 ?. P3 f/ {/ B3 V
#endif
0 }& \; w' y1 A, V. j) N memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 ?9 v& \2 |/ [2 w i$ _, c5 C4 A
4 k1 T7 Z, R, ~7 P( |#ifdef __YENV. F1 }( M/ l5 |' g4 k8 }
pLight->Diffuse.r *= 1.1f;* l/ {/ q" R3 z
pLight->Diffuse.g *= 1.1f;3 w5 | q+ j1 n) J
pLight->Diffuse.b *= 1.1f;) L3 a; L5 r0 C: i3 ^8 I2 t
// oˉè* ??à? # c5 j6 ]! J6 H* U
pLight->Specular.r = 2.0f;
3 @, ^: T: ]( w) I3 M- u6 v pLight->Specular.g = 2.0f;/ T+ _2 y; z# [$ ^
pLight->Specular.b = 2.0f;
; w; Q" l# [( E/ _8 c* Z // á?oˉ
# L. H! w6 z( t( C( E" L5 O pLight->Ambient.r *= 1.0f;
; \3 x0 d# X: U2 Z pLight->Ambient.g *= 1.0f;. |1 h2 h. d6 v8 t. b" z, b
pLight->Ambient.b *= 1.0f;
' ]' ~- j- ?8 x4 R* R+ u0 [#else //__YENV* F0 y: Q2 i1 t+ ~7 M
pLight->Diffuse.r *= 1.1f;2 V: y- N5 Q, D+ n
pLight->Diffuse.g *= 1.1f;
$ Z0 E5 K* P* V pLight->Diffuse.b *= 1.1f;4 j( Z, j( v9 y& k! \& X
// oˉè* ??à? 6 u6 {) v8 |3 i7 R
pLight->Specular.r = 2.0f;
1 w, O% o4 b7 ~' W0 F* M9 H4 t. H pLight->Specular.g = 2.0f;' R4 r( F ~0 ]! K+ @. i. J
pLight->Specular.b = 2.0f;
( i% j+ b0 g0 u0 M7 L: x // á?oˉ * \% W4 } i9 c9 V' D' L
pLight->Ambient.r *= 0.9f;
4 c/ B: F6 t' j) `5 C, [ pLight->Ambient.g *= 0.9f;( Z2 p) L0 H7 n, i
pLight->Ambient.b *= 0.9f;
: {& Z. y- P6 W/ z3 G0 {8 o& `# X#endif //__YENV A5 _8 r' `! F1 u" Z r+ G
5 J/ l; d9 }" z: i/ L/ {' f
memcpy( &m_light, pLight, sizeof( m_light ) );2 I* C* ~4 W4 Q' @
5 q3 m( u3 ~. I- z9 C
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
( s% _& X6 C$ F D3DXMATRIX matTemp;9 Q9 k* l! i) J# u0 l7 i
static const float CONS_VAL = 3.1415926f / 180.f; |- G6 t% B% g4 N$ A2 Y
" p- \ D' Y$ R: m6 ]/ e6 g
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
9 p" `( {( D u/ L D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
4 K. r- w' T& _6 U" g' l: L) x pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 U6 x9 i% J ?: x/ v pLight->Appear( m_pd3dDevice, TRUE );
; d$ t$ s7 O6 g; a
7 s$ K5 E* d$ L f3 W$ K6 K& J3 p // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);* S7 h1 T' w* _( g# i7 G9 L9 G8 w
// D3DXVec3Normalize(&(vecSun),&(vecSun));
. {9 o. m- @; z2 h& ]7 b // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / t% n: X3 ]# w
( v9 y, {, W! \7 v$ H
DWORD dwR, dwG, dwB;
" G& T( L1 n' ?8 f dwR = (DWORD)( pLight->Ambient.r * 255 );1 h, |0 s% F |2 H
dwG = (DWORD)( pLight->Ambient.g * 255 );5 ]! s! g5 {1 G7 p
dwB = (DWORD)( pLight->Ambient.b * 255 );$ U3 g; I6 o3 ~4 H
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ! ]" g' F, l+ M
}
9 @7 m9 A9 d _ }5 i/ ~9 b7 s% Y: t9 N
( ~( i* T& b5 |1 r6 R2 O m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );2 w) B0 v3 D9 `) }
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) );
- `# c/ R( w/ G$ U2 c ::SetLight( bLight );0 x6 u* b! i+ [) p
/ X9 Y4 K U4 q // ±ao? ?D?í???ó á¤à?
$ K" Z& M% h' `' @( I2 ` m_pd3dDevice->SetMaterial( &m_baseMaterial );
9 \# _( ]6 o/ t }% b" A* S % k! d: z1 W' \$ J$ N `
#endif // not WORLDSERVER* H j2 X) T& w$ T- j
}4 ~' b5 y0 y1 S
并更换# |" h/ T" |# C( {
Code:
3 M- x5 t, \( ~__FLYFF_INITPAGE_EXT
- O/ ?; e0 Z. ]. {" m* V) E$ m定义! G# p7 @4 i$ k( l: H
4 w0 U( g h |# p, r$ f) s* M
0 ]) y& O2 V0 z. h+ E6 d( M3 g5 Q+ z: @8 ?4 `
, o+ U6 e) |; @3 H- [% K
现在终于删除我的狗屁加速...
, B, l# @0 o: l9 h+ a: Y ?% s. k2 `: z( |
! K/ r$ t. b& q; ~# x! f4 V
" `4 j; z4 N/ c6 {, u. M1 N' h y |
|