|
|
食品车:
; h- r: s- Z( @& h9 M/ P尾翼:
% {- w) G: N0 y
( I0 z7 Y! j* m) E3 r4 \7 d代码:
9 D8 l; F7 `2 W% pCWndAutoFood::CWndAutoFood()
$ a% h4 {) z9 t; t9 w' L8 _2 I{
2 x9 Q" `7 B0 h; j m_pItemElem = NULL;
5 l" u( h1 t+ i. g1 t* y5 r m_pTexture = NULL;
6 B9 ~$ b( N' _0 ^# O bStart = FALSE;
0 S7 A# ^: F+ R7 p}
' f7 _9 Y8 s- t* `6 ~5 o" R4 V+ q7 c- _( G7 @! i* k& C
CWndAutoFood::~CWndAutoFood()
/ \6 M4 y! U# M( R- I9 q2 {{8 ~" }3 J4 P$ ?$ H
AfxMessageBox( "AutoFood ist gestorben " );
) x8 E) d9 o, ?7 i" A6 o3 u7 Y}
$ E, E" C5 |$ V$ I' g3 e' g" nBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )$ F. u+ n, o' j* z2 E+ W
{
- ~5 s: f6 u& U) I7 h return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
9 K3 }. H; e9 G9 W9 I}
0 ~) P: Z C6 c Y* V% e2 ?3 e; \0 I7 t% i9 t
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ), l' c' ~, k3 s7 n% p! o
{
0 b5 {! E8 [8 W/ Q9 B$ R0 @ LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
8 \. z$ V) c: L. C CRect rect = pWndCtrl->rect;6 C6 X2 S, X4 t- ]) a% e `7 s. o
if( rect && rect.PtInRect( point ) )5 C, \& ^7 k& L! T& h
{8 i1 o3 |% q) ]
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 T3 r. e' |9 |3 d2 k4 ~ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 P m( Q3 }. y' U! A+ O# t& p
{
2 d2 ~' g+ l+ P1 ?9 p0 w' O0 l if( m_pItemElem )
( o( M/ H+ w# {& W, ` {
. I8 L# I: `) Y' C m_pItemElem = NULL;" v2 m) s# W6 e) ? Z
}
8 C1 K( L- H' V- [ m_pItemElem = pItemElem;- C' ^0 F# Q- c3 \0 v7 u3 N# c
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff ); }8 L, _4 k' r4 N, S2 R3 T
}else{
C0 f2 N2 ^, P) I) C! h) V SetForbid( TRUE );
, k/ q& Y4 w& n, P3 j }
3 x: r+ H, f2 G+ H4 A) c( v }else{, Q8 @' \- O: n9 ~( \
SetForbid( TRUE );
~. o; B6 k- z; Y; r( p& g$ B }
1 o! E6 g1 u c4 ?" k8 e+ Q+ O7 S return TRUE;
* O7 O: N; J" u& t' t% g5 ^& ]! ?- Z) i}, A& I& k/ n% Z8 a
7 l0 |1 A$ }7 q; s( uBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) h% W3 a0 E! q/ X' N& x" ?& t" j
{
4 d( T4 Z4 ?# B& t* V& R0 o( ?0 \ switch( nID )2 N8 G1 {8 p+ ~! A
{! t, i; R8 F# v6 ]& K
case WIDC_BUTTON3:
( l& k% D* @: ?" Z {
+ r; G3 j( ]# _9 P bStart = TRUE;
* {# f6 Q8 Q( R# V2 ~ break;
2 |' l$ B* j" `. S7 I) q% Q! ?3 | }
& L" X. X* R; P8 b4 \ case WIDC_BUTTON4:
$ E9 a, m2 \& h9 q a {
5 c4 y# a- z7 t/ y- j bStart = FALSE;
" B& Y) O3 k: A' D break;2 Y6 y8 [( _4 j, c1 ~
}
* d. F; p4 Y" K2 B l2 O }* x) C [1 ]3 L8 X
return CWndNeuz::OnChildNotify( message, nID, pLResult );* `1 X5 K5 }1 A$ u
} ) W3 M! g" r3 Q$ |# N* |/ F0 ?
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
* d- V# p4 K' U/ D3 D- y{
& T+ J" O( L$ e6 | CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );# D; B& t( _% C; q
if( bStart || !m_pItemElem )
; L, V# i1 n( H: O; V6 [- I- S {
3 {1 \( B9 {/ @* h# z/ Z+ a* T pBtn->EnableWindow( FALSE ); |1 B- M7 k: h* g
}else
- K. _4 \" H1 [$ L7 v9 u& I% ?5 W pBtn->EnableWindow( TRUE );
/ F0 d: w0 e2 p. _ if( m_pTexture )
; D3 J5 T( ^" J; B9 g6 A5 [ {
( ~2 t9 Q8 p" Q* O/ I; [ LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );0 |. e. ?5 {3 Y- s( x$ _" J$ Y# e( N0 I% z, s
if( wndCtrl && wndCtrl->rect )& _" q2 Y# z5 ?5 S, M
{
0 |1 M' R+ @0 g( M1 }& o m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );" w9 n L; n; a- ?4 h+ y8 r
}
& u# a/ P/ h+ n. ?# |4 B+ }* g+ U }
# ?/ c- i: A# j8 x5 F}7 }" T# ], `2 |+ t/ m! M
/ F* V" a. X8 [$ y1 `
BOOL CWndAutoFood: rocess()% L5 Q9 x: w$ O4 H
{& ?. D$ ` P- U8 _2 E
if( bStart )& ~# E( x# i; w) D7 a; O# ~+ R
{8 T! {& M0 Z1 }5 P
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
% r* X3 V. a' Y. k6 D) b: N {; j+ u, K( o3 o! p, V- W7 W
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )/ y, R" V( y8 O2 b; @
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );$ d. Q2 v6 a, G3 W l* h/ n, t+ s
}else{1 x" q' K! {- L" s4 B
bStart = FALSE;' c- [5 z. B3 `+ i
m_pItemElem = NULL;* ^. w& _1 n; J* ~. h' g
}& z( M9 }$ ~, p8 z2 V e
}, D+ `' ?7 {/ Z
return TRUE;
# A/ T5 G2 x( C8 F3 s9 w}9 O. L4 H( R2 a. v
0 J7 j0 a3 ?1 d u2 C* L登录视频废话:
$ E+ E2 }: Z- T& X2 T' O1 H尾翼:3 Q3 z( x! a S( U/ I
6 B% a5 T% t: `' @
代码:4 X/ l; A6 n1 B
- X" z4 Q4 l! G( z3 A4 L
void CWorld::SetLight( BOOL bLight )
4 }- b4 a2 I# E8 Y: a6 V4 Udurch
% a6 A! ~: v( L; `Code:
' w1 V+ `3 S& \- svoid CWorld::SetLight( BOOL bLight )
4 o8 R2 v7 i+ s+ K{" `2 h3 o$ d, Y4 V: }% z
//ACE("SetLight %d \n", bLight);2 k' O$ |2 o6 A- z
4 k* t! ^( u: M1 R' l* g; }" O
#ifndef __WORLDSERVER
, G5 O, `5 z: p, c) K DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);/ I x) g8 O2 c+ M7 J, Q
CLight* pLight = NULL;9 e5 l: l# Q2 W/ g: K# a
' S& V( Z4 {4 L/ B' Y" B! i
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
, |3 g7 G! g' t( y# n1 o1 N
" j% t$ t) l4 E& h6 x pLight = GetLight( "direction" );
s/ Z( ]5 W( `
, p, l6 J& K7 F" P! `7 h, |* e#if __VER >= 15 // __BS_CHANGING_ENVIR* k B5 o) M# i, C ?
if( g_pPlayer ){8 g$ U5 ~2 i+ l7 t0 r$ p, @
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
8 I f- ]% J& C* r: Z if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!. q8 O/ A) V' t, W4 A+ g: M
{- t$ I; ^ P/ A7 O! [; J/ u
if( pLight )! y/ q$ c; `+ q# G( D/ D
{
, C4 k) S5 k4 A6 j/ F7 K3 n pLight->Ambient.r = pInfo->_fAmbient[ 0 ];8 t0 Z+ J$ g8 `4 a, J3 N. f: P; g0 h
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];/ o% i/ g$ t v/ @/ a/ o
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
6 x+ |$ [ H+ p- d! B# w. \( O
9 @& y( }, Y( V! j pLight->Specular.r = 2.0f;
7 H1 { |$ M# w$ B# c) q* U pLight->Specular.g = 2.0f;! g( x' H! J) J" ]: x0 Z
pLight->Specular.b = 2.0f;
1 y; Q2 \3 a) c6 y+ H5 ]6 o
- G' K1 U+ R9 P" c pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
# C# B' p( f" y9 T* a; k# S. D pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];' N2 v; L* o( j) L( d; q" X
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
- Z+ P O$ A; }! M+ }
2 B. {: @ `, y, d! i I! ?! y% g9 u HookUpdateLight( pLight ); / o! `+ ~5 P" U5 p1 L4 x" j
7 E9 a, ^, h+ o4 I0 x
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' [. I9 n' K2 I* m" @- m- J T( u7 X
; q3 u) d4 R# ~7 } pLight->Diffuse.r *= 1.2f;" d2 p: |2 Y% u: _* Z
pLight->Diffuse.g *= 1.2f;
% R4 A9 R( D3 ] O8 L pLight->Diffuse.b *= 1.2f;+ `8 h7 K3 m0 D- o% N
! a; l2 s" N1 Y) [4 u' M- Z% T% V pLight->Ambient.r *= 0.8f;
- n0 e6 L% x T3 Y% t pLight->Ambient.g *= 0.8f;
3 K1 }( {4 T3 j3 q E pLight->Ambient.b *= 0.8f;% v }7 a/ j2 z+ e
+ Y8 f+ G( u$ J4 h memcpy( &m_light, pLight, sizeof( m_light ) );
9 [7 ~( k( c& J# w6 \
$ |3 a3 v: j" A: M: z% l ? D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
9 c& M% ?9 ]% |8 u D3DXVec3Normalize(&(vecSun),&(vecSun));! s" ^( m1 w; l
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 p' V9 |9 J. |! F pLight->Appear( m_pd3dDevice, TRUE );6 O8 c, ?' Z1 z! s
Y" @" g$ p2 V u$ g/ v5 i
DWORD dwR, dwG, dwB;
: p( v) [7 n' L J dwR = (DWORD)( pLight->Ambient.r * 255 );9 C$ P" }/ U' {& x! x5 i" D
dwG = (DWORD)( pLight->Ambient.g * 255 );
$ c8 U" s# _% K7 g4 A dwB = (DWORD)( pLight->Ambient.b * 255 );! y7 l8 a5 U; f" y9 H; B
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' l* `1 n# f+ X% ^! }
}
! D% h7 ]0 H& f* f1 z }
+ N: E; O" N: r }8 G7 t$ r- g9 P: X! W2 B
else. ^* x) W$ t, p
#endif 1 D% G: i \% u- W4 x4 z1 e& e
6 s+ o) q! q7 q+ r
if( m_bIsIndoor )& Y! [/ Y9 Q# O7 B$ Z% ^, t, C
{& ~& V8 x4 y/ m; ~
if( pLight )$ n1 ^- B) i! J2 s& I+ v4 b4 s
{
* F5 f1 [3 ]! G: R // à??μ oˉè*
) o' ^7 c/ P& g4 C1 Z pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;3 Y' B3 R" R& W+ @1 J: o, B* j3 C
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;7 H0 S5 H4 i: d5 Q; [
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;: {( _- u# X/ I2 R1 H3 Q2 P
9 R0 @8 ]+ J# o3 Q* S$ l& N! Y
// oˉè* ??à? " S, t8 p {, X# }: l
pLight->Specular.r = 1.0f;0 j5 T% m- o) ]4 M1 E7 A; z
pLight->Specular.g = 1.0f;" L+ T# J3 b k, y6 }6 v- o, p) W
pLight->Specular.b = 1.0f;
5 y3 ^: f* `0 J6 Y // àü?? oˉè*
. w/ r$ C' |9 u7 o9 I+ P( ^ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
: L, B" H j/ C g D% o+ R+ V pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
}# |/ e. T% [+ d7 m pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;. i; n4 |6 Q$ q; B0 R
( q4 L/ G6 D- z3 M5 o6 t9 k
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
4 u/ J; _: n5 b+ {% p# P- L {
" N ?, a( z+ y. X pLight->Diffuse.r *= 0.6f;; E" p$ x% y, I$ o4 M% y# z; a
pLight->Diffuse.g *= 0.6f;
" L7 m0 y7 K4 n- a pLight->Diffuse.b *= 0.6f;/ c9 L+ _* l+ W6 P
pLight->Ambient.r *= 0.7f;) \! c. z, U8 C0 x! f8 v' G
pLight->Ambient.g *= 0.7f;" s) u% |& B& k+ x$ Q
pLight->Ambient.b *= 0.7f;9 }* S+ l$ q8 E5 T+ E
}3 S& v8 s& H* [8 G% W
6 K# p" B$ ^; Y2 L- r#if __VER >= 15 // __BS_CHANGING_ENVIR
2 q( @7 _2 p |% A8 {% X if( g_pPlayer )" ?; K+ I1 P' e9 \' e2 g
HookUpdateLight( pLight );8 ]" b$ v4 |' A5 @: S: ~
#endif
' w. G' s) r, s' G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: v& M! y# k( n+ ?8 H! r1 Y, q5 ~& f. u. F/ p
pLight->Diffuse.r += 0.1f;! ]% e& e$ C& C5 f& P
pLight->Diffuse.g += 0.1f;% h$ k {( n+ J& C
pLight->Diffuse.b += 0.1f;0 o, n1 N* T H# x. }
// oˉè* ??à?
% L( `6 j. f$ q pLight->Specular.r = 2.0f; U: U% n: G4 Y
pLight->Specular.g = 2.0f;! n; H, E" `% E8 \# x4 {0 X
pLight->Specular.b = 2.0f;& n2 \! ?6 `. Y. U4 Y4 T6 V
// á?oˉ
- C: z w, U; T pLight->Ambient.r *= 0.9f;
6 `/ u+ h# ]" A8 {! j3 x pLight->Ambient.g *= 0.9f; b. B8 v0 h! K1 K5 M9 y
pLight->Ambient.b *= 0.9f;9 E0 q; T6 X7 g# l+ X' z
4 g: J$ i/ P3 u+ d& K memcpy( &m_light, pLight, sizeof( m_light ) );
s. q0 e: V9 q: H& D. F
9 V, s( F n8 d/ j, m4 j pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );4 b* ?9 t" y/ b8 P" c
pLight->Appear( m_pd3dDevice, TRUE ); _4 \! I% v( f
- N2 D m, K" j; M: X) L
DWORD dwR, dwG, dwB;
. k) q) _) p# A( J dwR = (DWORD)( pLight->Ambient.r * 255 );
; G6 W0 B7 ~$ q3 |+ G dwG = (DWORD)( pLight->Ambient.g * 255 );$ h$ i8 z! L$ c4 B( {; u
dwB = (DWORD)( pLight->Ambient.b * 255 );4 K$ i. z5 l2 n! _+ z( e# n
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
9 n2 l" f+ |) h# f7 r9 g7 \3 l }
) D R7 c* j, d; t# R; _ }& W; \4 u( \0 t$ g1 P
else
9 h8 b, L7 [. f# e/ E0 Q9 [* A {0 F( V% ^# H0 r+ @! c
if( pLight ) r- }5 [( o1 q2 I+ a( {, N5 V# g
{
' f6 `- H0 K, K# O- Y. T3 _ ! Y5 I0 V! D! N5 k/ V
int nHour = 8, nMin = 0;' i2 }8 b$ c2 R/ r( q- T
#ifdef __CLIENT
* W% m6 H% F& e' o, P; O // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. + m7 k: Q) k9 H
nHour = g_GameTimer.m_nHour;: e1 v& S o0 u1 v5 r
nMin = g_GameTimer.m_nMin ;- O4 V0 _6 c. X% R3 {6 a
#else* U" L! ^+ C3 g6 K" D
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
# Q! Y. f. F0 e9 ^5 t4 d ~7 [ if( m_nLightType == 1 )
0 V- ]- e; C1 O nHour = m_nLightHour;5 u4 `' G5 N% }8 D5 Q! W
#endif7 D* N% N5 y& Y. Q' c1 u- u. X
nHour--;
% E/ H" @; y6 c9 o- {- W, v if( nHour < 0 ) nHour = 0;$ i2 q* U1 {2 U9 c2 g0 I q+ P
if( nHour > 23 ) nHour = 23;/ p2 v" P4 g' n( o2 Y( f
) h2 W! R+ q! {' F( A d //if( m_bFixedHour )0 B+ Y9 I, b# a3 Q( ?* X
// nHour = m_nFixedHour, nMin = 0;
- E( `) \& O7 b9 I LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
5 X! u3 @) R. h: n LIGHTCOLOR lightColor = m_k24Light[ nHour ];
$ @- ^6 z2 v/ ~# P
7 B2 U# c0 s% A4 t //m_lightColor = lightColorPrv;8 a$ E( N6 C0 J: F; A7 N# X. ?+ Z
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
2 U( c7 E F! e- N' j4 } lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;" t7 m3 Y. Z9 Q" P0 [
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;& F v" D0 k. o$ k" A
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 U0 y* J( W5 E4 R3 n" N3 U- t# C; _ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;- p0 } ]& T6 T. j
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
6 H3 O0 b' o4 L0 b) k // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
# r& |; W# E4 |2 V& f' W" n+ P: Q& w: Z& Q
// à??μ oˉè* 8 H5 I) L: _$ b2 W, O
pLight->Diffuse.r = lightColorPrv.r1;4 ~' m+ A! s) X: T
pLight->Diffuse.g = lightColorPrv.g1;
( g- u1 x6 m5 [& t; |) T& J! Q0 w pLight->Diffuse.b = lightColorPrv.b1; M& X$ L2 A' S& f) L+ _
// oˉè* ??à?
7 o0 n# o: N9 E$ U! V) j, n pLight->Specular.r = 1.0f;
3 L( `; i+ o7 @+ V pLight->Specular.g = 1.0f;6 I7 P! k. o7 \8 N
pLight->Specular.b = 1.0f;, T# H, ~6 G; N+ g* P: D
// àü?? oˉè*
" }3 W2 U, Y; x8 S# z pLight->Ambient.r = lightColorPrv.r2;
2 Z/ c0 ?2 W* i pLight->Ambient.g = lightColorPrv.g2;8 U- d' ` J" k9 z, |0 v
pLight->Ambient.b = lightColorPrv.b2;3 Q; w/ V3 ~- C8 P% Z
: l1 i" M2 [$ \. |$ S, V9 ~ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
4 Z& Q& X5 }& w" d {( q4 R3 P- [* b
pLight->Diffuse.r *= 0.6f;
! a- S' B3 A. w1 f1 o( L pLight->Diffuse.g *= 0.6f;
' Y- c) b. l9 Y6 K( Q pLight->Diffuse.b *= 0.6f;
. x" q; t; t) a4 g$ m! f; g& p pLight->Ambient.r *= 0.7f;
2 V) V, ]1 k: F! c! f" u, L) e/ ~ pLight->Ambient.g *= 0.7f;: V2 ]( m1 b8 ^+ Y' ?* s
pLight->Ambient.b *= 0.7f;. M* T' z2 x% [
}( ]. t4 P$ f. s& ~: ]
5 F7 ~: k& n4 X6 C
#if __VER >= 15 // __BS_CHANGING_ENVIR
* }6 B ]) Y# t5 S if( g_pPlayer )
* A, }& J" g' O* k HookUpdateLight( pLight ); . h0 i! X; O' T6 Q. b' U4 ?
#endif/ r0 _0 {+ r, I
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) m! }1 U" S( ^& y5 {
' |! {5 Z& A1 Y" a' a# {
#ifdef __YENV
! j0 L5 j4 `5 Z% z) E pLight->Diffuse.r *= 1.1f;' c6 _' @) M: ?/ h0 V: x
pLight->Diffuse.g *= 1.1f;
8 t! s3 G' Y* I6 e pLight->Diffuse.b *= 1.1f;
# x' C0 S; e" |$ B& r! a9 u9 B // oˉè* ??à?
9 u ] X* ^2 j8 }: }/ o pLight->Specular.r = 2.0f;1 ~: x" I' }3 D9 ^% ?9 h4 N
pLight->Specular.g = 2.0f;4 U- @1 r6 u i6 ]' o1 x9 x
pLight->Specular.b = 2.0f;
1 H8 G4 K5 U/ t( M // á?oˉ " [, a" q: Z; S4 k7 G& t. B, E
pLight->Ambient.r *= 1.0f;8 O, I! ~# a& ^7 R+ v; s
pLight->Ambient.g *= 1.0f;, e+ b$ `6 b; u" t0 m& \
pLight->Ambient.b *= 1.0f;
: |' S/ s& P+ O1 Y5 z#else //__YENV% W3 d) B- K0 S9 q5 t; u3 V; _
pLight->Diffuse.r *= 1.1f;" L3 m' |) Z3 t
pLight->Diffuse.g *= 1.1f;7 g+ K, z6 e5 u6 O; w7 w" y9 {
pLight->Diffuse.b *= 1.1f;) s( N) l' D- {$ Y8 f0 ^
// oˉè* ??à?
3 J. |# k7 s/ y( a& J$ J y pLight->Specular.r = 2.0f;+ {- m4 ]6 n' \
pLight->Specular.g = 2.0f;
9 d" q; n* X. m pLight->Specular.b = 2.0f;
- U6 E7 Z: w3 s& d // á?oˉ
* t$ I3 M0 T5 c/ \ pLight->Ambient.r *= 0.9f;: \0 a, u: v; G, T, a( U
pLight->Ambient.g *= 0.9f;% R0 `; E" B& C/ ?, O7 b
pLight->Ambient.b *= 0.9f;
% s$ `! A# D! r#endif //__YENV 0 P* W: ^ O: G9 y
/ X2 h) V1 }% c) v8 e, t* H
memcpy( &m_light, pLight, sizeof( m_light ) );
& W9 [. ]- I% Z' u$ R" c" R/ N2 d " A& E6 o$ w0 J! U* B7 M# a
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
" \2 b6 M( e6 M" X5 B J, q: Z D3DXMATRIX matTemp;
7 W7 }- }; w" W1 X, L6 o static const float CONS_VAL = 3.1415926f / 180.f;% y8 S6 w5 Q0 o" Z7 m1 E
. l/ w$ y, x2 }
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! B5 ?% H. R: b D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);2 ?; I) n$ y6 I/ o
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 8 l3 X* e, n$ o/ T
pLight->Appear( m_pd3dDevice, TRUE );
* [0 o5 f' C" a2 @
9 X3 `$ e) Q3 A; h1 s // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' g, f% `) d M* t! b
// D3DXVec3Normalize(&(vecSun),&(vecSun));( ] y' H0 f* ~) h
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
W' Y2 q% T; z2 o0 d) h
1 i3 h- l* I0 |0 x' B DWORD dwR, dwG, dwB;
+ B9 m# W& V3 U1 {1 A" i dwR = (DWORD)( pLight->Ambient.r * 255 );
7 L* D" c9 W7 H" @* g dwG = (DWORD)( pLight->Ambient.g * 255 );
$ G/ g, P0 O. _0 @% ^( H J7 \ dwB = (DWORD)( pLight->Ambient.b * 255 );2 B$ ] Q" q1 v. p1 H! z) d
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ' \- S; U) s2 C, [0 y
}! `, V2 {; ]0 [; }' l7 |
}
$ d$ [ n0 I/ F2 i8 D$ S
+ K+ _0 E0 L$ k m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );% h; I# L$ v: |+ C: 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) );
. |% J* n$ g7 F8 _3 g9 T( x ::SetLight( bLight );) G. T0 y* d& u2 B+ N0 c o1 V, n
, q6 ]$ ?5 ]6 ~5 S" a1 T+ x1 k
// ±ao? ?D?í???ó á¤à? 2 i, @0 M0 z' \5 t! w; T
m_pd3dDevice->SetMaterial( &m_baseMaterial );
1 V" C+ \5 S( {- N. ?4 j
# k" F, }; N" \: h) ]* |#endif // not WORLDSERVER6 w0 \; I0 i; z7 ?
}6 M. |/ e- K, `0 _
并更换
8 o: q0 c# b& R4 Z( {6 qCode:
$ i3 r) u) e W; [__FLYFF_INITPAGE_EXT# w7 n* r4 G5 T+ X" s" [. \
定义
. k& w* J: U, e* ` [' C: f7 Q- G' ]3 A/ H- ]+ g
. ~" A+ G. s+ x4 g( i6 ?% g" J0 O: v2 l4 H$ x% a! ?% n
& F3 Z) c/ {/ W% v# w/ ?5 L
现在终于删除我的狗屁加速...
+ A, n; _/ q% G; `1 n8 D. f
4 G% c8 i( g- Z7 B) g* }5 {" Y
$ @/ E9 g% Z% g
& m# A- y; |/ [( B, g2 g$ N |
|