|
|
食品车:) B3 ? r# \* w# U" `& x$ p
尾翼:
- W* b- ]2 |( p: D, V. D9 ] p# B0 [' Z
代码:3 M, `4 @) K( j8 N r1 K
CWndAutoFood::CWndAutoFood()
O9 u& x1 f& f9 P0 Y+ k0 e{
+ P6 U- _% D" c2 D1 v m_pItemElem = NULL;
% W% Q1 K& _' g( ~9 t m_pTexture = NULL;
! b# k6 h; c1 U2 z5 [ bStart = FALSE;. @% V( t. e/ d, t( A
}
2 w: [& ^# G# B5 {6 Z; g& @# E+ c; J7 q0 a9 f* A
CWndAutoFood::~CWndAutoFood()
# k3 v, D4 r v+ n{& G/ I; w) M+ `" S; r4 i7 g
AfxMessageBox( "AutoFood ist gestorben " );7 a& G& @; j h# ?
}
! I7 C/ U- l8 L1 ] ABOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
2 e. E) W' s0 w1 G$ I{
& b' c. L* O9 M# ]' Z return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );# J2 h7 }# V( X$ N' H+ A
}2 t! [# l! C" E' G$ O4 J
8 J1 L3 o. D9 B( ZBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ), ^6 |! d) W9 @$ R& S4 R- ]
{* e4 U& A# q( q4 s2 t. H4 M. W
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
|& |5 ` f/ F. s/ l CRect rect = pWndCtrl->rect;, n" F) H5 v3 d
if( rect && rect.PtInRect( point ) )
+ D+ I3 \( ?# U2 E2 A+ L" U* | {( M* P! Y! V, _$ ]% ~4 I# [
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
$ e' ] f3 o: s9 {8 x if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )/ q! ~& S: x# ~" E
{9 I# m% C" b* ]8 |) s& U
if( m_pItemElem )
* Z: a0 ^1 s2 g; c; Y3 j {4 ^( _) e0 ~1 t/ M# E" h
m_pItemElem = NULL;% \* c$ v F& M4 h) ^6 I/ a
}9 |6 P; J. {, z: K. {
m_pItemElem = pItemElem;
- h8 K4 `) j8 o4 h/ F! U% C; \$ u m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
5 Q3 \% w2 o3 }- }( ?; ]* P }else{: q i/ i" a* k" O! A$ k$ {+ p
SetForbid( TRUE );
; x2 k* K/ R7 k }
1 J& F& z4 d( K' X7 T }else{
- T, R, V9 n: ] SetForbid( TRUE );
7 u. Z) E6 o! I! G. ` }
& x+ o1 J2 T0 y0 X8 Y return TRUE;3 c6 W; y( x' t6 h( {+ O: v
}
+ |- _+ M3 L2 ~2 D5 `7 \3 A: _; p, Z/ C0 F( y1 n4 _$ } @* }9 w2 L
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); F% T0 b0 j/ }% }3 P0 R
{
+ T" a+ T; n4 {0 a$ n* y! ^0 U switch( nID )
% {1 E; x2 G+ K9 F1 Q) b' k$ n {
: T; Q6 L3 H" i7 p) ^; p case WIDC_BUTTON3:" o3 s) g l! C! Q, ~" [1 Q! o+ l
{
. A3 ` m) S, h$ b bStart = TRUE;. b2 _ _3 N% e, Q5 P9 M+ F
break;1 s$ K6 h3 m: u9 A: E6 G, W; W
}- V6 d- o6 I0 |
case WIDC_BUTTON4: M6 {0 f/ K, ]1 y: `! }* K+ o
{/ T, F% H8 p# T" h! H
bStart = FALSE;
( J7 c' r( {8 `9 k! K- | break;
# w+ m2 }- a0 r" j }
" v! o* G+ B, g. _ }4 M+ ^! f G. I+ z! B, a( \1 W
return CWndNeuz::OnChildNotify( message, nID, pLResult );
" n/ f" n) I; |% S}
9 E D; I w$ V6 t9 q4 mvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
; K3 Z3 L8 Q6 Z( z: `+ c' U{
5 Z& {* |3 i* K1 `- [3 K' U# B0 ? CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );* E+ }8 l6 G, a% T; k# w- \/ w7 i
if( bStart || !m_pItemElem )% d2 g9 G4 g+ q$ I9 X# B
{7 M3 p: `, E: G; l
pBtn->EnableWindow( FALSE );" e) p9 t5 W: {
}else
! y8 a- M+ }/ Q' |* F, J pBtn->EnableWindow( TRUE );& {7 K' f$ c+ p. v
if( m_pTexture )
' }; z/ N% e B/ R6 j7 j3 | {( r& d7 q& }" [
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 D( T' u7 C( s | s: ~9 I3 F% D if( wndCtrl && wndCtrl->rect ) j, q9 G5 N3 m* D. Y+ V0 N9 [
{0 ^* [) |$ `$ u) v9 n
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
& o+ N# N6 g Y5 G }' J7 x5 m$ ^$ }5 }, C: G8 W
}3 t* K9 O6 h* m1 k9 [( m1 C$ u3 o5 r
}$ N# @. {& n' Y
% `, D; d) G, i2 A4 ]3 S
BOOL CWndAutoFood: rocess()
: j: ]# a& k0 b6 a2 w r+ {{
% m- v8 a, F4 m5 x2 k& I if( bStart )
0 c% ]- c) ]& f- k9 F" a/ s; D( M {( v; h7 H' ^5 A1 q2 I; _* e) T
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )6 k6 r# o# L, ]& c
{( @- r( _$ p* j6 f3 p- h
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )4 ` s4 S( v! W* G
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
9 k2 }- L6 J6 h* @2 K }else{
4 l! X( F* T6 k0 ]+ \! D. e bStart = FALSE;7 v. O; Z {& a# t' b
m_pItemElem = NULL;
- R6 z, D4 P2 E1 a4 h }, j! |1 T' ?! Y" V+ A
}
# e9 X% @, c7 { return TRUE;
4 R6 {2 a. H4 ?7 ^' H1 s+ N( y: k}
9 N$ b; \4 U; \6 L4 u# l" V+ C. w+ u# b# E+ N8 n" j' U4 R
登录视频废话:5 L- |/ E+ y6 W& ^. n" o
尾翼:
4 M% ? i/ p: ^) B* Y4 w8 t/ p5 J1 {1 F# H# [
代码:0 W$ H) _" ]' b& ~; x" b
: H0 Y/ F* Y* U+ f F8 t
void CWorld::SetLight( BOOL bLight )+ S3 `& E, ?9 Y5 w
durch0 R" s% Y2 C; A8 ]) _
Code:
. T3 b9 J" G7 l; T5 J0 {+ y) [/ Uvoid CWorld::SetLight( BOOL bLight )
' j I( ^/ j6 Q; |- \: Y6 C{
' h- T( P. [' S8 N3 p& W //ACE("SetLight %d \n", bLight);
. s- Z3 T% u8 s
& { K a6 s# t3 X5 R#ifndef __WORLDSERVER ; y; E8 }; D0 A) K: V! N, `
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
3 f7 [6 p* V2 z5 n' z CLight* pLight = NULL;" O4 C7 h1 C. D) Y
: C. M/ N3 k1 L8 m D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); ^$ Y, p N& v
0 a$ n5 y, I4 d! a+ Y
pLight = GetLight( "direction" );
3 I) h1 \0 k+ n- q: R; h& L
5 @$ m. F, s# T5 l: h#if __VER >= 15 // __BS_CHANGING_ENVIR
$ b- p' ^' L" C5 L& @ if( g_pPlayer ){/ h: I. ]# |) a; U0 k! F% R
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
- X0 i7 ^: t5 b$ V if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
D1 L7 R- @' h) j( x1 ]9 X$ q {
7 k9 h$ l8 v+ r2 W l3 c0 w if( pLight )
! r; R! L- Z+ P. Y5 J {" T0 U0 y, w1 Q+ o4 r k3 u
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
0 v$ W9 J, ]* m( j e! x+ s" g pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
/ m5 T* ?5 b, p& F) _5 u0 {% ?" X1 A pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
+ \8 n4 d0 z' ^/ q1 B# u# o. Y7 O" q p" T2 J
pLight->Specular.r = 2.0f;
, j) ?7 B9 P/ D1 r pLight->Specular.g = 2.0f;
3 X+ _# a9 [1 S) V# M8 L pLight->Specular.b = 2.0f;
7 C$ Z! J/ l) L( c1 K9 Z& h
8 O3 T: B, _$ }4 K1 w! x" p$ T( R pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ]; {9 ?: F q: Y5 \9 O4 U% B
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
& H9 M; `% M" s: Z7 `& U pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];) w/ ^, s5 g% ^4 p! A. ?9 _
' x" `) |/ v/ T: M( n) [
HookUpdateLight( pLight );
3 v# T6 N3 Y& \3 L6 [8 c7 F; D9 {2 A! [9 s
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# @9 a6 Q' u% E' }2 s# ^! X4 u$ ~ , F, `, S2 W" a! J8 R. ^
pLight->Diffuse.r *= 1.2f;
$ x! r+ Y1 z! x/ k6 N pLight->Diffuse.g *= 1.2f;3 m. t5 a! W) J0 X0 V- S4 l, W" m
pLight->Diffuse.b *= 1.2f;* Z9 J2 G7 S, w7 K* E
6 |8 M3 E: d V9 n7 q; U8 S pLight->Ambient.r *= 0.8f;5 x' \# C' O' r; S. ^. Q' N( {
pLight->Ambient.g *= 0.8f; R( h$ v; A, o2 }
pLight->Ambient.b *= 0.8f;
$ C d- b f# A 0 k5 X) T$ ?. w9 K
memcpy( &m_light, pLight, sizeof( m_light ) );
8 D; D4 v1 q% a# e! ^7 A
k; C% @" G% V: I9 F- g D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 g% G9 y2 u) H6 e% h* f D3DXVec3Normalize(&(vecSun),&(vecSun));
. K2 z. C! W1 I3 |0 O pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 M: T/ F5 x6 w pLight->Appear( m_pd3dDevice, TRUE );
) ~* _/ c4 R7 |
8 J L& D- b1 N' U5 r DWORD dwR, dwG, dwB;: n3 i6 }9 c- V" r( r$ O8 }
dwR = (DWORD)( pLight->Ambient.r * 255 );. [, D+ O+ Y, |6 Y1 F& G+ H5 P
dwG = (DWORD)( pLight->Ambient.g * 255 );
( f5 q0 }1 y0 S6 g4 v9 H" q# H! f dwB = (DWORD)( pLight->Ambient.b * 255 );& t& Z% |! Q+ {
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );, _5 y6 H" o' e
}+ x( U( s( T/ l& _( {* J) t
}
2 N5 y2 e, R# w6 K' @% v- e }
8 ^" @( z5 M$ h4 B, l% ]6 ~ else5 S7 _6 [. T; s$ P6 {% E. H9 C
#endif ' l' N0 ?( Y- o/ L( w) z
: ~2 m" k0 T; _: ]
if( m_bIsIndoor )
: Y# ]- m1 m% Y( T5 r! a$ I- Q I7 p$ \ {
+ x+ I9 c+ E# y% { if( pLight )$ U* }/ \& z% b
{
. j5 ?7 y5 N2 | // à??μ oˉè* 6 M2 r- s1 y8 a0 h2 W
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;- `5 v9 M) q# p1 s
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;: ^( q2 P0 q' Q8 l- }3 g
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 D/ M$ O" r& ]. J
6 \+ M6 E" Q1 M; _
// oˉè* ??à? - ^2 h5 i( G) v
pLight->Specular.r = 1.0f;
' M0 w Q2 |) V% X. a* V+ K pLight->Specular.g = 1.0f;
l% U& K) c3 }( c8 {3 x3 C: A pLight->Specular.b = 1.0f;
# }9 n0 J$ }: y. U7 ~$ | // àü?? oˉè* 0 A- }* T" e+ a8 z' i8 m
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;0 j' ]- t3 v) W f2 l2 B5 Z& Z" E
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
% Q3 N# I. ]! I' N6 W1 e pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 g8 h6 x! Y1 B3 f$ \$ x0 V! {! }2 I3 n+ S, s' @% I/ t2 o
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ F8 b- s, o7 x& ^
{9 o, A/ W+ Z, `6 t6 O# d, H
pLight->Diffuse.r *= 0.6f; J( \+ ]* G3 O( P* n- t2 v
pLight->Diffuse.g *= 0.6f;
7 d5 p& X7 h5 U: O, w pLight->Diffuse.b *= 0.6f;
/ W; A! y+ D* Q$ M4 L pLight->Ambient.r *= 0.7f;
/ a7 Z/ c$ U( `: M0 V) t pLight->Ambient.g *= 0.7f;3 J% a' L8 h4 h9 T6 t8 H
pLight->Ambient.b *= 0.7f;' Q/ B; g a( u7 R1 ^" m
}
# E9 D5 P/ c9 T' b( s o% \+ K) M1 r; l8 u1 z7 @( s) C8 }
#if __VER >= 15 // __BS_CHANGING_ENVIR
+ T. K. E4 H( F% }( Q if( g_pPlayer ): f; L" z( m3 N4 l
HookUpdateLight( pLight );! ~0 I+ v6 K' H2 r+ q
#endif
' e- n) X/ x1 j [# r U$ i- f memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );$ [, @; f7 E$ f6 b) Z( X1 z3 Y
9 A* H, |, U, X
pLight->Diffuse.r += 0.1f;$ ^' A: r7 W9 D% d& f6 s! l: q
pLight->Diffuse.g += 0.1f;/ {0 a% u+ c0 I
pLight->Diffuse.b += 0.1f;8 j# r9 ], h# P8 `# X
// oˉè* ??à?
5 d- w- v5 x8 I" p pLight->Specular.r = 2.0f;& m. P& u6 q3 d/ K6 z" h
pLight->Specular.g = 2.0f;
+ ?( S9 s1 I% w- F- u6 E pLight->Specular.b = 2.0f;# J8 L) {/ e0 b7 a! `
// á?oˉ ) ?) g; |1 P# t& G+ H w
pLight->Ambient.r *= 0.9f;5 @, e3 N* J% D2 A
pLight->Ambient.g *= 0.9f;& p2 a* U6 v3 W; }
pLight->Ambient.b *= 0.9f;
. k8 f- C8 u6 |* U; e! k! C! W& N6 g/ ? r
memcpy( &m_light, pLight, sizeof( m_light ) );
' L4 s ~- I0 i4 `5 Q; K% j * D2 n1 ~6 A" m) F: l
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );( j4 e+ e' t6 z% Q5 E
pLight->Appear( m_pd3dDevice, TRUE );( t, z( U1 Z; N2 v( ~% S
3 ]* h4 `. J: Y
DWORD dwR, dwG, dwB; Q' n4 I& ] \( _: t6 R
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 g) e+ ^- ^; k6 o$ O8 ~ dwG = (DWORD)( pLight->Ambient.g * 255 );
& t% |- ^3 O; g7 k dwB = (DWORD)( pLight->Ambient.b * 255 );$ l( @+ K; D0 M9 B, o' n! d
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" l2 _) \4 b: U5 ~: X8 ]; J }
# p r0 V$ ]' ?3 B3 Z& o }2 c: v7 I" m+ T# B i( I- o
else
; q7 Q" r$ I% ^: N {
) H1 m8 B: f. p- c6 Z7 g5 _: x& _ if( pLight )
2 v/ t) \7 t& @4 p {( j9 Y& J: Z# u& k4 h) o1 n7 x) Q
1 m0 r; r( V* V6 M int nHour = 8, nMin = 0;
! k5 S1 u2 b) d2 {) ^5 w$ O #ifdef __CLIENT# r/ v8 j& _( W0 T' S* S( G4 X
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
, A- ?- U, e5 T3 P, u8 B nHour = g_GameTimer.m_nHour;/ g0 o% Z& A/ Q0 T. O! ^
nMin = g_GameTimer.m_nMin ;5 {% u7 e4 j7 d7 [" C
#else; Z' H! M) R3 A3 J+ g' C
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù. [( {5 h" o8 y% A
if( m_nLightType == 1 )
" f( A) d/ i8 O& N. Y nHour = m_nLightHour;* P7 _0 J: {8 ~
#endif2 h$ n3 G% p) _0 o* W; N
nHour--;
0 G; ^4 I: U1 E; @2 E1 E% U if( nHour < 0 ) nHour = 0;
$ r2 h: m# t, _/ C1 y2 l; s if( nHour > 23 ) nHour = 23;
* \' d A% k6 j. T, v2 ?$ ^
. X1 I2 y2 K, ^; j1 J //if( m_bFixedHour )5 f p8 h- y- Q* ~! b; ^
// nHour = m_nFixedHour, nMin = 0;9 e1 D4 C+ j+ o: N8 w8 J% g& ^% |# w
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];' S) q& u8 D/ x; D) A
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
: G! E; m* j2 W, f
/ b7 @! k4 R7 f* i# G //m_lightColor = lightColorPrv;
% T A+ U; v9 m, D lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
9 o! h7 T) u& _ ~- i( a lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
`2 I5 `8 u- J lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;* o' C7 S4 U% O4 w; E& d# F' G
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
% z0 ~3 I" f1 ^2 G9 Z2 D" q2 h# d u3 P lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;9 a/ P! R( u" ~& N4 e
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;1 B* [, x/ ^. y; r
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% F: q6 F3 ` F0 H; U* H
& \5 ?' u; a" n$ x6 j8 x: A
// à??μ oˉè* - c8 U; Z* ~+ j N* {) F5 A
pLight->Diffuse.r = lightColorPrv.r1;/ B" @* R& _5 W! a
pLight->Diffuse.g = lightColorPrv.g1;6 E1 @6 y8 U9 C* H2 h* m% ]: {* z9 ]' Q
pLight->Diffuse.b = lightColorPrv.b1;+ q- M3 B1 q3 a: I( |% m+ [2 a
// oˉè* ??à?
7 M6 `) T8 d. {( l" ] pLight->Specular.r = 1.0f;
. i! q; s" f( ~. J" J7 R pLight->Specular.g = 1.0f;2 M q& v4 g$ b( `1 E
pLight->Specular.b = 1.0f;
& L* y: l, v+ {4 u& w3 L // àü?? oˉè*
, ^; e) b* s# F! p pLight->Ambient.r = lightColorPrv.r2;
( w1 G6 Z3 T* V, Y% p# E pLight->Ambient.g = lightColorPrv.g2;
% u' _/ g$ G8 I, Y pLight->Ambient.b = lightColorPrv.b2;
: c1 `' A* L" {) c- P1 p
! c9 l& Z) A/ ]1 t2 ?$ d" P if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
' M6 {. I% K6 }5 e* i) B N; U) P+ Q {5 I6 i: ?% X7 L+ F$ E
pLight->Diffuse.r *= 0.6f;
- Y |8 }( M+ h3 E3 n$ F( A: m3 N4 U pLight->Diffuse.g *= 0.6f;
8 P& T8 _9 [9 `& g& T- k pLight->Diffuse.b *= 0.6f;, I' w3 G7 [2 J! D
pLight->Ambient.r *= 0.7f;
6 F. c9 B8 S5 k! ?" B+ j1 z, W pLight->Ambient.g *= 0.7f;
& w* W0 v6 T K3 Q' |3 u pLight->Ambient.b *= 0.7f;
0 } |( v* N; ]3 |. R, z8 t }; B1 h& z- E" W8 f6 n. Q
& X( m$ b8 t! J) j#if __VER >= 15 // __BS_CHANGING_ENVIR% l4 J+ P5 M0 X2 |/ B) ]4 G: J
if( g_pPlayer )8 u2 R- c! k5 U e( z; m2 ~5 s6 s6 u& B
HookUpdateLight( pLight ); ' N x. Q3 W7 M m! S5 g
#endif* H! ]" n& C: w& o
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, U, S; p. X& z! W+ v
9 n) v. m' s6 n; n4 ]0 ]1 G: Q#ifdef __YENV
$ H: c+ z; M; O& O2 [ pLight->Diffuse.r *= 1.1f;
0 Z6 ~5 ^2 O4 K$ Z% d% v pLight->Diffuse.g *= 1.1f;3 C* L5 V8 @2 P
pLight->Diffuse.b *= 1.1f;4 F' D, J5 Y7 D# u& v( d
// oˉè* ??à?
2 z* P( ]3 _& w Q2 t0 t! u pLight->Specular.r = 2.0f;
: |2 d- v, K* a! l1 K, J% b pLight->Specular.g = 2.0f;
K, l) _9 T5 o W: V0 V pLight->Specular.b = 2.0f;
8 m4 L* S) C3 ?8 H4 Z. J& w" o // á?oˉ $ V0 B) [$ `& q0 }* A% J6 `' [
pLight->Ambient.r *= 1.0f;
: G3 Z( V5 Y) t m7 \8 L pLight->Ambient.g *= 1.0f;
1 [5 I0 I; }) n4 e1 T9 L pLight->Ambient.b *= 1.0f;2 \/ h! ?4 p5 A4 i
#else //__YENV
1 f: W( Y7 `2 O X pLight->Diffuse.r *= 1.1f;
# o4 i7 O- G- p/ q0 g( G& F pLight->Diffuse.g *= 1.1f;0 ~7 Z) M7 X- r( t( Q5 Q: ^3 f
pLight->Diffuse.b *= 1.1f;
' u- o; \$ f8 c9 f$ k // oˉè* ??à? 9 x+ k N3 O# }
pLight->Specular.r = 2.0f;: V9 K% X: }* }8 C4 ?# ]/ \( M
pLight->Specular.g = 2.0f;6 i' F0 t, X7 C }+ X
pLight->Specular.b = 2.0f;
5 n% q' h! I* Z9 a" }! Y // á?oˉ
' P5 j1 x- L5 g3 w/ J pLight->Ambient.r *= 0.9f;/ X$ I+ D1 Z9 k2 l( c
pLight->Ambient.g *= 0.9f;
6 [4 A9 @; u; R1 J Q pLight->Ambient.b *= 0.9f;, f% X8 N0 o( e# j$ z( H h+ Z
#endif //__YENV
$ i! C; H/ v: D, U) v! K: Y ; ]8 u& f; u+ P2 z
memcpy( &m_light, pLight, sizeof( m_light ) );
6 t P* P8 E+ Q
/ x- G- [6 \$ w. q9 C) f D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);$ k$ K! Y4 `7 k2 k1 u( C( F3 m
D3DXMATRIX matTemp;
/ p S/ D6 O: A2 W% ` static const float CONS_VAL = 3.1415926f / 180.f;
' j9 y! d% I' G
+ `7 j0 G2 [9 _ Z$ F D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);7 i$ w) n8 c( U5 r& W: ?4 v
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);) x: H& [% T1 S# {% z* e. O
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
* Z* S7 p. J# \0 }: f pLight->Appear( m_pd3dDevice, TRUE );
1 I7 t0 C J/ v1 A- @
# a/ k& ?- Q" } // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: P5 @7 ]2 d/ J% N" W8 g
// D3DXVec3Normalize(&(vecSun),&(vecSun));/ N8 O7 ~& m) r: ^; u
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 }, _% K0 V+ V$ X/ s5 A- Q$ _$ m$ a2 e, J1 @) |
DWORD dwR, dwG, dwB;7 c& t9 E/ R9 r/ }0 E4 w
dwR = (DWORD)( pLight->Ambient.r * 255 );
4 {/ F" k# G3 W9 p+ } dwG = (DWORD)( pLight->Ambient.g * 255 );
; o6 {& H. w, C2 a: i# u9 i8 } dwB = (DWORD)( pLight->Ambient.b * 255 );% A) O8 C( I/ T& K) D
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) H" ?: Y5 F. t+ a* g/ {3 N5 y
}
: {; K4 u# s6 m. x& O' P- U8 F1 r }
2 C/ ~- a: m* n( B3 D$ ]3 ? D2 _; [
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );. a; U* l& z% d0 o7 X. f. }, ~
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 S1 U" B0 I. h. ?. P, e" j
::SetLight( bLight );
# o/ R4 z/ l1 a6 Q; ^6 o. P
# M8 T" W+ L4 Z, N+ g7 J4 H$ _ // ±ao? ?D?í???ó á¤à? ) Y5 D# V3 V, K1 ~, \. A5 P- x0 S
m_pd3dDevice->SetMaterial( &m_baseMaterial );
0 J5 D7 z8 d4 h
$ A# F% ?+ x7 n0 N. B* ?) i5 Z# o#endif // not WORLDSERVER
# _( z: `+ O2 m1 e5 o) g}
2 Y: U/ _6 z/ G0 ^- p并更换0 C& f- P/ D7 K5 j; L8 r" l2 k
Code:' ~2 C s5 S% w9 j, f8 ?5 n/ Y# ]
__FLYFF_INITPAGE_EXT& ^; y2 x# L# n- `
定义
5 u' ?+ F$ Q, O6 O
; @) j8 b( J; T! J
+ G1 T0 s) b5 e+ X' I; d; s0 k4 T
, E/ ^1 w1 |) U/ j" K1 X3 Z& ^1 ?& H+ A% Y
现在终于删除我的狗屁加速...
8 l/ y1 b$ `2 Z3 `
i1 b. ^! Y: U q+ ^
5 T: p( r) ?. ?
$ K$ ^$ I. k0 s$ [" X |
|