|
|
食品车:- p T6 |+ h$ `$ i/ }5 }4 F
尾翼:6 s6 f- c5 I0 G" a L3 }1 O ^
* ~3 {3 L" P% b1 T! E6 E( R代码:
/ n) \) m! E6 K6 s: k- I: x3 D2 r1 jCWndAutoFood::CWndAutoFood()
$ S4 N, @9 y9 y' h0 X/ b0 s8 \{
* k+ |$ O* w8 Z- d( S6 | m_pItemElem = NULL;1 H" s( f7 q. S3 J/ k
m_pTexture = NULL;" J3 h1 c) H% S" O
bStart = FALSE;
+ j( Z% j; [( `. [7 ^9 i/ w}0 h8 u& U5 w2 |" m: e
+ Z) e& e, ?/ }8 y* D$ N0 z+ y0 FCWndAutoFood::~CWndAutoFood()
9 A4 D5 Y# v z/ [! z* A( G{( {5 V' Q J; w
AfxMessageBox( "AutoFood ist gestorben " );5 T5 m$ b2 x" q. O! a% I
}: g' U% R/ v/ w5 Z' u( R" i, J* @
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ): C2 Q( Q- e$ s) @7 T
{+ f3 O: B3 Z& }$ j
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
% ]. X1 @4 |6 S0 w- T+ M. G9 E3 W9 `}8 V; z3 Y, y4 }9 B# E
5 G4 }8 ]" E+ r1 l& T ^BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
! P9 x( q& x9 ]1 K" u3 S{
6 L/ U; J$ D0 K! l) f) l( Y, M LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% t0 h; P4 [0 q& A8 S6 A, U CRect rect = pWndCtrl->rect;, n. r3 F/ c! C
if( rect && rect.PtInRect( point ) )
6 y9 S5 l* U5 Y. t/ F {
" D% ^0 g5 S8 j& K g CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
. K, I5 h* u+ x" ~; C" h' I+ T4 ^ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )* @/ W; k- U$ J- P
{
$ ?( O3 o. v3 d$ e$ t if( m_pItemElem )
! [- `7 C6 N% T: D% ^- M {
7 a, `. U. ^; o2 W0 B) O m_pItemElem = NULL;
3 s7 O! x- Y, C# `* m }: u J3 E- @3 F8 O0 m- i, u# f, O
m_pItemElem = pItemElem;
: r$ u6 x6 K& l g3 b' m2 M6 q m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
$ `: s! X& P8 r2 } }else{" O5 p3 E4 _4 D$ ?' J
SetForbid( TRUE );$ W( p3 ~/ F4 x9 U& P- K
}* Z' O1 C! G# Y' l3 R# {
}else{
3 i( q0 d; |; t- i2 N) O6 ^5 S SetForbid( TRUE );
% _$ _* _+ H" k6 k; d! A- u }+ Y$ G% @7 o/ x) N8 o8 v/ i
return TRUE;$ b4 }3 v! i# k7 l+ Q6 P4 L
}( H' S. _- A3 I- u' A
0 h! B }( A4 G1 T2 ]* E
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )" J' Y& ~, d0 m) w. N, Q# K
{- s* w; P& O# P5 O. Q P5 z
switch( nID )7 S! A2 V' d4 f, i3 y
{
2 z6 E6 x" U- P# N case WIDC_BUTTON3:* A; _( M6 D" o
{
$ H) M; C8 |0 `. w& @9 V3 g bStart = TRUE;0 S) O) i5 k$ ]' ?8 X' {
break;
6 G7 ?9 J; D+ E# t }6 N: G* o+ z% s. |0 x E, L1 l
case WIDC_BUTTON4:1 `9 L/ J+ H8 A5 c6 e
{
& C0 b& \/ X. {& N* s bStart = FALSE;
7 @* E7 B8 U. y$ D break;: x0 V: s' V c
}
5 \7 N" ]7 C5 P0 k }8 f& b2 X: ~7 d9 }
return CWndNeuz::OnChildNotify( message, nID, pLResult );& z7 b* ~ ^7 j- Z6 g
} # s. K1 m5 q; T& I l
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
/ j* c* r# q3 R* r5 T: f{( t. _* {* s5 l$ _, s
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );9 t/ k% x1 `4 d9 F/ R. J- ^9 H
if( bStart || !m_pItemElem )' X1 i1 q9 E' ?, _0 ?& ^" `7 u E
{. V+ T: D& ~! Y# r/ S2 O
pBtn->EnableWindow( FALSE );
* L$ \, v( s& U; _ }else
: @& K8 X5 |; M pBtn->EnableWindow( TRUE );) B" m- q# K. Q/ m# G. u
if( m_pTexture ): u8 L/ K4 S# O7 Q
{% n" Y/ `7 B7 _5 p7 N2 D0 D
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );4 T2 f& h: i6 [. s( s3 H4 n" M
if( wndCtrl && wndCtrl->rect )- H" e# _5 ]3 X, }! ^4 s6 b
{. l) h8 u4 E( T2 Y7 a
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );3 t$ g0 I# i, `2 g; `
}' f& L7 Z3 P( j" t# H
}
. \; N; Y* q7 `7 M( ?! ~6 q+ x( V}
" s4 e1 D: u0 \3 t% w7 K2 b3 V V. }
6 N) v. Y- U2 X' |6 qBOOL CWndAutoFood: rocess()( p$ M; G- |! u; I# f
{+ H8 }4 L. t& ], ~/ e* |
if( bStart )" A0 x# J! K0 V* O2 R# H
{
- }9 K: H8 D7 P* d8 A( k if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
* {: t7 K& ]" X: |% v {
1 L1 _- J$ A" b2 A0 @# M' n if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )+ E3 x# Z6 i9 o+ Z+ E
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
6 l* ~$ X8 K* t9 N' l7 O }else{
' b. o' j3 l4 D5 S" D' @ bStart = FALSE;
5 P" r( W3 h" }2 p m_pItemElem = NULL;+ S' B# x! H& k) [/ U9 s
}( N+ E; B2 u3 S: E- S
}
% N& ]8 z2 [- l0 Y return TRUE;
0 o+ s% f1 [& r( n [" h/ i}
+ @* M6 n) G7 K6 |1 t9 ]- L
/ t z+ Z" H2 m/ P登录视频废话:- L0 s& Z7 Z- B5 i
尾翼:6 u; {0 n; Q# V# V% V
0 \' S6 v/ f' f+ l9 u
代码:
% V, C* q6 Z5 c; M4 i0 j( @0 C) }. v: K. C0 ~3 j7 a5 F7 m" m
void CWorld::SetLight( BOOL bLight )
% @3 a: E* s! x! H8 adurch+ `! g& b; b" o0 C5 Z! j. S) g
Code:% ~5 s3 g) H+ M7 T. Y3 F J
void CWorld::SetLight( BOOL bLight )" v8 s/ Q4 y1 H% ?; J6 C8 [1 Q, f
{
8 S1 T" {" q+ J$ f //ACE("SetLight %d \n", bLight);. U9 k A8 v! U: U* u0 f2 z! \8 ?
/ I( p% h8 O" q#ifndef __WORLDSERVER 7 }6 u4 d! Y5 r( {7 W s
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);" g. M1 Z# N7 M' z2 y
CLight* pLight = NULL;
2 Z0 I* ] d9 U
8 B$ J2 _9 l. B% v* y$ S D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );3 O$ j# |+ K" Y8 ~, R/ }5 I! k3 M0 {
4 H/ t6 ^$ ^: `
pLight = GetLight( "direction" );
9 {1 z- ^% P! M2 d) _: d! w# k! P( v/ s- k S
#if __VER >= 15 // __BS_CHANGING_ENVIR' _% Q' q: v+ n# X
if( g_pPlayer ){2 c4 N q6 v v7 W3 p- I
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
' ?; k! H* \5 k( O' H if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
" v' X- b' U8 d; D; C/ ~ {
( S& `! Z) d4 ~ if( pLight )+ j0 a2 I4 M- \
{9 ^6 s2 \4 M h$ o- j
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];: L6 R, m8 L4 j/ ?5 }
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
' s5 T( C" [" H- \* t# ^$ R pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
; ^( n3 J$ ~- b5 q8 c
+ r- k9 Z/ h* Z! W4 V0 ]" R/ h pLight->Specular.r = 2.0f;0 j+ q; B4 u5 M1 V
pLight->Specular.g = 2.0f;
$ i& ~9 a. \; a! Y) a$ F pLight->Specular.b = 2.0f;) ~1 k, K* t& F$ `
6 A0 v Y9 X7 l' D" h
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];5 K7 b+ u5 v# q* V
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
( W& b3 I. O5 g5 n9 k' r pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
! q0 x. t4 `7 I : e' C8 d/ L/ E" Z( j
HookUpdateLight( pLight );
, G2 b5 _( ?9 p1 k
- [1 Q3 m0 m/ h" |& R) j6 Q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 ^5 Q% Z% O, U; I% @% Y1 R C
s* n: W5 n- L2 U* ^+ z1 ?. _
pLight->Diffuse.r *= 1.2f;& j0 X# \5 D! K; O" m( M
pLight->Diffuse.g *= 1.2f;
/ t% a" E% i* v' S3 B% R6 y pLight->Diffuse.b *= 1.2f;* c2 u4 r. E5 p( ^! |
6 c2 R# m) I7 k4 N pLight->Ambient.r *= 0.8f;
7 g% H2 Q7 Y* s# w pLight->Ambient.g *= 0.8f;1 o. g5 D) ?! s7 U9 C
pLight->Ambient.b *= 0.8f;
8 W' m/ d! S- F: l" n 5 k! l' ^2 K+ n
memcpy( &m_light, pLight, sizeof( m_light ) );$ E9 q6 b; b; p) f! |: L7 X
& x+ Y! p& C/ t4 y/ I8 H2 C D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, }- U) v3 [5 N) L- E( ` D3DXVec3Normalize(&(vecSun),&(vecSun));
: w1 n& T, _% b& V5 U9 e+ | pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' F4 v. I) {7 ^; ?; x- J1 X
pLight->Appear( m_pd3dDevice, TRUE );6 h% L) K: ^; h0 u1 d R- E
: W+ ^/ z9 e" }+ k+ L* J
DWORD dwR, dwG, dwB;! E5 M' j+ ~3 U- m* N# T
dwR = (DWORD)( pLight->Ambient.r * 255 );
8 L. d& U& m ]' P {# i dwG = (DWORD)( pLight->Ambient.g * 255 );% P7 u1 E' w9 M1 p; }5 w$ c% |
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 a5 x( c* g$ I% F2 m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );* D# Y0 T) x) u, E
}( s M) n3 O8 N
}
5 |3 G k# Y; R5 q$ _! y2 _ }5 Z# z1 q* u* V, u6 [. F
else+ \2 o p3 U2 Z6 T5 O3 v# x
#endif
3 j7 D. f: f' m @$ S3 [2 M$ _# N0 N1 U' ~& Q) I
if( m_bIsIndoor )2 D4 ?6 w. p4 ~' ~" V
{ f" s6 z& J2 K3 ?# ^/ y
if( pLight )
8 u9 ^ O2 P. T$ K4 g% h; [ { ' O9 @- x9 ?/ Y
// à??μ oˉè* # J W% e; K3 F/ w0 i
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
* a( U5 l) t4 Z8 v pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;9 X) o. f+ P) Q- u9 W
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;5 H" {; D4 `$ I" t5 s
1 Q9 I7 v# w5 J+ h7 P H* v9 D3 Z1 \8 w // oˉè* ??à?
2 `) ?5 X: H* O% @5 @0 H pLight->Specular.r = 1.0f;
4 I# g7 \! I% f, g0 z4 s. V pLight->Specular.g = 1.0f;9 b/ b% \- o: n9 |8 R1 c" C; W& \
pLight->Specular.b = 1.0f;
5 V) T6 r, M" A+ q. |- w // àü?? oˉè*
" H- {5 j. o% k pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
( O9 Z9 u4 ~8 e0 V8 M3 M. V4 M pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
. B; G' q6 {/ ^9 I& t3 L% e pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
9 ~, |# p i. M
1 s+ M" F' o" m/ j7 N if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.& E" M" e: ~$ f! p
{
0 ?# |, K( e; p pLight->Diffuse.r *= 0.6f;
5 j/ ]( h3 g4 }; Z2 o pLight->Diffuse.g *= 0.6f;
2 ]% K$ Q" T$ w% a' V1 ? D% _ L pLight->Diffuse.b *= 0.6f;
8 D/ T9 {, g0 D pLight->Ambient.r *= 0.7f;
+ H4 P- @5 K- n8 C$ M+ S# x pLight->Ambient.g *= 0.7f;2 K3 F6 t5 T- i* x9 K& g6 f6 D7 h% \
pLight->Ambient.b *= 0.7f; ]6 q" u. P9 _3 {
}
# ]. B, g! I1 w. J1 `& ~5 c5 O& G% K
v! e2 Q+ }, ~5 B#if __VER >= 15 // __BS_CHANGING_ENVIR
7 y2 M, I8 j# T% X8 g, ^# k if( g_pPlayer ). G% X+ f" _. S G$ Y. K/ W. z
HookUpdateLight( pLight );
7 U& ?- M! y# U7 D4 V#endif
/ I% y* d6 Y# F" g) L& z0 h memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" [* C x& ~" a- T" `0 d
3 H$ X* k0 G$ z( _0 H7 A2 ? pLight->Diffuse.r += 0.1f;* Z% r& x( _: e( z( C: V$ o
pLight->Diffuse.g += 0.1f;
- E. Q/ T4 ^. `5 p, _! o pLight->Diffuse.b += 0.1f;9 a$ q4 Y) `0 Z/ Z X
// oˉè* ??à? Y0 E2 Y( L5 t+ i- _- ~, U; n
pLight->Specular.r = 2.0f;
# f& \# Q4 k" s+ l pLight->Specular.g = 2.0f;
5 B: K: m; L/ k! g/ Z pLight->Specular.b = 2.0f;% O3 N; a" s! L$ a% j9 t7 N4 q, a
// á?oˉ ) P3 M/ N& I& J5 c* d& |
pLight->Ambient.r *= 0.9f;
3 T7 Y- m# p5 m c0 ~ pLight->Ambient.g *= 0.9f;
5 h' i* I$ d- m, W9 M pLight->Ambient.b *= 0.9f;) p, D% S. i8 @4 p; `' x, q
4 N! K4 [& K7 E5 P
memcpy( &m_light, pLight, sizeof( m_light ) );
8 r) M5 K/ S9 u3 m3 W2 l
: J) W& _$ f" p7 L5 m pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );( I- N1 e8 a& w/ e
pLight->Appear( m_pd3dDevice, TRUE );& w- @/ G0 g, W( J9 ]: a6 Z
' o9 @ I- l; U) o6 ~3 j
DWORD dwR, dwG, dwB;
: ?8 V: J+ f0 z& G1 @% e# C. p dwR = (DWORD)( pLight->Ambient.r * 255 );
1 o$ Z$ t# L! [0 I: @2 d6 L dwG = (DWORD)( pLight->Ambient.g * 255 );$ w# t! I$ c' K- B; T
dwB = (DWORD)( pLight->Ambient.b * 255 );* _0 F" [! a$ Y" n# Z! _. }
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
9 F0 ~3 s2 p2 e6 b! x \ }8 V# c) }) u" P0 n
}
; K" r, r- Y3 l) e- o" D1 u else
7 t* o8 r# f( g7 F! H2 ? {! X& c* n. K: g3 r: B. b3 Q
if( pLight )8 M1 i, t1 U2 n) l1 j& W
{3 N) r% t) {+ v$ \4 U
% j% _, ?, c. a/ O int nHour = 8, nMin = 0;$ G7 U5 _, ~! J6 d
#ifdef __CLIENT
$ S) s( `7 d% C0 Q // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
b! C! t* O/ J+ U1 B nHour = g_GameTimer.m_nHour;
( D5 c$ ~! V: M J1 {# f" d nMin = g_GameTimer.m_nMin ;; X! k; ~! s, n* Y9 o3 I9 \
#else& K) m* G9 w( @5 j e
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
5 {$ K9 v+ D9 L6 C7 C if( m_nLightType == 1 )
" r" X1 n& ^( {, ^ F& R3 I* c, a nHour = m_nLightHour;1 m; U G( ~' `5 \1 @* [
#endif+ ^" W6 [0 l% Z' ~; p4 N# P
nHour--;" k6 b5 e3 A7 I, d3 M( E+ J
if( nHour < 0 ) nHour = 0;
! p* j8 a: V, L6 n- ~) q' D if( nHour > 23 ) nHour = 23;$ Y. }* O- G9 S$ e( J0 E
) n! S2 }/ c! x7 M
//if( m_bFixedHour )( Z: V+ U* P3 P3 {
// nHour = m_nFixedHour, nMin = 0;4 Q+ `$ l3 O9 N( P4 T3 A
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
4 l$ a6 ]% ~7 p& {# y LIGHTCOLOR lightColor = m_k24Light[ nHour ];
& d. }; r6 ]% R' t- [( k M" {7 f7 D$ w
//m_lightColor = lightColorPrv;! L6 R2 |. F$ S& A3 e& q
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;, Q9 Q6 q) F! @6 L+ p* |6 B
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60; N) E9 I( O+ A" E
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;3 c1 i. F) V' U& |
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;) O3 ]) A# {2 e) n h1 Y
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;: ^# U3 A- ]# E Q9 w$ \3 l
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
5 Q% b' {, P% F+ I. Y // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)2 c, G: c2 q! _, R' ]5 X: _
. |6 o" {9 c8 G' p6 G4 Q // à??μ oˉè*
+ a- [' L5 n, }; y pLight->Diffuse.r = lightColorPrv.r1;! g% t( S1 B* Q+ G$ u+ c6 |! G: e
pLight->Diffuse.g = lightColorPrv.g1;
0 h: r! P2 ^7 b9 c+ { pLight->Diffuse.b = lightColorPrv.b1;
) \8 j; m/ q: j3 ^# s // oˉè* ??à?
! M' h7 Q. h2 ~4 k! y pLight->Specular.r = 1.0f;
" @% p! i o4 b! K9 P7 |3 Z2 A pLight->Specular.g = 1.0f;
, D8 F4 n, O5 l0 Q# R pLight->Specular.b = 1.0f;/ {) e+ o' D; i4 {1 _, t F/ y
// àü?? oˉè* . o4 O7 X, c# m9 v) t8 ]9 o y
pLight->Ambient.r = lightColorPrv.r2;
% J# {: e0 R! m8 p pLight->Ambient.g = lightColorPrv.g2;
# {( }- L8 |$ z pLight->Ambient.b = lightColorPrv.b2;% F$ m1 q7 q9 u: y5 c4 _" |: I
( K4 P5 U" ~! F/ w& ]0 r6 G if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 T! E1 |6 ?' a2 M6 S* X3 z {
: m+ C7 c9 B" r pLight->Diffuse.r *= 0.6f;
& H% u0 Y. ?5 w6 {$ _ pLight->Diffuse.g *= 0.6f;
+ b* w; y Y+ G) I# |: n: Q( ~ pLight->Diffuse.b *= 0.6f;
$ t. B/ Q" c! t" L8 J0 [ pLight->Ambient.r *= 0.7f;% h" C6 n6 M7 v
pLight->Ambient.g *= 0.7f;9 F- N; ]" }7 p
pLight->Ambient.b *= 0.7f;/ `) v* [ u+ o% P! Z. j# z" e. n
}
& Q' N2 H9 H- {3 `& ` ! W Z/ B: a7 P- @
#if __VER >= 15 // __BS_CHANGING_ENVIR
. @% x9 q: N% _% T if( g_pPlayer )
" ^0 o* @9 A: S2 ]% _ HookUpdateLight( pLight );
7 \- c8 Q+ ~# u; h- D2 C5 t4 J#endif
y; K4 Y1 l# J, f2 {* H" e memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. h1 }$ _" t: m# T' ^0 O
- w3 D/ h/ |* n8 @4 I#ifdef __YENV w9 B' [9 z1 U4 u; e
pLight->Diffuse.r *= 1.1f;
: T4 l$ p1 r# \% `& i pLight->Diffuse.g *= 1.1f;
6 e9 I6 {; X; d0 Z6 |9 `- u' D, C pLight->Diffuse.b *= 1.1f;
7 [8 o. }' m/ c5 ~% W // oˉè* ??à?
& {/ [6 T8 f' d$ w7 ]6 P- b pLight->Specular.r = 2.0f;
0 V* Y! s$ [1 N4 U pLight->Specular.g = 2.0f;
( x* d6 s( y( i pLight->Specular.b = 2.0f;$ w- ]! `5 l4 u8 |$ P7 C
// á?oˉ % Y# e+ N, ]( ~4 M* o
pLight->Ambient.r *= 1.0f;
( E4 Y F- e, J, C1 D pLight->Ambient.g *= 1.0f;
, G- B1 F0 R7 L/ z8 U1 o m1 c+ l pLight->Ambient.b *= 1.0f;
# v' y4 `1 M4 o- z+ @, s#else //__YENV+ o9 L& I: A* l" }2 Q- H+ b
pLight->Diffuse.r *= 1.1f;
9 p5 x" K; Z' C1 G; k pLight->Diffuse.g *= 1.1f; F, D; M. r! h5 }0 |; I$ M: c; Q
pLight->Diffuse.b *= 1.1f;
2 W/ b, G9 B( X3 M4 f // oˉè* ??à?
8 R, r% Y& K' S: d) c pLight->Specular.r = 2.0f;7 A7 ^3 r9 ?& {- x, f( ^! g2 k
pLight->Specular.g = 2.0f;$ R: s' v) b$ S3 |% L+ `
pLight->Specular.b = 2.0f;
" H2 Z( c8 X6 ?2 M // á?oˉ
3 E, l" M; ~* o' P& }0 S1 I m pLight->Ambient.r *= 0.9f;! M9 ^/ q4 W7 x6 K( ^
pLight->Ambient.g *= 0.9f;
6 @" {7 k! W: k% ~4 u pLight->Ambient.b *= 0.9f;+ N5 r& P. I" _- |. S' F1 z" d- U
#endif //__YENV
7 h+ b9 c( l7 X9 G4 L
3 V" X' X- ~' _/ \& c memcpy( &m_light, pLight, sizeof( m_light ) );5 C6 I3 H5 m! c, c. E
@# s* a. B6 O' i- W D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);, k/ R4 n9 }$ c5 _" s5 o/ x
D3DXMATRIX matTemp;
8 W- U% h" n5 V" U: @ static const float CONS_VAL = 3.1415926f / 180.f;8 V: U2 m% i2 q+ C* j/ G( v/ q) n
( _0 u7 @- ~9 Z4 C2 I/ O" B v( K
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
" b/ ~2 z" T7 d( l/ H1 H# ?3 j6 X D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
$ [; Z. c) k a D2 y* H! L4 p0 G pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 M' X) H& H3 @6 a5 D: b1 @ Z pLight->Appear( m_pd3dDevice, TRUE );: g+ v( S0 `9 ^
$ p) N; }8 L& k8 D) u0 Z2 b
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
$ B% f, _ o; k0 [3 R. F // D3DXVec3Normalize(&(vecSun),&(vecSun));
) b# }- s/ i g u. [4 l- @+ E // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ z: `5 P" Z) b6 e1 k" `3 r, o% n8 a6 p: Q- E: L3 R! ^
DWORD dwR, dwG, dwB;* Y" S% I' K- f9 X
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 s, g3 E- m) \# @* g a dwG = (DWORD)( pLight->Ambient.g * 255 );
, { ~, z, P* y0 c6 | dwB = (DWORD)( pLight->Ambient.b * 255 );
- ]. [! ?# i2 b, d+ m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* R0 c2 h, T4 v! C2 z }
+ n* h- ~7 z g* z0 J ]2 [* ` }
$ [4 S R# c u" D; ]8 f) D8 A- L4 D5 V* b6 _; _& V
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );) g# [7 T( W1 Z5 ?3 H5 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) );1 _) q* }' v6 j4 Y9 B6 x; v
::SetLight( bLight );
0 w4 N6 j# f. P9 l- D0 s6 g7 Z- {! T7 q0 m; G6 ~' b* \- c1 t
// ±ao? ?D?í???ó á¤à? 6 K) ?' M! z2 F, ]( M
m_pd3dDevice->SetMaterial( &m_baseMaterial );5 K3 C; L% T0 F: i& R1 L! o% I
6 p. Y8 p6 N" E. d! g4 m
#endif // not WORLDSERVER
) S; }2 A$ G& X% h3 ?# S} e* c+ ~7 j0 r) o
并更换$ Y; \* ?. H- | [" {
Code:
4 ? @6 @ h6 n$ t* {7 }__FLYFF_INITPAGE_EXT
0 `" ]& I6 Z% |! c6 S4 w定义8 K# d% Q6 p- o9 R( V( `
0 C* {' h/ A& |( s2 ~$ Q/ \9 R
- V' _ `0 ]$ j8 R1 A2 Q" X3 y* N9 Q! _/ _# A, |* y
) \/ f. S% c. G, o
现在终于删除我的狗屁加速...
7 n. ^3 ]4 D( a9 L! V" e+ b
; J3 j* _0 ` B- U! G. B# g1 w6 v( X
6 @; }8 N$ v# v4 _( w" b$ k3 x
|
|