|
|
食品车:7 g1 @0 y& ]$ n" ^
尾翼:5 P4 W+ g: _' ^! n1 U
: Q* x+ E; f) K8 ]# V x
代码:# y& G) @; s$ c7 d$ ?; j+ @
CWndAutoFood::CWndAutoFood()
0 v; Y P8 m- o; I7 W{
; G$ j4 Z) M& ] m_pItemElem = NULL;
# J& F2 R% M% r$ G9 y m_pTexture = NULL;- L/ P3 W' T2 Z3 n, i
bStart = FALSE;
! w& S% @( j! ^& r6 T8 L* _9 W0 i} T: \5 z$ `# l
: q' Z* l4 ?+ [CWndAutoFood::~CWndAutoFood()
$ _* l n$ L% R9 M{) i" k7 q! L3 M. J: N F/ f
AfxMessageBox( "AutoFood ist gestorben " );
; h. ?$ }6 ^, j7 `! B/ P}
, \' h+ l$ p4 G9 f9 ~BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
0 l- }" B2 G% z) Y: H/ H{
- S- b* j7 D' T3 C return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );" o) z! n. d6 J8 i" F) o7 O6 r: S7 ]) Y
}+ Y" M- f+ a) X6 z- d. k
+ O, U/ O X/ `$ M) K# p: `5 C+ L
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ) j/ P' Q* Z# ]3 [' s
{
( n, o3 [6 f1 k2 G& p" ?! j/ V# G4 t LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 _& A4 k* G. `$ F6 h CRect rect = pWndCtrl->rect;% t) M0 F6 l6 M1 O w
if( rect && rect.PtInRect( point ) )
9 L \ ^! K- R, D- ^ {# V' I% Q6 W6 x7 ~% W
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );4 p8 H; O+ ~5 m0 W0 I i' w
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
8 h! v- c- S+ O* S; Z: f, X& | h) }8 T {
& O y j$ G0 ]1 {3 _/ v0 R- @ if( m_pItemElem )
! k+ ]! B, z0 V n1 j {. O% N# ]+ C8 r9 _ J6 W
m_pItemElem = NULL;# @3 h; n9 z+ \( ]0 e
}! U1 E- R2 z# b& s \; Q) V
m_pItemElem = pItemElem;
9 ^' A( Q9 l5 z/ S I9 f( R3 J& z m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );. B+ r3 _6 U" j( G
}else{& D/ I7 _; d% K3 v
SetForbid( TRUE );
% t! q9 L% T# L }
( g% C9 @2 j2 j' ^# `- t# J. a. ~ }else{% @9 A9 a2 ^ O$ U
SetForbid( TRUE );- Q* f& W* m- C2 B. H7 Y. }6 @
}5 c- h! v8 t. k/ l! E1 p
return TRUE;
5 ^" V. Q5 {% d3 r- V}
_( E% c0 I! `5 W2 p; O& w# o9 E( b2 Z% E9 M& y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) A# G/ p8 M+ I4 C& T
{
" v( j4 K" t6 ]/ S* a switch( nID )) e2 f, Y/ I& A/ l0 {
{! i8 m* s) v0 D; N1 w# u3 ^
case WIDC_BUTTON3:4 K2 i! Y5 S/ R9 Q# f
{
- Y# R9 S) R s0 J- F; A bStart = TRUE;
0 c; b7 k9 }% e+ w6 u' H/ d break;
0 ^1 s `$ K C/ {- [3 N) ` p5 f3 W" _ }2 F* j2 Q2 a4 ]; W( O1 j4 ~9 t
case WIDC_BUTTON4:9 S# W/ ~$ T- N @
{
# [9 F; P5 {" i# M" h$ M bStart = FALSE;; X) l Y% @( p( {' R9 ?4 }
break;
* l, b7 V* D! Y; A0 W b- s; {+ Y }2 d# p; }/ r5 N3 ~7 \
}0 z t5 b4 ~4 u4 A
return CWndNeuz::OnChildNotify( message, nID, pLResult );
4 l1 _1 C6 {2 q& c} ) f) S$ H6 ^3 M. A
void CWndAutoFood::OnDraw( C2DRender* p2DRender )3 h) m2 T* w/ a: E. m
{" O( C: e1 s/ E: M, ~- f6 A: P) k
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
4 ]1 |; T' y: R: S h5 }! P if( bStart || !m_pItemElem ). m8 M( j! a. L
{
/ l/ R0 s- k/ L/ ~, e pBtn->EnableWindow( FALSE );/ f* D3 ^$ `1 t5 R D
}else2 T% ~) v$ M. m# x! I5 e! P
pBtn->EnableWindow( TRUE );
$ p/ P; N7 R, H) r9 {5 H H if( m_pTexture )6 X- G. ?4 x) [+ V+ S, M* Y k
{' F8 w# d3 w# t
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
1 g t4 M+ z% Y7 c if( wndCtrl && wndCtrl->rect )8 p# M/ X1 ~, g7 T' _
{
% a2 Z5 h# E! c% o1 { m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );0 Y, R5 _; \* p& h/ j
}/ I' `' W, s& J& m+ ?- \3 c1 i
}" y' I! {. t2 w' ^' c# l
}1 P/ z3 W( I$ D+ ?
g4 R) l V1 \
BOOL CWndAutoFood: rocess()
4 i6 }! T! d8 U; g4 |9 b: w* p{7 ?4 v. {% G3 ]* f. v' h) {
if( bStart )
' T1 g1 v3 y5 |' B" P6 ? {
0 m) V$ J9 i2 n: p if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )6 I& \$ c% S4 B8 a3 _7 d: o
{" ^- u1 g5 q% }% S
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
: Q6 @$ S$ L/ K% m g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
) E& v2 \/ r+ M: M( X: P% } }else{
2 d3 ~) ~% e n: b7 |1 z bStart = FALSE;1 ]' w5 d+ d" n) G6 G
m_pItemElem = NULL;
: H- \0 F! |( V' j9 i4 `% n6 @ }" s5 `- x; F2 s2 E+ Z
}9 B% _* @1 C5 V4 t C+ S/ G8 ^
return TRUE;
* z' ^3 F: H1 I) f}6 \. y% u9 G! L. O5 ~$ o
2 \1 g! s$ e$ L6 n$ w& F
登录视频废话:- S, E, f/ V' V
尾翼:
7 t8 U" v! @- s* ^+ e" {# @* G' v7 f/ ^" G
代码:
4 h3 U* Y, S* |: j+ A
5 x- a% }: M5 H2 E* ^" g; @; R% [void CWorld::SetLight( BOOL bLight )* z" G( x8 h' d5 z+ Z
durch z4 i# d z. Q9 G$ @
Code:
( v5 c0 u2 |. }4 T: m, F& Y; ^void CWorld::SetLight( BOOL bLight )% O2 N* g- B+ n) k6 Y
{4 o g2 _# X; i1 D2 t) h
//ACE("SetLight %d \n", bLight);
5 ?2 C* E, }8 S1 P; n$ n 9 Z9 [; s8 }) F& R9 i) x4 ?
#ifndef __WORLDSERVER
; @- p3 F) O: K( |7 X$ A- f DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
+ E9 v/ c6 v/ D; b& a CLight* pLight = NULL;3 L2 d( s& j9 r4 Z
- I& d" t# J: g3 }9 O. K p1 R
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
9 b7 W+ r. J( v' E" D& j# i! M- O7 ~8 Q, W' R
pLight = GetLight( "direction" );3 n: V/ o$ a1 L& c" P+ i
- D) X0 U1 Y- s$ {! ?#if __VER >= 15 // __BS_CHANGING_ENVIR
+ |7 }4 S* F+ r5 Q' O/ O if( g_pPlayer ){9 l) `! U6 ?& g
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
0 S- k# g @9 N* L+ [9 ] if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
- x# d) h2 G* v( t; ]% c; S* ]6 j2 e {! v7 k7 E- J3 H9 `
if( pLight ). z& L: @3 R5 j Q& \
{
q* x8 N2 H+ g pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
J: n& w- b- x6 L7 V pLight->Ambient.g = pInfo->_fAmbient[ 1 ];( y: d2 ]/ `5 h t' ~ B
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
" G i. T" ?: r4 W# m! j; Y1 o, h4 _5 y+ b' B. p$ S3 D& T
pLight->Specular.r = 2.0f;' Q! P' J/ s# ?2 M8 P
pLight->Specular.g = 2.0f;* ^. I9 S' t( j
pLight->Specular.b = 2.0f;" ?2 R% z% x/ t$ R( z" s* E
* k: p2 y. m( a% J1 @ pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];' m, e1 `- e+ T. \
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
% @. }# t+ J7 m0 ` pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ]; K1 ?' z ^& J# j
' i; n" a- o. \ HookUpdateLight( pLight ); & b% N A! N) F, a9 s
3 h) K( |( c! ?; J! e
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 w' _& h9 S# ~( e
0 Q1 p" t# a" x4 |' @ pLight->Diffuse.r *= 1.2f;
* a5 m# m* d& C# ]: J! c pLight->Diffuse.g *= 1.2f;
9 A `( e( V: H/ R# {: z9 d pLight->Diffuse.b *= 1.2f;& l; X; t B6 q3 L ~
; J. s& c& P, C. Q& `/ |
pLight->Ambient.r *= 0.8f;
* H( a& e. G2 v2 ~5 X5 N pLight->Ambient.g *= 0.8f;
3 i- H3 g9 G2 j1 P: d pLight->Ambient.b *= 0.8f;
" e* e5 Y. h4 A! j* x, l+ q 4 {0 r$ J- O" l F4 q/ l x
memcpy( &m_light, pLight, sizeof( m_light ) );! l% e6 C6 h0 g d7 ~" f" O3 y/ U1 r
, z8 |! k. r: n& Q7 z
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 E' h I/ x% C( i! o. P% X( I$ i/ Q" F& g
D3DXVec3Normalize(&(vecSun),&(vecSun));
1 G# T5 Y1 K9 v6 A W pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ l% m; \( w8 Y: {( k pLight->Appear( m_pd3dDevice, TRUE );
2 f, d' g% C2 \. T
0 P( U- m5 t) ? DWORD dwR, dwG, dwB;
( ~ t6 E' d& y1 S% s* N/ J dwR = (DWORD)( pLight->Ambient.r * 255 );3 J- u2 M g+ H# t! |, _! K
dwG = (DWORD)( pLight->Ambient.g * 255 );
9 @) ~$ i0 B0 V7 [' W dwB = (DWORD)( pLight->Ambient.b * 255 );
- G" F3 C* [% i' r& c; b8 \ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ i0 w$ Z* m6 ^- {# b) K
}# [% T# Q; h* `. j$ P( k) l
}
/ I2 u, q: Q5 W. a! ~- k }5 J; m( o1 a2 i3 L! x$ i
else; Q( S* x+ _4 X* Z
#endif 3 c- J" B# ^" U+ F$ A2 V/ \
6 w: s2 {1 B4 b+ ` if( m_bIsIndoor )
- \5 A `4 o K' ^0 _6 J {
' D; I2 ?, ^' }0 O. ~. g" v if( pLight )
( |7 F$ u" L* y, X$ X { 3 P* a! W+ ]( H9 |
// à??μ oˉè*
2 P2 W% \( m3 f- y3 { pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;3 T' q0 g7 L1 P$ g
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;% K9 J% d2 w8 g5 M* `5 [# \( x
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;2 t# ~, ]+ K2 j8 {, J) n
( S; Y+ y1 H7 B: f" ? // oˉè* ??à? ; H' L9 {- ]1 z! `: p
pLight->Specular.r = 1.0f;
$ v V0 l2 L* c7 n pLight->Specular.g = 1.0f;/ K& q+ Q* a3 p3 I, B5 Z
pLight->Specular.b = 1.0f;# C9 P2 P; C3 k: q; A2 l. d
// àü?? oˉè*
9 h. F o" c) q5 O pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
' V G& c) {" @/ G* _- I" R+ B pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
3 Q: K2 k9 n o; K6 L* k+ y7 e pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;1 c$ w/ B! B; f. P" s6 Q
# K8 m* N: h8 [# s if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
' y4 ?! O, V) T y& ?6 B {
' `4 t. x) m+ i3 E; u- _2 j: E pLight->Diffuse.r *= 0.6f;+ ?4 u# Z0 h# R( v1 G) @' A9 Y
pLight->Diffuse.g *= 0.6f;
3 y& p! z3 n, w pLight->Diffuse.b *= 0.6f;7 U/ F, Y/ i5 d4 j. n& t2 ~, P( H/ j
pLight->Ambient.r *= 0.7f;8 g7 o' P& \/ \& v+ O# ^# P$ U
pLight->Ambient.g *= 0.7f;
5 q6 }5 Z$ y7 j, b0 y6 ^$ G- w pLight->Ambient.b *= 0.7f;8 d! I3 C6 I* G% [" o
}; p! g) x. T! l+ H
[% l% Y: M, A# F+ U5 \#if __VER >= 15 // __BS_CHANGING_ENVIR
3 f# K: x1 k* Q0 d9 @* [ if( g_pPlayer )/ ^; Q/ i, a( a2 t* _' @
HookUpdateLight( pLight );
; c0 g! R9 f! W a5 Z#endif
0 s1 B$ G. B* h* v" w% e( {" | memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 f4 M: e1 {8 x" j8 a; s
5 R( u/ a4 x% K7 F; I" C4 C/ [
pLight->Diffuse.r += 0.1f;% R* Y2 q0 P2 w; I
pLight->Diffuse.g += 0.1f;
( Z3 l; X# c7 B! H pLight->Diffuse.b += 0.1f;4 g; k* ~ [$ N, g1 Z
// oˉè* ??à? 6 q0 Q7 I* G, `6 A1 e
pLight->Specular.r = 2.0f;& g0 U, Z3 e( z" C5 Z
pLight->Specular.g = 2.0f;
4 K' a* P3 ^1 A2 k- |2 J* H pLight->Specular.b = 2.0f;
+ t, m8 }9 @; n% d1 J // á?oˉ
7 V! ?6 @! v/ t2 s pLight->Ambient.r *= 0.9f;
% k& I I- E, U7 ~4 Y& T5 N pLight->Ambient.g *= 0.9f;2 B) u; I2 |( t" a
pLight->Ambient.b *= 0.9f;9 e1 G+ R& b; t- c
/ \/ k& X1 Y4 s. d) Q" _ J memcpy( &m_light, pLight, sizeof( m_light ) );1 c; l$ n( E' N9 a: G8 C& {
' Q6 b" D/ U3 q
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
+ U2 @5 R( U3 A6 u$ \- ]3 } pLight->Appear( m_pd3dDevice, TRUE ); l# G% G# w3 Z' u/ r- z; E
0 u0 [2 A" k4 t DWORD dwR, dwG, dwB;- l9 ~" d. p' s* n
dwR = (DWORD)( pLight->Ambient.r * 255 );
) t/ H7 g. C) c6 V: M9 ~ dwG = (DWORD)( pLight->Ambient.g * 255 );1 z$ C+ L& p, `# S5 M( G
dwB = (DWORD)( pLight->Ambient.b * 255 );8 L! u0 Q9 O2 k( Y0 E8 ~/ z3 Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; a1 X4 o1 H' n( U }5 L4 @! X' W. ^" F8 c4 Y7 g
}/ O! c5 g; D& J: E8 P# H% h
else
2 w7 ~4 c: r; l8 Y- u& N% y {- k+ s- [! ^; i$ R, `, a6 r; G
if( pLight )% A$ n! ^, u! r! v# x& v
{
2 H6 Y3 w7 ?# `+ F$ ^( z6 ?
0 X' H: G' U8 g; N+ Y int nHour = 8, nMin = 0;( m) y5 I5 c0 q# @9 Q( u9 T: E' g
#ifdef __CLIENT
: x6 l* C+ g$ s( T( u // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
( F9 l+ q$ i0 v& M* V$ W. ? nHour = g_GameTimer.m_nHour;
! n9 M( z0 i6 z5 Q9 U nMin = g_GameTimer.m_nMin ;- T8 ?. ]8 r8 {" o$ E3 \# o& z
#else/ w) k; I. T& o& F) ^' z( f: f: J8 O5 T
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
0 h4 p6 K6 ^$ X) z$ A if( m_nLightType == 1 )
1 ]+ _) I% @7 v* F Z nHour = m_nLightHour;1 U5 S3 Z* ^9 [" r7 s8 c$ O
#endif
8 |# z3 H4 Z$ k/ y9 ?# y0 t: x nHour--;; H! O; B/ h1 G: `2 n
if( nHour < 0 ) nHour = 0;
\/ b" g: |% t9 \2 c, t# s% ], h+ z3 N if( nHour > 23 ) nHour = 23;6 e. z1 V$ @" W3 H
& x6 z0 D" y$ f! A6 I3 O3 _ //if( m_bFixedHour )
; [# X. Z4 n6 A" d. c // nHour = m_nFixedHour, nMin = 0;
1 M \* o) m# E LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
. Q( [! _+ K' J" s# A LIGHTCOLOR lightColor = m_k24Light[ nHour ];
% `, |9 ^" Y" G& L$ U( z) r9 v( D: T2 ]3 x8 v( R: E0 I
//m_lightColor = lightColorPrv;" E) v# L! W" Q# p2 h3 ]8 X
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;3 t |+ `* r* T1 }+ ?1 k) t5 X
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;% C4 ^0 n$ g2 K
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;& g, o8 p8 }+ c! T9 w% V
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
2 I$ }# A; M1 I' I; K1 L* P# ? lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;6 c: V9 K. k, D! P& r! h/ c
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
& {5 [" ]5 j; o6 D7 y" k // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
; S& V- P% c! ~, n- H; v
1 `, H0 y @( M0 M; } // à??μ oˉè*
+ m& ^ Q& g, |# V1 ` pLight->Diffuse.r = lightColorPrv.r1;
, r+ c1 a1 R% Q% Z8 ~ pLight->Diffuse.g = lightColorPrv.g1;
8 k+ O8 `% ]% i9 S pLight->Diffuse.b = lightColorPrv.b1;
e/ D/ t0 F0 u6 R' i // oˉè* ??à? " g* f1 ~' h1 k2 U l# n
pLight->Specular.r = 1.0f;
6 ?9 f1 f6 q2 I" a/ O( v pLight->Specular.g = 1.0f;
) z! {! O. s5 Y; Y# e$ }/ I5 j% m pLight->Specular.b = 1.0f;: D. Q, ?) }9 t/ Q/ q
// àü?? oˉè*
% G2 I; B" ~, A7 V w: s2 ]1 a pLight->Ambient.r = lightColorPrv.r2;
5 n8 ^3 Q/ L1 |% z) T# R pLight->Ambient.g = lightColorPrv.g2;
* K. k4 r$ p6 k- J8 X1 b- b pLight->Ambient.b = lightColorPrv.b2;
. u: y# }' I- H+ H ?% e5 Q! m* x. S" d1 A, A
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
u; H7 U; Q" ^6 f {
% A% s0 u5 K5 X pLight->Diffuse.r *= 0.6f;
; s2 h' A8 u( z6 @* k! J* b5 f: k pLight->Diffuse.g *= 0.6f;; g0 x% r' b5 O( G
pLight->Diffuse.b *= 0.6f;8 N" S& D0 b# d' y- Q s9 D" m
pLight->Ambient.r *= 0.7f;& E7 E( B1 ?* k3 m
pLight->Ambient.g *= 0.7f;& N' e" W/ B- v; j3 E+ n2 y% t
pLight->Ambient.b *= 0.7f;
2 D' A7 Q4 a1 X6 l, s }
1 z, C8 W( n( U' n* g% ]5 a- J
4 p, C' T5 x8 V#if __VER >= 15 // __BS_CHANGING_ENVIR
8 e* |; @8 \2 @) ]0 Z if( g_pPlayer )
5 }3 C: x, C/ O8 Y Y8 v5 | HookUpdateLight( pLight );
" T" O/ G4 l8 D6 u3 h- `5 W8 b- e#endif N+ }$ n; o0 H' i, i
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* m$ F8 u1 {- k& H9 b
6 T: {% M* K% I x# [; H
#ifdef __YENV; q, g% A x! @. l
pLight->Diffuse.r *= 1.1f;
& l3 g. P: ^2 ~* B) i pLight->Diffuse.g *= 1.1f;
" Z4 ~9 _. N" n pLight->Diffuse.b *= 1.1f;
" N% ~+ m5 ^! K9 L // oˉè* ??à? : b+ X3 z3 O/ P
pLight->Specular.r = 2.0f;. w" q* o9 S% S- F
pLight->Specular.g = 2.0f;
) W' y/ B- O2 F; y pLight->Specular.b = 2.0f;
: U" }+ @' k, w9 l2 x // á?oˉ , `3 g' j8 F! F5 r! U: k
pLight->Ambient.r *= 1.0f;
! e+ \) M- U V, t5 E0 }% [ pLight->Ambient.g *= 1.0f;
4 R* p- Z u( @ pLight->Ambient.b *= 1.0f;
2 N2 n1 L/ F1 t( e# X) g#else //__YENV; ]" A" q7 p6 r9 M5 @
pLight->Diffuse.r *= 1.1f;
* O% G3 P& Z+ p4 W/ \& [' `' p pLight->Diffuse.g *= 1.1f;
/ V. M5 o) |5 t4 }# c/ C$ P; p* K( d* V pLight->Diffuse.b *= 1.1f;
5 U' @5 k( X- A; L // oˉè* ??à?
, ]8 ]" ]+ v7 |- e) q0 \ pLight->Specular.r = 2.0f;) Z5 ~# R b! X9 j
pLight->Specular.g = 2.0f;
2 l$ |' c/ Q- u* S" X pLight->Specular.b = 2.0f;) k4 a! m2 ~1 E5 q0 `3 C
// á?oˉ ; I3 ]2 \ P |, U: j8 W
pLight->Ambient.r *= 0.9f;
$ w5 v5 S& ?7 [ pLight->Ambient.g *= 0.9f;
2 t. p1 H$ O' P( v pLight->Ambient.b *= 0.9f;
' H) z& p7 N3 c; |, P#endif //__YENV # O6 _6 L; r( w9 H/ W0 f0 o2 R" m
( ?! a2 t/ u( k1 W9 R
memcpy( &m_light, pLight, sizeof( m_light ) );1 d, [" U5 K1 {: W7 f$ i6 ]3 Q
! \5 _1 f z3 S' ], t( e5 D
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
' n/ }# T3 `, J. ]6 D$ R; u D3DXMATRIX matTemp;/ d1 i: E N4 i
static const float CONS_VAL = 3.1415926f / 180.f;# ?- x+ C/ ^" M$ g. p2 H1 t
: a# e: |& k m3 K& R- \ D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
5 b, K* j9 J! |6 J D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
- W. I) y$ H N* T1 y" V2 f Z! l pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 2 F4 o+ S$ \) X& {. y: @0 g8 X
pLight->Appear( m_pd3dDevice, TRUE );! V0 ?9 N# d3 d5 ~, T+ j6 Q# n2 g
$ }7 N# C/ F( R // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ n# A; |; Y9 |1 d2 a& Q
// D3DXVec3Normalize(&(vecSun),&(vecSun));# ?% d5 b6 d" T2 }7 e
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- K8 ~/ @% R5 R0 q1 P7 k. N% a% D) v/ z% A, w
DWORD dwR, dwG, dwB; Z! Q& N! ^( m6 Q* K
dwR = (DWORD)( pLight->Ambient.r * 255 );3 \! S7 V# a! @% L# l7 u
dwG = (DWORD)( pLight->Ambient.g * 255 );
t5 V- r8 t' U0 _2 B! _. D. ? dwB = (DWORD)( pLight->Ambient.b * 255 );5 K3 s5 c9 U2 e8 @
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* y- {6 Y5 l5 H8 `8 {6 B, P6 B }
0 Q2 i ^! [0 f3 W. Q& W }" t4 D/ z& i* z, T1 _) ?& [! w3 _
4 v8 W. N/ C7 \ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
( W- V1 c5 E2 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) );
7 L9 ]/ @( Y, Z ::SetLight( bLight );
/ n5 Z4 o, W6 ^. D- ]2 m% F' x$ L4 d; V
// ±ao? ?D?í???ó á¤à?
4 g/ A4 h6 C$ e0 L7 c m_pd3dDevice->SetMaterial( &m_baseMaterial );) x) X$ K3 H9 I0 H' j. ~, I
6 x/ i3 h9 [2 P9 j& X#endif // not WORLDSERVER* i0 K* x8 x3 @5 v( w
}
2 ~% J6 G3 {9 T并更换5 T! x% M5 a7 y% f. y: ]
Code:
" z9 V8 o1 d4 Y& R0 |& B6 Y: u__FLYFF_INITPAGE_EXT& B2 F2 s4 }1 }4 W5 z8 z4 s
定义" r" F% J+ a1 ?2 k( q
9 j9 _5 E" ?$ C- W5 M/ t
. p0 h' t ?& t$ h
) I1 x! }! R+ t5 r4 j0 s6 M
/ F- P ]! r4 F5 T现在终于删除我的狗屁加速...2 T" h- E7 i R& B! g1 c: {) k: B& x
S' a- T$ w3 U3 }' P
7 F4 D7 \0 c8 ^8 F$ e* l
5 b: B( Q9 D, Q8 f$ P5 _ |
|