|
|
食品车:
! E P0 o9 q. q. ]+ J9 [4 ~( i尾翼:8 Q- v4 m, |' k7 J0 ]/ X
7 m! C" L5 k1 D* E' `代码:0 l0 _" u, C* v- n. f% W
CWndAutoFood::CWndAutoFood()% b/ G* T- o1 O X
{- D* h. A3 B- z( O) B! Y: O" d
m_pItemElem = NULL;
5 L# E$ G# P) I' {+ a# n# b( H% V m_pTexture = NULL;
! |' `7 l+ D6 J" e+ v5 Y% u- N- O- Y bStart = FALSE;
8 \( Q5 k# e; W2 S n' o* l i}+ v5 F/ E$ d% k: o8 K# f0 N+ m
" [, R! j5 M- a J/ ~' GCWndAutoFood::~CWndAutoFood()! P y3 G. m/ a* C
{* R9 W- E. y2 V2 t) m. n
AfxMessageBox( "AutoFood ist gestorben " );, L3 N- I5 X o, G+ o3 f& v
}
+ M2 r1 u! W/ W3 m* l' W8 ^& I0 eBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )6 M; F' w; b3 ^) a
{; J% K4 C( w2 `5 Q' y! z+ E
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );- M% ?. c; V6 k+ |5 F
}* |, x# p' I! V/ J5 t$ b& r( ~. c
! b+ V/ Y% V0 }! oBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
3 G R+ I. I0 r; a( ^) C* {. A{6 ^+ S% t6 X4 K' Y& k! n- j
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );" ^6 n. t+ R7 \) y
CRect rect = pWndCtrl->rect;0 s$ A l6 r) |! x, t
if( rect && rect.PtInRect( point ) )
) B! ^! ~- {5 l4 j {
% C; t1 t9 R8 }' L: S2 ] CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );% ^1 c) f/ W: ^* Y
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
/ Z- B# S* _4 v( C* X+ @" W {
& J, C% V* \" D1 _4 S if( m_pItemElem )$ ~" H2 o$ M Q8 j# B
{5 ]6 w( G, S0 a) a3 S
m_pItemElem = NULL;! s7 p4 _ j: w# E/ S
}( G2 z: i, o" Y! S
m_pItemElem = pItemElem;
* N7 g8 R) a% o; ]( }7 d! E- a# C m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! ?$ w& U. x4 w5 d/ B4 W }else{
) R% U4 ?7 r( V# H! Z* l) Y: [ SetForbid( TRUE );
& ~3 ?: S! Y0 A" m$ B3 c }
: H* P( A! j5 [- P9 a! D }else{
, E5 F5 G' A& s2 p: o0 G0 @ SetForbid( TRUE );
) Z W4 C% N2 {: |% Y }! z3 `; `* P8 X' Z0 i
return TRUE;
- O4 k) b5 k3 X3 q: P+ p}! ~' }! A6 e, x7 v6 w
9 @ ]$ R8 x' y# H( y; G& D
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 C |5 E5 j& O+ E( ^
{
5 \3 ^! | `9 e switch( nID )- `+ S: O0 z1 r: N8 [4 ^, C
{* ~. G6 y0 S6 [
case WIDC_BUTTON3:4 g& E7 ?' k2 Y# ^% h1 g* U0 j% S2 n
{' r: D5 p8 r5 i+ [3 M2 Z) W1 f
bStart = TRUE;
6 i" T4 D0 g) q break;9 y$ l% _( N, ?4 j
}; Z6 R. m/ `! ?8 ^+ F* I
case WIDC_BUTTON4:
6 @1 D7 h) \1 f: r1 ?6 K {
7 r# ]. t$ I( G/ r$ _6 s bStart = FALSE;/ I# t" G- B9 `( J, j+ L
break;
% M5 X: {9 g5 H3 _) @5 z }
# M$ e/ I) T6 z5 v1 u4 _+ m" U }
% w: J$ {1 J3 I/ p return CWndNeuz::OnChildNotify( message, nID, pLResult );: Y2 p1 v+ [" s3 r, O( ~
} 3 y2 ^ |( X" ? j4 x# V& S4 s1 w( g" [
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
- N5 ^& ?8 U' Y! O0 h2 F{
! O6 J% B- s4 y3 t) \' j6 @ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 ); u d4 Q% q7 ^# q! p! M, ^5 r
if( bStart || !m_pItemElem )
, a3 z4 u) r, E2 N {. l; p; k' L1 C% o' w2 C. @
pBtn->EnableWindow( FALSE );
h. q9 q; }5 a1 B& V. V- Q( d2 ] }else
1 L& c* L P8 e/ t. [2 x pBtn->EnableWindow( TRUE );1 [+ t5 s) N, Z/ G9 n
if( m_pTexture )7 J1 s1 X3 o- {3 f, ^. U
{4 _+ |2 J f2 v1 P
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 ^. x1 F/ |$ M6 t& x8 x6 L1 S
if( wndCtrl && wndCtrl->rect )
& K0 k; s# e8 l0 T) d4 A; W {
( ]! {9 v% p6 F5 V E1 L) `9 _ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );0 r: Y) z7 q9 N: p+ S# G1 I
}6 K6 d& ^0 @4 A! t& ]
} l9 O5 U, y9 N R- S; Y; s
}7 Z& B* B- y" }* c3 ^$ l# g+ c7 I
2 t5 I* \, B; MBOOL CWndAutoFood: rocess()
, S% r0 C$ e5 F- L7 k' Z% e+ l. [{
% L2 E3 I2 Q) }9 N if( bStart )
9 A% C3 Q9 k$ o% {2 G+ ] {( s! k0 l4 b3 [$ ?0 r
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
( v; ]- P7 h' n8 B- X {
+ R: q" I. H0 Y" ?. _& V1 X if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )3 @0 E7 N L, E5 u$ ?, q. q2 L
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );6 `8 F: V/ p% e+ R/ d$ v
}else{
' f) B& Z7 R! y( T2 q' W0 u7 j bStart = FALSE;
# O3 u" H: w7 e( e1 w m_pItemElem = NULL;9 Q& Z- L6 P! [4 \! I/ s
}
' T6 M- E- {1 O T3 h* w3 C }
, N* @0 \$ O6 G return TRUE;& F( A% X/ d, \1 w p8 d
}
N6 t" T+ J2 O! D& j) ^
5 `# w5 b, E3 ]7 _登录视频废话:8 L, l5 v+ N- h! J/ F% L5 T4 u6 c% X
尾翼:3 [1 w/ C. u2 Y, Y- {) ^; q
. c7 y6 N4 J# [9 n. {
代码:
" D6 V ~: ]( v
0 Y( {$ `! s4 ^! _2 I( uvoid CWorld::SetLight( BOOL bLight )
3 `6 R$ _1 T ydurch
; m1 L" O8 }) B) L" nCode:
0 J i+ p9 [- ]* Kvoid CWorld::SetLight( BOOL bLight )& T% X0 }5 Y# i# B1 X% ^( ^ A, l
{
2 r6 a. l3 R: n! m; d //ACE("SetLight %d \n", bLight);
7 n: b. M/ ]6 [( I7 |6 m: x8 C
5 I; b. u, u1 l: h; s#ifndef __WORLDSERVER
. _4 x$ D* ]: I. B2 G DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
% Z! I- p+ P5 T/ [; Z# b# ^$ L CLight* pLight = NULL;
- Z, T. [6 p+ z* S0 C4 B9 C4 Q
/ ?, C) h5 g8 o; _ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); `( [' r& l) K9 S% J- ]
9 u1 z* u5 l8 B% }$ O5 D# p$ D pLight = GetLight( "direction" );2 C; W6 g1 ^! ?; }* I' o
/ A; @$ ?' p$ b2 v* X0 D" B3 }- h#if __VER >= 15 // __BS_CHANGING_ENVIR- y6 o5 d( \5 ?- D$ N% y
if( g_pPlayer ){9 J3 G. T) z( K: [8 P' l ?+ |/ m
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );5 r+ v+ B, j/ B- X, o$ N+ r: {
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 d# Z" K) v2 e8 ]
{
8 P0 { E1 p4 s, k if( pLight )
, b7 ^8 }2 p/ r K: W! J$ h g {
! T, w# c4 D0 y2 L4 M pLight->Ambient.r = pInfo->_fAmbient[ 0 ];: t$ R! W" x) _& d; i) u
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];; z k* `# c% |
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];0 ]7 o7 W2 S4 x. s- o% |
3 C0 x0 Y4 i1 q7 j pLight->Specular.r = 2.0f;% r) G0 C) }, e
pLight->Specular.g = 2.0f;
0 ]! m3 @6 z1 r/ g; b2 c6 J5 g pLight->Specular.b = 2.0f;: S$ I( A7 Y, S) q
e6 b# V; ^7 I2 Z# k
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
+ ]% I7 K/ C/ ]/ {6 q8 W: g) C, p( ] pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ]; K: N b9 P' {4 h: @2 J7 U$ f
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];! l* K9 ]8 _* m
& ^0 }) [$ Z# H" K& G! M; s) [
HookUpdateLight( pLight ); - }0 {! e; C9 ?/ d& i$ x- g
, q6 B# _( ` _$ z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 Q; R. \( a$ M ~# w - o7 C& G5 {4 E0 \6 i- g
pLight->Diffuse.r *= 1.2f;1 o5 x8 T0 x& H, v$ U
pLight->Diffuse.g *= 1.2f;4 x% I( S$ r# B2 j7 C
pLight->Diffuse.b *= 1.2f;
7 D v; U1 s; R7 g# M% ~, ^
- B8 F' D# W5 N+ u% U8 W pLight->Ambient.r *= 0.8f;
7 \9 T* ^# P. t S pLight->Ambient.g *= 0.8f;4 o d$ h' M; a; Y6 I
pLight->Ambient.b *= 0.8f;; A$ K* p, q1 ^0 j
& A( w! G% N; ~- z% ]
memcpy( &m_light, pLight, sizeof( m_light ) );" a' o3 j8 u/ \1 Q
) g, V0 {, [* |( J% o% V2 h4 M3 q D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f); j6 f6 ? ` j2 O2 h; F
D3DXVec3Normalize(&(vecSun),&(vecSun));$ ^6 O% u3 ?8 O6 Y# K% R
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); % m9 |! q) A& l, {' T+ Y1 |
pLight->Appear( m_pd3dDevice, TRUE );+ a1 Q' x3 q8 n4 c3 H" h/ d: X+ z/ I
2 V" h! a7 N% T7 ~; S. W3 \
DWORD dwR, dwG, dwB; P) g9 S' I2 _) T$ t) b* p. d- P
dwR = (DWORD)( pLight->Ambient.r * 255 );
7 Z. h# e% m+ Z6 S+ c2 k+ t+ K dwG = (DWORD)( pLight->Ambient.g * 255 ); ]6 J8 ?3 ?8 M& E2 ^/ r2 c
dwB = (DWORD)( pLight->Ambient.b * 255 );
L) z i2 F9 A6 N' Q+ { dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 w. n0 ?$ }3 x6 k8 \. r/ J! M }
. X( X+ T% u" A& K b% L: r) E3 \ }
& C! T: D* m; k+ ^$ Q B+ [ }5 r) {+ f- D; o% M7 Z+ j/ \! _; {
else1 ?8 [/ n/ |( I5 T) ]* [
#endif ( S) {7 e1 E% V+ Z2 ~# o6 {/ R
2 a n# B% H e7 ?; {5 e+ n
if( m_bIsIndoor )
& `3 ^# H$ N& p$ i+ Q! M* ^; Y& ^ {
- o9 {) c/ o2 I& q- A/ } V* g& [$ e5 j if( pLight )! N% _0 J& z3 A4 [, ]
{
( Z: U* ?& K5 t* O; f4 f // à??μ oˉè*
: q0 }# ~: q& k5 w9 P3 J E pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;( j" P/ R8 Z* T! ?
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
3 C4 T! a b8 y' q pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& u7 Y6 v1 t. m1 \ a. Q0 g
% f9 v5 L1 [+ M" J- }$ Y. X // oˉè* ??à?
M6 g* Q* z0 u) s2 B2 ^: z pLight->Specular.r = 1.0f;8 Y) a0 g6 k! B1 Y: _9 Z6 C
pLight->Specular.g = 1.0f;. D- f4 j$ X+ i! U C
pLight->Specular.b = 1.0f;7 i8 r8 ]6 j$ q& B5 a |
// àü?? oˉè*
3 k' h( x$ N$ E. z pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
$ s6 ]& D8 K! v% J3 d: x pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;& k( x" e2 ^, G2 [
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;5 B* Y$ r0 ]. ^ ]+ ]" E* F
& G5 d% g$ H7 q+ q, m4 \4 N. Z# [ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
# r8 z$ n- F& Y! r7 U' M: L9 S7 `, a2 }( U {7 Q2 A$ F6 z; Y( P+ A7 j* Q" ]; N( @8 G
pLight->Diffuse.r *= 0.6f;
" F5 Q% k: a y9 I | pLight->Diffuse.g *= 0.6f;
& M, R# F9 q v/ K& I# `' Q pLight->Diffuse.b *= 0.6f;
9 s5 ?( q: x" B1 `/ B# ^; N pLight->Ambient.r *= 0.7f;$ B# H+ }) r9 X# K2 B/ c9 z: D
pLight->Ambient.g *= 0.7f;
g% y/ z M; H2 I pLight->Ambient.b *= 0.7f;
8 J7 i: D9 a1 g9 \: @ }
4 x' k( [5 L x' A4 U# [! I7 q% d: s7 `" H$ H( d
#if __VER >= 15 // __BS_CHANGING_ENVIR
* I5 N4 E+ w$ L" t6 H if( g_pPlayer )/ ^9 y, q# y" D6 i! [" w. ?
HookUpdateLight( pLight );
. e* q' B0 p4 t4 S. X; S; S! M#endif. @9 c8 q: b: h2 U" e
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; z* K9 W" D1 u
) h0 T/ S. K6 v+ ~ pLight->Diffuse.r += 0.1f;; ^4 t) r, }) x4 O
pLight->Diffuse.g += 0.1f;9 } k8 M, S( H
pLight->Diffuse.b += 0.1f;
# q8 X6 l2 k: s6 _& ]# f // oˉè* ??à?
' z# p2 Q( O7 `* N0 J9 S- O) K/ D8 h pLight->Specular.r = 2.0f;
k% g1 g( [$ c. Z( S pLight->Specular.g = 2.0f;8 u/ d: L$ d: W9 ?% ?: M& x. s
pLight->Specular.b = 2.0f; X9 O( l5 ?! p
// á?oˉ R! T* z6 l, c5 r$ [& ?
pLight->Ambient.r *= 0.9f;
' S& z6 }) y8 n' g% a pLight->Ambient.g *= 0.9f;9 k; Y) Y b) j
pLight->Ambient.b *= 0.9f;
1 n9 G6 [0 P2 F
& p F- V4 n: M, V( _ memcpy( &m_light, pLight, sizeof( m_light ) );" z" ^( `( S% \- @
3 s5 s6 t9 ^& k7 O! j- c
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
% S! A& T C0 `9 L pLight->Appear( m_pd3dDevice, TRUE );
4 W9 b( }, j3 B' g ) O; a4 O0 K- z" F, M! _
DWORD dwR, dwG, dwB;- p( v/ x- H9 s4 d* c
dwR = (DWORD)( pLight->Ambient.r * 255 );4 x8 f9 {7 g- V7 E3 |
dwG = (DWORD)( pLight->Ambient.g * 255 );8 W9 p! ~. u4 P* t0 q+ |0 |
dwB = (DWORD)( pLight->Ambient.b * 255 );
. {& i: q& j5 [: k/ j1 h( R dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 l2 D5 j/ Y9 v- h, O% H: \2 c
}! B; |. H D3 s
}1 ?9 f z5 K+ D& b
else# v# j8 y* ?2 n; L" X" P# @* y
{
9 x& X- `- Q, G+ |" n! q if( pLight )
+ J$ B/ P; T( f5 c v {8 p3 U9 L. I- G
# b, L; Y% `( p, |" ~+ }2 M
int nHour = 8, nMin = 0;% H/ i9 a) `5 r% B
#ifdef __CLIENT/ V! G( V# @* B. O) B
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 0 B( I" j9 v1 S; q
nHour = g_GameTimer.m_nHour;
2 A$ r4 ]8 x4 ?3 W nMin = g_GameTimer.m_nMin ;! d, x5 o3 G7 V& s6 a
#else
: N# r7 b; H) U1 V // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
* B' c- ~, m0 x5 M* n6 E if( m_nLightType == 1 )
" u& Z4 p8 d) j nHour = m_nLightHour; o( _7 M I0 D7 ^2 p, }
#endif
/ D; r* T# h/ S* w' N5 H2 l' } nHour--;0 [5 I6 {8 W* c8 } {
if( nHour < 0 ) nHour = 0;9 p" x# s- [0 } d% U
if( nHour > 23 ) nHour = 23;
( u/ y( Z- m( j5 A+ m( @! o6 X% T; F f
//if( m_bFixedHour )# Z( p7 B) o* V" f4 r' z5 ]
// nHour = m_nFixedHour, nMin = 0; f( P0 u7 X% z& A
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
: e3 b0 G/ C$ D6 }% U; R) v LIGHTCOLOR lightColor = m_k24Light[ nHour ];
8 G8 I6 v5 ]' S! `" f/ F8 y% E, O+ f7 f( @
//m_lightColor = lightColorPrv;) H4 }6 o4 U- K7 y7 y
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
/ k4 ^: j% U/ e- E$ p1 T1 V$ x( H lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
8 k/ ~& q* r( f3 {. f7 G# U lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;5 @2 A/ c; p7 C6 h- N
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 C# q: B% S- k# O! {
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
# m0 Z/ q6 a. x6 z( ^9 } lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;* P4 E2 N, A$ o, l' e6 d3 p1 \3 o. h, {
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
, F- r$ ]9 o& v6 X* z3 e; G. J m+ E8 M/ s& y. }0 w
// à??μ oˉè* \! C. o, n: r# w
pLight->Diffuse.r = lightColorPrv.r1;
& \/ Y9 S) W# Z7 k' `7 j K/ P( m pLight->Diffuse.g = lightColorPrv.g1;& K; {( c0 Y2 ~8 Q# Z9 w
pLight->Diffuse.b = lightColorPrv.b1;: v- R9 G' d. |1 b( {" v$ t
// oˉè* ??à?
/ n5 H0 k( Z) s5 A! L pLight->Specular.r = 1.0f;. B, }1 L f2 Q& W( u' f5 {( ~% `
pLight->Specular.g = 1.0f;
2 N4 v4 y% ~/ {+ ~ pLight->Specular.b = 1.0f;
5 M* d& Y3 w; T! l" y/ z // àü?? oˉè* / D" X$ z( w, ^. v3 k! M& t
pLight->Ambient.r = lightColorPrv.r2;
" {( {; i2 N1 Y6 |4 V I. F- } pLight->Ambient.g = lightColorPrv.g2;
3 k: e% F0 _( I0 X+ s pLight->Ambient.b = lightColorPrv.b2;% ?7 @4 n/ ^& k1 W; W
4 q0 N B7 S. D
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
& n4 Y, ~4 o; ?, \ {; M, L1 r- Y& L4 K2 p
pLight->Diffuse.r *= 0.6f;
; ]" u8 S9 W2 m pLight->Diffuse.g *= 0.6f;# M; Y/ m0 [! j; f
pLight->Diffuse.b *= 0.6f;! r. b3 y% F* B$ K2 a8 k* G7 G
pLight->Ambient.r *= 0.7f;
( P5 D+ Z) i7 ` pLight->Ambient.g *= 0.7f;
# b+ F# l2 }# p* }. z; {* P pLight->Ambient.b *= 0.7f;' P* L5 _. v: B9 ]3 {! o5 ^
}7 _0 ^# }/ w9 t
. L+ h8 Q* }, N9 V* i+ k
#if __VER >= 15 // __BS_CHANGING_ENVIR+ t8 X3 d( U% j7 i" I
if( g_pPlayer )
. L: J" y9 ~" `4 ] HookUpdateLight( pLight ); e1 e% Q& w V
#endif
+ ?7 w6 g$ Z, A. z, K& t memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 ]- A' a5 |9 [2 R& d' V0 u6 M" |8 r4 R, {) v
#ifdef __YENV
: d) V b* @1 A3 Q- _7 e3 C. r. { pLight->Diffuse.r *= 1.1f;
" q3 X0 |+ {2 h2 Z' S$ `4 ? pLight->Diffuse.g *= 1.1f;
H: [/ F; {: a( \7 T0 ? b pLight->Diffuse.b *= 1.1f;
; |% f. B2 n( G* `5 M // oˉè* ??à? : T3 ^' ^5 q+ ?
pLight->Specular.r = 2.0f;
4 D; q; {2 g% r* C( } pLight->Specular.g = 2.0f;; \, f) s$ K( F) Z/ n
pLight->Specular.b = 2.0f;
; m+ Q, ~4 F# @7 b! S // á?oˉ 4 I0 y1 ?2 G+ m
pLight->Ambient.r *= 1.0f;# O; j, m3 D* m; ]3 X ]
pLight->Ambient.g *= 1.0f;; r# ]% `# `' g5 n- n7 H$ r$ V
pLight->Ambient.b *= 1.0f;
) Z9 }0 W6 m( o `+ k) v) ]#else //__YENV
1 C; f5 C# ~/ C* ]. w pLight->Diffuse.r *= 1.1f;0 B8 [" ]0 h s" ?
pLight->Diffuse.g *= 1.1f;" T9 J; |3 O2 O# h8 d: z
pLight->Diffuse.b *= 1.1f;, \: i. p7 ~0 a
// oˉè* ??à? ( }, ~: h1 u# ^7 V
pLight->Specular.r = 2.0f;8 V$ E4 `1 v- |0 r' w
pLight->Specular.g = 2.0f;0 W _9 Y4 x8 u
pLight->Specular.b = 2.0f;
. J* g; a! y2 m7 d# Y# y* l$ Z // á?oˉ ; S+ h( e9 a% K: F% u2 L
pLight->Ambient.r *= 0.9f;
/ J3 O' v9 ^" k+ _) U& J pLight->Ambient.g *= 0.9f;/ O6 H+ f0 x; u! c+ \& C R; t
pLight->Ambient.b *= 0.9f;" F# B b- @" }8 M0 ^- x( h
#endif //__YENV 6 @! r7 Z( h7 g" N3 ^, M$ R5 m0 [$ l
& ^) e2 E& J3 b
memcpy( &m_light, pLight, sizeof( m_light ) );2 o/ z' l0 @: g8 m
4 @$ A5 C* Y7 ] D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
) ^# \2 e7 n9 [" l& ^ D3DXMATRIX matTemp;. L2 H" P! G- @- }2 @, c
static const float CONS_VAL = 3.1415926f / 180.f;
; h* T6 S- e/ C7 l' G' N: c; F# K# \) J( p& j! j
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! X( [) P: N$ K D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
; n" a1 J- Z( g) F+ q! `6 h pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - y3 d4 P) w2 `7 L
pLight->Appear( m_pd3dDevice, TRUE );. c y! f6 j+ ?
' m9 E9 V' S" Q
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 y1 X: j$ Y; T4 k( M8 I
// D3DXVec3Normalize(&(vecSun),&(vecSun));0 B$ o9 _/ l% H; R# a- f6 M. c( n
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 }- [5 f" Q% ]! g3 m
3 D1 Z& y$ D$ I/ V8 ^' a' l. C5 } DWORD dwR, dwG, dwB;* i( l' Z2 e$ M9 J! n
dwR = (DWORD)( pLight->Ambient.r * 255 );( x0 C w4 b* |/ a# T# b' b
dwG = (DWORD)( pLight->Ambient.g * 255 );7 T* S1 k' h+ E' c- c% Q- F* u
dwB = (DWORD)( pLight->Ambient.b * 255 );! L5 J. g4 w* ~" |+ G6 o
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- {. l( X. f; z. [. v5 |; @# { }
2 Z8 }8 C0 M9 H- p8 {) K }
3 I4 K# j0 e" i) N8 J! C7 ?. w) V% V8 E( T
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight ); _6 ^) a; Y3 b+ c2 `
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) ); m% E$ @# _, e5 A' A* [$ w
::SetLight( bLight );
3 E1 [5 u! @1 V# ]. I0 m4 h5 r2 t
* l# v" ^6 L2 V6 g2 {$ {, ^8 U' K& _ // ±ao? ?D?í???ó á¤à?
- p& v" E4 B) W2 f m_pd3dDevice->SetMaterial( &m_baseMaterial );6 I ^/ `7 K! }( n. m/ }, w
5 k' U5 y1 r& M3 Z
#endif // not WORLDSERVER
7 }% F- [& R- p0 z% W. \3 |9 |}; o5 I R1 H1 f+ L1 K/ ~ {
并更换
, T+ R! o/ U* g; ], x7 H; Z* VCode:; |! b9 H# y0 _% D5 K
__FLYFF_INITPAGE_EXT
% B6 Q) G1 R2 P4 W8 Z5 v1 x* P6 E定义8 V }9 q' `+ s ?0 h
' ?: y, S* n( r0 m, E9 b8 w+ H1 ?) m, t/ _% b. `
% n; z4 J9 L3 o. }5 F: \% o
P6 \# @ Q. w现在终于删除我的狗屁加速...' C( V5 Z- H3 T2 K
& ?, B; L+ u& W& y, p: |
& M+ [( a1 P5 H& o6 }7 H" }$ r8 t( a
|
|