|
食品车:! M5 q$ k# Y- q
尾翼:2 h8 s" y4 v. |1 P5 @
& p. P/ `4 |: ~1 H2 O; l. [
代码:. v* }! s0 {. u6 ]9 H
CWndAutoFood::CWndAutoFood()
1 T* w U6 c8 ~& Z, i- x{
3 ]7 C8 u( a2 s% L$ L/ |* h9 J. F m_pItemElem = NULL;, Y8 J; J" L g% G
m_pTexture = NULL;0 B; a# e2 ~2 w
bStart = FALSE;
" b! x1 i, k2 W8 O( r# ? l& ^}
0 x: P' D d) w5 Z8 o: H9 H9 B2 d
CWndAutoFood::~CWndAutoFood(); s* i, O( U- b" q! y5 [4 ]3 O
{! c V: P/ s+ }/ G3 H) S/ g
AfxMessageBox( "AutoFood ist gestorben " );, v, u9 I8 H) j$ J
}
* B1 Z$ J+ @. J7 S u/ z; EBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )( q8 D- m6 V) Q- d' t1 B4 s' s
{% V8 e. v. A0 _! T8 R, _
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) @) u$ J) i* f5 r, f6 s* P: E: \
}8 G$ ]& N+ i% S, w8 R
: N# n _. c1 ~: HBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )7 U( X8 `$ b0 U* {! s1 E
{; d5 u3 I* `3 J! P8 E/ y
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
$ j4 F# o9 U% m9 e( R CRect rect = pWndCtrl->rect;( a6 j/ }/ _) u$ c1 a
if( rect && rect.PtInRect( point ) )1 {+ Y! U3 n, H- X T: D+ M
{7 u$ q* K8 j7 J+ x- N( j. ]
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
/ Q: ]7 j! Q( C w( c& f0 M if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
/ x; Z* d! n8 k0 Q) L {" t( m2 P ^: V% F
if( m_pItemElem ) @1 T7 N: s# ~" Q
{
5 d0 c: ~3 Y" j2 U m_pItemElem = NULL;
/ {' v1 N0 O5 L9 ?: B8 D) O! @ }2 z, k+ J d4 q, L- z
m_pItemElem = pItemElem;
4 v O6 n/ ~9 b+ z m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 w) E9 `, y d/ j }else{
8 E, k$ o5 d4 J9 Z- u2 Z# _5 a9 a SetForbid( TRUE );
* t- y+ x. O( d* y0 m7 N }' X% \& G( [7 f: c. f
}else{
3 n# G2 ?. s l& Z) C2 o SetForbid( TRUE );
) v' E6 y: N& L. I- S9 s }& I. J% ~6 W; @3 s8 Q; {
return TRUE;0 q9 Q+ P( O% ^
}
5 f' P! I8 i7 ^5 \4 `. d( s" O+ A
$ Z8 ~2 S) M6 k8 F8 tBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
, h3 ~6 J- e3 I0 l6 w+ v% {5 t, ]{1 L$ `8 m% W9 x. H; l& ^2 _% F
switch( nID )% C& L: ?% {! k& }( ~, t- R. l2 x
{
/ t/ ]. K" V7 P4 A' S' o case WIDC_BUTTON3:
6 T8 |& s3 T0 D* j" U% g {
5 l; o, b8 i) U/ ~/ g bStart = TRUE;
+ M2 ~ q% Z' ]1 m break;! _$ ~" {2 h% X
}: c7 v3 Z9 h5 D# g# x
case WIDC_BUTTON4:' D" o3 U: A; K4 @: ?! u+ c
{( Y/ @$ z. y# r3 Q2 W
bStart = FALSE;; J+ s4 z8 {3 B5 z' k/ w% Z
break;
* \5 D/ L! @3 Q. A' I6 U }) B$ U6 J- c4 x1 M3 x
}) q4 |1 M' v+ X/ r
return CWndNeuz::OnChildNotify( message, nID, pLResult );
& v3 ~7 K2 Y8 M' v, ^} 3 q9 w! S( F3 s- q1 ?5 e
void CWndAutoFood::OnDraw( C2DRender* p2DRender ); Z5 [. t! V ]& @0 W3 ]1 J3 f* v
{# b$ t4 M) W: Y$ K4 R
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );+ r. u) k Z' v
if( bStart || !m_pItemElem )( Q: j$ d/ _+ r7 K( @
{2 [/ ]- l7 f- C* ]2 ~9 o" e
pBtn->EnableWindow( FALSE );
( v8 X A0 K+ i" d9 } }else
) X2 j- A) w0 B7 U pBtn->EnableWindow( TRUE );: x7 y5 N" Y3 C$ x/ r: m7 Q7 Q
if( m_pTexture )1 D7 F: l7 ?6 N
{+ W* F( [" R9 K d: A; U, E
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
1 L. R/ \. I" L) m8 b if( wndCtrl && wndCtrl->rect )
+ `. b) i6 V) |* g' \4 t$ J4 O {
5 [7 s2 k5 v$ F ], m m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );) h5 J# `- H. g) v- _9 A/ Q- Y
}
5 m! U: B) C G6 `4 I }; w+ i- {; {3 } _! X
}
$ P9 T/ Q/ q. S* \* H+ Q
: R* b4 _1 w- DBOOL CWndAutoFood:rocess()
6 o: v) J' k) ]- }1 ^* Y) H l$ C{
$ L# a: r: M# p, v' G if( bStart ). n: L0 ^: d6 T' C b$ x+ t
{3 a% S1 Q' Y" y
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. I7 M$ S* a/ d9 b {
# y1 U( H0 X8 @$ N3 ^, p: d6 ] if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
+ |' m( _6 p+ Z+ n, i+ d g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );7 l. G/ c. d3 x! x
}else{
: h& H2 ^; G! x) s$ t bStart = FALSE;
3 ?" | H) E, Q3 |( i; h m_pItemElem = NULL;1 p* S9 W R N( V
}
3 ~! A/ O) E- B }
0 u9 @8 `& ^: o: Z1 ?5 s return TRUE;. R0 v: W- H6 U2 g2 n
}4 y+ s0 D5 R0 X* x3 P& c
' K. S6 g5 |8 f1 g登录视频废话:, b4 N$ w! A9 X, F
尾翼:
4 E: l' `/ `7 D/ o* t8 p4 H3 Q* y0 L
代码:$ _) r. Z' c( {3 y4 R! a
# D1 l) w' t7 b1 D4 J# Xvoid CWorld::SetLight( BOOL bLight )
! I; [0 N* q# v2 v2 J$ Rdurch
0 Y9 A8 G3 `. e1 w& d+ {0 xCode:
/ V0 o, c7 z# _/ @# m0 k' M4 ivoid CWorld::SetLight( BOOL bLight )8 |5 o; S. F6 g/ T4 \6 D( G
{
! q5 o) m* }: H {( [" Q- F //ACE("SetLight %d \n", bLight);4 [/ T9 D6 J4 X b- j3 _
7 B) o" ]) I: i# A5 Q( \1 T" h#ifndef __WORLDSERVER
y/ g; B1 l9 ]) g DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);- g+ x3 f0 u% @1 A
CLight* pLight = NULL;& Y4 f& V5 P& p' K4 x
9 ^9 n* Y3 e7 \
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );% m! F8 m8 ^6 _5 S
5 Y+ K1 k* |+ `& f+ X' p, J: j pLight = GetLight( "direction" );
$ A, _* [/ D. b/ a6 L$ T
+ V1 x1 e, Z* H# M2 x#if __VER >= 15 // __BS_CHANGING_ENVIR* W4 {: {9 m5 h
if( g_pPlayer ){9 x5 P2 v3 A/ ]* E, k
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
3 j- U7 O) l9 h! X) ? if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ i* A( L3 G9 Q4 [! r6 q6 D: p {
2 i6 l2 X6 M. e7 Z* L9 R# C- H9 Z+ B if( pLight )
3 T) M7 K3 R8 q7 r! l8 T7 z2 H {
' l5 ^. E* |' k: e: Z0 P7 m pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
1 w }- [# r& c, N pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
# W5 K( {& @6 d4 f: I pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
9 B |" g( u5 a" k: t& Y. M
7 y7 q( w% E' b5 P0 u. W pLight->Specular.r = 2.0f;
/ H/ ^! T( S1 F" o% U( P+ O pLight->Specular.g = 2.0f;3 k% T4 n, s# \: s& q8 X
pLight->Specular.b = 2.0f;
6 o' W0 Q& |9 V# o. I0 U! s* j* H) m " h3 n4 w* \; t: ]5 A
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];. e! {0 e$ T0 i0 D4 Z; B
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
) \8 s) q1 c0 H/ _) {/ G pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
5 p. v& a9 N: j* ^& l & t+ E' Q: o) ~( Q. f
HookUpdateLight( pLight );
. H5 f1 K6 {5 e$ u7 S
' m* C8 S' N V% u6 P1 F2 [ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
& \ x, d8 k0 S3 b" _3 D( i' k [) d0 T9 Z' R1 v2 H$ N5 y E5 |/ l4 o
pLight->Diffuse.r *= 1.2f;! H6 z' \+ Z, t0 t7 a/ l
pLight->Diffuse.g *= 1.2f;
* P- j( g8 Z8 R0 _0 a pLight->Diffuse.b *= 1.2f;
, X+ {* v! r8 C4 B+ J- O* W! }9 w: z t
pLight->Ambient.r *= 0.8f;
9 f5 d, i& Z* M9 q8 P4 _, N) c/ m pLight->Ambient.g *= 0.8f;
, {2 L8 k0 d) S$ w9 l pLight->Ambient.b *= 0.8f;1 @& k, V: x0 @2 t4 ?6 g$ P0 w2 a
2 Z, @* O3 ^; ~. W
memcpy( &m_light, pLight, sizeof( m_light ) );
8 E6 c9 g: Q9 d# r/ ?
/ s$ J% z" L9 D! ?/ e* M e% I) b D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& C$ K# h+ J/ y }4 x D3DXVec3Normalize(&(vecSun),&(vecSun));5 ]5 k$ R+ U0 G, g5 P
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); . ~% @3 B/ T* I
pLight->Appear( m_pd3dDevice, TRUE );
; \9 I. d: z0 V, i1 [: e* G 4 B: y- c( m" j& A$ p3 I
DWORD dwR, dwG, dwB;( D2 v$ K" y. L+ ]0 l( B' z6 h! _
dwR = (DWORD)( pLight->Ambient.r * 255 );# W* l5 }5 _9 Y
dwG = (DWORD)( pLight->Ambient.g * 255 );' n; E, U( s/ `* I; B
dwB = (DWORD)( pLight->Ambient.b * 255 );
& s: k# v! Q; \4 s% N [% m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- [* X* x/ r9 E" N }
) k- j; u: V) U }7 R8 L& g8 S- s, e. i' ?: U
}+ Y' ]0 V6 a- F; S n
else/ i' \+ S& a" X/ @- u0 @- T2 N2 J
#endif
$ r. [1 J$ a) |4 s' f5 R; Y0 [" c2 B( C- J* W" j8 f, Z0 a
if( m_bIsIndoor )
; {3 s6 K7 `4 i) x) ^% s; x' Q {4 I( b0 q3 n: B0 T- Z$ R
if( pLight )1 L! G% I4 [1 y e
{ ! \& d7 H- L. w7 `) Q5 R9 F
// à??μ oˉè*
# {/ u# q9 l! w7 I9 n$ B/ q6 G pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;; E0 c9 q6 y! ^" q, c, G
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;2 m$ t7 A. p3 \3 S# I& P+ L
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
: X( }9 ?, V1 R( A
* J2 U7 y' `- L3 ] {# h) }/ d // oˉè* ??à?
' N& l6 D, u2 N6 o pLight->Specular.r = 1.0f;
) C, e5 X* z3 E7 g2 U% ?. j/ G! s pLight->Specular.g = 1.0f;
0 ~; _5 c6 E1 ~2 b. L; `3 M; p pLight->Specular.b = 1.0f;
[' V8 V+ s! S- ]" [ // àü?? oˉè*
! u9 s, ?$ [$ `! N; d/ X% Q* {! g pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;$ h Z) x v" j& ^' T/ b5 m! O% R. V1 m
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
/ ?5 [3 T! h& D5 Q/ E pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
8 s0 @2 i% ]" P) P
0 L. U' u. r) o8 t if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.. K" r6 Z6 K; i6 S/ E9 w
{
8 h* s/ w, J* r0 U4 ~ pLight->Diffuse.r *= 0.6f;
& Y, a2 r! _9 @* `+ @$ D) t7 H pLight->Diffuse.g *= 0.6f;! e Y( r& v2 B. j
pLight->Diffuse.b *= 0.6f;
/ E: S# A3 h; Z# i! [ pLight->Ambient.r *= 0.7f;
. R. Q4 {- k) D( K9 D2 H" N pLight->Ambient.g *= 0.7f;
9 ^ Q$ C, s( J) j pLight->Ambient.b *= 0.7f;" J, G q' y0 d! g* K$ _
}% T8 v# J) m) {8 j
2 n, z6 I1 n* b; L u
#if __VER >= 15 // __BS_CHANGING_ENVIR
# e0 b7 U! Z$ K) } if( g_pPlayer )' V) Q$ M& q! N6 C- M# g
HookUpdateLight( pLight );* J& V6 H _) e0 i
#endif( D% M' l u1 @& j& y6 f) u
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 L$ F+ @ F+ g) h. }2 x; A
# f* D. ]) _9 e5 g, o: x pLight->Diffuse.r += 0.1f;
0 G% K* G5 |: U pLight->Diffuse.g += 0.1f;1 {4 G: k$ Z1 x# x( Q7 ]4 }. }
pLight->Diffuse.b += 0.1f;
1 w# h# z7 q, s, ?4 ^ // oˉè* ??à? ' L4 i E b. G) N- r# j* o/ }& A
pLight->Specular.r = 2.0f;
4 ?1 P, |/ t6 k$ E) }/ x pLight->Specular.g = 2.0f;: J. K9 Q3 \: S& m. \
pLight->Specular.b = 2.0f;
+ Q# a( n3 F% P, u5 s! g& F( S // á?oˉ , m+ `1 v$ u. r3 w
pLight->Ambient.r *= 0.9f;
% y* `* G+ n; ^ pLight->Ambient.g *= 0.9f;8 [; r8 i7 ]* t7 ]4 v: ?4 |
pLight->Ambient.b *= 0.9f;& h) }3 G6 \' _$ B- A
: R+ E. ^' f" I* n memcpy( &m_light, pLight, sizeof( m_light ) );
9 @9 s) i% D- f0 q& H1 R
' E! n, r d0 P$ d/ f pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
; j7 ^5 e: J5 Q* X/ u pLight->Appear( m_pd3dDevice, TRUE );0 A# s+ Q5 n; R7 H) G, v) Z# w% F
% R8 t1 O" o* d: M2 j- Y+ r6 ?
DWORD dwR, dwG, dwB;
( N6 k& I& M2 h8 S' G. l; p dwR = (DWORD)( pLight->Ambient.r * 255 );; x% `) C/ u; x8 a% d
dwG = (DWORD)( pLight->Ambient.g * 255 );
}: k9 _* _, r0 `4 o$ w% ? dwB = (DWORD)( pLight->Ambient.b * 255 );
3 B" e- T- T4 N! x9 _9 g9 i. R+ ^ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" W, q) ?3 ?' T8 ` X% J* h }) H- x% d0 x* r+ s# ]/ v+ {
}! D: O& w8 ^; {, k1 f! J
else7 N4 I! r7 m6 t8 i6 y
{
5 S) k8 g3 D- N$ P if( pLight )
! B2 w3 B$ a( E9 L6 o3 J6 S {
2 X' @# D: F$ @$ _+ l3 E) g
4 P' Z1 B& u+ K int nHour = 8, nMin = 0;7 G, x! A& l) g. p
#ifdef __CLIENT
) J) Q1 k) |. ?: O2 o: H5 g; r // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. + {. o- X; j2 ~
nHour = g_GameTimer.m_nHour;. ^" ?( ~4 D9 b/ y+ q
nMin = g_GameTimer.m_nMin ;( N5 O0 P7 l# f8 S4 C$ v$ j) S6 n
#else7 k6 b1 |, }# i0 L! ^
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.% I% }/ a/ i! ?- P. D
if( m_nLightType == 1 )
' x' s, q/ }1 r7 s" r nHour = m_nLightHour;
- Z& C* b) _& Z. m: |/ F" B- ~ #endif
/ u2 C3 s/ q# _ nHour--;
i% x% E( m! ]/ `1 s/ V: A- a4 a if( nHour < 0 ) nHour = 0;
$ ^) B- l& Z Y1 ^% }: H if( nHour > 23 ) nHour = 23;
; _+ F0 n3 U; @: U" e" [
2 q q# B0 i% Z" V3 A //if( m_bFixedHour )
- h8 p$ B) |- i$ n4 M' Z // nHour = m_nFixedHour, nMin = 0;
) W! K# P! `% O0 [/ H LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
! k* l" [4 `- n. i4 |( C LIGHTCOLOR lightColor = m_k24Light[ nHour ];% b3 D7 N2 v4 ~5 ^" P/ `
; G7 c; O9 N1 [( m //m_lightColor = lightColorPrv;
8 g6 L& {8 k: ]" G4 x3 m lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;$ X2 K0 l5 g3 g) ]
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
+ o- M# V) d/ A2 P lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
0 J# G1 R0 ]# c5 b lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;8 s5 x3 G0 N# x, e( D0 e9 N
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
& y. e2 l* j# c lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' y, \0 z9 [ Y2 ]5 U) o
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
, \* A- X, }1 O5 ~+ \9 ]7 ]4 q3 F& y _ `
// à??μ oˉè*
& _& n7 V, s# r, e* ?& X pLight->Diffuse.r = lightColorPrv.r1;2 _8 d5 v% b! O. P0 w* ^ k% W
pLight->Diffuse.g = lightColorPrv.g1;6 u; Q6 I7 z/ V
pLight->Diffuse.b = lightColorPrv.b1;
+ S: L3 K: O" e1 u7 J3 @ // oˉè* ??à? h- q6 ]0 Y/ ^
pLight->Specular.r = 1.0f;
/ j- e% o" I3 V; |! h4 a, `% i pLight->Specular.g = 1.0f;+ u: j# E" b$ c! x C
pLight->Specular.b = 1.0f;# D' D; q, w0 j4 t& i
// àü?? oˉè* ; J! l3 ^' B" \& H0 V
pLight->Ambient.r = lightColorPrv.r2;
% D6 `7 I+ M: c5 A" V% O) ?" h0 ^5 ~ pLight->Ambient.g = lightColorPrv.g2;+ ?5 e. S$ {1 k* V }7 G
pLight->Ambient.b = lightColorPrv.b2;
+ t8 W: E/ a, z- Q1 ^
% o4 U# _3 G2 o7 t) U if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.' h/ }/ m5 ]1 P
{
. N8 ]* l) T* P$ q5 D* h pLight->Diffuse.r *= 0.6f;
# G$ G- b) n# ]9 z" K pLight->Diffuse.g *= 0.6f;" O$ p, y& F. a
pLight->Diffuse.b *= 0.6f;
& Y7 T% j- \. O ^ pLight->Ambient.r *= 0.7f;
( S+ z2 G, m' V; m& | pLight->Ambient.g *= 0.7f;
( e! ?; ^- Q# G% M* E! f8 e6 Q pLight->Ambient.b *= 0.7f;% L$ c( s3 _9 f- }. _. N2 c
}
/ c9 o" E6 y0 ^9 ~4 |! b- S% h! X! R
! P( C6 @' X9 |0 b* c: J- J _+ v#if __VER >= 15 // __BS_CHANGING_ENVIR0 @/ e0 x; P: g
if( g_pPlayer ): z- A4 y3 w' x- `# E' @
HookUpdateLight( pLight ); 0 G/ B; y H. F7 b
#endif
( W5 x% o' X8 W% @: ?: V memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% x" G. K! T- G# ]
( H8 {" P1 S8 N' U
#ifdef __YENV% L- t$ J2 e1 n# Q4 u* N# @% i
pLight->Diffuse.r *= 1.1f;% `: u9 B: Y/ B# `+ |
pLight->Diffuse.g *= 1.1f;+ E, R1 t3 w8 s1 Z; Y! W7 @, q1 H
pLight->Diffuse.b *= 1.1f;
6 |9 D2 K1 g# O" [2 [% j // oˉè* ??à? 9 M3 M1 \! z8 o, U) y& D
pLight->Specular.r = 2.0f;8 ~2 }+ ~. a1 d# t1 Q5 W2 Q
pLight->Specular.g = 2.0f; X; n& j. n3 ?; Y, g
pLight->Specular.b = 2.0f;3 ?3 c* @# ]* S3 o( S5 Z9 J# l
// á?oˉ
8 P8 m) ]# w0 q8 A, F7 t# q pLight->Ambient.r *= 1.0f;) p! V% b* ?+ e! W# e
pLight->Ambient.g *= 1.0f;8 y5 z, e& B; Z9 ^( ^
pLight->Ambient.b *= 1.0f;
9 m4 U+ y. b. R#else //__YENV- b) }3 V* Z8 L q4 k/ ~% x
pLight->Diffuse.r *= 1.1f;! c7 n: g! g# }, R) j
pLight->Diffuse.g *= 1.1f;0 M6 A6 P2 E/ d$ U! n
pLight->Diffuse.b *= 1.1f;9 X8 [) s7 O8 |: d
// oˉè* ??à?
3 v: a8 T0 D5 `8 x2 D9 v pLight->Specular.r = 2.0f;$ k+ X5 E$ s/ g+ i& Q8 [) }
pLight->Specular.g = 2.0f;
+ A% ?" ? x4 m pLight->Specular.b = 2.0f;
* |' u8 X# T e4 G' y // á?oˉ : O4 v: [4 B0 |8 v
pLight->Ambient.r *= 0.9f;1 q% L) }# f' t" F5 Q4 D) S
pLight->Ambient.g *= 0.9f;) a8 i4 ~" F: |. V+ M( N+ A
pLight->Ambient.b *= 0.9f;
( Q P& I _/ u$ B#endif //__YENV 2 V. L- w2 N% M; a& v
! m2 j3 e3 X' r6 o. m% @8 R memcpy( &m_light, pLight, sizeof( m_light ) );( W$ v0 Z3 j8 w6 _
0 T& ]3 W; ^& w0 {
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
' c# b4 p7 m4 V1 F& ~8 {3 W. ~ D3DXMATRIX matTemp;
; u Z& M7 _9 t static const float CONS_VAL = 3.1415926f / 180.f;
. P! f a) w3 i0 f% R: S4 B
\7 H6 Y# D- s D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
9 @7 g0 Y$ r+ F: |5 S5 T* v D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
- G& b4 V5 u1 a4 o8 J( P x7 ] pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
2 h( {" c+ D6 l4 J0 p- d2 b% } pLight->Appear( m_pd3dDevice, TRUE );0 V3 h$ d) |! P2 S6 r
; O2 n. U% k6 i$ W" X/ \6 E5 Z
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 y% H3 n0 e6 N# r0 O // D3DXVec3Normalize(&(vecSun),&(vecSun));- x) Q4 d% j8 F# C6 j
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
! a& U5 o0 z1 W# A, L1 l$ k" j# D! W& R
DWORD dwR, dwG, dwB;
2 p( D, F' R6 ~$ X2 ]7 Y dwR = (DWORD)( pLight->Ambient.r * 255 );
, |9 r3 Q' W3 _% Z# t! L dwG = (DWORD)( pLight->Ambient.g * 255 );6 ?2 G; t: ?* p/ X5 r* J/ z+ h% P" }
dwB = (DWORD)( pLight->Ambient.b * 255 );8 L) j* ]2 C) A% f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ j5 v; s( s% k( S) t }( ], k, v% L/ c, K' V+ F
}1 c+ n5 H2 S( b# M# c$ F! [/ D1 B4 Z
4 F0 e, h9 r6 D0 A! r5 @: c" W# n
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight ); o7 e' Q: r! T
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; |8 {* m+ |' l/ O' n$ g ::SetLight( bLight );
* p$ ]2 T z' ^7 r9 A5 D) x5 |- p V3 {0 }6 ?! |$ \2 J
// ±ao? ?D?í???ó á¤à? 9 N) a y3 V3 ^- g+ D$ W6 n
m_pd3dDevice->SetMaterial( &m_baseMaterial );
, e5 Y. v4 X3 ^" K 0 O# o5 j6 s) {7 e
#endif // not WORLDSERVER
, H* |8 v1 Q8 G6 N F+ I}; K% r1 X1 T- c4 m) H
并更换
9 U5 }2 t+ R( E% [5 KCode:' W; N7 B$ Q, Y2 E
__FLYFF_INITPAGE_EXT
7 e0 d3 U! \% Z3 l" M$ f7 \定义
( S% T; a2 g$ I( u! T5 J# U; V1 r$ K- A' P% s
$ x8 O5 ?( Z" d! f! r9 O' `
4 B4 ~. `1 {* A9 E* }" k# X2 @4 \, |
; {$ `0 U, m% d n4 s现在终于删除我的狗屁加速...
& n2 [) h% M! y# B9 n6 a! D; P; Q- j. C- a6 M' x# v9 M- V
0 k2 S/ j4 d6 t7 R j
! }6 a7 a! U$ | |
|