|
|
食品车:% F# G2 W+ l/ A( E: G% |; x
尾翼:% J c4 k4 h/ [$ b
' H2 T' R$ [) e' J3 D1 _% E代码:
, W, \7 D5 J5 `- CCWndAutoFood::CWndAutoFood()
, w: B4 ?# B0 X) M4 Z' q{" V7 j5 ^' A1 k! J( o2 h
m_pItemElem = NULL;
: k9 s! C8 k$ F& z# \ m_pTexture = NULL;
: }' T. o- s; ^' y bStart = FALSE;
9 j; k$ {. @. R' G5 E/ d}
! @2 B- g$ T' D3 P$ L2 G$ t+ ^, ~2 d1 Z: e/ J
CWndAutoFood::~CWndAutoFood()
" B2 p. e' P0 @- M{/ |9 H8 S G$ P+ O0 B+ N5 D
AfxMessageBox( "AutoFood ist gestorben " );$ z5 n- v; H" \
}8 {. h8 C9 K+ ^$ Y: Q( z
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
" S* g' z. a, L) V* q{6 L6 A8 ^, X& Q0 z% _* J( ?
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );$ x/ v! D# }' }# B8 }$ C; o5 D
}& i% d1 z$ L u$ s2 S
% w" n/ ~* ], V. k" B
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
8 v, _7 j7 Q) t& B! \8 W f- Z7 i( q{
" v2 C# v% A( c. q+ E7 ?& A LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: m. `3 Y# L* H1 i* Y( ?7 f
CRect rect = pWndCtrl->rect;# e2 F [2 i- U* m( D# u" I( N
if( rect && rect.PtInRect( point ) )) v* w* j5 }9 p, O4 c* l
{) h' \7 |* B m
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
7 X X% y$ v2 P i0 n8 U if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
0 ?8 i5 d0 t! N; e Q0 d# D* M$ a {$ I* H# \, j# t& ?6 O5 P' y
if( m_pItemElem )
& X, c) ^4 n" V3 K6 ]6 Y7 i {
! {( j- c6 ^5 v- F% u m_pItemElem = NULL;( I; x4 F! `0 B( G
}
2 Q! c# x7 s) |6 `# Z m_pItemElem = pItemElem;
+ ~- V y- O1 A4 w( W2 u% l: H! x m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );3 C* n! P" F( H( H8 X# s1 w5 @# Q
}else{
: x, N- O$ z' n SetForbid( TRUE );
2 |4 \/ ]* p" \6 H$ B1 U$ {3 a }4 @3 i+ T" R/ w! ~$ E* ~4 N
}else{
6 r; J0 V# T5 a* \) F2 U' h SetForbid( TRUE );/ J& P7 r3 x2 n7 N" B$ p" U" H, T
}
8 N9 s- u7 [+ T! O6 s9 V return TRUE;( h3 `+ F9 l$ d1 x
}
; B% I# {( N9 H! t: O) Y
; Z* M9 ^$ t* M+ h+ W! qBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ): t6 h5 M* h8 ^. `! v0 ]3 [& R
{5 K$ g1 M% j3 G# t# j! S6 z
switch( nID )8 z# }3 v. v9 P- b6 q0 v
{; ^4 |2 Z( n; L9 d: ]' K
case WIDC_BUTTON3:! `* I C' |9 q+ _! S$ j
{, J- \. I9 R3 ^3 F
bStart = TRUE;+ q, n" X' E$ K8 C% s! I
break;
* J& V* L2 a( ]) r. P% C }
* D8 Z! Y, f0 D$ R case WIDC_BUTTON4:+ X' G8 m/ e6 I: D
{
1 U( y6 j4 s) L) p. x9 i" S bStart = FALSE;
8 u3 P0 ~# v& e- V7 F break;
" a6 j4 I) S9 c3 f0 q, Y6 { }
3 e# C. G5 l* B: \7 ?: Q! B }7 Z2 K9 f3 _! E$ |6 i3 N2 p
return CWndNeuz::OnChildNotify( message, nID, pLResult );$ }' E6 |1 U g" u( L3 P
} - c; W! l3 V8 J) u! }+ k
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
$ q8 s( m; x3 L# C3 ~2 Y{1 ^% ^$ ]4 v- o$ C4 j% L7 J+ V- B
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 K. h. n( l8 l* K% d if( bStart || !m_pItemElem )- K) C* W6 [$ c
{- g, ^+ M$ C0 r) @0 a$ g
pBtn->EnableWindow( FALSE );' A! o6 @! h2 d4 p
}else& {$ r. g% c0 c
pBtn->EnableWindow( TRUE );% S) {$ \$ S3 }0 d. ]( M
if( m_pTexture ), ]" W' p$ c$ s; ?
{
4 V1 @& `0 m& Z( O LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
9 ^# E' w8 L; A' q: V" b if( wndCtrl && wndCtrl->rect )
+ R# S9 N6 P/ N) H# O* h {7 E k6 A0 h u% |( O
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
2 c z; q' E( {5 Z& p4 U. J& {3 i+ h s }* K8 k# s( |( ^' |1 b0 P( C9 c
}
) z$ L; v/ }1 t}) V( g1 v, x& F, s4 q$ h. \
9 H2 D2 x( y& ~BOOL CWndAutoFood: rocess()7 U B& S' w3 a% U3 n+ K
{1 T7 S1 ]) C- l$ K/ ?/ l. E: m
if( bStart )
- a6 j. |. P2 n Y* P {( a9 \1 E; X) a+ R% y! A6 F
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )8 p' X( o7 K: C) p* W
{' R9 _" z/ S' h% q( m# I9 n
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )! Q8 O8 H1 `) e6 c+ X* M3 E
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );( x6 O5 M9 a: G, v( k" w
}else{
, W' r" }& g# D( C bStart = FALSE;
) s" j- F5 l6 R+ d @+ W m_pItemElem = NULL;8 [- e0 @7 ?& R4 C3 o9 o
}
# I, Z( J% e0 y* e+ j' O }
" g! _3 @- j2 x2 w* ] return TRUE; c( A0 W' a; j/ n1 i
}$ U8 O* [3 n7 T7 y% k
% e& S. N: f* T/ x$ z
登录视频废话:& o4 G7 g' f: h4 E$ g' J5 s7 D- u
尾翼:
% M2 B. s: v' _7 [" Y# R
5 G; F* t) v* r+ s/ t9 o, w$ U代码:
' x# H% e+ k, m
P4 {) J" [7 `: |+ Ovoid CWorld::SetLight( BOOL bLight )) p7 p a# O s" }0 z& b% ^! d
durch
* \. g9 d. O" ~Code:! L& q/ x8 @; A8 N. L* w5 ~ F) z8 G
void CWorld::SetLight( BOOL bLight )
! E- h" F/ {4 v; ?3 K( x$ h9 j{, d2 F( ^8 g1 T/ ]' P" e( t
//ACE("SetLight %d \n", bLight);
" q5 c5 G# q! j% \3 M6 | " C6 T, M1 @8 }) K# V$ L" H$ Y
#ifndef __WORLDSERVER ! y, [4 I! S' M3 i9 C
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);; D+ H/ Z: g5 W& V! l1 }; a4 Z# }
CLight* pLight = NULL;/ G$ v9 l) h6 {$ o
/ R. ~* b2 o; P D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 ^; @5 d6 R8 I3 |3 [8 S6 l6 Y2 H) |; @
pLight = GetLight( "direction" );6 ~' Z/ S5 p+ \5 W
# |: \+ @+ i* k) R#if __VER >= 15 // __BS_CHANGING_ENVIR0 y% _8 j% Y% t7 S# D* |
if( g_pPlayer ){$ b. q, o. q1 f1 C. ]" {+ W/ u
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );; z5 u/ J) [" D. [
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!" ], r1 d1 F. w! R2 `, O
{
# ~. b' T1 Y7 U4 ]6 M9 }% ~ if( pLight )
7 [! y8 _* E! h! s: U' V# T {* |/ y+ ^ L1 L; Z5 C
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
# q' ^- D2 i, H+ _& ?( G# z pLight->Ambient.g = pInfo->_fAmbient[ 1 ];. T$ _ B5 I2 f, W
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];+ u+ w8 S! |7 V- Q& h' e
" j* `% c( e+ h
pLight->Specular.r = 2.0f;- {9 F0 ?1 H! ]$ B, R: r# O$ ?! N
pLight->Specular.g = 2.0f;
5 o/ B0 v6 s" Y# ] V W pLight->Specular.b = 2.0f;) W4 e/ q) i3 x( V. W
( K- V$ \2 |: K+ X9 C3 \
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
% D a: i: d4 k3 y4 y" K% } pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];3 z/ h9 b/ N, f( Y& T
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
q8 R. a" }3 L; ~6 k' I
4 [- W1 J1 Z) K" Z- \ W3 W1 U( ]- { HookUpdateLight( pLight );
: G' R$ D+ t- U1 |( F. v2 R0 e( i' ?' _
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( B1 O7 p2 |4 i Y D2 E9 d9 z9 ~
5 p4 z9 D" e* V0 ~6 |1 Q" t! D pLight->Diffuse.r *= 1.2f;( B1 l# f' K' g" u6 ` I# H9 t
pLight->Diffuse.g *= 1.2f;
, X9 l9 U6 n7 H9 F pLight->Diffuse.b *= 1.2f;% L+ q0 I) ^& ?3 K, J. d
9 g7 l* K7 _, M6 Y! \# M9 S pLight->Ambient.r *= 0.8f;
$ R$ a4 O- a7 ]- P pLight->Ambient.g *= 0.8f;
: m7 j) M( G& ] pLight->Ambient.b *= 0.8f;
7 B$ P5 X2 m8 ^ i, v& H. i# V 2 L" U( @4 H+ l' x: S$ N; W
memcpy( &m_light, pLight, sizeof( m_light ) );
/ T, S2 n# y8 ]- P! B7 s0 [% @2 ]1 B- I$ F r8 S6 _* t8 L9 T. w
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 A3 T. m# v9 A$ ?: u
D3DXVec3Normalize(&(vecSun),&(vecSun));$ `1 U+ G0 g" J
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); # H0 g# ]! M- a8 Y* G4 F
pLight->Appear( m_pd3dDevice, TRUE );% v! u( T: y7 k3 o
3 z( T Y* G8 G1 O5 ~
DWORD dwR, dwG, dwB;
% U0 ~) e& R- O3 A7 g dwR = (DWORD)( pLight->Ambient.r * 255 );/ S9 h( E) j c5 |: Z
dwG = (DWORD)( pLight->Ambient.g * 255 );' `- R0 d% B" G! x
dwB = (DWORD)( pLight->Ambient.b * 255 );9 l- ], E$ x7 @: Y- @
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- x2 p) Q3 ]( i4 m5 j4 p2 M$ Q* c
}9 C, \; O, @ D. W+ _1 Y
}8 R2 L- w. o- n! T
}9 a+ y) I5 A- |" S& k" v% s5 D
else
. y5 F6 z) ~6 q9 p& l! Z#endif % ]- M( w4 U4 f2 Z# ]2 G
+ ? m0 a1 M3 z0 v7 Y
if( m_bIsIndoor )! w- I j+ n; |! A0 y
{. l+ \' W, d K. B4 _
if( pLight )
0 v( k0 S L2 D/ ~, r# I5 } { - ^- a1 M* Y4 J: t
// à??μ oˉè* 6 q: {7 ]3 C- f9 T- z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
$ C2 j( a1 o7 H, c pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;8 n7 P3 |9 t, a* J5 w* u8 @7 u1 l
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;: y' K3 s+ A$ p, ?* f
! j! l2 z b$ p; L& Q' k/ }( ]! H // oˉè* ??à? # Q& b6 U7 I. r @+ S9 c
pLight->Specular.r = 1.0f;, @+ V# J! e# }3 \4 [0 `: b8 w
pLight->Specular.g = 1.0f;
& z0 [. d5 e* P5 N6 M% C! a pLight->Specular.b = 1.0f;: Z5 E" X9 s/ r$ F
// àü?? oˉè*
+ n' d, O& Q& z6 @; {, p) [ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;& H0 I& a& b$ V
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
6 Z( l$ i# z- L2 F [5 \ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
{+ G8 A9 ? H8 j6 R% Z. f8 ~" P
. d# ]. m9 B3 i# h/ J8 {) ? if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 H. a$ g5 G1 e( p
{
$ G6 \! ^/ ^5 M3 ]' }- e R pLight->Diffuse.r *= 0.6f;' J% _# {$ V3 b* k7 s
pLight->Diffuse.g *= 0.6f;
* l, M- y' c3 r; M pLight->Diffuse.b *= 0.6f;
" {3 w0 X! D u* { pLight->Ambient.r *= 0.7f;( u w0 T8 o) m( A0 ], T" G
pLight->Ambient.g *= 0.7f;
- K5 o1 I# k' b2 S; N3 b pLight->Ambient.b *= 0.7f;( g3 @$ l4 K7 X+ i& h+ R- U c
}. Q- Z; o! d( o
& K) }1 ^- ^- I- ]4 H#if __VER >= 15 // __BS_CHANGING_ENVIR2 x) u2 L, Y" ^" W
if( g_pPlayer )
+ v+ v0 U* B6 t N; a HookUpdateLight( pLight );! Q% m! y& \% U3 L+ x7 Y5 }, [
#endif2 p8 ^. b8 h0 u2 L+ o
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' U0 L0 I5 L) @: L$ D! W2 o' \- A
6 M; `3 x+ }! R" v pLight->Diffuse.r += 0.1f;) w! \; g4 c& m+ |/ s% ?
pLight->Diffuse.g += 0.1f;
! H% p: S0 ?$ Y+ b0 X pLight->Diffuse.b += 0.1f;# f% A1 f& I) \' K& I w, _
// oˉè* ??à? ( E- J" e- Y5 S" q9 X' S
pLight->Specular.r = 2.0f;
" n/ i% s i2 f' k pLight->Specular.g = 2.0f;% W; d0 _7 b/ r- k/ G- \9 `
pLight->Specular.b = 2.0f;
2 b" Z6 a7 w- o. w // á?oˉ 4 a; A* N$ C1 y; \
pLight->Ambient.r *= 0.9f;" I4 U- E I8 Y/ C0 i) g' {/ m
pLight->Ambient.g *= 0.9f;. @/ F) v _. o% A
pLight->Ambient.b *= 0.9f;' k$ A* M: k, D$ z7 \6 I" G' ^
* K: v, x# }% h% U p8 z memcpy( &m_light, pLight, sizeof( m_light ) );1 Z1 L) V' a) t7 u1 ~: N
7 @9 p. f" u) ]* C pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
$ ^% {% Q, I6 p% J5 C! _ pLight->Appear( m_pd3dDevice, TRUE );
7 G; q J& V7 v! e3 K 6 n/ ]* y( X3 L4 i: B
DWORD dwR, dwG, dwB;7 ^1 b8 g4 A. D
dwR = (DWORD)( pLight->Ambient.r * 255 );
* p7 S W. ^6 u; r) S: c dwG = (DWORD)( pLight->Ambient.g * 255 );) t e" X6 l- o0 {& T" [! ?
dwB = (DWORD)( pLight->Ambient.b * 255 );0 v. @( y3 ]$ n# _
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );: [9 X2 [( G, G6 J1 ]
}
* q" S- j y( j4 S: o% B( h }
0 d% E; E9 d$ U3 H F else1 B$ W: l, R* O+ J% ^7 C7 P
{
/ x4 j* y1 p9 D if( pLight )
0 T% A, r5 e4 J3 z2 S! I {
7 @! K% p+ B* h: g* y) L. h
% w" g( E0 [. `- f8 d* n+ u! t \8 V s' g int nHour = 8, nMin = 0;9 P; n) T7 [' o6 ^1 B4 y
#ifdef __CLIENT
/ m# D0 h* g* z2 y5 { // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
" I: W; R* j7 P! }4 Z L. B nHour = g_GameTimer.m_nHour;
1 ^! t5 ]: y% M! x2 H% e8 R" ? nMin = g_GameTimer.m_nMin ;) q% x5 V r( o e2 s- W- ?( }5 B, d
#else. ~8 e9 B H; c4 {6 b+ ]
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.) i Q. Z& E p" E" e
if( m_nLightType == 1 )
6 i! U6 g D4 u nHour = m_nLightHour;
& |1 T2 Q) J) Q b1 |# ]+ N #endif
8 k# p4 M; s/ Q nHour--;
+ T' i: h- ?2 O0 x' Y. I: E if( nHour < 0 ) nHour = 0;
/ N4 m2 m- D( p7 r! \8 N if( nHour > 23 ) nHour = 23;2 g6 p: V# P' C% ?& B/ Z( V$ j& v0 w+ V
8 J' X6 M' Q2 B! O7 l
//if( m_bFixedHour )) `: a+ O2 _" D7 L: o
// nHour = m_nFixedHour, nMin = 0;
) ^9 R2 Y! r- x* G5 I LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
# C. g8 ~8 }3 b4 V) x8 y LIGHTCOLOR lightColor = m_k24Light[ nHour ];
: f0 t! P4 D( l: [, N0 f+ S6 I- g
) j5 O2 z4 L8 k9 I/ N3 a3 }- L: l //m_lightColor = lightColorPrv;# b: F4 k# ]! ~3 w' {5 D
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
- |8 S) ~' |+ @ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
" S9 B. h ^8 e. w, _) j& T lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;0 ]: _5 K# D: p7 b7 {" X$ f
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;4 H; E) M& f% d9 H+ K2 a/ @+ H
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;; A9 Q& I- o" k9 r9 a6 M- j# M, ^" |
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
- z- i% z! C+ D+ P- K8 d // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
9 q% v9 m6 E2 C3 k- \* Q5 B
! a" V& N# ]8 P0 |! M# h // à??μ oˉè*
; i# C3 t; l# t0 D pLight->Diffuse.r = lightColorPrv.r1;; j! Y' h$ \( H# {. Q# Y' h2 ^9 \
pLight->Diffuse.g = lightColorPrv.g1;
% w/ E* w1 a% Q) m. n. [ pLight->Diffuse.b = lightColorPrv.b1;7 U- y% V4 d5 Y0 I
// oˉè* ??à?
6 T) g- l* m& g7 b4 a+ \ pLight->Specular.r = 1.0f;& \' _0 e% A0 G' Z( o! c3 E
pLight->Specular.g = 1.0f;( C, U; M' i$ W9 b, P: r+ C
pLight->Specular.b = 1.0f;
. S8 P8 q3 \ W6 t$ w; _7 R. q // àü?? oˉè* / x% @7 K# M& f' Q- m
pLight->Ambient.r = lightColorPrv.r2;
1 p7 @4 r3 L# e {1 _ pLight->Ambient.g = lightColorPrv.g2;
, q: D) V; m' T% x pLight->Ambient.b = lightColorPrv.b2;8 q3 [8 x1 u2 K
$ v* G! ~8 L! j; e$ o if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 [5 H" Z! M5 N7 `$ ?( _# W
{& e' K2 ]2 j0 |% \* m) P& K
pLight->Diffuse.r *= 0.6f;- C- R- t% f7 T) H
pLight->Diffuse.g *= 0.6f;
- v# W; f0 C7 n pLight->Diffuse.b *= 0.6f;2 e6 f7 O- m* h" m6 F. r8 h% Q* k- T
pLight->Ambient.r *= 0.7f;
/ P) r: E% _) `7 v) ~" A( m pLight->Ambient.g *= 0.7f;# T0 o3 |2 Y. m9 p' i
pLight->Ambient.b *= 0.7f;/ M1 y9 O' s1 d' P3 a
}
1 u3 I; L3 C/ b1 k( i W2 w3 e/ a; q
3 H2 E3 j5 c9 r/ u#if __VER >= 15 // __BS_CHANGING_ENVIR
" ?+ w/ D( N* ~1 Q0 X if( g_pPlayer )) D5 e: [. J. Z; V
HookUpdateLight( pLight );
- m3 g8 U9 L6 @: f1 k8 [2 j#endif4 T2 W+ P- ^& y
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 ?3 Q& v+ G$ a) j, |' i' r$ Z! s% ?7 }+ y/ O# F8 N
#ifdef __YENV7 c3 ~4 t! r5 l; u# s
pLight->Diffuse.r *= 1.1f;
, J' R8 Y% }# T- Q pLight->Diffuse.g *= 1.1f;
# Y7 y# ^1 ^( r: q7 V5 T pLight->Diffuse.b *= 1.1f;
8 `& _$ K6 {7 p' t: D/ W4 O // oˉè* ??à? 1 Q I3 x l2 T) A, l4 l
pLight->Specular.r = 2.0f;- A b& Z/ d1 C) m
pLight->Specular.g = 2.0f;3 g9 n/ G. e, M) ^4 f/ N
pLight->Specular.b = 2.0f;. B! v6 c: j. w1 P) C# Q# W" Q
// á?oˉ
5 W0 z2 }$ t5 q5 m pLight->Ambient.r *= 1.0f;+ Q2 |3 \0 a5 X" t
pLight->Ambient.g *= 1.0f;
4 S) h$ ~( w% {( y: w6 ^ pLight->Ambient.b *= 1.0f;; }4 v+ c$ a" o( n
#else //__YENV$ S. a0 H- q6 [9 U. U
pLight->Diffuse.r *= 1.1f;
0 ]* _2 B0 R+ l' i' Z6 Z4 Z6 z pLight->Diffuse.g *= 1.1f;
5 |+ t1 \+ L; C0 t/ w' P pLight->Diffuse.b *= 1.1f;
/ g9 p! F/ A8 L* {$ J // oˉè* ??à?
& d7 U; |( A. x pLight->Specular.r = 2.0f;
] ?8 C, ]! @2 G- Z5 X pLight->Specular.g = 2.0f;6 R9 _# y. \ v* k
pLight->Specular.b = 2.0f;* [! O; W8 ^0 x; ^" \
// á?oˉ
& G) A( N5 z: L% l pLight->Ambient.r *= 0.9f;5 S- i; h5 s% [, \# w4 M Q. G
pLight->Ambient.g *= 0.9f;
5 k, M) s! J# J' q& \ pLight->Ambient.b *= 0.9f;& y( c8 `3 [* L: J' h" A, s/ {% ]1 w
#endif //__YENV / \3 t* ~ [2 L! N9 V" f/ f
+ v! O+ O! U6 [, `
memcpy( &m_light, pLight, sizeof( m_light ) );
( a& j% {7 r, i0 A + _& s- ]5 m5 w x1 r$ E1 n
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);; T5 B, ?1 S$ b4 I
D3DXMATRIX matTemp;% e- w+ a- f" M" d# C" g; n3 C: F3 ^2 F+ I
static const float CONS_VAL = 3.1415926f / 180.f;6 I6 N1 C3 g r) x; l" B2 R2 U
$ H* [6 @0 ~; s3 r0 w- { D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
V# n- N1 b1 f# S D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
5 N$ A3 I4 l( y* P pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); : x( a. F/ a+ T) {- e9 A) H: E- O
pLight->Appear( m_pd3dDevice, TRUE );! L1 W# e% i# F8 q3 @
& C. z; o1 ~# j; i/ u( t // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 W0 c* H, W7 D9 W1 g7 _ // D3DXVec3Normalize(&(vecSun),&(vecSun));
' j$ Z0 V9 e9 [$ s // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' ?" I% P" \+ K* W U
+ ]' n) s% I$ h) _6 w DWORD dwR, dwG, dwB;4 d: ^$ z# O& w$ |* y- i+ ~0 m
dwR = (DWORD)( pLight->Ambient.r * 255 );
& d8 l9 _& ]) E) k dwG = (DWORD)( pLight->Ambient.g * 255 );' `+ G' m, N3 u9 y
dwB = (DWORD)( pLight->Ambient.b * 255 );
8 b/ \5 I0 b! _" e& i; L dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) F3 i: `" a' _9 U4 `6 F
}
0 O( J* j$ t1 c( q0 F }
: t7 @" d) W; S3 c/ s# h$ R, ^1 Y, O6 R
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );5 d q o# f s, ?+ N& u
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) );, v3 J. y* N' q# H8 R
::SetLight( bLight );6 z6 N- F$ j& @+ q! C6 F- n' U
1 ^# }( J0 G m: `0 d5 ^* g
// ±ao? ?D?í???ó á¤à?
3 N7 z4 E/ E. G5 @. q& x( v" q m_pd3dDevice->SetMaterial( &m_baseMaterial );1 w1 X$ C6 } I. g: w, y: H; E# P) N3 o
! u) ~6 R" T( c" [+ o* x#endif // not WORLDSERVER
3 ?$ r0 h' m6 `9 g8 ^}
3 n2 H& A' I; z6 w6 K6 A3 [1 `并更换
$ ]7 ^: D4 E5 rCode:8 X! F! ~: U, d" \
__FLYFF_INITPAGE_EXT
! L, c2 T# W% t* d8 P, W: o定义) ~1 A" A& ^$ ~2 M% K H7 q) c
7 j% N/ ^! A8 Z, F9 d7 J; M
) k1 a$ ~: f, D. L/ V
& q- O, l! @$ ^
4 u' o3 T) a3 t& {9 @现在终于删除我的狗屁加速...6 N- ?; G/ ~! |9 H+ C7 o; D3 d
6 W) p$ c. s1 ~4 q; J/ n
, c$ u, V9 |' ~* ^6 k& F8 Y( E, t. h& J' Z" k8 q4 X
|
|