|
|
食品车:2 c/ Y4 U1 Y' R# V! [2 T3 l
尾翼:* p' w( k+ i5 B% c; n
* B" |5 J' m* x" y( I& Q; \% m代码:
. i) N' G5 \" Y1 w8 C) RCWndAutoFood::CWndAutoFood()) m! N- G5 Y- Z4 u d1 Y( G, S8 L
{& f7 }( l3 v0 H' O, C5 q' ~6 x0 q
m_pItemElem = NULL;9 ?/ J* O7 a+ h5 \' X* q, f+ [ t/ _
m_pTexture = NULL;
5 a3 C' v4 H. u$ P7 a5 S/ @( {9 Q bStart = FALSE;( p7 s4 K1 z2 v
}$ d: R+ f$ O# \2 D/ W
/ [, B9 Y* Y. N8 ^! X# y
CWndAutoFood::~CWndAutoFood()
0 i" g% R. H) A3 w9 P{
/ ^- M) ]) a) d/ x4 ^ AfxMessageBox( "AutoFood ist gestorben " );
9 T( o# b* L! i0 t}
9 F1 A! I+ [. S3 G8 l- u% |6 s( bBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
5 T; a9 P6 B5 U3 L, C{: L& q% x0 D+ x o
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); S7 c6 w6 U) L4 J% _& x
}
4 ]8 O; z6 j! c1 U) q6 ]' f% Q' _- L4 \8 u9 F& J, H J
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
) k% |3 v' Z$ e# ^$ k+ S s! P{( k% V7 H0 {4 D0 Z7 ?+ |6 f
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ V) Q9 Z A9 x% i# f
CRect rect = pWndCtrl->rect;4 T. G+ u! v) h5 C, s
if( rect && rect.PtInRect( point ) )
- `! j9 @: C: _# H+ F2 F* c$ M6 X {
& [# d/ E8 O# l& S: E! ]3 V CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
3 k: N, ^" b8 ?3 y4 v. E9 w- e! W9 D if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
; k3 y* L- A, | {
6 K' O, D* a" H# X3 H/ m: E: }! E if( m_pItemElem )
' ]( R' h/ U8 t+ W5 q {
: |' Q) z! F8 ?7 L; i3 u5 L m_pItemElem = NULL;
6 S/ `3 g0 ~, V5 u! ~) D: S5 @ }0 ]- v( b4 {+ P! J* `
m_pItemElem = pItemElem;
% k1 g* N. G! a |, t m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
/ W9 B: J8 O9 l) U* K# J$ M7 r }else{1 h( Q0 ~2 M9 v6 f: l# b: d
SetForbid( TRUE );8 w2 k8 n$ S$ p+ l' t
}
) G0 P; Y/ C, f1 T- b' l, ^4 P }else{
3 f1 g" N2 S1 A' ]$ M+ ~! b SetForbid( TRUE );
) J! S4 Y3 L& f# K$ F g1 @$ C }
. A$ |' `# Y! R5 V* d return TRUE;5 u9 I! e/ D. R$ T
}
. ^$ R* R, {: T( @7 q; X! }; m' B: S4 Y* @3 C9 l
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
# s! R2 r5 ?+ ]6 X{4 ]" J5 r* `. T l
switch( nID )
W/ M e" z N3 @+ r: k, l {& S# y6 k" U$ ^8 c
case WIDC_BUTTON3:
, y- F* J g7 u {
) a9 ] q4 n. w/ S5 ~& D* _ bStart = TRUE;, |" g5 s O" x7 o3 g
break;4 S* B+ e! k3 U* J# d
}; _5 |9 U8 S' d8 \" k+ ]
case WIDC_BUTTON4:
0 u; L4 D! d7 V4 u1 @$ z* A {6 _1 G( S% t* c
bStart = FALSE;
* `! i! w6 `: A1 x! K' z break;
7 `* Q% b: Y( q+ m }
N* \) p( ]. c8 \4 ^ }
" l" [8 I* \4 m/ A+ H+ a return CWndNeuz::OnChildNotify( message, nID, pLResult );0 w8 k/ p: @( Z5 a5 n
} $ N$ g% y, n* c( C& h9 S: x- I+ v
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
, k" [% d; j# a, F o{
( t7 i$ C' {6 r+ a! G4 x4 O$ P CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
) v. T5 A1 N9 M3 ] if( bStart || !m_pItemElem )* v9 l. @. t" |/ a* J( U9 i
{2 ]+ [. I# P% B$ @& A/ O6 Y
pBtn->EnableWindow( FALSE );! P! Y; X" I+ L4 p# z( @1 D
}else0 Y0 X8 L- r7 j# r+ \; U
pBtn->EnableWindow( TRUE );
$ W8 y+ F; e' q! O/ H if( m_pTexture )8 b. S6 K3 z- o2 L B
{
3 Y% j' a& Q, N+ F4 x LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 ]+ ]; ? b& g, p: k9 l if( wndCtrl && wndCtrl->rect )8 O# U5 r" x2 o) [* ] V, @
{* G0 t- Q8 U( [' \! g7 V; T/ _
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );) E1 l ~; x1 \1 X
}8 d% p+ [; V4 @0 K! j6 z0 l3 q
}. b8 X( J- g% o3 j G, J0 Z
}
1 Q# J6 v' [: R5 {. f: w* I8 J! h% j0 y1 R- j! T' |; @
BOOL CWndAutoFood: rocess()4 }0 ^& a9 u7 C* x+ i
{: {6 k) r. `8 i0 F
if( bStart ), y; ^& A1 m0 V; ~+ L) m( \
{6 K0 r% P' r$ C* A7 A8 Q
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
5 S& @# q1 M9 l {5 P1 m6 ]3 T9 ^" ]
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ); v4 H) @; H6 Q- R1 l \% C+ z$ P
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );( T8 P; `6 k" i
}else{
/ {) i3 H# P2 z4 s' u n. f bStart = FALSE;* d$ D' ] @7 s, y- y/ Y
m_pItemElem = NULL;
5 Q/ u& W# V+ Q$ F0 f: j }
% E8 J, C0 y6 \; Y }/ Y' A. x. ]# R# Q" }( b8 z
return TRUE;0 q! N$ g L' e0 Z2 w( W9 B
}
7 u! q* ^; l5 Y4 S6 j& M& w# V
8 n6 u, c, z% f' f& E* m登录视频废话:
% f; D m6 n% U! g n- H; }1 L尾翼:
& [$ d, M+ @% f- n; k$ e: w
; B2 B3 [' X e) ]7 e" ?代码:
& C) X& p1 a: Y, ~1 k' y: [
! D. }" r2 l5 j7 ^) G2 pvoid CWorld::SetLight( BOOL bLight )
3 U: i' k9 S* C2 S% n8 Zdurch
2 U( J+ t' _/ u$ C4 KCode: ^& O$ @ q) m6 d1 t
void CWorld::SetLight( BOOL bLight )/ Y* \7 R" f8 X8 ]0 ?1 l( ^
{& _3 J3 F4 Z* q/ v/ ?* v
//ACE("SetLight %d \n", bLight);( Z& s$ A' _" b6 t
& U$ x( M( Y$ [) i* e! |
#ifndef __WORLDSERVER 9 k" o0 s C9 E8 Q3 @. { b3 D, m( e
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
' r! o4 {3 S) g8 l9 ^1 r CLight* pLight = NULL;: ~1 X+ X. F, n) w0 J& A- A# N
/ p% E0 o2 f) A a( j: s) f6 A D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
3 s( H! Z* ?) l( k* B, F y% | M3 y
pLight = GetLight( "direction" );2 r- }- h; h0 V# t- u G' p, @
+ l" a* t$ q) W#if __VER >= 15 // __BS_CHANGING_ENVIR, z0 m& K2 B6 m% }) w
if( g_pPlayer ){
- Z" R4 v7 j9 ?$ t ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );9 W9 E+ C# i5 Y3 ]; Z+ F7 A
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 ]$ t; x2 N2 W! l; Q% j7 f
{; b0 J# X6 X j* N( o/ q
if( pLight )6 P' }1 ^& C3 r" F. R2 ^1 ?
{, o0 y' u$ ?7 e+ L' G7 w
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];/ t% x l: ]% A8 ~1 n. t) ~" v
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 ^6 t/ k) T0 b, r4 q
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
3 b# E0 e' k8 F) B4 ], X4 _, x% W6 N4 u+ f
pLight->Specular.r = 2.0f;, U8 d' C) C& C: N( Q
pLight->Specular.g = 2.0f;* \: @. a' _0 x: W( N
pLight->Specular.b = 2.0f;2 [3 F' h! g1 L; b' @; ~
M; N( r$ H! C pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];9 n8 x q$ B7 ~
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];$ e. ]0 W( d5 \: J6 K0 y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
2 m: _( _; M! N5 ^* q* x 0 R9 m- I2 Q% r2 c2 S! S
HookUpdateLight( pLight );
8 N( G4 |& c5 {
& R. A8 E2 e$ S) s# i6 z4 w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: ]4 I3 y$ r* c! P * k) b; t, E( [+ o8 k+ X* {2 g
pLight->Diffuse.r *= 1.2f;
: n d. G5 _7 s0 S pLight->Diffuse.g *= 1.2f;* L) i& s, `4 V& l& F, @# w7 s) s
pLight->Diffuse.b *= 1.2f;
7 O! ?& c4 d! d6 K+ r; [6 g* q$ b3 H' K% `& d& W& s
pLight->Ambient.r *= 0.8f;( T6 r8 j2 | d$ h+ C" W3 K% d
pLight->Ambient.g *= 0.8f;, { H% j. v1 n: V* s8 G, R
pLight->Ambient.b *= 0.8f;
0 [# W7 ?: S9 i- J3 }9 l 8 U9 G) w9 Y* M! V' L8 ^* ?
memcpy( &m_light, pLight, sizeof( m_light ) );' j' D0 |% Q3 t5 I$ c+ w/ r
$ `( A/ `! ]/ L D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);/ O8 i( ^( V8 x- A7 w
D3DXVec3Normalize(&(vecSun),&(vecSun));
1 M4 v& R, F: f0 b7 E pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ I% M# j; \3 `4 n9 q pLight->Appear( m_pd3dDevice, TRUE );
6 }5 l" O3 g* v" P7 ~1 d3 J . q" I; K! D, u( }
DWORD dwR, dwG, dwB;
9 Z3 G' |. e+ j3 H/ F( _# e) M dwR = (DWORD)( pLight->Ambient.r * 255 );
2 x, q$ j) D0 Y2 y dwG = (DWORD)( pLight->Ambient.g * 255 );
* P& ~/ C2 v: n( j; C dwB = (DWORD)( pLight->Ambient.b * 255 );+ S5 s9 x! T2 {- u- i
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ X% J" A E, V6 z! [) x3 ~( G }
! N4 _# Z: {7 Z7 H- q* d }
- h, ^" k6 P; ~* ]( e( u% I2 `, y }
; J. b& s! Q& a' u0 N: m. w5 U else2 ]$ @% Q- {, O% _$ w0 d
#endif
6 c0 a$ v8 y7 k% i7 N' t6 ~3 R8 P: m" A9 U- `0 I" Q( N+ R/ L
if( m_bIsIndoor )
; N& k0 O( j9 @9 w: T {
1 d6 m! j3 g% o. e. S8 h3 K if( pLight ) ?# V7 o4 `' c6 E
{
2 f7 c8 \* M- A" H7 ]* v0 v& ` J // à??μ oˉè*
1 d5 p8 Y- W. d; S# o. I pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;+ }, q- [3 M( L5 u" F& L% f
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;) S$ Q. Y( ], J; `1 j' T
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
7 _; S* e6 d; w1 a( @# e f$ Y
' l9 ]5 W- O* K- P // oˉè* ??à?
7 r9 J( Z( u, r6 h pLight->Specular.r = 1.0f;9 i0 J4 U7 H. L6 a0 ^
pLight->Specular.g = 1.0f;
' [8 t; I" I0 n9 Z$ ^/ E+ @1 z pLight->Specular.b = 1.0f;( P8 Q( R% [% m0 t7 ~
// àü?? oˉè* 6 k: T/ W. H* O5 Y+ W& j: W
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
9 l3 G2 {+ L( _ pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
/ z0 A: l: u0 T# [; C pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;+ y# C6 q6 u: j0 F$ ] i; F+ U
2 K5 j- R# S# _8 ~3 z. I A if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ _2 l o2 X1 {2 W/ r u, g
{
; F5 |0 A* N8 D4 X6 N: N pLight->Diffuse.r *= 0.6f;5 h9 ]2 C( g" I) z. c
pLight->Diffuse.g *= 0.6f;6 ]2 Y5 C4 ^1 G1 t% h
pLight->Diffuse.b *= 0.6f;2 V6 }; U2 b; N. N
pLight->Ambient.r *= 0.7f;
1 }' v( J$ _7 c5 ?4 w* x pLight->Ambient.g *= 0.7f;
+ \; L5 {. e" ?* X/ s Q! B+ H" e pLight->Ambient.b *= 0.7f;$ f" e0 f$ |2 F `; L1 s' t2 z
}
! V) O V% z N% b1 B% Q* K2 ~. }5 ~0 f* d
#if __VER >= 15 // __BS_CHANGING_ENVIR% V, X, s, @4 Y1 b2 G
if( g_pPlayer )
. i+ ] z) Z, c& w' L HookUpdateLight( pLight );) O* p7 K4 m# ]
#endif
/ v/ G8 q( ]3 g3 y& U memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% @! l% e1 D; g, ]6 |# D( M, M. [8 ]6 W- f4 |
pLight->Diffuse.r += 0.1f;6 H' z% k9 ]- V/ W; A/ M+ y4 o5 D4 m5 F
pLight->Diffuse.g += 0.1f;
9 r5 g. P" U2 b; C4 C pLight->Diffuse.b += 0.1f;% c# m( e1 i! Q: {6 e/ u: \6 N4 ]; F2 p
// oˉè* ??à? P4 Z1 B- o2 w' {& G0 |
pLight->Specular.r = 2.0f;
6 E7 |9 P$ c2 [ h6 u pLight->Specular.g = 2.0f;
6 C5 t1 n- Z$ s0 y4 F pLight->Specular.b = 2.0f;8 t1 ~8 }1 R6 E- X/ O$ `
// á?oˉ ( }$ Q) I6 t5 ?8 [
pLight->Ambient.r *= 0.9f;
% U7 F/ Q+ i8 g0 u# ~+ D, } pLight->Ambient.g *= 0.9f;
, t! m& O! G. q4 A pLight->Ambient.b *= 0.9f;
3 O& G0 J, i1 y, B% {* |8 `. L8 K. ]! h+ o" b
memcpy( &m_light, pLight, sizeof( m_light ) );
: U, u) t0 K. F3 o4 E1 e- B0 I ( |1 i# @" M" a8 q8 ~, ]" b
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );# b# j& `3 Y, i" |9 Q- n5 G- `
pLight->Appear( m_pd3dDevice, TRUE );
6 z7 C5 i: w. E7 a * W2 r9 f0 m6 k
DWORD dwR, dwG, dwB;
$ J+ \9 o7 s. C7 J7 K& r# @3 ] dwR = (DWORD)( pLight->Ambient.r * 255 );2 Q1 _2 i* D) N1 L n' @
dwG = (DWORD)( pLight->Ambient.g * 255 );
- K3 A7 q( X/ P r1 m7 m0 N) D dwB = (DWORD)( pLight->Ambient.b * 255 );2 K0 ^) z; p q9 e
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 S6 J0 l( w C# n
}
9 U6 u/ o' o% F9 J }
) V+ |2 i) S6 f0 F- B else, a. t6 @: `6 b: k2 s
{' u; W2 W- ~, M, l
if( pLight )- c& d7 S: f3 X1 T# ~% K9 Z
{0 d- R6 T" Y& [2 l) B
2 a+ u; L; n' z& M& z+ } int nHour = 8, nMin = 0;) m0 X, o4 s$ I) D
#ifdef __CLIENT
% K! B" n {0 x; J `$ b6 X! u // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ; D% L$ F/ P9 d9 k1 |" Y, h% A
nHour = g_GameTimer.m_nHour;
( x! _% s0 B% N9 |% a6 k nMin = g_GameTimer.m_nMin ;/ V5 Q5 a- p* }$ J* O, G' d, z
#else
7 v l: k" _( Q0 h" h# {/ i( ^ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.* z" a- G' [' E! ?1 y- ~
if( m_nLightType == 1 )
. q3 F6 O) a- q7 I5 P9 s nHour = m_nLightHour;% v) q3 ~( U% O. K
#endif
6 C+ `/ ]$ n: o$ D nHour--;- R! a/ m/ n. P' E) u* f
if( nHour < 0 ) nHour = 0;
7 D7 z+ Q( k. T! I! F* } if( nHour > 23 ) nHour = 23;
+ y. M% Z9 ?. ]1 ~( s
, j+ G, Q$ ^9 \8 a //if( m_bFixedHour )5 Y7 |' W1 e, T# P& e& p
// nHour = m_nFixedHour, nMin = 0;% X! L5 K% w2 |6 T$ P
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];% U x5 E( q) W: h$ W* B
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
! o3 W/ |0 c* s9 G/ u
0 A9 Z% w7 c; Z9 t1 V3 h* K //m_lightColor = lightColorPrv;
. O, _- W8 q, |- c1 Q lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" n) B! p/ H8 F( G/ g) d
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
( t6 T2 T5 v3 S9 w lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
' b2 P7 c4 s' M8 K lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;5 C0 ^4 H& e9 b, p2 E$ Q$ r" ]
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;. Q" O+ s U# H3 `6 |
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
. K; D0 A6 \4 h3 Y1 T+ ^: t // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
T3 b( T# b) v. l4 }
) D, f8 X$ f: n+ g3 F+ \* ]9 U! c. c // à??μ oˉè*
: P& P) N) \# y5 L pLight->Diffuse.r = lightColorPrv.r1;
8 l e: V1 k$ l& v pLight->Diffuse.g = lightColorPrv.g1;9 L& J- Z# ]% b3 B4 Z: C( [6 a
pLight->Diffuse.b = lightColorPrv.b1;
7 K6 T, r5 X% L% b3 |6 P // oˉè* ??à?
+ j8 y& Y& H* j9 g: R0 C pLight->Specular.r = 1.0f;
! E, S% @) A( _) Y. N pLight->Specular.g = 1.0f;
) F/ m2 B) b& R$ p1 O. l! U2 ~ pLight->Specular.b = 1.0f;, O0 q, N/ O3 v& Z B
// àü?? oˉè*
8 C) ~9 z8 q" G& \7 a pLight->Ambient.r = lightColorPrv.r2;; N1 L. h# X6 }2 }% Y% W
pLight->Ambient.g = lightColorPrv.g2;$ D. y3 ^3 r# a( t2 a1 }
pLight->Ambient.b = lightColorPrv.b2;! j( H( G% X6 K" ~
5 Q; N+ j- @ f5 o' t if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 ~/ q/ a: T" {1 J
{
. D0 J F8 ]# M$ u& }! X9 N pLight->Diffuse.r *= 0.6f;
9 F# i& B/ L* H; F8 J8 x/ O: p pLight->Diffuse.g *= 0.6f;" S# r: ^3 R- x% @4 I
pLight->Diffuse.b *= 0.6f;6 _7 _, R P# ?4 R/ `+ p
pLight->Ambient.r *= 0.7f;7 o: T9 D% z2 T
pLight->Ambient.g *= 0.7f;
# B7 R8 |: E/ j& w5 z/ m+ H pLight->Ambient.b *= 0.7f;# K% c: K2 r1 t9 g* V- r
}
m# j* t. {2 a $ Y0 F, E) b6 z# J! W }) ^7 A
#if __VER >= 15 // __BS_CHANGING_ENVIR
" I l$ Q" l6 ~6 g if( g_pPlayer )
* n1 W8 n+ m3 X% ?5 d# k" R HookUpdateLight( pLight ); $ Z" @4 k; W2 O- m; z
#endif- I! G0 y/ d9 _
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; M$ I' h8 s7 Z+ _
8 |4 M5 I7 ~+ X9 }% t
#ifdef __YENV
) |/ _6 f( Q8 F6 N$ t# r pLight->Diffuse.r *= 1.1f;" r9 {* z5 O5 ~5 N" U
pLight->Diffuse.g *= 1.1f;
0 `/ ?+ j$ Y. a; Q pLight->Diffuse.b *= 1.1f;
j8 X8 a, Z% d3 G% i7 U o5 T // oˉè* ??à? . @" [: z; T% }7 _+ U7 m$ v
pLight->Specular.r = 2.0f;9 U, s4 q0 E2 I+ d3 U
pLight->Specular.g = 2.0f;& f8 l& N0 y- Z6 p
pLight->Specular.b = 2.0f;
% v8 ^) D5 W/ M0 C- { // á?oˉ 2 \$ G3 C4 H- d' R" g+ Q* {
pLight->Ambient.r *= 1.0f;
: x5 B' H' z1 G( I, Z7 ? pLight->Ambient.g *= 1.0f;, L, o9 Q0 Q; d
pLight->Ambient.b *= 1.0f;$ a5 d0 V j- F/ C
#else //__YENV2 W- T2 |" q h# J, F+ F
pLight->Diffuse.r *= 1.1f;
% T- B6 O6 w$ T# W5 n0 w pLight->Diffuse.g *= 1.1f;& J0 h4 C9 z( O Y$ h1 C4 R& |
pLight->Diffuse.b *= 1.1f;6 U' L% f$ u' q' b, _
// oˉè* ??à? * ]# ~( L3 E& Y8 v Q) r' u- k
pLight->Specular.r = 2.0f;4 T, ]# {% M& r1 t
pLight->Specular.g = 2.0f;
6 \' s4 H" K& h) C9 K pLight->Specular.b = 2.0f;
6 M o m8 X! P# N6 @; L' f // á?oˉ 2 ? e f( a) l' D; m; L
pLight->Ambient.r *= 0.9f;
" Q& l% E% c+ b" I pLight->Ambient.g *= 0.9f;
. Z* V6 o6 T `% @ pLight->Ambient.b *= 0.9f;
6 j$ _0 O& r, U, g; |! O( m#endif //__YENV
T* T, R5 N+ ] & b; X/ _0 A+ q5 c6 u
memcpy( &m_light, pLight, sizeof( m_light ) );; O. E1 f5 d; J5 d
- M3 O1 w: e" d; S/ Y" f D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
& v$ h+ `, _5 B& }4 I D3DXMATRIX matTemp;
1 U$ H' \ `* C) Y6 b3 E static const float CONS_VAL = 3.1415926f / 180.f;' A1 ~: x8 Z% C0 B6 b3 w$ d
+ Y) a9 a' ^$ u8 Q! L4 x# P D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! y O3 Q6 W Z. E7 M. Q0 k: g D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
! \1 h8 f* ^4 Q. R) \+ s5 }. k: j pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 s. \/ \" C" j6 m, O pLight->Appear( m_pd3dDevice, TRUE );
; ^1 m3 y' A/ g. n3 _8 @# |4 V M0 u) E7 j
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# W3 J; o; j0 @1 d* e // D3DXVec3Normalize(&(vecSun),&(vecSun));2 y8 t) |2 ^' p, r- ?1 m" A: W6 J
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); . k$ \! p& \, q; @$ x
5 T$ y( M( i& t( [! ^2 T$ K DWORD dwR, dwG, dwB;' n! h. O% G% @& M0 I
dwR = (DWORD)( pLight->Ambient.r * 255 );; s, _0 t/ ^0 x( ?7 c
dwG = (DWORD)( pLight->Ambient.g * 255 );
( f/ r Y- n0 I' }, d) Q dwB = (DWORD)( pLight->Ambient.b * 255 );
2 l+ Z( I$ V6 u3 C2 I dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); / H6 \8 u8 z1 |
}
/ g3 {2 r5 R/ q' G c4 f' E; m }1 A4 G i' Z1 `2 N, ~2 w% \" t
+ J+ d" |; a6 r- M: B# @
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );0 U! z5 A0 I4 ~; g$ s
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% K! N6 O9 d9 Q, n2 E1 q0 E+ o$ t ::SetLight( bLight );: ` m& m, s, E6 ]% ^
5 ^2 i, P p) k
// ±ao? ?D?í???ó á¤à?
* Z+ F s& i5 Z3 O; \9 u. ], [ m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 F- d4 o" n6 l4 F n, Q " [1 z: R, ]8 H7 \& {! c
#endif // not WORLDSERVER
7 ?' G5 r2 }+ r3 Q}
9 u0 t7 U4 A* C) k8 S$ H# k并更换
1 I8 m1 C0 f2 c$ W2 xCode:
. i6 O' U8 z S' x- {__FLYFF_INITPAGE_EXT
" l, y0 z7 f' A定义! c0 f6 x$ s2 t/ o5 { ^6 R# ~
$ l1 ~9 E' _; m, h c" r0 k
/ h8 E& j' R5 G+ p+ }8 S: o5 G8 Q6 q, x) a
! R3 C' T/ Z6 L, X' M现在终于删除我的狗屁加速.... B+ o$ u: n; k% ?; v$ Q; q
. D0 E6 m" g: ?1 K* v
& F+ J) T/ l' u: d7 B! o
( W1 U0 Z# {( F `6 `1 A |
|