|
|
食品车:) e8 M1 g1 J' d2 a2 Q9 D2 n; B
尾翼:0 m8 u. o. T) o4 {
5 U( X7 s$ {1 S) y+ M
代码:
' m+ G. G0 m( g; Z! I% T9 F1 {* B8 iCWndAutoFood::CWndAutoFood()4 H" a U n; n4 @2 ]
{. P% z0 a! S* H) Q4 Z; J3 |
m_pItemElem = NULL;
) P. ?% y( U( M x( y j m_pTexture = NULL;2 u2 f2 B( ]/ G, s
bStart = FALSE;
# f A; U1 X$ c. A( D# D% ?& y. t: X}( _4 J# o4 H7 f& g
" a" x' r8 A$ U) BCWndAutoFood::~CWndAutoFood()( |0 D# b6 F0 L' o1 G2 w# O
{
- C* T! _: S j- f, J% N5 l' B AfxMessageBox( "AutoFood ist gestorben " );
+ g3 V' K/ M" f" i% _) {1 ~}/ d& b5 _1 J- d& X; M
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ); D3 p8 i5 ]: W* U( |! G
{7 X* Q Y3 b3 M; G8 T5 W) x
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
% A7 J, w2 T$ B0 n% Q}8 y$ C( F/ I; |! D
1 W" _( T5 C0 |* g9 [BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
6 T6 r9 x' _. w* Y! {{. E: T" m: ~! D* ~4 M( t9 M
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 Z$ s+ k5 H3 v5 ?7 J CRect rect = pWndCtrl->rect;7 G& e' Q! B; A& v% G8 T: C# w
if( rect && rect.PtInRect( point ) )5 y5 k* I1 M. X0 S
{2 k+ Z( b; Q! N, L9 `( v2 g% x% c* J0 S
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
1 S$ Q) u3 ?* Y if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )4 q8 @; m- ]$ _% N% p. @ E+ V
{! y$ B* @( I& ?1 O
if( m_pItemElem )
& I+ y" y; t, _8 m+ ~ {; v; k' {2 Y" T1 _) s# T9 E
m_pItemElem = NULL;: ~: ^& L5 L7 E" ^) r- F
}
; d! Y: a+ K4 `- g* { m_pItemElem = pItemElem;
% Y5 n4 O. W( F/ J2 U. y m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );) r9 D" l/ J9 @- Y
}else{
' w$ U7 ]: U$ q' C: ]6 d5 x& ^ SetForbid( TRUE );
0 u! K3 l% ^7 v- c. C/ t5 t& Z }! M* J# q7 Z- {% z
}else{
" z0 k$ I' B$ Q0 G7 ]7 y SetForbid( TRUE );
# \) x* t3 P: w# [$ F8 A }3 n. U( F( s$ G( i) Q% h
return TRUE;1 p6 \) V4 o" H; U# l
}9 l( q1 f, V J6 |% M& ~
- J `& g9 V& W& Q9 Y( |- v. m5 G7 ?
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )6 m" I$ C' M2 l
{4 O- e2 ?+ }! I) ?) s- N
switch( nID ), a/ \, f& M; W9 u2 j
{
9 p3 U g( r1 x case WIDC_BUTTON3:& i, c; R9 I! _+ x* K' o" c
{
$ }' T$ Z$ i; W bStart = TRUE;) G& H3 l4 X' Y! i
break;9 O; g/ Z/ B3 P& f
}
% C9 F6 `" g% d. C: ]' {: X case WIDC_BUTTON4:8 g U4 u1 q7 U! J- j$ k1 R. g* o2 ~
{
" Y$ s8 g8 m2 `4 `6 F/ y, {5 s bStart = FALSE;
; o7 i/ j2 M; z6 `1 G) p- \5 R break;$ ]8 S# p) z9 y4 j" K% E
}
, g: e8 F% w" w$ ^, i1 m4 `' } }
) d* o" {; n# A4 m" k return CWndNeuz::OnChildNotify( message, nID, pLResult );9 e: _8 H+ o1 _1 o/ q- U" F8 ^
}
/ P3 v# {1 d+ D2 C1 F' {" J- Jvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
/ U& p' y. o; K0 V3 T{
/ ?, m' J& q2 v2 ^$ Y CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 ~1 O4 z/ H( B4 N
if( bStart || !m_pItemElem )# Y9 t# J# ^7 B
{' p9 x [% G3 d$ }$ O* I7 `
pBtn->EnableWindow( FALSE );" m w4 _ S# u* S6 v. _0 Q
}else% \3 } g$ O% M- b# W; |* }
pBtn->EnableWindow( TRUE );# S# A5 s: V$ ^7 e) p9 X
if( m_pTexture )
" a' b5 y) l$ H2 U1 [( Y2 J w/ U {& C- L3 k( i; B x6 y' I# p4 E
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
" @& C4 Z* J* a0 R; o( e if( wndCtrl && wndCtrl->rect )
0 b+ Y: A* J8 H. c/ V2 a {
6 I j% S( N. C6 U1 T& C m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );8 O ^1 I+ d8 W. w" k4 t$ x
}
# B1 |. W! p, j* E+ m3 { }6 c4 v* g, ]/ p8 H0 d0 P
}0 k e% j, h7 K' J9 l
) O* Z( z0 I) L7 W) E6 z: Z: a
BOOL CWndAutoFood: rocess()3 P& l0 T+ k( p' U' b
{
, I" B# _* e# E- e if( bStart )
; S' f/ l) X4 W, K. k: w7 M9 i {
4 j4 I1 e; ~7 ] if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
1 Q; x k( F' G3 ~ {0 r% G k$ u, J; ^0 F! c& Q0 ~
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
" e* r- B) x7 [$ V6 e e" M% | g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
9 d4 X4 c, h1 m. a5 ~3 e }else{ x) i7 ?0 ]; s% g
bStart = FALSE;2 q( D6 S" I, ]4 l! c8 F) [& g- w0 n
m_pItemElem = NULL;' e# j9 Y# p7 k+ L/ k6 |
}$ H3 _5 Z) l# Z& I6 m! c: C! @1 N
}
; u M8 x+ ]' i% v return TRUE;
+ c# y- F& W4 l, d+ G7 M0 J6 T7 N}
8 [ o5 A! G5 C: b# O; v
7 T; B& D- s$ p; o/ O6 e登录视频废话:$ j8 k6 N7 ~& A$ N
尾翼:
/ y ] ?/ f: k1 B. n; E) v- P. Q
代码:2 b4 u. a1 V# t' k( x" h. s6 v
# H. a' C5 _' r1 \* X/ `( ~
void CWorld::SetLight( BOOL bLight )
- \/ I% _# p# G% O% B& N! Fdurch
. x( F- U i7 g$ |# [$ gCode:
. n, n, _ l. b$ K2 f. Rvoid CWorld::SetLight( BOOL bLight )9 |: V9 O0 B. L' P( g/ V+ s( v* c
{
3 _! F f/ F( {7 g% ?( P$ H+ h //ACE("SetLight %d \n", bLight);
: Y/ [% c& S9 {" o
- ?/ A# H3 W l9 i' U3 r#ifndef __WORLDSERVER
9 p$ F! _% W% v DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
- _9 L! u6 y: h CLight* pLight = NULL;
8 m8 `1 y- A, M6 C6 P
; {% D& C/ g1 j7 |% ?# O; T4 u$ Z D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); k* t* z4 x; ~; h+ e/ v9 J* l
: f$ _3 [# R: R" ]) p+ w
pLight = GetLight( "direction" );1 J/ R- b8 {8 S" _& F1 O5 K
6 A6 J5 W/ D( X% w5 _) N; ~- R6 f#if __VER >= 15 // __BS_CHANGING_ENVIR
* \' |; |7 m1 U* O if( g_pPlayer ){
$ v* f0 P: \; E7 Y( T, f; t ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
# F8 e+ N x N% Z9 ?" T' m9 Y if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
1 c1 K* o9 E- ?- @" V9 | {
: [. B; U1 M* F7 E ?$ T9 V& R p if( pLight )% d" H5 P5 i: U
{
" X; M, g/ E/ R4 ? pLight->Ambient.r = pInfo->_fAmbient[ 0 ];' Z A, e$ T+ k6 N8 ~
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
, r1 S1 {% s4 c6 ^ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
0 `( d# B0 o5 C5 t2 V- T7 n* X2 e( U7 M
pLight->Specular.r = 2.0f;
3 V, ]& i! a6 e' }! b pLight->Specular.g = 2.0f; [" T- n9 r2 J2 T
pLight->Specular.b = 2.0f;
/ o, P l4 [3 f( h7 V9 r7 l( d
1 v( a1 f4 _2 v! B4 p pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];) Y. S' h# j* q/ o) A' U O
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];2 E1 F) w, U( }$ Q( U& b$ m
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];8 [; e+ _$ J$ Z% V. Z# r( \! h
$ M& ^8 r/ _. R0 N8 ]
HookUpdateLight( pLight ); ' ^, q1 Y! s8 q0 ~8 D! y
o d+ ? d6 Y. \; _6 R
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" {! m3 l+ v ?* Q* G: ^& g6 a * X4 H% w1 B' A- }4 e% V
pLight->Diffuse.r *= 1.2f;0 s$ J! \6 E: O
pLight->Diffuse.g *= 1.2f;3 c$ x" d( p1 d/ F. o5 S- D
pLight->Diffuse.b *= 1.2f;+ u/ O, Q8 N! }, C! d9 i+ Q
, r5 J: u' X1 q* L u0 b5 y
pLight->Ambient.r *= 0.8f;0 A3 ^8 e5 D/ p+ P1 m! w
pLight->Ambient.g *= 0.8f;. [! ]- {- F* k
pLight->Ambient.b *= 0.8f;
5 h k1 L; o V) N7 z) g8 Y. g 4 ~' r' _: u4 P1 L! D- r
memcpy( &m_light, pLight, sizeof( m_light ) );
- e: ~2 X9 |- E, T! U6 C
1 X6 q2 D f1 ]9 v1 I8 u! t S D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ U3 s' t! m- U, S0 l5 c
D3DXVec3Normalize(&(vecSun),&(vecSun));" Q) }0 q/ w) S* {5 g! \
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. A3 |! g: L2 k H! g4 L pLight->Appear( m_pd3dDevice, TRUE );
& p( I6 T7 v- L& a 4 `0 C6 i9 t s
DWORD dwR, dwG, dwB;" J% B. @, g7 l8 {0 \- z$ G
dwR = (DWORD)( pLight->Ambient.r * 255 );: J% D! ^) \7 e" F
dwG = (DWORD)( pLight->Ambient.g * 255 );. ~4 t! u6 F p
dwB = (DWORD)( pLight->Ambient.b * 255 );
: Q' }. Y9 x6 `7 I dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' {* S! m* |! E- S$ M/ l" n5 w
}+ r% M9 G! W4 d
}
! f4 q/ C- A( t8 O. T! b) m }. n6 r+ \: e6 t2 P! |. _6 N1 t
else" D3 r+ D2 W' q, _
#endif
. t0 n- g% I: u( O- Q9 E$ F. U( j% r9 u* G9 c* H" _" f' Q q
if( m_bIsIndoor )) c5 @' E, f% J* p
{
. w1 c! A- {2 k$ k if( pLight )% \* |4 x' q. \4 G8 c
{
" d& A+ t% L, k+ f8 f // à??μ oˉè*
, A3 y, A8 O4 V# e8 ], N# ], |; ?! H pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 F4 |+ m# s8 _( V
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
6 I* f- R/ z6 Y5 ~; ` pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;- l' {0 p! V9 Q. \# G3 \3 j- l
" p2 X6 c& a$ s1 J
// oˉè* ??à? $ O+ O% S2 O% Z$ f$ _/ X
pLight->Specular.r = 1.0f;' n$ y( X3 n2 h' y* c$ X
pLight->Specular.g = 1.0f;
/ o; h8 J/ b ` ~+ O2 F) i pLight->Specular.b = 1.0f;+ Q! L$ ]: L- j. A
// àü?? oˉè* , x6 Q: a; P6 e$ Z4 p$ V
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;" t0 d! o" z- H7 |2 O( C
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
* t; u/ ]' D, D. _0 K pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;" k: q0 _$ \, X. f; z' s
! g/ G. R$ w1 U* J1 j8 E* E, L if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.' B P: k/ X) V! ]& b6 |
{( X# _# d" q9 R, ]4 W" X, b
pLight->Diffuse.r *= 0.6f;* E B' w; O4 Y+ |
pLight->Diffuse.g *= 0.6f;
" ^ x( F) W- @0 @* ^ pLight->Diffuse.b *= 0.6f;
+ ^3 L3 o& N H, B& F pLight->Ambient.r *= 0.7f;; C7 p, u0 q4 T8 @$ A- v9 \
pLight->Ambient.g *= 0.7f;
9 b3 V# b5 o% D" J8 M2 u) r pLight->Ambient.b *= 0.7f;' j6 _4 O- i T
}& ^9 \3 N) W* Z( k
4 Q: ?* T! C2 M/ w
#if __VER >= 15 // __BS_CHANGING_ENVIR
. {& @! C, t4 H7 ~3 | if( g_pPlayer ) S' ?4 J& e; w0 ^ Y# K) g+ v& T3 V
HookUpdateLight( pLight );7 }. l) x3 e2 L8 s# v/ J1 e4 T4 S
#endif
$ A+ T" M1 n- M6 f% g memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; l2 ~1 g8 `4 a# u$ M# ]. `, [) d# Z
pLight->Diffuse.r += 0.1f;2 w2 S o2 O2 s" c# g0 H) t
pLight->Diffuse.g += 0.1f;
& s8 M+ m. S8 u9 U2 j pLight->Diffuse.b += 0.1f;; Q0 `$ \% }$ u. \; X3 U
// oˉè* ??à?
s' @% i7 n' K" e6 q2 a! g pLight->Specular.r = 2.0f;
$ P" M! }/ N. x& X3 }2 I pLight->Specular.g = 2.0f;
4 B- ~% h& N5 `# W( z1 c0 x pLight->Specular.b = 2.0f;9 x1 e1 ?& }4 i5 [0 }4 ^+ p1 n8 p
// á?oˉ + z' W3 `! m r8 B
pLight->Ambient.r *= 0.9f;
" q- w) Q& n S' ` pLight->Ambient.g *= 0.9f;
( a# B5 o1 Z* }2 T pLight->Ambient.b *= 0.9f;
9 v' Y& y' p0 J4 ~
7 `! ~. E- H9 E- H memcpy( &m_light, pLight, sizeof( m_light ) );
3 ?3 c+ t# n8 R- U - t0 a6 f% U5 N0 [" d
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );% I( I5 }2 p5 w" V8 n
pLight->Appear( m_pd3dDevice, TRUE );" D- u+ Z: ^$ z( n2 s4 E* r, ]
8 M7 S4 B" g+ M$ \" M DWORD dwR, dwG, dwB;. \4 K" W0 |2 b8 e
dwR = (DWORD)( pLight->Ambient.r * 255 );
0 {" I; v& R% u$ I: j dwG = (DWORD)( pLight->Ambient.g * 255 );
/ B' P* a0 K7 o {0 }* I9 |: C* s dwB = (DWORD)( pLight->Ambient.b * 255 );
) w: Z2 L8 @ g' y1 i8 ^% a9 N6 s dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 I+ c; j X4 s. x
}$ I; t- L# ]6 t4 Y
}7 q3 H, v. O+ c" _4 \* K
else
5 l* x8 J& v9 _( X {
3 a0 f$ d+ w7 j3 s( Y if( pLight )
3 t9 p* l5 O( u2 n! D* ]( j {
5 E U" m7 M! a" g+ x
+ n( R' z0 h- z$ M int nHour = 8, nMin = 0;6 \& @! |1 a$ E4 H3 f+ n L6 l M
#ifdef __CLIENT
' K y P: \) R3 z1 S9 I // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. x, m" z! z! w5 y6 }- R, T
nHour = g_GameTimer.m_nHour;
- F! u) M4 ` y: n+ X nMin = g_GameTimer.m_nMin ;5 U8 S8 T0 j2 ~+ ~5 @- l
#else
! g7 {- |7 k& c // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
0 I4 a! w/ y0 s6 {5 H, I( p. ^ if( m_nLightType == 1 )
0 n) z( ?( w& S$ C3 { nHour = m_nLightHour;" d8 X0 B6 m) T
#endif) Q' G t9 l( B; Z9 v
nHour--;
/ Q7 ^+ k1 S6 ?3 Q0 z) D2 y if( nHour < 0 ) nHour = 0;1 J3 N6 F% _( K" s
if( nHour > 23 ) nHour = 23;* J% T" g9 P3 R' d
% _4 Z5 O0 m: f6 N5 J- P
//if( m_bFixedHour )
( ?# t8 L# [* n) W1 W q // nHour = m_nFixedHour, nMin = 0;0 g6 ~( V5 z( [' f, ]7 g' ]' b
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
7 E" T" j* n K$ d# E* K: f LIGHTCOLOR lightColor = m_k24Light[ nHour ];0 Z! }( m! }1 T& J7 d
" p2 j" ?6 x5 f0 Z( N //m_lightColor = lightColorPrv;
# U; y; c8 v! N y( Q lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
7 R. X7 }4 ]8 q' H' R0 I lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;' a4 g. k) l, ^5 G
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' u5 y- k! T' J2 A
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
6 X* `' u7 Q, o" V lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
8 s! e# w7 B2 J. L$ l+ O lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
/ A- e5 I: `8 F; i // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
- X1 v( R7 T& @6 @- Y3 T, h1 S2 m; i+ p
// à??μ oˉè* 7 `" {- A5 i/ Z$ a. k4 K
pLight->Diffuse.r = lightColorPrv.r1;
7 s) l- z' n* q7 q3 h! Y2 o/ M pLight->Diffuse.g = lightColorPrv.g1;7 Q1 S: f# h( e0 b8 k2 s+ [1 |
pLight->Diffuse.b = lightColorPrv.b1;: h; }9 @: X" F4 K: y% Q: e
// oˉè* ??à? : i! a& C5 ~5 B" ^- y
pLight->Specular.r = 1.0f;0 C) e! r) C& l; m
pLight->Specular.g = 1.0f;1 Q% n( U' i$ p1 z
pLight->Specular.b = 1.0f;5 Q9 f$ ]' ~. p; D3 u
// àü?? oˉè* * a. }2 {4 H, C/ d. Z, y% x
pLight->Ambient.r = lightColorPrv.r2;/ o, ]3 n8 ~8 V; k
pLight->Ambient.g = lightColorPrv.g2;" t( W% I9 F+ T0 ?: M- [3 D
pLight->Ambient.b = lightColorPrv.b2;
& ^/ O( x, [* }4 J1 H ~; V! S0 O) n+ x4 H7 {
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.! e5 t6 i% I) G6 u* q3 }
{
! D/ c' c* J1 y$ p# z, j: P7 ] pLight->Diffuse.r *= 0.6f;" Y/ T2 o& s' b, a$ c/ ?) L, Q
pLight->Diffuse.g *= 0.6f;
5 I- X) @, A- W3 j n pLight->Diffuse.b *= 0.6f;
+ c' I$ J2 j; ]4 g* Z pLight->Ambient.r *= 0.7f;' W1 Z# |+ S1 S$ f V; K/ Q
pLight->Ambient.g *= 0.7f; n: Y% h7 M% j/ v: }& [* [
pLight->Ambient.b *= 0.7f;* j+ C1 ]& z4 I- S4 D
}
, h# T% M9 ~. S" f( m . R* `1 ^5 Z2 y4 A% v
#if __VER >= 15 // __BS_CHANGING_ENVIR
& F' Z- H0 Q4 c4 x8 |. e/ t if( g_pPlayer )
9 Q' I: M2 D( N! z HookUpdateLight( pLight );
8 o+ B9 C2 Z7 t6 P#endif# |: z9 @/ m1 [+ g; ^% p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; \! J8 F. y1 d6 X$ Z/ P9 w9 R( s
' \ J& O% |. X" [2 l% N#ifdef __YENV
4 y+ s8 I* l* W& p6 e pLight->Diffuse.r *= 1.1f;
, O6 Q9 N4 e: M) [" Q pLight->Diffuse.g *= 1.1f;' X. Y# f9 L0 q: t& G8 d1 F
pLight->Diffuse.b *= 1.1f;
@7 Y R. Q' h9 o; y/ j! X* x0 O4 y // oˉè* ??à? - f# @6 u5 Q* B2 C8 {
pLight->Specular.r = 2.0f;3 _8 v6 C+ g+ O
pLight->Specular.g = 2.0f; [2 E2 Q. j9 L7 m. k- X' b
pLight->Specular.b = 2.0f;
% P P2 Y5 J( I# M // á?oˉ & u7 r3 y) M, y: N# N
pLight->Ambient.r *= 1.0f;
3 g- c4 A) O& k: y' k pLight->Ambient.g *= 1.0f;: \9 f5 `( H5 K( M
pLight->Ambient.b *= 1.0f;0 s3 j* l9 w! w% p6 r" f: Y
#else //__YENV
3 y! Z7 @; O2 M' t' s* B/ m; E+ h* ] pLight->Diffuse.r *= 1.1f;! i9 p/ E; p7 K: H' E4 n
pLight->Diffuse.g *= 1.1f;4 i e: z/ v# E- t, j- a% D+ ~+ v: G. z
pLight->Diffuse.b *= 1.1f;0 W( q% b. v/ V) s# |: [; m# k
// oˉè* ??à? 2 W$ K) n! r9 y; Z- e' A& T' |( ?
pLight->Specular.r = 2.0f;
* q# _1 S8 J! h9 n. {4 p6 p pLight->Specular.g = 2.0f;3 b) z& {( f. g, d, a* i1 @
pLight->Specular.b = 2.0f;$ G( p* {$ y7 W
// á?oˉ : i n6 b# q) d
pLight->Ambient.r *= 0.9f;
9 j4 O( D# `( v; ~ pLight->Ambient.g *= 0.9f;9 D( ?% s. A; H+ V# b( D
pLight->Ambient.b *= 0.9f;% Q& c: W5 G/ i0 c& L# _, u
#endif //__YENV - N" C A. S$ \. Z, S5 y; H
* `0 {3 j5 f) {' m5 S
memcpy( &m_light, pLight, sizeof( m_light ) );' {2 A3 W+ Y5 k; ]% S) e* E
4 r! ^0 p3 Q9 S5 R- x7 U
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
" s( h% C' D- H8 \ D3DXMATRIX matTemp;
* K1 R6 c8 y8 R8 F: ^& [ static const float CONS_VAL = 3.1415926f / 180.f;) e: @) X8 E( Q i7 m# C
% u% H; A/ N$ g+ h) V# j
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
9 P7 @+ ^0 \0 ` D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);+ Q) X" j( N# d, z
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 4 V2 K% l4 D* ~/ c( ]( v
pLight->Appear( m_pd3dDevice, TRUE );2 T) K6 j" n1 U. ^. T
& m' \& G1 |7 f% }6 J& e
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ n I5 Z: ?; `) Z4 m" Y // D3DXVec3Normalize(&(vecSun),&(vecSun));
9 P+ W* S+ F3 r! \7 U) q // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 b( I- T2 P" C l, m
* K3 U9 u! h7 z DWORD dwR, dwG, dwB;6 j, `+ @# |0 A) U d
dwR = (DWORD)( pLight->Ambient.r * 255 );
~& F; E- A9 [9 F dwG = (DWORD)( pLight->Ambient.g * 255 );# \0 ?; R# {& f5 W8 O- {
dwB = (DWORD)( pLight->Ambient.b * 255 );$ k( g# I( u$ |$ W6 v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); $ b4 J5 C: {1 T {
}
/ D% z. f$ }6 p9 ]0 R0 q+ ^. E }
9 I' [3 Q8 }' O) ^6 Q& q& ^# n. u6 r! i6 r7 n7 @0 L) s
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );: D8 `1 q; l3 f% \: P2 N; q
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) );, ]. V; F$ w: c u# k+ g( I4 F
::SetLight( bLight );
& S8 `1 u+ b3 a
+ W& r; R# {" I) Y, s6 w9 u* M // ±ao? ?D?í???ó á¤à? 4 u) B! R8 {4 e- W- Y$ T; m
m_pd3dDevice->SetMaterial( &m_baseMaterial );# O* @$ n, y+ F
( y! x. H) K( _#endif // not WORLDSERVER, a! H8 m+ [$ i" I
}6 O/ D/ k! v6 v+ k1 V$ P6 B
并更换
+ s O4 C; s, f. P Y4 |+ DCode:; t% X6 C0 z6 w; f) d; W
__FLYFF_INITPAGE_EXT- ^/ G B: {6 O: f
定义
" ]3 W6 G2 v( j0 ^+ m" w' ~% m
6 L, @$ G3 u) ?* P6 Q% V% G( d. [6 r! Y3 D* M
2 S: o' d2 G! q( [+ @' g# U9 V0 P, Z- C' }+ T4 j
现在终于删除我的狗屁加速...* _; x2 p! E7 Z' W' S) A5 ] {
- B+ W" o5 l8 T2 k
; _9 v$ _1 k' K8 }- s2 f' a# i, U& Y$ M3 D/ J
|
|