|
|
食品车:% D4 i+ {. t: T- b
尾翼:6 ~ U! j- o2 K) `; k5 B8 X
% @' E% r$ x3 M1 `& ^3 T% d3 `
代码:+ i% T8 k3 d9 D, ^3 d
CWndAutoFood::CWndAutoFood()
. T0 G3 K6 | J. Q% w8 h8 e{9 ?+ h2 e" x. w. v% T
m_pItemElem = NULL;4 Q/ r E" J5 T! l7 x
m_pTexture = NULL;2 ]7 I: M9 q5 M; s+ C
bStart = FALSE;
, V. ?6 w! q' s" z" `2 Y* d}
# [# B0 |" i) D A# ]
6 ]. |4 m d$ v' N' S, WCWndAutoFood::~CWndAutoFood()
9 x' m% O8 o. b# I; p: c7 ~{
/ U1 h |" [% h AfxMessageBox( "AutoFood ist gestorben " );
+ f8 c4 z T' t- e3 x' G3 R}
# K4 v/ a4 D6 o+ d/ LBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )" y+ Z; c' U; X f- i- p
{
! ?- f( b; c) {, m: k) ~& h: P" B return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );, ]3 F" R3 ^, _2 h
}! O* T5 j/ Y! `6 C( w# V5 q
+ n1 R9 W! u2 y4 T% P$ X' n/ n
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )+ I6 n( V3 p, ]5 C) }' T% O
{
% G6 r, J3 w' R" h$ l9 V LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 A5 @+ B# f( n: C6 n CRect rect = pWndCtrl->rect;
3 j8 t7 S1 Z3 A) I$ M if( rect && rect.PtInRect( point ) )/ X- G- Z, r7 \: N1 s s7 ~+ A. u
{
6 d% L+ ^, b% S/ v! d4 L CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
& a# g* y6 s$ G# q if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ). l8 N- ~, l/ C& K9 E
{7 b5 P- W. w. Y2 m4 ^" ~
if( m_pItemElem )9 o! X7 [ R% E4 [
{
/ U1 A7 c% ]% g m_pItemElem = NULL; U" x8 `8 ~9 e b7 W
}
6 S4 c* W; @( | m_pItemElem = pItemElem;
9 l/ C2 Q5 h( v8 I9 D5 H m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );- z4 i m" F! m; V
}else{
7 s2 ]/ [0 C" e$ N. x5 B% } SetForbid( TRUE );. r7 x5 Y: g( X6 U- _. G
}$ D+ H4 I( u3 E/ q t
}else{
: W, m5 c! L- r4 q3 Z- \3 k SetForbid( TRUE );
! B. N- C: _: j& b }; j8 M, F( U# e8 f! C f& W
return TRUE;9 {5 }1 b0 V: p
}7 O) i3 O2 U5 r: g% `. w, ?9 `
1 p9 H+ k+ C* I( N* |' L g: n- B/ h
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )+ H5 ~# a: r+ r6 Y g
{
5 `6 N5 L/ `5 { switch( nID )+ n% ]. g" i1 X4 p; s+ S& h8 \
{2 j1 n/ D+ l9 n; I! ~; Q
case WIDC_BUTTON3:
8 @# |8 e- z9 }' s# l4 a$ v- k- w {
$ i6 Z+ Y4 z1 D bStart = TRUE;6 }5 t& f5 A+ Y! ^( t( I
break;) P+ d! D* l7 o
}
2 N( {5 U6 Z8 M case WIDC_BUTTON4:, Z. n6 _6 \. V
{# e/ k+ T% ], W; }- P
bStart = FALSE;
7 I/ n6 w; | ~+ I' y$ d break;
3 t$ k' T: r! @ }
6 A* b2 @: D5 r! o4 q }
' x2 R+ l3 Y4 r V+ y3 m return CWndNeuz::OnChildNotify( message, nID, pLResult );
. S5 C' k! \) W2 O; l1 `} " I# B7 n6 A' Q6 P% y! t
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
& r6 p. W8 W+ T6 P' I! j{
3 G8 S5 a E4 o) M: I CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );+ C6 y$ Y# \# s" {! j5 V' }
if( bStart || !m_pItemElem )8 J' c& L/ z. E4 H
{ v$ _" N$ h+ B% e
pBtn->EnableWindow( FALSE );
: k. l% Y: L9 x0 u0 M. V- u2 k3 B }else* y f X, L1 T! `
pBtn->EnableWindow( TRUE );
3 [2 {' w$ ~* {" [: G! U+ B if( m_pTexture ): m& i/ P+ t; [
{
; i$ _ N! _, g3 x. | LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 w1 c3 y8 [; W! c: P if( wndCtrl && wndCtrl->rect )0 s) v1 r# j. i, z' d
{
4 Y; `+ _ ~; T2 \: W! M) i m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
' N; F# d# Q9 O4 X6 |6 `2 s: E }
- Z& q1 Q* ?0 q, t }) ?3 _. o, h0 }9 T1 {+ n
}
' n# @ ]0 A: b: | A Y% ~& G1 O9 m) W8 j/ b' g
BOOL CWndAutoFood: rocess()
4 l0 i) E I4 I- j1 m1 ?" M{
9 m/ @* H$ @0 } a* c if( bStart )( [- F! V L/ ~# |1 Z; [
{1 e i9 C8 O- q* E6 z- p
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ) Q- Y9 }+ D/ N' g# P5 R! M& G
{' _1 H$ Y! Z+ _. v
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
# P' |2 {7 Q* N5 X g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& F: N2 Z4 _* m; X" P
}else{
" N6 D1 `3 ^" |" n# Q7 T bStart = FALSE;
0 U: F% [8 B0 }* Q" w! [8 u. ~* F0 i m_pItemElem = NULL;, c* r# X; c$ i/ t4 F8 h$ f
}% [* j0 [$ R& w
}6 S0 a" k$ q: U: D- {
return TRUE;
, w; ^( K' H3 ?/ O% ~& I2 q. C}
/ p+ S- r4 ?; k& @3 S$ c' ~( P6 a) e6 c
登录视频废话:
5 \! v. y# p; [& t尾翼:) C: {% L; x, @+ i8 s
" ~. I' p3 m5 D/ E/ i" s" _: A
代码:
/ Z! B2 r" Q2 |1 R+ a. H0 I/ V. D6 n/ X& W. L
void CWorld::SetLight( BOOL bLight )
3 _) q o$ l. e; q9 \durch
# g7 a/ m) _' ?" A$ VCode:" P" ] u5 g+ D# T* h! T& w
void CWorld::SetLight( BOOL bLight )4 Y. z& Z! N- i0 c( }; a
{4 R' }! |7 q+ x5 n0 S
//ACE("SetLight %d \n", bLight);& L1 {$ o. \8 f+ y6 d# t+ f
' O! a6 c# V2 \#ifndef __WORLDSERVER
+ \$ f4 ?2 S& r, m i- F- @ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
" T& M; O% X4 n7 U/ m CLight* pLight = NULL;
' t; [- k8 J8 v4 M* E, Z
/ S" i9 N# C8 L: v$ r D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
: U$ g; d) Y3 I, a7 z; g
3 p7 K; y4 K0 R f5 s* N3 ~! P' D u& u pLight = GetLight( "direction" );* N5 }% S x& M5 S' `; e) M1 w
; {, @, w; x! M: E6 M1 ]#if __VER >= 15 // __BS_CHANGING_ENVIR
* u h7 ~- ?7 m: Q0 ?8 q if( g_pPlayer ){; r& b2 Y8 J* }8 R2 p2 [
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
8 T0 ^! B% I) a6 _% k- D if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 U5 i0 E1 q! r
{* V% O$ l+ A! O9 ?4 c7 I7 _
if( pLight )* |- p, \! u: M! V
{
+ c6 ~) c. K; M- H9 C7 ` pLight->Ambient.r = pInfo->_fAmbient[ 0 ];" @4 q# _ J4 i7 G3 b( r, A7 A$ v! ?: U; X; ^
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
$ z# @1 C; T; x' G% a, m, B pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 a9 s" T, B( s7 w
9 ^' F$ x" c1 I3 o* b# M pLight->Specular.r = 2.0f;
- g, k. t) B/ b% r6 w pLight->Specular.g = 2.0f;7 ]+ g" f$ C" g) s7 z( C
pLight->Specular.b = 2.0f;
" J: N9 ` b* `" p* [
( h O3 Q* E- L# H( t pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
6 d: |6 x f8 Q0 b9 Y& n# ~% K pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
* p7 p! C/ f1 p2 {/ v/ Z& X/ \0 u pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];' l: g3 O; Z o C: i9 X: @
) Z, [+ s. {6 ^$ |+ ]5 o! s8 @
HookUpdateLight( pLight ); " c5 C( B+ Z) x; F+ y
7 U t1 e, ?. }0 b& Q2 P: q2 V# ]
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 h. Y+ i- I2 K1 O; H7 v" H1 t# ~
$ {( U3 Z, m' r! E3 } l; q pLight->Diffuse.r *= 1.2f;2 h& K+ R- v0 p: t1 m
pLight->Diffuse.g *= 1.2f;/ ^" c5 w8 b6 l6 a+ R
pLight->Diffuse.b *= 1.2f;9 p/ A. Q( W) ~5 Z
. k/ \: J f: R' C
pLight->Ambient.r *= 0.8f;, ^- R( n3 f4 h6 ]
pLight->Ambient.g *= 0.8f;: Y5 @+ s7 @5 h+ P* A4 V. R) b8 T" |
pLight->Ambient.b *= 0.8f;9 I4 C, {5 u! f! Y; @7 W
3 q" l6 c! ~! @! y: z memcpy( &m_light, pLight, sizeof( m_light ) );! Y' P4 r& ~" b! B/ O- V
9 N! |& M& f0 ?0 ?. F D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; x* f: G, U' C3 A# z" N9 q5 u6 a
D3DXVec3Normalize(&(vecSun),&(vecSun));5 Q; M$ ~4 U2 I. a1 s
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
! s8 t$ ]! Z* o" Y6 i pLight->Appear( m_pd3dDevice, TRUE );9 @& P: G' z. _) g3 i
" m6 ]4 {) G3 J* n1 D: D) y DWORD dwR, dwG, dwB;' Y/ A) C& S, G H$ ~2 \: F
dwR = (DWORD)( pLight->Ambient.r * 255 );- \3 ]: Z" c* V7 ]
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 I i6 e# J* t9 v dwB = (DWORD)( pLight->Ambient.b * 255 );' O9 O0 d, R, p Q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );3 M6 H* _/ Y6 }% M+ A
}
$ g0 s7 ~# V" o) X. k7 C7 R }! d; N9 z8 P, M- R0 f3 ~. e
}9 S3 d; e, ~* c+ g( G; z7 a
else! L! x5 d6 b0 M
#endif + [7 M) {" {& z' A' G8 m
9 H, L+ b, H( c
if( m_bIsIndoor )3 H7 J' t# q5 Z, I ~
{
! P# a `7 X& O$ R0 p8 _ if( pLight )
3 Y" ?* ]/ ^% t2 O# ?7 A y9 x( D { - |4 q. S/ N4 P+ u" v/ V
// à??μ oˉè*
0 }* W9 u5 e2 C2 c! T0 |" O pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
. N! f" e i, T9 f+ {& j# t pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;$ D. I8 b+ C/ z; u7 q% H1 e
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;7 F( a/ }- d5 l- V, i, g
; }% h+ l0 u( A) l+ I/ L! ^# e // oˉè* ??à? ; h5 B7 k0 \# a( ~- I) A
pLight->Specular.r = 1.0f; y+ i6 H( u G2 ~, `2 h B
pLight->Specular.g = 1.0f;" ^8 w4 y1 b' `1 Q. b
pLight->Specular.b = 1.0f;$ F9 |2 o) v" F" D( |
// àü?? oˉè* 0 e+ P8 j; l" L7 b% b3 ~
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
# ^. V% u3 q. Z" w pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
8 R, L1 L# H, [ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;" ?' P7 d6 d' {& j9 J
9 b" {% O/ b9 i6 r Z if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ g# ~5 ]7 d6 r! _0 S- `
{
f' _5 ]6 B+ p9 B$ t pLight->Diffuse.r *= 0.6f;4 ^7 p0 D# ~% c; w+ w( t8 U
pLight->Diffuse.g *= 0.6f;
2 G, s2 m4 C7 m1 \. I pLight->Diffuse.b *= 0.6f;8 t) H5 K* X0 V4 ?+ _9 a }
pLight->Ambient.r *= 0.7f;
/ ]8 K1 p! B; W( P pLight->Ambient.g *= 0.7f;
: f# [% J: N b- s+ r# W pLight->Ambient.b *= 0.7f;
+ t3 Y, F' W0 i$ T }/ y* ~/ b3 z9 V) u# B
2 z. M4 ~( [, D j#if __VER >= 15 // __BS_CHANGING_ENVIR) t+ ]6 j$ {7 l7 z) ~4 H0 B- L1 q* n
if( g_pPlayer )1 v, m E" {9 N% m. n
HookUpdateLight( pLight );
8 P$ e5 w- Z8 p/ H5 ?/ x7 l# q#endif
' Z. x% x; q' g# q( E: I* ~5 z# \ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 z4 p# y- m5 F: f- H& l- J: a2 p) @, `; K
2 g- h5 I4 m# r( [& F
pLight->Diffuse.r += 0.1f;* k6 t2 @$ \1 O1 v
pLight->Diffuse.g += 0.1f;' e- i9 S( t% {7 K! A: V' U' }' n
pLight->Diffuse.b += 0.1f;% ~6 e9 ]4 m7 a. t1 h9 F9 X
// oˉè* ??à? 0 c& G+ ^0 i+ l% r4 D
pLight->Specular.r = 2.0f;
i4 g% v' @8 M+ O pLight->Specular.g = 2.0f;
! Z7 b9 E: k* y7 k7 u. X" [% W pLight->Specular.b = 2.0f;6 j" v8 N5 C# [) C, ^' j
// á?oˉ * q6 Q2 e% g5 _+ I. A' w4 E
pLight->Ambient.r *= 0.9f;& s. b; g# z* D" F
pLight->Ambient.g *= 0.9f;
. O6 B4 H0 N+ J" G* a; X% D8 ` pLight->Ambient.b *= 0.9f;
& k! @* |) u! l8 [
$ D) G# r8 v; \- G; g( z- ~; ^ memcpy( &m_light, pLight, sizeof( m_light ) );
: j* P2 A4 j. Y' O' _7 C . ?0 P, W2 D# ^8 Z" _! K
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );9 e9 @; }' Z R: T& J' ]
pLight->Appear( m_pd3dDevice, TRUE );) ?% p/ x0 V/ q1 X$ e" V, Q) b( n
& ]+ [! m3 @5 p, |/ h
DWORD dwR, dwG, dwB;
; `' a5 f; v. Z6 I1 E dwR = (DWORD)( pLight->Ambient.r * 255 );$ @5 {8 \! c; a1 c2 l
dwG = (DWORD)( pLight->Ambient.g * 255 );
8 g/ D' E! |/ o0 M; W) B$ ~ dwB = (DWORD)( pLight->Ambient.b * 255 );
( n! g( g6 B1 @, F. s$ x# C dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );7 [$ }, h% D" E
}# ? b$ ?! [7 O0 w8 b( `7 |& v5 f
}
7 {, H0 w, \' A( A else
( j# S/ |9 Z8 q {
! y/ ~8 J' v) `8 |5 t! r, E8 z if( pLight )6 D a$ n4 f, B: q
{, Z* D4 K2 u0 Z( a9 R
! K' Z5 E7 T6 Y5 x5 V int nHour = 8, nMin = 0;9 _1 x8 _/ ~/ b- [
#ifdef __CLIENT$ k; ?1 G0 c: h. N- a' U( A
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
) o, M1 s {" U% ` nHour = g_GameTimer.m_nHour;
# w! i, J) F# a8 k9 `# c nMin = g_GameTimer.m_nMin ;
7 S) B1 P2 k. G3 b- O/ t5 V #else
6 J+ f' W X: r& o0 ` // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
! j2 k6 X4 {/ N' J- z/ d1 J2 s# U if( m_nLightType == 1 )0 c, d) p) T+ u. H
nHour = m_nLightHour;
3 {7 I2 c4 p& V. l #endif
; X4 r% r5 ^ Y1 i& k* |& R# \ nHour--;2 y0 g+ k; j% ^/ `& p1 {
if( nHour < 0 ) nHour = 0;$ K, `2 p4 o/ Q6 x& L- \8 f
if( nHour > 23 ) nHour = 23;
q" h6 C r6 K- I$ A5 P0 ^9 _
) F/ O2 Z* j1 @4 _ //if( m_bFixedHour )4 Q) t; S7 A" \9 j9 U/ f" ~: y3 e5 f
// nHour = m_nFixedHour, nMin = 0;/ t0 r0 \* b: T" i
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];& v l, B9 f: k4 s
LIGHTCOLOR lightColor = m_k24Light[ nHour ];/ F/ Y, _7 F$ d+ o8 K6 e( W7 r) O4 e
! H9 H H' o! }0 K" m( d
//m_lightColor = lightColorPrv;
( \/ S, s- \' f# O" d lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
; M, J/ u3 e- g1 X3 I! H5 @1 ^ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
R" {+ U- K- Y+ y# O lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
0 v$ [) m0 p, y; h lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
* j# n6 e4 U. l" O' Q5 V1 D lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
$ P- ` l% \8 Z8 b; d ^ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' l* [6 @8 A9 v4 k! X9 Q+ Z: v
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
6 G$ K: v# ^& k
; n4 n2 q6 E. p0 ` // à??μ oˉè*
5 {- y; q; E' C* i3 d) r pLight->Diffuse.r = lightColorPrv.r1;
: Q. Z5 `3 O' o: |! S- G pLight->Diffuse.g = lightColorPrv.g1;
1 b7 U |% L/ O; H q pLight->Diffuse.b = lightColorPrv.b1;
: N/ n v4 N( X6 Z [! M // oˉè* ??à? / i" s7 ^7 o+ W+ D$ i
pLight->Specular.r = 1.0f;
& j6 p9 S4 |; o; j" h# Y pLight->Specular.g = 1.0f;
% s9 i, r. I0 ~5 ~ pLight->Specular.b = 1.0f;$ T+ F! G4 Z- k! P2 w
// àü?? oˉè* 3 J$ Y- U" @/ G2 f: g
pLight->Ambient.r = lightColorPrv.r2;
! B8 N# c# f- [( j- l( V pLight->Ambient.g = lightColorPrv.g2;- r, G5 `3 _- ] ^, M' N
pLight->Ambient.b = lightColorPrv.b2;
2 ~' M, N9 c. J
M% ~4 k& q5 A, o if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??." L- |+ E2 E3 J) l: n& k
{- B( g$ W' |+ n
pLight->Diffuse.r *= 0.6f; @7 |: r8 T5 N. `5 C) K' {3 G. Q0 x
pLight->Diffuse.g *= 0.6f; d! n9 T* w" e; l; V7 l) @" k
pLight->Diffuse.b *= 0.6f;
# f- n: p- e' E) L" C pLight->Ambient.r *= 0.7f;! x7 Z2 S+ j( o- {3 q* }1 B
pLight->Ambient.g *= 0.7f;2 K0 h& x- X* Z- V+ O- M
pLight->Ambient.b *= 0.7f;. W j' H: O7 T; T. N4 n
}& b) J9 K7 W3 ]8 M& [
3 f8 B0 |, \: q* e, M5 K m. x#if __VER >= 15 // __BS_CHANGING_ENVIR; ?4 f8 t3 z0 o g0 {
if( g_pPlayer )# }' K! R1 |9 f, S( Z1 a$ d+ \/ Q, A
HookUpdateLight( pLight ); % J1 t, N/ L/ B9 W. Z
#endif
7 Y& C( p: g5 b2 L memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% B5 I- b& H& }0 n7 V) U( A6 { z0 y G+ d' k8 B
#ifdef __YENV. {1 A2 T! H4 K; j+ M$ h9 O3 @
pLight->Diffuse.r *= 1.1f;0 W+ b2 S6 t, u/ U3 o! K
pLight->Diffuse.g *= 1.1f;1 `4 T( Z3 B" @
pLight->Diffuse.b *= 1.1f;4 J0 J9 G, J8 Q/ v: \" y9 z, X5 _4 o
// oˉè* ??à? & s# b( b3 P' @& q: C( M; r- i
pLight->Specular.r = 2.0f;
) f6 b7 K" b/ T( U pLight->Specular.g = 2.0f;: _0 l. S, X! T& q6 B. W. ?/ C8 _
pLight->Specular.b = 2.0f;
9 q: q+ ]: F. J+ v5 F" J // á?oˉ ; H' G5 q: E/ O1 F# P
pLight->Ambient.r *= 1.0f;9 V# m0 c# q/ v& C. X0 D
pLight->Ambient.g *= 1.0f;
' Y5 g8 i5 w$ ]9 U* s0 D pLight->Ambient.b *= 1.0f;9 t' h: [, f% a# T4 z
#else //__YENV
8 j' W' ]; ?; i. h pLight->Diffuse.r *= 1.1f;4 O0 u/ N9 n" U# r8 u* o9 W3 [
pLight->Diffuse.g *= 1.1f;1 H4 l7 i; C U0 r
pLight->Diffuse.b *= 1.1f;
1 f+ J ^8 I- K k) Y% @' w' z3 | // oˉè* ??à?
- T) r3 h; K( v/ Z2 j( { pLight->Specular.r = 2.0f;
/ J+ [. R4 z. X, S6 N, { pLight->Specular.g = 2.0f;
( O* m! L4 T* A9 X0 \ pLight->Specular.b = 2.0f;& u3 m* v8 Y3 w3 S9 i8 E q
// á?oˉ $ U6 u; ~* z% J) L& `; h* A- V
pLight->Ambient.r *= 0.9f;
0 ^0 H4 e* j: a$ l" t# } pLight->Ambient.g *= 0.9f;
+ | m, ^& Q3 B2 J" m' W$ \8 s% H pLight->Ambient.b *= 0.9f;( E& Q/ ^% ?; X' v) V3 L
#endif //__YENV & p" Y2 R* z, S1 g$ q
8 `; Y% i( K& Y memcpy( &m_light, pLight, sizeof( m_light ) );* Q6 \3 R" o3 k% i; Y2 E
' A( ?' h1 U+ h8 H% f7 ^5 R
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 S$ ], P- E2 z% a3 s& g8 |( w
D3DXMATRIX matTemp;
( g- l' G1 u- |/ J4 { static const float CONS_VAL = 3.1415926f / 180.f;
) @8 ^$ h8 V4 r# d/ } h' D/ f, q
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);8 J& w( @- x+ _7 y
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
1 f9 m9 o& }- R& d9 G/ V$ y pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 4 L. F5 Q7 M0 q+ \
pLight->Appear( m_pd3dDevice, TRUE );
8 l8 a: J. Z/ A
7 j- i1 u4 M+ _1 U! D // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; D0 F4 m! }9 M6 N! _ // D3DXVec3Normalize(&(vecSun),&(vecSun));4 m+ P7 f$ _$ @" o
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. Q3 f5 f; _- P# v* M( S l5 p7 }/ l$ N/ S
DWORD dwR, dwG, dwB;
$ V$ M0 W# X2 _8 ^$ V dwR = (DWORD)( pLight->Ambient.r * 255 );% x" S+ z4 O8 t) O2 e
dwG = (DWORD)( pLight->Ambient.g * 255 );* K- d3 s2 q$ T2 [- i
dwB = (DWORD)( pLight->Ambient.b * 255 );
, {6 A+ u5 L9 T+ l' w- v5 y9 j dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 8 u! T# l- k. l' e% }: x0 M
}
; ], g( e* F# r2 m$ d4 l }+ s) g( a7 D# W( T6 u
) n) @3 j1 S3 `( L: G! J8 B
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
" W$ r2 f6 @* r$ @ 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) );
. G# z' D7 R& q$ A% {) E0 c3 \ ::SetLight( bLight );
. y6 K! d! a; T" c3 Q0 x; \, Q9 o% P& U
// ±ao? ?D?í???ó á¤à?
0 h4 v. _! Z9 G m_pd3dDevice->SetMaterial( &m_baseMaterial );
! v; E# e9 D/ C
6 w$ Q2 N+ z5 y) |#endif // not WORLDSERVER
8 B* x2 C( A# D}
! S3 \" w7 ^: e2 D; M6 X并更换
5 Q( W) @- h5 d, M) [3 Q$ v5 |4 GCode:- Q* Z3 M% x6 x/ ~; Z- u
__FLYFF_INITPAGE_EXT
1 I; W/ {2 P6 Q1 q- M* F- v定义+ ?( R% s+ F# O7 s2 d6 A
- A+ s/ [) _& |/ x/ G# N2 l" L4 o. }
L/ ^, z2 d7 e1 t( P3 ^; r5 q3 D; J( u4 B) e3 F
现在终于删除我的狗屁加速...+ O2 U: {" y- ?" w/ x, D' X" H
& c" s3 q8 k$ R% F$ t& J- y( S
8 C- k$ ?8 X5 `+ h5 |) s
H7 Q. L1 m4 |) n+ Q+ q5 o& k |
|