|
|
食品车:( m3 ~! |1 q9 M# m# J
尾翼:
; h9 o! q% \3 H: y/ {5 p' H* V9 ~1 |" t9 ^% t2 _2 z
代码:. Q j8 c/ L6 l
CWndAutoFood::CWndAutoFood()
- |5 u) ^ A( r+ ~5 |{4 B9 x1 c( K& c. X* V
m_pItemElem = NULL;7 |, }% V; u8 W% N
m_pTexture = NULL; @1 f* E8 q }. h0 L9 u
bStart = FALSE;
4 N$ e4 P: _) t# _+ O. r6 X& H}
+ c" ~1 Z1 C$ Y+ B* M$ w% e! q+ J
' Q5 ? p# ?0 H. bCWndAutoFood::~CWndAutoFood()! _) W$ U: m# r. Y
{
) J& Z6 ~" U/ X AfxMessageBox( "AutoFood ist gestorben " );/ o. p# G' `: ^* T5 H
}
8 k% X$ g2 g9 |1 _( sBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
3 e% n1 x% Y i3 _3 m2 Q{
1 i% |# m3 f/ R7 U! I; E8 B+ Q return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); K; W9 h2 u4 p! z$ I
}, e* L" h$ J( O- T% ]
/ w5 b2 L7 @2 N. Y* y4 Z f2 vBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )9 j4 y& u* n$ Q2 v* Z
{9 H x8 q3 }' N/ ^# i
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 z0 W9 z* h- h2 Z0 D CRect rect = pWndCtrl->rect;
" j( \8 _. E/ ?4 E# N& x3 R if( rect && rect.PtInRect( point ) )
8 s- r( P& V' F- }# n4 _% `( T, w {
) v4 F8 ]6 i; J CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
8 h1 H: J' B* A) a0 U: G; |' t if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
9 {/ T7 @" V& @" P+ T {& ]. o" }) D) W- n* J& F( ]
if( m_pItemElem )& o( U; M8 A4 l. l- d: w, e
{
1 ]2 H( _. r) l$ j( M6 } m_pItemElem = NULL;; \4 `5 y6 x' @9 G( V2 f
}
* H8 b. _( @ Y# C- Q. }" t m_pItemElem = pItemElem;
1 q9 k: L9 S" I% m, U# _( I6 ` m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 c; k$ U* @5 I4 e" X
}else{
- K" N) m. f% O, e, V0 b% Y/ B- M5 q SetForbid( TRUE );' H9 m3 q" A% X9 Q5 p( t; ^- [, s
}
/ H: g& [4 O( c }else{
% I1 N% F! d* Q3 n0 \, o- m SetForbid( TRUE );
7 j1 ~. W P" ?+ `# M H }
( q2 u4 x# @0 S' H return TRUE;
2 l: Q; D" E1 m' ]0 V: I}
% v4 B' t6 E0 I; }& g! L7 j9 x
5 J4 z; ?% w- c) \+ B# BBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )( X1 z) ~4 `2 K, E, }
{
8 g/ Y* V' ^! Z1 `) U switch( nID )0 Q+ ~& @7 |" S1 ~ j
{
7 V( {2 T9 C) [ case WIDC_BUTTON3:
/ a9 l2 C! h1 h; e* s {8 D- f5 k5 B5 T( x1 @
bStart = TRUE;
5 w0 |* Q4 F, C6 A break;
6 A: G: |( @0 ~9 o }* t+ n. i' M, {
case WIDC_BUTTON4:
# N6 c" K8 B5 N* v' D {
( |5 s$ g0 t4 R" X, | bStart = FALSE;5 w/ K }$ m0 T3 j+ j: S
break;
2 Y' ~# |! D0 Z/ a6 v4 Q }
5 m) ?3 k0 M: R" } }
4 o5 y# B7 m/ p' H; ~' F- T. `$ ] return CWndNeuz::OnChildNotify( message, nID, pLResult );" J6 `9 U% l# T7 x# I* {, ^
} 0 Z/ ]# I/ [1 m" h+ E
void CWndAutoFood::OnDraw( C2DRender* p2DRender )5 |; j6 {) @% @7 t, a
{5 [4 G' `0 M, c2 T' I
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );( _1 e3 \( E% v- ~2 M* l3 X) C# W
if( bStart || !m_pItemElem )3 q' e! r) q: W5 T/ f t7 c
{
' f0 p9 G7 M/ i, q/ ` pBtn->EnableWindow( FALSE );
/ }9 u2 p$ j& v }else' ^, O X" f5 M" Y+ V# ?- X
pBtn->EnableWindow( TRUE );
! e* f2 B+ a6 w5 J6 c$ ? if( m_pTexture )
1 j) v/ M4 @$ z6 L% x& S {* O# L- o; \% p; `; n
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );, ^/ v O8 @) S* m5 m
if( wndCtrl && wndCtrl->rect )2 B- s3 Q% _9 S! V* {
{
8 _3 l1 d8 c2 V. ~! s# I: c' a m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );! n6 y* U# E, U9 [
}
: V# ^" o& O: m0 }% n1 M. p( ~ }
- l% O" L0 s8 i4 s- C# z}
* K9 w& F% _5 B9 @, [" b6 E3 ` v' c( p' O- g. O
BOOL CWndAutoFood: rocess()
W8 {0 X+ E+ `{$ t% B4 c) f. E/ [& b/ ]* v% d
if( bStart ); b! f5 ]+ e/ |3 {& r" S
{
6 A' i% @& A9 A5 S1 @# M) M" T if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )3 W; M/ i/ c, S4 M7 w7 [
{3 j& C5 V% A" `* ]+ ?. l: q/ [
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ). H" A0 A6 i$ }: q1 n
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );/ g/ z2 n: Y; S- D4 `
}else{
# K1 N8 J# z& Y, x bStart = FALSE;
; I2 e) r) S+ Z+ N1 A1 Z$ S m_pItemElem = NULL;# Z3 s1 k6 R* e! _+ F* P1 Y
}" F& {9 D0 t$ M" ? p4 i
}2 |- u t+ Y- T- a8 S7 f! K$ }
return TRUE;& c& Q' s, p2 G/ g
}
3 O% C# q! U; m6 h. p8 L, [. @! ]$ u3 _8 m4 E: k$ p o
登录视频废话:
$ T6 C/ R5 n' z# w9 i" J尾翼:( m4 v! D8 s9 E+ Y
" e w0 e8 m" h代码:7 ?- X2 ~1 g5 P& w( n, J' w; r
2 X; K; _- Z, d; t0 i
void CWorld::SetLight( BOOL bLight )- S7 @& [1 q7 d( c5 x" J
durch+ L0 ^( B+ l0 y
Code:" [9 Q& M- ~2 ?
void CWorld::SetLight( BOOL bLight )6 m: ^- ~, `# W
{
6 M, O) i7 p* q //ACE("SetLight %d \n", bLight);
. Z; Z/ }6 B% i- k+ N
0 T+ @9 J. V) d# i#ifndef __WORLDSERVER / S7 w L( x. z# U
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
) }' z$ K( ?' P; v CLight* pLight = NULL;
6 \; C; x+ r5 b6 C6 s3 ^1 C6 h. o3 u4 C
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );: Z' g& \* o3 L% I! |
3 z( L4 l9 I2 I \. @5 I
pLight = GetLight( "direction" );7 B+ Q2 d; v) y, I& v
8 q4 ^$ G5 @* } s#if __VER >= 15 // __BS_CHANGING_ENVIR
! w& W" B8 F- o if( g_pPlayer ){
/ w5 @9 T+ R- n6 `& N9 T2 v+ y, o ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
1 u9 Z' i/ |) {8 ~ if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
o ?9 E% h) K5 I {) t7 k$ q3 q- O& F: k
if( pLight )* b8 ?$ K) j6 a2 y7 w5 e
{
) H4 \& x$ ~1 z- t% h pLight->Ambient.r = pInfo->_fAmbient[ 0 ];( u {; {# J6 Y- {' u0 i& U/ C; v
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
6 f5 y% Z8 J6 Z pLight->Ambient.b = pInfo->_fAmbient[ 2 ];2 ?! x6 t. x9 c4 b2 F9 d
& W) `* S6 a g7 r4 c) s* z
pLight->Specular.r = 2.0f;
' x, s' T4 Q$ L# i pLight->Specular.g = 2.0f;
. R& x8 d1 b' B7 C3 J& N pLight->Specular.b = 2.0f;
2 G' B$ [3 f" N8 v: l5 \+ C& p. o, O
5 v. Y$ }/ k4 u, w$ F9 c# Q; M pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
* h. U9 I* G! n+ ?1 d- Z pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
6 v: U* B( G; B3 E. F pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];- K- H1 g) e( y; b( F
* l, h. @( n% |* |# U" h
HookUpdateLight( pLight );
( F+ ~$ k# u9 }1 Z* ]3 t2 J* F7 `9 ?. q @$ c! b
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 ]4 M( C: W9 S9 S: i- e9 O : ` E$ P/ {: T$ N7 H0 ^+ f
pLight->Diffuse.r *= 1.2f;) w! K) U$ ~( v3 f
pLight->Diffuse.g *= 1.2f;
) w1 R) P7 v. c; h4 X pLight->Diffuse.b *= 1.2f;
- |' B- r$ v+ S( z, q8 y I5 a" F' m! U$ a% p c# L# k
pLight->Ambient.r *= 0.8f;
( U* \/ T+ W+ w- b; F& {+ Q pLight->Ambient.g *= 0.8f;
0 g1 S6 G; z1 T! u1 I$ ~ pLight->Ambient.b *= 0.8f;
N2 b& J% _$ J2 P4 m; T 6 d1 \2 q) Q; b7 ?
memcpy( &m_light, pLight, sizeof( m_light ) );: j* A) R+ Q) s/ E1 F( N
% ~" r! L7 z; h4 J D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f); G3 x; p' E0 I! S4 L
D3DXVec3Normalize(&(vecSun),&(vecSun));
; r% O$ r* b2 W& ^2 }, d) b8 U1 a pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ( K+ f* u2 u3 }$ r+ U5 _
pLight->Appear( m_pd3dDevice, TRUE );. N8 W2 \2 h* F8 v; _( ^- ]
+ i( D5 a3 j9 J% r0 V8 [4 X* K) L/ i
DWORD dwR, dwG, dwB;% U- f$ ^, n) p
dwR = (DWORD)( pLight->Ambient.r * 255 );
% a+ q0 @& F( o4 i* L dwG = (DWORD)( pLight->Ambient.g * 255 );
' d; k: d; \( a5 z dwB = (DWORD)( pLight->Ambient.b * 255 );$ f& b: ?% R$ Q$ V7 A% x& X
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 s( |9 J' \% l( a. }9 D
} |% ^" y" } z- Y' \0 ^: D
}, B' n0 [4 W, k5 L m1 i
}
- Z) D, K; j. } else5 {- r0 F' J3 T1 |* J7 O; d
#endif 4 P; z2 @" n& \* n4 S
. h) O, e9 H2 `! p: Q/ |
if( m_bIsIndoor )3 k/ P8 a, v/ U' a# z8 p2 R
{
- j( x( r) {( u1 U if( pLight )) q) ]/ I1 W+ r7 S7 [: X, J7 X
{ 0 p% j1 G$ q0 x' `7 A9 q! G
// à??μ oˉè* ) d( I( X o) y% a$ }
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;& [' X m3 y, j7 _
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;* z: q+ @' z: ~
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;7 C! z" A; l0 q
" F) s; c3 I) i6 z) Z" r7 ]
// oˉè* ??à? 2 y% s- G7 l% J8 L9 o/ p* \
pLight->Specular.r = 1.0f;0 i$ n" v) A% P |1 N* _- N! e
pLight->Specular.g = 1.0f;/ B: G) e5 u9 F4 W
pLight->Specular.b = 1.0f;4 e9 }1 t# n8 C [
// àü?? oˉè* 4 W m! V+ B' C5 H1 a" d+ y0 x2 F
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
- O+ p( k6 D# K# n pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;" O/ Z5 S% B8 p& V
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;' p9 B2 J& [6 w/ X7 | x! C
4 x# K6 {& B O+ _, ^ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) ?6 v* `9 _. L( G" D
{
) C* ~+ B. ^% O- U$ q# D pLight->Diffuse.r *= 0.6f;8 l) ? Y8 s5 Y/ b; ?
pLight->Diffuse.g *= 0.6f;
' y! [* r8 \6 h pLight->Diffuse.b *= 0.6f;7 s1 y5 a3 h# H# }+ \
pLight->Ambient.r *= 0.7f;5 V0 N! S8 C+ p+ \# `$ V/ t, {& k
pLight->Ambient.g *= 0.7f;: t$ N" J5 q0 w* H3 {
pLight->Ambient.b *= 0.7f;
n; C. C4 |* b% l5 \6 i/ z }
/ r* V& E4 b, Z8 D) o6 T1 X, P' t' t& A6 o6 f0 m
#if __VER >= 15 // __BS_CHANGING_ENVIR2 O+ a+ k3 G6 u4 A
if( g_pPlayer )* m D) g) N+ Y# a- {2 I' x
HookUpdateLight( pLight );
. Z, s1 h' b" j! T( d#endif
$ e' L+ }7 ]' k( s6 P. z! y) s memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& t, G& u: J* S% A
; y# S8 i/ E2 p/ ?+ e pLight->Diffuse.r += 0.1f;& S1 h% | K9 ~$ d2 o
pLight->Diffuse.g += 0.1f;& v9 o. n- P# ?" O5 H+ e
pLight->Diffuse.b += 0.1f;
1 P& A2 B0 }% G6 V$ ? // oˉè* ??à?
. g0 D6 D' I+ ~. W" F6 _9 D% D pLight->Specular.r = 2.0f;# B/ m7 W9 Q0 D9 w+ z6 x6 q/ P
pLight->Specular.g = 2.0f;
4 ^, c9 t, v, Z* x8 t: e pLight->Specular.b = 2.0f;) o2 o Q x* G
// á?oˉ
6 p; W- e- T8 E d# ], O9 `) ] pLight->Ambient.r *= 0.9f;
; S$ ?- f( K) |: s) O' y; x9 s pLight->Ambient.g *= 0.9f;
- B. \$ q5 h4 ]& U- b- Q9 B) S pLight->Ambient.b *= 0.9f;
5 p+ C' o$ a3 x* _/ I% Y
& I8 L- a* E: H, w6 A/ X" X memcpy( &m_light, pLight, sizeof( m_light ) );
2 K* K' P, v- G/ n+ b # l1 o5 N( M. }3 M, L
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );3 \: U2 D4 }* \
pLight->Appear( m_pd3dDevice, TRUE );# _9 C$ R: a# Z7 N
! c3 I6 _9 D. o* ~/ ^3 O; v
DWORD dwR, dwG, dwB;
5 _: H; P( z* ]; X: r8 `" L' e dwR = (DWORD)( pLight->Ambient.r * 255 );
$ l% G) E6 I3 v0 W dwG = (DWORD)( pLight->Ambient.g * 255 );! c8 [: z5 l$ l% N; F' D8 U3 R
dwB = (DWORD)( pLight->Ambient.b * 255 );- G2 V! s& u$ H) x; `2 j- ^
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ Z* J/ p/ L6 ^+ e5 ?; j. p }
6 [) Y2 |: U( w5 b+ b7 c8 l+ } }
; j( i/ R, F# N3 S6 y1 _( K2 } else( W4 K$ w/ |* Z
{
7 q+ t9 d9 L# l" S1 Y1 N( d, Z1 E9 e if( pLight )
7 s! R" B# R$ @( K+ G% w {
; z% r- q* o0 U8 o2 B2 m
: b# P" F" i" L2 X; z0 y* ? int nHour = 8, nMin = 0; Y8 J2 o( D# N+ A
#ifdef __CLIENT
: u. I7 d! R' `- x5 f# q // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ' r8 ] B# @# F/ u& a/ `# C0 _
nHour = g_GameTimer.m_nHour;
* V& l7 V2 A0 \# l) J1 R( } nMin = g_GameTimer.m_nMin ;& ?$ W' F8 v/ J/ r* M
#else; e0 P% v( ~5 n3 e4 Y t9 p4 N% ~
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.0 @5 v; q. o% o; y' t
if( m_nLightType == 1 )
* o5 O1 Q, f9 z) Z6 Q6 L nHour = m_nLightHour;
$ m' Y0 b4 [$ \4 t' H #endif$ A& M: W5 t. D. T7 Z/ Z" t+ P( V5 [
nHour--;
( {9 L k0 Z8 E8 ] if( nHour < 0 ) nHour = 0;
. L$ D, |, f6 g' t8 C! n if( nHour > 23 ) nHour = 23;
3 [0 E6 q: Y, s& t3 M+ d: N8 s% h7 W- u3 c
//if( m_bFixedHour )& N) G2 \; T+ p: y* p+ {
// nHour = m_nFixedHour, nMin = 0;. [9 z$ `3 M$ U5 _+ p8 I; f3 `% m
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 D: y! P/ x B$ T
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
5 }: b5 J6 ]1 _2 a! w9 V) x4 z R: s V: O
//m_lightColor = lightColorPrv;
5 d& X' g: ]$ l2 \+ j0 C lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
$ w a0 M e8 y% o9 j lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
1 K4 k( i4 e$ c5 ^ } lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
/ ?, Z. E* t9 R5 z7 w! E/ K9 @: ^ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;- t2 F0 @. W& ]! M
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
5 P1 p8 O( k8 ]. W lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;* \& w2 K4 O- ^( B8 [
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
5 z' l. x8 w4 I: m3 j! N8 |; v
. l% \. @$ V$ w4 s s // à??μ oˉè*
! k( s$ O9 j V: O- S; l0 @( I pLight->Diffuse.r = lightColorPrv.r1;
: M" R# n( g# K4 Z0 a pLight->Diffuse.g = lightColorPrv.g1;) A8 Q- ?* U5 `
pLight->Diffuse.b = lightColorPrv.b1;/ f6 q+ e8 K2 m1 N6 Y
// oˉè* ??à? ) q" z( E; B3 X& G. }' C( v7 G4 ?
pLight->Specular.r = 1.0f;
! ]2 H9 I# P& k, t8 A$ r pLight->Specular.g = 1.0f;
' N6 {* x/ I0 w% X. K4 c } pLight->Specular.b = 1.0f;; Q# A5 b: U" ]6 A
// àü?? oˉè* 0 G$ H) `# L& f3 O
pLight->Ambient.r = lightColorPrv.r2;
) ?0 @* D# E' u8 e pLight->Ambient.g = lightColorPrv.g2;
& z% |' h9 e8 z, o7 h, }4 ? pLight->Ambient.b = lightColorPrv.b2;1 d- L# n5 \) C
6 D' Y; |( M( |9 D+ q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.6 u |. I- B% t0 U u9 u% D9 O
{9 q9 Q+ y0 K# ]4 @/ c
pLight->Diffuse.r *= 0.6f;: y1 M) [5 ?! c6 G, P$ j; u. }
pLight->Diffuse.g *= 0.6f;+ r; ~8 n8 N" w4 _* h
pLight->Diffuse.b *= 0.6f;" F9 l! M5 i% }; `$ c$ B& k
pLight->Ambient.r *= 0.7f;7 @) T0 }0 F# o
pLight->Ambient.g *= 0.7f;; B @5 w- D/ `. m. r
pLight->Ambient.b *= 0.7f;
% O, j0 N! J. Q& `* b- ^9 q } x+ G0 v" L3 h2 \
0 ]9 g+ x0 u+ \5 d* `4 O#if __VER >= 15 // __BS_CHANGING_ENVIR
% M/ C% d0 C" O5 L. w3 T if( g_pPlayer )
# c5 @( s- V1 g! w: o B HookUpdateLight( pLight ); , m6 w7 {5 J( H/ ~8 ^9 A( ]5 p
#endif
, n: ?4 v6 Q: D) v+ Q9 t memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! H" `% e2 O. G. s( M
+ ?* }. L$ a2 `5 N+ l1 c#ifdef __YENV6 k: C% E6 Z0 X& y8 `
pLight->Diffuse.r *= 1.1f;
5 T2 O3 G, G- b3 A pLight->Diffuse.g *= 1.1f;
. B) D& ?6 ~- I1 m6 |5 [ pLight->Diffuse.b *= 1.1f;9 E' ^) a9 D8 i9 r
// oˉè* ??à? 9 N2 n# Q$ `# e7 v& H# k5 V8 x
pLight->Specular.r = 2.0f;
9 F# H: W2 y" G/ }8 ?" e pLight->Specular.g = 2.0f;1 s0 p# D9 k0 D8 f& |
pLight->Specular.b = 2.0f;
4 {8 X) I3 X2 { // á?oˉ
8 v$ m2 f4 C7 t# j% Q6 l pLight->Ambient.r *= 1.0f;/ k7 c w( Z, Y, S5 @5 X* U
pLight->Ambient.g *= 1.0f;& u0 Z' h4 ^( `: G& ^
pLight->Ambient.b *= 1.0f;
A n @3 Z8 \- v* Q#else //__YENV
: B3 }0 x4 q/ B* i5 {, ` pLight->Diffuse.r *= 1.1f;
: | j& N4 k" h pLight->Diffuse.g *= 1.1f;! A4 d2 A9 K+ n9 C# Z! r+ p- M8 p
pLight->Diffuse.b *= 1.1f;, g( s: p) e7 c* N8 S
// oˉè* ??à?
& O6 N- S( I$ @) B5 c9 g1 L pLight->Specular.r = 2.0f;9 U* F- J# @ l! ^ ?) I
pLight->Specular.g = 2.0f;8 ^" e& R" p, u: V2 Y5 Y
pLight->Specular.b = 2.0f;' |2 s* @, j, J9 i% `4 p& w4 U4 S
// á?oˉ ) J: ^/ R/ n8 v. A4 d Z
pLight->Ambient.r *= 0.9f;5 \* I4 ~. ~2 r$ l L- I
pLight->Ambient.g *= 0.9f;, u9 I8 z0 V4 e7 \
pLight->Ambient.b *= 0.9f;. o& N$ p0 E2 C( y( x
#endif //__YENV 0 R; x4 p# w6 p- j& t! w
) h7 u+ `3 H3 j5 E$ D memcpy( &m_light, pLight, sizeof( m_light ) );
" K& M/ B; i. J ! ~: h; D* I1 c( _
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);- q# o P# ]+ \
D3DXMATRIX matTemp;5 ]$ d6 r: ]8 s- H( T
static const float CONS_VAL = 3.1415926f / 180.f;
+ R# R$ N0 K0 p! }* N+ j9 R
8 W' R# y# U" b8 o. B, L9 C' Q D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
5 C9 K# x* O% t, Q D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);" y8 i: ^& g: ~
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
" L0 B1 ~ H& r2 Q# R+ Z pLight->Appear( m_pd3dDevice, TRUE );
( R' H$ Q2 \, u; |2 y7 \, q
9 x- c$ |" j" A7 f! b, }8 K // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);4 U; X. [/ H% b
// D3DXVec3Normalize(&(vecSun),&(vecSun));9 ~- }) V( i# n y
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); + u, v- L6 t b% V. }( ~
8 f) D/ `3 d! _ DWORD dwR, dwG, dwB;
* h( V! o- B0 i: q* _. U dwR = (DWORD)( pLight->Ambient.r * 255 );
! x( T8 d- `# M8 a$ y& B9 {% J dwG = (DWORD)( pLight->Ambient.g * 255 );2 Y+ R* c0 H! P' C( ^; F
dwB = (DWORD)( pLight->Ambient.b * 255 );
0 e* @' J/ B h& z8 j3 V S dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); $ H0 O$ `% r" x7 L
}* {" z( z, J5 |, C& s2 @6 |5 {
}" c- X X: _( @
' D9 W( O6 r0 i m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );& @$ E' [: b# |, @# u: u. O/ H5 O, }, V
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) );
9 k! ^( H$ E, q ::SetLight( bLight );
5 X. `, J& ]0 |3 L" q* v. V$ `
: a5 _) ^( C! a) w- Y0 n$ K$ q/ a- W7 r // ±ao? ?D?í???ó á¤à?
* a" |8 l8 {1 q. C5 h) j m_pd3dDevice->SetMaterial( &m_baseMaterial );5 S8 ^+ f$ N0 F: N
; O! V+ ~$ T! J( j+ `: ]! W F# U4 c
#endif // not WORLDSERVER- I2 c. N0 R9 u$ C
}
/ x9 G2 A6 \; a. z! A并更换! q8 p) B4 q! G8 S0 I' Z
Code:% a0 J! _: m4 }, r$ c! q
__FLYFF_INITPAGE_EXT* r) U% `0 s; e% r
定义, c, F) @/ C; B9 D6 H6 x
, Y6 V$ ?! ^' x6 R9 M8 V( u) g, j a1 @ i1 M, C
* ]1 | `3 ?* w/ B N
- K2 r" S* ]: B现在终于删除我的狗屁加速...
) P0 R+ _/ f8 J n" X
; Y- g8 l) o* c/ A& X/ t8 X& Y& S3 }
, I; x2 x7 a1 ^8 \
|
|