|
食品车:' w0 q) k9 J9 ]4 \0 E" o; c
尾翼:; f- k% v' I J2 I
* x% \' D4 m4 Y! l, r
代码:
4 h$ _* O+ u7 M. pCWndAutoFood::CWndAutoFood()( q% @: C% E! ?/ E$ F) C( q" {8 [
{8 j h7 z [6 P. G" b
m_pItemElem = NULL;
! \8 j6 P3 e7 D* k) } m_pTexture = NULL;& p9 {8 {5 u8 T
bStart = FALSE;
& U2 ?, e5 [: S* K}9 {2 p" v% R7 ^; G* e' v' r
7 c% Q1 J" R* j- \8 }3 g
CWndAutoFood::~CWndAutoFood()
, l6 m- U3 I- E! q2 W. x{
; J- T1 S9 G' y7 N* m AfxMessageBox( "AutoFood ist gestorben " );
3 l- ] [6 F/ O7 _ L}
) d; F( s5 Q2 e) ?; G7 OBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
& E6 V7 l9 s; m: ~; f& W8 h1 M+ i{
# J- I3 ^9 E% K( q) H1 Y+ \6 M( X4 c return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );! k) u. h- E0 Z' e' {2 F5 Q- ]8 r) {
}
- D. E8 ]; H1 @ q1 \3 L8 U
. L; z- O0 L" J7 U# jBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )* m- u2 O8 B! l- s+ E: ?$ n
{
2 S M2 ^/ N8 ~( X5 P LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );( L) @/ B3 E* h5 D5 G' f5 [
CRect rect = pWndCtrl->rect;
" T5 y' Y5 a: z& g6 h; J if( rect && rect.PtInRect( point ) )/ m: W7 Z( z: i6 h$ b; ~* r
{
8 `% f6 X" N: b$ m/ @ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
+ d2 u6 I6 ^& ^7 V) q$ H if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )% D* j+ v U! t- S1 A
{
9 Y7 m+ e+ c: R9 A: j if( m_pItemElem )" W, U( H1 i. R2 r' A; X9 h2 M
{
: F5 w" {" k( O, x% T m_pItemElem = NULL;# l2 Z% O% Z- S, [/ k
}
7 |! m; _" \9 ~4 e: T6 L m_pItemElem = pItemElem;
: ?5 H$ k0 n3 x b: o4 K m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );; K' y+ F: S6 H6 R2 ^( C5 `
}else{
# A+ c$ Y' e7 a6 W! N9 e, f SetForbid( TRUE );
: g2 B5 {% w6 M, K* O) M9 q/ W }, m' _' O3 b7 _' U1 |
}else{
) a8 B8 |4 R# _4 d SetForbid( TRUE );8 g0 R0 B7 d' i. g0 C t
}" [( Y$ A0 F4 e) v) R$ |
return TRUE;
$ a6 j! s1 \) }( J0 j6 |( @}* L6 P0 F/ z, j2 [! g9 r
# {; f( b7 l" M: D% N# x
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ), h: W9 R( T B9 a% Y7 P
{
0 y# L3 ^, T' V6 ]1 | switch( nID )! A3 W0 ]7 u% g& M2 c: I2 ?
{. ~8 r# v' S0 W- n( Y4 }7 a
case WIDC_BUTTON3:
3 o: V/ p# | [/ Z/ I {
# N3 r) s& [" |6 p9 j, n# |5 O4 Y bStart = TRUE;
' T# D3 q$ s h6 t) r# |8 G6 r break;: l6 S$ ?* b+ |& Y& q
}2 \4 |7 J8 k+ N# p: j1 i
case WIDC_BUTTON4:
* W$ v7 U& {! ]4 k: d8 T {
( L0 x$ U" f; k# |) d bStart = FALSE;) M, U% r% h! i0 `9 ~& I
break; `8 G( a3 W+ L. Z4 [3 ~
}
3 q* V' b H& M }; N% t4 i8 h8 A$ i6 x% Y
return CWndNeuz::OnChildNotify( message, nID, pLResult );
1 p& P1 J, V3 \}
0 i9 w1 p3 j% n U5 N/ D# ~5 r; pvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
/ Q3 S: n" v3 o+ T) I{
/ Y4 V" c3 p4 U7 x u CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
* h$ o& b4 B9 w$ G0 N if( bStart || !m_pItemElem )( }4 K8 Z7 z5 ~( w
{1 O" ]& q) W# Q# d. P; i/ m
pBtn->EnableWindow( FALSE );) D7 ?8 l4 @: b4 Y
}else
' ~" W: P* K% u+ n; U7 T0 ^3 I" n pBtn->EnableWindow( TRUE );3 H5 w) k: b6 M# u6 J' T# g
if( m_pTexture )
% e' P4 S/ [9 q( }5 M$ ` {3 k) |- Y. ~. \5 Y) t2 }% K
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( @3 X. G8 M; K9 \! @" ~1 B if( wndCtrl && wndCtrl->rect )
& @ D4 L8 d4 @ n" X( ]% \& _ {9 o6 d& _- i' x4 u: i3 O
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );. ?3 w5 Y+ c; a. M" j) o) {
} r$ Y4 b% f5 P6 t9 W
}7 q0 F5 @2 K8 q1 W' a. _
}
3 K0 B; N9 u" B: J
& X; A1 _* P$ k! Y3 l9 q$ nBOOL CWndAutoFood:rocess()
3 r( f9 N; k1 \. F9 M{4 t [8 t& _7 H1 H
if( bStart )% l' K' M- J# j4 R9 g' B. r
{* r2 r) b4 ~' n3 D+ r8 ?3 w
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
& H1 w2 [* Y3 _# a: M {
: G& Y$ e1 @& E/ D( `! k: m0 t if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )+ v7 f+ a7 o* f6 F" }
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
( Q2 F) ]6 n0 S$ M& H/ m1 S }else{
, p6 l2 b1 z! n bStart = FALSE;$ v A* S2 r% ]
m_pItemElem = NULL;
! u# Z2 s0 w: v* \! Q$ { }* P/ b) h0 t0 b6 z
}# G5 H2 }8 x" y+ `1 B
return TRUE;& _* I) U1 O2 D0 G$ b9 ^
}
d/ e' f S5 J( M5 W/ Z
' I+ |* w7 L+ \; ?' \登录视频废话:; ~! _: m4 z7 t% K& g7 J9 `/ K
尾翼: j6 c; Q+ m% v/ M
/ w9 l# K9 d% v# e代码:' L- [2 {0 d: n) n2 ^: H
. `" K1 \. k& p. k$ `$ S0 ^/ b
void CWorld::SetLight( BOOL bLight )
# [( E$ Z: o4 j2 I# Tdurch3 g. G* ^, [; P3 y& s' f0 d, z
Code:' `2 ]2 D. A" b' {2 i" f
void CWorld::SetLight( BOOL bLight )
2 W& z8 N$ l) d5 U5 s, g{' ], |6 a6 A' s7 [2 \6 L. c
//ACE("SetLight %d \n", bLight);
0 i/ X# [( T% s2 a7 s: h+ M ' I1 q3 \ j, v
#ifndef __WORLDSERVER
& F% X+ Z+ |2 J ?& R6 Q DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);( I$ O/ {3 T* a+ y
CLight* pLight = NULL;
' O" t5 y) B( Y! Z& X
0 D$ _* }& E8 c/ ]$ ]- P1 c1 D1 m- r0 { D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 f3 F N, g9 x; a( S$ p) n
$ W, [, |# b0 e) {* v7 Y* M1 j pLight = GetLight( "direction" );( v. W, C5 C2 b3 j
# A1 U. ]# h/ e$ `* k2 R5 \, Q#if __VER >= 15 // __BS_CHANGING_ENVIR
# [! h8 i9 M5 H- m; Q if( g_pPlayer ){
/ r8 s ~/ Y, }' b- x ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );" a! {& t/ g: a( ?9 Q
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
2 d5 y/ c/ O# N {
" w( D$ \/ I. _! |, V' R+ h if( pLight )
' P% @; Z1 O3 |6 k0 ?& L {1 d, n/ R9 D9 U' S7 \% b% M
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) @7 m. h, ^% G( c$ d
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];2 E7 M+ F4 `8 F6 _# M
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
# Q& G# M5 J/ L E5 Y) K& W& O: h# x! ~9 ^
pLight->Specular.r = 2.0f;$ D5 Y |+ k- m7 y
pLight->Specular.g = 2.0f;
+ p. K- A, V$ Y3 `2 \ pLight->Specular.b = 2.0f;
; d# H) W3 l+ a) q6 @4 s ( r% `* I# }3 s1 z7 A( z; ^; q
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
5 }; W- ~% A1 {" Z# V8 o pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];4 |, Y. b, C7 | K
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
1 f; n8 |+ e( f4 }' Q" o 0 I1 L. V$ ?/ Z5 a' o4 _
HookUpdateLight( pLight );
c0 H9 N8 U1 d0 T; O
+ J+ { i# _7 o, Z8 G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );3 _' g1 M3 f; p# n; {* K% q
% G# @& @: n5 n' ^. w, T
pLight->Diffuse.r *= 1.2f;% X7 x) T- E [4 g3 G
pLight->Diffuse.g *= 1.2f;
( r) E' U; D( |5 |; o pLight->Diffuse.b *= 1.2f;
# i& d! v& z F1 R8 c! j) J" b* n* g. a5 C8 N" N
pLight->Ambient.r *= 0.8f;
$ C" F0 }; x) m" W. T8 S pLight->Ambient.g *= 0.8f;
4 ]2 n, k6 Y! c& P+ m5 `; K( c pLight->Ambient.b *= 0.8f;
" b1 Y! h6 K+ z. W8 ~) f
. A7 N- K5 K7 z) b3 ] Q3 p3 ?! y0 [) T memcpy( &m_light, pLight, sizeof( m_light ) );
) s1 Q0 v7 G: i2 A4 Q- A, _8 \
$ q; C- Y- o- E: E& m- Y D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);# z9 q' J% c7 A2 n/ B
D3DXVec3Normalize(&(vecSun),&(vecSun));) b- E6 _- i+ `# Q; E$ i% t1 C/ ~
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* S6 o7 [8 g- E pLight->Appear( m_pd3dDevice, TRUE );
4 X, Q+ @1 o' b. X) I; T; B2 N 3 [& I4 N$ e% t$ i' J' `
DWORD dwR, dwG, dwB;
* X8 w& M6 f4 C# _" V dwR = (DWORD)( pLight->Ambient.r * 255 );4 Y2 g3 m' J; m
dwG = (DWORD)( pLight->Ambient.g * 255 );
% N2 M/ @8 ?& v k dwB = (DWORD)( pLight->Ambient.b * 255 );
; L% e( b& Y2 w# T5 s l dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" E0 X: l' ^6 |- o: Q }
) G$ l1 w( ^; j7 y1 q }
( A: {( R: y: a6 T }
{* d' k8 V% X1 W4 J7 {4 y0 f else6 ^% g* ?. r0 J1 r: R
#endif
" x5 c/ O5 [# V0 C1 F K* z2 { H) V0 s9 S8 S7 H7 }
if( m_bIsIndoor )4 \" X) X1 E/ \% T" K, V
{3 ?" c( S' s q
if( pLight )
, N2 @+ ]# l1 _7 [6 t+ a& e' {( g {
6 d! s: W& H* d // à??μ oˉè*
! l3 l3 }: _& i/ Q' h- u3 ~ pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;( s! P: c$ t0 c; O+ n3 P
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) C2 X0 l: X8 ^' O pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
8 p i7 Z( D1 T
3 N3 h& \4 s: R // oˉè* ??à? , ~5 ^1 A6 O- j: z( h: w
pLight->Specular.r = 1.0f;3 o; Y# n8 H! |- d
pLight->Specular.g = 1.0f;" ~7 n0 ?2 s- \* g
pLight->Specular.b = 1.0f;
2 H$ @& P6 p1 U2 `! I0 u // àü?? oˉè* % T N6 M2 ]4 M2 x% D- z
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 A* d( K4 {& `% p
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
' a0 z* C1 v/ D7 W( v pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;' y5 q5 ~) ?3 v3 N6 @! P5 v' M- c$ A
3 g% x0 g3 u' B- a: y7 P
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ i% w z8 Q2 G6 @, H
{
7 p& w9 Z. D7 @0 y pLight->Diffuse.r *= 0.6f;
B. E' b9 o8 X6 H7 S pLight->Diffuse.g *= 0.6f;
6 f2 h t2 N- F) E, ]7 V pLight->Diffuse.b *= 0.6f;/ n8 f% i+ S4 C3 M5 D2 }" Z6 K; K
pLight->Ambient.r *= 0.7f;
: Q4 y6 L) M* b* M: t1 }# { pLight->Ambient.g *= 0.7f;
# W9 \1 W8 k7 a& P U. j pLight->Ambient.b *= 0.7f;& N8 @. p7 H" Q: }8 |
}3 }) P# [, ]( O
9 v$ y1 ^8 Y( T4 [
#if __VER >= 15 // __BS_CHANGING_ENVIR5 v( `+ }3 t5 K4 R/ F9 g
if( g_pPlayer )7 z F6 [) D: w
HookUpdateLight( pLight );7 C3 f; s& _9 @6 ]5 C) t3 |" v* |
#endif
7 V9 k, x7 I2 m2 h7 H; B- k, R, A3 U memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; |: E5 R8 G D2 s: V
8 M# y) `; K9 R5 \0 a pLight->Diffuse.r += 0.1f;1 l0 ^; O7 q: @# ^" i4 w, t& _7 J
pLight->Diffuse.g += 0.1f;
1 S) a0 ]5 q" ~5 F W; ]5 T/ \ pLight->Diffuse.b += 0.1f;
+ M: A! z9 S8 h( @% D" ]& o) G% z // oˉè* ??à?
6 X& j' R* s0 P1 q4 V( n pLight->Specular.r = 2.0f;
$ g6 S% Q t1 W- }$ C( W1 t/ [& l pLight->Specular.g = 2.0f;
1 l, N: Z. _* l1 u( Z pLight->Specular.b = 2.0f;, Z, g* `1 i' Q0 l
// á?oˉ
" ]1 i2 a9 C8 L$ r4 { pLight->Ambient.r *= 0.9f;
7 O% B; D) T3 L3 h& R3 I6 x( s pLight->Ambient.g *= 0.9f;
4 T5 {. E3 F( o8 y* B pLight->Ambient.b *= 0.9f;4 W2 |& Q9 D3 Q3 N4 @1 Y. q9 |
% d' N+ `" x. N6 Z" V memcpy( &m_light, pLight, sizeof( m_light ) );" F0 d, s; q/ Q8 ]1 G
7 m! p1 Z/ |6 F* q pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
* Y4 k( P( c3 K5 T. f6 J& x. G9 K pLight->Appear( m_pd3dDevice, TRUE );
3 b0 x r9 L0 F0 ]
5 i2 O( X' e3 n e' i DWORD dwR, dwG, dwB;
, U5 z8 Y" U; w% | dwR = (DWORD)( pLight->Ambient.r * 255 );
0 Z5 @9 g2 X# `' Z# T1 d dwG = (DWORD)( pLight->Ambient.g * 255 );5 t7 h" r ^5 c
dwB = (DWORD)( pLight->Ambient.b * 255 );1 z9 U2 a. m4 v7 v; C
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 F8 I8 m ^ \) c$ B
}
' N- L9 Z) N# s0 n+ }5 H* D }
( n9 F& A- S2 e/ T" {; i, G0 W else. z* K4 @" D! V
{- L: y5 x/ u/ y- `
if( pLight )
. N: o* h3 t& c {
\) ]( w' M) _$ V
% c6 `+ U$ [, {$ p1 ^ int nHour = 8, nMin = 0;
9 S% m+ v5 |3 V! c8 m( _. {9 v #ifdef __CLIENT# a# R, @6 {: Z, w. Y; F4 t# L
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 8 A6 i) P5 P m. f9 n% g8 s
nHour = g_GameTimer.m_nHour;
( H% o, _" F1 Y' Q+ V; b2 [2 z6 I nMin = g_GameTimer.m_nMin ;' a; t4 y$ t. C( Q. c
#else7 F$ m4 v; `* M+ }- G a
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
|3 i1 `( Q) M+ X5 T* V& f if( m_nLightType == 1 ), r5 c" {3 X$ h" }8 @$ U% c& w) w/ M
nHour = m_nLightHour;0 @1 R' {2 s9 f& p5 E4 A9 g1 b
#endif
5 b# n1 R7 ?4 N0 I5 h2 s( u% v nHour--;9 |3 G* d* `8 [: B- z
if( nHour < 0 ) nHour = 0;7 O3 B2 H- y! i# |
if( nHour > 23 ) nHour = 23;6 F% K" G R$ t4 E$ Y) K/ A
9 o( p; w+ |; [/ Q, P //if( m_bFixedHour )
% {6 w% A3 |- m/ t( |! R2 l // nHour = m_nFixedHour, nMin = 0;
6 T: Y+ k+ M) u- Q0 W LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];8 w" Y; r3 v4 N/ a. m( A) ?' R3 D& o& l
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
6 {- u. G5 P( u! `
: E% T d. \* J+ D //m_lightColor = lightColorPrv;
# ~ `% l$ z2 @) y+ | lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;3 d, L8 g& I8 R+ k# @; M
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;. v |! w' |0 }
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
) x% s3 }0 G% z lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
$ G( }0 v) o. K/ Y lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
( Z9 ^ i4 Z4 U lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
$ [% U/ @. i" | // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)7 J5 g1 i5 q: q5 c7 u' i
7 }" ^/ F* @; D0 E
// à??μ oˉè* ; J% p6 k y8 [. g; r) ^$ S
pLight->Diffuse.r = lightColorPrv.r1;
2 A4 [# i0 @: W4 }. y9 i pLight->Diffuse.g = lightColorPrv.g1;, o+ V0 S" E+ g
pLight->Diffuse.b = lightColorPrv.b1;, W: g# t5 v) ~8 q
// oˉè* ??à?
3 a1 z0 b! B$ O# P( M6 D' @ pLight->Specular.r = 1.0f;
! B* |( c$ M+ B; q pLight->Specular.g = 1.0f;5 R' y' ]9 L$ _
pLight->Specular.b = 1.0f;
7 a' u$ Y$ G# X // àü?? oˉè*
) I: O) C8 ^ @& j pLight->Ambient.r = lightColorPrv.r2;
+ `% u$ Q6 C& p. y/ y8 G pLight->Ambient.g = lightColorPrv.g2;
% S/ q1 ?1 `4 k, J& ^; o: v: F pLight->Ambient.b = lightColorPrv.b2;
1 j: @4 [0 c& ]& `$ o. s! f. x" Q" r9 @ }$ t- p! k3 Y1 `
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
/ v: a; Z4 A) S0 r/ v! w {( ?' c: d; p( R9 h
pLight->Diffuse.r *= 0.6f;
2 G5 U8 V+ ?+ b/ l2 h pLight->Diffuse.g *= 0.6f;0 C) l/ h+ h0 r, i7 {% |* U
pLight->Diffuse.b *= 0.6f;- N3 N5 B' \: r* ^* D o' i4 d$ z7 l l
pLight->Ambient.r *= 0.7f;
0 `& \9 M/ M3 C8 v/ |! ]0 s pLight->Ambient.g *= 0.7f;
1 P1 V6 d U$ | pLight->Ambient.b *= 0.7f;- O, R* ?1 t4 |1 t f) D; v
}
3 O6 l) V) A0 B9 p% ?
% l: b* Z5 i* _3 x4 P2 @ r#if __VER >= 15 // __BS_CHANGING_ENVIR
$ @# f2 E5 v D& q, a' {: N$ [$ K if( g_pPlayer ). V7 C5 H. _9 Y' c* R
HookUpdateLight( pLight );
9 B5 z1 i! H2 {- _* V7 S' w$ w- y#endif& s6 f% o4 z+ R/ I4 c, g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! m, V ~- r$ @9 ]9 W" R, B& A8 s7 R! r0 ^
#ifdef __YENV
, A; r* b( I" k1 E/ A& r- X( Y. n pLight->Diffuse.r *= 1.1f;+ [ H! g" E+ T5 m" k. P$ m
pLight->Diffuse.g *= 1.1f;( s9 |2 R* k- s) b9 ~- ?" {
pLight->Diffuse.b *= 1.1f;/ B5 f- n. K' m, q' g1 T7 L
// oˉè* ??à? 8 ]+ X+ L, m6 n" P( |
pLight->Specular.r = 2.0f;
' g9 \; o; r8 J pLight->Specular.g = 2.0f;1 @. T t: |) D! s8 j2 D: D6 ~$ X
pLight->Specular.b = 2.0f;0 u, F; Z% b$ C- t! A2 i
// á?oˉ
3 `) l5 u) q. S m+ K! V% t pLight->Ambient.r *= 1.0f;. P6 s3 S9 s& B' \
pLight->Ambient.g *= 1.0f;5 W/ f q7 g/ D3 n- X( k' z% r- j% L
pLight->Ambient.b *= 1.0f;6 R! o/ w0 I9 G" @4 T! i( L
#else //__YENV. L3 a" p% g, Y& u5 `! }% V: r! I
pLight->Diffuse.r *= 1.1f;, @- K, a% o m7 i% u5 t4 G' p, J/ y
pLight->Diffuse.g *= 1.1f;+ Y7 ^+ e, ]0 U) F/ a
pLight->Diffuse.b *= 1.1f; w) J; y, r0 D: ]
// oˉè* ??à? 8 [1 K- r A! H3 B
pLight->Specular.r = 2.0f;$ r8 f# h, r/ {; f1 i* d5 Z. T
pLight->Specular.g = 2.0f;/ r$ d% p3 _9 _' G/ y
pLight->Specular.b = 2.0f;
( d, Y5 p, c) H; }, z // á?oˉ
9 g1 c" _4 |9 Y, O# y pLight->Ambient.r *= 0.9f;9 E4 G; q9 k- V! d9 A2 a5 Z
pLight->Ambient.g *= 0.9f;* C3 x- |# ~( m3 _
pLight->Ambient.b *= 0.9f;* q2 O2 i# d! R2 k
#endif //__YENV ) u6 w! f2 F: p6 F1 ]
' e: u" K% L: V9 n8 ]$ v% _ memcpy( &m_light, pLight, sizeof( m_light ) );! Y2 S1 ~% ^4 T& M! V1 o t) b
8 E( O8 @& s2 D; s
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
$ h8 W' g8 V8 u2 e Z D3DXMATRIX matTemp;
9 W! Z7 c- [; E% S1 s0 U static const float CONS_VAL = 3.1415926f / 180.f;
' A- X3 E' g/ p6 \) a
* C4 O1 k7 ]& \& V n D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
7 Y: ~/ `( i) C" ]1 W, s* h D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);3 m0 l7 X. ~% }! w" X: g8 j# A' j
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
: |1 K0 t/ I$ p0 u$ A pLight->Appear( m_pd3dDevice, TRUE );
- R; p" c1 {& h) Y, H1 T3 Q+ j* Y
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: y) j/ }7 a- r9 T. [1 \1 S; J
// D3DXVec3Normalize(&(vecSun),&(vecSun));1 n K+ B9 E+ P$ \! V4 ?( G7 E
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
7 Z3 e' u F* T4 D! Y' b u: i, _) j m4 _0 U0 [) M' r
DWORD dwR, dwG, dwB;( ^& |' j: ~6 ?/ N% w1 J
dwR = (DWORD)( pLight->Ambient.r * 255 );7 X# J) V& v: l) O$ w0 a2 g5 H
dwG = (DWORD)( pLight->Ambient.g * 255 );
, i2 S( k2 F& a4 w- T% }9 t dwB = (DWORD)( pLight->Ambient.b * 255 );
9 Y: A+ i7 K, `) E" F7 b dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); " L7 K7 e+ w% d
}, X2 v& a0 a" \' S$ W
}
# t! k7 D; l7 J3 b$ O6 o U( d1 Q1 ^ i) e4 A, u. F
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );5 L; n v; A( u p/ w c w, J
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) );
$ q9 W: T N" h# v" i; j ::SetLight( bLight );7 o" w' X% p( Z3 F
* o# M2 I* ~: o2 ~6 T // ±ao? ?D?í???ó á¤à? + z. D4 a6 L& [ T/ H# `; F( \
m_pd3dDevice->SetMaterial( &m_baseMaterial );
3 }, K y/ L4 n2 _( w
% j$ b2 A% M6 o8 U/ L+ @#endif // not WORLDSERVER& V0 K! w0 n7 r, X9 D! ^
}
& ~; \, E& K* Y并更换# Y7 J5 K. h0 i: V8 ?" P$ }; O
Code:
1 U9 S% G$ e$ U! R9 P5 q2 z__FLYFF_INITPAGE_EXT
) f1 L- `, j. X1 F定义3 @( @' c3 s% p- r( J% _8 s
: ~. k% C3 f2 S# n
1 \3 J) R4 L( ]8 n* {! f
& M% `! k% ^+ P* c( K% E- b6 ^9 o" V3 W) @* z
现在终于删除我的狗屁加速...
: `$ p- q$ [2 g/ a- \8 ?
8 L1 I- |( t( S M, N `7 M
; }5 s# A9 U( ~# f. V k' h
( M2 [8 ?. ~1 { |
|