|
|
食品车:' n2 ~' a) }- q
尾翼:4 o$ M6 O9 _# m5 b) F+ b
. A5 y$ }6 t! z7 a: ~8 g
代码:
4 t$ I5 _$ `" m' ~ A9 qCWndAutoFood::CWndAutoFood()* I2 s3 R: I( Y D- \# Q
{( w2 ~& z4 W; i1 E6 _
m_pItemElem = NULL;
# z: l& Q9 i; j, h) v m_pTexture = NULL;
: T9 A* M+ q8 ^4 t- n bStart = FALSE;
8 g% A3 t7 Y% Y6 X}
4 S8 i6 ?# |! b! ]
2 N! w* S$ ]. o7 o: _& hCWndAutoFood::~CWndAutoFood()
* _1 O( j" n- |3 p5 M) _4 l{
, [+ f4 P9 [2 J8 j7 b) H AfxMessageBox( "AutoFood ist gestorben " );3 n j4 Z0 [% T3 u" m/ H
}2 f8 i x6 n$ ]( M3 s
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
6 l/ B7 H0 z2 G' ~( ]- ~8 D{2 o# J7 X( L, F
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
7 c& I5 `$ }# ?" W1 r3 k}
1 j) q5 N' w- d3 a7 q5 }3 r5 u9 U+ Y7 Q0 U" `
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )1 v+ T# Q% o$ R, N' c( p' I
{
: p* j" w" r, N( | LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 Y% [2 k- k7 [3 P o
CRect rect = pWndCtrl->rect;$ f( \' M- g) [( k$ U8 u4 `8 y6 o
if( rect && rect.PtInRect( point ) )
0 N5 \, t% b! ~& c9 R {
3 D, T+ U' G* r2 v2 m CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );( C6 g$ ?4 ^) q% `# Z
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )5 z/ n+ G; J% f! R7 w) u' a1 B& r
{
' [3 _: B& h+ v% S- X9 ~ if( m_pItemElem )
5 n b# P6 w' H; h {
8 ]9 [. `7 c8 a m_pItemElem = NULL;, v6 T' S( n% F' Z$ O
}
1 s! M3 ~2 O' ~: x' C5 v+ m0 L+ ^ m_pItemElem = pItemElem;1 H) Z( I" l5 t( `( S- g( F0 Q `9 g
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );. l. r0 @1 V2 y) h7 j
}else{
7 d% Q4 x. \$ Z( k4 N% P. Z( s SetForbid( TRUE );/ x( g# A' f" B* [1 @0 W2 Q; U
}
- X. S; Q/ A" B6 l }else{
+ l N: E' J9 I: H SetForbid( TRUE );
0 z, A5 m2 {; J+ K( v }# p, y j0 c7 |# F+ v3 ^/ o. z: e
return TRUE;
3 p- J* ~% |3 l& O}3 j# k/ t# K- n! b5 f k
8 f8 h0 T4 ?( a- [. \( B8 X" s2 P
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 Z" K4 A/ ]8 z& \/ s3 O8 s; Q
{
3 l7 D# u" U o5 t switch( nID )5 U d9 p, _3 B+ F9 ^) B8 V
{
8 q- d) X6 h x" O% S' B case WIDC_BUTTON3:
( Q5 E0 X8 T$ X7 ~$ H {
3 y3 t9 P" c. E8 _8 S bStart = TRUE;, _; M! _1 K. |( p
break;
, i' S# p( r9 f# G( C }
0 p! y! Y: H w" i7 S$ q case WIDC_BUTTON4:7 ]* q+ z( I* _& ?; J
{, T7 D) Z5 ` t7 r# B
bStart = FALSE;0 U5 q! j+ I4 h# Y% w0 g; N2 M- t
break;1 H4 p: _) ~9 ?8 F1 g/ y: ~
}: o. r8 a: @8 A8 }/ c) Z6 m0 l
}: G4 f0 A) g5 m
return CWndNeuz::OnChildNotify( message, nID, pLResult );' C J; f: N3 S2 s! `9 }6 G1 @* \4 ^
} , b, _, ]/ z7 I9 \5 K
void CWndAutoFood::OnDraw( C2DRender* p2DRender )& E9 T- S% M- `4 U7 f; U: Y5 x- X
{
4 K/ l0 K) ?' h CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
" t2 Q; q: [$ e$ U& O( u$ d# F i$ k if( bStart || !m_pItemElem )% M' [! ~6 a# A* X" V7 G, _
{' |, b9 N& Y: P! m, N2 C+ w( ]
pBtn->EnableWindow( FALSE );8 v7 _3 f7 T5 X8 K
}else8 A6 O8 @" q/ R* @/ `- D
pBtn->EnableWindow( TRUE );2 u' \/ m% L. R
if( m_pTexture ): b5 S$ s- o0 \2 t; b) K
{
5 ?# X* [! i/ |, u LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );0 z5 D( w; d% [) e" L! V: T w
if( wndCtrl && wndCtrl->rect )* ~# q& h! n7 s) r+ L5 B5 b! A% k
{
: f3 l3 K6 ~2 V# k9 x m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );2 c) v" i# ~( v9 Q* |2 G
}4 q; o, v: [: f3 k
}3 W7 N; E$ {- C; R( g% r( o. k
}0 V! h: I9 m* ]
4 {2 }0 H6 ^4 b" LBOOL CWndAutoFood: rocess()9 ~9 _) g) ` q/ X' m
{
9 P2 Z5 C& s1 f4 o if( bStart ). w4 j; D: j% c6 Z- c" N1 Y
{
2 p$ {# w: Y" N. k8 g3 ~ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
( {7 l* s, j6 \+ S6 V {
8 p7 k9 H e4 | if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
- c+ X5 A8 |( m g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );: k3 [+ m5 P: X* D
}else{/ X/ f9 F0 \) S2 D( K- W6 R
bStart = FALSE;( A! D9 s: t& i7 i; R" b
m_pItemElem = NULL;) j5 P3 C! n' Y6 F* a
}+ k6 F* @7 \& v6 \. ?
}5 w. a+ ]( Q, B q2 M* i
return TRUE;
+ @$ _+ K. }) j5 s/ ~}
T9 [$ T- |+ X; F" b1 ~6 y
, B( y' H/ R$ P登录视频废话:$ ^. z) q, h5 b7 z4 N) B* Q- S
尾翼:6 n5 W" Y; r: ]0 A) |
: z! q4 _2 c& w, M" X1 t; y
代码:
/ w( o" N9 Z1 C& Z$ h; d( O1 j* H+ ^; c4 m# @
void CWorld::SetLight( BOOL bLight )& a0 |! @# K: X: _- h+ t4 K/ a
durch/ C1 D; Y$ d! O/ T$ ~
Code:7 v9 G; {2 x! u, X3 d# Q- C
void CWorld::SetLight( BOOL bLight )& ^- Q& D! A8 ]9 |5 h- L' k5 W
{
$ G# l+ _( t: T! P //ACE("SetLight %d \n", bLight);
* A1 f) A& l4 l* @% D. y( F + w) W F4 R* Z: }) K8 ` i
#ifndef __WORLDSERVER 1 U$ m5 T6 p% T' x5 W
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
" \4 I8 x7 B( s& X CLight* pLight = NULL;
/ j( ], |) _4 i9 b8 V V4 q1 W$ q
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );! S9 |8 z" P' |0 H1 ~5 |
9 a3 l% D) Y% d# K) @) L pLight = GetLight( "direction" );
. N* q. i" N8 Z$ ?* {7 B. T$ R1 j8 ]/ B0 U
#if __VER >= 15 // __BS_CHANGING_ENVIR
. q2 h6 N. C" j m if( g_pPlayer ){) M* o K# o3 [' @5 _9 t
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );9 f( g1 [5 Y6 J* A1 U A
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!4 \9 J. O* o& s' K3 W z, Y
{
t# d! D& B+ m9 j ~ if( pLight )& J; g y5 @) s" d! U# ], _; y
{; P- X. R: V/ ^- h6 Y, T9 @! F
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) f* T( L: ?: ~6 q5 h6 O) b
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];% f$ B9 B; W2 L: c$ Y
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
' K. m( l$ C( q1 d }8 `+ y
1 p2 b; N% M( m9 t* ?8 _3 n1 w4 b pLight->Specular.r = 2.0f;5 e) f& ~' R8 e/ C1 k, X) H
pLight->Specular.g = 2.0f;. E9 O) R8 U7 F9 j9 s$ o
pLight->Specular.b = 2.0f;
, l; E; D5 m, g5 B& M) K! [0 z
3 B$ M/ g f @1 h3 W pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];' U7 {9 d. b/ `! g
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! S5 O' N' ^; Q. F+ R) @; p
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];$ I/ |& W* k, t/ V" l; J: L
; w# F6 k* b% m HookUpdateLight( pLight );
+ Z' @: d2 m6 k' G" l! }: j5 d+ S0 q9 J! S- t# ?' v% }! e
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( W, {: H. f3 j* _ 3 J: p3 W+ r# f
pLight->Diffuse.r *= 1.2f;/ N/ m) ?, t2 f5 ?( w' w; N- i
pLight->Diffuse.g *= 1.2f;
0 R: R" v" Y+ Y+ X pLight->Diffuse.b *= 1.2f;
: i3 n1 I+ W. F1 k! p
) n: z1 `+ @0 S$ [5 w( \+ [6 m pLight->Ambient.r *= 0.8f;3 ]3 b+ ~; A- |& x
pLight->Ambient.g *= 0.8f;: @* Z' g/ G0 I/ ?% G( J4 q' S. W& X
pLight->Ambient.b *= 0.8f;
: _8 g4 r' u! `$ m4 G9 D) H
4 p6 d) G( m7 T: \ memcpy( &m_light, pLight, sizeof( m_light ) ); [7 k. |/ d+ ~- y" R# j' d+ s" [
, p$ C; s- c1 M
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
9 r0 h# }: x Z1 A0 Q4 b3 \5 i g( ] D3DXVec3Normalize(&(vecSun),&(vecSun));: w7 h$ ~2 x3 R0 N% K. B
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 `. g9 {8 i* l4 {; }2 v pLight->Appear( m_pd3dDevice, TRUE );9 `$ W A" l: G0 X; i2 X
4 Y( ~. x# _' d+ _! T0 v
DWORD dwR, dwG, dwB;& R. N4 T1 ] w/ Y
dwR = (DWORD)( pLight->Ambient.r * 255 );
# O7 O/ ]$ {" } |3 ^$ Z2 |0 r dwG = (DWORD)( pLight->Ambient.g * 255 );; n$ G- f# \# p2 j
dwB = (DWORD)( pLight->Ambient.b * 255 );
% @: T+ A* n H2 Q* k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ L- Q0 A- h1 ?- \5 b }' d. s; W2 U& r2 j! c
}
2 Z) Q5 t; k& n }& _' P# t: ]# e
else
- Q& }8 l( T7 h/ j! T#endif
. S- H& r' _( Z8 U/ c% P+ k! \7 `' s1 x! k
if( m_bIsIndoor )' z* I2 b( a" R9 K$ B& u6 b# e1 W
{) T$ z/ y4 c r9 g7 i" b8 _- y
if( pLight )8 O4 C6 k9 `) X, r5 v
{
& m) K$ E9 N; G9 E1 m8 b$ i // à??μ oˉè*
4 T$ _# Z$ z0 ]$ Q& @4 J8 \ H* `$ w pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
: c. Q& X! e0 n) X6 E4 Z4 K pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;* G# C+ Z( q' t& Z
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;4 U! K9 P- M# _$ o5 I% a" B
, q6 I5 \8 r/ g! [4 q( n6 r // oˉè* ??à?
1 W/ { e/ g" m0 G& b F( x pLight->Specular.r = 1.0f;
4 E$ ]4 F9 i5 {2 j pLight->Specular.g = 1.0f;
, `/ j9 Q1 a: Q- `& r5 N# O8 d pLight->Specular.b = 1.0f;1 K3 p: L. }& G- k
// àü?? oˉè* ' n# M- E7 |8 F* q4 J
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
9 v0 [4 _7 m9 r) x; Y6 | u& d) g pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
4 {# s M8 V3 T pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
' H T/ O, k3 E! a9 _
7 F6 d6 b# P7 h8 b6 k* K if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
) {2 |& @9 Y- }( N {) z3 [) |9 U0 a* D! ~, U
pLight->Diffuse.r *= 0.6f;
( C2 ^6 j' _$ n; Z pLight->Diffuse.g *= 0.6f;8 f0 p/ M$ O0 p# Z
pLight->Diffuse.b *= 0.6f;7 I7 o) M$ q/ `3 A
pLight->Ambient.r *= 0.7f;
f1 |9 J6 z/ U4 C/ O2 k2 b I pLight->Ambient.g *= 0.7f;
8 R0 W1 K# L5 O! P! w6 m pLight->Ambient.b *= 0.7f;
2 o" X8 y$ \5 O N( S }8 a2 G! \' x' f7 H/ B! [
* c+ C% z: @# K7 {, r#if __VER >= 15 // __BS_CHANGING_ENVIR
$ a( H5 p, N" d% A i if( g_pPlayer )9 u3 a- i6 f ?0 Z) g( T" h2 H
HookUpdateLight( pLight );" A+ W# S/ A7 z a
#endif7 y0 i* H& c) w3 D+ F' t
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& H. N3 N, Q8 V1 n3 {! v6 N0 n
: ?. i6 U5 V4 s3 Q* m. M pLight->Diffuse.r += 0.1f;
b2 u0 |# M" \: Y7 ^ j pLight->Diffuse.g += 0.1f;! v' F8 G, X( r1 L
pLight->Diffuse.b += 0.1f;* Y6 D; j* C9 S. {7 O# `* v# ]2 n& o
// oˉè* ??à?
7 K! U u X& c/ D. x& F' x pLight->Specular.r = 2.0f;) u+ m6 v- k- x( E) h% M
pLight->Specular.g = 2.0f;
, V' ~$ H0 n& W) _2 R/ V5 d# u pLight->Specular.b = 2.0f;
& @0 Z8 t+ y8 i" r% U // á?oˉ
. Z8 [& y% q1 j" L pLight->Ambient.r *= 0.9f;
. z: w4 N* S3 S. x/ I pLight->Ambient.g *= 0.9f;: ]4 p' K) C. y: t3 J" i: M7 e3 w
pLight->Ambient.b *= 0.9f;
: V" w5 O6 a7 @/ g; o/ ?- A/ b8 O( N# ?( n7 n I% M
memcpy( &m_light, pLight, sizeof( m_light ) );" G) S9 }. x: _6 q: x5 ^
! v- H* ^1 _& ]6 \. ~$ {
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
4 s3 O" J. W [) d6 `& T' F4 b pLight->Appear( m_pd3dDevice, TRUE );
6 |7 s q; S; |3 J
# h' P, M1 v; |8 @ DWORD dwR, dwG, dwB;
$ z* l; o. K6 A7 B( N W0 B% c( V8 i* ~ dwR = (DWORD)( pLight->Ambient.r * 255 );
/ ?* g: u: G4 _" O7 O1 R dwG = (DWORD)( pLight->Ambient.g * 255 );
, Z. ~& e/ p0 n# L dwB = (DWORD)( pLight->Ambient.b * 255 );
% } g, J( D0 w3 } dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; y) X0 L, L L: y c6 K }
2 }, ]2 c$ @, u0 M6 L }9 f! v# D3 [) a) H& o% e
else
! I+ h& C! r' S1 R2 F+ N6 g {! y: r/ D/ Q, r, E% N, [. X2 }+ l
if( pLight )# f1 H' P2 R; O( ]* q
{9 A, O. B5 F. T S& K
2 l! O1 S' [( j3 b$ G- T
int nHour = 8, nMin = 0;; W: m: k* H" [8 q1 v
#ifdef __CLIENT
5 i( P+ L* c! U1 w3 |) E5 i // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ' x' Q$ @) T4 h
nHour = g_GameTimer.m_nHour;" t; T- Z+ j/ \
nMin = g_GameTimer.m_nMin ;
3 r+ M& n- a7 C$ x+ P #else
8 e& O/ M( }& w- m! \ l/ q // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.. a: a `3 c- P) z+ ^8 ?
if( m_nLightType == 1 )
% \/ G# }: V: {: |3 |, e nHour = m_nLightHour;
+ o U W2 M) C Z5 H; M; n- u' M5 U4 A #endif
1 U9 Y5 a5 }1 D. z0 b' u nHour--;
' w" w0 O! i; R' F+ ~ if( nHour < 0 ) nHour = 0;; I! {: b3 F1 k' p8 X* X( s
if( nHour > 23 ) nHour = 23;: [& J3 \3 U8 Y
5 _. s/ e7 K3 y2 c% `+ X' ^( Z //if( m_bFixedHour )
( P) j8 f) n2 m5 x- A: w // nHour = m_nFixedHour, nMin = 0;7 F# p3 V; X2 b+ Y
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
2 D2 t- S( {0 k LIGHTCOLOR lightColor = m_k24Light[ nHour ];
; P6 l6 n7 j3 t/ X. H) R+ i0 Q* j. j2 @# w# {& B) j0 b2 V5 h7 }3 ^5 L
//m_lightColor = lightColorPrv;
1 M4 r+ G F# u3 s% U/ X# I lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;% a1 J" x' t. ~3 i, s
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
' i/ h8 k" M; v1 k7 K lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;, U- e* j# G* W' \
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- \& V3 l" r2 y/ `0 \. z8 i lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
3 Z5 T' H) P3 a, u4 x& Z! r1 g lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
* x9 t8 {( }3 s! ?. R* t // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
, a, ^5 ^+ T" c. b/ o! w* L
9 Q! Z4 H+ O: @" l5 [ // à??μ oˉè* 0 _/ p9 R2 q" @! u
pLight->Diffuse.r = lightColorPrv.r1;
( f. Q2 K3 a1 }9 v5 g0 `9 T+ ~7 O pLight->Diffuse.g = lightColorPrv.g1;
& V1 d" W7 V6 T/ J+ z pLight->Diffuse.b = lightColorPrv.b1;
6 s' U; [. j3 P. {, n // oˉè* ??à?
) X V. z' }: |4 E6 x pLight->Specular.r = 1.0f;
) R7 X+ ~* R$ }9 Q! O pLight->Specular.g = 1.0f;
8 t: z% H, W5 l/ G9 S* H pLight->Specular.b = 1.0f;
1 l4 l/ v3 o7 ? // àü?? oˉè* $ m% D4 x4 W) j
pLight->Ambient.r = lightColorPrv.r2;2 ~& @3 T7 i6 A
pLight->Ambient.g = lightColorPrv.g2;
* s9 T% G8 P5 j+ M" k; t pLight->Ambient.b = lightColorPrv.b2;
; N: d9 ^2 E* [# I+ o& B' X# J0 [8 z- E( u; Z
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
. k0 [ [, d5 m6 W4 j {
^. E* l. k( U7 k& u" Y pLight->Diffuse.r *= 0.6f;% Y/ L+ j8 X# |' s. O: ~
pLight->Diffuse.g *= 0.6f;
9 b- W* t5 ]0 Q0 d& E& P0 H' I$ [. D pLight->Diffuse.b *= 0.6f;+ B( d2 e$ g% M: ^$ y
pLight->Ambient.r *= 0.7f;. C1 w6 M* @+ L" t5 n
pLight->Ambient.g *= 0.7f;; T* {. q6 [, V2 k: }
pLight->Ambient.b *= 0.7f;9 S0 D3 k5 f6 J3 s9 f( ]* W
}
/ m2 k8 }6 M' C7 Y: ~0 F: i
s a! K' c: I+ e+ f% i#if __VER >= 15 // __BS_CHANGING_ENVIR- T' X8 [+ e( b2 j. }! x6 R
if( g_pPlayer )5 `* R! }6 Y+ z' g1 L
HookUpdateLight( pLight ); / A4 \: Q( ?5 ]% E/ [
#endif% k" A1 p7 t6 S, L6 [0 t% C+ C
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ ?) P" C5 ]4 M7 R
) o. j; l- D6 n#ifdef __YENV* n8 b& {2 `% }
pLight->Diffuse.r *= 1.1f;& Z1 [: z! a6 x0 }9 n1 m* H8 k3 v
pLight->Diffuse.g *= 1.1f;
% [6 u, G; l& j3 X* } pLight->Diffuse.b *= 1.1f;! _) ~9 u* s7 _ k. {
// oˉè* ??à? ( O% o6 C, `5 Z2 U, d" [
pLight->Specular.r = 2.0f;
2 o |- _7 ?3 i. E2 B1 e5 E/ { pLight->Specular.g = 2.0f;
; J- \3 |$ T0 k" M7 y7 x pLight->Specular.b = 2.0f;
9 l7 L1 k; J7 b& U* X // á?oˉ
6 M1 W7 U. n J) O pLight->Ambient.r *= 1.0f;
/ R8 r1 j6 S+ F pLight->Ambient.g *= 1.0f;
4 [; b$ I# A8 B pLight->Ambient.b *= 1.0f;
. Q! c1 @9 [. d2 n5 A M#else //__YENV' e& ~' ]# |. B" \5 Z$ m) h
pLight->Diffuse.r *= 1.1f;4 L3 W* Q) @% c+ N
pLight->Diffuse.g *= 1.1f;
0 J+ H0 A" X5 \( j5 |$ Z$ G pLight->Diffuse.b *= 1.1f;
7 {4 @7 o, j1 d9 b2 v // oˉè* ??à? $ j2 f4 ?0 Y1 k% L7 U- O% T! K0 L
pLight->Specular.r = 2.0f;7 ~- x9 f+ P0 ^ c7 {- D% x7 v
pLight->Specular.g = 2.0f;
& Q: A% ]/ B; W5 R pLight->Specular.b = 2.0f;
3 _9 H" P& X0 H- C5 c, E; I% @ // á?oˉ ( _! r% b% |1 g% I: j4 l
pLight->Ambient.r *= 0.9f;* Z f+ j; }. x# S
pLight->Ambient.g *= 0.9f;
6 q; s- k9 U! M: P; G& B, ^6 K' B3 f pLight->Ambient.b *= 0.9f;
- k3 k: C" x' a/ S# `#endif //__YENV
: I$ L# B) b- B! a
2 _# g8 V) c* _ j; B0 s r' e memcpy( &m_light, pLight, sizeof( m_light ) );% v) E" m3 G; }* h4 b
# ~& b+ H/ W. f" ? {0 `- p D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
6 M9 N3 E7 h4 s) t; H4 F! N D3DXMATRIX matTemp;
n: ~; ?, f' A- x; T' Y' k static const float CONS_VAL = 3.1415926f / 180.f;
+ @# ?+ x8 w. [: k L& E' [
/ t" B6 J+ ]4 W/ | D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
1 B w) |1 y ^3 U4 f/ M D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
5 D7 K7 t, C) Y I6 d6 f0 m pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ; i5 ^: k3 B. D, R+ M
pLight->Appear( m_pd3dDevice, TRUE );
; m; u# {9 T0 s( D; `9 K$ b1 M& x& n; ]# H- u
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);, r" O4 F+ S+ ?0 ^- Y, O
// D3DXVec3Normalize(&(vecSun),&(vecSun));- B3 ]6 g( L: X7 o
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' ^: U5 g$ ~8 d# a. R) C% n
# J0 ^5 ]8 @1 L% z3 X% z- S
DWORD dwR, dwG, dwB;5 i" Y! n; i2 C4 U# w* _
dwR = (DWORD)( pLight->Ambient.r * 255 );
# p4 ^* F0 n: {5 m dwG = (DWORD)( pLight->Ambient.g * 255 );7 ^0 ], y0 Q* Y
dwB = (DWORD)( pLight->Ambient.b * 255 );$ y( S. E5 d: D1 H4 r5 \
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
/ B6 J5 k8 |5 t" O' v) J# g# a- r }
1 A0 e N n8 r4 K- f }
% A/ e$ H. \$ M
) ]0 B" H9 W3 J3 a M$ _ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );, U0 e- R% |5 p8 A+ N9 v( {
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) );. L. [, z! g( {3 s
::SetLight( bLight );
7 q' m/ q$ z" A! A% e2 T& k/ q/ W3 R; S# w
// ±ao? ?D?í???ó á¤à? ) b: _/ n6 x5 |/ C. j0 @! @
m_pd3dDevice->SetMaterial( &m_baseMaterial );; n8 x$ e% x) _, L; p+ ^
! v3 X2 b% f- z1 ~+ u+ r6 i
#endif // not WORLDSERVER0 F, r0 |& {$ C9 F
}
5 i( h4 n) B) B8 C并更换' }) i/ J8 z/ W* X
Code:% R% O( y' S4 H7 N
__FLYFF_INITPAGE_EXT
, R: I' [* g w& P8 {; _定义0 o0 |( H' ^5 w% V
/ s: `# Q: z L4 D# F- U v3 v
: U5 P4 c& T9 }* T) D
9 p8 H* s* c, D, r$ q2 a. {4 Z$ v! `
现在终于删除我的狗屁加速...
. R7 o8 O* W& \) I1 z5 b( B U) ~/ M
& z5 u1 L5 s# E9 s
6 R% F& R+ _3 [ F+ W* ]5 b
|
|