|
|
食品车:7 _' M+ g& }; I( T2 ]' \' x; _
尾翼:
2 y% r+ j0 |$ ]( C( r: J: P& c' T, {/ N8 y7 Y. k1 P
代码:
6 P( m- l" x, v9 W. _2 PCWndAutoFood::CWndAutoFood()- {. P% N) w% Z! D
{
1 ^/ n5 S6 ~% |0 c3 B- B# p$ ^ m_pItemElem = NULL;4 n9 o5 ^' I+ j9 f+ [! g' P
m_pTexture = NULL;# }" U: n/ n: I( ?% _$ F, q6 l
bStart = FALSE;
! L1 {6 U; n* H2 U# I2 X8 ^}
2 [2 n0 }; {6 R! \, R9 a, ]) Q4 P2 L/ X2 Q" H* J
CWndAutoFood::~CWndAutoFood()
8 \, a5 A0 D( u+ l* m{/ l) V2 Y, k3 v# C u
AfxMessageBox( "AutoFood ist gestorben " );) P9 L5 u! d! T5 E) U
}
0 H8 E, s* T& j8 C9 }+ WBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
5 W1 f6 u( R+ D+ W( Y{% z! k [" K9 i |
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );. e3 T7 ~. R. _8 {; r* J1 e
}# a: \+ p, a8 b& v* Y' b* d
# k" i4 c+ `6 d9 s) UBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
+ [- L; H. h$ D6 `{
5 H# {$ r0 r) u: u2 @ LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
# l+ f% C- |' B1 R! W* ~/ N* _* d CRect rect = pWndCtrl->rect;+ {- O9 S, v; C! x
if( rect && rect.PtInRect( point ) )1 u- ?& I3 N8 m2 Y5 Y0 w3 k4 }* j
{
2 T' B. J" ^) H CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );' i. } ^2 ?$ x- ^$ J6 V+ t
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )8 C8 O% l( ?( R' w
{
5 K) _0 J$ b9 U; b! F if( m_pItemElem )& w' c6 n: y, ~8 a+ t9 C( A0 U
{
( b) `' p$ B! D* K3 d: L; e m_pItemElem = NULL;/ s0 z9 t! k5 m k, d
}
$ n; r( v0 M& q; M' D m_pItemElem = pItemElem;
! K! q* o+ M, @+ S: c, F m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );, n5 I! o! E: X6 O3 ^
}else{
n" O4 y, S. o4 ^, e$ J b% q, d SetForbid( TRUE );
* G* v5 `" D( E4 e* H+ {3 D1 v }+ }9 A# l% @% o8 Q3 c3 G
}else{
8 D: O) d% x5 n5 n/ t, A SetForbid( TRUE );
5 w- t2 r- i% v) g }6 j+ k5 {4 f* y" [
return TRUE;9 o+ i1 z, k- A
}; W$ Q& t) x5 D6 {7 c
) n7 q4 I9 j/ S i9 i
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ): n0 S6 p8 A) I8 d& ^9 V& g! M' I
{1 Y% U- l: c/ A3 ~' }# x
switch( nID )
1 w5 e$ P; ?$ U; y$ E( F {1 n2 G: I) i8 E, O
case WIDC_BUTTON3:
! u7 ?5 v! _; y3 [ {
. _$ t9 O1 s2 ~) c: X* d, Y" |, T bStart = TRUE;8 X3 C% v0 i2 l
break;
* n0 Y6 }+ ?1 f5 i* y8 n& O7 X }
# l" E/ o: Q5 q6 u$ `8 L) Q case WIDC_BUTTON4:+ A- Y9 o# ?. p
{/ a6 r, k- r" N% |) y
bStart = FALSE;
4 e7 k" F* n& {7 D7 W" V break;
b# U: Q$ P+ d5 t }
' i/ Y Z/ {* t$ f" R. N }
4 V" L* S8 K) S% y return CWndNeuz::OnChildNotify( message, nID, pLResult );' h. P0 e3 ~7 a8 u
} R, y/ f6 i& I4 S% F
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
) w1 ?7 c4 V2 z& K{1 q: g( }" {3 Z
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
5 J# i7 t% }7 i! k& I if( bStart || !m_pItemElem )
5 B* o& t% p: [8 v. H {$ G7 D o( h B: ^1 `" v( u' l
pBtn->EnableWindow( FALSE );
! }' H; G: i& S' K5 [0 } }else
/ M' A' b6 y) M1 ^0 O! N' k pBtn->EnableWindow( TRUE );
- U1 ]. Y: K7 d" P if( m_pTexture )
4 L: L: V+ v# j {! {2 H2 R" C! b- h5 x
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );7 F1 h2 |% h# z, l
if( wndCtrl && wndCtrl->rect )9 U- E+ J% R7 j
{
' a1 t; f% n2 B$ a, P+ [; _& u( o m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );+ c# C$ y I. j' R/ v+ _# ?
}
Y; n" ~0 p5 T3 X' s8 ~ }& @7 Y; V2 U3 n7 O6 q
}, [# O9 d' d# p; L @2 q2 A* n5 C
+ p$ X6 e5 @& N* X- s1 vBOOL CWndAutoFood: rocess()
; Z2 P1 Z) Q; g* v4 D5 g9 j{& t' {5 ^( t' T/ z- W
if( bStart ): [; p/ K! }' Z& _
{
+ Y! ~1 T$ P8 w& q0 r* w if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )# }! ]: |- t/ e: }) Y3 P. \
{' I* a& S. B6 C2 c% ~$ t! p, G
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
# g0 c8 {8 V7 s. D g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );7 I6 \1 @: D. {! Y' d% X4 h
}else{
, V9 z( v0 ]* Z% ~ bStart = FALSE;
0 \5 c7 ^; a Q* s* Y m_pItemElem = NULL;' L4 r: T; Y8 q+ q. L
}
4 V' Z% P+ T& B! U: J7 q: w* Z9 z }# Z: V- z7 f" I5 t8 D( U" e7 K
return TRUE;) q% g r! c- J1 [+ M7 @0 n# G' o0 A
}* @$ Z* A4 e% V5 {% D
( C- E, h W4 b! m登录视频废话:' g# z' Z6 m4 K7 x" {
尾翼:; F) s2 Y$ M0 n# @% d7 S
& @( v1 Y$ i; w9 s) W+ J% C' z3 ~" C
代码:
1 Q- ]9 {1 X& ~% P# a5 _
3 u7 ?9 `" v. x2 H! e! E; y- Vvoid CWorld::SetLight( BOOL bLight )
8 x! m' x4 ?; O) l4 g. D, |durch
- Q2 s4 |) o9 O* t/ O! X6 T/ `% k- _( iCode:- L1 x9 K$ J" a- n
void CWorld::SetLight( BOOL bLight )
& y" M# @4 ^' W6 \% J Z+ k! |% x/ {{
6 U! U' T8 T) v' i. }: B //ACE("SetLight %d \n", bLight);
% o( d! H b# O w
0 _ X/ X* m( Z! o4 C#ifndef __WORLDSERVER 6 D; g. ]+ }& H& f. ^! D: Z9 d
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);4 ~. m7 j, w5 O5 I
CLight* pLight = NULL;
0 A; y: d2 W5 r- O
4 o' ~* N/ d+ h. ]7 w0 [ G" p D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );+ j& a% w: i8 h$ L) I) K' }
' q, {& _' w" y) Q; g) d! J
pLight = GetLight( "direction" );
! C: U' {8 k s- E4 _) I* b9 S' ]* B& z+ r' I1 S
#if __VER >= 15 // __BS_CHANGING_ENVIR9 t) l) J) W* f
if( g_pPlayer ){! y- W7 E* o$ m& b1 R* ~' P3 s) y
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
+ K" H0 M, i" W9 x if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
% Y' B: J' O0 p1 K4 R* { {, E1 ^& D- r: V; T- e4 e0 O
if( pLight )
8 e2 @ @! m+ r5 h4 e {1 x/ ^; g! K/ s2 `- ~! y
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];! f/ I# r, {1 }. O9 H6 [
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];' x/ s. y; D" x' J4 I
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];. O( U+ X0 z8 u( B
7 {# i0 y0 X" V& S0 S4 @% W9 W/ E" e pLight->Specular.r = 2.0f;
4 C/ f" `) ?9 g2 V0 ? { pLight->Specular.g = 2.0f;
, ~1 x2 u0 |1 d% A# ^) |1 o pLight->Specular.b = 2.0f;
# r" I, S9 P$ @, G( d " R; h4 k0 g& j! m9 Y
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
) x6 s) q; K, c3 V4 ? pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
, D) L. K' r8 L& h& R) m9 {+ ^ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
0 t; E0 w) w) H; C7 A * ^% `5 Y% b4 J2 t
HookUpdateLight( pLight ); 3 B- S# o# [+ I: x; y
6 X( V8 o5 _$ }" S9 T memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- k! X8 h" E ^! G# ?4 u! r9 q
! g: I. y5 ~+ S0 |+ s+ d# I pLight->Diffuse.r *= 1.2f;% A% j6 @9 ~" Q, D7 k. v
pLight->Diffuse.g *= 1.2f; |: o6 m/ A; d, ^3 P* I
pLight->Diffuse.b *= 1.2f;
/ [1 ]$ Y. k5 [" m
! @: V t3 {- [0 N$ P# k pLight->Ambient.r *= 0.8f;
$ G) T: x% B# l) i; b pLight->Ambient.g *= 0.8f;
5 L0 q+ Q( n& y% Z5 J pLight->Ambient.b *= 0.8f;
6 k" N) E6 v ?* X* g5 u* q % M! Z, I; V4 I. I9 ^. s* A9 ] f
memcpy( &m_light, pLight, sizeof( m_light ) );! o a. Y$ Y# `
P$ |# j0 C, I9 e- R k; i( W
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);) X8 E# F) e8 {6 T8 v# ?7 T, h
D3DXVec3Normalize(&(vecSun),&(vecSun));
$ G: @, g6 C: R" h* i: i% Y pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; I, Z, n4 t9 p- l pLight->Appear( m_pd3dDevice, TRUE );
+ \6 `# n' B& Z3 y) c 1 K' a0 L0 x0 f/ q ^% l5 w+ u7 x( \
DWORD dwR, dwG, dwB;3 H' W+ h3 U1 u6 z* O: d# f/ j
dwR = (DWORD)( pLight->Ambient.r * 255 );
- J- Z/ z1 m# u; f1 Z1 t/ X, w dwG = (DWORD)( pLight->Ambient.g * 255 );
6 e4 E/ [( P- X- u& D0 Z dwB = (DWORD)( pLight->Ambient.b * 255 );
' ?' C) s% d9 `* ?" d' i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" x4 W2 F8 F* L! M) t( F7 f; | }7 V( m2 G: U# j' G1 S! G/ i, ]% _
}. d+ {6 e: ?: [, M& Z
}
! O3 L5 P$ [. _/ x else2 U- o9 ]5 L9 X% s- f
#endif
' Z9 T* G x& \3 |1 V2 X) p2 H, l
/ y3 {9 H3 d) }$ s4 F9 y if( m_bIsIndoor )
+ J2 p: I( K. r {
N4 K0 z( V: D& U if( pLight )
3 N1 @/ _* e& p" W5 f {
- \& g& A( D9 S( a+ I' O+ Z: K // à??μ oˉè* 9 U# \& B3 @ x+ z! Z: ^
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;2 ], O) V, z9 i3 u1 q2 {
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;4 k+ U- }% n# `9 \" }8 F7 u
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;0 C4 H1 w) Y- S* s5 O3 k! G0 T H
1 K" J" S& G) y9 }/ c0 ~& M
// oˉè* ??à?
: k2 a z9 a* u9 `4 x pLight->Specular.r = 1.0f;
1 {) y; W; F5 o7 r) M5 Q pLight->Specular.g = 1.0f;) a8 C6 X: p' \% o
pLight->Specular.b = 1.0f;
/ X" Y/ I F5 y* x" `; E // àü?? oˉè* 8 o4 Y8 Q2 u: C" |/ k! o" i# N. s
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;! O7 l; @1 J$ K
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;& \& G; {# |# g6 w! O }
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
. ^* f2 J9 E& ^+ e6 L: [* o) J+ J2 X+ N3 F0 i- K
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
9 Z2 s% o/ e2 O) s7 W% r/ T {* }! @2 {+ J' ^# W. b" g
pLight->Diffuse.r *= 0.6f;& k6 H9 G' e+ P$ d# y* a3 |/ k
pLight->Diffuse.g *= 0.6f;
0 @0 o' _2 I5 ]" a& ?' V pLight->Diffuse.b *= 0.6f;
8 \* r' @( }" [8 R8 x- t/ n, @ pLight->Ambient.r *= 0.7f;
5 q+ i/ h e: a5 N" A$ `0 m+ v pLight->Ambient.g *= 0.7f;; }: X+ I$ o' y2 d5 r" |
pLight->Ambient.b *= 0.7f;
" a5 d M0 B8 c' [; b7 J0 ~) ` }
& F! Y& }2 z: \5 J# B R' e( W. Z# ?. n: H% G4 D+ w
#if __VER >= 15 // __BS_CHANGING_ENVIR" g. R# T. g ]/ |' K: F
if( g_pPlayer )8 v5 T1 H8 ` g$ z4 S7 d* L
HookUpdateLight( pLight );3 |. q# V6 g+ D2 y/ |
#endif
X6 N9 ?& K2 j/ i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );3 D' u% _! y; h- N0 [5 D! i Q
5 V" ]8 s6 k- |, c6 ~5 ?# V4 `
pLight->Diffuse.r += 0.1f;
# N% _2 o2 Z9 r7 [0 f) b pLight->Diffuse.g += 0.1f;
/ z7 R+ T$ }+ B7 V. N. J! b7 ^* d) R pLight->Diffuse.b += 0.1f;) u0 ^9 X$ _* v! c5 x. A
// oˉè* ??à? 9 t6 T2 P/ Z; a1 M: ~: q7 F
pLight->Specular.r = 2.0f;' ?, r6 X: t1 T; \1 v, h$ d
pLight->Specular.g = 2.0f;
; }- H, ^% c$ A- A% I# |; a pLight->Specular.b = 2.0f;( b& k2 @- O/ Z0 C
// á?oˉ
- T! r ~/ X8 `2 N" [, p pLight->Ambient.r *= 0.9f;
. y; L0 y7 {6 ^" | pLight->Ambient.g *= 0.9f;
8 f# ]$ s& k4 e5 V5 K pLight->Ambient.b *= 0.9f;
% Q9 x& h- v, q0 W! l( Y
6 j ]) G ?1 ~" `+ } memcpy( &m_light, pLight, sizeof( m_light ) );
+ H( |, \' W9 I1 ]& w3 o 9 o% @1 Y2 _9 [: k; Y; ~2 r
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
8 I. b @; c6 g2 I( f pLight->Appear( m_pd3dDevice, TRUE );4 o7 Q) ]0 `- |7 \2 U
- ?$ c/ T; X3 [
DWORD dwR, dwG, dwB;! F4 ~" ~- m8 W9 {! g! U: q
dwR = (DWORD)( pLight->Ambient.r * 255 );, F! r4 E, o2 v, G& {
dwG = (DWORD)( pLight->Ambient.g * 255 );
4 r' G6 w+ ] U) ~ dwB = (DWORD)( pLight->Ambient.b * 255 );. ^7 u- q0 ~8 u6 E" J3 W! p
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );: e1 Q4 t+ u. t- N! v' x: O$ q% z
}$ q9 w7 u, q, S6 {
}
1 t, ~8 M! e6 f: _. w8 F( V2 l else
! {$ t7 `" j% f9 U; J {6 S5 a. k1 A ~7 @/ I
if( pLight )1 x7 v- J0 @$ S" S
{
8 u+ C% Q! i- c5 H. _" T
4 w( [* t7 }4 N7 f8 O) R- v8 d int nHour = 8, nMin = 0;% z+ E3 Z4 ^$ |! n7 J
#ifdef __CLIENT
0 T: Q; N" T. p" P& }6 v* ` // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 5 d4 `8 ]* A: l3 Q: q# ]9 D' z" L4 S
nHour = g_GameTimer.m_nHour;
2 ~" z9 t- ?' ^% V0 `) W/ G5 u nMin = g_GameTimer.m_nMin ;
$ N3 N/ v2 u, e5 ~/ I7 A+ }6 G3 X #else& q$ [: i, t: h/ r! _
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.9 b( h! I3 w& n2 Y
if( m_nLightType == 1 )" c2 q- }; Z6 t% E
nHour = m_nLightHour;8 L/ [0 o' R% a5 c9 l- y
#endif
- a6 ~5 L! W4 t8 i4 k( d nHour--;
& k. D9 h6 [- u9 h( D, I Y& z if( nHour < 0 ) nHour = 0;
0 M4 A- m( K3 j* ]1 c; g+ Z if( nHour > 23 ) nHour = 23;8 x5 r5 p) d% g( W/ H$ E! y) a
' F! ?. X0 M J
//if( m_bFixedHour )7 K3 t7 @5 ?4 P( }
// nHour = m_nFixedHour, nMin = 0;
( Q2 o1 M- G) e2 Q/ d LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];- D' j7 C: M0 h: w
LIGHTCOLOR lightColor = m_k24Light[ nHour ];' m' v2 c. C' O! A" \0 Z- \- j
, j9 F$ g& k: {& d8 l
//m_lightColor = lightColorPrv;
P3 S0 R5 l5 h1 B. g lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;9 l* Z- {# V% p" n0 b
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
. I. Y% R9 c: }8 l/ E2 F1 G4 e lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;6 z0 \( k) Y% q9 B
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
( k' i$ b* |; J6 t! ?: c. d5 R lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
0 t+ O& D) B! b/ s lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;6 p! s- G0 r1 Q( Z8 I2 r' r2 W7 m
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
7 P8 e6 u' i+ X( j9 v
* ^% P4 Z: \3 L, G& | // à??μ oˉè* i- r5 l( a, T9 j# t# G
pLight->Diffuse.r = lightColorPrv.r1;
/ i' I8 r+ E6 w$ k3 q; b& ] pLight->Diffuse.g = lightColorPrv.g1;
* o, a( J' _1 E7 T: W pLight->Diffuse.b = lightColorPrv.b1;
; L, D) t$ I( n2 @1 H( B/ ^1 E // oˉè* ??à? 3 h- @1 d& a h5 X0 G
pLight->Specular.r = 1.0f;
& F X' [) y3 m2 P+ b/ a6 \ C pLight->Specular.g = 1.0f;
, M: _8 `$ u( E& _/ p& B# d pLight->Specular.b = 1.0f;: P! \! n5 r7 Y5 k
// àü?? oˉè* - f* l# Y( ]( x: I1 R) K
pLight->Ambient.r = lightColorPrv.r2;+ N' |7 d2 `; ^" Z, x
pLight->Ambient.g = lightColorPrv.g2;2 Q) k# z' G+ g- p- D6 p0 f
pLight->Ambient.b = lightColorPrv.b2;
3 z0 F, N& g, R2 b8 _) Z# ~3 E
! {2 L) B! |7 o1 t if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: X* A8 J9 A6 M0 D+ U4 E, z0 ?4 \ {( D0 h8 n1 _& n
pLight->Diffuse.r *= 0.6f;
7 F/ \' `8 H9 n% ^4 L6 V0 k& g; s3 B pLight->Diffuse.g *= 0.6f;9 V1 i3 |' V0 z1 g. A
pLight->Diffuse.b *= 0.6f;
. y1 y8 l. r% l* n; ?, w pLight->Ambient.r *= 0.7f;" v/ G$ f: {1 P0 x6 x
pLight->Ambient.g *= 0.7f;
& R g) z. [% e! @& L pLight->Ambient.b *= 0.7f;
g+ k# q) W4 b* w; u& L }
8 |/ p* X; t, _7 i5 Z
) U' I) |1 ~; ~9 i#if __VER >= 15 // __BS_CHANGING_ENVIR
" p, [/ ?+ O; V, g' D" @0 v p* ] if( g_pPlayer )
0 d) W) T0 x" w' G/ R; }+ |3 M HookUpdateLight( pLight ); . D3 Q/ u( {: u4 [# `
#endif
3 {+ l. ~# R' X) O+ X: r+ L' N4 f w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ L/ V/ \. | j1 X1 b2 w% X6 t; u3 u" h' O I
#ifdef __YENV, x; _+ i# L7 ^( K2 D4 ]
pLight->Diffuse.r *= 1.1f;
% Y# f$ m; X/ T q! q- o pLight->Diffuse.g *= 1.1f;" s. I! h0 Q0 A
pLight->Diffuse.b *= 1.1f;
5 H- Q) O# I' y3 ]% |/ O( }6 b; _ // oˉè* ??à? ( n8 e# c' {# N
pLight->Specular.r = 2.0f;, p0 S! }! Q3 {( u$ s6 V) c
pLight->Specular.g = 2.0f;
4 V9 d- ]5 n1 A \$ S pLight->Specular.b = 2.0f;; G4 j7 f* i7 O$ T% {/ F2 g
// á?oˉ
" K& R$ w. G5 b% r9 _' ~ pLight->Ambient.r *= 1.0f;3 N/ W1 [, @3 @
pLight->Ambient.g *= 1.0f;! S: E. R6 ?: P- y, U2 L Q
pLight->Ambient.b *= 1.0f;
- o7 G" r2 ?- {; k#else //__YENV
# \* S! m* v2 C' H3 [* K) X( I pLight->Diffuse.r *= 1.1f;
5 Q. g( J8 {# G' ^2 `% c pLight->Diffuse.g *= 1.1f;; Q- ?2 d1 Q9 D0 D) m
pLight->Diffuse.b *= 1.1f;4 i9 j9 ~; V# b2 `" b' S
// oˉè* ??à? 9 T$ D1 Z: B' g# j8 _+ q9 R
pLight->Specular.r = 2.0f;5 g& p, ]8 b) C, C: i
pLight->Specular.g = 2.0f;
U- X+ V& n( q3 J pLight->Specular.b = 2.0f;6 K/ ?" F. H9 D2 f d S4 \3 o
// á?oˉ " t2 |. s( J% J; M3 l i% p
pLight->Ambient.r *= 0.9f;
1 e/ N4 ~6 b. `- x pLight->Ambient.g *= 0.9f; s. ^) ?1 e' J% q/ d
pLight->Ambient.b *= 0.9f;
, h0 W3 a/ ^9 Y8 W#endif //__YENV
3 [" P' {1 k9 |3 X! ~0 [ . P0 Z0 f0 {8 u1 ~
memcpy( &m_light, pLight, sizeof( m_light ) );$ @$ G" m! Y9 T
* z% {# }8 X* Q
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);# D0 G z2 v2 J
D3DXMATRIX matTemp;4 E% s( }: o& a: A
static const float CONS_VAL = 3.1415926f / 180.f;
, H7 u& Z+ u5 c3 i& d
& o; J6 }" O7 Q0 J D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
) ~6 o- n S, @ X D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);" H: U( q4 `5 A
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
f0 a) z0 p4 x) l6 Y1 | pLight->Appear( m_pd3dDevice, TRUE );' a3 n3 P& \$ t8 F3 E) L
; }7 t7 _) `& n- j) `" D9 l7 ?% O/ _ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);( k1 b9 ?* k6 Q3 q# p, _
// D3DXVec3Normalize(&(vecSun),&(vecSun));' C$ e8 {" D1 s5 s! Z
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; I) ]: d' d( K3 t6 u$ \/ z6 ]( k! B
DWORD dwR, dwG, dwB;% O: G4 @: Z' a5 f
dwR = (DWORD)( pLight->Ambient.r * 255 );
+ G7 U& T8 C3 T$ b! ? dwG = (DWORD)( pLight->Ambient.g * 255 );# d1 E/ ]' V- m2 ]" x9 {+ y
dwB = (DWORD)( pLight->Ambient.b * 255 );9 I6 y% [6 g6 Y+ g
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) a, ^1 U) k6 U* p
}
/ R: }# J" ? U3 {% ? }: ?2 Y! `6 Z8 `9 t) [; `3 _
; a" ]! n: Z2 c+ e& D6 K. o+ y# q
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
/ M3 |& ^, o$ j# w 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) );! |0 y, ?+ k4 o$ a8 g
::SetLight( bLight );
5 q" R7 Q; G! z {" F
! c0 s; v d; D% v( e! E! T // ±ao? ?D?í???ó á¤à? , L7 n- D% |+ V3 b& N+ q7 T/ u- d, C
m_pd3dDevice->SetMaterial( &m_baseMaterial );
. J: o" Z0 v8 q6 l : T% q+ b; J* b) q2 {% l
#endif // not WORLDSERVER
, M+ z. V, E1 Y+ Z}" u4 Z) n3 t$ u) D6 X; J' a/ V! z( D( y
并更换) a" G4 q0 O4 N5 H5 x6 a
Code:
! r" _+ [; j) o4 ]+ s__FLYFF_INITPAGE_EXT+ O( j! z/ V7 v) l. d( j
定义
: g" {) T' j# D1 }# F/ g' R
/ s( @3 s$ `) ?. ^9 [) ]2 W1 ~( x
$ |4 n1 h# h7 d
3 B2 z9 J. R6 ^- v% R2 x( n8 g+ A$ O! H s/ s, j. x H
现在终于删除我的狗屁加速...
/ w6 b5 D$ r0 B8 b+ H9 c3 q$ P6 k$ c" g$ F
. Y5 k" W' m" s4 E
( [9 O, r7 ]4 _+ B% B/ X$ s |
|