|
|
食品车:/ M9 C* F. R1 v D7 }$ k- L- E
尾翼:& v" N# |- N- J: w9 R+ g
) o9 [8 s5 x! `: f/ R
代码:
( e( H2 z9 W, O7 o6 {2 ^+ _CWndAutoFood::CWndAutoFood()
# a8 {+ r+ r6 Y# Q; x{
( e8 `; M- i! n6 f m_pItemElem = NULL;$ ] G, u9 z6 }. m. d5 V( u+ h
m_pTexture = NULL;8 B. g6 O" f! F
bStart = FALSE;
! t7 Q/ H$ R7 W$ R* [ U/ G, R}
- p3 F" A8 ~( K. J/ P1 i7 A9 M& U4 |* f0 h
CWndAutoFood::~CWndAutoFood()
( G) S6 `& N3 n+ N7 r3 L{# X+ } r, @# f X8 Q( m( _
AfxMessageBox( "AutoFood ist gestorben " );3 T+ b# f* W, S& c
}# D) h% y$ ^' b% K0 `" h* ~
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
& B8 b5 z4 M' d6 K; F: C/ ]{; u: a$ D0 D0 b5 P
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );5 {0 j3 R: S: `9 F) w
}
5 o# s; {3 K8 s0 ^1 {/ k
1 b. ? Y. G' b, v: ~& u& gBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ); s: i% d9 ?# f* j& L& J! g- r1 \
{& U1 g4 I% ], H& R. e- d$ o5 a
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; o9 N8 W' m, U7 v# [ CRect rect = pWndCtrl->rect;
( q7 J% f' r! W% U* ~ if( rect && rect.PtInRect( point ) )1 f) `* Z! k2 a5 ]3 ]4 y, z) y
{( o, g1 X9 M: s ~; Q' o2 P! s
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
3 {4 T! h6 h% _% z" C if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )% y* ?2 Z- L' ]/ N
{ Y, `* F& P" e% i& I0 Y& L
if( m_pItemElem )- T3 r' c8 A$ s. _+ |& x& W I
{
9 r0 O* j6 y* |+ y: K4 q m_pItemElem = NULL;1 f# r+ h( P: H1 N7 S
}6 j, J+ l2 j' x3 ] ]) Q9 s
m_pItemElem = pItemElem;) q1 [) F* U9 m# Z: D, C$ s! e
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
; S/ P+ {/ h' c6 W. u: J \: P }else{ X8 R- X- `* y, G+ N0 Q
SetForbid( TRUE );6 x0 K7 e9 b% Z
}
0 e/ m- b/ W* I( t }else{ l. w( W+ \1 F) k% w8 i+ r
SetForbid( TRUE );% q7 @1 s5 O( s! ~
}
: `' |5 H% e% `* {* M; b* j1 Y return TRUE;# u9 D; t+ q# k0 |) n, p8 Y s
}" [6 V7 R- x8 q9 n/ j; m
) Y3 [1 ]2 W; M4 I: F) C9 [
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
5 l% B' X9 _" R9 ?% {2 e& B; e; B{
, Z8 y$ G7 a2 W$ `9 `5 { switch( nID )
8 v# Y1 b: `/ [5 C6 y {% g5 C7 u" S* u
case WIDC_BUTTON3:
9 }4 p8 X* l% E; ` {
- A' i7 O, k3 u! O9 K" d( X bStart = TRUE;, N* M! J: U) d" V) E/ L/ a6 C8 x6 @
break;7 y r0 s# {- ^/ h d, F) p, ^
}, \1 n, { D# q) H" x w0 E
case WIDC_BUTTON4:
0 d; L* L: f: u' [' B4 f {" F# }) X! p; T: J- m
bStart = FALSE;
& h% t/ S, X- J6 |7 g8 n5 e break;
n- Q5 p$ A% B- r7 `2 Z# H }/ R7 k6 M7 M" M* R" g3 K
}" a, k1 b1 O. [; @. L7 {8 m$ P' Z
return CWndNeuz::OnChildNotify( message, nID, pLResult );
4 G1 h$ }( _9 |% H}
4 K8 E' N9 S* G3 i1 c3 b# j$ T. n/ \void CWndAutoFood::OnDraw( C2DRender* p2DRender )
1 b; l3 ]4 M8 }1 d5 ~, Q{, _3 J7 Y( v8 ^
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
2 l& |6 p* [2 ^2 N if( bStart || !m_pItemElem )
3 O: p9 s4 {' E% {% A9 n% H& @ m {( k% ?! z6 A! m: k
pBtn->EnableWindow( FALSE );; e) x4 L) k' Z3 U
}else
& ?$ H8 {& U( m. M3 B pBtn->EnableWindow( TRUE );
% m' u" E1 g& z% W if( m_pTexture )
1 R2 {7 a$ X! F' i {. t2 \1 \/ [& g+ s. O. s' F. Q
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! t- d# V( Z5 s4 C5 F a$ k% a* M$ D if( wndCtrl && wndCtrl->rect )& J$ l% ?4 n: W! p: a0 l, `
{ {9 h' ?# Z! h' q. w
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );; E7 B4 C6 ^4 @6 O9 r6 ^
}
' p/ H, G6 p, H2 J2 C2 b }
8 u8 @6 R- q0 }& s* X}) R2 U4 T. I8 k+ y; G, A h* ~
; o2 f) Q& ~0 @* U+ k
BOOL CWndAutoFood: rocess()
) J, P9 O6 C7 \5 u" B{( N- C! n. O2 k, O
if( bStart )* a; c+ D9 u9 l* b
{( i% n5 M3 N' s# h3 I; q
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ); Z& r% U1 _1 \* p
{" R" A) j: \6 ^/ }2 P
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
9 Z' v9 \* n! o; A3 W2 ^ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );9 L; x2 s0 A0 b. M3 s( X+ y' S
}else{' r* L) Z# M4 t$ X9 s% {
bStart = FALSE;
* q3 r- D3 [- ~/ J4 @ m_pItemElem = NULL;
3 h3 {" ^% D: T }
& V/ t! _4 ` m4 Q* W+ ^' B }8 V# x4 `, `& W
return TRUE;- V ?2 M: `, U, C$ {) o
}. x. |0 `9 d9 n1 y& U1 Y
* R7 x. C6 R+ r# {. ]登录视频废话:/ x+ w1 y- G1 ~& F9 U7 |% H
尾翼:# p5 ?4 z8 V7 C, N3 k8 G, x
& L! @/ C, {7 z7 c: ` U1 a: C4 N代码:2 Z0 h! b9 `2 D& U+ M6 u
% F2 [5 K/ r" d4 F
void CWorld::SetLight( BOOL bLight )% J) i! ?+ |5 D; h; L
durch
+ A, Z7 ^8 T5 X$ s" zCode:
% K9 x: F5 C* S1 [$ P: o0 _1 L6 y1 `void CWorld::SetLight( BOOL bLight )
/ n6 k" K( X9 j. B6 g& c9 a* _{/ ?4 f0 y6 s: [; o7 J- r) w
//ACE("SetLight %d \n", bLight);' w6 w* u& U4 t- i7 P
1 O7 _) I: E4 o# ~9 R* T K2 T#ifndef __WORLDSERVER / N( h% {7 ~4 d3 K" g- J
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);2 T% q6 Y' Q. m% a
CLight* pLight = NULL;
' S: a2 Q8 i9 e2 C. t c. U& n' C. j$ D* C
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
( g1 O9 i- i! {& W4 i
1 ?5 R8 ^; ]1 n- ?% O0 H. y- y pLight = GetLight( "direction" );7 b! Q9 m( O, }1 m8 U
# ?# J6 J8 Y8 O C- y6 k% k& J. _0 h#if __VER >= 15 // __BS_CHANGING_ENVIR2 g N: \. u- S- |, \# o8 H
if( g_pPlayer ){
+ D; D/ p( ?3 \: b- t( G- H4 Z9 l ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );/ w/ _6 L$ \* `8 A
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
+ g3 N9 ~! {( y {6 \. F( w* {" S4 Z# S$ u
if( pLight )" O+ I- @, i9 m2 o" M6 B$ C8 I( K
{- E6 I, n+ @3 P1 u2 t
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];- e% E% H; Z& ?' L9 n: {1 |( T) u* L
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
) P) K+ q4 m9 g* K. E2 F1 i pLight->Ambient.b = pInfo->_fAmbient[ 2 ];4 Y( @* }% u1 z5 y) W
4 d; I0 P- y2 G7 \7 M4 Q/ e
pLight->Specular.r = 2.0f;. F; t- B1 V+ C2 B( ~1 c
pLight->Specular.g = 2.0f;
" |6 C! B9 ?) g1 Y$ { pLight->Specular.b = 2.0f;, X% u# C% z( z$ v
0 M; w. n( y1 Y- c
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];. `7 R; c" n( x$ w2 [# \
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
! N2 [* f+ j u% g2 V pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
, X( z; _! a" H$ o0 g u% v3 _ ' x% y+ r/ B5 T5 L9 K4 D
HookUpdateLight( pLight ); * Z# _! G5 E5 H: j) j" U
" p4 ~9 v# Z2 A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 ?5 V; I/ h( T. q , H* |6 v8 ~: A9 q4 g
pLight->Diffuse.r *= 1.2f;8 u) |8 B" e$ ?, u" O( G8 H, L
pLight->Diffuse.g *= 1.2f;1 A$ J; y$ j9 d' \3 G. {+ O$ `- f
pLight->Diffuse.b *= 1.2f;
. a' L1 R& I% x+ Z9 Q8 Z- L- c1 {6 S6 U3 z% @9 | E
pLight->Ambient.r *= 0.8f;, f9 ]$ H9 m( {
pLight->Ambient.g *= 0.8f;
% t1 c7 o3 P2 j2 ~5 j9 h9 {6 g* G pLight->Ambient.b *= 0.8f;0 q# ~# e; {! u6 I3 G' h
- F Z5 g; B7 F' H; b' ?
memcpy( &m_light, pLight, sizeof( m_light ) );' ^! v) b2 d, ]) R. a) ]
% B/ Q- k/ K0 r( E9 y* Z! C* M D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; h4 Y% y9 Q# I# Y- j; ?$ O! G
D3DXVec3Normalize(&(vecSun),&(vecSun));
% g; C0 ^7 g3 s pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); % r' h# b* x0 {! y
pLight->Appear( m_pd3dDevice, TRUE );- l$ i' V5 L1 n6 A
/ m1 m1 `. { }, d& W% T! k DWORD dwR, dwG, dwB;
2 n& N7 Q* K1 A% N/ S! Y2 G! X0 X2 d dwR = (DWORD)( pLight->Ambient.r * 255 );
$ |" \" }7 u1 w O dwG = (DWORD)( pLight->Ambient.g * 255 );
% q; X" e# j$ R dwB = (DWORD)( pLight->Ambient.b * 255 );
+ G" u& l, F$ k5 X7 Z v: C: m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ F0 Y* P8 \: D& \% ~2 {5 ] }
! K% l5 [5 C# U/ h( {" ~ }: p' X* j( r+ k
}1 m q) q& a' N, H9 g+ @
else& K) B7 f' Z. A% W
#endif
& R/ w3 y+ V; |+ I' L' X/ ?3 W8 u: h: n2 ~9 A, E8 g
if( m_bIsIndoor )5 {& J9 W5 `5 D( X. |
{
: b( ^. s, K9 B4 ]6 H+ e if( pLight ); o9 B' u. a7 E9 ?6 \
{ / c- Z$ o# J. p
// à??μ oˉè*
# x# W$ r4 \7 z6 W- U pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
5 m( W' n; Y! A& |& D5 V. P7 ?; A pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
% z" |9 X& j5 I m& L. T; Q pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;3 |9 p4 i5 A4 P9 r f
2 X; F3 b V) J+ |7 U/ U1 p // oˉè* ??à? a& P% Z. L- d
pLight->Specular.r = 1.0f;0 S, j- E1 i* [: `
pLight->Specular.g = 1.0f;
' C3 [! I4 [5 G3 w4 Q" X4 f pLight->Specular.b = 1.0f;
1 J' O$ X$ J" m) u, n$ k // àü?? oˉè*
" p- X M1 V2 v" e% C pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
, t0 Q- k. `+ e, Q% P pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
& }; _% I! K( A- V pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
. b. h2 Y. q- d# Y& H8 v3 o( m# @0 g5 T L
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 n" e4 E: E. s+ T/ d {" \0 s) `/ D. C2 Z1 V5 L, V5 v( v
pLight->Diffuse.r *= 0.6f;
7 }# V3 P0 a3 ]. K7 M; l+ o* u+ e pLight->Diffuse.g *= 0.6f;
& g; i$ |$ _1 I3 w8 V0 u* E/ t" H! d# K pLight->Diffuse.b *= 0.6f;0 \8 i r' |2 h1 t' K0 Y2 t5 A
pLight->Ambient.r *= 0.7f;
4 q5 ^/ o. Q$ b" C" w pLight->Ambient.g *= 0.7f;8 M! U4 E9 E5 c6 |5 b
pLight->Ambient.b *= 0.7f;
0 V. D& l& f7 _ }
% V8 [* C8 M0 g: f' G- P
) r2 v& v; \8 |9 m0 g( ^ [#if __VER >= 15 // __BS_CHANGING_ENVIR
6 e ?$ p# q8 y if( g_pPlayer )+ N6 S% z0 s& p) ~
HookUpdateLight( pLight );' L$ F7 Z9 k8 c7 Z }/ W
#endif
5 c) S u# ~- a% o memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 i# d4 K* H- Y7 b3 t4 v
% ?% _3 N9 R/ _7 m' I& I pLight->Diffuse.r += 0.1f;: E# n, p) K7 c" c! E
pLight->Diffuse.g += 0.1f;
; s k# S0 X+ W! Z" @) ^ pLight->Diffuse.b += 0.1f;* P1 d9 i; d' o5 m! a* A
// oˉè* ??à?
5 f$ r9 t: D7 B. c7 `: ]+ ] pLight->Specular.r = 2.0f;
( U" K8 m& `/ ^ B6 s5 v" @ pLight->Specular.g = 2.0f;
1 D8 \9 e& ?6 H6 i/ ~( f: e/ c pLight->Specular.b = 2.0f;1 n/ r/ r2 l5 S5 n
// á?oˉ
/ N- l: Y- a; Q& S1 f% }$ ]$ W pLight->Ambient.r *= 0.9f;
- G. r& A0 |+ z# {: r- g pLight->Ambient.g *= 0.9f;( Y$ t8 P- Y; _( }% J3 A9 D$ {% n
pLight->Ambient.b *= 0.9f;
- O' }2 {2 ]( n. z F; ^
9 S* H% E) V5 E4 @; U& W memcpy( &m_light, pLight, sizeof( m_light ) );- g# l$ c$ k+ _$ `
6 D6 Y3 ^5 k: U! E/ s pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 k7 S4 m# s& p0 X* I
pLight->Appear( m_pd3dDevice, TRUE );
* |. _4 z) a1 |0 I; Z2 |/ Z; K ) E% r. b& F- c
DWORD dwR, dwG, dwB;
7 ^) ^( r \1 H5 { dwR = (DWORD)( pLight->Ambient.r * 255 );
# N. h$ k" z' o( \7 c3 d- U! B dwG = (DWORD)( pLight->Ambient.g * 255 );
# N+ U. r8 O5 R dwB = (DWORD)( pLight->Ambient.b * 255 );
" t7 Q7 f: U' G* X2 @4 q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 l! Q6 f! I0 C5 D8 }
}4 L; b" K; b& m' t" T
}
) o5 q( K. L( v! m2 g/ H else
# v- w- j' P3 }' `/ \& w* b1 ] {0 x8 B/ F8 p ^
if( pLight )
9 c& p" B% y8 E/ X+ @2 y5 \ {9 y% }- T4 m8 [: V. W2 x. d& S
) O9 u$ s8 P0 n9 j0 T7 f( j& r
int nHour = 8, nMin = 0;% B T: @$ g* p h" _& m
#ifdef __CLIENT" H6 }. X5 N5 C& D
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 5 S/ y% d/ }/ v1 Z8 \. D
nHour = g_GameTimer.m_nHour;
, Q G$ n; k x0 A nMin = g_GameTimer.m_nMin ; L- |8 }7 _ ^& ]# }) c# U
#else9 K* {. N& Q0 G* C* s
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.. [6 C* g+ d6 ?. ?7 o
if( m_nLightType == 1 )
) g, o' \. y) U. z% g# a9 G( k nHour = m_nLightHour;
- ~" U+ j) `& i; x #endif
0 Z7 A1 D( g! e- u0 A, X nHour--;1 ^+ q+ S5 Q8 c( J$ ]. j0 @
if( nHour < 0 ) nHour = 0;
$ Y+ ?7 e% P/ L if( nHour > 23 ) nHour = 23;
/ k2 f. V, a( V k( M5 q5 j+ c& Z
^ [1 P6 S1 V0 m //if( m_bFixedHour )/ G% f/ l7 f( O2 x9 A
// nHour = m_nFixedHour, nMin = 0;
3 ]7 I! J- w& O/ o- h LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];# K" b- ~( C: \5 i/ b5 i/ D! J
LIGHTCOLOR lightColor = m_k24Light[ nHour ]; ~% [! N2 y) Z
9 X3 N# L' X4 f, Q2 Z x' U //m_lightColor = lightColorPrv;4 x0 u0 \8 o% N% ]
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;- r7 d8 D4 ~/ K4 g+ q! i2 s
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
) }1 H9 Y# T. X+ p8 _: ] H lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60; _; E- a3 Q# _/ c
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- T) I% @" H6 a3 ?* N lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
) u# O+ N7 E2 U' r1 G# v lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
" [5 {, S, z3 ~5 T) \" _- ? // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
# H( r% Q# G$ d9 x' ]/ {3 I k
- j* |/ w4 U0 M7 t# U" q7 F // à??μ oˉè* ; f) e/ v2 g5 I4 B# L j5 b
pLight->Diffuse.r = lightColorPrv.r1;
3 v+ L) Q2 A+ h7 R; u pLight->Diffuse.g = lightColorPrv.g1;
% f9 T' p* r2 |' ^ pLight->Diffuse.b = lightColorPrv.b1;1 I k- D2 E0 A s0 T) P
// oˉè* ??à? # N; t1 r# L) T* z
pLight->Specular.r = 1.0f;' L) J% l3 o2 `2 M2 i, ?7 }: D, L" L" i* s
pLight->Specular.g = 1.0f;
: g3 A2 q. B1 w+ _3 ~& J. u% U pLight->Specular.b = 1.0f;! J* R! y5 `2 @, \
// àü?? oˉè*
% |8 [" c5 G0 |0 U# ` pLight->Ambient.r = lightColorPrv.r2;, r" S0 C$ c8 S
pLight->Ambient.g = lightColorPrv.g2;
( ?. W" w1 w, f pLight->Ambient.b = lightColorPrv.b2;
8 R0 S; n) Q; z' u8 A
- g5 _/ N6 s5 g! X( B' r if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) z2 Z' t' P! X) P6 z
{
1 ]) q. l2 @6 z- K: B: u5 M pLight->Diffuse.r *= 0.6f;1 \4 j2 c" P% e9 x" g4 |
pLight->Diffuse.g *= 0.6f;
+ o1 K9 j' ~# B3 P! l5 m pLight->Diffuse.b *= 0.6f;% q- H9 s3 \4 x s4 i4 o
pLight->Ambient.r *= 0.7f;3 }7 }, b* {. v* l3 p
pLight->Ambient.g *= 0.7f;
5 B4 E& ~ u; p pLight->Ambient.b *= 0.7f;
; ?# O3 o6 u, N- ] }+ S; C7 f8 E3 e }4 e. `! i7 \
! p, k3 x5 Z- q#if __VER >= 15 // __BS_CHANGING_ENVIR
l' m. r7 F$ p3 _ if( g_pPlayer )" M7 M. |2 j6 F9 g- [. _8 d
HookUpdateLight( pLight ); 2 Q" c) w+ E* F6 Z
#endif/ Q& w/ J8 M/ T, s1 C9 I! i; T
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 `2 f& z+ y o. |. O/ j
- X% o. y4 ?5 d3 g+ Y
#ifdef __YENV3 _4 @3 x- O/ s* G- Z P% W% J$ d+ ~
pLight->Diffuse.r *= 1.1f;
. a, W, W$ W4 m7 p. k' Y2 A pLight->Diffuse.g *= 1.1f;5 @# O% P7 x3 a. i& E$ W) [9 [
pLight->Diffuse.b *= 1.1f;
, o6 O6 v3 l6 S) }4 x! j4 v // oˉè* ??à?
& y% ?$ b) x: J, q2 P pLight->Specular.r = 2.0f;
# @' p; C r4 `, n( F4 M pLight->Specular.g = 2.0f;
; d T- f4 f% j$ m+ C( e pLight->Specular.b = 2.0f;# K5 k: P: c/ Z7 z6 G4 i$ W
// á?oˉ + r# ^) u. K3 k/ ?
pLight->Ambient.r *= 1.0f;0 s' ^3 x7 }2 X }% T3 E5 D5 f
pLight->Ambient.g *= 1.0f;, ?, Y4 E5 d: Q9 }
pLight->Ambient.b *= 1.0f;
8 w; c6 R9 R+ ~9 J3 }6 u9 F#else //__YENV0 r! T5 _9 ?2 o }/ ?+ \
pLight->Diffuse.r *= 1.1f;9 L L+ f- U4 d- k
pLight->Diffuse.g *= 1.1f;
3 m" G" ?+ q# x/ E9 o5 x pLight->Diffuse.b *= 1.1f;1 S4 R h& Y3 P s! s8 {
// oˉè* ??à?
" X; f! q' J- ~% T) z3 L pLight->Specular.r = 2.0f;
+ ]. T/ p3 Y& a; h4 Y0 v* E# I V pLight->Specular.g = 2.0f;
# p. P. Q% e: ` pLight->Specular.b = 2.0f;
# l% O9 S4 k1 O3 L // á?oˉ
0 N# J0 y, K- D) t2 H" J& H pLight->Ambient.r *= 0.9f;" Y& b, K" ]4 V% x( f' ^8 q
pLight->Ambient.g *= 0.9f;
- u" _7 v/ Y3 e# u# N" \. e+ @# C pLight->Ambient.b *= 0.9f;
: R5 `5 A) F( @' w#endif //__YENV 8 H8 r# d- C; g4 j1 V/ o, G
3 c! L6 m0 V' B: ?, d
memcpy( &m_light, pLight, sizeof( m_light ) );. A& P2 f+ P2 c6 q, R
2 C0 q2 H' y' L: Z1 V: I D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
1 b0 S0 n3 N& f( I2 K D3DXMATRIX matTemp;
/ W* {) J4 H# t1 [: H static const float CONS_VAL = 3.1415926f / 180.f;% \- @' J) [' l$ S
8 Q m+ o) H6 `( K" g0 f, o D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
9 B' z0 }2 {! ^2 d1 g: A8 Y D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);5 [9 q3 ^3 c4 ]2 J' J- j
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
- s. D0 H9 _# N pLight->Appear( m_pd3dDevice, TRUE );. F- |/ Y" o: |4 V
3 B% `3 X) P$ z$ M) R // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
$ d" o! H, J! X/ M // D3DXVec3Normalize(&(vecSun),&(vecSun));
; f% E& B( a! P$ U% I- ? // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); U/ y) w2 H8 t+ g3 V/ ?5 J
, C( L0 q! D! t2 n$ Z3 d DWORD dwR, dwG, dwB;
* |$ `1 Z) P1 F1 j dwR = (DWORD)( pLight->Ambient.r * 255 );
. b- d p P, L9 g8 J/ `9 J1 P dwG = (DWORD)( pLight->Ambient.g * 255 );8 U$ Z: C" a" b6 K
dwB = (DWORD)( pLight->Ambient.b * 255 );- W- i1 H& l. i+ o% h! g
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
# P& w' b$ ~; F4 h# _ }2 C v' t; T' \
}
/ B. j" f% p% r+ q; t+ l3 b6 \4 j* X$ `
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
, ]( g$ U" l/ p( { 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) );. j1 V. B9 p/ X$ v( r
::SetLight( bLight );8 r. F2 K# V$ A. y9 g
# |9 Z# {0 \! y, C% o& H# b' x
// ±ao? ?D?í???ó á¤à? ) ?3 y8 W5 c2 f/ T6 `
m_pd3dDevice->SetMaterial( &m_baseMaterial );
4 F+ P0 F1 w9 l
3 i# {, D' M- f! d#endif // not WORLDSERVER% \" C U9 Q% {7 }, \7 J
}& i% H8 ^ r. x+ H) @1 L( i; c) W5 L
并更换/ W5 t. J7 Z0 J
Code:( @# E0 j+ V5 t, F* Z4 R; C
__FLYFF_INITPAGE_EXT2 U. |0 b1 i1 n- k& A9 L/ ]
定义
" M+ s5 P* V+ C8 J1 ?4 D% |/ o) E4 l5 q' R
- |9 }, x8 @0 C" r1 L& r3 N8 V
" X. d0 F) e0 D$ [& k! P5 P, _8 Z$ s1 w9 [' U+ h. N/ ]
现在终于删除我的狗屁加速...: e( \4 c- `% D% f E+ a- o; l9 Y4 l
, ]/ V8 Y: d2 Y% F) H$ }) t
' u. h6 a. v8 ] P
4 g/ {( ~5 T% b. C |
|