|
食品车:5 z- L5 _( e4 a; v A G: m
尾翼:8 l1 e9 q1 r- L' U
# G7 a5 U& h# Q2 G
代码:
! I; c/ B, q2 k$ l% r; i, nCWndAutoFood::CWndAutoFood()6 a: f- k. U4 G: b- i
{
0 U+ Q2 }* ~7 K m_pItemElem = NULL;) |4 D8 E& K# ~1 m
m_pTexture = NULL;7 [# ^* f$ G1 h9 k& E5 `
bStart = FALSE;
+ n" j* \4 z/ t- ?) i' w* |}
& j0 W, L' \: s* H- w% Z0 S) H! x6 T, L! q& Y
CWndAutoFood::~CWndAutoFood()
: E6 V ]6 L& X( I# \1 \: l( I{3 @ \, N; F- g
AfxMessageBox( "AutoFood ist gestorben " );. o8 I; s4 T$ t
}
0 O' s# ?- Y. a# ^/ c1 K( N( BBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )$ f, \) o2 A8 Y' D5 _8 V' x8 h
{
, }3 ?5 F+ J1 l7 ] return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );. i2 M' u3 }: e. [& c5 K
}
: }$ x4 j2 \. k0 C2 H3 I2 U4 o
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
; Q+ C, K% G1 v4 |$ |3 f{
8 C' W f# k- x$ ^& F$ ~0 b& d3 O0 D/ | LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* P1 g% O9 C* N* ?" F, [/ H$ A2 H
CRect rect = pWndCtrl->rect;
0 H3 c6 X, G$ p: f7 n if( rect && rect.PtInRect( point ) )
6 E) J& J8 T* D, t {
" k; _3 R3 C- d; s! S$ Z CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); |, L5 @" I4 ^
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
) I" a0 [& k: F T& i# N r" ?7 L {$ x! t; k3 K! C0 Y2 [
if( m_pItemElem )/ U8 {, g8 ]/ W+ R' Q1 o
{9 L1 A/ B) l& v2 S
m_pItemElem = NULL;1 G( S" v0 [* e/ B8 \( A, B
}8 y. p8 V4 v T' r2 D4 k) ~
m_pItemElem = pItemElem;
4 q/ c/ j+ k7 V. x, I; B m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
$ T( ?# F) I: K }else{
) y }" Q S$ {; X3 s0 F9 b SetForbid( TRUE );: [9 G5 }3 `3 ^; t
}
+ ^0 \, J5 ^1 a9 F }else{+ h/ J3 w ]1 F1 J; Z
SetForbid( TRUE );9 ~7 G2 o( L: {$ h
}/ b3 T' u. A1 N% Q
return TRUE;: L6 }9 A! K5 _! J3 {) ]
}/ Z7 I& v W, f
1 e6 M" u6 n6 B. E/ v+ W( r: mBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
8 J8 h9 e- m3 m2 O, m{
& _. w. a, z! w0 ^ switch( nID )
" N u% v) M, d3 a A- y* B {7 ^; T' [; L z* k( Z
case WIDC_BUTTON3:% v+ {! e6 j* H6 I0 m" h
{
7 t" @# B5 \8 ^- \2 U bStart = TRUE;
3 M; R' _- B/ U4 ]- h break;% S; n7 H% a, @4 |( t! Y1 \9 j
}7 _. z' n% ~ r4 G4 T
case WIDC_BUTTON4:
8 T8 [( e* Q1 Y% b5 @ {
9 W! c) W( X( x0 z bStart = FALSE;
4 d- V" @; q' i- e9 K9 r+ H) [$ t break;
& U# ^3 A- \# m0 a9 f: `% { }
b: ~; T3 `. V, r! X4 o; L! O& K }2 u$ d6 T& i" N$ B! w1 K
return CWndNeuz::OnChildNotify( message, nID, pLResult );, t! r! H' N+ I4 B. m
}
. S( _* @4 I) W- V$ E2 [+ E. J4 Hvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )& m" ^# Q, X& l$ G. Q8 h# B% s( w/ G
{; A* U( f8 S* ^. b: n# \/ D
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
" }1 _% u* N1 h# p' s if( bStart || !m_pItemElem ) E4 k+ L& ~2 R+ N
{
+ _+ v( H- a5 v! l4 y) o# @ pBtn->EnableWindow( FALSE );
* L. X. k' Q6 w' c1 E& W8 Z }else( }1 P2 q! Z: Q3 ?1 Z
pBtn->EnableWindow( TRUE );3 n6 M9 v8 k2 W& W2 D
if( m_pTexture ). _/ m2 j) i" M3 _4 V7 F! C
{- O& |- Y; Z* o) R, |" r/ Q
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 E/ R Y, W; e
if( wndCtrl && wndCtrl->rect )/ \+ v$ `3 [" L Z; E
{
: W5 @) _6 T9 l' y' K0 Q. T m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
; {9 N! r( ^5 m+ P y) J0 X' X }2 N& ~& j7 `& Q3 Y/ z6 S& {* J
}
4 h ~ W$ S4 F! I7 E$ x; ^6 v}7 t4 L. @% v! h" j- b% O
$ H) O$ x2 n' B! G) eBOOL CWndAutoFood:rocess()3 s1 e, g9 F m7 ?! |9 W
{; v: w- F# B* Y5 I; a% k, n G. `
if( bStart )
) X* X" g! e4 @2 y: L {
: M: e6 {' V5 w# K6 M1 ~ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )* ]+ A' b, i1 Z1 C) O" }6 N, ?
{9 W N5 ?% L# P- j3 N
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
& X$ p/ W) p9 v- U: t# g2 P9 y g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );7 R& W$ ` ?; t7 |7 [) z. d) A+ E
}else{
. H: ^' V r Y, U bStart = FALSE;
, g% h1 }. e2 q$ M m_pItemElem = NULL;
/ @+ t, r1 R8 m% e }" B% B9 v6 q8 [9 R. g! F4 F. O* m
}8 Q9 ^/ R n0 F2 m
return TRUE;' D# Z$ K4 l) V' w% a
}/ |' Y: Y( u7 k1 Z9 x! E4 d
% Y2 Y) ?% x& |: X! y& g
登录视频废话:. _# t% [& }/ k# G
尾翼:
8 d: w- \, I! X( ?9 R* h" t8 E
$ x9 m8 E6 h$ }% L+ r$ h& A9 g代码:
) Y7 R7 h7 c( k$ f; z* v) B) T) c& W4 L6 M6 x8 _# E! Z0 e+ r
void CWorld::SetLight( BOOL bLight )& I' e) _8 G9 ?4 `
durch- I: _! L _1 ?3 @( r( K8 l
Code:
( ?6 g; ]4 E4 ~. Q. tvoid CWorld::SetLight( BOOL bLight )
# K# S) h3 n3 c3 i4 |* F{$ s A; V9 d2 t0 q; P5 t2 x
//ACE("SetLight %d \n", bLight);+ H. \2 F! Q4 W( w0 V
) W2 |. F! L1 m
#ifndef __WORLDSERVER 2 `- g5 Y! |( g; L/ g1 e3 p1 m
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
& G, K! f% m" M& } CLight* pLight = NULL;
% T; Q5 [; j& T
1 I/ H2 o: B/ z D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
) b8 A& Q4 a* I" ]5 g) ^8 W
8 u; E0 I1 d2 v pLight = GetLight( "direction" );
* h. C2 n- O4 X* D( m9 t: I: h% Y5 Z. M9 @. D2 K/ @
#if __VER >= 15 // __BS_CHANGING_ENVIR
; k1 d( I4 ^9 J if( g_pPlayer ){
9 s3 d/ o: l7 ?# g7 b% r ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
- c6 ~* O) B! |. v if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!. j2 ]& o- I% o+ z& u/ R# O
{8 ]5 \" |0 F) y' a' H. V
if( pLight )
% T: f7 a4 n6 q- W% B( } {
% [& ]% o% @( N* ` pLight->Ambient.r = pInfo->_fAmbient[ 0 ];" N6 p; x5 F# k2 S- K9 P
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 N7 k3 ^* k/ D% q
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
! V# W( N1 f, k! h, V: `; A9 @8 z& {4 s' q. k1 R
pLight->Specular.r = 2.0f;$ F2 x0 m9 L9 [3 Q" M2 ~
pLight->Specular.g = 2.0f;3 ]) f9 Q, L0 u# \& \7 X( ^& n' N$ x
pLight->Specular.b = 2.0f;
) y, A. R4 F' g) f, e
. y8 `( q: x1 T6 c& p) m( o pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
) h3 r( c' N' v# }4 O pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];; W: h# q$ w% ~& p2 E9 v
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
- R, h x5 Z( I: ^2 J1 Q6 z # K0 k& a/ y# R. b, c$ g
HookUpdateLight( pLight ); ) P6 S$ M5 q! }) j
8 b' y" ^5 p5 e! k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# T s. {6 b1 M, R. m+ c6 R3 [4 B8 b 0 O' U6 V' J1 b8 b
pLight->Diffuse.r *= 1.2f;3 A; Y7 W6 A' }* A+ w
pLight->Diffuse.g *= 1.2f;
. Y# `5 L! |; M$ b6 G$ v/ W% p, L pLight->Diffuse.b *= 1.2f;
$ J& |5 z0 a# t4 u1 w; [6 h( B7 ^6 n# Q6 R/ r, F% D
pLight->Ambient.r *= 0.8f;
$ V, S* I) o, l# t pLight->Ambient.g *= 0.8f;
; W* I7 C$ v7 `6 P pLight->Ambient.b *= 0.8f;
1 }% F+ K& B! Z+ y
8 d: j8 A' \2 b memcpy( &m_light, pLight, sizeof( m_light ) );+ R" S* `2 X( \
0 w L' E' a2 R! I D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);% W4 S9 ~8 t4 X# e
D3DXVec3Normalize(&(vecSun),&(vecSun));
, ~, a* V7 m$ L+ C. n8 c c6 q pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / ?, `8 V, p* B6 N% F
pLight->Appear( m_pd3dDevice, TRUE );
6 w# j% [% R( v/ d9 m# `: \ ; [# Z7 k5 m. r- l9 h
DWORD dwR, dwG, dwB;. t) A3 ?9 _" `4 C& ?& d6 M7 R
dwR = (DWORD)( pLight->Ambient.r * 255 );
, F7 `7 @% @ W Q. H3 T dwG = (DWORD)( pLight->Ambient.g * 255 );
& T% m$ h$ x3 H' Z C. g8 Y( P dwB = (DWORD)( pLight->Ambient.b * 255 );
6 G% P. T. x7 Y' ?0 C! Q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ M1 R6 Y3 m$ e7 R4 `
}0 f9 g/ J7 F8 O+ I
}9 T! J2 b6 o0 N
}
) t# J; Y# L" u5 } else
- e( E9 ]9 Y( I) K- B0 `+ q, r#endif : \5 V. N' P! m/ ]
P+ w6 A; S; I: T, E$ ? if( m_bIsIndoor ): ?; f V) q; g# y8 v* U- R. Z
{7 h a2 b4 |1 }) w% @
if( pLight )2 M/ y1 ~/ w3 ]# _" y
{ ' M, A! s7 m9 D& P8 r3 `$ b5 j
// à??μ oˉè*
z) K' j+ X/ h) V3 A pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
0 q! S3 ^; F- d. G# C3 k9 c, ~ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
, {9 `. ?) P+ \ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
$ H) ^+ j) K) _ a# h' K; n: T4 u5 e7 R" _) K+ J8 @
// oˉè* ??à?
2 A0 M5 [- B" V( ~; r% R pLight->Specular.r = 1.0f;* |% N& i( u) e' a9 l
pLight->Specular.g = 1.0f;
2 x9 u1 v4 K5 b8 n! I7 C pLight->Specular.b = 1.0f;0 P# j/ w: s1 R; `: z1 N D$ z
// àü?? oˉè*
9 U( ]* |2 D# f4 z7 d4 B pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
, g$ N* c* I! [/ j9 v3 y/ O pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;" c4 Q% X1 G3 I* N& n* p
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
/ E/ D: d+ x8 z y& c0 {0 Q6 q1 E/ G* B" F
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 D/ H+ w+ E! C8 R: i( a {
* Q. `5 T! w2 N% x. S0 T8 L5 J pLight->Diffuse.r *= 0.6f;' S/ _1 s4 u4 Q H6 s* ?
pLight->Diffuse.g *= 0.6f;
7 m! G# n' m, f3 l( y2 w. q pLight->Diffuse.b *= 0.6f;! v j- D$ t, K/ v
pLight->Ambient.r *= 0.7f;
! r9 Z/ q3 l/ C3 y7 j, E9 F pLight->Ambient.g *= 0.7f;
0 }/ _$ U! `* h1 i- r( ?7 `' y pLight->Ambient.b *= 0.7f;
u2 \+ g+ r( D# g6 @1 g. y% P }4 ~. Z+ O# a3 [% r5 y' ^
- F# O' t0 x4 h3 K+ b K+ J#if __VER >= 15 // __BS_CHANGING_ENVIR
8 w8 S1 c4 w7 m if( g_pPlayer )
, _) ]) v; Q7 d+ f: J HookUpdateLight( pLight );! @9 @/ Y( ]% B! X8 g: K
#endif0 X. ~1 B8 y6 w7 p+ o5 c
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, R) Z1 {5 O* q, {- t) r! w/ _+ ~- b" x; ^/ B7 |2 h ~/ t9 q/ k
pLight->Diffuse.r += 0.1f;3 _6 f4 z# Y" T9 j3 w- c% y
pLight->Diffuse.g += 0.1f;
+ T! ?1 u, }$ ^" H pLight->Diffuse.b += 0.1f;
" n1 `0 _3 O9 Z // oˉè* ??à?
9 P+ A* P8 c1 s, H2 { pLight->Specular.r = 2.0f;" y- E* D" K) U# W, [) e
pLight->Specular.g = 2.0f;
' ^+ J# f. _: p/ ~; Y1 q pLight->Specular.b = 2.0f;: d @4 `! E/ N# p
// á?oˉ
- x; [$ Y1 x0 R/ ~ y, Q pLight->Ambient.r *= 0.9f;
. m' l3 U- `5 y; F, } pLight->Ambient.g *= 0.9f;; i) x( h0 ^( R0 F O9 W7 A
pLight->Ambient.b *= 0.9f;) }( E. `9 L M: e) m' T/ H* k
2 Z7 _4 @ b2 }; X% I
memcpy( &m_light, pLight, sizeof( m_light ) );+ r2 S; L0 S; {: K D4 V$ A7 {! F
+ A4 M0 ^" G! z pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );8 C. b+ B7 |6 t! d
pLight->Appear( m_pd3dDevice, TRUE );% s( I( D8 P& o$ N
5 f9 |! S* f( {, O. L" t) G0 y DWORD dwR, dwG, dwB;
$ Y- W; i5 {1 V& o0 A! B. R dwR = (DWORD)( pLight->Ambient.r * 255 );1 m; A* I$ l- U' \
dwG = (DWORD)( pLight->Ambient.g * 255 );9 c4 `+ K- l, e) N4 r3 d. [
dwB = (DWORD)( pLight->Ambient.b * 255 );
~- e3 J0 \* g1 Z dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" f3 c4 D- a, l) h }0 M6 ~+ z% d O/ v! n2 A
}
4 O0 r5 N% Y: C else0 X! `; `; {9 t7 X/ {* h
{
$ [6 n2 A) e- V- a6 d2 M if( pLight )5 C) O: _' k+ J$ M) a" p
{8 G2 u/ l6 H) K4 a
/ ]4 z8 U3 `8 j% V6 g
int nHour = 8, nMin = 0;
" E: x7 R5 j4 y* H1 c' \' A8 o #ifdef __CLIENT, D# X- f7 I3 s5 i1 a
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
9 j" W- U" B/ Q. ` nHour = g_GameTimer.m_nHour;' \9 b' [ y9 T- h
nMin = g_GameTimer.m_nMin ;
7 _! B' w! _7 W- T #else: T0 Y$ h1 L% Q9 G% v; I! G
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.: v/ k: C; H1 T* q
if( m_nLightType == 1 )# U$ u' M3 K( i9 N* X- f9 c
nHour = m_nLightHour;4 J0 Z' Q" t! ~ o: \
#endif1 u9 o3 N& |# S5 G, |
nHour--;
4 U, C! X' M# \* ^0 m4 [ i: ] if( nHour < 0 ) nHour = 0;
' f6 k+ R: b, J( ^. a2 _, \4 n8 ? if( nHour > 23 ) nHour = 23;6 b: V7 Z0 O1 t
4 M/ B1 `3 Q' ?- c9 s6 y4 W3 _ //if( m_bFixedHour )( @- ~6 @0 ]" V/ f$ S0 s
// nHour = m_nFixedHour, nMin = 0;
- m! ~9 I+ H8 w# U5 Q S LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];8 e+ o7 P8 d/ e- \
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
6 V: {" q' }9 ~3 Z) _; y P7 A7 ]5 N U7 ]4 C0 ~( O$ D
//m_lightColor = lightColorPrv;6 G' ^5 E; v. s+ O: ~6 h, b R7 b
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
- g* G W& X. x+ A lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;4 q5 L, q9 Q0 b! a t
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;/ P' g0 K2 K" O# m$ N% d' ~4 ^
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
& Z& S6 }' _) J) \! D- A lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
" [. s5 R$ u: G- g4 z% m lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;! o: _; y# x' f& }( d |
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
0 G- {! T- @/ m2 Q8 ]8 M5 ]4 x! X2 a% c5 K% y8 G% L
// à??μ oˉè* 5 P8 v D: d' [ H9 x/ Y- K) J |9 D
pLight->Diffuse.r = lightColorPrv.r1;
$ |# t1 m; U2 U+ G! ` pLight->Diffuse.g = lightColorPrv.g1;
% k! e$ d9 N5 Q+ o3 W- _3 f. X pLight->Diffuse.b = lightColorPrv.b1;8 d4 L0 }. I6 h3 q8 T. E- J
// oˉè* ??à?
+ E" O- Z" x1 z pLight->Specular.r = 1.0f;
: p# D, M% b8 u* I8 ~ pLight->Specular.g = 1.0f;4 a4 J. F" h9 ?# s- C* I6 B8 C; E
pLight->Specular.b = 1.0f;; U: \; m/ c6 l4 N
// àü?? oˉè*
% T2 \: L) h M; W6 V% A pLight->Ambient.r = lightColorPrv.r2;6 V1 f8 h' F( g7 R. o# n
pLight->Ambient.g = lightColorPrv.g2;& O# f4 a" l$ s" p# P( I: p6 u
pLight->Ambient.b = lightColorPrv.b2;
; k# l& S [7 s8 s* B( q1 s7 k1 z0 V0 ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??. V$ q/ W4 u1 _6 T) B \% ~/ ]% Z
{6 y! F2 ~7 U7 x$ i
pLight->Diffuse.r *= 0.6f;3 r, J- K2 c& M
pLight->Diffuse.g *= 0.6f;; Z4 q$ L& Q& }: h; R. o
pLight->Diffuse.b *= 0.6f;6 A7 ]: [! @5 v. q7 I: s
pLight->Ambient.r *= 0.7f;$ Q/ |4 Z' m0 k& G( V
pLight->Ambient.g *= 0.7f;
7 f! [' [3 `, \ t pLight->Ambient.b *= 0.7f;
4 j' p- Z& [# l4 ^2 b1 A2 ` }
q; z0 G q% J4 F: C# {2 b; R' e, q
% ^0 o2 L) F, Y3 g! E6 J#if __VER >= 15 // __BS_CHANGING_ENVIR* W( n# s3 y2 }9 ]
if( g_pPlayer )
# R. T7 q: ^! W) L' o7 W3 n HookUpdateLight( pLight );
" o$ @( z6 h" x8 G' e#endif; Z4 a7 J( B- f* u+ }; i
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ d: t9 J3 Z) e3 F2 E1 C& V
) _0 |8 C, |1 C
#ifdef __YENV: _- _/ @/ X) t, r2 K
pLight->Diffuse.r *= 1.1f;
5 o7 |0 e9 |0 e5 A2 r0 a; j pLight->Diffuse.g *= 1.1f;
+ {- j6 @+ F5 |: n" | _ pLight->Diffuse.b *= 1.1f;
: D2 M! C4 }9 [: I: m // oˉè* ??à?
6 L; Y& ^9 b) j' F" q. C( c pLight->Specular.r = 2.0f;
. H$ L1 w' m0 l5 O; z) | pLight->Specular.g = 2.0f;1 m; k$ u/ G2 J
pLight->Specular.b = 2.0f;
) X- C& u$ M% e6 v3 {/ f // á?oˉ
2 r, S1 x4 D0 a! j+ _/ U5 j/ M pLight->Ambient.r *= 1.0f;
l+ U. Z3 B- p% Q& n. ~ pLight->Ambient.g *= 1.0f;
8 O' A0 @- j7 K2 o6 q pLight->Ambient.b *= 1.0f;+ j- J" F3 r" z
#else //__YENV7 O: _+ o' Y$ b& r- w. u* b
pLight->Diffuse.r *= 1.1f;
5 Q# Z6 @4 {9 y2 O- W pLight->Diffuse.g *= 1.1f;1 F+ R/ h6 v7 g7 D. a/ H1 @
pLight->Diffuse.b *= 1.1f;+ N8 a, N; S( v2 D4 ^* [
// oˉè* ??à?
% O! n1 K5 ~0 z/ h pLight->Specular.r = 2.0f;
* [: Y) F+ j' v/ g0 ]; h pLight->Specular.g = 2.0f;3 M# W8 u4 d9 Y' y
pLight->Specular.b = 2.0f;! m3 [/ Y. }) I, {- P
// á?oˉ E) {" a2 J* b& A
pLight->Ambient.r *= 0.9f;
$ G% x2 j- D" ]! A2 o/ B4 J! _$ D. v pLight->Ambient.g *= 0.9f;* @4 @6 d5 a2 x8 O
pLight->Ambient.b *= 0.9f;
; a4 X: K+ E, f4 a' J5 y#endif //__YENV
( E. Y* m) U5 O9 L% v a! g9 J; ^ # P0 k, @( q5 B1 m* L* F
memcpy( &m_light, pLight, sizeof( m_light ) );3 _' v- {/ j$ D
% o! ^3 {* J1 P" o7 Q6 C
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
5 r) W) R2 J# O! d- A) c D3DXMATRIX matTemp;' q: [! Z$ b& R0 X- {
static const float CONS_VAL = 3.1415926f / 180.f;6 |/ q! F$ G$ S+ Z; w5 m, {7 ?! |
; Z! f" f: R! K" c7 t D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
( `# C) C0 [0 w1 X' C D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);* z0 |* U3 g+ l% g9 n+ @& i
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ; f2 Y' e/ U5 A" ]# ^8 m
pLight->Appear( m_pd3dDevice, TRUE );
4 |( X9 y1 ?7 Q5 b/ b3 H2 T: y8 l r, E# I; U5 n
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
- U) e0 M/ i0 M- I3 Y. y // D3DXVec3Normalize(&(vecSun),&(vecSun));
- i' A$ Q" E8 k J // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 1 ?, z3 T6 e% F! L7 }1 z, c
7 _) z, ^% }7 z! K# C DWORD dwR, dwG, dwB;# P/ t- Z1 s- L. z
dwR = (DWORD)( pLight->Ambient.r * 255 );- m& i v+ N; P3 M
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 P; V6 @. V! K9 y2 c& N" R dwB = (DWORD)( pLight->Ambient.b * 255 );
1 K1 _ n5 `$ p+ `) W& [/ r4 u dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 6 G. b b% N0 N9 Z0 B7 y
}* W4 f" r I P' t9 X6 X; [) O8 i
}$ b) y8 E' j- d
: i3 h* i7 f# T% J" \4 F# e% x x3 i6 q
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
0 m0 k' r. t) {0 R8 _( f 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) );/ i* j' c5 q( b. w+ y) a0 Z) \' q
::SetLight( bLight );
/ v) \9 ?7 x! J& K7 d8 H" E2 ~ _4 D5 D) f# C
// ±ao? ?D?í???ó á¤à?
7 o) E/ O) |$ ?. u* u m_pd3dDevice->SetMaterial( &m_baseMaterial );4 ]3 M7 ?" a J( n/ {) m
6 c" c6 h; Y! `( _7 W: k s#endif // not WORLDSERVER
1 _$ e" J! ?* |) u' Y2 f. p}: S; w+ N; f7 {$ B+ C0 D
并更换
+ F8 F) V$ s1 k" d: qCode:
. c6 ^/ `% ~$ I/ L__FLYFF_INITPAGE_EXT
3 P; K+ ?! X6 z( D2 y定义
2 r% V2 V, t* A" l. z0 {) X
6 N% R/ y7 m: e, {1 q
! ?( s, b4 t' q4 t5 ^4 {6 J& d/ P" I1 x
2 g; G) @7 ?8 [' Q5 [7 X
现在终于删除我的狗屁加速..., A6 g+ L' v: l$ \
; P* V1 }4 J$ {* `) ~
4 m& E% \, L2 h$ T8 g d9 E2 O+ C. F e8 K# {
|
|