|
|
食品车:
9 z& l( `' P- _" ?尾翼:
6 m) X- J- H5 y9 p$ o+ [9 D1 a% W" O8 H S1 k3 k. X5 K* e
代码:. I, H5 I r) o ^! z
CWndAutoFood::CWndAutoFood()
0 \0 C( D4 j v- o{) s$ K9 U! @" _% b4 c8 V k! T" |
m_pItemElem = NULL;2 _# t+ W. n$ H& K0 q4 v5 I' z5 j
m_pTexture = NULL;
: p- [8 O9 ?+ \0 t: R bStart = FALSE;
, j* ?# s2 f, M& z* R}
$ x( r' h, ^( d+ R/ s7 ^) K5 p( u6 { U& a7 p. j0 }2 m
CWndAutoFood::~CWndAutoFood()
3 c( a$ _4 C4 J! F, e! R{9 m \5 r1 D9 N# k0 U) I8 P
AfxMessageBox( "AutoFood ist gestorben " );2 ~& p3 ~. r8 P5 M3 K- j
}) J, Z& T N! N9 h" y" F
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
+ [2 q; t6 O# Q/ R{
3 Q& M+ t& a% r8 R1 W, `2 s3 |6 [ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );3 D) Q: `# I1 d" U3 a8 W2 q! m" {
}6 F6 R4 o7 `5 J7 r) {, N6 M* V& x
3 Y2 ^/ |. q3 X$ R5 A4 YBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
- c+ p3 U8 @7 E* l' r# Q{1 l& C; u2 ?2 F
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* d4 i* v- H# j( R( c5 z
CRect rect = pWndCtrl->rect;) D3 ?$ n9 @. j3 x
if( rect && rect.PtInRect( point ) )
, ]% k& `& ]5 {5 V {# O0 Z# J! @, K
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );9 }: T$ u, G: G& C
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
2 J3 D. h: n, C/ k4 ^ {
+ l9 Y/ \/ D9 Q) A3 c if( m_pItemElem )( }: X6 |) _, i6 ?: b
{8 _0 a% @" q* j. Q6 L
m_pItemElem = NULL;& p8 u( @$ H/ j9 Y$ F1 u5 H9 h9 F
}
, c0 J1 h/ b7 m. G: I& b& P. R m_pItemElem = pItemElem;
% p0 ]5 ^; c4 i, A m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
, W( a0 M: g0 p8 _( | }else{
9 D6 d0 k5 O. t# H- |" f( ] SetForbid( TRUE );" g( @# l$ _% A) a# Y- z* ^9 P
}7 a3 x0 f% p$ C9 o/ s) J. b; n
}else{
) s0 v; W. [. i) B9 G$ E SetForbid( TRUE );# y# r$ q$ m# G2 a& @
}
2 h* y5 U- u) I# W' a8 h0 x8 K return TRUE;) A* r* d; d" v7 Z1 l
}
! f7 y$ h y$ n
2 T9 B* P! N3 V g; Z! y4 f6 \BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
7 `# C/ [& {* U1 J9 x{+ n U0 D. R0 Q: o* Q; |/ J# V
switch( nID )' d% ~4 h( h. d7 M8 f
{# A" f0 v6 _* w
case WIDC_BUTTON3:
0 G, w* v8 V6 k { s3 F3 }- h5 ?2 K/ {+ g
bStart = TRUE;
, K, e# \8 B$ O, c break;' H# {6 M; W x& g9 V
}6 }) e' ?2 j( S/ a. b/ a. O
case WIDC_BUTTON4:
) G, I# d' I( [3 K0 U {$ F/ U u% `2 W. j4 V
bStart = FALSE;0 o) d' _- D; k$ K
break;, A: u: h& ?) u
}8 @! K/ C, m) H9 C. \
}1 c) e2 h% X) o- `$ g/ `
return CWndNeuz::OnChildNotify( message, nID, pLResult );
# R, c+ n& {* S& q} 8 s9 r7 c; [0 Q0 ~ G4 t2 o
void CWndAutoFood::OnDraw( C2DRender* p2DRender ): z4 l# \: y' ^) X0 w* X2 U$ o
{
* r2 q$ Z5 k: m- c- U CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
5 Y* Q& v4 W# e: @7 P if( bStart || !m_pItemElem )9 y h o, u' J$ ~+ M
{3 G: H `9 X. L5 w3 m/ Q: x. A' f
pBtn->EnableWindow( FALSE );
; K4 s1 v; h1 O( L9 H7 Q% {$ L }else
3 z% D3 L/ v2 T pBtn->EnableWindow( TRUE );
6 \7 ?+ B9 j8 b' \4 c5 V% A if( m_pTexture )' D# a- V) t3 }4 f) w
{7 m" j( v5 l) m9 c
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 [' o* M% S0 t
if( wndCtrl && wndCtrl->rect )7 `5 R8 v! i M0 X' I x6 r c% p
{
C5 W5 E7 U3 Y9 f m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
. V5 T4 K5 X( p: V [% i }) C; M; ~: p Z+ i1 N
}0 B' ~0 q/ s" Q% D+ G" @
}
# x4 ^6 @1 I$ Y" o1 [0 P; F# f9 N' z7 ]4 o+ T
BOOL CWndAutoFood: rocess()- M1 _( u/ F) W
{
6 w$ u/ S' V# m$ h if( bStart )" ?% D% Q" n5 G0 [2 B6 v2 j
{
, z' A" ]6 t5 {/ n. j0 B if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )' a; w2 H4 p: U/ e; `3 u
{
6 R5 \) X2 M7 j% E" Z if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
# G$ c- n+ l# g g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );4 f* V$ C9 o" Z% ]3 M9 m N
}else{
G- r$ f, S' X. x! B( @ bStart = FALSE;) Z8 P1 d2 c6 t% S1 X
m_pItemElem = NULL;7 W w+ N6 N8 P4 V/ x
}4 V. }4 [9 q- P5 s8 z, x: }
}5 I" }/ U! F/ |/ w; j' E
return TRUE;5 V( k9 K2 z* ^
}" R; F. }+ R' d, Z4 ~# e+ S
5 J0 p8 F7 Z3 k- a4 [9 t* Z登录视频废话:9 D2 z1 P1 ~6 A/ R
尾翼:! B( [( G3 G/ d' y$ W: ]# ]" z& B
2 U. E3 B4 F9 T& G4 {( i# G
代码:
. A/ |0 k- l8 j. k3 u
' G5 M0 v n# Xvoid CWorld::SetLight( BOOL bLight )7 P* L- `- R7 w1 l" B/ M
durch6 z- j+ I [: Q
Code:
2 J6 J! |" G. A% U1 V, }' Ivoid CWorld::SetLight( BOOL bLight )" X5 j0 @+ D/ W# v
{ M6 S3 ]1 u7 q, U& \, e
//ACE("SetLight %d \n", bLight);
& G" j# q! O" b1 E: F- S % ~$ ?' F' m0 ~- s
#ifndef __WORLDSERVER + d- i0 M) T4 b, s
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
0 S0 L: q& E/ F1 E. [$ F7 w6 a CLight* pLight = NULL;- t- k% T" y+ x: Z3 S; [
t S& i6 L1 h# n7 r! p
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );& L8 i4 O) L3 R( N3 M; P% ], p3 Z
8 Y8 Y2 O1 d i5 y% P8 s- }
pLight = GetLight( "direction" );
' V+ c) x0 a; \6 N# ]& B/ W% ^) Q0 T/ W9 p5 L
#if __VER >= 15 // __BS_CHANGING_ENVIR
/ z( b! @' b% b! W) v- K5 u9 E: G if( g_pPlayer ){
( M1 P" A/ Q: q) C$ c ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
4 R& w E- z0 G! U0 v if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 {8 ^% l4 Q) s) n. ~
{
! w5 T% ?9 r$ b* b$ I- V if( pLight )
4 ]2 S( }) \7 \; U {0 P7 s# e" I! C& Q7 ?1 ?+ j9 l3 t
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];; i; K7 X# W/ @' I, D) E
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
4 X( R; P- S6 e' t/ b pLight->Ambient.b = pInfo->_fAmbient[ 2 ];' M/ L' y: x8 `! l
5 g" l1 ^3 m+ l# c5 L" Z+ ?- c7 k pLight->Specular.r = 2.0f;
7 w9 \5 s& `; l4 _- V# i% }+ M6 O pLight->Specular.g = 2.0f;) d/ J, l6 n! m3 q8 V( ?" G
pLight->Specular.b = 2.0f;& ]& n4 Z8 R1 L8 a# B" ^, X
+ y8 u- m/ }1 i, d2 q1 n
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
$ k2 Y& E* E3 G5 \+ c pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 W/ O& ?- n$ V) Z! | pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];9 N3 J8 K" l) c6 A
( {- z/ i u' b% I% p
HookUpdateLight( pLight ); 4 B1 ^' T0 f, O+ H( S% H9 x
; W2 Z9 M: i! i, q- q; r, b
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 R( |' K: i. v" |8 a
% y& u6 v# G+ ~- V) [# D pLight->Diffuse.r *= 1.2f;5 k1 w9 C a' |& e) E
pLight->Diffuse.g *= 1.2f;
Q7 e0 O9 r- P" S6 j4 ~# Z pLight->Diffuse.b *= 1.2f;# k! l: n% _5 A {
3 _" c3 E/ U3 }
pLight->Ambient.r *= 0.8f;
" d. P' W" |$ N W3 H7 ` pLight->Ambient.g *= 0.8f;# S( h& I6 i+ I/ G7 i% l
pLight->Ambient.b *= 0.8f;
5 M( p: L- c! E0 b( { 9 k2 E! W$ J! h* O
memcpy( &m_light, pLight, sizeof( m_light ) );
( n) ^. C/ [$ Y" f- O0 K& v, ~* c( Z
# T- f, v; c% e' s$ B( G5 F& ^ D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);- \5 R* H! m$ e4 D; U% d/ @
D3DXVec3Normalize(&(vecSun),&(vecSun));
* V9 l" t: `' P9 [0 ] pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); # ^2 z0 B7 @2 R4 _( ~
pLight->Appear( m_pd3dDevice, TRUE );* X: o0 {, ^ |9 L. ^# s
$ n$ M' Y) }* ~1 \
DWORD dwR, dwG, dwB;
4 c# g- {+ O% i) S dwR = (DWORD)( pLight->Ambient.r * 255 );
7 F( K6 `4 S V* U# n6 R3 z dwG = (DWORD)( pLight->Ambient.g * 255 );) k# Y! w9 x* ~9 D
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 g# N, i- E% Y" w: ^0 X dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& K# U, Z! f! D+ L, ^ ?4 P }5 G6 w1 l1 Z: V
}
2 P: Y4 s* Z2 y* H; W4 ?8 t. ~9 ~' F" t }
5 ~# x- ~ x6 x# z3 U4 H else
. s9 A7 j: v, j#endif
+ k" I4 A6 F) |& V! F& s$ [ Q" d) C2 P9 U, g4 m. O
if( m_bIsIndoor )
& S3 v4 e1 @( Q+ Y {! N, [" {- O+ P% b3 I O
if( pLight )
( `0 k( I: I1 P' z; p3 Y8 G6 ? { ! k; I' o2 J4 t0 m
// à??μ oˉè* 4 f2 L$ {5 v( c/ P. A9 ?
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
* H1 M% b) N! v3 {. _! j8 i4 L pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) F Y3 E# z% F8 J6 G$ B8 h2 b pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f; l9 s+ u! \* ~5 m
* f m. X# _" ~# s4 S // oˉè* ??à? % q; R1 P$ l8 z0 m$ L: o P% R
pLight->Specular.r = 1.0f;
" F$ X* W9 k9 A' I2 e. k pLight->Specular.g = 1.0f;( O7 j2 [6 w; G' C( @) R
pLight->Specular.b = 1.0f;! H1 t: J5 O) w/ ?/ y5 v' k3 y
// àü?? oˉè*
5 H8 ~. _8 y+ z& D0 g: |9 R pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
- T! j! Q4 {3 V( U# p pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;9 l/ B7 M+ f: A0 P
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
" ~' a" a& y, R: Q# U/ ]. K& ~' K, |3 e; P, D4 T7 h1 Z( T& i+ I8 `
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.' G# g& V/ Q- b2 r; P& f- b
{/ ^9 j3 h9 I; u4 u& v
pLight->Diffuse.r *= 0.6f;
! Q; A/ V: c( s6 a9 ~& \ H pLight->Diffuse.g *= 0.6f;9 N' J4 I6 O5 H0 m9 ^
pLight->Diffuse.b *= 0.6f;
* h. m/ J+ q" e# L/ p4 ` pLight->Ambient.r *= 0.7f;
9 g8 Z) h5 S" ~/ W4 b m2 D pLight->Ambient.g *= 0.7f;7 S- L4 J' a7 \, V, Y
pLight->Ambient.b *= 0.7f;
$ `" q' Z9 \5 `* _$ v3 B" h7 @& d }
4 M9 X' ` _- b
# i* Y1 Y6 W$ Q$ x: A1 S! ~1 g#if __VER >= 15 // __BS_CHANGING_ENVIR
( D7 Q1 V% |, q if( g_pPlayer )
* i9 n3 c! }+ ~# c( Y5 w9 X HookUpdateLight( pLight );
" D3 ^! `* E/ V: M6 O- {7 Y#endif; `9 |1 D! z) O; T
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );$ j' R2 s( f3 e# m; D8 K
4 ]+ i8 L7 s* A7 U& y w' w3 Z
pLight->Diffuse.r += 0.1f;% U# ]6 b4 ~# n, E& E
pLight->Diffuse.g += 0.1f;
- n+ B0 v; v# E! y# d ] pLight->Diffuse.b += 0.1f;, D# D% s: a; \: f p
// oˉè* ??à? 2 k. l" Z3 q6 u& U" h
pLight->Specular.r = 2.0f;. |$ Q! e( |0 J+ H' K
pLight->Specular.g = 2.0f;
* n- G/ ]6 K/ m1 I+ ~( T9 F) U pLight->Specular.b = 2.0f;% \+ @, k; @4 N, s8 E- c/ C+ f. n
// á?oˉ
* H2 |% `/ C# I pLight->Ambient.r *= 0.9f;7 P( d7 G* T7 }6 J) C% }
pLight->Ambient.g *= 0.9f;
. ~. G+ {( i) S7 i; H: N O pLight->Ambient.b *= 0.9f;" J4 c2 b2 g" @5 q
4 c4 _' P/ ?$ s, K9 B memcpy( &m_light, pLight, sizeof( m_light ) );3 [- S" V& H: {" x# b
: w- @2 Y# Z) d' i/ @2 U9 H: @, n
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
- v5 i3 p' t( P1 H9 J3 L/ X5 A pLight->Appear( m_pd3dDevice, TRUE );
5 K k; G& T; k( U3 ]; F2 y% ~. X
, n# T) C E7 M& d P6 R DWORD dwR, dwG, dwB;
9 p' N9 x6 l$ Y7 J- F5 c" g. q dwR = (DWORD)( pLight->Ambient.r * 255 );7 _7 B0 h/ k. p4 M9 K8 ]+ G
dwG = (DWORD)( pLight->Ambient.g * 255 );, q9 c ?7 z( m2 b) H
dwB = (DWORD)( pLight->Ambient.b * 255 );: [& A# w% }/ Q+ C3 s ]
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* C. u7 ~! N3 e, I } R1 u4 e" m& n
}- }7 }8 S! m8 `' P- |( O
else: L, ~6 b/ [& x4 M. c: H$ I$ D
{- z( {' |% ^) h/ u
if( pLight ). M j: e! U& a: A& a
{, G& F# l( U+ i. T8 }( F9 L7 \- v; P5 ?
, \8 e' |. ^5 W: Q
int nHour = 8, nMin = 0;
) N1 |3 P7 J; ` #ifdef __CLIENT% f' _' S8 k) ?! A2 G0 |
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. F$ ^; r8 a$ C8 J8 W; _( u# @
nHour = g_GameTimer.m_nHour;
& x, J% D# S; Y3 r: y9 }" L nMin = g_GameTimer.m_nMin ;
: S' v& N* v7 F4 M #else' D" T) N2 u: i; e; s
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.- L: X; ^9 C" k5 ]- L2 A3 f8 u- X: X: ?
if( m_nLightType == 1 )
i" r' m& A( v+ e nHour = m_nLightHour;- L; y; n: [! N" |5 W0 b
#endif
6 W- L- }+ W+ K6 ^3 E9 U/ j nHour--;
6 g! F* Z- E, e6 m2 l+ M( x8 ^ if( nHour < 0 ) nHour = 0;% z) [! T; u$ _
if( nHour > 23 ) nHour = 23;' d3 R" g l ?
, d' r' h) v2 g/ i5 o7 _ //if( m_bFixedHour )/ d: r$ q; L- U$ n8 J
// nHour = m_nFixedHour, nMin = 0;8 u+ D( }, U0 k' ], f
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' }5 r V3 J, _! J: b3 e LIGHTCOLOR lightColor = m_k24Light[ nHour ];
) @; Q4 d" C$ w2 f |+ \* M6 l' s1 g9 x! ?' ^( ~2 z8 y x' T
//m_lightColor = lightColorPrv;
/ ^4 t0 |& c4 P1 Y+ q4 e! r2 | lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
$ n! t# h' A$ D" z/ X4 g$ I lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
( l7 F& D# ~) J. Y7 O; N( L lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;! M4 v) V5 L7 R) ?
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
$ k# M. U/ K" u8 `; k# L lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;0 m% ]3 ^! H) x
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
9 C$ O' _9 C, Z8 M5 t( ] // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
7 G6 {' J/ |- l4 ^' \
) Z- _4 V3 B1 h/ o // à??μ oˉè* # c/ K7 }3 Y2 K' x
pLight->Diffuse.r = lightColorPrv.r1;
8 b1 k9 u" u t! A/ M8 A pLight->Diffuse.g = lightColorPrv.g1;
- e& \4 _/ N( ] pLight->Diffuse.b = lightColorPrv.b1;5 p# r7 R/ x+ D8 o0 W7 B- z9 k
// oˉè* ??à? # N8 ^) j0 d% w# O/ X; @, A) L
pLight->Specular.r = 1.0f;. s* m5 H2 k& P5 ^) U
pLight->Specular.g = 1.0f;$ k6 @$ P/ k! Z4 ?0 z
pLight->Specular.b = 1.0f;
+ I5 v* B! X8 q6 q1 v% i // àü?? oˉè*
' A/ _& d' P/ S1 Z+ L* S9 z pLight->Ambient.r = lightColorPrv.r2;$ p1 X8 Q" p8 l
pLight->Ambient.g = lightColorPrv.g2;5 o* }7 `: Q+ E- t' I9 b' A+ E
pLight->Ambient.b = lightColorPrv.b2;$ P! U9 M& C4 Q' x7 C0 B
5 t/ S7 I* ]$ ^2 L
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
) |2 p' p* K0 a {% M* [6 W; [+ V; D6 g2 f
pLight->Diffuse.r *= 0.6f;% ]2 d$ @/ G7 \
pLight->Diffuse.g *= 0.6f;
3 k& q! J* m+ ^$ N% {/ K) E, z. @ pLight->Diffuse.b *= 0.6f;) J, u$ y+ o4 W0 L, ?6 _
pLight->Ambient.r *= 0.7f;
+ n& \" E% \3 h: ` pLight->Ambient.g *= 0.7f;
0 j7 {8 Z, z9 w: \, k8 F pLight->Ambient.b *= 0.7f;
( y( d0 a( g% } r4 n* } }9 t. M- ]! i; g$ R( [% c I0 f- w E
4 V' Q9 o7 U& P: \; A2 S#if __VER >= 15 // __BS_CHANGING_ENVIR
/ o7 m1 _% I& k5 [" p if( g_pPlayer )
& A; `. l6 o8 _1 j HookUpdateLight( pLight );
( r- l! H6 Q5 h' b C#endif* _3 H0 x2 _# K' t+ E/ }7 g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( b3 H, d) \* o
h! f, x" C# @% B. I/ q6 h
#ifdef __YENV/ Z* Q4 c+ d( \( w8 I$ O9 o( t- v7 @
pLight->Diffuse.r *= 1.1f;
4 b) m/ q- c3 F pLight->Diffuse.g *= 1.1f;5 _* b/ N$ m/ o4 V% z
pLight->Diffuse.b *= 1.1f;' b. z, m- N0 u ]/ o8 \
// oˉè* ??à?
" O. U' h; o, ^* R pLight->Specular.r = 2.0f;
( I* I9 H1 r) T* ?1 |/ p pLight->Specular.g = 2.0f;
, s9 a0 Z4 J A+ i- Y pLight->Specular.b = 2.0f;
7 J- m( Y' i$ B5 w- j& Y- P" { // á?oˉ 0 H- K% Z1 j O; Y5 d4 N% C q
pLight->Ambient.r *= 1.0f;
0 G, ?0 q2 u! a( v4 P" F( t pLight->Ambient.g *= 1.0f;
* w. J1 ?" w7 Y9 W, h6 e% o4 J pLight->Ambient.b *= 1.0f;+ i( @: c, U8 {% M) O2 s% k
#else //__YENV& M% o8 i) x+ j8 X" E N
pLight->Diffuse.r *= 1.1f;
) v ~( {* J. S. G5 i6 A. s pLight->Diffuse.g *= 1.1f;2 F. e1 R! G9 H2 s3 E- r% ~ Y
pLight->Diffuse.b *= 1.1f;
1 v0 n( b4 U6 ?) s9 p // oˉè* ??à? & o- T' T+ f0 E, ~
pLight->Specular.r = 2.0f;
" D: B) Z% r& O1 V5 J( f) j( Y pLight->Specular.g = 2.0f;
, i! f- ~. x" ^8 f* I$ P* Y pLight->Specular.b = 2.0f;
5 d: X% {% j3 A+ s: ` // á?oˉ # `& P, M1 h7 ^1 r. }& G' _! x# f; y
pLight->Ambient.r *= 0.9f;7 H/ e2 }9 `5 R: M9 `% W5 _+ X
pLight->Ambient.g *= 0.9f;0 m/ I$ @& w; G8 S
pLight->Ambient.b *= 0.9f;% [; r/ }4 { D U L, D/ R: N& ?
#endif //__YENV * Z% w# U ?- S9 D1 _6 F# _
. p; I) Y' z1 g Y
memcpy( &m_light, pLight, sizeof( m_light ) );
) [! k: M+ J8 z3 o- K$ a* N & ^* n6 X; e) |( h7 h) f
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
: f$ v: E0 a& n D3DXMATRIX matTemp;+ o4 S3 L1 l h: ?
static const float CONS_VAL = 3.1415926f / 180.f;
& Z3 N) ^/ N" e3 a3 X& ^- o. ^9 |8 y4 H1 P* B. v- H
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);3 w9 k% E. B& h
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp); \; S% I5 ^( h, n: y5 w
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); , M, G! J* ` L* D3 E6 x
pLight->Appear( m_pd3dDevice, TRUE );
: a. f& f: w- q8 q2 X* N" f
2 f% `: M* f+ L2 C% s! {% I // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 J$ O# k* X/ u/ ?2 U: i
// D3DXVec3Normalize(&(vecSun),&(vecSun));3 M0 V% i6 \4 ~, l" _
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); & x- |1 \ `1 w1 h; p5 `
/ P5 g- j* I5 V, N6 Y/ V' N- q4 [ DWORD dwR, dwG, dwB;4 Z/ G$ c. Y9 Z* G, v
dwR = (DWORD)( pLight->Ambient.r * 255 );5 I9 C9 p, C- F9 y- ~& e P
dwG = (DWORD)( pLight->Ambient.g * 255 );
# q* D3 S; N: Z+ w3 [ dwB = (DWORD)( pLight->Ambient.b * 255 );, `" ^; U/ j1 N( V& k% `
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 1 ]3 n& ^* J7 c) D
}
s) x7 {/ p, v) f J }# {2 Y) w. ?! p$ B
/ k/ F e! ~: r% A7 u/ d
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );. h# J1 D2 ?# D
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) );
/ S/ H( a; \7 j |+ w0 n; b ::SetLight( bLight );
: g5 x2 I8 d# R- z& B# a5 z: @. z. W( f& n
// ±ao? ?D?í???ó á¤à? 8 q' Q5 p$ w+ L0 I- i, \
m_pd3dDevice->SetMaterial( &m_baseMaterial );/ }9 S2 c. |6 q" e/ Z
( X' b0 ]2 q" l( S* Z#endif // not WORLDSERVER5 F3 g5 @0 c! \" Z. b9 y% e
}) v" o4 @, j0 ]: y# Z0 i- _
并更换
$ c" S$ O5 p" V) ACode:
4 a: I z1 t; Y4 U__FLYFF_INITPAGE_EXT! j1 b$ Q) X; N- d# J/ h6 W. `
定义
. Y! a7 F2 R6 e. J9 {- o5 s1 C5 B* B( R+ t5 |. l
9 Q/ f3 n3 r4 B9 v( j5 _* v
1 B% _* u. ~4 z2 J, o
, s( ]* Z: ?! t% b现在终于删除我的狗屁加速...' d$ J; f3 h* R+ d3 P; Q+ w
# _/ Q! z; x: g: D% e5 r6 K4 [) _* K4 s4 D8 x' y# g1 _. L/ z
+ E: V8 Y3 e* X+ J1 [
|
|