|
|
食品车:7 X% T* t4 Q4 C; U3 H
尾翼:
' R( [7 o; U3 Z* v& m
! b4 d4 t j c. `5 v! C3 S; H代码:9 ^" \0 V6 j0 S6 O
CWndAutoFood::CWndAutoFood()
& q' v% r K J% {; a{( p0 }7 o) ?, z( x4 W) Z- h
m_pItemElem = NULL;
$ q3 @# ] ^) Y9 A. ^# D) X m_pTexture = NULL;
% J, {5 W" E% T2 } bStart = FALSE;1 H. x% l- Y0 T5 ~2 n
}
& y. m: _/ F# D) n$ b9 N1 Y$ C: }* h. o
CWndAutoFood::~CWndAutoFood()
( u# r: b3 k. h$ e* p{
5 z) l( Z: v' D% z AfxMessageBox( "AutoFood ist gestorben " );
, m# @- @4 V; f9 @1 E4 H}5 a/ }) M$ ^* h9 b5 ^; A$ p6 N
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )6 `: s. W, D$ D6 B, f
{
* X K3 F3 K: f& N return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );+ V1 h- J* v3 ?' E) E' x
}3 r. J& U6 ]- R2 H! J
3 p% @* E9 E% z5 g! xBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )& y8 ]: q2 T6 Q6 U9 ]7 e% z! k
{
$ y8 w4 d9 l/ [6 m( z LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );) I1 F1 u# H, \2 H8 r+ Z
CRect rect = pWndCtrl->rect;8 s% q5 T! l" t L' P8 E, A; v
if( rect && rect.PtInRect( point ) )9 Z0 @: ?- I- r
{( b: |1 p( f# o, Q9 b- s% \: r
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );8 Y) J2 H0 R4 K' Y8 ], H1 L
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
! x$ m( D8 |; f) o {
* {- q. `/ q2 `0 P if( m_pItemElem )# x$ l- M+ |3 Y2 W
{* j& [* T* c6 L; A
m_pItemElem = NULL;
! h6 d$ D8 W" N3 q; ~2 [1 q6 D }
8 Y. `4 L- v3 s. j% a8 F+ Q m_pItemElem = pItemElem;4 J0 M* H, K) k
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );" P/ |3 N7 z' k4 E* L5 c0 K/ r
}else{
% N( `7 e, ~8 p SetForbid( TRUE );5 C" a- a) s' F
}
8 U2 }4 U5 ?* h# e6 p }else{+ n, S; f' t0 R* L% ^, n6 P
SetForbid( TRUE );
3 o- Y4 r, A- q% j% }: n0 l% q }
" h9 b9 E4 F2 e* q | return TRUE;" @4 k: e. G5 G4 h3 X
}* F$ t) }) k! i0 K, Y. H
5 U+ h2 |6 P4 m4 s; L
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
) {& }- l* e6 x5 ]7 l/ S{
0 C4 q. w- K/ ~6 B% t. J: Z switch( nID )
4 w9 R- h% z0 F6 Z! f+ k {$ i1 V% j3 D5 s. H, j) S( q- z6 M
case WIDC_BUTTON3:* a5 H: o7 z9 W( F6 h0 h
{7 Y: F! y# ^; z1 r5 |' G9 p* V
bStart = TRUE;4 t! E! H1 S: U9 J
break;/ ~8 G! M$ Y7 ~/ \5 B# Q4 G, Y
}
' f! Z! Y+ _4 v) K/ o; G case WIDC_BUTTON4:
; N+ n( y2 ]1 R3 J8 m {
- P n2 l* Z% x! ^/ Y7 P+ J bStart = FALSE;
$ i2 B2 w& q! m% o6 q- j" N break;$ k1 B( [( c& G* T4 Z4 c
}4 U8 _ q1 |1 ]7 b
}
/ ~9 K1 l0 q/ x/ R4 P return CWndNeuz::OnChildNotify( message, nID, pLResult );
! @3 }1 k: y8 `, G0 S5 s6 ^} 0 g/ w- M/ ^8 U( W, t
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
3 G5 ^; R" h7 @/ i{& S7 _) @' E0 C# Z+ w! t' F4 z
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );6 R: Z0 r# S( ~- K' H
if( bStart || !m_pItemElem )0 O. D4 l+ j* k* f
{* P5 o" U6 E/ V1 a- ~: w5 M
pBtn->EnableWindow( FALSE );
- _* f" x* c) q. g# a ^ }else7 k) m8 B" P E2 u" b* ], ^+ |8 g% }
pBtn->EnableWindow( TRUE );& f, E2 ]4 |- T! ^" Z, a
if( m_pTexture )
- w9 O, Z# o# y7 b5 o F) B0 n1 d2 ] { {4 u. A+ s& a& {. u8 [( N& Y) L
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* i' w f) _( Z8 S$ L
if( wndCtrl && wndCtrl->rect )' |) }5 V) [) q3 Y4 ~
{" h9 h8 L. s' e6 Q: }/ ~. t
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
T- Z l; g8 y0 {( c Y }& U% i& R/ h5 G5 o0 a# W
}
- e- N8 i- g M" V' S9 R' h}
$ s' ~, E c8 p8 k+ s! P* Z: r1 ^$ N9 B# e, ~. W( A
BOOL CWndAutoFood: rocess()
; y4 T/ @7 a$ o( }9 o{ V. s+ B# | Y1 ]. S0 {
if( bStart )4 t' q# l* U- _* {; `5 t
{) c: i- Y* V+ J) Q: G8 n
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )* G+ R+ |: f! d# v1 F- S; ]: E- K }5 b
{
5 O! _/ i/ r- F$ E1 y& b0 I' V if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ), |& v3 h2 h; T8 \ J$ b# F5 C
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
& N. q3 P1 w/ n" z5 M& a }else{; g) l6 W3 Y8 M* K
bStart = FALSE;# q. P# ^) k3 |
m_pItemElem = NULL;8 L! u8 Z- R4 [2 j7 D9 F
}$ S! R9 e2 T, c9 M1 v
}% V/ G8 [3 T% k4 m0 t
return TRUE;+ G+ P" S) y& q# g
}, I$ u3 n' T% ^( X6 ]& I
( Y$ W: f/ ], M& ~ H- Q* @# P登录视频废话:" L# q+ H- Z7 v# i6 a
尾翼:
5 t/ j6 P' I# ]! Y. J2 O ^. j. t. T! I1 G5 }; ]+ p2 Q" x$ a E* q! `5 ]
代码:
) R" s+ e7 b& B, _" G6 n* s; a8 N q/ n' w2 h1 P# ]9 h c. v
void CWorld::SetLight( BOOL bLight )
1 f2 Z* T5 B' Vdurch0 j+ T3 H; N5 F& R% X$ I7 `
Code:+ @. v2 M- \- Y; m& A
void CWorld::SetLight( BOOL bLight )
( l" \7 H3 T9 Q, d: f{! ^2 O, f( \, m8 I" G
//ACE("SetLight %d \n", bLight);9 C# C% Z" T5 B" z6 O$ j& y
( W# ?# R: e0 H4 t' l
#ifndef __WORLDSERVER
; J( w, g+ `6 E DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);7 f; g& p T$ l( q$ G
CLight* pLight = NULL;2 p6 @. U/ S* J& f7 ]9 R) U8 W) m4 a
" G# h l) w2 b, @ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );; ` I& c+ P% p0 w
, V. f$ T, s( I( m: n$ W
pLight = GetLight( "direction" );
1 d6 a5 U) J6 L& t3 w1 D0 M% ~
/ b9 }/ ~, ^: O#if __VER >= 15 // __BS_CHANGING_ENVIR
% N) H/ ~" l8 E; x7 A9 m if( g_pPlayer ){
/ g. t/ j& ^- X ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
" s% A6 D% n9 \' ?( {8 n! L if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
+ a0 z1 P7 z0 m, F/ } {
# V" J' M: i7 h9 `4 \2 r3 H if( pLight )" I; k# ], M. Y/ k+ c9 Z# ?
{
" r0 b' c& Z+ U" R: X8 P pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
% t/ a1 Y6 T1 a. ^% z* ] pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
& B, Q0 q/ c' G% |" I/ K% M pLight->Ambient.b = pInfo->_fAmbient[ 2 ];# E4 g+ z; ] c* R2 d3 i, m" ^) n) a8 i
! r/ f6 q$ ^8 H+ g3 A! n! Y5 A
pLight->Specular.r = 2.0f;
2 n7 ]2 z$ r) f4 H( R. Q t. m pLight->Specular.g = 2.0f;
, D) I+ b- u/ M' q' m pLight->Specular.b = 2.0f;
9 G# F+ C$ H' ~, H' ]& B
8 R) M5 d- C+ C5 }; e. T pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
# w, n1 L% L+ R1 @9 c pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
- H e# U8 j% [9 p pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
- G- u, E2 Z* r- k- p1 S. M, w5 y. F
' b4 Q$ L4 f6 l2 U0 w HookUpdateLight( pLight ); / n2 T, F3 E$ W& ^0 R
4 W( f5 g- T( k9 C" I% _2 D memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! O3 x$ K- |7 L4 ?
& o# ~. @ u6 k$ M
pLight->Diffuse.r *= 1.2f;8 ]- t& g* }8 a" p4 w
pLight->Diffuse.g *= 1.2f;# \, ^4 D6 C8 O: J, a
pLight->Diffuse.b *= 1.2f;" ^. z* X6 r$ b2 I0 }
( @ C4 J* z3 T- }5 h4 S0 E% R2 N
pLight->Ambient.r *= 0.8f;
4 h, K4 e$ ]+ P; J: E- n2 O4 Q pLight->Ambient.g *= 0.8f;1 p4 \& V6 n- o+ w: c
pLight->Ambient.b *= 0.8f;
( e& R- T; _/ }8 x! }
3 h: S' g( t* @1 z* s memcpy( &m_light, pLight, sizeof( m_light ) );
3 c" K, K" O/ s+ z
9 i- q9 O9 B# ]( i9 { D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
! [$ m1 s; {* J+ A D3DXVec3Normalize(&(vecSun),&(vecSun));
$ v" g9 O% I a) n9 J# r pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
) R3 R8 X! N% o5 ~ pLight->Appear( m_pd3dDevice, TRUE );6 f3 w- O7 N' c9 B/ ~
0 g/ J, l3 v+ I, r, \5 ?7 } DWORD dwR, dwG, dwB;
. f1 Z3 ^# b+ d dwR = (DWORD)( pLight->Ambient.r * 255 );8 `; j2 u0 G3 a$ F' Y! `
dwG = (DWORD)( pLight->Ambient.g * 255 );' Q/ n+ G( ~/ d+ c5 w0 a4 t( e2 q
dwB = (DWORD)( pLight->Ambient.b * 255 );# ^. M H; f- R" V" d& Y- N; J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 F) W, }: U8 J3 B' {8 D8 B }/ A3 E/ J2 X. H* b" s$ x
}
& A7 r) I* b: z" X) }! y" o }3 t1 P0 T7 O6 L6 ]9 H
else
: D- Y; ?/ `( N#endif
0 @, w* T& s; z5 Z
3 k8 E, A8 ^( ?" W if( m_bIsIndoor )
4 d$ Y% \7 y' Y2 W' P {
7 R( ]) H4 a' O8 L$ p if( pLight )
( s$ C+ v; D2 M {
/ m5 ]# y9 c& B0 t // à??μ oˉè*
$ L9 m$ C0 z, x0 s) |7 Z+ ` pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;4 A' P2 U0 g$ m- I6 |2 }* T; t8 K
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;1 s& Y, W# q6 e3 q0 R9 n* \* Q/ i! r
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;9 X3 v7 B/ f# n* C2 A
8 M7 A% V G% e
// oˉè* ??à?
6 Z% j: c) l/ S$ z/ J6 ` pLight->Specular.r = 1.0f;4 ]2 @& ]0 S" r$ e0 M* ]: v
pLight->Specular.g = 1.0f;
, F2 n6 g3 t4 q" ?0 i- S pLight->Specular.b = 1.0f;
h3 P, _3 Y' Z d. ^5 D // àü?? oˉè*
+ b; q5 R' G! F( r$ A- U pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
F1 Y; w6 s/ t3 X! S+ i pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;) K" y! Y4 s" [/ R4 D9 i @! `& Q
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f; I; F* q$ Q- C& S9 x/ R
% O, s- k* ^( k% `" \$ D* U
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 _- ]! {" T" U9 M
{
) M0 b/ c U1 k- {, R) g& {/ I pLight->Diffuse.r *= 0.6f;
4 e. j8 Q+ L: o: P% N3 o( n& M pLight->Diffuse.g *= 0.6f;
9 X( B. u9 Z$ K9 u2 C% k$ J pLight->Diffuse.b *= 0.6f;
% e$ c }6 S8 V9 P pLight->Ambient.r *= 0.7f;
0 e9 K* S* L5 @2 @- I; ^ pLight->Ambient.g *= 0.7f;: c, D* u( I {8 n+ k; \5 Z
pLight->Ambient.b *= 0.7f;
/ t! F& |- e( x6 X% x+ |) H }1 x. F7 d" O3 C( ?/ ^8 K
/ o p- E. Q0 P* c5 {; g
#if __VER >= 15 // __BS_CHANGING_ENVIR* M+ b+ [8 B* X) r; l
if( g_pPlayer )
, }9 k# }9 s' |5 _ HookUpdateLight( pLight );3 a: T( \0 x/ b5 M2 v! d
#endif9 z1 o, n- d9 v+ @" @. [6 Q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% J7 s# P) z5 t, P2 W' v# t+ f2 B6 w1 L2 \( f
pLight->Diffuse.r += 0.1f;" M' T3 z0 x+ M: U5 b5 E; P- K; v. A
pLight->Diffuse.g += 0.1f;
4 [+ a5 u1 _6 J' z# d7 p pLight->Diffuse.b += 0.1f;# E1 S, s+ m' X( L
// oˉè* ??à?
' n3 M n" d& c$ t/ x7 [ pLight->Specular.r = 2.0f;
: J5 o" B4 {8 X { pLight->Specular.g = 2.0f;. b5 D2 S3 q" e8 d" h
pLight->Specular.b = 2.0f;0 v$ l* j' n: R0 \9 w# F) c
// á?oˉ 3 k: o2 g A9 W& j/ K3 u+ s
pLight->Ambient.r *= 0.9f;% f9 T! i! m: V) a2 L
pLight->Ambient.g *= 0.9f;
) M/ a2 E4 g8 }1 y5 Q0 _- x# j pLight->Ambient.b *= 0.9f;
& c! J+ B Z6 ] ]8 C
8 T/ n/ r6 U; H0 [, c memcpy( &m_light, pLight, sizeof( m_light ) );4 g0 K$ ?5 E. r
. q) M$ Q" i& v5 {# [
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );3 L' V) Q+ e! ?9 q; `9 F( j" a
pLight->Appear( m_pd3dDevice, TRUE );
: } `. p; O6 ]: t9 A ' z& S# v" o: [0 m$ i
DWORD dwR, dwG, dwB;) V/ z2 U( v1 D, h
dwR = (DWORD)( pLight->Ambient.r * 255 );
: ?2 e/ H7 s' L2 j! S dwG = (DWORD)( pLight->Ambient.g * 255 );! ] n' J$ x) K; W
dwB = (DWORD)( pLight->Ambient.b * 255 );
2 O2 K" f# P8 J0 y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 [( d0 @3 O- w* i: N+ A+ e }
2 \' Y: l$ t i5 m }0 l7 V' t5 N- v1 \# b o; h
else
: d0 J6 b) |* R# h {
# y) e9 E1 L, u6 w* Z if( pLight )
4 W- l! Z6 _$ z4 Q u1 ^ {1 v7 `( p6 O& I4 ^& o: b' |: e
' Z$ V5 n2 ~! e; [
int nHour = 8, nMin = 0;. q7 x' X9 i8 f1 E2 z
#ifdef __CLIENT6 L2 V6 [) |7 n# r! w8 A# r7 @1 `
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
6 P) [# x" ^1 e1 b% \$ b nHour = g_GameTimer.m_nHour; ^ c" ]* O% r' H, e. R; s
nMin = g_GameTimer.m_nMin ;
. L0 T! N) E4 P #else
0 I$ n h2 O! Q" u7 [1 x // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
( q: L9 ~' f* P if( m_nLightType == 1 )
9 G7 t1 _) a" K: E+ z2 H nHour = m_nLightHour;
3 p( w) D" d+ a8 O #endif
( `9 n) g. q+ J# t nHour--;
/ f$ Y5 R# |$ S( n" Y7 L if( nHour < 0 ) nHour = 0;) W# \3 ~5 @/ A8 L5 a
if( nHour > 23 ) nHour = 23;
/ q2 Z/ n" L( O/ o5 P- z; ] H9 F; g% ]+ |! x
//if( m_bFixedHour )
; Y: R0 k9 c( i8 y7 \* z$ U // nHour = m_nFixedHour, nMin = 0;
" h2 E7 H' B- M. Y, t$ d% F LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];! k) W K: x% x2 O
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
+ G7 L" R0 a2 g7 F; r% ^' `7 e
' b) @( e" y* ~9 A //m_lightColor = lightColorPrv;
* g& u* S: U K( t' T2 n lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;% d0 H( v7 q* V8 e0 u
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;& @+ [6 H5 O( [/ A
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;; Z1 ?; h. w3 w1 D( [
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;5 b0 W Z$ T- _0 ]6 X* a4 B
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
2 P; Y, b5 `, G4 m lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;6 u4 D. A) K" Q4 s7 u9 e. [1 Z
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
: H/ t' ], J% |( q$ z: v2 L- L: ~" r3 v
6 x$ G* k. `$ i1 x0 x+ E7 C+ C // à??μ oˉè* ) t* P; D: P/ w$ K
pLight->Diffuse.r = lightColorPrv.r1;
* h% L5 V; M6 c% ?' L3 }& j- K pLight->Diffuse.g = lightColorPrv.g1;
4 h- {% l" P6 {. r# E- ~4 m& D pLight->Diffuse.b = lightColorPrv.b1;$ ]( c& M% t( y) g$ ^' z4 b7 K
// oˉè* ??à?
% r' q% z$ R4 x2 [" b3 K k/ \: }! i# n pLight->Specular.r = 1.0f;* d5 Z7 k0 [- J& K& G1 _& A
pLight->Specular.g = 1.0f;
, r6 k# k) B) @8 F( {% d pLight->Specular.b = 1.0f;+ v7 ?7 _" b$ y! V7 U5 W
// àü?? oˉè*
# z) V x5 s' x1 g$ h pLight->Ambient.r = lightColorPrv.r2;9 N# w' ]2 Q T$ j4 i2 S1 r
pLight->Ambient.g = lightColorPrv.g2;( I6 R( a w% W( t) S2 F* B" q
pLight->Ambient.b = lightColorPrv.b2;5 f0 q" x. z6 Q2 g, L+ a6 x
- o7 y6 X b. s' r3 x8 V
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.1 h, D3 F. E ?: ?* g X; K! @& z. j
{ H. m4 V& b; v( b0 t: h
pLight->Diffuse.r *= 0.6f;
$ l0 S" d' j# W- Y% H3 F6 M7 ~- C- b pLight->Diffuse.g *= 0.6f;
' c3 k) A8 h1 _' R pLight->Diffuse.b *= 0.6f;
0 J4 ^, b2 c- T7 Y- P* q; q pLight->Ambient.r *= 0.7f;0 \- [' k. f4 C n0 B
pLight->Ambient.g *= 0.7f;
3 U4 m! l/ T! d$ H' h pLight->Ambient.b *= 0.7f;
7 A3 b6 r' U* V+ C1 Z9 R }& X& _/ Q: k, k: }
L: A! V, z$ y#if __VER >= 15 // __BS_CHANGING_ENVIR4 U: _: m+ o) D$ [
if( g_pPlayer )
- L9 Z) _9 G+ A- E# p HookUpdateLight( pLight );
y, ]2 U) y2 n2 ~#endif! g2 u- A1 Q) E
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); u8 x. }2 U$ U6 O
4 ^, _1 v! P# S; ^$ {6 L
#ifdef __YENV
( P4 H2 s/ X$ V: \6 G# W4 u pLight->Diffuse.r *= 1.1f;( l4 O: {1 z( B) k$ N, c) s
pLight->Diffuse.g *= 1.1f;
: ^2 T) D4 {. q pLight->Diffuse.b *= 1.1f;" X R6 t/ v! L v9 N) h
// oˉè* ??à? 3 w! Z) K' Z5 _0 h' ~
pLight->Specular.r = 2.0f;6 ]& F& P) J0 m: q
pLight->Specular.g = 2.0f;
/ C ?0 h0 S7 Z2 ?; }. i pLight->Specular.b = 2.0f;
0 V5 D$ C/ M i0 J" C // á?oˉ
, [4 V3 R0 Y7 q6 J) A. F- Q# {! L l- A pLight->Ambient.r *= 1.0f;+ m: C: P: }% x2 b( }2 f+ A
pLight->Ambient.g *= 1.0f;4 v5 ~. X, C* k/ Z
pLight->Ambient.b *= 1.0f;
4 K0 d/ W- ~/ o#else //__YENV
3 w' E d, A! E7 ?" D pLight->Diffuse.r *= 1.1f;3 h4 O1 S7 F& {2 X/ _' I
pLight->Diffuse.g *= 1.1f;+ {0 ^$ f: K3 G: Z- y4 U$ K
pLight->Diffuse.b *= 1.1f;
+ d! c: ]" d: D8 B5 H+ S7 R! H // oˉè* ??à? ) c- v! z! Q7 m# {+ F: v
pLight->Specular.r = 2.0f;! o& R: b+ z4 x! y
pLight->Specular.g = 2.0f;+ P. `0 u' _: `3 K
pLight->Specular.b = 2.0f;
' W3 Q. x4 R$ r8 X // á?oˉ + i) t: |; ]0 n* N
pLight->Ambient.r *= 0.9f;
2 k2 B3 Y" p! ~4 n4 d* v pLight->Ambient.g *= 0.9f;! ]. g% L: n+ [) A1 x5 j8 k
pLight->Ambient.b *= 0.9f;) P6 u. F; s$ p3 n" I
#endif //__YENV . P; R- W" B$ | |
0 c3 ]6 T; K5 N5 a$ p) u8 q
memcpy( &m_light, pLight, sizeof( m_light ) );
0 I& P" [( {: J$ n, v. l
" ~ n/ k) o. L# c2 \. D, J: | D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
. s" U- o9 W8 S D3DXMATRIX matTemp;
3 t% P/ }3 Y" Y0 b static const float CONS_VAL = 3.1415926f / 180.f; k+ }8 S" Z6 R
+ c& A0 C: k- R% s
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
" s5 r) y8 O( q* g" g% z( J D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! ?* S1 J3 ^9 w5 e
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); * ?) @: N0 k7 h+ Y2 T( R: d
pLight->Appear( m_pd3dDevice, TRUE );- {2 _3 E( g0 O5 A& i
/ S; ~! p% |4 X* y) d // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 N9 e j) {. _5 C4 Y // D3DXVec3Normalize(&(vecSun),&(vecSun));
- C+ }7 w: q/ D* N4 j; s; d // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); G3 w/ {, T4 g- M! U# C
( q. m' n# W) r/ \% ^# S( m
DWORD dwR, dwG, dwB;) b1 |% u3 t" {6 j. k+ ?
dwR = (DWORD)( pLight->Ambient.r * 255 );
; c; o3 f: q; u- k6 ^ dwG = (DWORD)( pLight->Ambient.g * 255 );
) m* c. \ g( m- g3 q0 O2 h dwB = (DWORD)( pLight->Ambient.b * 255 );8 e) R$ o- M N/ s( D2 V$ G
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ w8 w6 R2 [+ M6 K) E }
; e: `9 U( N4 i4 ?! x% t$ g8 f- @5 X }
) F$ @" v+ r. a q( ^; V6 D+ I
2 q( L. ]( X4 N- q8 S m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
, ~, s2 i* B( m a 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) );- K$ K& B2 e; b6 A/ w# V% D! f) p5 x
::SetLight( bLight );1 [% Z+ e! c& J3 T2 `
# N8 O$ R- U. ]5 |% q) q, I9 _ // ±ao? ?D?í???ó á¤à? ' C6 u( U! F2 C! m6 }; z3 H
m_pd3dDevice->SetMaterial( &m_baseMaterial );
" r: Q3 q- x9 g- t ! ]$ k" `. K! b! j' y
#endif // not WORLDSERVER+ V! A/ ]/ a& G9 c' H5 y* Q$ Q3 R6 @ C7 d
}
9 ~! ]% U( H5 N2 @, M4 _并更换% V7 j5 b! L+ B
Code:* W8 q# X, d$ B1 {
__FLYFF_INITPAGE_EXT9 L) ^: P0 W. ?- P) v- ~$ ^4 n
定义
4 a; u! q/ c- ~/ x% w: I" B+ v6 y" q1 `' q
8 j/ j( |5 g8 Q- X9 h$ k
E, `' x, [: s1 a8 e+ u: [* o6 H- U. |# e4 T9 E, ?$ M
现在终于删除我的狗屁加速...
% E$ d0 B3 p4 c: M1 f
- ~# o; T+ j0 ~# @ Z# h4 ~9 A) ^7 q( y9 e! g
1 i# k( O3 \ c. M |
|