|
|
食品车:
+ G& K, I2 C' {) H. d/ F" }/ d( p尾翼:
+ u" s K6 K( H* W Q S5 E3 l7 \" t" j8 Y" Q0 c ?. e @3 J
代码:
" X A1 x" g1 x8 `0 zCWndAutoFood::CWndAutoFood()
9 r9 A* d5 ?& X9 z2 x% z{
! P7 J P- t' c2 U6 p3 L; Q: e: e m_pItemElem = NULL;
, P3 {/ [2 R! h5 G' @ L m_pTexture = NULL;2 \7 y* U6 l1 g3 J3 u7 i
bStart = FALSE;
: U4 w, l* ]* ^: C5 K' y) @- D% m/ _}
" y& ?- O5 U$ H) J# t8 a3 Q3 B* y
( Y& ^9 t" J3 k$ {CWndAutoFood::~CWndAutoFood()5 o% W: }+ \! S! H
{6 z6 i* r& V4 V: x
AfxMessageBox( "AutoFood ist gestorben " );
% r+ _6 ~4 W6 j/ _$ T J% K}* o( i6 p/ ]- s" f, A
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ); S! W j( `5 ~- v( N9 L+ ]
{
2 b C- Y2 R& z+ J return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );' U O* G* O0 r8 E$ ^4 [' G2 l
}
# n. w* _3 M7 p9 k$ B
1 h) G4 q* N! ~9 h( ]BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )5 C5 s- T6 f$ ~: A+ Y
{" m6 O- L: Y C4 ^. v, |
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ E' ^0 o: q7 h# k* j
CRect rect = pWndCtrl->rect;9 x3 z+ A% G f
if( rect && rect.PtInRect( point ) )
8 m* y0 r/ B, _' a {* @, q$ y6 e8 a3 S( J+ L- T
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );+ c; K1 u9 _$ n
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ) B7 O! X( g- I' G
{
* q% I2 d" Y: w' Z, V4 V if( m_pItemElem )
9 Z: i& I2 W3 p" B, }( D$ t% r. ~, Z {, _1 }. v& \ Q; ?( J1 e
m_pItemElem = NULL;% {6 Y1 D4 R! d- V) c
}" h6 @; ]( F4 _' {
m_pItemElem = pItemElem;, P( K5 t4 S$ g; P, B
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 s& c! w; W9 g# x
}else{
2 {/ e& T) s( J" F- h SetForbid( TRUE );/ v' o( _; J4 U
}
/ J7 s; A- K- \ l+ P$ Q6 r3 F/ H$ ~ }else{! @8 u( j/ m @" e6 h" b9 ]
SetForbid( TRUE );
5 S# |! _( i+ T1 x @& C# S }! L+ W) h4 `( f! f9 v+ N
return TRUE;
2 }& ~& G! V4 I5 v. W. e}
6 Z1 A) Q6 `8 k5 \9 X. {9 t: L4 N5 ?# X) l) A2 `/ U, D
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 e% o5 J/ v4 e6 l/ R* y6 ]* C
{; q$ v7 K _% J! a t5 W* I% B$ e( r
switch( nID )) v" N7 }* u+ Q( p# V
{
/ P4 d- @1 |4 m case WIDC_BUTTON3:/ r9 K/ i# W: b6 S8 I
{
: }( Q, k9 b# h1 y9 c$ {0 x bStart = TRUE;
. U" }7 ~0 H3 n8 F, |/ c0 T- m; r8 J break;# v$ l! ?8 x" {2 v% C$ U
}3 I! R3 _! t; k- Y: b! c/ Z
case WIDC_BUTTON4:
/ y/ Z7 y# `1 }5 F! o' A. G9 n {# E4 p" f9 ^" b- I6 a) n( C
bStart = FALSE;
* |0 s2 V; E( a3 Z, a( F3 n break;0 n3 X# P# p7 K% Y+ D! p* ]* V+ e
}+ @5 J' z( M" S+ }) h# m$ u; l
}
# A1 x' B1 a, _ D; I. K; X return CWndNeuz::OnChildNotify( message, nID, pLResult );
/ p9 R# \/ P+ Y3 p: {+ C}
3 A* \$ @+ A- vvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )6 F k; K9 {9 f( ]6 x' s/ H
{
/ @. H4 P) Z! X# R4 n CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
. c- o2 I' A. O, z1 a3 S if( bStart || !m_pItemElem )9 F; r, u8 _2 Z" N l6 `+ C( T3 W9 N
{, N0 m( g) W \ J0 ~% J1 l+ J. V
pBtn->EnableWindow( FALSE );
R9 k9 R# h- g9 L/ U }else i) C% S! z# h8 c# A( Q
pBtn->EnableWindow( TRUE );
0 t. `# J- l1 B3 H if( m_pTexture )) p: m( H0 _+ `8 h7 h# A- v8 R
{
* s+ k" |+ E+ h" ]0 Q4 a LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
/ W* M' o5 O( M; f1 K. b if( wndCtrl && wndCtrl->rect )
* w& B, U6 R4 K6 g. {% `! ?0 P { C1 _( h9 R1 K' p* W9 @
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
7 f! A; f+ H6 g# y! ~1 W }% l2 `. H& M$ I8 x
}/ W. {0 \4 S" K, c1 t1 Z& z
}. w+ ]; X/ S" s% v$ n |. c) N
, s' i2 I8 Y0 }' O7 c/ `+ X
BOOL CWndAutoFood: rocess()
$ i, A L+ V" @+ b( w4 U{4 V8 ]6 L7 v% g0 m" k0 W2 p, }( i
if( bStart )# q- { r U! b5 t; ~) s
{
' {8 r% A L1 w7 r( v/ c+ Z, y! ~ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )( Z' ]: M8 k" g# _
{
$ `& q5 e* n/ o if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
P+ ^" T$ U6 Y1 J g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
" r/ s/ G2 u1 N i8 T }else{
8 K4 T0 B$ Y- _& N" J bStart = FALSE;
, M+ Z5 j# q: J3 F m_pItemElem = NULL;
% Z* P$ q+ u B }
3 l( \1 s+ i* A* V7 x }
7 b# ]6 d B2 `: ^ return TRUE;
( ~7 h9 ~# `) Y0 p% T' z o* l}. Z9 [7 o1 u" j- N
6 m5 R9 F7 O6 x登录视频废话:) p( b" Y3 Z- [, |, O0 T
尾翼:
/ J" v, Y+ a4 W0 R$ G( h' b9 d# F; T% u$ P2 z; ]3 u/ D$ W6 ^& |
代码:
- T9 y9 t, A8 H' @3 j& b8 P
4 ]; ?, A2 E% P* `# @0 `void CWorld::SetLight( BOOL bLight )' L. }( n0 O9 Z4 l$ H* X
durch$ a' E$ a) W' h) s1 q
Code:! l9 M% L5 X, t" P1 _5 C8 M
void CWorld::SetLight( BOOL bLight )
k, V$ j$ B" u5 M& Y{
' W0 U i. D3 m$ F //ACE("SetLight %d \n", bLight);" J1 Z3 q' P. [, W' d
- N ]5 x0 l) q# y4 K0 Y, d#ifndef __WORLDSERVER
# U! |, V. `/ c# H/ ]6 n( j8 A DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
. u0 F @: w) ^0 j4 D) v5 Z CLight* pLight = NULL;/ [# f% B& P1 n. {# F
! X" Q0 D6 T1 z6 k. p+ i
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
& b D9 d5 u3 E1 n0 K2 n
4 ]) i* X/ ]" k2 G pLight = GetLight( "direction" );
) k4 n3 w) v9 D4 L8 f7 C1 j; ]6 q
#if __VER >= 15 // __BS_CHANGING_ENVIR
+ O2 m5 ]1 q) Q* B" n if( g_pPlayer ){
: W+ z: ^) @+ m- y3 z- k0 e% G ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );. M& L$ [5 K' U! J* M7 |+ m
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 A$ d# x& I' P( O5 J0 S" I' L
{3 ?2 Q& }* S Y1 D
if( pLight )
# l$ x/ i' g3 I {- m( ?2 i, M, T) j0 I& F: _3 @( H) \
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];( e( u+ d4 D4 \, b' X) P: C
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];4 z6 H+ N& R$ \# I, E0 y
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
E* `5 K) y8 o/ w. D, Y) a0 G
. {' Y( F8 M+ ]/ P& a/ M+ |; X r# _ pLight->Specular.r = 2.0f;
) D# {" A# O- @, t, T0 a pLight->Specular.g = 2.0f;
4 o. c3 u1 z7 x pLight->Specular.b = 2.0f;3 U! h. H- H; J- T) Y9 A& U! p
: @; C: f7 b4 o' A1 x9 W pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
2 N; a& Q& @$ z pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];$ s* N3 T/ c% ^* e. p' P6 x
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
$ Y4 `$ b& o$ Z& J5 J- _$ N . e) S2 s6 d% [
HookUpdateLight( pLight );
0 A+ } D& p( r* U$ V2 [ I, a$ R! l2 F
- n3 u3 N+ |$ m) R* p& O memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
7 f; H4 C. b" x3 s4 K/ L8 J
8 e0 G% h( o7 e) y$ u pLight->Diffuse.r *= 1.2f;2 Z0 _! }9 U* R, Q+ g- w6 C
pLight->Diffuse.g *= 1.2f;
/ x; ]9 {0 i5 f" l pLight->Diffuse.b *= 1.2f;6 i, R5 }3 b$ z* m. j/ ^1 V
7 t3 [1 [5 w8 _& D8 ?
pLight->Ambient.r *= 0.8f;3 Q# N* }3 e5 y s
pLight->Ambient.g *= 0.8f;9 V: D( d5 C6 y- x2 q
pLight->Ambient.b *= 0.8f;, R) o1 v9 s& t5 v5 l: `% }
8 k5 Q" x8 m: E2 A" i$ z memcpy( &m_light, pLight, sizeof( m_light ) );& g+ P7 r" V8 q! _
. C! Y( f N# S& H" ~$ A; F D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 o5 v* K: B; D2 B/ s; J
D3DXVec3Normalize(&(vecSun),&(vecSun));
, Y+ B0 a8 [( Q7 y/ D pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
u6 }$ T! s! {# U! v+ r C% [( ? pLight->Appear( m_pd3dDevice, TRUE );
c5 i; w5 K, v" ]$ Q) v * H7 K# q$ [% X# }
DWORD dwR, dwG, dwB;
7 j; L; u( v, x' D- {# y dwR = (DWORD)( pLight->Ambient.r * 255 );' u: D3 i% f3 ? Q$ M& \$ f5 B/ Q! q
dwG = (DWORD)( pLight->Ambient.g * 255 );
( h5 H5 M1 m$ \7 A" D; | dwB = (DWORD)( pLight->Ambient.b * 255 );
/ `% [4 }3 l0 n) b% r dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );, u" q# W4 D8 V, q8 P9 [" c4 g
}! b/ r% M2 Y6 [) y
} l m# A9 S+ U: ^/ s3 m" D" S
}+ M! W; J1 R4 m! E5 _5 N: q
else% f+ d2 {; J1 _
#endif
W. d7 P; P& x! W T% N' l; W3 M# } `; _3 Q; o, n* K
if( m_bIsIndoor )
+ @2 a, G0 B# O0 [ {% f* Q" }8 b& ~& R
if( pLight )
+ V. L0 M/ u1 b { " Y& k4 ] A& x) x. r
// à??μ oˉè*
* Y& f9 S& p5 O- G$ i pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
( v6 c( _4 E/ \ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;% J5 @0 p+ \: Q
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
7 e% ~/ V, b5 e- q6 l( H3 q
2 b) V0 u- `. L& b // oˉè* ??à? 2 ~$ C8 t3 _! z2 ]) {
pLight->Specular.r = 1.0f;8 b7 s& O: @4 d: K8 m3 V- E3 o: S
pLight->Specular.g = 1.0f;
% @, w$ C$ i, H, T% m/ J, P pLight->Specular.b = 1.0f;
" y/ U+ H& l( B4 ?. ^4 v% P$ D // àü?? oˉè*
/ F: `) N, `5 R- o* t) [ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
7 \/ a3 U- |, u& q. S5 w$ ~ pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;) ?- l! t6 w: X; V+ ]: w
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 O0 _6 V' z7 ~7 Z/ Q" C8 X; L
' I3 ]& Y9 X* t) G P2 f! r+ g if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.( X( Z6 B8 M. p- U
{
& H7 C6 M/ S3 f& x q3 M pLight->Diffuse.r *= 0.6f;
& e. q) @+ S8 Y7 `$ ]/ q4 T6 K pLight->Diffuse.g *= 0.6f;
$ z. v7 x0 j4 ^ B* l B pLight->Diffuse.b *= 0.6f;" n g8 d* L" }0 V# {
pLight->Ambient.r *= 0.7f;, }, o1 [* g0 s
pLight->Ambient.g *= 0.7f;
3 Y# @; x3 Z# l/ E# k" _& ` pLight->Ambient.b *= 0.7f;' |- p* S# @$ s/ B' U% _
}3 n' N" E# }6 o
7 P) Q9 M4 R [; N
#if __VER >= 15 // __BS_CHANGING_ENVIR
5 r! ?, l2 N& {* T* b if( g_pPlayer )& M- n, x5 }4 `% @5 v
HookUpdateLight( pLight );' h ~0 d' Q4 J8 f2 @- y, @1 D* @
#endif
5 r2 p" a6 R$ t memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ j/ H: Q, ^- M( D! w; T
U( A* G5 H1 p; Q
pLight->Diffuse.r += 0.1f;' t9 y7 K: Q u6 _7 p
pLight->Diffuse.g += 0.1f;: e; P i- c& Y* E/ T
pLight->Diffuse.b += 0.1f;
3 Y1 L( \" o$ l9 ~9 F // oˉè* ??à?
# D% T' d8 A- M, v% {# \ pLight->Specular.r = 2.0f;
0 P# J4 ^9 @ m9 t pLight->Specular.g = 2.0f;% `- q6 l9 L) ?# F$ x
pLight->Specular.b = 2.0f;. x- E6 u( @! S3 Z
// á?oˉ
9 a. L- V, n/ G pLight->Ambient.r *= 0.9f;2 z& _) Q/ |, g+ H1 h- s
pLight->Ambient.g *= 0.9f;
7 j! l6 I* U& ~: ~" `# E pLight->Ambient.b *= 0.9f;5 [* D& U7 k3 k2 E4 o$ H
8 A/ ?" i B' q k8 E& W memcpy( &m_light, pLight, sizeof( m_light ) );
9 j5 n3 B! V4 w, n9 d- I2 T! W1 r + t- D. }# I$ V" g$ F
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );1 p9 q& G" }, X6 {! s# P9 b# z% l
pLight->Appear( m_pd3dDevice, TRUE );
y( G% G4 `# y3 \+ Y. ^( Q$ O) [
! f1 M1 [8 h f( R4 V% f DWORD dwR, dwG, dwB;' e n3 K) i+ N% Q% N# b# f! `
dwR = (DWORD)( pLight->Ambient.r * 255 );
7 n# I7 G% E) q1 z7 R& x9 a; R dwG = (DWORD)( pLight->Ambient.g * 255 );
6 u& K# ?: E4 E" C5 j dwB = (DWORD)( pLight->Ambient.b * 255 );
% `# h9 [! b+ h; \ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' |# X. K' T# y
}
7 S8 F5 W0 W6 p }5 Z! G" c/ R: ^$ c* n) o
else2 Y$ p4 {$ X2 ?, p- C
{8 E" U F8 h. c% a+ C8 n8 q& L
if( pLight )& N# x) I9 [2 X. t: I
{/ Y* c) j" y' O u$ a
: @ l& n1 Y4 k% O% `3 Q" C. H: }! b% z3 X int nHour = 8, nMin = 0;0 v! Q3 u: y* }3 {1 C. W
#ifdef __CLIENT
6 Z, K! f u5 P5 T2 A$ k" K! @ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
3 D8 _3 g* ]" [ nHour = g_GameTimer.m_nHour;$ e6 E- [& S' J, R! Y
nMin = g_GameTimer.m_nMin ;
! F% w, c8 R7 R( Q2 R3 Y( e #else- U* d2 }7 m9 r- R$ C, P) D1 j$ A
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.. M5 b8 d' \; }8 z% W5 A2 I+ @
if( m_nLightType == 1 )
; l! B$ E, R: H3 G nHour = m_nLightHour;
. P6 s6 U; t+ s #endif' ^; O" T" D, l
nHour--;
" ]% ~! |+ c5 C/ E% G if( nHour < 0 ) nHour = 0;
/ e+ k* Q$ f1 x# _9 @ if( nHour > 23 ) nHour = 23;
' M# v% J# M6 g3 e) R; ?2 |- W/ A8 H y. o" ]& ^& e3 Y
//if( m_bFixedHour )
# }2 e8 x/ _5 A3 |: W& o+ Y% U2 m // nHour = m_nFixedHour, nMin = 0;+ c% {; h& m0 c; D; I9 l
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];9 ?8 x% w9 \; x s, U
LIGHTCOLOR lightColor = m_k24Light[ nHour ];' S; {9 a- J; x" H) w
. L- s, J6 Y. |( H h5 T3 s
//m_lightColor = lightColorPrv;
6 v8 O% c1 O8 K9 N% T lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
) ]" h# i, H" I' K6 g( {/ R% m lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
& F6 C5 a* D0 k& }* t5 Y$ x lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
! ]# P @% @7 E9 c$ q# k lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;8 q1 L: Y7 }# b9 e2 r
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;3 c/ J5 V9 m0 x" a% [' \' N/ c9 F
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
6 w2 c# X, P, c! ] // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
0 H! U9 `; w D+ Q4 _# v/ P" c3 F" e& v L4 J* {2 @
// à??μ oˉè* ' P9 |. S+ `6 d+ y1 [- V2 h
pLight->Diffuse.r = lightColorPrv.r1;' w! Y! o0 b& N. }+ [ e: C7 J
pLight->Diffuse.g = lightColorPrv.g1;8 w. P5 q# {5 ]/ ?# k
pLight->Diffuse.b = lightColorPrv.b1;$ f0 p4 ?% i( R+ Y* E% w
// oˉè* ??à? 5 Y6 x: X& c+ }4 `! t( m& d
pLight->Specular.r = 1.0f;
* ^, t+ M; X* h, V1 k pLight->Specular.g = 1.0f;2 b |8 {$ D; g* t5 l
pLight->Specular.b = 1.0f;
) C R7 l9 u* g, G* ? // àü?? oˉè* 1 f: z) u- _ v8 g& P1 K
pLight->Ambient.r = lightColorPrv.r2;
3 p5 e* W! n3 P* ^2 }/ o pLight->Ambient.g = lightColorPrv.g2;+ H9 s( X( Z: i& g/ ?4 p5 y
pLight->Ambient.b = lightColorPrv.b2;
% Z9 D# `" |4 {' ?' O5 l
1 ^& r. l1 z% d. Y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 c: ] [$ p) m( o I {
4 \; C! Y. \, r3 e# W pLight->Diffuse.r *= 0.6f;/ T* \/ {! s; S+ t1 J g
pLight->Diffuse.g *= 0.6f;
' z) [2 a3 ]& _+ V9 ] pLight->Diffuse.b *= 0.6f;
# w0 e& ^5 J. P9 @ pLight->Ambient.r *= 0.7f;
$ ?3 I1 E$ r: W9 E. Y o pLight->Ambient.g *= 0.7f;
( X; ]* g: b5 @" ~1 h pLight->Ambient.b *= 0.7f;
% x2 s2 [+ ]! W3 r5 i }) c8 G4 p" H- e, ]' e
5 R9 V0 A5 P) @ Z( }#if __VER >= 15 // __BS_CHANGING_ENVIR0 G! N/ E' k* b
if( g_pPlayer )% J! |0 t4 z1 y9 e7 t; \0 C
HookUpdateLight( pLight );
+ S% Q6 A8 M& `8 |' a1 p# Z; a; Q#endif
, O& y6 K. {$ Q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- v& D: G3 H& \
) B j3 t& ~% C9 s#ifdef __YENV
; _0 } I+ [1 @, y/ g pLight->Diffuse.r *= 1.1f;4 b' v. ]' }. c5 y/ U @6 @
pLight->Diffuse.g *= 1.1f;
t5 E; c3 O+ l1 g/ E8 E pLight->Diffuse.b *= 1.1f;6 S5 O5 }& l1 o, d6 L6 e; h6 t8 f, o
// oˉè* ??à?
7 F3 G: @& S( h; e) Q( n pLight->Specular.r = 2.0f;
# L, S+ D0 f' N6 o+ F pLight->Specular.g = 2.0f;
4 \! N9 ~1 Q# Q2 H( y: u2 g2 E pLight->Specular.b = 2.0f;
4 N: z7 t1 {3 X4 t' P% W, ?7 g // á?oˉ . Y, V }6 X3 \3 [
pLight->Ambient.r *= 1.0f;* \7 s( K5 c) g6 A x1 E
pLight->Ambient.g *= 1.0f;
7 [5 R" @6 l3 C pLight->Ambient.b *= 1.0f;1 V6 J) \" C0 q
#else //__YENV+ L3 ]; {7 K( Y' y4 U
pLight->Diffuse.r *= 1.1f;% v6 M7 P7 {* H* h; b: Q
pLight->Diffuse.g *= 1.1f;
. }4 G0 m2 W; \' h$ J; J pLight->Diffuse.b *= 1.1f;$ }% H8 ~! h! a6 h
// oˉè* ??à? - x- a5 ]: Y& P S) q( g* B3 d
pLight->Specular.r = 2.0f;
7 s+ n( f! k$ a( g pLight->Specular.g = 2.0f;" r- X+ S' B4 `
pLight->Specular.b = 2.0f;
6 v& M+ n$ Q1 L8 ? // á?oˉ + p0 X/ U4 o* A* y* @
pLight->Ambient.r *= 0.9f;
( E w: p& E7 W! E* T; F) B2 e4 w( B8 n pLight->Ambient.g *= 0.9f;
" I' Q) o/ C" K- |* K% L8 s8 M pLight->Ambient.b *= 0.9f;& i0 M: z3 m, y6 a+ ]0 M
#endif //__YENV
7 w* f, s$ n5 d- g+ E) x' _- C " j& h9 Q8 ?; W- c
memcpy( &m_light, pLight, sizeof( m_light ) );$ @/ Z% V: i, X
7 b2 q1 Z( \3 u6 a, s+ L2 z D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
* h! P7 ~* Q' D D3DXMATRIX matTemp;# w8 N1 f! v' t4 X* H( s
static const float CONS_VAL = 3.1415926f / 180.f;
6 `* k. [5 @' b7 R' |, x6 Z$ I
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! P0 o) ?6 \/ i$ }1 p; ^+ T1 X D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
) [# q' ?1 _5 A! o' ~2 p L3 P pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); , @2 l1 M8 P" a; m0 [
pLight->Appear( m_pd3dDevice, TRUE );' I$ `$ S3 y( S- L5 |$ z) w5 D
! O$ o7 d2 u1 |0 s // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, M! ?8 t1 n5 f/ q. R0 P // D3DXVec3Normalize(&(vecSun),&(vecSun));! C- C& z5 a: o
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : V4 j& n i- `* q9 `+ t/ a
3 Y4 @$ i4 u9 W8 [( Q3 M DWORD dwR, dwG, dwB;) C; l3 |9 Q* `
dwR = (DWORD)( pLight->Ambient.r * 255 );5 I% G( u" `9 T* N9 T' H
dwG = (DWORD)( pLight->Ambient.g * 255 );4 n: d5 d8 Q8 I; j
dwB = (DWORD)( pLight->Ambient.b * 255 );4 S O- b9 C, v% q; E' M
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* N3 b% K3 d: [0 t" { } u( J6 x% y2 z) b
}
/ g$ U) O. U, S/ o/ O4 ^
- S+ M+ |* Y1 S" V' |7 f m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
/ T/ f- w7 x I2 H) E5 y8 v3 I2 o 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) );
* B( L9 E# {6 t# ? ::SetLight( bLight );
7 T) O; \* z0 K
1 p! o9 L% S0 L6 z1 H, I // ±ao? ?D?í???ó á¤à?
: c: ?9 h$ m$ y5 ]7 o m_pd3dDevice->SetMaterial( &m_baseMaterial ); T$ f7 n4 p. g1 E
1 ]0 |# }+ D* u; B" C9 J#endif // not WORLDSERVER6 P. \7 X3 ^& ]( F4 C
}
1 B. u. t7 [. z并更换3 G2 w9 u/ n$ v/ \5 i( I) e0 Y
Code:
i4 k* V0 Y7 U__FLYFF_INITPAGE_EXT
" j% D3 f& b. o# J. e+ u定义7 t6 E7 i+ [9 v$ n& n7 P3 t" j
: m! |5 H$ ^4 I* |7 ?
% u- i1 o+ _" R& R: G! M2 u/ s0 d, k# P# h% p
! q7 a9 d8 Q' H) A- R' z, o. ?
现在终于删除我的狗屁加速...
' S, o* Z% |) ]' p: Z, T2 J) T" H6 M4 J2 Y8 @, e5 n2 C- r
+ e r# E8 t8 C+ ?; A! P8 t4 f0 m' S% E4 R4 ^7 h+ T7 ~+ _1 N F
|
|