|
|
食品车:: O {- `+ n& ^0 f9 [9 }: x( z! f
尾翼:
1 o% {$ a" y6 c% j
( n# l4 }7 g7 w" M4 B$ U# P0 ~5 V代码:; A, X& E; T+ Q% g
CWndAutoFood::CWndAutoFood(): I) @2 Z2 v5 g | k5 @( U3 E
{; n) }! m! B' u2 W4 y
m_pItemElem = NULL;- y) u5 Q" m, f* v: K0 _: s7 g$ r
m_pTexture = NULL;6 k' V* _: y$ v, r, t
bStart = FALSE;& t0 |. ^8 {4 G9 |
}, O( g9 g, ?; o- m7 p0 q
. r8 z# u% L% H G1 S; ^$ U- ?" E
CWndAutoFood::~CWndAutoFood()1 ?: K* w) l6 ]( Y( R
{; ]; E! o" [1 |$ [
AfxMessageBox( "AutoFood ist gestorben " );6 i2 L4 A& t, Y. ~7 a5 O# E0 Z
}
- H* T8 ~( o; \' xBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
9 J$ j i! _* w/ Q. x4 [% `1 f{
1 E; @$ q i M. M' v9 I0 } return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );- \& ^$ s( \/ U4 Z+ d, X
}
! c0 S9 V& r G% I: p( g& U. _. s4 x
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ); b9 I7 ]9 L- k( K: ~8 r
{
" g, e5 s" a5 O; W$ v$ v LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% n1 I& [ T# u1 p6 R* l" Y CRect rect = pWndCtrl->rect;; B8 Z2 k: F8 }- y, ?
if( rect && rect.PtInRect( point ) )# |( r' V1 T; U1 c; k- f% T
{
* c0 U1 H8 L/ u) S) M) M0 T CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
* `! `: o. R: L" Z/ G# V) b( h6 e if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
: b, R, m- T& X) y {6 ~; Q* [: N. d. e, f
if( m_pItemElem )
. p& A9 U6 e6 ]/ M {) a# j7 ~7 l( k7 q0 D0 B( @
m_pItemElem = NULL;! O6 k: T: @% l; B
}( F' _, c' p2 k+ l0 D# H( Q. S
m_pItemElem = pItemElem;
4 b, V0 P+ r) g) r m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );3 a$ h- C2 R, A. S/ P7 T
}else{
3 X! F4 K$ U" ~& Q SetForbid( TRUE );
/ M" s8 T# J+ }2 M- V8 x+ E }5 U9 \5 s& R. l) q, u; R8 [4 m! q/ }; x
}else{
9 t: e( ]3 {/ z: {% }( | SetForbid( TRUE );
% D* Q3 c* V L$ R* M, a, o }
2 _; B. O, k: B return TRUE;
- i2 y- M6 n% F' y) v8 h}
2 F3 s: W: _6 Q3 \' w7 G g" B+ C8 P& Q
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
9 P) }' T5 b- e2 Q0 P! v ~{
E! q5 F Q9 K3 e0 }' M/ {8 j switch( nID )6 u9 E# h y2 C! B# ]/ ~2 A% J
{
0 Z1 f) B. i+ a7 G' k( ?( b7 m J case WIDC_BUTTON3:
0 p6 u% f" J0 h {
6 |" \: w9 H& m- r. ?& C9 O' ]0 _ bStart = TRUE;/ q$ u# Q3 l4 N6 A: ?7 Y- N! e
break;
6 @- a. A4 |$ ^ }
) @ [; ~7 O% i, n( T5 Q& a* E case WIDC_BUTTON4:
; [3 z. B) Q0 d {; u- F- X4 L7 H. O. T
bStart = FALSE;
. }1 ? j9 Y5 ]/ Q# L9 N4 ? break;# o/ U( B' s; Q
}
: H/ W, [3 }. O# L2 F }8 `% L7 u8 Z& `/ a
return CWndNeuz::OnChildNotify( message, nID, pLResult );
+ H5 ^8 R) e2 {2 h2 |}
2 F7 q$ j6 o9 Q5 [+ Q1 r" Tvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )" e+ e/ P6 z+ [
{
' _! ?- d! p* x. t; ~( R$ ~. O CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
: ?% I% `) M! S if( bStart || !m_pItemElem )
1 Y# M$ L; N, `9 { {
9 k5 m( i2 j. [$ L3 m5 A" [ pBtn->EnableWindow( FALSE );
0 k( s# J1 G, j/ H }else
( f) G" X9 a3 i ]0 D pBtn->EnableWindow( TRUE );& u0 b3 o; F4 {- i
if( m_pTexture )
* Q$ A2 ?% w2 F) x4 ~: k* s7 b9 Z {5 H! q) l3 `- {$ e R7 O& S9 V b
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
" m, u! }% F5 r; \/ Q2 q5 W if( wndCtrl && wndCtrl->rect )
9 n# x E; A/ Z. |3 C {, c0 _. z+ a; B3 X2 s7 E; X
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
; H8 a! f5 H8 j& |; s }9 x8 d! O# `8 Z- J7 p) l- g
}
! m# C. A) W# B8 ]}4 ^) |4 e& i7 V. G$ y
) n5 _3 Z8 Z" z5 r
BOOL CWndAutoFood: rocess()4 |/ V5 K: D7 E0 u7 B/ C, C# b
{+ d2 Q+ S, {: ^
if( bStart )3 }# o+ E9 a- z
{3 N1 A' o; U8 R& A
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; u9 q9 |' Y; N {" h, q) w! T; L0 q i. W2 n( l% k
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )! Q7 n5 Z0 ~' Y, [
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
1 ^9 }4 b7 a; I" ^ }else{
) m/ }* `# l3 n- d; A bStart = FALSE;4 P% Y( G6 \: B. d% y9 L6 j
m_pItemElem = NULL;
* R# {' i# \+ M ]0 ~" A }
3 T, T6 p3 t6 F9 J8 b2 w: I# w }
2 T, Z. d. M6 Y+ G return TRUE; O& _+ U) K% |' G( I
}
; l# R4 u+ ?) _0 P( t- w1 M6 Z- p
% Y+ r& [7 `. g& C* Z) t& M3 S登录视频废话: |# m. T, A1 P9 {
尾翼:
3 W' d* Y ^* P: j" v, |" x2 r8 _3 D% c$ [! t, N( b4 j
代码:
, S. n* ~0 r/ R4 ]- v% s2 [# z% J. H) O# n
void CWorld::SetLight( BOOL bLight )) C8 `5 J. b9 i7 Y; T* F7 d
durch7 l N+ w8 a' s
Code:
0 T0 a% c' K8 n4 V$ Zvoid CWorld::SetLight( BOOL bLight )( o) I5 X- R% \ ^ C
{
" L# @0 w7 @& y% C* Z7 s //ACE("SetLight %d \n", bLight);. W+ P1 f; D \3 l5 W: x
9 I3 c3 A4 n+ _# U$ B
#ifndef __WORLDSERVER 4 J8 h' n* \# C' J# T2 R. K
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
/ |, k8 X/ o& ~1 |5 R8 E CLight* pLight = NULL;
6 ~4 {. p4 I0 m- d4 s& O1 D: T1 t5 b/ |; |9 F( ~, X9 C! E$ @" C1 u
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );+ g8 _, P4 E, o! ]5 J
& D3 l. U/ s% b- }% a
pLight = GetLight( "direction" );4 J b6 {* b& f1 X6 N" _: B
) N8 H* \+ g: p3 d8 |#if __VER >= 15 // __BS_CHANGING_ENVIR9 ~; A; o' Q( `/ S/ ~
if( g_pPlayer ){
. c3 ~/ A: ^& O& t, i9 J ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );% i6 y/ ]0 @& r s8 h- Z
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
) P( P8 v* e8 B) q6 @8 E, \/ K {' z. f4 k( ~, N) ^
if( pLight )
0 n( A9 Z; L3 ` {* ?; E A1 C$ W: {) G6 U
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];8 Q# D! }4 R& s) `$ z( f
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];2 Q g% j2 [- A( U
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
) ^( d# a. _. ^6 o7 [9 ?; z
- ^& R/ d% q, i- P pLight->Specular.r = 2.0f;
]0 M t% r# a: d6 r, y) a pLight->Specular.g = 2.0f;
: C+ W3 b( S( o } pLight->Specular.b = 2.0f;
( [! D. f# q4 v8 I 6 b4 P0 E2 O$ f6 q- } O$ t
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
# o$ A8 D& X; m, n pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];/ |! @- A" {- t$ M4 e B1 X& x
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];' [6 t8 S6 Z. p G
. l* f/ U& q+ j! i7 Z HookUpdateLight( pLight );
) L* V6 e9 ?$ Y$ t- @
! k9 A+ ^0 j v) B5 Y. ?/ b$ W memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' z0 w: Q' [* p; {
! `1 Z9 F' J- y: E pLight->Diffuse.r *= 1.2f;" F! e9 C, E) t
pLight->Diffuse.g *= 1.2f;# x8 ?" f, ~8 n- Q4 U- M# F0 {' p- Y
pLight->Diffuse.b *= 1.2f;! {4 o5 M2 `5 R
6 }% s5 _' I9 e9 J2 k pLight->Ambient.r *= 0.8f;9 ^2 B5 U: C" ^
pLight->Ambient.g *= 0.8f;' {' B- }, g' o8 ^
pLight->Ambient.b *= 0.8f;1 F$ e7 ~3 @7 M6 J. L1 c
! _, t5 i0 z3 y
memcpy( &m_light, pLight, sizeof( m_light ) );
& ]7 u/ }; [: {6 B; v3 \( K# u; B. t
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ {3 F; ]& L) _+ p7 Z8 M
D3DXVec3Normalize(&(vecSun),&(vecSun));& t+ x, g4 `6 W1 _: {
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); $ X: e; X' U: f. H: n' O2 n) [+ \, P
pLight->Appear( m_pd3dDevice, TRUE );
1 \# N4 N5 |1 s8 p* N * s6 j/ }- q' |4 X& ~. f
DWORD dwR, dwG, dwB;2 @' i' q, t& R x$ R
dwR = (DWORD)( pLight->Ambient.r * 255 );
! k7 \& N/ [$ J* k5 C dwG = (DWORD)( pLight->Ambient.g * 255 );% u+ j6 T! O* L0 \. ]2 X
dwB = (DWORD)( pLight->Ambient.b * 255 );( g; T4 U$ }( ^ e. N: u- f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );, d) u+ Z- G* f; k6 W+ T- y& t
}, F4 U1 O( E1 Q+ g( q$ O, W
}
. P3 Y! Q2 M$ p! t( E }
" T7 B( {7 g2 a) M, Z else
+ A. i0 m/ C; ]3 R) U) {#endif
# D* I- V6 _ _) ]' Q( w0 \0 I! J& S: C. P+ ?* M
if( m_bIsIndoor )9 N' L/ O; H& Z A* {8 j
{9 s) x/ r; }% x( P5 b1 X
if( pLight )
& ^4 a: j# F9 ]% D9 A+ d+ z { - _7 {0 t6 c: c
// à??μ oˉè* ) h- C0 ~1 R) Q
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f; }7 M7 S- D, i s, q
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;* S+ x% l7 E( e
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;/ G8 L- {2 X. T# ^2 T& x
- v! [/ c! U! h // oˉè* ??à?
( Q6 C! D: r8 E' l( { pLight->Specular.r = 1.0f;1 V; y, _; o3 J8 t' f4 T9 b+ Q
pLight->Specular.g = 1.0f;2 ]; \$ Q7 A8 A5 }3 R1 c1 |
pLight->Specular.b = 1.0f;* e) L4 [0 [$ o2 q
// àü?? oˉè*
& q2 c9 ^7 C1 M0 o/ ?3 P& G pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
6 T2 G4 X H) Q7 c pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;4 |$ W) W& b, z2 ^4 }, x; I. m
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;) X, r9 M1 ^8 B2 y
i! L5 g2 y% \! J, I
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ t. ]0 y# t) K1 ~, E$ z3 d' b
{
- M) D/ k( c3 E+ {( w& s- } pLight->Diffuse.r *= 0.6f;
5 J$ v( s9 v' F' M1 w3 p; a pLight->Diffuse.g *= 0.6f;! M' @$ ]7 X# U) v
pLight->Diffuse.b *= 0.6f; I L' [: O# ?6 R4 S
pLight->Ambient.r *= 0.7f;; Q* `) m, C- u$ P7 p8 _" u: b
pLight->Ambient.g *= 0.7f;2 Q+ y1 {% x5 \
pLight->Ambient.b *= 0.7f;
* R# y" ^$ |3 h( f }
# q. J0 W- m9 O+ O0 _) D L7 X% _% l# E; a
#if __VER >= 15 // __BS_CHANGING_ENVIR% m I3 Y( x. j6 P4 Z
if( g_pPlayer )
0 r5 |% d: [8 V7 x' e HookUpdateLight( pLight );
( J' U! \, D+ j* v( e#endif0 L- v/ F/ f( a$ F c
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );3 M4 i; W, }+ h0 `2 K
( I" h' n5 H, E4 U [0 C# W$ N5 c pLight->Diffuse.r += 0.1f;
+ E' H- B/ R. y- H8 n o pLight->Diffuse.g += 0.1f;. _4 y+ a: ~- K; X' Y6 t
pLight->Diffuse.b += 0.1f;- d' y! `* r+ E$ Q6 K7 S
// oˉè* ??à?
7 W1 V# g+ Y2 H( Z. d pLight->Specular.r = 2.0f;
' q" P2 j! Q v) y pLight->Specular.g = 2.0f;: U6 _$ D2 q: @# c+ A
pLight->Specular.b = 2.0f; t L- y: Z- ?( `
// á?oˉ
# E! v* u) Q* |3 \) B+ U/ y pLight->Ambient.r *= 0.9f;
+ p9 P, D8 T7 c/ }1 s7 S pLight->Ambient.g *= 0.9f;$ l+ G: U ~2 O1 a+ L
pLight->Ambient.b *= 0.9f;& \' R2 ~8 y! e) S
5 o4 q& H0 u( b: P memcpy( &m_light, pLight, sizeof( m_light ) );
: C: C/ ]; i9 M# O2 g
- @- ^$ G& a; Y7 ]/ f8 p pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 o/ d& @& \/ T% B. h
pLight->Appear( m_pd3dDevice, TRUE );
% e( m6 z% V7 ]& f; O5 c9 l
; m1 c$ g" B( z' b5 d# U$ t DWORD dwR, dwG, dwB;
' x- H; p* Q$ w% e4 |1 _1 s g dwR = (DWORD)( pLight->Ambient.r * 255 );
4 B& e' j* `6 g; g# j( k9 k dwG = (DWORD)( pLight->Ambient.g * 255 );. N8 _! J" U8 g
dwB = (DWORD)( pLight->Ambient.b * 255 );5 H. {& `+ J5 T+ z8 |; e2 q/ G t5 F
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );. Z& Q9 d8 r& K' T4 J; ^5 f* u4 t9 c
}$ ~3 f' h( t0 I
}- `' j, G* F" o9 M% M
else2 E, N$ x* t2 }' R& [4 E; O. m# t
{
; c' a& h0 @; e1 S if( pLight )3 s; l- p( R, k" Y1 E# i( J" s% t
{ R; z' m$ A- Y' S0 |
' Q0 h- U4 [: H3 X* `
int nHour = 8, nMin = 0;: q% M( O' @8 w& V
#ifdef __CLIENT5 C/ z& x3 ^% x; l# V
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. - j0 y, K$ ~6 ?8 s. u% l- h
nHour = g_GameTimer.m_nHour;- n# n5 } x$ g& Z9 `$ J; a4 b+ l
nMin = g_GameTimer.m_nMin ;1 \+ Z0 W9 b. _9 ]0 j4 M2 i
#else) v# z$ Y/ N1 l5 _* g
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.8 ^ E) C: Y& z1 H( `: ]) X
if( m_nLightType == 1 )
0 h+ j" `4 [0 z nHour = m_nLightHour;
1 F9 c4 I: E' W# D #endif, _: v# n3 o2 Z
nHour--;
7 K1 U2 ^$ [3 N- \9 H. Y if( nHour < 0 ) nHour = 0;
+ X3 f6 e/ n5 c5 W; ?5 N8 N if( nHour > 23 ) nHour = 23;
8 Z+ c s$ I( g. |/ o
% y* a* p. }' [6 L% N9 y* C: d //if( m_bFixedHour )
. P3 s! E* a7 O$ H // nHour = m_nFixedHour, nMin = 0;
" x! ?7 b9 v8 K5 j, ~5 l2 b% i. J LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];1 o* f) c3 j* R; \' n. r7 ~0 m
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
# N1 H4 v3 t4 e# Y4 b7 P# L2 S' {' C- [$ r! n, [" I# x; T( K
//m_lightColor = lightColorPrv;
1 b1 q: ?8 v1 K0 T* U0 _: \ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;* b) _ L% G& H6 ]/ X4 U! C3 Q
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% z) V/ J3 U! V+ R4 ^ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60; T% E# Z* x/ \5 |6 N4 \0 R; C |3 }5 v
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
( U: l4 U8 c2 k8 j7 a lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
" G b( c4 r0 n' { lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
: }7 |" M6 ?' Q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
' ^! g( [8 v' K1 q: R" p2 w% ~0 E* N' A( U- G4 u
// à??μ oˉè* 4 F! e4 Z: b6 L! X0 e3 C1 U% B' O* O* Q
pLight->Diffuse.r = lightColorPrv.r1;
[5 o, m2 h& Q pLight->Diffuse.g = lightColorPrv.g1;' X) G( N# u3 M- O" K. n
pLight->Diffuse.b = lightColorPrv.b1;
& s( K# u/ j7 C( i6 Z // oˉè* ??à?
5 v8 u- O2 a3 m! J6 J# {" z; P pLight->Specular.r = 1.0f;
# y& S' A% E/ j6 J" }2 v6 ^2 J9 b pLight->Specular.g = 1.0f;
& F; o% |" a+ _2 V( U2 F pLight->Specular.b = 1.0f;; b d3 W# r4 x1 \& \- R
// àü?? oˉè* ) O; a( {5 f; z& `
pLight->Ambient.r = lightColorPrv.r2;
6 {" c& V& f$ j/ \* X( x+ j) T pLight->Ambient.g = lightColorPrv.g2;0 Y6 D5 ^+ x) W; _ N
pLight->Ambient.b = lightColorPrv.b2;
; t: c6 _7 g- c0 ~! q n! p* Z% x) J: ~8 L% v9 p
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.2 B7 ~& b/ E) Q4 a$ p
{& w6 y8 x2 p! t2 n# c$ c4 H
pLight->Diffuse.r *= 0.6f;5 b( F3 T! H0 ?, P, c* [! ^
pLight->Diffuse.g *= 0.6f;. b4 A# K# K' r* N& p
pLight->Diffuse.b *= 0.6f;
) W; E5 t2 t2 ^6 T- q& j: H3 d5 P( D pLight->Ambient.r *= 0.7f;
* k2 `% [$ d! G! d' E pLight->Ambient.g *= 0.7f;- p3 I! r7 D; a4 X1 d" U4 M' Y
pLight->Ambient.b *= 0.7f;/ \( ^9 \" n1 f- I
}
+ s% `: ` t( A! t
- @: W- R0 j" G8 O7 j#if __VER >= 15 // __BS_CHANGING_ENVIR2 D# \+ ]/ Z' S/ P+ q+ S
if( g_pPlayer )* F4 p% p/ ]+ u1 l# \
HookUpdateLight( pLight ); ; @ a1 [& z( \" Q7 o) S5 m6 n
#endif
0 b2 I; f9 c2 S, R; }4 Q) [3 D memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 M, w$ r; ~) U$ J, g& V9 U+ s H$ X5 y' B o* E" T
#ifdef __YENV
3 p, c6 X& }. D# L( d f pLight->Diffuse.r *= 1.1f;3 f3 F2 g2 t- z. Z7 k. n
pLight->Diffuse.g *= 1.1f;
" p! l5 D4 g- @, x0 U; _ V pLight->Diffuse.b *= 1.1f;
8 _9 m3 e% I9 ?" H // oˉè* ??à?
* R) u2 q/ d* ]7 n4 P+ q4 D pLight->Specular.r = 2.0f;7 r' h9 A Z4 \6 t
pLight->Specular.g = 2.0f;
# |0 S. y: D( A! p pLight->Specular.b = 2.0f;1 z2 F/ A2 l2 t v2 g4 q
// á?oˉ
/ C" \% c7 ~# P8 p! e) s pLight->Ambient.r *= 1.0f;' f" d& q5 G- N5 b5 T( z
pLight->Ambient.g *= 1.0f;
. s5 @ x5 Y: K" z" m4 k pLight->Ambient.b *= 1.0f;2 S- d5 e- V* b1 v: g
#else //__YENV
" I$ I& N* `( c6 h2 `6 a- A pLight->Diffuse.r *= 1.1f;* ^$ S8 U$ ~% a/ B+ k, q
pLight->Diffuse.g *= 1.1f;
5 z3 }0 g9 s! | O4 { pLight->Diffuse.b *= 1.1f;; q9 W t; m- T w2 W% ]' `5 [3 N
// oˉè* ??à? 2 ]9 q3 q3 u% W* [' D$ S
pLight->Specular.r = 2.0f;
) I/ A3 [1 h% @+ _ pLight->Specular.g = 2.0f; i& M& Y$ p. Q' b
pLight->Specular.b = 2.0f;, T! O% X; A& z2 Y$ `/ F0 N! \
// á?oˉ
; g" N9 I6 J" } pLight->Ambient.r *= 0.9f;
3 d8 Z% u* o$ O; V- |, h8 c* F pLight->Ambient.g *= 0.9f;
7 b; l) Y% a* s pLight->Ambient.b *= 0.9f;
# `- |- A+ s) X% F, G+ a#endif //__YENV 4 V% S# f# Q# u; N" ?8 ^) V. a( ^( ~
7 ~; i) y3 P0 R" u0 g( h* _
memcpy( &m_light, pLight, sizeof( m_light ) );
+ \! N3 a3 w8 A1 P) N. ]
. m9 @! L1 {1 s$ q- G D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
/ J3 k! b% B5 v9 i+ c. K. c7 {5 n D3DXMATRIX matTemp;! Z" Y# m$ N R- m
static const float CONS_VAL = 3.1415926f / 180.f;' @5 Z5 t& g+ j; f7 `" s% h
2 K( f% M7 _$ O7 c' w
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);0 A( H) O! T! C1 X% ?: T
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);- }# X" M- j# h
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); & L. N9 u( {2 y+ r/ ?( e/ G* J8 I1 b9 Q
pLight->Appear( m_pd3dDevice, TRUE );
" Z% \5 [ N2 U; |* }' D0 R3 F g8 B1 K5 \2 [: |: S, I8 |6 n
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& o" B+ R4 L$ x2 w- ^ // D3DXVec3Normalize(&(vecSun),&(vecSun));, l' J9 Y3 r' T# \: l; B
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 O6 ]( u. F6 W
# j3 B9 w0 N- L y DWORD dwR, dwG, dwB;7 l4 b/ a& u( J/ O, ^$ F
dwR = (DWORD)( pLight->Ambient.r * 255 );
5 s) j+ S M" z8 f, y dwG = (DWORD)( pLight->Ambient.g * 255 );
8 u) o# |4 Q% k7 o( X9 q dwB = (DWORD)( pLight->Ambient.b * 255 );4 j" E0 }. x2 ]; g- s0 U
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); # _& ?7 a) F0 H! ~
}
& {9 V- y! f. F+ w1 s# } }( L8 c3 ]' Z/ E. i/ U' l
$ `1 }/ K& B% E. G1 G: ]' A
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );9 a+ g) b5 \8 i
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 B7 I/ W* y6 J1 v5 F5 e
::SetLight( bLight );3 Q% n' F Y5 @2 |8 A6 i+ s
/ ?% l. k/ U* B! i; w // ±ao? ?D?í???ó á¤à? % N% O4 E% F0 f" P6 m4 |, ^
m_pd3dDevice->SetMaterial( &m_baseMaterial );
. v' o4 a- n r2 p
" j/ |% r6 f) }+ D5 U#endif // not WORLDSERVER$ C* }( j% P8 m' Z5 R
}
! @0 |3 V3 ?3 K0 u" |0 r% M并更换
5 {% N/ _ W2 @9 P4 _' FCode:. Z5 o( e- h/ F
__FLYFF_INITPAGE_EXT/ W4 x* c5 |5 [8 l5 y' h7 `% T
定义
( R" Q4 {* u. o" B1 g- O' W2 l1 I, {
+ O0 r+ O+ G) k6 S# P
5 ]: Y7 ^) x0 F$ B9 F0 d6 ?; O6 I, o: c3 d( o
) n! \* Q) s6 d0 T; ]现在终于删除我的狗屁加速...9 h8 C( j" E4 P) B4 Y' p" I* T
, G7 W" d2 r) E1 a6 n8 m# ~* Q5 v& x- Y; n6 Y ]
" z; @6 n: `* w, q |
|