|
|
食品车:0 k' r. N; c, c1 U
尾翼:. f- i. a8 v3 U- \. g% J
$ j4 I ^ b+ Z |$ |: T
代码:: v, r" A7 E0 V- ]
CWndAutoFood::CWndAutoFood()
% w: R3 F2 s3 F9 a" Y+ k{4 D3 m3 a4 u, u, k6 e% d. n# l1 F
m_pItemElem = NULL;; r' m5 p7 [/ z2 Y; L! X6 X# K
m_pTexture = NULL;
s- R0 R6 h% r# E/ _/ b bStart = FALSE;4 m: ~6 B h. ^5 |# F
}# N: ?) l+ P; o, V7 M
i, N5 w) W1 H7 y+ J. k
CWndAutoFood::~CWndAutoFood()
1 \& t9 q1 K. i7 d{& \# M. ^- y( l/ |5 ~7 N. w/ W
AfxMessageBox( "AutoFood ist gestorben " );
7 q+ l' k; w; J v# N B7 T}) w0 G f7 N1 ]" C3 ~, e
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
X5 D* M$ o# i! X$ n% o6 C{6 o4 }, I, _$ r a) ^
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
9 S! ~5 x3 y5 k2 H: c}
9 _) }* T( W3 l$ n% e& h2 i9 H6 M2 q3 K8 Q) g$ G, S
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
* `. _; }& F- o{ t9 C, F x% U. D% M7 h0 C
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( q! G: V! @1 q1 q+ a$ ?' S CRect rect = pWndCtrl->rect;
% q5 i; n# E1 M3 L4 G3 H if( rect && rect.PtInRect( point ) )
+ ^5 `2 ]7 B5 x4 p; A {; I; K4 b* ^3 J; J
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );; A$ S( v5 M K
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ): x& p$ j# M4 k- w( A4 C
{0 V& J) l: X% B+ v& i
if( m_pItemElem )
, V1 O6 b/ T: X3 ? {
: C* X1 `) X2 D6 d) g4 ^ m_pItemElem = NULL;: X2 L F( L5 Q' X1 p$ }$ O' ]& k% U* R
}
. |7 r: k& |9 L# ~+ y8 g m_pItemElem = pItemElem;
5 v$ g9 X/ G4 o$ ]# Z0 l m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
7 [$ b3 _; C* W6 r3 a }else{6 J3 X! e2 Q) N( ?! O* e7 }
SetForbid( TRUE );
, [+ ]: }3 a( y, I o F8 n e q }
. Y+ f! W$ ~9 e2 `; ^% C( _ }else{
% Z2 i5 R# r- c8 O4 C/ ] SetForbid( TRUE );
# b& t4 ?" B. \; e }8 f5 }( J1 ~: Z/ P% t5 g) S
return TRUE;
3 g' }# `9 Z) c; y& K0 B}6 l* S, e. F N/ m" T# w
, i' |( f) F/ H( l mBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
' k' r3 A* ?: ~/ @5 s- ~{
& f. ^+ _1 S/ A0 V" x3 Q% }. N, A switch( nID )
J1 m4 w) C9 v" H. t+ L! ~ {
+ o- T" v+ s: g, Y4 Y: D) W case WIDC_BUTTON3:% d9 `" ]1 m6 X+ e+ v& M. y
{. c- U; s3 u2 o0 y5 h
bStart = TRUE;
$ K+ C' W3 J7 @6 s break;+ [* b" ~8 X6 t+ i' a7 L" I
}% o3 v9 ?* e+ {# U& u
case WIDC_BUTTON4:
& H W; U I# `: P$ z* B {- M9 s6 C4 i! p/ z! ]7 u6 e4 A
bStart = FALSE;
' K# x. v, I9 F( j# Z break;
: H/ D' k) ~, H& x9 |9 z) n }
1 N$ m( M1 v" a ~# d }
4 Y& R/ l( R5 t( `* w- u3 F5 E5 E return CWndNeuz::OnChildNotify( message, nID, pLResult );
6 g* D7 e" Y, ^" o+ H}
1 Y- f5 G; \/ b( d5 O+ F0 _void CWndAutoFood::OnDraw( C2DRender* p2DRender )
- F/ K0 m) C& e! {( {, c0 I' S{" i% ?) c, J8 B! q0 L V6 B! V6 u
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
: o8 k* ?" y7 L if( bStart || !m_pItemElem )
1 s& B' Z) n, v4 F# ~3 |: J( F {) r4 j) c+ f% ^" g }4 ? v4 f% |
pBtn->EnableWindow( FALSE );2 s7 r0 h! j# O4 H
}else) u" s+ s8 S( e0 X
pBtn->EnableWindow( TRUE );9 U! H1 R. Q6 l0 m7 r
if( m_pTexture )
+ c6 U9 ` E+ l0 H% X* |6 ~ {
8 _: m$ b% T: @! D9 v LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );' j6 m) _+ Q; V0 Z& A
if( wndCtrl && wndCtrl->rect )
- _7 h; n! y0 s1 p# T! {7 h {
$ I0 A: `3 b1 K6 X m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); Z8 R; q+ ?; F2 \# m9 D
}
# E# z- I+ p2 H# \, @ }
$ j% f. B/ i) q, w, S}
9 f7 j; p4 r. n0 s6 U* w+ W/ k
2 `3 ? V# o3 e1 Y K( \% qBOOL CWndAutoFood: rocess()4 i# O Y$ A$ U/ G1 u& ~, V
{- W- y0 i& A* g) d/ x. C5 T
if( bStart )3 I2 O$ g G; n8 m; `
{$ B6 C- C4 k2 L; e. W
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )2 s9 U- I+ M8 Y8 Y" M
{' a0 ~/ Q, n, z$ f( b
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; F8 A) Q/ b6 n g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );7 f) p# V( j& _" _# m6 v/ C" k, g
}else{
$ i! K7 E# s/ K5 y/ ^ bStart = FALSE;* W: O, t' v" L2 ^7 |; w
m_pItemElem = NULL;
8 h! n1 H& D. \1 w) {: v' L6 B3 Z: m9 q }) V; s7 N/ A: |: r/ q$ N' W) a+ u
}3 K# ?+ D6 n0 T- G4 j3 Y
return TRUE;, P( I7 k# V, k. k3 j/ p6 t
}
" R* U# Q/ K4 b* ?, r# N+ b5 o0 ~* ]! Q# _! Y0 g3 P' u8 K- ^, w
登录视频废话:
: [/ x4 P: R, R* K2 Z尾翼:
( }, v0 I% m: c$ J* Y/ O. ^' C8 S0 s T/ b$ V
代码:
. D+ o, ~6 V1 B3 H' z
# j9 n% `( y4 {6 H* u& X( d% O' Gvoid CWorld::SetLight( BOOL bLight )
. f2 x) W9 v: ^" a5 ydurch
. v* D/ K7 t1 J% u1 ]9 h( T7 tCode:! H) I6 j& e) \, K9 F3 V6 K. F
void CWorld::SetLight( BOOL bLight )
8 _ K' _; F# G0 \" [{7 `2 l k( i, a `. y4 \
//ACE("SetLight %d \n", bLight);5 C# Q6 ?9 m2 Y) k
' I- u$ a4 D5 i# k: c! N* E#ifndef __WORLDSERVER
6 s1 M& u& \* h2 p$ S% H DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
: i" l. y5 c9 d% u* y2 L CLight* pLight = NULL;4 @+ b. b0 K- k9 G& b3 g
' V+ `9 b/ d8 {4 @! b2 D
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
& k, X1 Y# b6 E5 q- \4 S4 d
( M; Z! c6 s% i8 m pLight = GetLight( "direction" );
V3 Y+ h) Q7 k9 b* x/ r! r, ~! |: n0 d2 y- y
#if __VER >= 15 // __BS_CHANGING_ENVIR, i7 t Q2 n. R2 i" S# d. q( a
if( g_pPlayer ){
1 C7 s# d% B; M2 Y& J1 c ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );; O% t! p" r; U7 }
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
! C) T1 t) j4 b$ u' q {
8 ^# k5 J* \2 M' z8 ?* ^& ] if( pLight )' G. t: Z0 t \/ }- w# w! z5 Y
{) n0 ~* d( i2 M; A! q3 @
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];. `+ Y1 b7 f) N: j% c
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];+ ] k3 j* |2 S' S! J
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
; T, }; `8 q' w$ Z1 h% { u- z$ I4 Q
pLight->Specular.r = 2.0f;3 x; | R& |$ W N8 w% m; }
pLight->Specular.g = 2.0f;
, J: ]( q3 F) P" g: j' e* }3 W pLight->Specular.b = 2.0f;5 j4 V# \2 ~6 O$ @3 u% n" p! x& B
+ d+ @; i$ A' K& _/ s W7 t
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];) s, v, c* ^: y2 n' j B
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];7 ?) x+ k- Y$ j: Z$ s, U3 B t
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
4 @4 V& W! S! b3 ` N0 W
# z) }2 T. m# P5 y. o HookUpdateLight( pLight ); . ~/ o7 F: K8 }3 L
% H' w4 x' t: \+ r; E" ` memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- [0 ]; t& j, Q. E , S/ |3 ~; u4 |3 c- S% m
pLight->Diffuse.r *= 1.2f;
; ?6 @/ S7 e9 s4 Y" e6 |1 N5 G pLight->Diffuse.g *= 1.2f;
6 A5 K$ `: ?- I$ ~ pLight->Diffuse.b *= 1.2f;9 `( I: r- f8 L b" q
: v4 f, x. @! B# x" m9 I9 S pLight->Ambient.r *= 0.8f;
" ?( l5 q# Q" a- l! y pLight->Ambient.g *= 0.8f;, y' _ v" \; M: B
pLight->Ambient.b *= 0.8f;) U" v7 L8 U0 c: V9 N. K
, Z; T& B x# P4 d5 H memcpy( &m_light, pLight, sizeof( m_light ) );
. s+ y9 b+ r/ f3 d' I: @, Z3 d
" Y( r& Y6 U* G. J7 W" l k D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);- m4 D( Z2 S; V4 ?4 P5 ]
D3DXVec3Normalize(&(vecSun),&(vecSun));) [, m' _! M+ m% T; B% v
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 l2 ?2 a7 B; N pLight->Appear( m_pd3dDevice, TRUE );
5 M' B) w" |' @" a" U2 W 9 [4 ~# N3 B# R3 w
DWORD dwR, dwG, dwB;' J" K' U; _2 C/ u; A! P2 U( v
dwR = (DWORD)( pLight->Ambient.r * 255 );# I A3 t+ C+ M8 M# H
dwG = (DWORD)( pLight->Ambient.g * 255 );% E; l; |. b3 e( D! v4 H- j- u& o
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 R! x# k0 ]/ E: m2 E( b dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" y4 m. S& ?6 N+ v+ C8 I; @
}
8 f9 x; C/ y8 x# v* k1 o; }6 B }. u1 I& d0 q, V3 K; P. t9 ^, |) Y
}
' x' u! p# u9 N7 F5 i6 v9 s else7 C' q# m# D0 P% k9 t+ p! \
#endif - w* z8 S6 L9 A% g& ?8 @5 }
' \9 V0 E4 H3 H" s" H! P% i if( m_bIsIndoor )
( w) a5 I& u& }$ O0 V {
+ X* X# {9 ?" F* v+ a if( pLight )
3 c" @0 a$ Z, V& o {
: n* T2 \: _3 y, c# C; `8 i/ Z2 y7 e // à??μ oˉè* & n5 x& o2 s4 I2 L8 K3 @; _
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
1 ^1 a9 \8 N, l0 X) j pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
' a3 O5 G. C$ c; M5 f1 L pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;& d- }6 i/ s9 Y4 E4 Q' x
% r% b5 P/ f/ Z5 z4 n
// oˉè* ??à?
9 _1 U0 n5 ?6 X! m& K pLight->Specular.r = 1.0f;
- N7 e/ p; ~% \; [$ j pLight->Specular.g = 1.0f;
& ^% Q2 C+ y" B1 E/ E pLight->Specular.b = 1.0f;
7 x; B' Z# w- e; I# k // àü?? oˉè* , @, o& U. ^2 H" b
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" }8 I3 q$ J' s$ j# j' R; i pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ S3 e% L0 f3 y$ p0 C
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
& z; c; ]2 h, g1 Z
; j' _3 L2 F/ j+ Q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
/ o$ Q5 r2 r' k# m0 { {
% r6 w$ O: h) V& Y pLight->Diffuse.r *= 0.6f;
5 }. g& ]5 g4 m4 X pLight->Diffuse.g *= 0.6f;
! S% M: Z/ A' A# C' S) X0 V pLight->Diffuse.b *= 0.6f;
: r7 r7 x7 j/ C& [ pLight->Ambient.r *= 0.7f;
+ g6 l) \( k, w pLight->Ambient.g *= 0.7f;+ K1 y+ x8 E: v% j; {1 K' Z
pLight->Ambient.b *= 0.7f;
6 @) n5 Q7 o8 c }
! C, H7 x3 u$ }; v! R) T2 {2 X% S6 f: O# o& P6 v, P; ~ _! i6 J
#if __VER >= 15 // __BS_CHANGING_ENVIR3 l8 h& w6 m( r
if( g_pPlayer )
5 t* u( z m1 n$ C J2 p8 O( | HookUpdateLight( pLight );
+ n* B2 W! L: C7 g#endif+ G1 M9 X" W' I( L! L# @
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, L9 @/ q% u" k+ i
% q4 Y, X$ _+ u# t7 } pLight->Diffuse.r += 0.1f;$ A" L3 S r& l3 y; y6 [
pLight->Diffuse.g += 0.1f;3 D$ R; T5 i, c% A! o
pLight->Diffuse.b += 0.1f;
" x/ u0 q; o8 W# q3 ^ // oˉè* ??à?
! f3 x7 t- T' q" E- G pLight->Specular.r = 2.0f;9 i/ Q5 u: e7 ]3 O1 \
pLight->Specular.g = 2.0f;- s/ ]" \3 |+ K& Y* n1 Y
pLight->Specular.b = 2.0f;" ?; l, ^# x7 d' x
// á?oˉ
' r. ^& {* @1 W, p! L) H+ F pLight->Ambient.r *= 0.9f;
3 C% E& u: r9 ^' o pLight->Ambient.g *= 0.9f;
+ {+ Z) B: h* e' |" M& }: U pLight->Ambient.b *= 0.9f;& s* V9 k; ` {% W/ x+ O
% `- y: O' @) d/ h5 P0 R/ I; t" e
memcpy( &m_light, pLight, sizeof( m_light ) );
1 { q8 [0 v; f% ?& B
& s1 |! a, c* @1 Q4 z. |* @ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );: t0 ]: W" X) h1 c$ i4 }
pLight->Appear( m_pd3dDevice, TRUE );2 v) [! J! d6 ?$ P$ \+ d; ~# m
/ [( h& z# e |/ Q& E
DWORD dwR, dwG, dwB;/ s( q% E+ B, z+ u, @3 n0 \
dwR = (DWORD)( pLight->Ambient.r * 255 );5 G/ Y7 A8 l2 U
dwG = (DWORD)( pLight->Ambient.g * 255 );
& d6 e+ S2 S3 q4 x dwB = (DWORD)( pLight->Ambient.b * 255 );# ^* k. C0 X4 e9 l. ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); b$ c9 U- P0 w. E Y: v- J
}2 s" _' M3 Y: s ^8 h$ U0 ^
}, Z+ f0 k% n2 ]2 a; O
else
& e# ^5 Z4 y8 H. D. u9 Y {- `* `) A+ U& k9 |
if( pLight )
; |( @- r) R, g" w {
# x6 p) e6 d1 q! L9 Q8 L : A& {2 s, N- Z( K% N1 |8 g
int nHour = 8, nMin = 0;2 P; I# R: ^7 e2 ^
#ifdef __CLIENT, u: L; i- m- y: z3 c7 W/ @
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. , V3 g+ h0 [2 N' @7 Q U+ }
nHour = g_GameTimer.m_nHour;" `* X2 C/ k( J: p/ c
nMin = g_GameTimer.m_nMin ;
6 \: f" p0 z/ P; W #else! z4 K6 c2 N# c* R$ e4 f
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
( G: D8 T3 r: W! W& ~& d% z if( m_nLightType == 1 )
/ |9 V4 ^5 e$ C6 ]( t: j1 d7 I nHour = m_nLightHour;: J) K" m& j3 @# T
#endif6 I& C8 |" B2 n8 q( |' W
nHour--;7 j* N' F# a# E& `/ d. \
if( nHour < 0 ) nHour = 0;4 A* S( P; h& W' k
if( nHour > 23 ) nHour = 23;
G3 H# N5 U( \9 z2 w) z- [
- v& V M7 f% N+ U: [& t) ~9 _ //if( m_bFixedHour )1 f/ ^, _" T% l) @# a+ m
// nHour = m_nFixedHour, nMin = 0;
; }% R4 }- \% {- s9 w1 E. x LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];# I/ O" x: J* \
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
3 f' f; R, v% S8 F
% t; x$ N. j9 {" V, w //m_lightColor = lightColorPrv;: q6 @, p: H) ] W7 d6 r" u
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;$ e {8 C, U/ n$ |9 n
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% L; `' j5 m5 r! D# q, A- H lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
% ^4 l E5 x) T$ F9 e4 F lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
& o5 Y4 l9 }" z3 P0 m( N: f, p lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
9 _/ l9 V! {$ J+ D, K/ U lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
( O9 n0 m1 J( b. g // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
6 r9 n o9 C' U0 S4 Z: e9 L- u2 l* u ~% k% Q: d/ Y: c) ?8 @# E
// à??μ oˉè* % F8 s4 K4 W4 E' C( h! ?) K+ k
pLight->Diffuse.r = lightColorPrv.r1;% }' Z/ W* ^3 D" N) q3 s" T
pLight->Diffuse.g = lightColorPrv.g1;
( N8 j! _+ @, z0 W6 h( O' O pLight->Diffuse.b = lightColorPrv.b1;" }9 u8 l5 C) }) u. S
// oˉè* ??à?
4 G2 E" Q3 k4 i7 v* G pLight->Specular.r = 1.0f;; R& }: c9 B: l
pLight->Specular.g = 1.0f;
$ W* v' ]8 c, _( U, Z0 t pLight->Specular.b = 1.0f;
" Q" Z3 h, L7 d8 F0 K. m4 s // àü?? oˉè*
8 d4 \: W7 o: C+ s pLight->Ambient.r = lightColorPrv.r2;
1 G' C, b5 Q# E$ o/ V) f; G4 x pLight->Ambient.g = lightColorPrv.g2;
1 N# H* O* P Q' K6 O; x/ E pLight->Ambient.b = lightColorPrv.b2;% |( k/ A- U' U& o
7 ~& a2 k& M4 I# b- s7 x if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
( A. E0 r( n- h$ R {) J0 z" d7 D9 X: c; u
pLight->Diffuse.r *= 0.6f;$ {/ P v4 b2 t/ i9 r* V& N& v9 F
pLight->Diffuse.g *= 0.6f;
- \3 g+ r, A. H pLight->Diffuse.b *= 0.6f;
( u; t* i3 E: `1 u pLight->Ambient.r *= 0.7f;3 X( E" |) ]! y% F6 A
pLight->Ambient.g *= 0.7f;
; `# P" R4 i+ w5 ]7 O7 f; G pLight->Ambient.b *= 0.7f;9 ?8 k& r$ L @4 ^3 U) T% p# p- m( q
}$ B: o7 n& {& z* m
2 t" c! @) ?' q" v- H% q' I4 L
#if __VER >= 15 // __BS_CHANGING_ENVIR# x5 s& M* m* Z' w* ~/ P/ i
if( g_pPlayer )/ Q* Z& i2 E4 O& [+ m
HookUpdateLight( pLight );
L/ g, I- J! n! o+ ]6 K#endif( P, k% @: Z, [, W* }+ X
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. R3 T3 u& r3 c% i; i( L4 U& U* j, P2 ?
#ifdef __YENV
: L1 S3 H6 C) l& i* {/ p+ ?; s& l pLight->Diffuse.r *= 1.1f;8 f1 v* d4 {- V* [8 B4 e
pLight->Diffuse.g *= 1.1f;
3 t2 f* l6 ^. f7 A1 z3 O5 z pLight->Diffuse.b *= 1.1f;& q0 I7 L) l* O" W
// oˉè* ??à? ' c- [2 s6 k) U( h8 D3 `+ T; `: X d
pLight->Specular.r = 2.0f;; T5 T. `8 {' s0 [
pLight->Specular.g = 2.0f;
& c3 ~) A2 i" K3 V* i- w pLight->Specular.b = 2.0f;, C( }8 R3 e& f3 R+ x6 z3 l
// á?oˉ
4 {- Z9 \1 o, @1 U: G: H+ z pLight->Ambient.r *= 1.0f;3 Z" r3 z$ {# _0 ^) d' z
pLight->Ambient.g *= 1.0f;$ U: q$ o/ g& x/ d$ U
pLight->Ambient.b *= 1.0f;
) H9 a' H- A% |$ g& i7 z2 o7 t#else //__YENV$ e7 }5 M) q, Y+ \' O+ X, s
pLight->Diffuse.r *= 1.1f;' b2 m+ N0 }4 N$ V6 F
pLight->Diffuse.g *= 1.1f;/ D- P8 h4 S" O% h* ^' C$ E: L# F2 S
pLight->Diffuse.b *= 1.1f;" t1 K9 q% t1 X3 F9 ^: }
// oˉè* ??à?
) M* L+ f [2 i9 b pLight->Specular.r = 2.0f;
B" h9 e/ x' ?- v) Y pLight->Specular.g = 2.0f;) D9 s( J! \: C, }; t
pLight->Specular.b = 2.0f;& Y) X0 O5 e8 M. u
// á?oˉ 4 [7 M' X4 |2 W: `
pLight->Ambient.r *= 0.9f;
* H+ q- g" O7 R& v: s( u, Y0 ] pLight->Ambient.g *= 0.9f;
( X9 d9 g: e0 c* K" X pLight->Ambient.b *= 0.9f;
" |0 B% O, o" z1 \#endif //__YENV
k6 M& u& `7 X( X3 ^ " A6 K% v. A7 @* {6 q5 W/ ?) K% _1 s
memcpy( &m_light, pLight, sizeof( m_light ) );
' w5 H* O7 G4 H; z5 @4 \2 h. k) h
8 }. v9 A; `6 @6 i: y+ Q" ~: D3 H' f D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);" A! w, F* N1 |
D3DXMATRIX matTemp;
' s. a$ |* p4 k ]; l static const float CONS_VAL = 3.1415926f / 180.f;
1 c. v+ d3 P. j/ m/ O f- B* i
4 g# o+ V) D! L# E. x" V! x D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);9 }1 h. [ t! q
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
- M* M( T w& s2 [3 C* g. r6 \ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 3 Y+ `# R$ o/ y2 y$ H. u5 |& Y4 q+ A
pLight->Appear( m_pd3dDevice, TRUE );
0 ^' U# a+ d+ B- H8 H+ w: y' V9 m$ f- Z! G' O, t
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
1 i: h3 y+ j2 e1 ~$ K% X1 j* j9 F, n/ q // D3DXVec3Normalize(&(vecSun),&(vecSun));8 ]% d) S4 J9 l$ @( [5 k
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 7 v, v5 W' ]6 ]& }! }
2 ^% d) j, m' ~* z* a DWORD dwR, dwG, dwB;, B4 @' m; u6 e; h" ]' b- e( o
dwR = (DWORD)( pLight->Ambient.r * 255 );. ~# ]2 ~5 G9 F! Z
dwG = (DWORD)( pLight->Ambient.g * 255 );
# R3 y" C2 J( N5 L1 y! A! L dwB = (DWORD)( pLight->Ambient.b * 255 );
2 Q4 S/ {+ G, u% V1 J) q/ X& g: o dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* h! \6 b# R2 F' m' Q4 O }
) [( o& X7 v/ W% S, C; b) | }) ]9 q# w1 G. _" u2 l
: z; ?+ c5 u$ O d' k0 J/ X. j- t
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );1 r) g6 {6 B, X6 _: S
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) );4 k# y$ Z, K% r' b1 J$ ~ x3 X# ?- \
::SetLight( bLight );
/ B1 x( K* F" l' B- }" f: r2 Q+ [; r. A
// ±ao? ?D?í???ó á¤à?
* p o$ o' C: {/ b* Q+ u0 ]7 P* Q m_pd3dDevice->SetMaterial( &m_baseMaterial );+ g1 R1 x1 ~2 J
' L* m- b1 _3 [2 g [
#endif // not WORLDSERVER
/ W" l5 `3 y: r5 R" P}
4 U4 A H0 }' v. C+ s3 s" f7 Y- h并更换
6 U" B; k& G, |8 x5 C$ z" B# m) ], JCode:
- e5 {4 b* ?; Y/ C# S__FLYFF_INITPAGE_EXT, r( t. s( Z, l6 c
定义* B$ R1 h$ m7 ]: ]2 A
7 Q( I' X; E4 v7 m1 `
0 Q8 r- ]$ w' w* o/ b- Z
( N4 ~8 z$ m* ]: f+ k% v
$ O# t! l/ p. M: h0 N8 C
现在终于删除我的狗屁加速...: D; s7 Q x! w/ I% N+ U
+ E+ ^* K; @7 v" n8 m- P5 f/ d ], {2 w @
$ t* i" J5 U; D9 j* G7 V$ I7 n |
|