|
|
食品车:+ R0 e5 J' b3 G- P b
尾翼:
6 {1 C0 y& w' R' u2 I
" P4 D7 j: Y! m- [1 U7 {( B代码:1 e# m7 q2 a3 Y1 J
CWndAutoFood::CWndAutoFood()
3 \( Y0 O& b0 F/ {{
$ e! |! X0 e% }! O; C8 D0 q6 y m_pItemElem = NULL;: L; Q. z3 f# ]% p2 M+ U! `4 i8 m) L3 Z
m_pTexture = NULL;
* o3 a4 H& v2 c6 w. l bStart = FALSE;. F6 w- j! A7 I
}; V7 K T1 q; A) K
3 c( ~( _* U) l$ B- Y
CWndAutoFood::~CWndAutoFood()2 @" b8 x% E/ q1 B7 j; w x# h
{
- m1 z1 |2 H7 e+ X AfxMessageBox( "AutoFood ist gestorben " );% h: l$ H6 a; `- o/ T! U7 S" J
}( p9 Y$ ]3 H8 b( L$ }5 ]4 c
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ), p3 |) t2 k9 R
{
2 F1 q0 R4 z$ _4 r6 a/ Y6 ^ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );0 u. }- h! F* t
}
$ |; p, I. O. R; q9 C' s% S
9 I- r) ?7 |9 q* j9 \: TBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
9 n2 O) A+ B% ~{6 Q) Y0 T. A+ G' @
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 Z8 }# g1 r) ^ V. R# [
CRect rect = pWndCtrl->rect;: @& h5 D6 L- E6 \
if( rect && rect.PtInRect( point ) )
/ G0 _3 I0 t: ^) l( \ R$ }4 d {1 W5 C* {- P) j' s% G3 W3 |
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
8 E8 J3 b* ~$ H5 g# ~( Y! z: G4 {) d if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
4 K! C) C. w b% b/ C5 J8 E/ w {
3 z6 \# b( H. y2 L, M( u* a+ i, {" \ if( m_pItemElem ); w0 m# J( F N7 v1 {2 ?2 w
{) g+ A, c b1 T6 x2 `
m_pItemElem = NULL;1 a+ a" n& a! l# n
}
& Q; [" s4 v7 l2 a5 V0 N m_pItemElem = pItemElem;- y, \5 {7 s# J) Y4 x2 h
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! g- `1 M) z: X$ e& W$ {7 m }else{
2 P# l0 G- w, K SetForbid( TRUE );
) v& i/ X! ~2 M: N( q( x }
2 I% G0 `3 |4 r# D# v }else{
" _6 L5 o7 l3 |9 H4 y4 B SetForbid( TRUE );3 H b$ `% C1 v8 M9 |- ]
}. W! [5 I' M W ?$ Z
return TRUE;0 h5 N' m4 |; j* J- ?
}4 O, Q+ U, _7 x- |: Q
, Q0 L: i1 O+ j8 r' r
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 u0 _% n" s, j$ R( T% v1 n
{! `6 J# H. |: P! \) ?1 f% \- f* X$ z
switch( nID )- v3 f6 g- C) i+ T
{
* H S) B' Z) P7 R: @, j+ y case WIDC_BUTTON3:
! P- |( V3 ^8 @2 h {+ _0 r' M7 f1 ` e; F3 j
bStart = TRUE;
. [0 c/ w2 e/ T0 ?1 a3 J$ R break;6 \6 {4 p# E# a3 n
}: h% N, Q; h4 s4 |8 |( s
case WIDC_BUTTON4:
4 M. s) L7 H+ B, ]; } {
/ x3 f5 B: D' ^: m' U4 v; D- A3 e bStart = FALSE;
/ i0 S- t& t8 q) i' r8 M$ d X break;, \; r2 E6 h' o Q# t# F K3 \* ]
}, `1 o4 l' w0 J( k; c
}
8 Y* L) M( u' \( d return CWndNeuz::OnChildNotify( message, nID, pLResult );8 h1 h5 t$ C; \2 I% g1 i
} ( i% S6 c% M6 s% u0 J
void CWndAutoFood::OnDraw( C2DRender* p2DRender )6 ?$ @2 w$ \/ R& R
{: V) ?2 c, A8 v4 x
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
1 ~3 J2 O4 Y# u/ c( {3 H0 s- z if( bStart || !m_pItemElem )
/ B- s" _ ~+ x" j {
2 S$ {# Y, H1 R* A pBtn->EnableWindow( FALSE );7 R& |8 L5 c8 ?7 ~; S7 I
}else
# a; P7 g% v% O/ C$ A( l1 ^$ s pBtn->EnableWindow( TRUE );
& V% u# u; G6 _+ X. E if( m_pTexture )
6 ?$ w' u8 d9 \ {
- v. }. \+ B/ c0 J$ ~- d- U LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );( Y$ c6 d* W5 d. ?* m
if( wndCtrl && wndCtrl->rect )
2 Q& s2 b1 e; ]% h( P {
) [0 V/ p! |" R! x% N m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );% t" E: |, @: k+ x T8 t
}9 L5 h% G& r, r0 X5 `. R
}: g1 d, Z! {# D0 u) ]
}1 M2 D% R* F7 t; ~& X/ L
9 X" H ?$ w" C/ s
BOOL CWndAutoFood: rocess()
6 A4 K; c4 d! A- A{) }. u( S+ L7 w8 T8 G+ L
if( bStart )( q& U( } n- v7 d
{2 i. r0 p0 e) A! Z; T2 k) u& I& v4 [( S
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
8 n# B0 O- @# U0 Q C5 w5 |- y {* L1 N1 n% A9 n/ d$ m' F$ r
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )8 c, D; V2 ^0 y
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
0 q6 g. {, y$ y8 G3 i% x }else{ }& }( i* }7 T/ V3 J { P
bStart = FALSE;
5 d- c4 q, t8 [9 c a! p m_pItemElem = NULL;
3 O8 j, o2 i! i4 c* w# E }. U4 {( R6 S& f3 J
}6 G; I+ Z8 Y. U5 [
return TRUE;9 c, z: Y# s. c2 U
}
1 J5 v5 k+ n3 O- i/ b
1 [- Y. E. N4 U! \登录视频废话:
+ E5 M$ Q8 t+ F7 t尾翼:
1 y3 T: H5 s7 j
3 o0 m% r) E o" B0 K: k代码:9 Q5 q( e! a1 Z+ S* l4 g
0 R8 G' x8 @1 q$ F
void CWorld::SetLight( BOOL bLight )
- |8 z: G3 ^2 p6 |, Adurch
9 G- S4 D4 d- h. gCode:) D1 E/ h' N% }7 U
void CWorld::SetLight( BOOL bLight )
6 [5 r- b2 }# t' y& {; f1 D{
& d x# i8 W# D# |; W+ D //ACE("SetLight %d \n", bLight);
" V/ N y, d& G. E. x' U5 s: S) G : @* x4 N; r) |" \* H+ O% J
#ifndef __WORLDSERVER 5 N9 w3 t5 h) h$ J7 _
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
' m' G/ D. d$ S CLight* pLight = NULL;
" ?0 s/ _0 \. L) m+ X2 v% r+ o e; Y0 M7 j5 Z4 L
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
( G- A- _9 D9 T
& |3 f" E/ N3 d pLight = GetLight( "direction" );
2 k$ ~3 Q) z, U+ A3 M, J, T
3 f) z, r5 C" P8 ~( P#if __VER >= 15 // __BS_CHANGING_ENVIR; V% T2 X* r1 a5 K8 ?2 R
if( g_pPlayer ){
! t* a7 y5 f# ~$ _! i( |9 t ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
8 S f+ [3 N' ~! h0 O* U4 h) I if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
' U1 k% k3 _8 T$ G4 {0 Z- j: g {' l! q* |: | R: C+ T# w; \( F. g
if( pLight )
% R# d- r: V9 d( e% W6 O/ E6 x! l$ H. N {
( m/ E; E0 ?% c8 d5 u) C: ]! H pLight->Ambient.r = pInfo->_fAmbient[ 0 ];8 Z* S( i4 ?* y8 n" a
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];% x0 c8 m$ U/ }$ g( @3 t5 O1 j$ f
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];0 n+ b9 q* \# x& A2 ^
1 z/ U3 b6 h0 N o pLight->Specular.r = 2.0f;
1 k6 d4 B' v6 u6 b pLight->Specular.g = 2.0f;; k8 _* k: z3 L' E* O: F
pLight->Specular.b = 2.0f;
- G7 I" E0 \) y/ \! H, m& o 3 o0 K# `+ C' m9 V
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
" P6 N8 O% }8 G pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
2 e! \! ]( o1 g/ o pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];6 ^1 k" J/ q, M& ~ z! K
0 O( T6 U+ q4 M6 C0 M3 G% n HookUpdateLight( pLight ); 9 v) Q3 a& y( @
" D/ J! R Z2 k! B/ K& V: [ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, v, s ~5 p3 a. V. j
3 J7 I9 x* c; V% h1 O( m" h2 w pLight->Diffuse.r *= 1.2f;) z& \, Y/ C: J0 u% G% ?4 b' o3 V
pLight->Diffuse.g *= 1.2f;! {: t: s# G1 k7 F9 I _
pLight->Diffuse.b *= 1.2f;+ _0 I6 A' y& L8 ? g' R# H
7 ^ z. n9 b7 @% `5 L: c2 ?
pLight->Ambient.r *= 0.8f;
9 A7 T2 h% k# C/ ?( r pLight->Ambient.g *= 0.8f; J7 d6 A* k) K9 ]
pLight->Ambient.b *= 0.8f;
/ d+ @' p! S P2 |6 I
5 C; D7 [" z5 t' k2 z memcpy( &m_light, pLight, sizeof( m_light ) );- g3 z& H: x" K8 U4 l7 ~3 m0 F
6 I6 M u% q0 ] D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);5 x3 t. u0 B6 Z+ \
D3DXVec3Normalize(&(vecSun),&(vecSun));" i/ a. b% l4 `$ i, J
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* |, }5 P6 q8 e, W% r pLight->Appear( m_pd3dDevice, TRUE );
r+ ]! j, O$ v& |& n+ P
. B& ]' D+ t! D R& p* k; k DWORD dwR, dwG, dwB;3 a. L4 Z% i, N
dwR = (DWORD)( pLight->Ambient.r * 255 );. R1 P" q8 J* |3 { s; F
dwG = (DWORD)( pLight->Ambient.g * 255 );
& i/ k: m3 P' @) A: [ dwB = (DWORD)( pLight->Ambient.b * 255 );
5 t( b! s% G; q# X% I& z! J dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) U/ y% e+ k9 T7 H5 h" g1 T1 G }8 p6 K( X, r" ]' d
}
0 s/ @9 n7 Y' ^, ~, q }
! G9 g9 t4 }! l5 B else* x% W; c7 g2 P1 ~
#endif # c0 u5 o9 C! m" N
[1 v" y. [5 r; j' J2 _! \ if( m_bIsIndoor )
/ b2 n6 @' b8 X- S {
6 u% i. B- R3 i if( pLight )
2 |: w& E. i; j+ Q; j: l9 f* E { 0 \& w# ^/ M9 m
// à??μ oˉè* 0 l# F$ n7 w0 p; i. R! \) o0 T
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
# C& e4 f, f) p3 W5 h pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;. J+ E1 P# {0 I9 l5 D
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;" a" ]4 Y7 U& |' l- L
- N6 T4 c5 Z0 n; u9 r // oˉè* ??à? 4 B& k1 g2 I$ P0 N3 u
pLight->Specular.r = 1.0f;! o0 s" z `( \& B
pLight->Specular.g = 1.0f;7 Y. l. a/ \9 a( h' Z) f8 O) o3 D
pLight->Specular.b = 1.0f;/ d% s+ X* V% \
// àü?? oˉè* L) d& ]& p- p A S5 p
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
: B% x, e! h& w( ^; k pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;. g# }9 r+ o/ R- a
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;' o. ^% o' z) ^0 q E j
c7 p( T8 _( A* K( E- W
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- a# P' `, S0 s6 q1 a- `2 \! { {
( w5 F: a |+ d6 W6 Q# X pLight->Diffuse.r *= 0.6f;
w: x! f4 D! d- [; H+ U pLight->Diffuse.g *= 0.6f;
! ~$ i) e# |3 w* \7 p) w pLight->Diffuse.b *= 0.6f;% q5 ? R' a3 `7 I( Y9 S, g3 D
pLight->Ambient.r *= 0.7f;+ B3 T6 T" z4 R& e: G( v
pLight->Ambient.g *= 0.7f;
! }/ w) X1 J! H0 e, A, L/ e pLight->Ambient.b *= 0.7f;' A% D5 }9 C4 p' U5 b8 i
}5 I* j9 G% J3 q# S( P
9 K; v2 j2 M- [/ o. ?#if __VER >= 15 // __BS_CHANGING_ENVIR5 i3 L: m2 X; J0 ?; S+ y
if( g_pPlayer )
1 C6 d' j) a2 [* g B HookUpdateLight( pLight );6 {. e9 c# l2 ] v3 x
#endif
- V2 x3 _; ?% _/ {) |1 o memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; D0 ^2 `5 A, z, {- s
) t" `7 ]# ~9 `5 n$ r pLight->Diffuse.r += 0.1f;0 I6 A6 Y$ t7 S" v6 E1 m
pLight->Diffuse.g += 0.1f;
' p! p/ n2 @% b! U: C2 V* [0 J9 H5 P7 ^ pLight->Diffuse.b += 0.1f;
2 V: q+ _6 ^ a/ [7 l8 r3 O // oˉè* ??à? - j- ^% ?8 ]" |
pLight->Specular.r = 2.0f;" |) j6 m0 e( @! w/ Q$ i
pLight->Specular.g = 2.0f;0 C5 l: I- E$ n/ S/ i9 H
pLight->Specular.b = 2.0f;
' @4 v0 R h5 S2 N! O8 Z // á?oˉ ) Q6 D Y" ]0 y7 G- P
pLight->Ambient.r *= 0.9f;
( [) C" v1 Z# n pLight->Ambient.g *= 0.9f;
$ i! r* F4 @) y( D7 [ p pLight->Ambient.b *= 0.9f;
6 l0 s. s3 b. D. j! p2 @
7 D& M& ]2 l1 K- _' C2 U ? memcpy( &m_light, pLight, sizeof( m_light ) );
" a6 _1 L3 _/ Z. ]8 N. G ) i0 n. [+ r% R+ v# T
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );$ I7 U. u7 z# C! {7 n# m8 D7 k7 b
pLight->Appear( m_pd3dDevice, TRUE );0 ^/ {& J* [/ H, l/ }! U0 ~
& s I/ J5 I! B DWORD dwR, dwG, dwB;' D. a' p& `8 P8 C' R; [
dwR = (DWORD)( pLight->Ambient.r * 255 );
8 O3 V6 o Y) Z$ ` dwG = (DWORD)( pLight->Ambient.g * 255 );
* s9 V% q+ o1 S/ i; m# J; I- [ dwB = (DWORD)( pLight->Ambient.b * 255 );& x. f1 }8 y7 ~! p
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ M( K/ H2 y3 a; u1 g; Q: q
}
0 y# e( I9 [. r! }' p, @ }% `# B. D/ J0 f% A, _' G
else
$ S3 ]4 C. t) R" N4 T9 R# L- p& Y& H! K {
# n q1 X& z, T7 `2 ?5 d if( pLight )
7 ?4 I& T. p* z$ }8 R0 k3 i7 G {, `9 D, z. k# ]9 O
: x+ t# m- X( {& p1 y int nHour = 8, nMin = 0;6 j& ?) d' p' C8 s( m3 Z8 R: ?
#ifdef __CLIENT
& O' r! u/ p0 T9 V. n // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. " `9 t9 q0 O {3 s
nHour = g_GameTimer.m_nHour;) Q# v8 d+ i4 s3 Y* n( s. X
nMin = g_GameTimer.m_nMin ;
1 w3 `$ A9 J* C/ M/ T, N' F8 b #else
' I' E& Q7 }. a) H; `2 S( U- { // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.7 ?- H1 ~$ x |+ V- r3 ~% F
if( m_nLightType == 1 )/ z9 s0 z2 g; D" P! r {
nHour = m_nLightHour;
4 Q3 g3 w( M! F. d/ u) M/ V8 [; x #endif/ x3 }+ c) G/ j/ k
nHour--; I9 a" u) j, b: n: C
if( nHour < 0 ) nHour = 0;
/ |5 D' M) K' r! B if( nHour > 23 ) nHour = 23;
% ^$ S- s. v+ l) y) f1 D6 Q* @+ J! S; }$ |
//if( m_bFixedHour )
. @9 O4 V! U! C( q, H // nHour = m_nFixedHour, nMin = 0;
/ J8 ]( X, @7 z LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
7 }+ T5 A0 u3 Q: F" _# `0 b LIGHTCOLOR lightColor = m_k24Light[ nHour ];2 i9 b) y$ q$ l8 ?$ c, Z
1 n, B- u: ~2 X //m_lightColor = lightColorPrv;7 }2 C3 u8 \& I8 r# v0 x
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
, }& m; ~0 i8 Y/ Q! o+ L- b' S lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;# h7 b7 _' x0 {: F' K: Q' D! Q
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
6 V1 l" }, z: w- B7 a lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
* ]0 u6 y G, g. _6 z lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;) ]* v$ h3 J# A" x
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;1 J9 H! M& }. m! c) @7 i+ b
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
! T; h: P" q5 d3 {$ d, H7 u1 A/ W1 `; r& ]; a) X8 n" @
// à??μ oˉè*
) t% G3 o9 ]2 V' j1 `1 K pLight->Diffuse.r = lightColorPrv.r1;
$ L3 d) { p5 h0 t; z" E' p pLight->Diffuse.g = lightColorPrv.g1;% q$ q$ d& e' p5 f9 w7 ~( P
pLight->Diffuse.b = lightColorPrv.b1;
; i& Q/ R9 u# J, R }$ r // oˉè* ??à? 5 k5 A# l# ^& I7 R/ j' z
pLight->Specular.r = 1.0f;: A, @5 `3 w; \$ y% Z2 i" c
pLight->Specular.g = 1.0f;
# x% Q2 Z* x2 O1 Z: t$ Q pLight->Specular.b = 1.0f;4 g s# f1 a; n
// àü?? oˉè*
f1 {1 \( q, [9 q8 K pLight->Ambient.r = lightColorPrv.r2;' x5 T* j- o. i
pLight->Ambient.g = lightColorPrv.g2;2 T, z/ w7 D1 y+ g7 r2 D2 X
pLight->Ambient.b = lightColorPrv.b2;
% w/ v5 [& J h: a4 v3 e/ d& f l: W9 p. N; Z2 V
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- s6 c# j v0 ]" p( @ {
2 k: u$ }% }* a; R% E pLight->Diffuse.r *= 0.6f;
$ D! l0 b$ c* @+ Q pLight->Diffuse.g *= 0.6f;
4 Z& W' N4 W- J4 N9 D& I. D pLight->Diffuse.b *= 0.6f;& {( ?; R6 n' ~( l
pLight->Ambient.r *= 0.7f;! G7 D$ P, h/ U( c/ o( \6 w2 m6 I2 a
pLight->Ambient.g *= 0.7f;' ?5 C$ @* ?3 ?& |2 X' i
pLight->Ambient.b *= 0.7f;% E% y: P, M: A8 {" g' W2 }
}
+ u, }) t; ]8 a: w- f' @
4 z( G8 z8 j0 V% Z3 _#if __VER >= 15 // __BS_CHANGING_ENVIR( F3 D) m) |- t
if( g_pPlayer ), w: Q( f$ ?& ~1 s6 ]! o. d, W) p
HookUpdateLight( pLight );
5 w7 w( K) G- p#endif
# f% b" V9 j* t. E& d memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- Z- e/ C& @# r2 B
2 C* N L0 e- Z
#ifdef __YENV7 K2 Q2 s2 D! o' p
pLight->Diffuse.r *= 1.1f;
/ }! o) y. L6 U, R' X6 ~ pLight->Diffuse.g *= 1.1f;! Z% R' S) v2 S# d" T) X( T
pLight->Diffuse.b *= 1.1f;
! k2 L1 ]% L, C; x$ v0 r8 Z# `4 y // oˉè* ??à? 1 a3 V% S( w m5 D
pLight->Specular.r = 2.0f;5 A, H8 Y0 V5 o& N
pLight->Specular.g = 2.0f;
- B( E: j) T) I8 q1 o2 g6 F4 v5 r pLight->Specular.b = 2.0f;
2 f$ W% A) o2 d# |- ` g' g // á?oˉ 7 [; B# w- m$ F1 t) ~0 [1 T
pLight->Ambient.r *= 1.0f;
( a1 y/ L, `$ v- y: w pLight->Ambient.g *= 1.0f;; O* b& F3 m* z! r- ~" [
pLight->Ambient.b *= 1.0f;
6 T- l0 o* g( @#else //__YENV/ i+ ?7 I: Y/ H& {6 T! W& J; e
pLight->Diffuse.r *= 1.1f;5 `1 O9 \, H4 ?' P- \0 g5 ^; C3 q
pLight->Diffuse.g *= 1.1f;% F+ ?: }/ Q- q0 u
pLight->Diffuse.b *= 1.1f;
' s; M) \7 @/ K7 X5 M+ l // oˉè* ??à?
2 G- a; \( c0 p. V" t, }1 X pLight->Specular.r = 2.0f;( U8 I" i; _3 v# v! Y
pLight->Specular.g = 2.0f;
# R: Z3 O8 F& {8 \9 o pLight->Specular.b = 2.0f;8 N" J+ l) m; p; K2 f
// á?oˉ
* f2 u/ T) A, g pLight->Ambient.r *= 0.9f;3 z+ e7 H% G7 t) u$ g, F" x; S
pLight->Ambient.g *= 0.9f;
. A( e! C3 F- P pLight->Ambient.b *= 0.9f;9 V/ Q$ v& x- m0 c p# E7 r
#endif //__YENV
7 ~3 m# [ v. I" a% s8 w , R3 i) G' a) m
memcpy( &m_light, pLight, sizeof( m_light ) );
& n' L+ G( m% w( z5 G. P. N 0 Q0 J7 D$ N$ H4 T$ }5 k/ L: l
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);6 H5 ~$ @( j! f- o) F
D3DXMATRIX matTemp;1 E- @2 {4 ^ j2 R& V0 Q
static const float CONS_VAL = 3.1415926f / 180.f;
# e* Y3 x! d$ b, i
" I0 v4 J! S8 V D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);8 V* P N6 F# Q
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);' i/ y: S p6 r# o3 M z
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
) i/ z5 w3 ~( c pLight->Appear( m_pd3dDevice, TRUE );8 [$ J$ O8 ^$ o. A! a
% Z9 i0 Q5 b8 Q1 ?* g% B6 z
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ {+ f1 A6 O s. O // D3DXVec3Normalize(&(vecSun),&(vecSun));2 K- `! o% N. X( I5 m: B$ N
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 y( L2 _: S$ m1 P- L
3 \5 e* X3 b( S m; Z/ U/ c1 ~
DWORD dwR, dwG, dwB;
' g1 K' s+ t/ k$ h) N dwR = (DWORD)( pLight->Ambient.r * 255 );
- Y) ]' N: {5 ^4 E" n dwG = (DWORD)( pLight->Ambient.g * 255 );
7 ]8 J; A- i/ l! c3 ^ dwB = (DWORD)( pLight->Ambient.b * 255 );9 G( X- g, f8 ]3 o) _# e. \
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 u9 b* ~ x: c6 {( E; G2 b }1 e: J& L" v( }- B; M
}8 u; I3 n( x% @- l5 G2 t1 y
+ _& d5 ]0 [7 {0 L; M
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
5 U7 |( J# G& l 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) );; |+ ] T. x! O, G+ U* R5 J7 A
::SetLight( bLight );# A+ s' F: i! m, F
1 {2 D% S: M) Z3 f3 \ // ±ao? ?D?í???ó á¤à?
# y; n, m* j9 k2 F$ G% O m_pd3dDevice->SetMaterial( &m_baseMaterial );
* W7 ^; T& o1 v5 b . K1 _$ a2 W5 j6 B3 F P' T |
#endif // not WORLDSERVER! a4 E0 E7 k/ H& A8 l% S
}
7 K) @* F0 u" H并更换1 ]9 e( t1 l3 G: B, t
Code:
4 `7 C& `& p0 G__FLYFF_INITPAGE_EXT
) q! h3 t, \. F# \定义
0 {+ R5 p% y7 U
9 F$ H) n, t! j' e# B1 |& I5 Q5 L& }: W5 o! D+ c. X5 n: p
- e/ J* N5 c: d) P% p
+ d$ d0 ?* P I现在终于删除我的狗屁加速...0 }! c. x7 C4 [1 ^
+ @2 y# [& b+ X: S" W2 c$ T( D! S
8 F0 |. K. @+ o* c# \- I. \+ ]& S" |+ D4 h" A6 ?& x) ^9 l8 P# D2 y
|
|