|
|
食品车:+ D; s% J) S+ K9 i; Z
尾翼:% |. f9 y' `) a
+ r1 [) `+ p# g8 N1 T4 N7 s) I
代码:
( I- v# G9 f- }) \6 E4 }& V2 ~7 ACWndAutoFood::CWndAutoFood()
9 b( k0 ?1 [/ O& z6 ], T: u6 I, c{+ w; ?2 o, c/ k7 P& t( _
m_pItemElem = NULL;2 d: j" }5 m0 a
m_pTexture = NULL;
1 D0 H; u3 \& C8 [+ o9 v bStart = FALSE;
+ j% Q# O9 [6 N! M} Q4 ]" k8 [. L! c; q" q
8 ^ e! X, L! s% O5 q+ s7 i+ Z8 A8 ZCWndAutoFood::~CWndAutoFood()
6 G5 I, C1 z' k( J, A{. u' ?% y% `" N' _" B: Y
AfxMessageBox( "AutoFood ist gestorben " );
5 P% x4 l6 r0 @ x4 {, H* Z}
/ q9 u2 r! q3 H; }$ R% kBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )7 E$ ]0 z" l! N" P$ }
{
; Q9 L! y" T- L1 [ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
" J: [5 c6 E" S; ~. ?4 R}
8 _- A9 l$ k! h5 o
( Q7 K- l8 J- d$ k4 @1 }1 ]: N3 IBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ): [$ n, a/ B F7 b% c
{6 I- P( D# @3 K0 ~1 v" i! F" [
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );, Y- ~8 J& J( l3 }5 u
CRect rect = pWndCtrl->rect;% U$ i: a+ k7 ~. I' S2 {
if( rect && rect.PtInRect( point ) )
2 i5 h {5 B+ c3 i/ u. l* p( g {
5 p6 @ B0 C" H CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );% h6 A9 ] F. i1 u; N2 n
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
8 j. [) U" z9 W, q( k6 f* X R {( I4 X9 |4 D# s: `; e
if( m_pItemElem )
$ I; z# {* `3 k5 V& A$ n/ D {6 L4 m. C+ V" ?* A
m_pItemElem = NULL;
0 @, ?0 k1 f! M5 P H* | }
! Z& F/ \: Z- d. _- Y' B m_pItemElem = pItemElem;* @) N$ y/ c" f1 g% V8 _( ]
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
# |! [5 d5 J: r% F/ v/ N }else{# \9 z! K, j/ T0 `- t# d
SetForbid( TRUE );+ B7 y- X% S& d3 g- R4 K
}% R3 |6 [) `- M! P6 N$ I
}else{9 g* ~4 M4 [4 q, d9 u" d0 N; v
SetForbid( TRUE );
+ w/ Y" Q% A/ d7 D }
! x4 b! B% \- E Q return TRUE;
4 l7 W1 C' @' W}( i4 q3 d b" Z$ y M5 d& }4 v
( ]+ B4 L+ r" A5 B: ]- \
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
. T% P9 }% [6 N{
$ I% @6 [! _2 s. W | switch( nID )
" W7 x+ ]; w1 e% g {1 C- Q7 K* Z& I" J
case WIDC_BUTTON3:& l `5 q- y5 r: |; Z
{
v9 w- I* x) a4 a3 k bStart = TRUE;1 q/ l! r8 s+ e1 @! X( K- j! k- p+ ?. t
break;. o) G$ r% q1 M' u3 D! b4 _
}
; z9 A# z, R7 S& T; j case WIDC_BUTTON4:
5 d9 ~6 w, n0 g {* T3 { m+ y0 [: x. k3 L0 J+ w$ y
bStart = FALSE;
" E, m1 p6 G0 j2 } break;
S; z9 P, S# z% O }
8 n6 s4 T) N2 E1 ~! M }9 e. b5 B$ `* V) ~8 B* j6 }$ ]
return CWndNeuz::OnChildNotify( message, nID, pLResult );& ^- e. W2 f( X. a$ a$ y; a8 j
} ) p' f8 t; U1 U% E; b
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
2 u. H; I2 I: |{
& j( g- v) @% u& \ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
b( G. N1 t4 e if( bStart || !m_pItemElem ): M7 w2 O8 Y5 A: g
{, g t, X& P5 W. h
pBtn->EnableWindow( FALSE );( q {; {+ H6 c, {
}else
) \. E$ I) x- s: E1 i: f5 D pBtn->EnableWindow( TRUE );
8 r8 ]% t, w2 T7 r2 C if( m_pTexture )
7 T. c( @. `& q, k" o8 c5 V& E5 v {
4 o" N8 D: `! L: E, ]) G" V( T$ u LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
4 K- ^/ d! f2 c8 r if( wndCtrl && wndCtrl->rect )
7 c5 P' T1 K4 v+ i- z- L( L {
, M* A% r6 T b$ ` m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );/ x' L, V+ Q4 t4 ~3 {( s+ E2 ` B
}
/ ~3 ]5 e, h; {+ B4 ? }
' W# N% e* ?2 I, M" ?}
7 a8 ~/ x" s1 y2 ]" s6 q
1 c9 g0 F8 q: ?4 ~- Y b4 BBOOL CWndAutoFood: rocess(); t8 V. Z2 Y' L S7 ?" t7 I
{0 I' w: h; q N6 b5 b8 A' U: P4 ?
if( bStart )
( m) @+ v4 b: B- t {
6 f" J: j& q5 |" Y2 e if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )( v1 t" D! j2 a8 r; k! s3 Y
{
$ U5 X0 x7 z% y& ?4 Z1 C# z if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ). E) Y- ^5 b- Z1 P. h# D
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& W2 I ?) \4 o% _9 G( q3 P
}else{3 A* r0 l7 A3 o7 ^
bStart = FALSE;. j4 u: x5 C! ^
m_pItemElem = NULL;
% T) L( ]" ^; P) | ]1 C5 _2 m/ M }
4 u; F# v f9 K }; b; b; U' |* o! Z
return TRUE;
2 g8 r: c W+ x( v* T8 {}! n) o. S% I' W0 n
; @, D+ |9 N& I1 y; \0 Y
登录视频废话: v& f+ L8 Y* m, f* A8 s M4 u! |
尾翼:6 v. O2 a) H6 M" k0 ?
+ P5 P9 h% s/ I: r/ W代码:- \5 R Z" w" o5 F/ P3 p! U1 z
- ~" M5 ] n8 e, F& w& tvoid CWorld::SetLight( BOOL bLight )- X/ i. W( O m: r9 m& ~
durch+ L! P! E+ H1 v! a2 D$ o: u& G
Code:
6 {0 N" O5 t# l- ?9 z1 J0 hvoid CWorld::SetLight( BOOL bLight )
X: _! _+ Q# v* r+ t" o{$ \ a# y, ?8 e$ R2 c7 ]
//ACE("SetLight %d \n", bLight);1 f& v8 R8 ]1 C$ ~; M; L6 B4 l
2 e+ Z5 p# g# ~0 m1 s! D! W9 R
#ifndef __WORLDSERVER
; t! _0 m. o: A* {3 F) E DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);; t" P( e2 ]7 S1 |4 f; z
CLight* pLight = NULL;
; Z% W& t) p+ s$ e, O" `; D1 a4 ~1 I; p0 R9 f
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );. X% f6 k9 E! d- Z# j
0 \# |" S5 B: V6 {" T3 F' |
pLight = GetLight( "direction" );0 ^# D* T: ~5 I6 x3 T) Z% }
t q' t4 z, d' c+ g#if __VER >= 15 // __BS_CHANGING_ENVIR9 v$ \) y5 v9 M! e0 V4 T3 Z& _# Y( _
if( g_pPlayer ){, {8 ^6 E# C5 ]6 X! q( Z% [
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );2 v. }/ ?# w+ K9 r& b/ u
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
9 ?+ V. }( |5 {7 M* U' P {, G: \. O. I4 o
if( pLight )9 O) O7 P- B f+ d0 z5 C
{; ^7 I6 G! e/ n1 }# ?/ k" |
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];( X' _% F, u( S. O8 C# w
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];$ C+ Y9 S/ M" g# c( ^3 W& _7 }
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
" d! h, A! Q+ I- l, z$ j) S' C+ Q$ v) N `
pLight->Specular.r = 2.0f;0 ^( J$ T3 Z2 J- r% G1 H' Y
pLight->Specular.g = 2.0f;
" A5 v$ u2 L+ Y* V7 h0 M1 U pLight->Specular.b = 2.0f;' x6 t+ f8 [8 s0 z1 g# g+ `
% C$ {. m8 l8 P# A* R8 T pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];7 s J# Q3 s* B# `/ u2 p) Y2 `1 L
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];' z* _4 y {& x# y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
- S& a2 }+ t% @
- G m. S- B+ d- } HookUpdateLight( pLight ); , e' k, x$ i) }, X8 i9 ]
/ n3 H; J5 r& W' E/ t( _ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' s; l0 O; \0 D1 a1 t
, I5 u- N* a+ i- v& Q' O7 Z3 N pLight->Diffuse.r *= 1.2f;
4 I3 t6 d4 o' H X& K+ _4 @ pLight->Diffuse.g *= 1.2f;
8 f5 r% y% Z+ w6 x1 b pLight->Diffuse.b *= 1.2f;
8 S* a5 A9 d( `8 O4 E+ B* | P( o
pLight->Ambient.r *= 0.8f;) `. x" D. M. {+ [2 O
pLight->Ambient.g *= 0.8f;
+ `4 Y6 B; O A. B$ T$ _0 k& u pLight->Ambient.b *= 0.8f;" I+ A5 X* H1 Y+ F# s' d9 \
+ y. N1 t$ u' y5 o$ ]7 ^ memcpy( &m_light, pLight, sizeof( m_light ) );
) {, ?# K w; Q1 m4 s, Z! s, }+ Q" ~7 z+ H$ O. p
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
$ P0 }7 U/ C) p% E: t: M D3DXVec3Normalize(&(vecSun),&(vecSun));
8 a. V9 { L( F) Q4 c/ g5 ^ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
& g1 w' f+ q4 \ B. a pLight->Appear( m_pd3dDevice, TRUE );
2 v. T' B( b2 |
/ n1 }& G+ d5 Q4 H' G: c DWORD dwR, dwG, dwB;
7 n; I5 e5 L5 u0 C" \ dwR = (DWORD)( pLight->Ambient.r * 255 );
, n; t, [ ]$ ]/ D( t$ h dwG = (DWORD)( pLight->Ambient.g * 255 );
2 k2 m8 d; j" Q dwB = (DWORD)( pLight->Ambient.b * 255 );' W0 L: A2 ^# Y- h# S
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& g* o6 D2 e K! \5 J8 `0 j4 w, K
}6 h8 k y6 w- ]* _
}
( l" e) }4 O# q6 r! ~) w }& |. }" [% S1 [
else
" u: x# y5 D* x9 R h. I#endif
9 ?+ w* _/ o+ y2 J) `& b! t
6 D; J( B v5 Z: Z3 k8 w; S( d if( m_bIsIndoor )
/ Z+ c$ ?! c1 t: K {
|* \' J9 m7 X) m/ s5 c; @# } if( pLight )+ O L0 {2 p9 [9 N4 j
{
8 J0 L( I' A% a/ ] // à??μ oˉè* # O" P! I0 B0 R* i2 O8 G7 s: v
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
1 ]; c" M) O- T! Z pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
& H6 T& y6 H1 Z L pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;' y! X. F( _5 b2 J
9 w8 g0 q% C$ Q0 S% p! }& N0 [& G/ x8 n // oˉè* ??à? # O/ S; r4 Y: b7 K3 S4 V1 ^
pLight->Specular.r = 1.0f;
K) t4 h% w) y+ v pLight->Specular.g = 1.0f;
: z& p0 Q' `% F8 l( X pLight->Specular.b = 1.0f;
" R/ Q: V! D; V. Q" N1 y: _ // àü?? oˉè* ! J) g7 K! L3 v- ]' v6 ~
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
# x; k' P7 q) ]; L2 E8 J/ A9 l j pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;5 @# c# R3 D$ R/ `
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
/ y0 k8 A! _" R0 V" G5 y
* x" g' g8 O* O* i0 i if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
& T: U' M) F2 M0 m6 h8 B- r {
' {* m/ b" I5 d, b% A, R pLight->Diffuse.r *= 0.6f;/ j: t, ?6 V& h2 V7 }" ?
pLight->Diffuse.g *= 0.6f;
. R2 ]+ c* l8 }: n$ Q pLight->Diffuse.b *= 0.6f;) W+ ^4 H2 C5 z; ?+ v
pLight->Ambient.r *= 0.7f;
; h0 j" U: d; u% U* q6 M- B3 v9 Q0 G pLight->Ambient.g *= 0.7f;
j- k8 f( u! [, a# p5 r pLight->Ambient.b *= 0.7f;
+ d' k9 H& X) }. H# J* W9 E* M+ ^ }
" g4 @" Z: X( w! m, ]' n4 }& n1 }3 @3 c+ H# p
#if __VER >= 15 // __BS_CHANGING_ENVIR" Z% j# \5 }; s0 P( |) F/ t
if( g_pPlayer )
% L3 q8 @3 n% p m" v8 l HookUpdateLight( pLight );+ o1 C7 P9 P+ q1 M7 z; |6 B
#endif( m: {9 A$ M( p6 t
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# k# Q" y& A1 U# o, m ]
5 B" {1 c% s! p' d pLight->Diffuse.r += 0.1f;1 e; t5 U( K5 |4 x8 O( C" |
pLight->Diffuse.g += 0.1f;
/ A+ F$ F3 U& i5 ^4 Y pLight->Diffuse.b += 0.1f;
1 n; P9 ^0 x" b5 F* N // oˉè* ??à?
/ n# b# u- B$ ^# \! D9 H& [ pLight->Specular.r = 2.0f;
" O: `6 x& P9 i+ Z! m3 F8 m pLight->Specular.g = 2.0f;" ?; O) M8 u' Y2 J, K5 n1 q
pLight->Specular.b = 2.0f;
- R* o' X2 v" |. i // á?oˉ & M* E4 S k( ]/ p
pLight->Ambient.r *= 0.9f;* K- g0 O4 U! Z+ v3 s# b
pLight->Ambient.g *= 0.9f;/ a% N& J. X! b, {$ L
pLight->Ambient.b *= 0.9f;1 u q0 c0 N7 _# u
' I# c8 x4 u/ { memcpy( &m_light, pLight, sizeof( m_light ) );
1 K' U3 d1 \ {7 U 0 p: @1 O3 ?3 I
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
# v! @" E1 }' r' o pLight->Appear( m_pd3dDevice, TRUE );
0 F5 \4 ]; \2 t' ^ {) }0 [ 2 h3 a u( x i" e) g
DWORD dwR, dwG, dwB;2 u- _0 \! B, V: S% k9 I
dwR = (DWORD)( pLight->Ambient.r * 255 );; b9 i/ w' R# ^. S
dwG = (DWORD)( pLight->Ambient.g * 255 );7 R$ h) j# i. {' {' \. r
dwB = (DWORD)( pLight->Ambient.b * 255 );
1 n$ ~1 w0 ~6 ~/ j% }2 \ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! b0 d8 n% b' J }$ P. T* [8 D7 @! g+ l( ]
}
' `" c. O8 ?( a3 r/ [) W else
9 h5 a& O5 R+ h- v {: o0 T( e$ `9 H+ `9 b
if( pLight )$ k, c8 H/ d9 l% X# p& }, U- Q
{- ~$ e+ b' m; u0 t' [3 Z
/ x+ Q$ A# e1 s4 u: v: e int nHour = 8, nMin = 0; l, I4 |; f. p: B
#ifdef __CLIENT* r( {/ g5 r& r
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
( |) J+ x. d0 _- d/ n: }6 J( M nHour = g_GameTimer.m_nHour;
. ?& I% O5 b- G, i- h nMin = g_GameTimer.m_nMin ;9 T- q4 R+ t7 p( }( G# j9 H8 e
#else
2 P0 ^5 j( e/ l) V7 l& l6 h6 L, Y // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
0 |$ q# B$ y- Q" v if( m_nLightType == 1 )' u8 f/ c9 K- V2 s5 H0 A# p
nHour = m_nLightHour;; ]8 A+ u7 ]3 B8 _+ A- c0 L, k
#endif
7 Q3 l& d+ X i0 M nHour--;
3 O" N3 @5 i q) l4 l if( nHour < 0 ) nHour = 0;
1 h4 o0 Q3 j5 M* s5 p \ if( nHour > 23 ) nHour = 23;. P) t6 G" _! N
" c& u) C' D3 X$ O: `' D3 j$ g" J //if( m_bFixedHour )' Y) Y; u; m' [7 k" i" T) b* E: z
// nHour = m_nFixedHour, nMin = 0;
/ J2 x+ D7 Q3 n% V& E LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
- G: u k, J% t3 I6 A LIGHTCOLOR lightColor = m_k24Light[ nHour ];/ I' P! y8 R: H$ g% a0 d
7 ? P7 ~, @% t; ]
//m_lightColor = lightColorPrv;
3 v6 Y& ]9 ^. p) G4 w2 [9 }# i lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" `6 _) C e; e% f
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
; I: H0 H# w3 J- f. X: K1 N+ F% P lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;( H s7 A& X# A; e8 f" B
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
: }* E% d2 }6 X) v2 y, [ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;4 N) t' u* j M! }0 ?: |; J: \
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;& H# V, R( W: K6 T0 J [
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)3 a1 F0 ~6 i% M9 ` g
: \; j' N: C$ d
// à??μ oˉè* i1 K& m. S5 d9 S" }5 o( e* Y+ S5 K7 y
pLight->Diffuse.r = lightColorPrv.r1;! P9 |% k. ?' o1 F4 c# f
pLight->Diffuse.g = lightColorPrv.g1;- K! k& f* i1 @
pLight->Diffuse.b = lightColorPrv.b1;/ z5 Y' g, X; v: v, e% \
// oˉè* ??à?
5 h6 X! p% \9 y. a: X pLight->Specular.r = 1.0f;, M; P+ ~9 ~+ w$ x* v
pLight->Specular.g = 1.0f; r5 t) `% c3 ?: U" C
pLight->Specular.b = 1.0f;
/ H: i6 Y& w( A% Q7 X1 ^1 I // àü?? oˉè*
' j- {) U8 k+ e/ M, s% o9 @ pLight->Ambient.r = lightColorPrv.r2;8 [ B+ h% p8 i n$ E2 y
pLight->Ambient.g = lightColorPrv.g2;8 C+ U' `2 T+ l2 K3 u5 F0 M# p
pLight->Ambient.b = lightColorPrv.b2;
4 K8 C4 U U) K! x5 M y1 G; Y: L" F6 X0 m7 V# L+ T2 o
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- D0 ?' d0 q9 X- {. W# e
{: s% D, C4 A; M8 G" j/ s; A
pLight->Diffuse.r *= 0.6f;6 A `0 i x! T$ E, `6 q. f
pLight->Diffuse.g *= 0.6f;! \* q- t# p9 d4 [! A0 R7 n
pLight->Diffuse.b *= 0.6f;
& D8 ^5 Q6 E# a6 n* ^ pLight->Ambient.r *= 0.7f;
" J* c c# W# F4 A9 L1 I) n pLight->Ambient.g *= 0.7f;
1 g6 D7 |% v! U/ S W2 t* D* X pLight->Ambient.b *= 0.7f;1 a7 v" P |9 g T+ o
}. x" R: i0 J1 [6 ?9 k
, D% {+ m3 O4 {7 T7 x8 V' w0 E
#if __VER >= 15 // __BS_CHANGING_ENVIR
Y- h3 C5 L* t7 E if( g_pPlayer )$ p3 I! `* v& X) E- v5 W
HookUpdateLight( pLight );
, k! a, L: w2 U6 U/ ]7 C#endif% o) W) M6 r/ m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' X( _* w- {$ t& U% I/ r
6 n( O* P1 u' w4 T% X/ C#ifdef __YENV3 _8 I2 A! I( l9 ?: t( C
pLight->Diffuse.r *= 1.1f;) o: M! X, x3 y; W1 {- R, O
pLight->Diffuse.g *= 1.1f;/ C. N! l: v4 E K0 Y [# p2 p
pLight->Diffuse.b *= 1.1f;
. W/ L3 e1 y' F6 T! R // oˉè* ??à? 6 s0 J) q: w6 X$ `( G4 d6 i5 z
pLight->Specular.r = 2.0f;
$ P1 f6 Y w- r( K9 R9 ~* o pLight->Specular.g = 2.0f;
. t/ k" r% S2 K$ t ? pLight->Specular.b = 2.0f;. l# C4 E0 z4 w% A. P+ w( ^
// á?oˉ 1 n7 ^1 S$ a) V4 J8 r
pLight->Ambient.r *= 1.0f;' Z/ X- g( m. r* i9 Z
pLight->Ambient.g *= 1.0f;5 e$ X. H9 g$ D4 X7 ]0 @
pLight->Ambient.b *= 1.0f;- g; z ~* a( Z# N5 z
#else //__YENV
0 m: K' Q# h* v. B$ M2 ^ pLight->Diffuse.r *= 1.1f;& Q' z, u5 k; D8 R/ E P% E
pLight->Diffuse.g *= 1.1f;$ Q! F8 b% W( V
pLight->Diffuse.b *= 1.1f;
1 t1 n7 O5 t; ?* T! }( C5 o // oˉè* ??à? # r/ q, J1 N& ^$ v" W' X% ~
pLight->Specular.r = 2.0f;
% s1 G4 Y5 Q: S `# ]4 _: D3 r7 i1 ~ pLight->Specular.g = 2.0f;
: i5 J, b6 I2 O' V5 [" e pLight->Specular.b = 2.0f;4 X e1 V" M5 g5 _8 K
// á?oˉ & h4 i, K l( b M/ @+ ]1 v0 C U
pLight->Ambient.r *= 0.9f;+ A: `5 {# P2 Y
pLight->Ambient.g *= 0.9f;2 U# K$ V- X6 F. v: i, v
pLight->Ambient.b *= 0.9f;
, k) R) U5 ]: a9 M#endif //__YENV
. s5 V: f- I: \
9 x4 Y* y; p* f6 N2 |0 r memcpy( &m_light, pLight, sizeof( m_light ) );
1 F' `9 d; x# o8 k f 3 e, N0 i2 W; [0 B" ~; q+ g
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f); s& T1 p, t. L, Z% H; Y& }
D3DXMATRIX matTemp;# W. M! X9 h. k/ M
static const float CONS_VAL = 3.1415926f / 180.f;4 t: E0 @( t" a: \0 [; b7 y q
8 d) g* ]. h; b3 X4 {/ E( O' {
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);6 P! L' F, l& a
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
& u9 r+ f. p3 V% f2 J& z! R5 h& C7 O pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
$ J& }3 N+ a9 A/ M) i H pLight->Appear( m_pd3dDevice, TRUE );
2 H6 L- s3 Y" K# f1 \# L8 j5 J# G
+ Q5 f; _; `6 L) Y; e // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 X9 m" P: Q( d
// D3DXVec3Normalize(&(vecSun),&(vecSun));. o3 M/ O# \7 T# T' t
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 z [: X( h7 N+ L- l; U9 o( f7 j( E
DWORD dwR, dwG, dwB;$ @; y. P; l$ N$ C
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 L, q5 h( b3 N dwG = (DWORD)( pLight->Ambient.g * 255 );& k7 P- d3 b e- |+ }" _
dwB = (DWORD)( pLight->Ambient.b * 255 );7 g v; e3 L) e9 m q! S8 u, F
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 ^7 L D7 W- o5 u9 m }
2 O2 X: }) n( h: d/ M" V, |9 V }
6 g: a+ ~- G. W( J
0 P* v- k5 x' b3 a- P" r0 ^4 q' r m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );1 R8 h- Y) B) A! G8 Y' ~0 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 s: w$ i" |, Q- B
::SetLight( bLight );$ |$ B O) V4 A7 U
. b7 D9 E1 ~' ~% R5 ~/ g // ±ao? ?D?í???ó á¤à?
) L0 q$ ~( @8 g6 g6 t3 k m_pd3dDevice->SetMaterial( &m_baseMaterial );
3 I6 j5 v$ F3 n2 ~: J & w7 t" z+ I3 W6 ?# U4 `7 @, o
#endif // not WORLDSERVER
7 |, ^, N9 w( `+ _' O0 z: Q}
0 Y4 q* D0 R! g* @+ h并更换$ z1 B [- d* @9 }/ k) L
Code:
6 H" c) `) @$ {# V' c. @__FLYFF_INITPAGE_EXT
- m; y! p5 L, U6 o定义) Y; [6 |, e) s3 W i4 Y: B8 d
/ S! r% T* ]0 S: c+ }0 i: {9 K8 z, c8 Y3 T5 Z7 ~* t% F3 d
7 u0 {7 H! a2 E) r8 ^6 O8 A$ D
2 s% r' n6 {* A d i现在终于删除我的狗屁加速...1 d$ K; Q' K# c% B& g) `% K
) s$ e" j2 l0 F! S# J: _2 W
: t1 T6 S' e, Z2 L" O
1 R5 W! J6 a0 g7 q* G, `
|
|