|
|
食品车:9 Y( v" H' m0 p% J$ V. V+ @
尾翼:- w5 O; h4 U; r, k5 o* I
) M% B5 ]. M- U' z3 |
代码:2 b; z# y+ T; Q5 a. D, [
CWndAutoFood::CWndAutoFood()
0 e7 [$ z) Q5 ^/ Z) U7 _; r{
) G3 ?3 u. U) `6 D, D( e) A5 \ m_pItemElem = NULL;9 I4 }3 o" x/ y* F! ?+ r" f
m_pTexture = NULL;
) E/ D3 e" K0 p. u bStart = FALSE;
5 S- l, Z3 E) |0 C}
$ v9 c2 ~3 z5 R) L& t5 G& d+ ]
7 K5 t2 H' B( ACWndAutoFood::~CWndAutoFood() X4 ]0 Z$ a( y9 C8 N
{4 |3 h$ F) S3 V2 _3 `7 _; m/ S
AfxMessageBox( "AutoFood ist gestorben " );) X, m; e" L# Z5 P: t
}
7 Z7 t; v/ w" [$ C6 }BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )1 I3 w, M9 X2 Q
{( Y7 \& \. s' @
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); s: W# t s. t! j9 A
}. I y0 G$ {* B' U
7 p( E* r$ N+ [% Q( IBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
" k" }$ a, n7 k* F9 {{
* u# {, P" W$ q; i9 V* C0 D LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
8 T3 w3 }' Y% v. A9 a CRect rect = pWndCtrl->rect;
! D* \! }- U5 f% g0 a if( rect && rect.PtInRect( point ) )& N8 H$ C% }) L# }* n( g3 j
{5 T7 u8 @" q# j( ^# n* {# `
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );7 m% |: a, f5 U! c1 ]/ `
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )! Q0 @' a7 S, S8 t8 B& v4 x
{8 V/ z, e7 t) z6 p- H6 q
if( m_pItemElem )0 j1 { ], a* z q( F2 Z8 F% O5 l8 o
{
& c( B* U7 x- A: [! n V3 q% c: @ m_pItemElem = NULL;4 i* @6 K: A$ L, G6 Y) z
}
, W# A9 \. K) [% _" L m_pItemElem = pItemElem;2 J. U- Z+ a: w; P D4 w: A
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
/ G7 R: I0 V$ b# h# p! C. @ }else{5 O& B T) d0 i8 M7 s
SetForbid( TRUE );
9 P0 ~6 B+ s0 f# M: f8 }5 k }! l* f5 A' ?9 q. R2 U0 T3 @1 M! I% P: B
}else{2 E# M" f/ `) t( ^* u
SetForbid( TRUE );
8 Z( U; ]9 I; t5 m- [ }% x2 H1 N1 ]9 g9 S2 T
return TRUE;- U( r E4 y: Q& P' Z6 N
}
2 i @- D( @7 `" L; S* B/ [4 O
) C4 } }& @$ a$ B# xBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )5 q# I w! J; h, }& m) e1 a7 t
{
! j) |, S4 s! B1 c, h switch( nID )
( n! V' [1 }- D. x* j: c {8 ?' A H. P1 m1 ~
case WIDC_BUTTON3:% Z r) |3 a! S5 x5 ~
{
' J+ I+ K7 Q$ c+ E! H$ O bStart = TRUE;. p! S0 V- E/ `9 ]8 s
break;
7 U0 E# ?* b# N1 V3 Y }
+ M9 U: B1 t: g. Q0 t1 q case WIDC_BUTTON4:' i @, ?9 T1 Q g1 U) R0 h9 i" K: j
{
( Q; y5 l4 z z7 E; ]* x! }6 w bStart = FALSE;
& B; z p/ ?$ ^" }3 ~ y/ f: I. T4 q break;
5 a1 Y5 G T+ _8 e9 {' a- ^8 L/ a }
7 ~# G6 l: l) x3 w3 T }
7 B% D+ M8 n3 e& ~9 e: a; x# A return CWndNeuz::OnChildNotify( message, nID, pLResult );: b: A* o/ s7 m3 {% @# w2 w& I
}
+ @) I6 ? B0 L7 A+ Z. kvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )' d# a w6 I6 ~; `) N) ^8 W0 s
{ F4 x4 |4 [/ l: m5 r
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );/ @2 `8 d3 F. [1 k6 t2 V5 A
if( bStart || !m_pItemElem )4 U5 v1 X7 D: O: {
{, `$ R$ a( G+ ?; k2 d$ \+ N w
pBtn->EnableWindow( FALSE );% X: ?9 ]. E6 q. v
}else
4 ?0 I, N/ Q+ P' m pBtn->EnableWindow( TRUE );
\5 Q" Y8 X# |( [! }& M if( m_pTexture )* ^7 F+ P! g! {( \* e
{9 [. u1 T! j9 K6 B$ w' Q- k
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; N" _5 b- @& P9 T S9 b1 \
if( wndCtrl && wndCtrl->rect )
- i( C/ X3 P0 W4 R+ G' h {
- e6 v, N, h' u9 {: v2 t7 o; D$ L m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );/ G. N R4 X( C e# `% s
}. Q) w/ s. K8 z6 ~* ?! f4 U
}5 E6 i6 p+ y9 y3 |2 z& t
}7 w( p: n; v) h3 C- n# ~ g& w
3 r- t$ ?" G( J/ X) Y8 c% uBOOL CWndAutoFood: rocess()
0 g3 \/ F B& d1 D. F% k{
! `8 ? S6 w' {/ \ if( bStart )
7 y3 H; u, q* y% x2 V9 I3 n {/ v/ J) m1 n8 }* e
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )6 L( b1 g6 D! ^, y1 P
{& `) O# ^2 ^" c$ z2 h( a+ N7 H
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )( n- A3 A7 P0 k0 Q
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );; x P$ g8 t, s" t' h: ?: u
}else{& @0 q6 o: R6 ?. h5 F4 r; j! W, K
bStart = FALSE;
# E5 x' A" E0 \: K8 `) |& O m_pItemElem = NULL;3 v: Z; ]* |8 d2 h0 x6 ~. F4 a
}
" b5 k. R4 N. x+ `' K }, r9 J0 M" R. Z. g9 k
return TRUE;
e3 c$ Q; @' x0 Q4 D% {}
: H; Z c$ x: b e8 s
9 {) c( {9 Q9 i( P登录视频废话:% h( j* T% w+ i% U' I8 C
尾翼:
" \* Z( d% T: L, G0 o- K" h* j0 u% g4 v) l5 I9 X4 p
代码:
6 o6 i B& {* s/ c7 R& R
# h5 v% C! f5 z1 avoid CWorld::SetLight( BOOL bLight )
' F. R* G! [+ v( n- o& ?durch
3 Q$ `, E" K" Z5 BCode:
q8 e. A0 Z: _void CWorld::SetLight( BOOL bLight )/ X: B' B9 L E# r9 h9 W
{
7 e2 y3 D! E; u$ l' Z //ACE("SetLight %d \n", bLight);- z1 }: L) E6 v: R1 w
* K( k3 K. q( o) D8 T#ifndef __WORLDSERVER
: S$ L. F' C, @: [0 u DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);# Y$ Y% h1 H$ `1 P. E
CLight* pLight = NULL;: ]' {6 D3 l7 G6 f: F$ G
7 K0 k, M$ r. o D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
$ n- A* r2 z7 k0 L
$ c5 l7 d( }* C! i8 J; L pLight = GetLight( "direction" );* P5 A; ~5 U5 G G n: V& P Y
, n) f" T) R2 Q; X6 ~% P
#if __VER >= 15 // __BS_CHANGING_ENVIR
& P' k3 h5 ? }2 z/ R8 T if( g_pPlayer ){
6 E- t% a3 _. U, t* H" | ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
. v3 i! i) j6 F' b if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
9 Q9 d) _- [9 e! [; Q {$ _9 ]$ ^* H1 |7 S& g% I
if( pLight )8 n {% [+ G i" _( g
{
, n* f7 {0 y- n1 y pLight->Ambient.r = pInfo->_fAmbient[ 0 ]; R# e! w: g/ l) `$ D3 G1 q
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];. ]! A! v& h; M0 j6 n0 T0 e5 t% w# o
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
' {& j7 g9 J6 @' H n
, p+ w. v- p' C$ I r& p: B; m1 P pLight->Specular.r = 2.0f;; ]- Q! y3 o9 o+ E- W
pLight->Specular.g = 2.0f;/ X( a& Y& u7 ^
pLight->Specular.b = 2.0f;
( y" [5 _. X( y; f4 M
+ }6 }3 A2 R0 @( B pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ ^5 b& o5 _& y/ R pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
& M- [/ K3 u! I3 T) m pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
% K' w* p9 O8 O5 }! F
: F" K- i5 k* D1 R9 K HookUpdateLight( pLight );
) v& l$ X" H/ R1 @- r" E
; v1 W& J n( b+ A9 t+ p memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 n. Y& _4 l- v: ~! `8 D9 _3 c
: }- ~' Z. a) Z6 @& P pLight->Diffuse.r *= 1.2f;9 b$ l; a4 \" ^5 |6 t' i
pLight->Diffuse.g *= 1.2f;
5 x% e+ D$ D5 ~0 C pLight->Diffuse.b *= 1.2f;/ X, V4 |) D& m1 n( U
; \% K% f; T. S5 n# ?1 {' n1 c3 m. F2 S
pLight->Ambient.r *= 0.8f;
$ B) U# I' `, }! m# |- {9 J9 ` pLight->Ambient.g *= 0.8f;
$ N+ ^! `2 y; r9 a- F pLight->Ambient.b *= 0.8f;* ?6 b4 T8 j& x P' Q
5 U& o3 S- o6 X memcpy( &m_light, pLight, sizeof( m_light ) );
7 p1 h. L- u! i0 H6 |. M
9 P% l4 z/ Z, F1 g) x. r% ] D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 _6 A7 O ~7 A. R
D3DXVec3Normalize(&(vecSun),&(vecSun));
4 g0 g7 U9 n5 p' F pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
+ j1 Q) @0 I0 Z7 a) p" u' h pLight->Appear( m_pd3dDevice, TRUE );
& {7 Q7 g0 N% w * i. O% l; F& x) e7 O! O; k2 X8 t
DWORD dwR, dwG, dwB;
1 L$ A: L/ T5 q7 D3 J; C dwR = (DWORD)( pLight->Ambient.r * 255 );/ Z/ n! ]1 C) y% ]) K; w
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 ^' z6 Z' z, S2 w5 Q: { dwB = (DWORD)( pLight->Ambient.b * 255 );& a3 P3 q" q: E& n; Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. T! _) h$ }+ K% q }
: z) c0 Z* |# ^( y& Y8 ~3 h }5 e$ v4 ~2 x- z' n( \3 P
}3 A1 |/ J- h' ]' G" t$ Y( X# p
else, L; a: R2 o* _* @4 e) m
#endif
* L0 m/ o- N7 E" M7 r/ V7 x( u9 E; p& C
if( m_bIsIndoor )) G1 }. W, v& s$ ?( u. U( n
{
8 j9 q$ F' c {) ]& _3 v if( pLight )+ u# V) v ~0 L8 b- E
{ 0 W" y4 r: U8 ]7 ~; [
// à??μ oˉè* 0 J- I8 `# v0 Y2 _
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
) t9 H2 p# }7 `# l' }& k pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
( h5 U. \* G) _, I pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;7 Y! K' s3 H; e
, k [. c# a& d# V/ d // oˉè* ??à?
3 E' X. W" Y7 ^& F( L pLight->Specular.r = 1.0f;( j! x. M7 D3 g. d
pLight->Specular.g = 1.0f;
7 \- S' m7 }, r pLight->Specular.b = 1.0f;% w7 A3 h4 Q/ I) B& Z
// àü?? oˉè*
# f# ?3 N9 k- m6 I3 F) u }) i pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;% A9 y1 i0 H2 Q; S
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
5 l# C- o. O4 g" K pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
/ t: d7 B6 w' N5 c1 q5 m
1 ]0 ^/ [- ]$ l6 G+ u" b if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ _8 g2 Q- \# h' A3 b
{0 w$ ~7 s) a1 b- j) ^4 Y' y
pLight->Diffuse.r *= 0.6f;
, h" E0 X5 {' `) U. m pLight->Diffuse.g *= 0.6f;
) C: f: M- n9 e2 q3 J- j pLight->Diffuse.b *= 0.6f;
- K( w2 }' ~) `( Y pLight->Ambient.r *= 0.7f; Q, C% ?( j* K1 V6 q
pLight->Ambient.g *= 0.7f;
) Y* ^: h1 r% H0 q u pLight->Ambient.b *= 0.7f;1 q( `; \: A4 z
}
- S! ~1 I) ~3 F: `7 ]) C. h7 R1 u7 h4 T( S
#if __VER >= 15 // __BS_CHANGING_ENVIR
4 h! o+ f; s$ j; W+ z; S if( g_pPlayer )
, M6 a+ W$ I& N HookUpdateLight( pLight );
, |' g! _" u3 A ]* r3 S#endif1 O) e+ r$ H/ j& ?* j
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; a' R4 H) c* R3 K8 L* C- b) Q2 ~" e$ K
pLight->Diffuse.r += 0.1f;' J; M4 d' l8 j$ F$ @( r
pLight->Diffuse.g += 0.1f;
% d' [$ b4 p/ k$ i1 P6 A1 b: M7 @2 _ pLight->Diffuse.b += 0.1f;
7 \- f2 H: Z1 z. @: f) p // oˉè* ??à?
# m- U9 u! \8 v8 k# _( Y/ Z( F pLight->Specular.r = 2.0f;( k1 g# D0 S$ b1 U5 x6 t' q3 J
pLight->Specular.g = 2.0f;
( j/ }5 E, R0 {/ E pLight->Specular.b = 2.0f;3 v8 c1 u" F" Y( V3 j
// á?oˉ . l) b* }9 c. p% N! K
pLight->Ambient.r *= 0.9f;
; m- t$ L/ _$ Z d, Z, I% G pLight->Ambient.g *= 0.9f;
; F8 B' b( v M" h0 _# C pLight->Ambient.b *= 0.9f;
- L% t. z6 a# n# V2 |0 d0 H U
' [+ k9 x& V4 l$ k' n% ~ memcpy( &m_light, pLight, sizeof( m_light ) ); z3 q' b" W2 s* \- p. e6 p
0 c# g7 C1 R7 n/ a pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
% }" p, t* C: Z3 ? pLight->Appear( m_pd3dDevice, TRUE );
8 u$ H- Y! P' b. D* B
& B( z. k1 o2 d: ]+ b DWORD dwR, dwG, dwB; x( I; X# d0 q% V+ t8 A5 ?8 B$ l
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 A. Z+ b( @& J- M# t6 B; r6 x dwG = (DWORD)( pLight->Ambient.g * 255 ); d; {/ b7 w, j1 I& g& D
dwB = (DWORD)( pLight->Ambient.b * 255 );# I& @" G2 K+ E2 Z5 J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ ^2 A: M4 ~1 Q: I; O
}
5 c: w, |$ K! w }
" C$ }9 l( o$ g5 U' c/ R else
" M8 F7 r/ I) ^ {
B) ]3 r; S0 [2 ]9 U3 r' _ if( pLight )
$ O8 v; v9 R: y$ j! L7 t$ L {) e0 g& l' Z7 U4 @2 U) u
8 {4 I1 j+ T! h! g4 r
int nHour = 8, nMin = 0;
! t5 g1 O7 p; [$ w# c& R, K #ifdef __CLIENT' [0 ]6 x: v* ^$ L/ R
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
0 X1 R1 w+ _" Q8 }5 v3 ]6 ] nHour = g_GameTimer.m_nHour;
' e K, H9 c& g8 o2 E. _ nMin = g_GameTimer.m_nMin ;8 o; C0 ^# h# b! e! J" Q& D( U
#else3 i5 G9 z4 @0 K
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù." `9 o) u% ?/ p: \5 `/ M2 b, D- v
if( m_nLightType == 1 ) C5 T" K) g7 |. a6 c Y
nHour = m_nLightHour;; r9 I2 Z7 }7 q5 [/ M( r
#endif
; ?( O$ d1 c0 u" x nHour--;- m3 o* e) i o
if( nHour < 0 ) nHour = 0;
+ r8 P& T }; U4 K/ Y if( nHour > 23 ) nHour = 23;( g- n! p9 _( R7 y. N0 p6 ^
* }+ e5 W& t$ j5 R# f5 k4 F, ]! h
//if( m_bFixedHour )- h1 V) Y7 U& u: ?) t; f( G7 J4 m
// nHour = m_nFixedHour, nMin = 0;" _2 I+ c: ] L
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' b0 m1 Q& q# ^4 c0 `" h LIGHTCOLOR lightColor = m_k24Light[ nHour ];1 d" O4 L0 ]9 j& l4 _9 P4 D
, c, ^ c$ H6 a //m_lightColor = lightColorPrv;- @! a9 {+ L4 x$ x
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;- F9 q N% x9 f. D: @) H1 _
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;. @ |3 u1 D" W; t
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
K* N2 h' g/ v2 D) A lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;! F; g- v1 E' s. K0 u) w
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
4 D; i: p8 X7 v6 K" d" x' d lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
4 T3 g0 d- |1 \2 e // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
. ]: J1 D$ }! Y+ A# V. w4 U* N: g
0 E2 p @$ \9 x2 \, w* b // à??μ oˉè*
" k8 M( p- |) b' {+ w pLight->Diffuse.r = lightColorPrv.r1;; t _; U E$ a- {% Y/ t7 I
pLight->Diffuse.g = lightColorPrv.g1;5 U ]& i" O* o! z
pLight->Diffuse.b = lightColorPrv.b1;8 Y% T6 e) P k5 `# n! D8 d
// oˉè* ??à?
$ k( b& T) w! } pLight->Specular.r = 1.0f;
5 l; q8 n6 V9 ^( E6 l pLight->Specular.g = 1.0f;! n B! w8 k d/ {$ U! \% M
pLight->Specular.b = 1.0f;
/ E7 Q! Y+ C1 ~- n // àü?? oˉè*
. v* ]! g0 ~2 N$ I3 k7 \( k5 ]4 M+ g pLight->Ambient.r = lightColorPrv.r2;
: r& D0 s* W: a" T+ P5 ^) L A, u pLight->Ambient.g = lightColorPrv.g2;
: Q" l9 E" }8 \8 q" q+ \5 Q2 _ pLight->Ambient.b = lightColorPrv.b2;* \( t9 ~% B. a
8 d( D0 W1 U9 \. {! r
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??." [) v: V' K3 A1 C; \
{
) o, `0 a. _ @5 @1 C: p pLight->Diffuse.r *= 0.6f;
5 t% {3 d8 @! D; n, J! p6 b pLight->Diffuse.g *= 0.6f;. A3 u' H6 ?! k9 |' N- b7 @; w, Y
pLight->Diffuse.b *= 0.6f;
/ ]0 k4 W4 E+ V9 E pLight->Ambient.r *= 0.7f;' Z. L& A% I- x e
pLight->Ambient.g *= 0.7f;
& }2 U" s" l" s/ X" y2 M; G i pLight->Ambient.b *= 0.7f;: y$ j- w `' N" Z3 a: b6 {
}
/ W# P2 j5 E+ g
+ n# k$ c+ B3 i; [$ U4 ^+ t#if __VER >= 15 // __BS_CHANGING_ENVIR, p. {4 M; a0 e" @
if( g_pPlayer )
- o& k& y6 N. ] HookUpdateLight( pLight );
: L, \' E# q, s0 N4 I( k% o9 `% F#endif
7 \# n) z, d, x& a' R; O memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: o+ t! g8 Z/ P
" B: D w1 Y" N1 K; ]
#ifdef __YENV
8 w/ B1 h" D: z2 Q/ Z8 q pLight->Diffuse.r *= 1.1f;8 \! Y9 w( Y. g4 d5 g
pLight->Diffuse.g *= 1.1f;2 ]. O8 S" |( @4 T
pLight->Diffuse.b *= 1.1f;
7 {& g9 h! W: |1 c$ H. a. j // oˉè* ??à?
7 m6 K1 z6 F( S, I3 J# k& o0 B4 J pLight->Specular.r = 2.0f;
+ L. h: ^# z% K+ X4 ] pLight->Specular.g = 2.0f;
z3 l, G0 u8 I8 Q% E/ i pLight->Specular.b = 2.0f;
, |' B7 K% O3 H // á?oˉ . S& d4 b3 I& ?
pLight->Ambient.r *= 1.0f;
! s }0 G: J8 Z" b9 B pLight->Ambient.g *= 1.0f;' ]4 D1 y) z0 Z- a+ y i
pLight->Ambient.b *= 1.0f;( ?! _) v B% U% F6 y
#else //__YENV* f8 y, I5 O2 H0 Q1 ~
pLight->Diffuse.r *= 1.1f;
1 k2 N4 o2 ]& M! q- v8 H pLight->Diffuse.g *= 1.1f;! S2 m0 b" x* r: i7 h
pLight->Diffuse.b *= 1.1f;
! x& r2 k. d# g3 w: M4 s1 N2 h // oˉè* ??à? 4 |: _7 n4 O) ]! I* C. d9 S- B
pLight->Specular.r = 2.0f;# |6 j7 N: f3 I# m% }
pLight->Specular.g = 2.0f;# a. H6 w5 X9 P3 }8 y
pLight->Specular.b = 2.0f;
# H9 m& G5 f7 W# O // á?oˉ
" L, F( e# M/ W3 x5 m pLight->Ambient.r *= 0.9f;
4 o+ |8 n1 {; Z" e) A pLight->Ambient.g *= 0.9f;
" ^% f% _3 e4 z+ l/ P pLight->Ambient.b *= 0.9f;# g6 \8 [( p* z
#endif //__YENV 9 r$ {1 J' p" j8 M2 P' x
2 D5 q7 r/ ^- f2 |! H memcpy( &m_light, pLight, sizeof( m_light ) );
9 f# l2 B; m) u$ P9 g 5 ? A; V. D! w/ d
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
( i; b+ R6 b) d! y D3DXMATRIX matTemp;; V- u2 R& |% Z' z. a# c
static const float CONS_VAL = 3.1415926f / 180.f;
: o8 }1 e" I& D+ F+ ^& T5 M/ T: y4 l! F
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);' u8 O# Z: s, K* h
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);* d. S$ y6 r; ]/ y
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
: u# Q1 [: X1 T+ p pLight->Appear( m_pd3dDevice, TRUE );
, M, T$ S& t: q' ^ D
& ?9 \+ Z9 C! z* J& l // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& Q ] c) }3 W8 r // D3DXVec3Normalize(&(vecSun),&(vecSun));7 n0 W' D: {% k/ Q
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; u$ \" y5 x, N8 H
( C7 g, m9 r8 C# A. v# F- } DWORD dwR, dwG, dwB;
8 |' C( Z/ T0 f4 v dwR = (DWORD)( pLight->Ambient.r * 255 );
2 U8 L4 o6 X+ v( H8 L dwG = (DWORD)( pLight->Ambient.g * 255 );
* H6 k. e1 j# X3 `7 K6 T dwB = (DWORD)( pLight->Ambient.b * 255 );
# V9 e1 t6 I, w& d. k* a" d! m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' J$ N- U2 |# K! y }& K5 Z5 z* G& V- H# a
}
, z4 C" z9 D V& j+ a4 U5 w
) V+ z X) x) T m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
% ]7 }! _# D6 _; K$ c% q* T c 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) );
% `( A5 @) t! `& ~4 O& x ::SetLight( bLight );
3 k1 e1 W, @8 O! X
y( O% h o$ s( i: q4 Q) {7 y // ±ao? ?D?í???ó á¤à? ; Q, f. v( `, b8 s1 m0 o
m_pd3dDevice->SetMaterial( &m_baseMaterial );
; i8 l8 F0 m; M0 z3 _) T7 r& P : ~1 a( o5 R4 D4 q$ Y9 R0 K
#endif // not WORLDSERVER
) N9 G0 h; b+ r' P7 M' Z$ b( z}
! B; S$ ~ T# Q并更换5 p' [ n+ c3 ]& C0 x. l
Code:) e9 e5 x1 s2 l0 r, z c
__FLYFF_INITPAGE_EXT
! r! n0 d# T( R9 [* R# ^+ o定义% m/ X/ y1 h7 n8 j
: r% D, I3 c3 u: ?1 H% k3 g
; o; G7 D, Q R% Q
1 ]( M% E+ z9 m1 P; H' d# g/ F1 s& d5 g s! N2 f
现在终于删除我的狗屁加速...
, g5 ?# c! x- _4 i6 D/ }! _* V0 u/ k0 E
$ M. ~8 i9 y: f, s+ }) i+ y, O# k7 a
% @+ ~6 x( o' a5 q5 f |
|