|
|
食品车:
( ]# `+ _1 j& \, E. p尾翼:
- T& j) B+ p/ U' c* f" O! h0 T
! q! L1 L9 x% d% W$ M代码:
! @" o B2 Y. ~' t) U+ s4 t5 ^CWndAutoFood::CWndAutoFood()! W& H0 U* X5 x5 l6 g/ q
{% G: h7 B5 l% n- {3 e
m_pItemElem = NULL;2 j2 x. q$ n8 c7 B- S9 I4 `
m_pTexture = NULL;
. c$ Z T4 b) T* l; w% N bStart = FALSE;( r$ }# J8 ^3 |6 K$ O
}
" X) h6 A9 d0 ?' F4 P8 u" Q, Z/ \
CWndAutoFood::~CWndAutoFood()
+ u! N5 N5 z/ q{
9 {' z- \" R: i5 n AfxMessageBox( "AutoFood ist gestorben " );
) o+ {4 c; r3 K" L9 x5 a7 u}8 y2 j! I9 t! i5 D* v1 ~
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
4 { S; M% r( ~7 g4 ~# e7 E{
+ I$ b" Y" F+ e# T+ g' Q) K7 ? return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
! j) `9 S1 }) |6 a% C/ P}
9 c: P" h3 U( s, t; |9 L6 R1 G: Z- _5 h# c2 b" d5 i
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )' f! V5 H3 g! E2 M2 W5 ^
{- N) z8 E2 h# {# W2 n/ n
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! | o- W. y; V* R+ \7 ~ CRect rect = pWndCtrl->rect;7 `/ n* ~/ e( z6 z
if( rect && rect.PtInRect( point ) )
( f( U. t S. T4 i( ]0 |: _( Y! k {- T$ Z8 H% f4 V( G( @
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 \) O7 s& L6 s0 c) A if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
9 j& {! E+ ~# q/ _- V; Q& ^+ U) { {
3 n; w& j5 T, R L( _ if( m_pItemElem )
3 i) R- D0 j# C5 @+ Z {$ ^# w' c& s! u9 y2 k4 x' N1 y
m_pItemElem = NULL;) d" B' _( F2 k8 d( ]
}. W1 N% v! D5 e
m_pItemElem = pItemElem;: A, w. ~- ~* e* e& ^) h
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );' D' j9 V% s3 }( L+ h* B
}else{
3 Z, D! T6 W \# [ SetForbid( TRUE );
: M: R: h. s5 r7 } }
6 q$ z3 b" |- {) q* A }else{
7 T9 A& P' t3 s6 n; A+ J) g SetForbid( TRUE );
' W4 v$ A! m5 O" e. p4 c }
+ L f" D1 e3 c/ H! m8 g return TRUE;
+ `4 e; X/ T1 D; e, ^6 F}
1 J7 @/ K3 ~2 m6 K' @% ]
) r% T- R- q0 L% |+ p# lBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 o0 w: m* U1 C6 v$ t
{6 |' U" L0 `8 v2 r1 ]/ h
switch( nID )
) ?9 n& ^. A9 s0 X% V) l {
% K) F0 V" d. p- ^! n# d J, ` case WIDC_BUTTON3:
" B+ R1 A- P% u; v6 }" p; z& w/ Q0 t' v- v {
5 k* ~) u' U4 L4 x# d. B* } bStart = TRUE;$ X# ~& ~; l, g2 P! A9 [3 `
break;
' g0 K' J6 x- w* m% s5 x' F }) R: a8 u/ S8 n! S5 \6 g3 y" V/ z
case WIDC_BUTTON4:0 {: E9 E X) l- F# k* I, `7 q. n
{( _3 c/ L8 p; a* d
bStart = FALSE;
2 s' M, D/ z! i6 M- F- |. n break;9 X. J' Z3 w `! C! M) D
}% G1 m$ n4 L) S0 |; n
}5 \+ D5 n3 g F! Z3 E7 o; S. m9 [
return CWndNeuz::OnChildNotify( message, nID, pLResult );
9 f/ c+ B' _. F- N" K y6 V3 g} . u- C' o! u! `* o4 r
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
1 J5 Y0 K! ?; l) @ j& ~{" K, b# S$ {, j# F: ?: g$ y N
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 J( m8 Z7 E& ?1 j$ d- [
if( bStart || !m_pItemElem ). `4 s6 @& s& d7 f
{
$ U$ @4 z3 O& H7 U) S& C. ?5 { pBtn->EnableWindow( FALSE );
/ d! f3 y+ F0 n3 _3 ~ }else1 K* y1 z/ f8 A* `0 I
pBtn->EnableWindow( TRUE );
, {9 m X. E0 _. \' d' o$ U0 t$ p if( m_pTexture )
" T5 j, Q# \( G; R {
& Y X1 G6 k4 u3 O8 | LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. Q& d, o. \* J if( wndCtrl && wndCtrl->rect )
# V$ j8 R2 C: v/ E" ]. F {) J2 }' `1 _0 \/ E+ L
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );) l$ x0 d# G' O- m5 B
}
' |; R% L8 _8 [; K' O/ {- }: M# @ } ^' u r. C# K( Z) y3 m# q
}
/ ~3 d" l% d. ^0 |. E1 _, o
, p2 S! c. [1 c' o1 A2 \BOOL CWndAutoFood: rocess()
" t6 { f2 g' I: \- O' s{
, t; }/ R, B3 K% x M3 @( d$ S if( bStart )
3 q! @5 \$ U7 E: w8 F {
+ B5 D: y8 P L/ m" O2 C% c if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )3 J- B h$ f5 |
{" n$ C ]! I& B# G
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
8 V; M) h( E: m2 p# y g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
' C9 p; N. ]9 D5 {3 @ }else{
. {2 U& M V9 w) S bStart = FALSE;$ F3 _; q5 I& M, l# p8 k- F% n/ Y
m_pItemElem = NULL;
! f+ H' I0 q$ ?& z }
1 K& U! g. ?) c- F6 c }
9 @' f$ H2 R2 g return TRUE;
% ?7 h5 t. a2 Q}
' m! |9 g. u3 H( b, j# l: ~( E" a# M$ {" p8 e7 a* [0 m* u
登录视频废话:7 [5 h4 E- s) G6 A; `$ _# X. }
尾翼:8 f5 Y$ e$ X1 s2 J2 r
: C4 t3 d- M3 K7 N8 Q1 ^
代码:0 N4 d6 s2 x2 n5 z7 Z& a" A3 W
" J: b2 r7 r! j; B$ ]
void CWorld::SetLight( BOOL bLight )) _2 d- J% l9 x& _
durch
2 n' A2 x; A0 wCode: h9 o2 O% `) \+ b
void CWorld::SetLight( BOOL bLight )) Z/ M+ d& m& Q2 H* U4 A b
{
, ^* L0 Z. _" F0 E) i //ACE("SetLight %d \n", bLight);- m( `$ T* P8 p+ ^: [* m* t
% y% C5 y( n2 m, D
#ifndef __WORLDSERVER
/ n& T# C) [" ]8 @6 F$ N6 ~1 }, }5 E DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
& Z7 F: m O" s' F8 n3 A( _: C CLight* pLight = NULL;, B, v) l$ z1 S: M/ a
; d8 O& p: g. J D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
5 ` @ H9 P5 q
7 w, f, O" j7 [' [0 T7 l pLight = GetLight( "direction" );8 k4 o# M3 ~$ x) Y+ d
7 n( u. r" E6 T7 t/ R5 J0 A' ^#if __VER >= 15 // __BS_CHANGING_ENVIR2 i0 v8 J8 t( l( Q6 n8 S
if( g_pPlayer ){
: b; i( x/ d5 k" K2 X ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
: B; S/ k+ f( H. Y- E if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!1 Y: ]% E0 t1 R7 Q @
{ z8 r! o0 h& D$ l: H
if( pLight )
: h7 ~8 e: w8 Q {! p0 I! t3 x$ w* {
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
& X/ h4 c) o9 {+ L' o: O pLight->Ambient.g = pInfo->_fAmbient[ 1 ];( G" }* d2 y9 o7 j, q
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];8 M+ o- K/ V- I) `
$ ^5 n- J1 S& n2 p9 p" W
pLight->Specular.r = 2.0f;5 V6 O" ^) f+ P H) m/ [1 \
pLight->Specular.g = 2.0f;
) W6 K% `3 a8 u9 F& c7 d- @ pLight->Specular.b = 2.0f;# U) j G/ y9 A7 {6 K- E0 D
, S* @/ [) K) S, c2 r- N6 A7 F
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];; q# j7 o y' `# ]# k% Y% R3 e
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
g" x. I8 g- a pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];) I; ^7 V/ a! F E
9 P0 m. w8 k& S6 y$ @7 w HookUpdateLight( pLight ); 6 u& n1 |% \9 n2 u8 R- E: K
8 e6 A9 ?, F* n& y9 F5 }
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- F. z: t' z5 c B0 | p' | h3 S
$ h9 W7 H% ]8 T0 G7 g. H' t pLight->Diffuse.r *= 1.2f;; a4 i2 R( l7 n
pLight->Diffuse.g *= 1.2f;/ n. Y: H {/ Z' N
pLight->Diffuse.b *= 1.2f;
% C6 X$ k; ?: u+ T: o+ y
' n J/ A3 j% V9 z7 r pLight->Ambient.r *= 0.8f;! `9 R4 Q9 t; E8 b0 k$ A4 R" H# K
pLight->Ambient.g *= 0.8f;
( Z9 y0 I8 [+ t: r1 `1 u pLight->Ambient.b *= 0.8f;
9 N( P% h- J9 t$ Y& V. P0 F* [! S
+ e! K! M0 v$ X6 ^ memcpy( &m_light, pLight, sizeof( m_light ) );% E& o+ J5 t6 C* |% p7 u i
3 S( t' c8 {% `, \' {3 J D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 l7 C( j( @5 }1 i! s4 H D3DXVec3Normalize(&(vecSun),&(vecSun));
5 ~1 p3 y( V0 T5 ]7 b6 K pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( T0 X5 e3 z5 k2 T; t2 A( L pLight->Appear( m_pd3dDevice, TRUE );
( O( ]0 f; t4 Y% u$ X0 V5 k/ t
$ [2 A0 b) g+ a9 Q DWORD dwR, dwG, dwB;5 _4 W% N4 @8 S) M; l t
dwR = (DWORD)( pLight->Ambient.r * 255 );* o7 z n& y7 ^2 R% A/ u* e# V: E `
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 W% K7 Q, m$ c dwB = (DWORD)( pLight->Ambient.b * 255 ); U9 g% m( p# o9 U! ?
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );: I! g p/ m: p: [2 e
}7 v1 P3 K6 e8 m$ I
}
' m' J7 C7 m' t5 O0 W& ^! k2 K }# n. O) V: U4 L' u) B7 p9 Y
else% e1 i& E# q1 ~7 @8 l* ~) }
#endif ) Z4 X: Q9 T2 t4 C2 Z, Y; P
$ P9 A2 B" s: }! U. D9 }% R
if( m_bIsIndoor ) I8 O" A7 ^1 v
{
" \& w7 @ Z- @7 A) i* l if( pLight )
# y# U }7 l3 {& O/ f! t. C { ) v9 w8 t; L$ F. v( U" \1 l. ]# U
// à??μ oˉè*
' d7 q" i, q5 ]4 [$ w' r) x pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
5 h2 I3 k% X1 d3 r! R+ u" k pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
5 U$ P" U; H1 n; X+ y2 V0 L2 I+ x: i pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;/ c! g, R3 j& f3 a( s- @+ |
; M; }4 H( @6 E$ r
// oˉè* ??à?
# F1 E4 l/ t4 d* s7 r5 m; H# Q pLight->Specular.r = 1.0f;
( q4 a& |; A. L1 I2 h% P8 A* t' B pLight->Specular.g = 1.0f;
0 T3 f! M8 A- J! D8 M& q pLight->Specular.b = 1.0f;' O6 T$ d1 K; y" B
// àü?? oˉè* 7 ]9 O' l+ ]; ^7 W' P( z" f* r
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
% t+ \- c) W9 Q3 G. N2 a Z pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
" Q( C6 N0 X m' B2 K+ D pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;6 N4 X0 \) C" X- b2 W# v' Q, C
1 t0 R3 D& F4 e, j8 V if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 A3 Y) e# ]% E7 S5 s( M
{' W; z- o( I0 B
pLight->Diffuse.r *= 0.6f;
3 I. h- \! c9 d7 K8 H/ c pLight->Diffuse.g *= 0.6f;* R6 i" ~5 H; S( }
pLight->Diffuse.b *= 0.6f;, V3 E g4 k X/ V) R3 M' v
pLight->Ambient.r *= 0.7f;3 s% w$ P3 e; }, ` j: T1 c
pLight->Ambient.g *= 0.7f;" m7 @ B- } ^5 _2 x* v* z/ _
pLight->Ambient.b *= 0.7f;0 J5 }" [# h5 ~0 G) J& r
}
6 X( ?" ~5 u# w' j5 n
; }+ [1 ^# t# i4 F#if __VER >= 15 // __BS_CHANGING_ENVIR
+ u% M/ Y- N" j. u$ T if( g_pPlayer )- _( q$ O, h9 w2 V& K
HookUpdateLight( pLight );; |7 |: K& s( Y8 `9 P+ p( B7 U
#endif& ~& J7 B4 ~6 D# ?: H( [
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# {0 q, t& e! `3 Z: j P6 ^$ }
- T, |, @( m+ J0 A$ ]3 X+ z4 B pLight->Diffuse.r += 0.1f;
- s8 _" x3 Z7 W, n& N% J pLight->Diffuse.g += 0.1f;
* r0 c/ h& z' f: r9 w0 K$ Y pLight->Diffuse.b += 0.1f;
; t8 B4 m4 {' V3 R; Z // oˉè* ??à?
$ s( w8 V3 {7 s. h% k pLight->Specular.r = 2.0f;7 N6 G: Z( I/ F8 i+ | i, K
pLight->Specular.g = 2.0f;% \8 {# h' O* |% Y; Q& d
pLight->Specular.b = 2.0f;6 C$ Z6 Z# U7 V5 J6 W3 J, o1 J2 ]
// á?oˉ 7 G o0 t' w8 Z7 D0 o0 @; p
pLight->Ambient.r *= 0.9f;
/ w3 c* x, E1 ?) b2 Z7 b pLight->Ambient.g *= 0.9f;
$ F% x) ^, j. w) j O pLight->Ambient.b *= 0.9f;& w, F& g6 R4 [
7 n* W1 R3 U5 M0 S$ S5 c$ n8 ~6 J
memcpy( &m_light, pLight, sizeof( m_light ) );0 q' S( J# Y! G6 b' n2 g @
& d& ~% D. U: b4 m2 l
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );( u0 S3 [- @+ f
pLight->Appear( m_pd3dDevice, TRUE );5 S8 H) s6 V2 G g' _
& w ^5 n2 D6 ?: j% Z/ B& p- k
DWORD dwR, dwG, dwB;
G1 \: J+ |9 s# O. \, x" S/ K dwR = (DWORD)( pLight->Ambient.r * 255 );; r( R0 U* I' l. N
dwG = (DWORD)( pLight->Ambient.g * 255 );
/ ?' v' J1 v8 j7 g/ R dwB = (DWORD)( pLight->Ambient.b * 255 );6 u' p& V3 z/ q+ @5 p! b
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
V* X& X2 S3 d }
( [; l3 B. o' H% h7 C, q4 G5 J }
& h8 y* Q& i) L2 ?. L1 ]4 R( W7 |) d else: g: t: E9 h! \7 k. E, G- E, q
{/ ^- P4 C) Q( V B: v9 w
if( pLight )
, o7 b7 C8 f" Q+ U! [ Q5 g( x {; B! [. k8 q! F' I1 T
) Q- }; H* W; U% S3 P1 L int nHour = 8, nMin = 0;
8 o2 ?3 T% `# l5 `; l) `- N #ifdef __CLIENT
" U' u1 X' }& |2 E. L: f5 s3 T // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ; w3 C# U2 v' d7 e$ H
nHour = g_GameTimer.m_nHour;
; p1 G" R1 n8 A1 c: a nMin = g_GameTimer.m_nMin ;$ ]. |% A, Z0 h! D. Z" n
#else6 O" s4 C7 A( o& ?
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.( `) X' T: \+ Y( F* S% ]
if( m_nLightType == 1 )
3 j6 F M0 a# y0 G4 |& Z( m) `% ]6 I nHour = m_nLightHour;9 c# z$ B5 W3 b n) b9 E. s
#endif9 k7 S& N0 s2 @3 j! i; o
nHour--;. R3 m, k7 z. u& T
if( nHour < 0 ) nHour = 0;
% `; Y9 Z, R* T' @$ M8 Y2 x* q+ ] if( nHour > 23 ) nHour = 23;# r4 [ h3 z! O* S) V; l
1 l' s7 n4 x m j4 V( J" ~
//if( m_bFixedHour )
1 s- \# e& X# ?5 \0 l$ l // nHour = m_nFixedHour, nMin = 0;
" Q& I1 }% i, V! ^" a; ] LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
; ]; b8 x' g/ d* c7 m0 c LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 U( x% ~/ _ d# b
: u1 H, M$ w, Y7 V7 U% c //m_lightColor = lightColorPrv;
- ~) t# B: _ n* l/ V, p g lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;7 \7 _- b9 c$ K
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
, s6 I/ I) r' w' m" U) p! ^1 { lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;( f+ g: L, `; t8 x# M! w; ]
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
3 B0 y6 p$ D+ `- Y7 P lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60; f- t8 u% q6 Z
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
4 |- j. S0 V: V9 f9 U2 H- \ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
8 E9 G1 ], P0 ?- v8 N/ K% p0 K/ J% e" ]5 |' `" ~& G1 g
// à??μ oˉè*
0 U5 J0 s& [ N0 G% K; U pLight->Diffuse.r = lightColorPrv.r1;0 ^/ F8 V% o: n& d
pLight->Diffuse.g = lightColorPrv.g1;
: X% k! W* k% [; h% k pLight->Diffuse.b = lightColorPrv.b1;8 D) c/ z1 L3 g# z1 a6 _
// oˉè* ??à?
: o2 F4 z* T3 m pLight->Specular.r = 1.0f;
, b9 a. _) P; k- _- V pLight->Specular.g = 1.0f;
7 M) w$ R a# ?/ x- g& b pLight->Specular.b = 1.0f;4 D( o5 z" C1 O; W
// àü?? oˉè* + ]0 l& y- N% R$ m
pLight->Ambient.r = lightColorPrv.r2;
, U) W$ f; A- F: H8 a2 Z pLight->Ambient.g = lightColorPrv.g2;8 N5 d6 Y' ~7 m W7 k+ o# f
pLight->Ambient.b = lightColorPrv.b2;
9 M( }# u7 p" `- h" T$ `3 M$ ]/ d* z$ i6 S4 I4 V
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 g# G2 `* t+ Q9 j0 `# ]
{
$ f' M$ G6 M" d5 a1 \ pLight->Diffuse.r *= 0.6f;7 D8 F! a4 B9 {, d
pLight->Diffuse.g *= 0.6f;
7 S) k' V8 ]4 W" B" Y, V& }# Y3 | pLight->Diffuse.b *= 0.6f;
0 M+ E4 J% b9 F. w& L5 S pLight->Ambient.r *= 0.7f;+ \# z: G+ J1 F" V q: A; r
pLight->Ambient.g *= 0.7f;: j& A8 q1 i4 l, k. W E
pLight->Ambient.b *= 0.7f;
/ U0 X9 Y+ y5 ?. M }9 M3 _0 q! }9 g5 R8 _
5 u0 S! [7 C# j" F% ^3 f#if __VER >= 15 // __BS_CHANGING_ENVIR) D6 G+ c8 m5 [' X
if( g_pPlayer )
( s- i% l, w. N }9 P/ D/ W5 ` HookUpdateLight( pLight );
$ L, O2 c" l( z) D' V) c#endif: b F1 e6 S6 n" |! r( ~& R1 a; q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) L0 ?4 X# k2 K2 O$ i8 n: Q, ?
: x% N( ?/ N' X! S4 J#ifdef __YENV3 m8 j& W) I* z2 `
pLight->Diffuse.r *= 1.1f;. }" \3 L+ ^6 C$ n# X: u
pLight->Diffuse.g *= 1.1f;
. m& m2 T8 C5 Z' }/ e- y pLight->Diffuse.b *= 1.1f;4 @0 r' I% I+ X
// oˉè* ??à? % k: s, f" v, J! a' j. s. {
pLight->Specular.r = 2.0f;
. c6 z6 y' ` h" P- E) ^, @9 Z pLight->Specular.g = 2.0f;$ E2 r% m( _2 o: c( k0 m
pLight->Specular.b = 2.0f;; o4 \' A' f. C! ]& `- i3 O; O
// á?oˉ ! w6 k8 p- J% C1 o# F* s
pLight->Ambient.r *= 1.0f;* A* t" N3 G0 B0 V9 u+ [, b' Q
pLight->Ambient.g *= 1.0f;5 u5 r+ h7 k( s3 I9 L7 d) b
pLight->Ambient.b *= 1.0f;, c% v& X+ s3 s/ I, F
#else //__YENV
* C9 s- u! `% H0 F& u pLight->Diffuse.r *= 1.1f;
, ]# p+ L' ?# T5 |$ U8 z pLight->Diffuse.g *= 1.1f;7 I) I6 e; S, P$ x6 v
pLight->Diffuse.b *= 1.1f;$ Y' c( C% }& g% ~5 ~5 p
// oˉè* ??à?
( c$ B# P p# h; I+ j6 s0 m Q pLight->Specular.r = 2.0f;
' f% h! Z$ J/ ~8 C pLight->Specular.g = 2.0f;
! X: x. I" {: e( t( g. {8 b pLight->Specular.b = 2.0f;
5 `1 @7 Y9 Q8 Q# d& g q // á?oˉ # H! r# }6 N N1 n6 j/ y( f
pLight->Ambient.r *= 0.9f;4 g7 f8 K# b' }1 M4 y
pLight->Ambient.g *= 0.9f;- F0 H# \$ z5 A& O0 K. f$ M; C7 E) o5 p
pLight->Ambient.b *= 0.9f;
- g2 n9 O% F: L, O! ~+ J#endif //__YENV 2 o" w3 p0 F) [ {
, Z- G: F( N$ z0 u+ J; F
memcpy( &m_light, pLight, sizeof( m_light ) );2 E9 T( J9 g6 i7 `! _, c
1 F; X3 d. j1 D( {- p
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
9 i# ]5 B N: z: y: ], |3 q( v D3DXMATRIX matTemp;3 Z* `0 f; h6 c1 K7 m" T
static const float CONS_VAL = 3.1415926f / 180.f;0 |) ^* S$ Y$ V/ ]; I8 o
' G4 X, d! f n
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);$ j4 l! ?# ^9 z# Y
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
" h& |/ N" w! f2 e" n' c pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ' U8 ^$ n7 r" Q7 T" C
pLight->Appear( m_pd3dDevice, TRUE );
1 ^4 g. u5 w8 c/ i0 L$ f0 t C0 u- `" P9 g0 R7 B9 L/ G( G
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
: N" A5 P, R3 w/ Q, b) a* j! w+ b8 ?0 C // D3DXVec3Normalize(&(vecSun),&(vecSun));! T6 m1 u# q! K
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. ?; M# T$ y6 Y O! ]+ R# S+ P# q2 X( r
DWORD dwR, dwG, dwB;
, l O4 t2 d C4 ^: K+ N, B2 r dwR = (DWORD)( pLight->Ambient.r * 255 );! Y+ P& e) s1 q# _
dwG = (DWORD)( pLight->Ambient.g * 255 );' x+ u% R7 z- r2 X- T7 |, N6 x
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ Q6 H. C! i% F: D dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); . \1 |" F$ S1 h
}
! K/ D3 N& p4 P4 v; I }
, ?. H, h" C4 g8 d* x/ o
B" a5 [7 ?+ f; |1 l3 I, M m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );) ^( j( h) l' P7 d9 U; Y
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) );4 R8 @4 \$ ^( ]# V0 ]; Q
::SetLight( bLight );
+ C* Q2 q8 T7 g( g7 F8 b
4 } n% t5 h6 o- ^ // ±ao? ?D?í???ó á¤à?
3 i7 U0 z' I/ p/ ~5 e. X% e m_pd3dDevice->SetMaterial( &m_baseMaterial );9 X$ \" F9 L/ r
' ]. a! w* P$ F* [; f+ U7 u9 }( P#endif // not WORLDSERVER$ W! ]' s6 L$ J4 b% I- l" B7 c" L
}
1 f! @( ?" b% c并更换
s7 ^0 q! D ]" Y/ ` q, ~! `' RCode:
/ ?! A# H% q" D6 o__FLYFF_INITPAGE_EXT
, f" Z( L/ ^2 h% r* J) {定义& z! `" y' C5 n) P! j" p
/ ?3 h1 D0 U7 G1 K
6 V2 o* c" r$ F ?
; k5 J# A! s' \; `. i! K& Q- V( k
现在终于删除我的狗屁加速...) p) V4 o4 W: Q- ?* D6 B
; }# P* T+ q" E
) e3 U+ j% [( l& V( O
) D( U' S$ i& @: O& Y% I6 [. T3 P/ r |
|