|
|
食品车:
h4 N4 p @4 {8 x8 W) a尾翼:+ W( q5 K( d6 B& |
! K/ Z3 \6 u) w. x4 U; |
代码:
( j7 }6 |4 q& e" ]CWndAutoFood::CWndAutoFood()
3 x% p# x2 s8 o{7 k( `: X8 g" }( w* O# q
m_pItemElem = NULL;
{& }, @$ f1 Q; Q: g0 \7 d' @0 E m_pTexture = NULL;: J' Z% a3 d" h2 A( M4 b
bStart = FALSE;; U2 c- g2 s1 I, W1 |
}7 n) p0 u8 S/ I9 ~
$ {5 h; t$ ]3 Y) E1 X C/ Q
CWndAutoFood::~CWndAutoFood()
% h6 N7 e# Y$ l{' ?0 O) p% j/ j* l4 @, D' M
AfxMessageBox( "AutoFood ist gestorben " );1 A8 C, B- ^ r& B, G1 D: [
}( Z6 i5 a# Z0 A7 T2 l4 }6 v
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
2 @" q* C8 X8 E2 u5 d$ s/ b{5 @) Y2 l/ U7 u$ B
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
# {! Z- L& h; K/ v5 n0 E1 @}
0 @1 T e7 W- c- W. e! f1 O9 H% y# G0 z- }
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )& [3 ^# f* U$ x1 K; v% ]% a& @
{
) o0 W( m/ L- E- \( K- p LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );7 L$ M4 D( A# M o: G6 W2 }
CRect rect = pWndCtrl->rect;# W8 }$ a/ u3 z) j5 D
if( rect && rect.PtInRect( point ) ); n; o( H9 L6 I; H
{
3 }- {4 H' Z) F4 K! _. f CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );9 v( @* B5 N Z( u6 h
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
, G) O! h0 ^' T- w7 ^ {* O0 A* X6 J) ]' E" N
if( m_pItemElem ): ?3 [, {# I4 m
{
' c1 H) e& K% c* P4 y; a m_pItemElem = NULL;
3 L1 y# L; O2 V) ]7 x" V: X }
1 \9 o' T T* K- X- h m_pItemElem = pItemElem;8 Q( P' s: y. X9 r
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 Z5 D6 ~' A( D2 E `, [& N }else{. R* G: f9 P: J! W5 o
SetForbid( TRUE );
% f& k% f5 ^: X5 { }
+ f! Y; P: {7 [; k1 x }else{
1 B; S/ Z4 t2 A3 J9 V SetForbid( TRUE );
5 }. v6 Q7 q! a }: J! `# T: ~' X x6 p
return TRUE;
+ |$ T; u* D1 G( b; o: ]& d8 w& q}0 R( D& f* K1 @$ H. d5 T0 z/ h# u0 K
; B. Q1 s6 [6 G% D: B W( ~6 L0 i4 TBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); h4 t' h8 V) d3 D$ C0 |
{
( X% @: N) W- K* L1 K switch( nID )1 |/ c8 u4 S3 C0 ^
{2 E4 X C, @+ n0 n% M
case WIDC_BUTTON3:
7 R4 \, M; X* t) F4 j9 _1 W* |2 { {
+ b& Y2 g7 f* d6 O% I/ R1 f F bStart = TRUE;) {7 `5 S( d6 B
break;- u7 F$ S0 e6 j. X( m9 X
}
3 v3 a7 q* a* V' E; M$ h5 D5 G& ^ case WIDC_BUTTON4:
% [8 ^% {! m( H8 L. F9 l5 a {! W/ F/ P; ?* R, \9 e1 y
bStart = FALSE;
) U1 Q: J: u' M$ Q6 X2 S0 { break;. _: t7 |. W5 k% I1 g: F
}
9 ]" n0 K/ z5 `) I- } }
3 y: S ^' H3 |3 @4 J$ E: T! S q% _6 d return CWndNeuz::OnChildNotify( message, nID, pLResult );
, Y# ^+ \. \8 q4 K {# N} 8 A' E7 }4 D% y
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
4 e" r. @6 N. Y# K# R. `{0 n! S4 [3 K0 q O# ]( {
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );. T; E p F5 j2 N0 m
if( bStart || !m_pItemElem )! p$ F) d; M) ^: `% \& H5 `
{9 N2 Y3 b, T0 N' |: ]* u V
pBtn->EnableWindow( FALSE );
( f! z: _5 X$ Z a A5 a! z }else
' V& D5 O4 n \$ L. v, m pBtn->EnableWindow( TRUE );
" r: D: ]# Z" b; S; T if( m_pTexture )
' R+ B5 f4 D, i' a. {7 B { m- U. z8 Y9 f, P
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: S( C8 j7 V4 t0 {5 S4 `' E0 X( F if( wndCtrl && wndCtrl->rect )* V0 v# R! ?# c. d9 O: [/ [
{/ H9 s @1 S! w9 |/ Z# \
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );! }4 J4 E+ t( ^# N, L, @
}
" q( i# B5 Z8 |' [7 t8 p& F }
9 G) c( ?' N: M, S3 M8 \1 M}
, t9 m+ W2 `4 }
' ]: w0 A$ n% _5 KBOOL CWndAutoFood: rocess()2 [' F- G4 p, g" t" _; t7 }) p
{
* F& A( H, D8 o0 q$ E t+ t$ H if( bStart )& b* ?% B( ~2 Z7 U' J
{
$ k c$ G. }$ S5 w if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. D! u7 H! w9 {; q+ z% Q' ] {
) j1 K! R. U) B$ w$ n$ 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() )# w ?2 z: }6 h8 k
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );4 H: L) J6 ~) E; `
}else{
- T( J* e) W1 j$ o5 W Q! X bStart = FALSE;
7 A" s+ S$ ?. k& x; R5 s. h* { m_pItemElem = NULL;0 j5 |% A7 H7 k; Q6 ]6 i# d
}
: \3 d8 b# O! s }7 u7 | J! h J( S5 q
return TRUE;7 u9 F0 d" l6 a' @ l* D9 F+ _9 T* l
}
5 u3 O) `: @3 E D4 q
% t: F8 {# Q3 |6 @! q7 `. M登录视频废话:6 i. |( W) `+ j
尾翼:
1 {; H: M/ U; M D/ J7 N* a3 i* u/ q. }4 M6 [, r; {. N r
代码:* H# j0 A6 c- h1 _9 i/ _8 d
* I2 r' d% t( H) V( ]& h
void CWorld::SetLight( BOOL bLight )
1 [3 G" F) n. [durch( j, @4 }# Y. H8 e$ Z
Code:
}) i. Q; K3 h8 W6 ^$ I/ Ovoid CWorld::SetLight( BOOL bLight )3 _, U( a- N6 j8 {
{
1 {) ]4 H' o0 k //ACE("SetLight %d \n", bLight);
: v4 O" r+ X5 G2 O w1 F 6 k- V$ X0 p8 a u# g3 P
#ifndef __WORLDSERVER 0 n1 h | a7 s' `! L O( w+ s- \
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
& o- x% G7 h( b5 h g CLight* pLight = NULL;
8 i1 ?1 A& W( r' B+ e- R. r0 e4 E1 Q% |0 U: k! Z& r! r
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
0 e3 z7 G) J0 d0 S1 i+ T. j# y. f6 [( [$ I$ r
pLight = GetLight( "direction" ); E# w2 I; o; K! L# m1 E3 \- U# [3 x
2 u5 J2 B( h; l& p; k
#if __VER >= 15 // __BS_CHANGING_ENVIR+ e" k) b. \. q' V$ ^ ~
if( g_pPlayer ){5 W1 F. C/ f$ [3 M
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );" e, ^, ^5 x+ I5 D6 s
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ v: O/ I5 O7 L/ u& ` {
; o% }- T: b( A5 k$ |8 z; U$ C5 |- ~ if( pLight )
- _/ G8 _9 [/ Q+ H$ |- ]6 ^ {
$ O8 j6 K j' @5 Y# n3 U- c pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
( m) o( T- _# W pLight->Ambient.g = pInfo->_fAmbient[ 1 ];/ m( g1 T3 o* @ q4 M- u/ \. i! q
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];; |( ^* i3 ~6 l* A% ?7 w
7 H, b* j) ^0 A* h W) q pLight->Specular.r = 2.0f;1 H9 ]- ^7 q# H" ^* X! b. Q
pLight->Specular.g = 2.0f;
- l0 V. R/ i! }' r, V/ }$ i3 a pLight->Specular.b = 2.0f;. R& {* L8 M P0 R+ f3 D7 T/ K2 {
* S6 Q+ C8 j( f pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
3 p% L* l Z; E: s pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];6 ~; d1 R; B k: p; h
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
/ v4 y1 o- @" m% U
" E: Z: R) l0 g; B" j- k, k HookUpdateLight( pLight );
; ?& b' ~# N+ v; m& y; {6 V( b3 n3 `
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' C7 I4 x& T9 W2 c* D 3 F2 F4 v6 W+ ]
pLight->Diffuse.r *= 1.2f;
6 _$ V7 |; o6 s7 n) w+ p pLight->Diffuse.g *= 1.2f;
$ P1 f5 G6 J5 C1 l7 R# `: L5 P) y pLight->Diffuse.b *= 1.2f;
. r4 f6 V" ^) @+ @3 t5 R
1 N: Q# C' c+ X- h( h9 K, P pLight->Ambient.r *= 0.8f;
7 h' s2 H" Z1 X& z% r. ]; j pLight->Ambient.g *= 0.8f;7 h" p2 D0 T) Z) i- l
pLight->Ambient.b *= 0.8f;
) A2 H, O6 W6 l; Z9 p3 g% u 1 j0 O8 |! {6 m+ F9 ]/ K
memcpy( &m_light, pLight, sizeof( m_light ) );
5 L4 V# n$ G; C- a9 ]4 L( \% @4 d& _+ q9 z8 i
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! E6 g1 O) O$ N! @ Y) R
D3DXVec3Normalize(&(vecSun),&(vecSun));! p' K3 T4 g* m/ {
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
+ }) S( R% ], |3 ~) T1 h pLight->Appear( m_pd3dDevice, TRUE );
+ ^; O, d; t( {! S + Z* r# W/ J. x: T0 F8 P
DWORD dwR, dwG, dwB;
& s9 Y* U' d# p dwR = (DWORD)( pLight->Ambient.r * 255 );# m+ [1 @$ V( f
dwG = (DWORD)( pLight->Ambient.g * 255 );7 l$ m# |) w" l' y3 {& ~
dwB = (DWORD)( pLight->Ambient.b * 255 );% X/ p. T3 `. w+ O: D3 n% c9 F
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ [8 x* f* _. J$ x i2 u
}8 W% O/ f% a) R) j0 l8 L! f+ }
}9 B+ _$ a% H, [* o
}& Z4 ^- E7 F3 G( _; N1 U+ c
else! S7 \3 Z, }7 B H& }) e% }
#endif 5 {) O% |, E" m
7 Z% v# B. L! R }- h$ y1 I
if( m_bIsIndoor )2 E, N$ `. K6 I& Q2 f! i) k
{, X- @4 M- A6 g1 @4 G L" o
if( pLight ): `7 K( O6 ?& [* a
{ 0 g- U1 t4 I6 W0 b
// à??μ oˉè* " V5 p- `% X7 A" x3 e
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 { q' p% {+ ^7 O7 H: V
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
& O# s e: j) A; w pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
9 g v1 |7 K- V; s" F+ t2 {" g' J& J: t% o" C* h
// oˉè* ??à? 6 d0 {! W; m+ H
pLight->Specular.r = 1.0f;
0 o; y1 T3 i# ^. C4 M pLight->Specular.g = 1.0f;& L1 \) v2 ^; Z6 T- ]
pLight->Specular.b = 1.0f;/ i8 e- i& g; Q& c2 S* z8 ]
// àü?? oˉè* ' d L: q5 X) ~5 }
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
' e5 \7 }/ q' F; C& d2 T1 ~9 { pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
; I/ A8 c/ `( X' K% Z7 H pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
$ t! y1 f9 G" z/ |0 I# s, s& ?8 x- S C# v
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
G: ]6 u. F( Z" p& [; c {7 `3 E, w2 Q3 D
pLight->Diffuse.r *= 0.6f;
7 k' o& v1 @, X: b9 ?) L pLight->Diffuse.g *= 0.6f;
% D3 z0 {( O) D' q1 {8 { pLight->Diffuse.b *= 0.6f;
4 t6 s8 u# I1 D" j! i( d, k+ z$ @0 L pLight->Ambient.r *= 0.7f;0 ~( t1 D$ a7 e( v9 V
pLight->Ambient.g *= 0.7f;
2 c4 _5 ]9 L# s# @, ` pLight->Ambient.b *= 0.7f;
6 Y* [5 l# C) b2 P4 {% R& Z, k( i }
4 X8 j% f0 Q* H' U1 `; M5 }+ T
9 r. ]5 P! P6 U" G0 O6 i4 K+ o#if __VER >= 15 // __BS_CHANGING_ENVIR, W: }/ H8 W4 ^ K0 p
if( g_pPlayer )
3 ~7 f4 Q q$ Z4 \% j' D: z, @$ V HookUpdateLight( pLight );
- V. \& B2 Y# _& _7 o+ J#endif# U4 r- j! W8 J1 }/ i, v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, |0 |( }! b8 ~& M m( H) X* Z/ e
* W) \6 M. \" g( g/ W pLight->Diffuse.r += 0.1f;1 I) [7 Z" P# L
pLight->Diffuse.g += 0.1f;* q5 R3 L; |/ I
pLight->Diffuse.b += 0.1f;
# R' P3 `) K* `/ r0 } // oˉè* ??à?
" {5 M& G" }9 P7 J- V pLight->Specular.r = 2.0f;
5 D% G7 c# A* B# W: U" B pLight->Specular.g = 2.0f;
( U( N% o) D1 l+ h- r9 z6 C9 y; g& } pLight->Specular.b = 2.0f;( ~' h9 L5 R; r6 Y
// á?oˉ 8 V! h& L. G, p
pLight->Ambient.r *= 0.9f;
/ b& c$ B' B$ V0 ~4 K4 ] pLight->Ambient.g *= 0.9f;
' T/ w j$ Q2 j, R* @( _6 m pLight->Ambient.b *= 0.9f;; W3 k ^5 y3 c" M, j1 l) D
4 z) X. n# }* f7 p! {
memcpy( &m_light, pLight, sizeof( m_light ) );
- B' [$ s' K( n) l ( l5 e* V s: Y6 J- D* a. X7 x
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );# p8 [8 y. V6 z6 ?# T
pLight->Appear( m_pd3dDevice, TRUE );# V1 P$ P; D& w6 ]6 @* W
) F& p1 P( E! T0 O0 ~/ ?
DWORD dwR, dwG, dwB;& M3 q6 o9 L5 b/ J2 K
dwR = (DWORD)( pLight->Ambient.r * 255 );
# V" m2 @! j$ z9 B dwG = (DWORD)( pLight->Ambient.g * 255 );" o0 \7 M5 H7 o+ }1 Z. i7 w
dwB = (DWORD)( pLight->Ambient.b * 255 );
- k5 W/ {; m2 T dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; j& x) ~$ e' K' a4 {2 m }
5 m$ f& w) X( W% ~) I }
' I2 l5 o; h# b5 P( k. R' D2 J else. K7 Y6 m" E- U+ ~# [$ j1 P% `
{
5 o5 g, b j* `$ c+ Q4 ]9 F, A if( pLight )# |4 `) n" U. c4 _# V( j& z2 T
{6 x! E) Q0 f' m& ]6 f9 }: C5 P1 n
7 q0 ~0 J$ s) r# m: W
int nHour = 8, nMin = 0;
6 s ^8 D; {8 Y ^1 A9 q3 Y #ifdef __CLIENT- m$ h9 q( a$ }8 \7 k
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
* I$ F7 V4 H( T nHour = g_GameTimer.m_nHour;% x' C. R# f; P9 @2 }
nMin = g_GameTimer.m_nMin ;
, K" x5 v+ {# @' o. I+ B #else( _; C! B3 _5 x! S
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
. C- m8 s0 T2 u i& Q if( m_nLightType == 1 )0 A; L; F1 J. q) a8 U& H- P
nHour = m_nLightHour;0 A; u2 I/ @# Z' N* a1 Q- F
#endif
, \: q8 A5 d2 ^/ |" K2 m+ A nHour--;
: l! \/ u3 h K1 t9 t) e( g/ O" I" S/ { if( nHour < 0 ) nHour = 0;; Q% m5 w9 `" T
if( nHour > 23 ) nHour = 23;
* L' }- |3 a' F7 \) M: k) Q+ g
' Y# U! ?$ Z" T) }; I; e6 | //if( m_bFixedHour )
) ]% J) }1 n2 Z4 i% | // nHour = m_nFixedHour, nMin = 0;
9 ]4 G6 L9 j/ I- {9 j# d LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];! S9 o) b! [9 r5 ~/ Y
LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 D: \+ L, n4 J5 `% Q; i+ r; _
3 P/ e( z0 s0 C' z8 F
//m_lightColor = lightColorPrv;' ^" G. E. n' ^" F# i& d
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
9 D8 ?, [! ~/ H: }; P& w5 L- l. \ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
1 \7 K2 b; v8 L T6 W lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;, r) P% u" x6 r! T3 [( ^
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
) ^( `/ K8 ]$ j2 ~7 L2 s6 y! O: W lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;# I1 O( a3 S( _9 C6 b
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;, X7 i4 Q0 a, ?) r- ~# O
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)0 \- W6 I1 l$ g& U: F
1 M! W3 Z# X K" b$ g // à??μ oˉè*
: V _; M/ _' |4 h9 }0 ` pLight->Diffuse.r = lightColorPrv.r1;
9 L+ S' c" z L4 ~8 O pLight->Diffuse.g = lightColorPrv.g1;
- y0 D0 i/ x2 s. M3 d: y, E pLight->Diffuse.b = lightColorPrv.b1;
3 g# i0 x0 P* \$ }: m: e( ~ // oˉè* ??à?
* \4 L$ z. ]! U# E9 T pLight->Specular.r = 1.0f;
0 _- W) x& T) w8 ^5 B b pLight->Specular.g = 1.0f;9 J1 S* S [) ]5 K, L
pLight->Specular.b = 1.0f;
8 }! }7 \) Q, {$ t // àü?? oˉè*
' a V+ u9 ^1 ~ pLight->Ambient.r = lightColorPrv.r2;
1 i( ~0 g2 `7 P# q& o( W M pLight->Ambient.g = lightColorPrv.g2;
{* I. w& e9 y4 J2 m. ^: R pLight->Ambient.b = lightColorPrv.b2;
" f/ o( S5 P: D6 a, S6 P! u, B/ @- F, @% |- A6 Q( u8 j
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 i% f0 T# ~) m' t3 v0 o
{( S, h- Z3 ]6 O* k0 b: }- u; X
pLight->Diffuse.r *= 0.6f;$ g2 U7 o8 n; Z0 L. s2 ?5 E
pLight->Diffuse.g *= 0.6f;& W3 d" N! ?$ M
pLight->Diffuse.b *= 0.6f;
# ^" L/ k; G1 V! W& p i4 d) F" V pLight->Ambient.r *= 0.7f;
7 E; G/ t6 U0 d+ \: f0 v( H pLight->Ambient.g *= 0.7f;% n4 j/ T1 W6 K5 ^
pLight->Ambient.b *= 0.7f;( G# {; \- Q8 C
}7 Q! `; c# ~: o
& [$ B, ~8 l1 u( d#if __VER >= 15 // __BS_CHANGING_ENVIR
. {" X4 I; K$ s8 M$ L& k if( g_pPlayer )8 `: I2 x9 c; |5 F) w" f
HookUpdateLight( pLight ); ( D6 p8 Z3 {4 e3 ~: D$ y& B
#endif6 O5 T% C# s/ |9 C) v. p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, n+ Q- y! L- a' I) l, h6 b) F, d+ l9 `
8 a. I# |2 n' m( C* n. f
#ifdef __YENV
0 g5 X H8 q# c# W pLight->Diffuse.r *= 1.1f;' D, S, f1 ?: H: x
pLight->Diffuse.g *= 1.1f;8 r% x: H) e2 w- H3 O4 z
pLight->Diffuse.b *= 1.1f;3 H" v6 @5 g( F3 O* W
// oˉè* ??à? / _4 {# R2 a( I2 ~0 b
pLight->Specular.r = 2.0f;1 ^+ o6 n# O8 ?
pLight->Specular.g = 2.0f;
$ d8 ^% C$ K8 S* z. I pLight->Specular.b = 2.0f;
2 R, P8 W$ g7 b2 O$ J2 m // á?oˉ ( z3 o. O+ M$ p
pLight->Ambient.r *= 1.0f;5 x# y* M4 G4 [) m; U
pLight->Ambient.g *= 1.0f;
; E: q4 ~% m% K: E! _2 a" ~ pLight->Ambient.b *= 1.0f;+ K1 Q8 s. w l- U, W
#else //__YENV
. n9 P1 i# W4 P7 Z* @8 ?/ U- q pLight->Diffuse.r *= 1.1f;
0 z; V. t- L9 O" T2 s4 F pLight->Diffuse.g *= 1.1f;: w3 b% C r* i k. s
pLight->Diffuse.b *= 1.1f;
8 X! g; H. G# }: r4 q // oˉè* ??à?
9 c/ e+ T( o, M* T1 b4 U- g7 V pLight->Specular.r = 2.0f;1 Q$ T2 v2 q) ?4 w. I" ]
pLight->Specular.g = 2.0f;
' {" ^3 m+ ~+ c! K# v+ W( { pLight->Specular.b = 2.0f;
6 I0 h4 k: H; E% V3 `* L // á?oˉ - M5 Z* ? l% F! v+ U) z
pLight->Ambient.r *= 0.9f;
# x6 `& Z$ V- @. J$ {3 ] pLight->Ambient.g *= 0.9f;
* Z! ]! {7 T: E7 N pLight->Ambient.b *= 0.9f;
+ W# p8 t- {8 B% y" r2 G#endif //__YENV - {8 g" j+ Z( _/ K2 F
( T/ p0 [- _- r9 {$ n3 r2 L" \
memcpy( &m_light, pLight, sizeof( m_light ) );
& Z9 u7 k. A- i % A# x. H! |2 b
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
% q# D; W6 J5 y7 ` D3DXMATRIX matTemp;
% \" S; A/ i* d; d9 W( K static const float CONS_VAL = 3.1415926f / 180.f;
7 A& A0 C. y4 E* e+ U! C9 |1 r8 i
4 v9 _# J/ X4 _0 j D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
/ S: ]/ e# b8 f4 O D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
0 x: H: `8 V* A pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); O2 m- a+ i4 q& M! |/ [
pLight->Appear( m_pd3dDevice, TRUE );
: L9 K c+ w$ P# H
: R& U7 V8 d2 u4 Y( K5 t0 t3 D4 B // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; M1 r/ ^, h7 E
// D3DXVec3Normalize(&(vecSun),&(vecSun));* ^4 }" e) @& x/ ?
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 1 h! C! u# x" y) V" d2 X; _& A
7 G: m0 q& G6 j' H8 h DWORD dwR, dwG, dwB;" Z' Z9 D$ e7 r/ w/ g) I
dwR = (DWORD)( pLight->Ambient.r * 255 );% [2 ^, L5 D& \: o' H7 z
dwG = (DWORD)( pLight->Ambient.g * 255 );
/ p- F! m% {+ W6 q/ V) Z- }* \& j! p dwB = (DWORD)( pLight->Ambient.b * 255 );0 M6 l& K- Y3 L0 V
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 8 U( N9 ]( N' s y
}
, f! }2 Z0 s+ q, g" @% [) N5 S/ } }5 g( v. P: t5 M" b- v: U/ l' g
: y3 X- c t! T5 U6 W* P' L
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );- U, \: Q. ]9 x5 {7 E1 q# q4 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) );+ G" q- Q. q& T" r/ v/ W( j
::SetLight( bLight );9 z: r6 B% l; R; F/ ^' v5 N
. V3 I2 H4 f) W0 K; v6 ~ // ±ao? ?D?í???ó á¤à? 8 j7 ~0 m6 J# {/ P5 I4 X s) O
m_pd3dDevice->SetMaterial( &m_baseMaterial );3 v7 V) z- [# ]( m2 `
% ^0 u' N* H, k7 w. d# `) @
#endif // not WORLDSERVER: F' J7 M4 ?# ?5 n# A0 [1 b
}! X6 i1 F C- M( `0 |6 E ?( h
并更换4 [. W, S7 s! L7 y K1 Y. E: v6 T
Code:
' \( z' j* d7 L G, t( g__FLYFF_INITPAGE_EXT
! u$ w# `; ?6 r- _. M2 D( e9 M定义
6 }3 a# H! X5 g: r" V8 n2 T7 h& f0 C8 {, |4 y+ x2 o4 }
4 ]* K$ U0 t( `. Q. q, H; i1 o u. e
% ~ V6 q; f, C
N p% P4 ^3 o: w9 g) x @
现在终于删除我的狗屁加速...
) G, [) H/ K" D& a5 Q5 i) ~& t+ H- @$ h& F4 s. _' `
! S: ]6 L5 X2 N: X. T
( t% O" {" [3 K9 | |
|