|
食品车:) k$ E3 {3 [" u) J5 S
尾翼:4 T+ \( F0 |- `1 Q
3 A! a6 ]% ^1 B9 i5 \: _& c/ \6 X代码:0 t, r' C/ l: z7 S3 x/ P1 N2 R/ g/ ~
CWndAutoFood::CWndAutoFood()* i& D- H4 x x5 u: V" v
{
6 [# E6 {" S& O5 y m_pItemElem = NULL;3 f9 p& N; Z1 U- X/ Z8 Y
m_pTexture = NULL;
+ X2 v6 E2 `* a! z) j q bStart = FALSE;
* W1 c7 A1 u' r# P5 l) ^8 f}6 o9 ~. {, o6 k; s& f j; f% Z
/ k( z6 Z4 K n9 _6 O
CWndAutoFood::~CWndAutoFood()( ]& |+ C# u5 ]: r/ J: v8 f) t
{
" D! V& S. V3 w. M AfxMessageBox( "AutoFood ist gestorben " );9 L$ x. h" Q" D2 \0 ~! Q
}
) Q7 [6 x. R+ J! ~8 h- i2 TBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )$ y% X' U5 |+ r5 o- _: V4 e9 a
{ w; X# K6 u3 e) D5 O! |8 s
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
9 T9 Q2 F. Q0 K: X% R/ X}
, z0 r" i6 Y, `7 M9 e" c% _3 F8 W$ Z* F
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
9 m& W! J% B( R' k" o+ w/ y{
8 Z- \ a; ]; y5 Y) E LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 _9 W7 \; g4 a$ W
CRect rect = pWndCtrl->rect;
+ o9 L, Y+ `# @ if( rect && rect.PtInRect( point ) )
; W4 B/ h8 W9 M% ]4 T; m {9 ~% v) p8 [( v5 r
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
3 ?2 C4 j9 U9 p' S l if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
6 S( L' K4 v" z8 a) E9 P0 G: \ {: c0 _+ F. O( J3 C- G) s
if( m_pItemElem )
3 d' M/ {3 m1 O' S, @ {
; Z6 P) N# d- @, e+ W m_pItemElem = NULL;
7 W, Z0 F* J" W/ L }
8 z j; A3 r; j+ J% V% n8 N$ S1 L m_pItemElem = pItemElem;
! u* ?, D$ A" l% q6 K m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
# K2 N3 n! o! u }else{ i6 A$ A0 q( _
SetForbid( TRUE );4 j( ^7 ?: x7 `5 S# y1 V
}
) U- s1 t$ @8 G% k. C }else{2 s# E W$ I% G0 `: \; t* t
SetForbid( TRUE );" f5 x. L% _1 m' ?
}
& b8 S9 n( a( b; x% | return TRUE;! `+ T* w9 \! n3 q
}* l& {+ x: d+ e1 z! s
( o0 |5 d o$ v* R( f9 Q# y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
) J: s n. u1 R# C# @* x{$ L9 l# ~5 r2 d$ o* S
switch( nID )
1 }1 P3 Y- C. e& D2 q: p3 a9 t {
% e2 v) ?; ^8 h8 v% Y$ H case WIDC_BUTTON3:4 d# {1 [& S; _7 `2 u2 D& g/ @
{
' Z J2 {: y1 |- f bStart = TRUE;7 Z" W+ r6 R" f9 a$ ]! P' V+ C) _1 p/ H
break;% u6 a& R! E; S6 m1 N, T) M0 x
}: P; |, K; X1 p; x, Z, U
case WIDC_BUTTON4:
5 s7 I3 @# j- ^6 z {
0 T1 s/ f! l3 s3 ?3 O0 s: K/ g r bStart = FALSE;! Z9 y3 i5 V0 L( T+ W
break;
V# L# e% C6 W* T+ V; \ }, y1 w" Z7 Y* n& x$ ~
}; H/ D( z! U/ u$ v2 i/ Y+ m. K+ W" ?
return CWndNeuz::OnChildNotify( message, nID, pLResult );
5 K6 w: ~8 O5 c v5 J; u% r} & s5 K( K9 K# r7 @6 r- ]1 E) c
void CWndAutoFood::OnDraw( C2DRender* p2DRender )) [: ]" \* l1 O+ j/ M# U- E
{
5 C' G \) L2 S4 Z0 ^" Y7 ^ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
7 k/ K9 t! c. R" c' p if( bStart || !m_pItemElem )' @# _: i. K6 k. e8 V
{
: g3 e$ }2 [8 S `5 R# j& f- [7 T) l pBtn->EnableWindow( FALSE );7 [2 D. p' j" r# B+ N' N. Q
}else
/ M8 }/ U b' P! j# Y pBtn->EnableWindow( TRUE );
) ?( ^/ P6 x# V, E' ? if( m_pTexture )# y8 t$ F# @3 G6 l4 x; w8 j
{
8 u: c+ {: g9 T# g: \ LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
{ @. r' y W) i# B" [8 [" O/ C if( wndCtrl && wndCtrl->rect )
2 `) E0 T* u7 ]9 p, k3 }" f7 B& @ {6 R( O1 L& V* m1 S
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
6 T4 Q4 ^, x; ^ }3 J Y6 g, {2 Y9 \
}
' m5 i" t4 \8 D* a. C6 B}
+ V4 u; O7 t1 e, M4 B; E! e" E6 G0 b1 t6 ?0 q1 D D
BOOL CWndAutoFood: rocess()+ l! [; f1 i3 T, y0 A
{# j1 U5 i U3 V3 \3 N- N. \' K/ c
if( bStart )5 F3 c. Y! @: b. W$ n% S
{. ]% E( W$ A0 q+ \, p; b
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
8 G1 h) O0 B/ `/ \ {3 ]9 v. i; r% K0 `
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )3 H. e7 T6 D: D! I0 r) u9 c" ~
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );1 d% I9 L9 ?) j; E5 A* l
}else{
& N( q; T* W6 M: s/ V, m) z bStart = FALSE;
% \8 Y7 a! [+ V7 ?: J/ n. A m_pItemElem = NULL;
5 f( C6 g) D7 a& ~' h& f }4 u: A& ` E+ o3 y5 S3 x0 X2 T# {
}2 t0 h ^# n# ~3 r2 J, d* _
return TRUE;" l: |7 E" q2 U+ w, A! ^$ r R' i
}
* b' z- n v N# V( E7 w9 h* o
( ^, G! f P3 z) ]& k登录视频废话:
5 f" O# P; p' @7 |+ m# F5 O! [9 \9 ~尾翼:9 S; a' J0 ]- \. _) U1 E/ P
$ g* M6 \- z. R( e3 a- e$ H r" d$ r/ ]代码:
7 ^! [7 a8 X) R7 z; E0 x. a# ]# _ `3 d3 R7 }
void CWorld::SetLight( BOOL bLight )" _8 R4 n# D) [2 |, E
durch
) B, O' }5 @1 e; Z* cCode:1 ~. D5 W7 N* ?- s
void CWorld::SetLight( BOOL bLight )
9 K9 ~9 a# c" p! U6 S{
+ t+ r; N/ R: s8 C8 _9 v //ACE("SetLight %d \n", bLight);6 k% w% Y4 Y+ Z4 \
6 N" C n: h" e/ e! I4 n#ifndef __WORLDSERVER
6 b' w% s S+ P9 l) B3 \ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);9 T( Q$ m- _+ m
CLight* pLight = NULL;
- S/ b+ k6 L R9 A# k3 A, {; s
1 P: B3 t8 g! `3 |2 J3 M: z D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
- C1 [7 B0 w# z3 V+ y- k. J3 C+ _
pLight = GetLight( "direction" );2 d% M3 Q4 Z2 c6 m$ T- m
* B H' B1 S( J* Z( N# \( u2 r! I( y
#if __VER >= 15 // __BS_CHANGING_ENVIR5 p- o* M( K6 e
if( g_pPlayer ){( y4 o" w# h! N$ y( M$ g
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );: M( }1 t# a( I& i7 h
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
6 z& |" ^0 J) T. ?: _0 o2 u7 D {
/ ^# D; w C. V' u if( pLight )1 q0 a1 o3 @- R$ x) n) q% ?
{
5 S: u; n9 q) P: I" x6 j pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
6 p( Y6 L' G) v pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
/ O8 F$ _9 ^5 p9 U3 P$ a pLight->Ambient.b = pInfo->_fAmbient[ 2 ];# h4 c0 A! B5 P: d7 b
" K2 X( c8 i0 s5 ~8 ] pLight->Specular.r = 2.0f;3 q! Q4 F9 Z2 {+ d, m# g: L
pLight->Specular.g = 2.0f;
1 p1 y4 D" E4 H2 `; m- v pLight->Specular.b = 2.0f;
6 t3 H" B9 P' u6 B- o ) @. ?- G/ t4 r Q4 X# t6 N/ h5 t
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
. s! G& [" E/ T) v% c pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];: E* @& s# X% j, _& S- ~. |, N
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];4 }$ P! Z3 v) F8 u
& |3 U5 O; T n$ J: O9 t. P HookUpdateLight( pLight );
8 M3 \* x- A( P- s! Z( M- H3 f: H; Q5 q- ^! [
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! I8 B9 ?, p' Y, F, ?
5 }- H: g) @' |+ p$ P, x pLight->Diffuse.r *= 1.2f;
( L, z9 i: R% h) V9 W4 A9 G pLight->Diffuse.g *= 1.2f;6 L" D$ |$ |( Y8 k p
pLight->Diffuse.b *= 1.2f;4 x3 `4 }4 h* r# f* T- \+ x
7 W8 \& H5 U4 O4 ~2 H9 D1 U pLight->Ambient.r *= 0.8f;8 m% Y* i3 t" {" o1 [& v# O" @
pLight->Ambient.g *= 0.8f;2 o$ _% z) T0 z
pLight->Ambient.b *= 0.8f;
6 s/ a% m; C0 @* B5 g
0 [) h9 y2 Z$ F# r ?7 l memcpy( &m_light, pLight, sizeof( m_light ) );
% }3 R( A4 c" y/ A
9 L: u( z% x. j D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 p F, H$ R4 D# i0 f
D3DXVec3Normalize(&(vecSun),&(vecSun));/ E) k, _6 U( n A8 }4 M8 i9 n' L
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
6 H0 m7 f$ x3 ^) i, K" e9 C pLight->Appear( m_pd3dDevice, TRUE );# u- W- l: B' d0 s
* u* \# Z3 X9 F$ W
DWORD dwR, dwG, dwB;
- a8 }# `# z5 C2 e dwR = (DWORD)( pLight->Ambient.r * 255 );5 D4 f8 I" ~* l; f8 E; V$ w
dwG = (DWORD)( pLight->Ambient.g * 255 );8 Y9 Y; X, d+ E: Y) L
dwB = (DWORD)( pLight->Ambient.b * 255 );% [: a9 m. {( Z( Q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ A: ] p7 n1 i3 i
}
5 z4 n: `- y- ^1 U6 ^ }
5 S+ T n B- o( ]; K- w2 M! U }& B1 `* d5 K+ V+ {' |6 r. X" z( T6 _
else/ L7 ~! H, E$ a3 K1 I
#endif
, E) Z( n% h; L( }4 c* z' l! v
3 }- j( K' d5 A9 x if( m_bIsIndoor )
7 \' c6 V; N% R- q: r) Q8 g {& u8 E1 _' ?: X6 w
if( pLight ); `5 P5 G7 _* D; V
{
& h/ ]" q5 |: C // à??μ oˉè*
( ^7 R! k& \0 ]# B pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
) W0 @! {8 \) B" M9 s pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;7 ~; _+ d- X+ ^# ?$ |
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
8 v5 \$ X, P& _" u, f- R5 E, e: e0 t7 ^( ^
// oˉè* ??à? 0 A2 k8 m" j# R4 e5 w9 n; \
pLight->Specular.r = 1.0f;
3 W+ k7 r$ U: I' ~$ Y: A pLight->Specular.g = 1.0f;
9 g# h I9 B; k9 O; G* q: a pLight->Specular.b = 1.0f;
& k- W5 G! S% \! B( Y7 q D) ~2 j // àü?? oˉè* / b1 }: }/ v! j, g
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
0 N) _, L7 O+ X9 Z/ ?; R, }9 a pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;. p0 _# |7 h1 |1 ^: k8 [
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
2 o) z# {( F8 _: L. V0 H9 \
+ @9 B1 \+ O0 S! c" [ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% B6 m- @% }% b% e9 d+ J$ g
{% N+ |) q8 C/ s: {8 Y" z. q
pLight->Diffuse.r *= 0.6f;
+ E/ ]) i# K* X2 g) s pLight->Diffuse.g *= 0.6f;
$ o5 |2 ~- }5 _9 Z A9 H, K pLight->Diffuse.b *= 0.6f;; \% f3 C0 x$ R* Q5 y
pLight->Ambient.r *= 0.7f;
3 X7 E8 n, v$ G6 n3 L D8 ]$ C pLight->Ambient.g *= 0.7f;
: \2 ?* W- L- ?- u8 g( S @ pLight->Ambient.b *= 0.7f;
: J1 Y* P: h3 Z v. S. x }, _8 x5 @; X; h
7 t( S: j% f- [3 y! n' G
#if __VER >= 15 // __BS_CHANGING_ENVIR X2 R- B; C$ F6 M! u, g, o
if( g_pPlayer )
- J- H( M5 h( v) r( H8 \ HookUpdateLight( pLight );
4 M: J3 @2 q) t0 C/ a0 a) \#endif3 _: z1 R1 N. Z+ Q% A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ B' u8 n) n j
* N3 N' v. V! t0 ?! @
pLight->Diffuse.r += 0.1f;" K" o; E) ~* x) n* {8 J6 v! o
pLight->Diffuse.g += 0.1f;
0 |' s5 D" g* f. v1 M pLight->Diffuse.b += 0.1f;
5 N2 g6 l; m; q3 d // oˉè* ??à?
2 Q8 \6 ~ a* ] T' X, t i4 b& c pLight->Specular.r = 2.0f;
( |" l: ^- i- m: B# z6 Z4 J' l pLight->Specular.g = 2.0f;) R3 @2 z$ v( G/ ~
pLight->Specular.b = 2.0f;
# L% I$ k' W3 ~" Z8 }$ w // á?oˉ
8 m% E, Q, S9 b T3 m8 \' [, W& g pLight->Ambient.r *= 0.9f;
& [( o# k9 T; F8 J pLight->Ambient.g *= 0.9f;% _6 Q9 K$ F+ ?2 a7 _, x
pLight->Ambient.b *= 0.9f;
+ j5 _0 ?& i+ ?+ b8 Y9 i- C( Z V( f: e( Y
memcpy( &m_light, pLight, sizeof( m_light ) );2 \! Q9 W# ^2 F! ~
6 ?7 g ^. s" Z6 n* Q, E1 } pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );& i4 Z8 ^# s- C+ m
pLight->Appear( m_pd3dDevice, TRUE );$ ~- I/ E) S" y2 K
J0 B9 N# x+ K' |# j DWORD dwR, dwG, dwB;1 M; t' C: n; J0 b- k$ x" z, Y1 d
dwR = (DWORD)( pLight->Ambient.r * 255 );
* k' Y( ?/ Y9 p8 N" y$ u* R dwG = (DWORD)( pLight->Ambient.g * 255 );
$ B! k6 ?: Y( }, [9 w6 n: z dwB = (DWORD)( pLight->Ambient.b * 255 );3 t' i0 T/ x- S* O
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );, q: ~" O* l+ V) E3 v. `8 g: C" T
}
6 }( G9 _% m/ a4 O }
6 e* {, ~2 Z2 [; i9 P* y) K6 F# R; ?1 V else' W1 B* G m' g; t, m6 f0 h
{6 v+ m: O4 T' @4 {5 }0 C/ I
if( pLight )
0 r. F' ~2 ^/ s) \+ O" j {
' b5 f" K& Z* f/ r2 f
1 h& h N- B" Z- X! u' `- j! b int nHour = 8, nMin = 0;7 ~% G- B0 Z& K% W
#ifdef __CLIENT. ~/ D2 q5 W/ L
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 3 I: S" u0 [9 @1 H
nHour = g_GameTimer.m_nHour; e% Z) h' T$ [1 Y8 z
nMin = g_GameTimer.m_nMin ;
) }1 w! k5 N0 O2 N/ H8 V( S- Y #else$ |; i8 [1 W- v G% c0 K) Z/ i: o
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.7 r1 W: [: D4 S r6 G5 q
if( m_nLightType == 1 )
. @, b! o! m5 D4 k: h) x nHour = m_nLightHour;) O2 Z$ \/ i3 H6 t$ }$ k1 r: L, O
#endif- r3 X$ N L8 D# r' H% H
nHour--;
& |- l H7 ?1 F6 S' e6 a: h" B if( nHour < 0 ) nHour = 0;' C! K3 u7 S& j' |. Q3 P
if( nHour > 23 ) nHour = 23;
# X: j2 a6 i: X/ L2 [* \. ^
2 g B3 O1 Z7 S //if( m_bFixedHour )# R5 M) f4 a3 G. M( }6 }9 }
// nHour = m_nFixedHour, nMin = 0;
" w3 {/ G& ^0 X+ C& W6 J" g LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
4 t$ j3 I# i7 r LIGHTCOLOR lightColor = m_k24Light[ nHour ];/ O9 O& W) K; a
; o# |- K( j" { //m_lightColor = lightColorPrv;
. Z/ Q( E7 H- ]. U5 A7 \ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 o' y3 N( N7 ~ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
9 I. v, `1 {1 I& V1 Y3 N lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;4 L1 @) {2 Q# f8 m. l
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
S, O0 u% [% M lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
; Y; Q' i# i, q0 e; F5 E lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
J9 a' V; g, i. t) u // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)0 O: U: b/ Q4 @+ Q/ M+ {' W$ c
& U" ^" J: W" i! Y, c // à??μ oˉè*
" F$ |1 E. C U n) p( I pLight->Diffuse.r = lightColorPrv.r1;4 K. V4 S. {% |
pLight->Diffuse.g = lightColorPrv.g1;: R5 P# Z- a: k8 y* y" N+ p
pLight->Diffuse.b = lightColorPrv.b1;
7 S3 n7 q2 i5 r // oˉè* ??à? # O) i4 G7 |' ^! M+ _
pLight->Specular.r = 1.0f;
8 K6 }# q; }2 R X& M pLight->Specular.g = 1.0f;4 G( V6 p6 L7 W
pLight->Specular.b = 1.0f;% z3 E5 a. K2 B; J
// àü?? oˉè* " w$ \- q& n: H
pLight->Ambient.r = lightColorPrv.r2;3 t+ g) Y- U4 p* s$ K+ Z
pLight->Ambient.g = lightColorPrv.g2;( _2 q" O2 o9 k0 k6 s
pLight->Ambient.b = lightColorPrv.b2;/ r/ d- B4 a m+ E, _# X/ j
3 d9 a. e' U% x( G8 h3 j if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ |$ G4 M6 D1 d
{# M U' o: z0 q" j
pLight->Diffuse.r *= 0.6f;: g2 E" W0 f. i& e4 r9 O5 Y
pLight->Diffuse.g *= 0.6f;0 D- d8 r6 m# q9 y
pLight->Diffuse.b *= 0.6f;. x4 Z9 ~$ ^, t0 y
pLight->Ambient.r *= 0.7f;
$ Y! S6 s9 \9 A, X: N pLight->Ambient.g *= 0.7f;
; I' E9 D& u. J4 m, q5 H pLight->Ambient.b *= 0.7f;/ q1 ?( |1 G& N4 |1 T) Y: u
}2 H# R2 e* p1 V5 a) |
4 y" c4 G s! u! W8 D, @
#if __VER >= 15 // __BS_CHANGING_ENVIR
1 y1 x* J0 a# ]: w if( g_pPlayer )7 T: F0 i( D G+ h
HookUpdateLight( pLight ); 2 S. G; R) P+ J3 E; Y5 y
#endif2 r- y$ X5 I u# I
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; D2 x7 f: _9 v
% Q# R, P7 e: D8 p' A; w#ifdef __YENV) t1 g* G- K1 D0 K5 L- i; `
pLight->Diffuse.r *= 1.1f;
3 `1 s9 ^: P& V9 @ pLight->Diffuse.g *= 1.1f;" I5 O2 t$ w6 s. `7 {" g
pLight->Diffuse.b *= 1.1f;/ ~3 U8 @0 ?6 K1 w* \" G8 O$ M
// oˉè* ??à?
3 T3 X* h3 d' o+ \. i5 ? pLight->Specular.r = 2.0f;
) v2 B! |4 k4 S8 w, U/ H+ f pLight->Specular.g = 2.0f;7 }4 |4 ]" ?' S, s
pLight->Specular.b = 2.0f;
3 l3 F) C- I4 V4 {* L0 c# Y* E! l/ Z // á?oˉ $ f, F; C7 U! A* w
pLight->Ambient.r *= 1.0f;. ~/ r4 A2 l" K0 X. V/ D, t3 x# z
pLight->Ambient.g *= 1.0f;
& x! U# T% a6 e+ Y& y0 |4 {% Q pLight->Ambient.b *= 1.0f;% C- Q( o2 A# _1 w G5 N
#else //__YENV
% E6 ^$ r1 {2 i- ?+ s) K pLight->Diffuse.r *= 1.1f;
* K$ c+ }6 K; w* w4 a6 K, O- _ pLight->Diffuse.g *= 1.1f;
6 w8 R% K8 B& w5 W# ] pLight->Diffuse.b *= 1.1f;6 }/ x% n! { S) {. D9 c
// oˉè* ??à? ( @7 A6 M- [# C6 o- |- U
pLight->Specular.r = 2.0f;
5 h. U ^% f6 H+ \0 D pLight->Specular.g = 2.0f;' N% r6 H& T- T% R
pLight->Specular.b = 2.0f;! W9 B c# C5 a0 G" ]) f3 M
// á?oˉ 4 {0 h& p1 e( S; ]" g. p% i
pLight->Ambient.r *= 0.9f;
- Y, U7 L+ G; S1 U8 J3 u r" q pLight->Ambient.g *= 0.9f;
" l1 g: a4 i1 J pLight->Ambient.b *= 0.9f;! ~# n5 |/ o4 M
#endif //__YENV
4 n$ w" F* p \. r4 B; X
. F9 }$ U6 x' n6 J memcpy( &m_light, pLight, sizeof( m_light ) );2 x( T& R" V6 ~4 `3 r
/ ^7 v. R. b3 V
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
! y1 |# ?5 j; O5 _4 `; `0 ` D3DXMATRIX matTemp;" f% ]0 L$ V2 _2 g0 r3 ~, j4 q0 v
static const float CONS_VAL = 3.1415926f / 180.f;
, Y+ H7 k/ T; q2 a% H4 I7 ]
% f2 e# k5 ?6 r) P/ w) B6 G D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
+ O0 }4 Q! [+ r+ I( x D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
+ p' C/ Q- n: k4 F' S/ }2 _" P0 W pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 8 c' Z5 v' Q/ Z' \
pLight->Appear( m_pd3dDevice, TRUE );
( E) c( W1 B0 p, h$ L0 F- b1 n% z; G. F+ M" W% h4 n3 }
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! P8 R% k& g K) }4 O9 a! y
// D3DXVec3Normalize(&(vecSun),&(vecSun));
B" P8 n U9 L+ \ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* o, d/ K6 V& n( L+ Q, l S) i+ u3 n# H4 ~
DWORD dwR, dwG, dwB;* v+ ]: ]" A$ h
dwR = (DWORD)( pLight->Ambient.r * 255 );3 |& Y$ j7 \5 j$ i% X' W. q' y0 ~
dwG = (DWORD)( pLight->Ambient.g * 255 );
9 S Y$ l' s G9 o8 @* U5 M" I dwB = (DWORD)( pLight->Ambient.b * 255 );
. _% ^/ _& ~5 A4 L" L+ m* D dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 1 l8 P9 g; }9 j+ I N
}$ F( E+ S0 z: q% q; E$ s( L
}% q. J3 ?& H, `& I
* Y3 E( n( n0 m+ |
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
" ]2 n+ p5 d- P$ q- `$ ~ 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) );
: _: ?* F2 }! D; S: M, h% L ::SetLight( bLight );4 l, O v. ?( T$ C x1 u
H0 ^3 n N3 [" E // ±ao? ?D?í???ó á¤à?
# n& x& C5 C7 M$ p, J+ G6 B, _ m_pd3dDevice->SetMaterial( &m_baseMaterial );
( d r# y! t+ h0 a
4 N0 g* {8 I+ v" S9 ^# o; k#endif // not WORLDSERVER6 J" i7 P+ O- `
}
. i8 V5 L' }1 I4 j并更换
- }9 l2 `5 n# d) f4 G" p9 ]Code:+ |/ i' L3 q% b2 A4 b
__FLYFF_INITPAGE_EXT
7 V$ O6 s- P$ Q+ J/ [+ `; J定义3 n V& M4 T/ K( A9 n' [
3 B$ u2 ~0 l5 |) F7 V9 ^& H Z: O0 Y8 s7 l9 G0 |: Z( S) k
) T" L w- _) w! s* w2 Q0 f) e- ^$ |! }2 N7 }& U
现在终于删除我的狗屁加速...
# f1 S" D6 K+ R2 o5 M9 j. G* D; G' _! @1 [7 w2 |
& w+ z, G2 p j' B. a
% d: t* ?9 m, ?' n
|
|