|
|
食品车:5 {0 h' B7 E! x2 x
尾翼:
+ d' Y' V8 o- W m
; S- M5 B. v; t# V代码:" s$ Z. V4 N4 w0 ^# G
CWndAutoFood::CWndAutoFood()
7 V( g: e# ? }+ B7 A{) x& v3 o3 ^0 z
m_pItemElem = NULL;
. T: S$ L- c" J- T/ @ m_pTexture = NULL;
# R+ T6 w" l' B- s" ] bStart = FALSE;6 |$ b6 Y$ p9 R) j) l2 z0 O
}
1 V8 f2 k# |3 P' e
' O5 p9 B, H' ICWndAutoFood::~CWndAutoFood()* I8 n- c' z: e/ k) O
{
0 D0 t$ w. x8 d9 v1 | AfxMessageBox( "AutoFood ist gestorben " );
& o- k& Z9 w4 Y+ Q}, _' Z" r' w: H5 W9 {
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )3 X/ x/ y" o8 y+ u. L
{
& a$ } G: h' {1 A( ] return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );+ [9 N' _$ `" Y, v# t. s! r
}
7 i3 K e/ y% a" F7 q2 G0 Z8 Z- s; [
8 F3 O3 e+ ?6 T9 xBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
. N) }: u2 U# q, D! b$ d{
8 Q+ ~/ ?- i r) F- [" S LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% ^- ~+ z) p2 f$ J CRect rect = pWndCtrl->rect;7 w6 |, M8 Q$ S$ d& U% M- @
if( rect && rect.PtInRect( point ) )' A9 P. o" L, n
{% d4 O% l5 G0 ?) O* Q7 n' R
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );. J& X4 k& Q/ X
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
8 r1 z: w8 K- x. z% R T! Z {5 ~# c# A( w* d6 E
if( m_pItemElem )
V3 h' }2 ?6 G1 Z) Y$ }- K3 W { |6 y+ l2 U# V* e5 Z
m_pItemElem = NULL;
$ j1 ]7 j4 W& i1 K4 h }
" y$ k/ T1 V5 g2 q+ e5 ? m_pItemElem = pItemElem;& ^& g1 C: J" t* d
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
* E7 f& k0 T" m% a+ Y( V& d }else{5 t, J9 ~! ^5 P5 ~5 E) I1 j6 t$ B2 t
SetForbid( TRUE );2 g8 M$ [/ ^" R/ n1 @
}
4 h2 n/ H3 y' _3 a& k }else{# i4 {6 q9 u' P" t
SetForbid( TRUE );4 A& h% a& Q+ e& f( Y
}2 w( H C! _. B, ?# K
return TRUE;% q; S1 a" d" C; P
}
9 e1 ? S- e& R7 Z3 v8 t4 [3 T; `0 R( h* K" K
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
5 Y( q: A. F* ]- I7 u9 E( ~- o* l{
: h. E( o# f* z5 m( G switch( nID )
' M3 f: P/ t1 t( b0 w" u) f7 f4 ] {# F8 }% U4 c/ ` Q9 [
case WIDC_BUTTON3:
6 I# @8 L5 [4 V- L {+ j S j5 \ }% o2 p# t
bStart = TRUE;9 A) i8 m9 x3 V+ x
break;; K7 j- ]0 j; y
}
0 N& z5 H' s- k. B7 m5 W# G4 u A case WIDC_BUTTON4:
+ f' n( n& R1 I" x" n7 F {0 c8 X5 @$ B0 ^ _
bStart = FALSE;
7 M* \# c4 y9 r( r" M0 g, y# A break;+ G% o$ F& Q( A! Y! B
}
6 H' y5 S- m: J0 ?& i1 _3 m0 Z' J }
& Z2 K2 b: e4 B; M+ B7 V4 @7 U return CWndNeuz::OnChildNotify( message, nID, pLResult );! z1 T0 W! b. S! d) {) j( ~8 w
}
# I. [+ W' I" G3 Q8 Svoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
" J* |( k' b P{
6 v) F4 [# P+ \6 X4 f7 }: h1 j CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
$ h+ [. ^4 N: \' l if( bStart || !m_pItemElem )& q9 b" W* V, H6 v. W; F. `6 B' j' k- Z
{
- F0 u, L O8 a4 j0 A pBtn->EnableWindow( FALSE );
9 M/ V( M8 ^! O }else" j }2 F6 R8 L9 i7 v3 Y
pBtn->EnableWindow( TRUE );
1 K0 r6 Y+ i2 g4 o if( m_pTexture )
& l6 l1 B! K; w4 t {
" g4 p. \/ P" g2 ?: y LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. S9 h, j' x: [6 H$ J if( wndCtrl && wndCtrl->rect )
, o/ L- Z/ m! A2 T {' ^% W* B9 ^8 F
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );! ^0 |3 [) J9 l( H
}* a. ?) I6 D! F/ R- P
}
2 J6 C8 D3 m2 {* G- E} L' j" P* ~- l
' w6 s7 w8 |0 p; c$ V% u
BOOL CWndAutoFood: rocess()
, d. o' r7 G; |. q8 R{
3 r& d3 ^; q( I+ w+ ]6 t( F# l if( bStart )
% t6 J, l) ~$ ]4 s {
+ a; ?1 p/ K" g- x- E; k if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )3 T# u Y. h& _& N+ ^" O; Z R
{
+ @# {9 q3 w5 v3 u, `! | if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
! N0 }; I$ }/ z u g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
% u- D1 M# I, ` }else{
/ o. Z& ~6 N4 K3 w5 P v' H bStart = FALSE;4 W" P. ]8 ^8 E+ d7 s% q
m_pItemElem = NULL;
( M9 X2 }2 e. @2 m' l; X }3 E, @+ j+ J0 L ^ [" f
}" D: O& |* L* ~; y% I
return TRUE;
* Q5 A! q& E: Q( V2 E}
0 E0 s! ^" R( X3 P
1 \; O+ E1 Q$ b' F0 c# ^* {& Q- y登录视频废话:
2 [4 ]* `3 S/ m% K3 e: t7 U6 j! l尾翼:$ L/ [: n% J: \' y, r
: C; p; t$ f0 f7 C
代码:
) M) b$ S9 ]; X/ i0 k+ L
9 N' s: U; p- g7 evoid CWorld::SetLight( BOOL bLight ). } Q0 ]0 `! U- W
durch
+ A7 d; ` ]: a( eCode:3 \: b q$ F* I2 \6 n5 Y. \
void CWorld::SetLight( BOOL bLight )
- X: n$ `* z: b6 q" O* @ x1 V$ z3 y{
X' R- b. ~; _8 f //ACE("SetLight %d \n", bLight);
0 Q0 U4 b/ L8 k7 r $ ]+ f. Z# k# Q( t; ^
#ifndef __WORLDSERVER
* J$ ^% M, d' A! ~5 |; _ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);6 ~ G3 Z1 z5 I
CLight* pLight = NULL;
6 @# a/ F7 M& @' l
- T$ e9 P5 c3 U- v$ Z1 ?2 y D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );. U7 g3 Q3 |! B
: N: D+ S" U& L& ~1 p. W7 \
pLight = GetLight( "direction" );5 c: J* H$ Y6 ]! L X2 X- G7 R# k
$ I$ c' v9 d4 B+ |#if __VER >= 15 // __BS_CHANGING_ENVIR3 Z: U: l- H. F/ h$ q9 }
if( g_pPlayer ){. X2 M0 E/ g0 `: v1 Q$ [
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );/ B% M, }9 T; M0 a# [4 m
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
) O; a' x# A( _ a1 n+ J- M. I {4 @ D: |# @, t% Z( X7 c, i
if( pLight )3 ~, d+ \ V/ w6 L* s5 E4 W( U
{
' E( _. t8 C2 o4 E6 c: b7 l6 O pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
7 k2 p( U+ n V' ~ pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
4 K! k' M% e3 G9 e: Q- s2 M pLight->Ambient.b = pInfo->_fAmbient[ 2 ];. M! [, P! }; E* ?
, r/ u# F* {* p8 d/ g$ f3 B6 a; H pLight->Specular.r = 2.0f;
* A$ u" E, W+ `+ f$ A9 r+ x# ^ pLight->Specular.g = 2.0f;
: ^8 ]) a, {7 O5 `% m3 ` pLight->Specular.b = 2.0f;; o' k* J, Y; O* C
" _% q3 y. W" J# o% Z pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
; }) U7 f8 k$ L pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];- j' v8 i9 Q, F L4 V% ^
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
4 }) r( }) n0 o% _1 T/ p& f 5 |# Z$ O# X1 p n2 N' j; f
HookUpdateLight( pLight ); ; K' A- j# x) A5 S. Z& @
% Q5 y0 B7 ^6 a4 k2 C' F memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# {. z5 I- G$ }9 {8 q3 f6 W! i
. f/ t; A% M, z pLight->Diffuse.r *= 1.2f;6 j0 V: u3 b/ D
pLight->Diffuse.g *= 1.2f;0 J/ Q; f, g' A0 h
pLight->Diffuse.b *= 1.2f;& U" ^0 j+ U0 y
( D& V( G0 O3 ?
pLight->Ambient.r *= 0.8f;
& k$ P, r% V- s o2 u6 X pLight->Ambient.g *= 0.8f;
' v3 q0 G8 R7 r# o; s8 k pLight->Ambient.b *= 0.8f;
$ B9 `7 |8 O- h m( f
8 ?9 u- V0 h% Q1 n9 }# v memcpy( &m_light, pLight, sizeof( m_light ) );4 Z+ q% @# T* R# W2 G |
0 T+ }9 E ~( E% Y" c D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! w) O/ [! } T" g/ V
D3DXVec3Normalize(&(vecSun),&(vecSun));. r$ `5 _0 n/ o7 k( r
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. ^, s2 C% G0 i6 T3 h9 R pLight->Appear( m_pd3dDevice, TRUE );
5 S( x/ s4 T- J# p 7 c& t/ t; v! C" I" c, l0 b
DWORD dwR, dwG, dwB;
0 d9 j& |" r( d* S- V( K# l7 j3 ^- j dwR = (DWORD)( pLight->Ambient.r * 255 );" _$ o9 j. R5 F, w% c5 n( |
dwG = (DWORD)( pLight->Ambient.g * 255 );7 y1 h- ?) X6 [: [6 L! N: R5 ?
dwB = (DWORD)( pLight->Ambient.b * 255 );
' X2 v1 ~5 g a: o dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& m- e$ y+ ?* g }% ~5 m- ~7 D% A2 O! o* D
}
1 g+ u) V8 D3 U/ j- b9 X }3 n4 n4 h1 }* y
else
4 ]* t4 o# a6 M7 d#endif
- F6 }% @* s1 {. ~0 c# X$ P, W! T* N+ A9 r+ F+ A* l8 h$ l
if( m_bIsIndoor )
5 E! m" \) D, p: f/ X; F {6 e2 J- \$ G! B. T7 ?( Q3 a7 n T% s; q5 E
if( pLight )
4 T* F' e/ e& o0 n { # A: ?& _) C2 ^8 M! w8 G
// à??μ oˉè*
8 q% U( F, ]' \9 x w! P pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
# ]* v4 z" h5 y. A7 g* l pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
$ \3 ~: d( g. l" _1 b8 U pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;/ m+ y# J- e+ f7 H z
/ l4 \9 }- n9 S: c8 U // oˉè* ??à? / f& n1 [0 T3 @' T0 `
pLight->Specular.r = 1.0f;: r' P4 J* V* X/ {2 E: U" Q v0 p
pLight->Specular.g = 1.0f;
$ Z- \6 R! Q; w1 E) |: ~: e+ E pLight->Specular.b = 1.0f;- z: F* v* z* s3 r. F9 H. y. E
// àü?? oˉè* 6 S5 A! x) [; F3 R
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;: p0 r/ K- P+ C, {' |& _
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
0 J7 ^, P: _* x pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;5 a D4 A8 J% [* M7 ?
& F5 A! \4 J$ E: P' c8 B6 Y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., Q* Q8 [+ X* {6 _, Q
{
* R) W$ b9 j) @ A' `% u; j6 } pLight->Diffuse.r *= 0.6f;
: J# j6 o5 ~0 v( d x$ G) A pLight->Diffuse.g *= 0.6f;: a0 n. k5 k# m# d' n3 i
pLight->Diffuse.b *= 0.6f;; t6 |5 f2 C4 q. ~& O, p A' I
pLight->Ambient.r *= 0.7f;6 K% |/ _0 c- k7 @2 z; o
pLight->Ambient.g *= 0.7f;0 M5 a- \7 v/ _3 U
pLight->Ambient.b *= 0.7f;
0 ~( ~9 y) Q/ j: F" Q }$ h7 _. h# o, N0 J; \
- b I" d! b4 Z1 G5 m#if __VER >= 15 // __BS_CHANGING_ENVIR9 ~" W. m% ]* s* F5 X, G
if( g_pPlayer )
( @7 o" k2 y1 C HookUpdateLight( pLight );
& H- E8 y: L' E6 `) L2 j#endif
. q& p6 @: Z* o) l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );" v3 E& F, ~# ~% l/ g2 [
2 l3 t4 V4 }3 e: h* V9 M pLight->Diffuse.r += 0.1f;# C$ n2 y# c% P, _& ]' K
pLight->Diffuse.g += 0.1f;; U& S0 f6 H% Q" e; b' y& ?
pLight->Diffuse.b += 0.1f;
$ \1 ]& ?5 N0 ~0 D2 ^ // oˉè* ??à? R# M9 R& w J$ d/ I
pLight->Specular.r = 2.0f;
3 `% [7 v# F6 D8 H3 ~" ?" ^0 k pLight->Specular.g = 2.0f;
4 t$ u U2 O6 I" j O3 Z pLight->Specular.b = 2.0f; U0 F! n+ _) t& r: |
// á?oˉ
9 p7 s6 _% z, i! B) ]& X$ \ pLight->Ambient.r *= 0.9f;
" v6 w/ q% n! S! l& M0 s1 \8 p pLight->Ambient.g *= 0.9f;
( p$ i% }, S7 P; k# J pLight->Ambient.b *= 0.9f;
; F) L) X/ I/ F# C9 z8 \$ r: I& Y! W. Y+ p8 j+ J
memcpy( &m_light, pLight, sizeof( m_light ) );
! s/ @6 o1 c& A1 ?
1 b( E! |& b5 m! M* p- B `/ A pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
, Y% n4 U! W" M M& @+ E' i4 z pLight->Appear( m_pd3dDevice, TRUE );
# ~3 Q% V! \! ?9 A ) D) Y- a# f3 f+ Q( G
DWORD dwR, dwG, dwB;2 I' \. Z9 f/ G5 d8 B Z
dwR = (DWORD)( pLight->Ambient.r * 255 );
0 q f+ l+ R+ F/ @- _# T9 J/ l! @: g dwG = (DWORD)( pLight->Ambient.g * 255 );5 B( R4 m+ V% @1 P. E
dwB = (DWORD)( pLight->Ambient.b * 255 );; F F- H' W5 f' J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& f. K2 e3 s/ @" o5 Y/ H/ k* f8 ^$ v }& R' I& P8 g b4 t' t% S
}. z* j) i5 t h+ g+ S' B
else
! ?( {" I) \6 I# Z/ Z2 J {, `6 P- S" ~! t8 {; k: Z) y
if( pLight )& D- A/ K" _4 t: M* s
{& l7 v" Z9 `' N* a8 |
" k t7 a; J }+ {- ~0 B$ a+ ~
int nHour = 8, nMin = 0;
* O8 ~; o8 e/ t T$ s* M #ifdef __CLIENT9 G. D$ c+ ~% i4 _) j
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
: G/ X# x3 r1 |# I nHour = g_GameTimer.m_nHour;
& L f$ |6 m" u1 n- z! s+ F+ W( E nMin = g_GameTimer.m_nMin ;
1 |9 x; e' h% O; x' K$ U) P6 u9 p #else
- o8 R5 j1 O' H. R( O5 F# W. T3 R7 {+ P // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
k& Q j9 e2 z8 i9 p6 d if( m_nLightType == 1 )" y0 x/ m, }/ ]8 L. V
nHour = m_nLightHour;
( ?2 E! |3 q( Q$ N9 I& j- Q #endif3 \' u2 i7 D; d+ v5 J& x: J" S
nHour--;1 y! q m2 R: ]" z* Y; D6 k6 K
if( nHour < 0 ) nHour = 0;
! t' K; m% R2 b5 a$ }1 w/ N if( nHour > 23 ) nHour = 23;
5 B' e- a n: }% `) ?; D
" q' T8 r# S, t9 k) T //if( m_bFixedHour )( X+ r1 Y3 m0 g# w0 I
// nHour = m_nFixedHour, nMin = 0;
$ K; |/ n1 @& j9 Y: R LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];, {6 ^( J0 h0 K- z+ f! w0 Q
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- K( A- C7 ^* g% @; I( k+ o% L8 k9 e7 G) R: f# a- `- q8 w" ^3 Z
//m_lightColor = lightColorPrv;+ G; {( _- ^- E1 [" @& s1 P1 a
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
5 V% `* G! f9 o/ P' I( B+ ] lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;8 I( _7 o% f0 M
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;9 u: Z0 `/ r. a
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 n. N& ^/ Q: _3 V3 V n lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;, K' D1 H: P; D8 |! A
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;1 D0 h; U8 _4 A9 l1 u$ M, y, k3 C
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)1 a. j* E0 W6 Y" T! P1 @
4 P$ a* G9 K) _, L // à??μ oˉè* + X9 |; P2 @5 ]& n( i0 i
pLight->Diffuse.r = lightColorPrv.r1;% C* t3 t: t: D. a# k
pLight->Diffuse.g = lightColorPrv.g1;
' U' W5 l0 ?0 Y% T$ }) C pLight->Diffuse.b = lightColorPrv.b1;
1 f- |$ I, V2 O* ]7 W( x // oˉè* ??à? + A8 M% H4 s9 C! V
pLight->Specular.r = 1.0f;
9 j) |7 H9 r' N% d, S9 n2 x pLight->Specular.g = 1.0f;9 H( W! C+ D1 v
pLight->Specular.b = 1.0f;& C0 y* |6 x4 w: s, \5 z
// àü?? oˉè*
' f8 P* H$ `% A8 E- s+ Y2 q pLight->Ambient.r = lightColorPrv.r2;0 M, W- W9 K: E; D7 B
pLight->Ambient.g = lightColorPrv.g2;" ~, z; L& k! H: L# r+ X9 s
pLight->Ambient.b = lightColorPrv.b2;
; _6 r- @# a2 M9 \4 U; B* D/ w- q% _0 h0 p
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% T) ^9 U0 Y- [9 f- s. \
{
! P8 S$ C% N4 U3 m( u pLight->Diffuse.r *= 0.6f;
- b$ ^& C ~- u) k; ?: m$ b" b pLight->Diffuse.g *= 0.6f;
1 k7 X& e) j1 k' R) ^" \ pLight->Diffuse.b *= 0.6f;
! U ^' S: f/ h5 h" ~ pLight->Ambient.r *= 0.7f;
0 G. J6 s) j4 x7 _2 m3 [ pLight->Ambient.g *= 0.7f;
8 L0 }/ s7 w" o pLight->Ambient.b *= 0.7f;% c4 B2 s" j5 f( Z* \! U3 d! c
} d" v! g0 v K" p- `
7 |' o# b, C. G$ Y* R, I: r, c4 f
#if __VER >= 15 // __BS_CHANGING_ENVIR! L+ ^( b7 G/ ]" |
if( g_pPlayer )/ i2 k% N D+ B, F& ^0 \- L
HookUpdateLight( pLight );
1 [$ z8 r" r8 {' G#endif3 \6 F+ O: ~$ J# O
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; G# y) R. {9 H, J2 Z
1 E! a; v9 ]( B. y#ifdef __YENV
) Q" W7 W1 x2 A) q, Q$ h pLight->Diffuse.r *= 1.1f;( V% r# ]' i. S
pLight->Diffuse.g *= 1.1f;7 \: J4 O' F+ y, {
pLight->Diffuse.b *= 1.1f;& ~2 w) d) O# T, k6 ]0 u
// oˉè* ??à?
! ^+ A$ q3 z+ c( _3 z. \: u, `4 ^. n pLight->Specular.r = 2.0f; V6 ^- K3 N7 K! l/ z; c: p4 c8 y, @
pLight->Specular.g = 2.0f;5 |$ t1 p ^% ?$ l1 A4 J
pLight->Specular.b = 2.0f;+ I/ f6 T4 D/ h0 Z+ ^
// á?oˉ
1 C. h, H* X" h. i. X8 C. s% ?! ` pLight->Ambient.r *= 1.0f;% z. b# ]9 K" N! V2 p% Q+ ~% }
pLight->Ambient.g *= 1.0f;; ?- K) ~ Z- ?6 g6 Z; q
pLight->Ambient.b *= 1.0f;; ?: f" n7 a3 }( z1 |) C, h9 z
#else //__YENV' A! x4 ?+ t7 ?: m3 H5 {
pLight->Diffuse.r *= 1.1f;
: o/ X2 b/ ?( | pLight->Diffuse.g *= 1.1f;
2 f& C( J$ ^( S pLight->Diffuse.b *= 1.1f;
, o$ Z/ H# ~% n8 W# o* ? // oˉè* ??à?
& x: i& _5 W, n pLight->Specular.r = 2.0f;
T. Q' c/ f( R pLight->Specular.g = 2.0f;! W. S* e/ B5 a( a. k# X0 x) o
pLight->Specular.b = 2.0f;( c/ {4 J6 e0 B3 i$ F
// á?oˉ + }: k" ~" W! ]4 [# ^+ U
pLight->Ambient.r *= 0.9f;
3 `: F- G' h" K- k; w8 i pLight->Ambient.g *= 0.9f;
1 T3 S* L5 P' L* y0 \ pLight->Ambient.b *= 0.9f;
6 s* @5 F% h5 x6 Z* o1 G& L. g; b#endif //__YENV
- y: C$ A# {) U + W2 A2 {/ q7 C/ U0 K5 L
memcpy( &m_light, pLight, sizeof( m_light ) );$ B) l9 }6 |# ]) k- S- P2 K
/ T. Y( W2 ~; u3 S1 W4 S
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
2 M% h; c$ w: O2 ` D3DXMATRIX matTemp;2 j- s* V9 T: H5 O
static const float CONS_VAL = 3.1415926f / 180.f;
- w, b/ t: G6 g! C0 i; a$ j* \% Y: A
0 h. e3 K( h# I0 ` ? D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);2 ?: F$ t0 t E, |3 q6 {$ u! j$ {
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);6 M1 q4 O1 }* J( P# h
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
% j8 c$ |4 d- G1 e! s; O$ Z* @; w pLight->Appear( m_pd3dDevice, TRUE );8 h8 ~$ p, b( E. n, k. X
8 N- Q) V1 _) q3 {& k. O // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 w. l5 L8 k. W7 t
// D3DXVec3Normalize(&(vecSun),&(vecSun));
9 ]' o) E2 i, S4 n( r& Y // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); $ _9 S# B* g4 o Y" Z7 g, H2 t
0 H0 O" r3 f) I q7 ]
DWORD dwR, dwG, dwB;
/ T% Y+ V% f: O1 \ dwR = (DWORD)( pLight->Ambient.r * 255 );; i3 p: R6 `3 P k/ O4 E
dwG = (DWORD)( pLight->Ambient.g * 255 );5 n! y! }0 x$ x* c3 e8 v
dwB = (DWORD)( pLight->Ambient.b * 255 );
1 C) n, [! ?9 c dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); - z A. I) }! M; I
}
& `0 a" x" {' Z. u }+ o2 i ^8 q# h. G! F0 P
/ n- H4 [" [0 U7 l8 b
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
. k$ Y4 j+ q- I 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) );) t, V$ F( e2 M6 b
::SetLight( bLight );# t7 z6 N* L0 q7 L7 P
' F' u3 W- O1 z& i# ~- ` // ±ao? ?D?í???ó á¤à? 1 v# h* ]8 z2 Z! L
m_pd3dDevice->SetMaterial( &m_baseMaterial );
$ X# t2 u6 U; X, H , W x* `4 N4 `
#endif // not WORLDSERVER
5 z7 J+ ]% o: n9 R}( y& f* |* V C% X' o" q
并更换! J! V% o* Z; U. G. s& H
Code:
2 t: K0 |+ R$ n; n4 V/ D9 s+ p__FLYFF_INITPAGE_EXT
+ D _4 _; Q9 N# k0 K: X; z定义6 {& B. `* B( ?5 L
% @; [* f( R& k- ^
% S9 b/ t: o: ?8 m! w8 E4 t4 O
0 [+ b* n1 A+ o E: U
' z" @5 M5 N& G6 b! P现在终于删除我的狗屁加速...
4 i; D- x& j7 o9 B$ G \3 B( _# s3 N* ]8 ^( x
" ^1 z( E: K3 \6 ~8 @* [/ j
5 q" o& i |9 Q1 b |
|