|
食品车:
3 r# q) k9 \; J尾翼:
, e, P2 J+ d4 R+ s. I3 r1 J; E& N! U
代码:+ F3 O' ~6 E. y; F, D2 D
CWndAutoFood::CWndAutoFood()/ j' x! A5 s! o& o, \8 h
{
/ B' I$ F/ n+ y! P( N m_pItemElem = NULL;" }( T5 y7 y8 n5 ~2 D
m_pTexture = NULL;
' W) s* `6 }% r+ y$ B bStart = FALSE;
, m; D9 @* R4 J: r}4 z5 {) Y3 }+ K$ P; e$ ?
( r; U3 \2 H h' i, `
CWndAutoFood::~CWndAutoFood()
$ |# [' ?( g2 X2 w( R$ W* t{
8 I+ N% e ^( T( D AfxMessageBox( "AutoFood ist gestorben " );9 l) _- W; z- | X; I/ M
}" | I/ e( ]" }, E$ z+ N: m
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
" \ ]! a# B- D7 i# l0 k- V7 Y{
" H- O' }3 _* ~2 T9 e, T return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );& X! d6 u/ d: I4 g O. c
}
5 s2 |0 {0 u" Z- c" @7 f# j+ ~( s+ K. K3 g/ e% L
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )+ l1 @8 z, t# E3 @0 i' D' A' J9 i
{ ]& Q/ A+ S) {+ y
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
4 C0 i7 g9 C j CRect rect = pWndCtrl->rect;
5 M1 v+ A- r; q. n t2 T) P- y if( rect && rect.PtInRect( point ) )
) U L u( [( I {* y9 I( Y. f* x2 B; M, b
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
7 L/ R3 X" N/ K& p3 }! e' g if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )2 |2 T' S* }' x3 {0 C% i
{
& [+ p9 I% l: z6 t2 \ if( m_pItemElem )4 X3 F( H# V" g8 G$ b. w8 r! K2 Z/ {
{% d$ P% E" }3 m$ [3 ]
m_pItemElem = NULL;- Z0 _7 a0 k/ S6 k
}% C: G! M7 \, d
m_pItemElem = pItemElem;
* v. z4 }" ?/ r m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );- i( u' N; N0 x) C2 s7 ~
}else{% |5 d4 X8 q% J9 k( d' A6 f! W3 F
SetForbid( TRUE );" z; o6 K3 s: A1 ^
}9 C3 F* a! V4 n* j# x7 ?
}else{
, n; @% i/ N7 e8 z% t SetForbid( TRUE );& d" j w& M, n( }$ }; n0 w0 ?
}
1 B/ Q- z! |8 r0 ]! z/ l. U return TRUE; P* {2 Y' v; q8 h8 r
}
3 k1 N/ o( B D9 o2 ` z
! d2 E2 o0 I. T/ ` r' hBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
; g0 B6 C' F) r, F{
( I# t% g4 E6 f* i* C+ I switch( nID )
9 |$ t! V1 d3 M; w& l. Z! I$ W {
* T) H$ [4 F. d4 Y% l3 n case WIDC_BUTTON3:
6 l- K. N& j4 p% O; l {0 b, U, `' V6 C J2 z3 K0 G9 S+ ^7 q
bStart = TRUE;- C4 P% S& c$ J# F% i
break;
! l9 r3 s# M3 Y$ h/ n }
( L6 i2 }# x$ f# l4 B& @& f* D, e5 X1 d case WIDC_BUTTON4:
. a e- V% S+ M3 p' {) ^9 Y {
8 W, |# c( ~/ i! V3 ?5 _ bStart = FALSE;5 m0 Y. m4 |9 L/ h( w3 d
break;
G& u/ F( ?1 B8 l: T( s0 a }$ j! k# D. d# k9 U5 x4 U
}2 A+ X4 _4 L5 |* n9 C1 f' i0 Z1 `
return CWndNeuz::OnChildNotify( message, nID, pLResult );& K& f3 G" ?* O' |/ X
}
4 w; O( B$ c6 S" Fvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
- l# g0 }- f0 J8 r a9 t1 u2 `) Y' T{
8 c4 a# |( p. O" y9 c8 q" I, m; l CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
" }$ A! _9 x9 ~8 v7 `2 D8 ?2 C if( bStart || !m_pItemElem )- q( P0 o5 M' I3 n7 J, Q: U
{
1 K& c# E+ P% o$ _ pBtn->EnableWindow( FALSE );0 ]) Y+ U# L- e; E7 m
}else
. B: q4 m) v8 Z- Y7 K$ Q! } pBtn->EnableWindow( TRUE );6 y4 p3 x( x& `
if( m_pTexture )- ?4 @5 j2 N$ k% m3 `: p
{
& d0 d3 n W r6 B LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );) j0 ^ j* g- y
if( wndCtrl && wndCtrl->rect )$ K4 s1 O. U0 n n q# K
{
0 P; J' E* j$ {6 o6 i- W m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
& `# j* r+ F/ t0 ]8 B5 r9 |7 P! m }; k' D, Y Q/ Q6 w5 a
}# @# x3 v' a5 Z0 T4 W3 \
}# S# {4 l9 N) F# }( i( t
1 P' M4 j! G! P- ]; u4 i
BOOL CWndAutoFood: rocess(). m- G$ _* D+ |' ]2 z8 I9 h
{
8 p! B b+ m5 e if( bStart )( i3 ], A6 o* T3 k$ N# W
{: Z1 G2 u- R9 u: k" P$ B) p# Z0 O R
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
Q, K2 u2 j% B6 v {
! `6 R9 c3 P; D- `$ k* r+ R7 a% E! `/ @ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )# u0 P) W% z+ W4 D- z$ E& z' X
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );# g9 V) [7 R7 P! \7 V# W9 _' H
}else{6 q6 Y2 F% V" x6 O9 W2 O
bStart = FALSE;
& s+ {0 t- ~! _5 s: ` m_pItemElem = NULL;5 S; w1 i0 y7 w$ v2 A) e- X
}
; Q% V p8 J$ d1 m0 p' K }
- u% l) D# q4 T3 Q! O) g% B( Z return TRUE;4 g. k( [: w$ n! j
}
( h2 D8 O5 y! j+ N* I
0 {+ m$ A1 [, _9 s$ g [2 d登录视频废话:
1 K1 U g. k; E5 c尾翼:
. A$ B* s! ]; M5 y0 s4 E b0 j/ h1 N( H
代码:
! K+ q2 U0 o9 U' `
7 i) |3 `- l- v( U3 i* jvoid CWorld::SetLight( BOOL bLight )
) n. @. T- S y9 F) i4 H( C( T9 ?- }durch4 }4 U0 b( g6 N2 N
Code:
$ b( h# y; X7 o2 q4 s8 L) Dvoid CWorld::SetLight( BOOL bLight )
' d4 l; |* G& h{
6 [/ @5 O( s( x$ Z/ O6 B //ACE("SetLight %d \n", bLight);
! N( y6 C6 I w j! U! U; l
5 d+ S. O2 q4 m# o#ifndef __WORLDSERVER ( l+ S7 X. M. c! G
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
1 G# e" _* c6 B$ Y4 M; B) C CLight* pLight = NULL;, l8 P& b; i7 o# T) l
0 e: t$ F0 N, g x D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );2 F& T# x; y" z! j5 e( q. f0 y
+ m; {7 C: ^# `" {* i- V6 P1 z" y* I
pLight = GetLight( "direction" );
4 V; v& G: T: |/ G! P
% K3 u( M9 X2 E3 M% f- r9 i* u! ~6 v#if __VER >= 15 // __BS_CHANGING_ENVIR
) S7 @ j) A3 ~5 K! S2 p9 E" X if( g_pPlayer ){
6 r0 \/ V% h/ f+ V4 K" R$ g ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
! d% E6 G, s: T( d2 H6 M: u# W8 x if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 |' |% F5 J9 \, F) y+ P) m, L {
! o9 F3 `$ Y/ K7 d ^( N8 v- Z if( pLight )
! \8 I: N U' n5 S8 r: _: Q: s {
+ m1 C$ `6 ?. N3 {2 K" n% L pLight->Ambient.r = pInfo->_fAmbient[ 0 ];! l, H5 W, k0 m( O
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
$ q9 U# v7 w) A. e9 H3 Y1 l8 O pLight->Ambient.b = pInfo->_fAmbient[ 2 ];. x1 k9 o. c( L3 D, f0 w: g5 z0 J
( X) d! e& Y* h; r V pLight->Specular.r = 2.0f;
+ X( P [; k; L+ g5 E! c pLight->Specular.g = 2.0f;+ d7 D! ], H& t' h% `
pLight->Specular.b = 2.0f;
) p) Q' S( m# h3 y5 V# M( y
# s5 o4 G n7 h+ i! ` pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
, C2 b7 N' ]( V7 t+ g* h6 j. L pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
$ j9 w' u3 P1 C. r8 e pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
; j9 @) g; y9 |4 k9 K8 L' I4 o6 ]' u' n i8 y) ~& h/ W* ^3 b
HookUpdateLight( pLight ); 8 q: S1 {% ]7 o, G; m7 @) B4 `
) d# z% M3 P/ m' t8 Y( @ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) T, a& R- g+ t" U3 ^5 ~
% N$ \1 l+ H4 U; ~; \ c pLight->Diffuse.r *= 1.2f;* x* e& d$ n* n8 X$ d' d0 h
pLight->Diffuse.g *= 1.2f;. ?+ ^% s. a! Y. H
pLight->Diffuse.b *= 1.2f;+ C- d% q4 Q& z6 T6 c# j
9 N; V+ a' N( [0 t+ f pLight->Ambient.r *= 0.8f;
: u! g& J& ^* `: J% d+ x pLight->Ambient.g *= 0.8f;- h; F; u( P7 F" G J8 |
pLight->Ambient.b *= 0.8f;; N; `( y" H2 P8 g9 k
9 h. f* W5 U) B Z, W* X
memcpy( &m_light, pLight, sizeof( m_light ) );
, y5 _& `( H ?, E6 S. J- V2 T1 f4 g& I' p" @
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# {! E- y- @8 o2 \4 m+ v, f D3DXVec3Normalize(&(vecSun),&(vecSun));' b. B g- W L p8 M
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 b' `0 T. v2 I& X
pLight->Appear( m_pd3dDevice, TRUE );
+ b% S+ R5 h* v' ? + J6 W, `( ?( a9 }# F* v, u5 C
DWORD dwR, dwG, dwB;
4 F% c7 v& Z; K8 h dwR = (DWORD)( pLight->Ambient.r * 255 );' k" w# W, @/ M
dwG = (DWORD)( pLight->Ambient.g * 255 );& S) [. @: x( ] l$ A9 ^! a
dwB = (DWORD)( pLight->Ambient.b * 255 );
" L: m3 M4 G3 ?% X: T/ V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );/ h. c6 ^! g _4 S. l& f
}( `" c2 R' t6 J4 h* ?! {
}: `5 q9 {* v2 Z4 x& s/ \3 a
}
* ~9 P+ ~& }! g* i9 l else& V0 U5 a. t/ }7 Q l- ]( e7 j- ^
#endif
. _1 r! P4 u8 g5 i: T5 x# Y* H3 `% S
if( m_bIsIndoor )
4 P0 E' |. f1 M7 o0 C7 n {
; v6 q0 \& a* t* j' ]+ x7 ~ if( pLight )% c1 Z# Y# d: F0 ]+ o- X
{
( |) x4 K5 g9 b' ^, _' n // à??μ oˉè*
F% M% q {1 a/ o. s! A pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
% O( b, e1 l# A! H pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
- d1 [/ x% ?3 `2 q0 @& Z0 M. K pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;6 ?. e0 s z1 ?2 D* G* P3 {
$ e3 D/ ^2 h& e& X$ J // oˉè* ??à?
! K: l1 ]' W- m k pLight->Specular.r = 1.0f;
9 @% B R0 H4 l& F pLight->Specular.g = 1.0f; \8 }& A# |; z" t4 X% ~3 _, F+ B
pLight->Specular.b = 1.0f;' d. ~3 n& g( b" Z2 m7 O6 J5 F
// àü?? oˉè* 7 j+ w# r6 W2 x
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;" t8 i7 d& q4 }7 D7 t( E' b
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
. I& `! d% S3 l pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
' [0 l5 B+ Z0 H# }% ~7 e) |* M9 c) X' U0 q2 R
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- H0 W! f2 f! c9 M9 [9 Z
{
: P; b" p5 |: g- k pLight->Diffuse.r *= 0.6f;5 _+ O O' M* E; A, U( G1 W% n4 F
pLight->Diffuse.g *= 0.6f;- d( d% Z$ E. w' c O0 l
pLight->Diffuse.b *= 0.6f;
( K6 l' `+ K \% ]& g9 a pLight->Ambient.r *= 0.7f;1 y$ r: G* V$ ~7 u3 q8 n$ F5 o
pLight->Ambient.g *= 0.7f;4 q5 F+ f) ~3 R9 N
pLight->Ambient.b *= 0.7f;
+ [4 \! P$ T, x }
6 V' {( X% C$ K3 q/ z% l, S) B6 C" @8 S" ]4 |
#if __VER >= 15 // __BS_CHANGING_ENVIR
0 U) ~' a9 n1 s9 M if( g_pPlayer )' I$ k# D+ q- B* N7 |0 c
HookUpdateLight( pLight );. y( ^# {0 ^6 t% z# C+ {+ ?
#endif9 [ m8 P! N, D. Z6 b: v6 f
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; c7 c- A7 E, T, J# W+ y
2 N& U3 \" H5 i) P b* n pLight->Diffuse.r += 0.1f;
/ E0 ~( o8 C9 h% y2 O pLight->Diffuse.g += 0.1f;" H1 V1 t9 v' @) D
pLight->Diffuse.b += 0.1f;
, Y& Y& T6 W) G+ [: I4 w // oˉè* ??à? 4 m# b1 p( \! e" J, n+ X8 j1 u2 w
pLight->Specular.r = 2.0f;
/ y" c3 E. i4 \- r& q( D pLight->Specular.g = 2.0f;
7 k8 l8 e: T: ^: i pLight->Specular.b = 2.0f;; V, k0 n3 \9 h* K$ i
// á?oˉ 9 _7 r9 \2 b% ?$ b: Q, q
pLight->Ambient.r *= 0.9f;
2 w/ M r4 z& W- D/ R3 @/ f pLight->Ambient.g *= 0.9f;
$ ~5 a. G( q5 k( Z4 G0 G7 I pLight->Ambient.b *= 0.9f;
$ a9 r8 W q) ^+ P9 R! [6 ]- F+ [9 L& |3 R4 O
memcpy( &m_light, pLight, sizeof( m_light ) );! Q3 }+ o( _7 R5 Z
: G' H2 g& @; ?1 C4 u) M pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
9 j8 Q) }2 n" y1 P4 d& ~% h pLight->Appear( m_pd3dDevice, TRUE ); c% g# i9 x9 `# C1 S9 I& {8 @
: o) A5 R% x w8 j: D/ q0 I, H9 S1 c
DWORD dwR, dwG, dwB;0 _* c( @) @2 `$ m
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 W$ i/ v* r4 _: Z; D1 o. b dwG = (DWORD)( pLight->Ambient.g * 255 );" q" K: `+ k8 c; A/ y1 K
dwB = (DWORD)( pLight->Ambient.b * 255 );
, `4 o4 \0 z6 V; S dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" @1 \# V9 n. h) e* U+ L% ]
}
5 @7 }6 b* ~, r5 X3 b/ M }
* P7 D% K- p! M) ~ else( [- M/ E% B- n
{& i8 {/ A0 O- E( O- D$ V: [1 ~
if( pLight )
5 w" L4 f1 f" t. [ {
& M9 r* q- _1 q4 t0 g6 W5 a 9 G8 U4 k: ~+ U) t+ }
int nHour = 8, nMin = 0;: \2 D. P- a, k I# l. r
#ifdef __CLIENT
2 R3 L, B, \4 A W- I- Y( i // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
0 L! [/ V1 z/ c2 [: B nHour = g_GameTimer.m_nHour;7 r% n1 j) a- b" A/ A2 Y7 J
nMin = g_GameTimer.m_nMin ;
1 ^8 o A. m6 L d( Q5 X #else
/ C5 V1 w u* f9 h // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.! \8 `, s0 {0 ~9 j( N! Z
if( m_nLightType == 1 )8 x9 K) x# [! D _$ u* i
nHour = m_nLightHour;
. Q5 \/ x0 O: G1 U# H9 {" h #endif
% e6 Y) p, g9 R: N9 n nHour--;4 b5 s' h+ a1 f& Z' | F
if( nHour < 0 ) nHour = 0;2 m: P* e0 }+ C' u7 d/ O: C+ q& F2 ?
if( nHour > 23 ) nHour = 23;
8 e* j) o& s: B# ~, x* z- s6 p1 H: b
//if( m_bFixedHour ) k) b& U/ u+ |, l
// nHour = m_nFixedHour, nMin = 0;
9 h1 l4 I% n/ \2 T3 b% j LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];! k) \+ b+ d1 X8 m/ g4 m
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
8 R. C( F0 e2 z) y8 A
a: ?% D4 l8 j, {! N; | //m_lightColor = lightColorPrv;
2 `- d: B. P( M/ ?# _ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;: d: ]$ k, ]3 a' O# Q4 m
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;8 E# c+ v, h2 S& c
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
6 [4 D6 Y+ ^# B$ Q* L: ]! u/ l* T lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;- I9 z! E( X! u. o' Z
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
9 p0 E, S2 O& } lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
$ a+ W: x0 k9 k* M2 |8 D/ ~ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)2 n0 s. a/ c) b0 Q: M8 m. j
6 w$ C! @3 k* ?
// à??μ oˉè*
: Z8 n) R# `$ W' T pLight->Diffuse.r = lightColorPrv.r1;* m( D7 B: K5 I% j- y
pLight->Diffuse.g = lightColorPrv.g1;& _2 ~: H, a: C
pLight->Diffuse.b = lightColorPrv.b1;2 B0 R( N( f, o9 q4 U
// oˉè* ??à?
# y* n! E" v6 x' w0 K pLight->Specular.r = 1.0f;
) g8 n8 L2 |5 T) m pLight->Specular.g = 1.0f;
9 b4 A- u, q6 M- B% M1 l$ z pLight->Specular.b = 1.0f;" A' f6 d$ B3 I
// àü?? oˉè*
; A; {: G% }" q# u- c0 z( T pLight->Ambient.r = lightColorPrv.r2;% O9 |1 K1 i) [/ s+ r! p# v7 p0 y+ D
pLight->Ambient.g = lightColorPrv.g2;
- `3 f) F# x: P* q1 u" {% F pLight->Ambient.b = lightColorPrv.b2;1 q) K4 r9 b# @" j8 H4 Z2 l, f
* B7 ~1 R$ G9 Y# T) }" _8 X if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 U! G5 f4 z+ f/ Z, ~" [# x7 x {
0 P: [) }# B' w7 y pLight->Diffuse.r *= 0.6f;
2 i" v2 Q, x+ j$ H0 ~ pLight->Diffuse.g *= 0.6f;6 }* ]( \; E q u" }
pLight->Diffuse.b *= 0.6f;
$ |7 |4 }: R) J4 f0 U4 D pLight->Ambient.r *= 0.7f;
0 B2 G: W% Y1 |8 s* F7 ~ pLight->Ambient.g *= 0.7f;7 r$ \$ T Q" Y; b4 k
pLight->Ambient.b *= 0.7f;
# @; `, W7 [6 z1 a2 b+ F& r1 Z# a }
3 N5 [3 m: j6 R; D( K8 U
e+ G0 x- W j5 T' A#if __VER >= 15 // __BS_CHANGING_ENVIR
4 y8 v+ G1 z, {/ U( F if( g_pPlayer )
; n9 K# S0 X- Q HookUpdateLight( pLight );
" S2 i, i7 I7 T$ R#endif
, m: }; j+ g. f( [8 ]% `9 O' M9 T0 e memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ F$ C% ]. F+ m. V) z6 d k' B# I
5 [* F& `& b9 Z0 z/ ~+ Z& ?7 W5 ?#ifdef __YENV
, B0 t; j* G8 a6 @" ^- u( j# B pLight->Diffuse.r *= 1.1f;5 `5 j" Y" n O( Z
pLight->Diffuse.g *= 1.1f; G5 @; q" M7 H* N( p* M9 ]
pLight->Diffuse.b *= 1.1f;* o5 W6 u8 j* P7 d2 F Y1 \
// oˉè* ??à? 2 I" K9 b+ e" v$ C# ?
pLight->Specular.r = 2.0f;
0 h, c% f6 X' x z) E pLight->Specular.g = 2.0f;2 `2 T1 O# ?9 q! O) `2 @( l8 G
pLight->Specular.b = 2.0f;
2 V: L6 Y1 a e- C) a9 N9 _ // á?oˉ
5 G9 t% I7 F, V* C5 u3 }5 g pLight->Ambient.r *= 1.0f;& U7 V4 f) m! z d4 R
pLight->Ambient.g *= 1.0f;
) v- _0 t m, D0 ^ pLight->Ambient.b *= 1.0f;
6 Y6 n: C7 U& R$ _: ^" z$ v. a; D#else //__YENV
: I3 r" l1 x2 ?6 \8 K! D0 p# {+ x pLight->Diffuse.r *= 1.1f;
' d7 }+ C2 v0 E2 `. _. O6 Q8 p$ H' V pLight->Diffuse.g *= 1.1f;2 h& X/ m$ s) Q& o7 C. U
pLight->Diffuse.b *= 1.1f;7 w# ]2 K& g1 w! x3 v$ i% ?
// oˉè* ??à? - J2 Q" i" a/ | @6 X) e
pLight->Specular.r = 2.0f;3 R, D- A* h5 K' ~$ l2 y) F
pLight->Specular.g = 2.0f;, ?. a5 n1 F: c0 f( A
pLight->Specular.b = 2.0f;
* u$ h- q- W! e# C2 J // á?oˉ G ?8 L; I5 K+ a5 |
pLight->Ambient.r *= 0.9f;
% n$ y: \1 Z" [; h4 Q$ O1 d; a pLight->Ambient.g *= 0.9f;
8 S/ u5 \0 A; v4 W pLight->Ambient.b *= 0.9f;
0 n" i$ X% B- o r' D#endif //__YENV
) [4 l8 g. C& }& T
& y, j S6 o6 M2 \5 H, b: y+ p memcpy( &m_light, pLight, sizeof( m_light ) );
+ j1 S1 ?3 e) T' w0 ]
% U, D/ y1 k5 T' z4 Z" f q) P7 p D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
3 B% q7 B5 R! |2 b9 c$ H D3DXMATRIX matTemp;1 k8 ~$ J/ j- r+ C l& K( H7 A1 N+ b
static const float CONS_VAL = 3.1415926f / 180.f;8 a; d+ V3 ] q- L
* U- o6 a+ P4 `4 o/ ^; f
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);3 ^1 W( R5 P3 z( c: j
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& N, _, B4 B, s# @
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 1 g: S Q$ q7 ?/ c( M6 j) G
pLight->Appear( m_pd3dDevice, TRUE );
* l3 a% P- |, e5 Z1 \! i
; }2 A- R& f: \& b9 D6 q% q: ? // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 p* g1 L& F, X( d- }* K
// D3DXVec3Normalize(&(vecSun),&(vecSun));
# [4 L- }3 R' \, i- \0 w // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 1 O8 n) i4 r+ [8 {& W: q6 o3 x
4 F( q) n R. x/ ] DWORD dwR, dwG, dwB;
2 B; m' q; j' {( n" M# _8 g1 x dwR = (DWORD)( pLight->Ambient.r * 255 );( S9 g, f. _7 T8 m" }( x( q
dwG = (DWORD)( pLight->Ambient.g * 255 );
8 J5 R. I' y! l8 u: J dwB = (DWORD)( pLight->Ambient.b * 255 );! f2 F3 o7 h( }$ }3 |5 `
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 9 s2 p5 k T8 {; |: N
}
& s9 g' T% v2 g+ n# n# [! J5 C. J }
8 B8 [+ y2 @ `- K: G C
4 V" Q. F0 p8 w! Q$ _5 m3 n% A m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );% a5 {5 x8 V8 G' G3 z# c* M, [
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) );
4 F) }$ o; e" Q# L ::SetLight( bLight );
& E! k$ u0 e4 }0 n8 R$ q q+ S; r5 V0 b E7 L, W$ V
// ±ao? ?D?í???ó á¤à? % b# O1 X* e' i9 \( `# W' I
m_pd3dDevice->SetMaterial( &m_baseMaterial );+ X1 T/ ]% U/ A7 ~+ V4 f5 p
) G. z' m( j; }3 G3 o4 I' B- N5 B
#endif // not WORLDSERVER
* O' y# j2 {! q0 R( | U}
5 ]0 k" m+ a7 w% p- _并更换* J, I, R" y- n7 M# B
Code:
( B. z$ d6 l# L( ] w__FLYFF_INITPAGE_EXT, ^+ X4 R6 `: j# V
定义; s; r2 ~% c& q" a1 O
4 S( L' {6 ?+ L# g, w8 V
, v2 D/ G. _) n' x* r& ~& T4 w+ f) A: x' R4 G! {4 L; L6 p. E
1 D3 N& t( ?% |8 X现在终于删除我的狗屁加速...
8 {6 S2 r r/ l# Q3 X# i/ G4 [: G3 |- @" E' X+ x9 f
5 T( }* W3 Q B' g1 _7 ~
5 x. Q6 T! I6 S+ |- d0 w, } |
|