|
|
食品车:
1 Y' O( c# E0 l; ?* {* _尾翼:
: S6 p7 t. r& D9 G' v. l8 ]8 f5 y% ^. i3 W& C
代码:) Q [: ~/ P+ l# y6 z4 z2 a
CWndAutoFood::CWndAutoFood()
9 K+ `( K* a+ k2 o( o{
! ^" c7 K: Z" |2 j( N m_pItemElem = NULL;% p' v$ E P3 \3 |0 A' {; m! r
m_pTexture = NULL;
% ]$ P& E a- j2 L& A bStart = FALSE;
1 K* U% p8 b# P( G& H, s}
" `2 ]; c1 [/ p/ K. w0 [% t
0 _- `+ _7 N3 ~CWndAutoFood::~CWndAutoFood()
& q; t0 Q. Z2 g2 {{* e9 r( @. n" @' E
AfxMessageBox( "AutoFood ist gestorben " );5 P& c1 V$ E* d$ u' N& \' j. h
}$ _4 ^+ W. R+ J+ x
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
0 y/ U# q Z. R$ d{
- P3 Y7 f! I1 k8 X return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
( y$ n) t/ E' W8 N5 S' k( p! [: k}
* D# a0 ^* a K/ r' R3 v0 j" o& A
+ H( w( [6 E& A. KBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
. i5 ], M/ |3 a' _: u8 v5 R{
' A, u5 v/ W- ?7 l/ p8 d LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 J# {0 J6 J" A' u; c+ A$ a( p
CRect rect = pWndCtrl->rect;
0 S: |! j2 E8 a" W if( rect && rect.PtInRect( point ) )
! H. K8 K' s) `. s7 q9 h6 x {/ m8 w. f& E% ~, J4 f
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );: \' }; g# Z- o6 r+ x4 r
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
4 r8 G, } e7 X# \, q* Q$ f {
# a: w+ T; G3 M' X: b1 O# ] if( m_pItemElem )
* B4 | j( I: z' G {
$ {+ W9 ]: K7 Y m_pItemElem = NULL;
9 V- N9 e3 {& m' k+ h; H. M' Q }
" K: t8 i. O& S$ H- Y1 F m_pItemElem = pItemElem;
+ ~# z( k. h4 p0 }" B/ m+ ? m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );5 w. r: o5 t1 T4 S: b
}else{5 `) H+ k- E1 G: R
SetForbid( TRUE );
: \) c% o6 E! V8 d2 f4 l! a }
- }/ k9 Z2 `7 f3 n! b/ Q }else{
9 Z' w: V! `: ^& f; N/ w) c5 e SetForbid( TRUE );, {+ V4 u& w9 I9 \7 J% O* ~
}
8 p" d9 k( u; n/ k return TRUE;1 \5 D- R* Z% B. G) i
}
; f/ F% q- b, H# u5 w9 _' |0 |$ u6 U+ Z" a, }
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
" S* H5 i {8 p; r7 F: o5 C( X* h{
# x, R7 L7 A& v0 ?: R* Q- H4 E) \: x switch( nID )
4 w& X4 i/ ^; {3 D! w* R {
, S7 y7 K }, ?: R case WIDC_BUTTON3:! }+ W$ _- Y1 P$ n' T8 A
{
1 [. S5 p& a# s/ g3 q8 A! a5 B bStart = TRUE;
, `6 D( b- K9 G. j break;
/ O0 S! G9 S7 {4 ~; I: f3 P2 a }
' a; T% d& k7 a$ E( B case WIDC_BUTTON4: p" W/ P" ]5 O: s- a
{; c+ ?) c$ V# K% h0 z, F6 h/ \' R
bStart = FALSE;7 J6 W; X1 Q" B* e, L! |: v- ^+ r# l2 g
break;
! S9 p/ ?$ E( p8 O" ^; z }
9 a0 m$ L+ N8 M4 Q& Z }
" @+ p2 W# N. `/ e/ ]* k$ i return CWndNeuz::OnChildNotify( message, nID, pLResult );* S; Q! ^: B8 q) a, c
} 7 V( O r# r3 V! F1 j9 |
void CWndAutoFood::OnDraw( C2DRender* p2DRender )4 E0 I. ]$ |( v9 ~0 v
{/ T4 ~5 } r4 M3 K
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );7 W& T. t( A' o" d0 B! e8 S# G# \+ M1 M
if( bStart || !m_pItemElem )# B+ N: g& w- ?) T" O) O) Y
{3 S) |! |. _% H
pBtn->EnableWindow( FALSE );
# _& o: Q6 [- m9 ~ }else; |' S. P" t& ]3 q) Y7 ~$ z
pBtn->EnableWindow( TRUE );: z% z* ?+ Y% ?% ~
if( m_pTexture )
& L u3 i. X$ Z# {. C E$ ^' P {; ]( {1 D3 }! l, O0 W
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 U6 S0 U7 b- I3 L if( wndCtrl && wndCtrl->rect )* _" B* p9 n7 i, A6 z
{' S+ n6 Y4 j' x
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
$ z- w* F6 _0 I3 Y2 U$ y7 U }
0 X) S* h1 x: G7 V; W; Q }
, q; v; L/ D) u% W' H. P}
; H& _+ d) t( s7 Y8 ~( M* {& D+ Q3 P+ s! H# w" i5 \
BOOL CWndAutoFood: rocess()" o7 m9 Z; k' a6 E( @7 n* d! k4 ]
{0 r% n f( z E
if( bStart )
! T) V, u2 M6 Q% _/ P {' S7 X$ r+ A! K
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
7 n! w6 w1 O9 i! e& V7 r+ l e% z _ {6 H& R1 _. x( Q/ p+ w8 L& \- {
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )6 v9 ]5 k: y/ o9 D
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
+ b5 e0 F( M4 _+ t) A- Y6 l6 } }else{
/ z1 o# Q$ |& v0 v- M3 F3 E, J bStart = FALSE;% V; u' d7 [2 `0 a. W' e# t
m_pItemElem = NULL;: |2 P8 k0 ~/ b1 \
}
% E5 D$ d4 M- Z: x2 l' ?& V2 U }8 o+ }5 |* W, m5 E) n, f; i& y
return TRUE;
& B, w9 o4 `( s' F9 m}* f* @1 h" g* [; p
, e" ]+ g2 K7 P Z. G& O; l
登录视频废话:+ A# H3 A. W4 U6 ^" z5 @
尾翼:' J. T; i5 ~& s" j1 q* i
2 n. O$ b: t5 D: J
代码:
$ D8 P7 ]$ B, _
8 d& t1 \" n. w' Avoid CWorld::SetLight( BOOL bLight )
; o* J1 g3 `) g' A' G U8 \. V Zdurch
3 o: { A- C/ d& W* ^- ]Code:
. f% Q4 a3 Q @void CWorld::SetLight( BOOL bLight )6 f8 L$ F9 d3 b+ R( i* c( a% x0 m
{
0 g4 I. b( ^+ B# f, e2 [' v //ACE("SetLight %d \n", bLight);
8 x5 m& n" q7 `% @0 h/ ? 2 R2 |' s5 q0 B
#ifndef __WORLDSERVER
M: W3 A( o. p; r \6 l DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);% u! C, [0 g% {
CLight* pLight = NULL;
% X+ x( d" s$ F" q
: _0 u+ m Q* Z0 C- r' N9 P" h D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );5 y! n z6 c' M" P' o: X3 y5 `
2 k1 F/ }0 p* y
pLight = GetLight( "direction" );
9 t, S4 z1 R5 U. p) G0 J+ {" [
" c0 H4 T8 |) l; }5 E/ m5 w, \2 }' e( N! ^#if __VER >= 15 // __BS_CHANGING_ENVIR& L) W2 n% a4 w
if( g_pPlayer ){
$ v- b* j4 i1 N4 P4 k R ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
' I+ M9 p! c. x+ r: v6 T8 C if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
4 s: R" r) T. C7 E. R/ y/ q {
, r/ p# M, M* U1 h- M; V: Z if( pLight )
8 \9 e2 O" I0 J G' V$ E& k { O& X' z9 H- @3 a) m8 R
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
' E2 U/ z ]/ p' A# q1 |. S9 x { pLight->Ambient.g = pInfo->_fAmbient[ 1 ];! i' t2 c$ ?8 g) |/ o% y+ P
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];* ?1 F/ i: T M
) O2 v$ m( I, D0 T% a# ? pLight->Specular.r = 2.0f; ?( z3 j( G1 i. Y$ S
pLight->Specular.g = 2.0f;# K* \( ?: o9 m1 Y, m; k
pLight->Specular.b = 2.0f;9 v# G9 D0 Q) T8 J, E
' N) S6 d) C/ M& f pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];7 X) ?9 v( K9 P3 }* U- O
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];, G% `% e* P4 T: l$ W
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
8 [% _1 m7 g3 Y1 N$ X2 Y
% j" Q2 H" R0 a* o HookUpdateLight( pLight ); 7 j4 h7 n3 w) C- \8 N5 G5 Z9 `9 Q/ Q
' S7 Y: O7 \( ]5 p8 z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' x! K, h3 w: E
* g+ B0 i7 ^& I1 b& J7 G9 Y- R pLight->Diffuse.r *= 1.2f;
+ m* ]5 D) J- P$ q9 V k, C# I pLight->Diffuse.g *= 1.2f;% }* i' g4 k! Y9 g% s
pLight->Diffuse.b *= 1.2f;
* m: A7 n' Y5 l" F: m1 U; j# V0 G! v5 A b
pLight->Ambient.r *= 0.8f; a! z( f- [, _3 w8 \3 _: }$ [/ Q
pLight->Ambient.g *= 0.8f;( W- A( c5 l( H: X8 h* m9 Q1 N
pLight->Ambient.b *= 0.8f;
4 l8 m7 ?+ o/ P3 `' Y) C0 i 7 y5 o- X- R* K6 E$ q9 {0 d/ _
memcpy( &m_light, pLight, sizeof( m_light ) );0 W* c2 p8 Q* e) m
) U1 x, [, t1 x6 a/ Q# m8 `/ e
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);) C3 ]* y7 j4 ~ E
D3DXVec3Normalize(&(vecSun),&(vecSun));
0 ` n% r6 Z, i$ X5 Y pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' N+ d" G1 F- u; u2 y% C
pLight->Appear( m_pd3dDevice, TRUE );
1 I6 s: Y% ^3 a1 \5 X+ k7 ?
8 ~( F; K5 L0 B+ F DWORD dwR, dwG, dwB;
, z+ }& [5 y2 C7 g. w1 v dwR = (DWORD)( pLight->Ambient.r * 255 );
6 P" ^0 M- R# r0 m dwG = (DWORD)( pLight->Ambient.g * 255 );$ f- T0 L1 [. {# H
dwB = (DWORD)( pLight->Ambient.b * 255 );7 u9 I8 k' r+ l9 X
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );8 j9 d4 E1 i" J8 \* ?
}
4 c& m9 T$ Q5 F$ U& G+ k! ` } o/ e( X4 f0 @
}: u I3 ~- ^: p9 @5 o, n* A
else
) ^. C" d" A3 L ^4 K$ _#endif 3 _; `: K5 S4 s$ C
/ X1 y/ u1 J# O( L; n6 i6 Y if( m_bIsIndoor )
% G C: S g) S7 k, P9 r/ u { B' @8 N7 x% Z: ~9 |
if( pLight )8 `7 ^7 i8 t7 h& v. P
{ 0 x/ P: ^. A+ [& B) l, A
// à??μ oˉè*
) e1 f4 E. A& b2 v pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;/ j* @0 Y$ s) X5 N$ _ a8 D8 V0 s
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
% ~) i0 Q' _. U) Z( x$ ~ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
7 g0 y u4 P1 Z& z6 w
e* N% @# ^: G' S- H' \2 l // oˉè* ??à? ) E; m0 c0 g7 h
pLight->Specular.r = 1.0f; }, j& R; _' C6 R9 J4 b$ W
pLight->Specular.g = 1.0f;3 [; L& ?: j0 e% t8 e: ^5 u: k
pLight->Specular.b = 1.0f;: w6 {/ I$ j- w+ q9 `1 a
// àü?? oˉè* 6 T4 [8 V' Q) X4 ^+ N- D J: H
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;$ F7 a4 g! h( _+ x# h
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
: x2 l/ [( E# p0 C1 m9 B pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
2 R. r7 g3 n! {- P* [: Y
, y1 w: k0 }* H/ c1 E# I if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 x: o$ d w t5 o0 c {" g9 [' [* Q, Q2 Z" C
pLight->Diffuse.r *= 0.6f;
& P A% K& A# W2 T/ t$ T9 l' ~, M) { pLight->Diffuse.g *= 0.6f;
, b5 E3 T. m, B pLight->Diffuse.b *= 0.6f;
- E% U* Q! |/ I+ z pLight->Ambient.r *= 0.7f;7 A! t" E, L! s& n8 A7 u
pLight->Ambient.g *= 0.7f;
3 B" Y2 Q+ _/ [ y# H pLight->Ambient.b *= 0.7f;
1 }. D8 R+ `3 [& n7 ` A }( i- M4 W, e0 U8 L" t- d* V4 q' A' O
0 A" X3 c8 i0 {+ Z8 \% }$ d! p
#if __VER >= 15 // __BS_CHANGING_ENVIR
; `$ C! ^) @* P3 ]& Y+ S8 L if( g_pPlayer ): Q8 k* N3 A) X; Z
HookUpdateLight( pLight );
. l8 h0 a* o* p: C0 l0 ^#endif' V# f( q' f3 l& q/ v. h0 M: }+ Q; B
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 Y! C% q+ w, N/ d% e4 L1 A$ Z( @/ W- ?. l6 Q: ~7 V! Z, S0 S0 F
pLight->Diffuse.r += 0.1f;0 P# E' X% ?$ y9 V2 X/ }; N4 u2 `6 g
pLight->Diffuse.g += 0.1f;
6 d/ t8 |' Y! v2 ? pLight->Diffuse.b += 0.1f;: X& N: E* F4 Z
// oˉè* ??à?
7 v2 N, J" z6 u1 V" ]7 j pLight->Specular.r = 2.0f;
/ g( F l w8 A% m* ] pLight->Specular.g = 2.0f;
; Z" F1 E$ ]. c; i# q/ ~$ [ pLight->Specular.b = 2.0f;
7 X& W+ Z; c3 ~! [4 W+ u // á?oˉ 4 v3 \' \# j1 Q
pLight->Ambient.r *= 0.9f;1 I6 t0 z/ M9 y& T
pLight->Ambient.g *= 0.9f;% C. Y+ p6 }) W. `- O
pLight->Ambient.b *= 0.9f;
' Y& Q3 @; ?5 y. c. t8 @; a% Y6 I9 M! }% `
memcpy( &m_light, pLight, sizeof( m_light ) );
/ |" W% D& s" G5 ], s8 b6 g / u$ u9 O5 m$ D# v; }9 i. K
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );8 ]! p& ]( B! d6 l c# d
pLight->Appear( m_pd3dDevice, TRUE );
6 ~3 _. ]+ _: D! w- Y$ i" i & s! n) p. z" K3 A) E
DWORD dwR, dwG, dwB;
& @* [# m( }% | {$ g& v dwR = (DWORD)( pLight->Ambient.r * 255 );
# ^# y: s: {- o( p dwG = (DWORD)( pLight->Ambient.g * 255 );6 B! |& C6 R( {' F! H7 F1 |
dwB = (DWORD)( pLight->Ambient.b * 255 );
0 D) P9 w+ n' s) z& N dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& w# M4 B( ~, D7 @% T) [8 s1 B/ w }
_/ k) a0 f/ `' I8 g {4 a }# U4 J4 l+ _0 ]8 V/ {: e: v; i
else
8 G$ I$ `7 H# f2 h! z) ^! Y& s {
; E% Q8 T$ |+ U W( O) c' e! C if( pLight )
0 R& K T( `7 m1 j {6 o# x2 ~( `4 i
5 j4 i* Z/ M& t+ }
int nHour = 8, nMin = 0;
2 w, P5 l" C) K8 }; b7 m9 P #ifdef __CLIENT
R/ q/ [+ o7 Y7 y // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
1 l. Y% ~6 ]7 Z nHour = g_GameTimer.m_nHour;% y! [/ v$ u6 V1 c! y2 K
nMin = g_GameTimer.m_nMin ;
5 P; {; M* ^+ e- `" m3 E #else
( l+ I# q6 C3 U // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.+ _ M; e% q7 j. E3 v. z
if( m_nLightType == 1 )/ D; A$ t6 _6 D4 E$ ?0 ]: a
nHour = m_nLightHour;. f8 S# o: a" R! H
#endif0 O2 l- U8 ^0 u, z
nHour--;
& `! i5 m! q3 Y+ e" e1 b3 |% M( Q if( nHour < 0 ) nHour = 0;
% c- d7 l! v( r0 F3 _ y2 }' [ if( nHour > 23 ) nHour = 23;
$ ^- `' t" M( U# L$ T
: O1 j* M+ Q, w; Y+ ] //if( m_bFixedHour )
- x0 J! k1 ?& g8 f, g5 @" I4 f( x // nHour = m_nFixedHour, nMin = 0;5 v& K6 X, b9 a W
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];' k7 ^( D5 q* m6 H$ F- {" s; t
LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 Q+ p$ S5 a* h" x4 n
. E; Z" r: z2 `2 o //m_lightColor = lightColorPrv;
* F# \+ |6 w) o" }/ K lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;( s4 ^ M/ u2 l) P" A
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;) b# m9 K* a6 U6 p
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
0 }0 i7 j3 h; p- m lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
. e- h& q9 k/ n6 q5 {' U, T lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;) W- b- a! U8 S# v
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
/ C: ?% G9 m6 R" J // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
. E; h+ o( f& J1 v( o6 s+ w* s$ w, j
// à??μ oˉè*
7 Y; [! x2 J: l) Z, B pLight->Diffuse.r = lightColorPrv.r1;
! z- g9 H: s, a8 y- W1 x8 O pLight->Diffuse.g = lightColorPrv.g1;
/ R5 u5 ~/ N& c1 i! j" x: x" x pLight->Diffuse.b = lightColorPrv.b1;
. N* g' H0 ~, l' E, ~2 e // oˉè* ??à? 1 u& }) V e; [( b; F
pLight->Specular.r = 1.0f;+ j0 h- y' C4 X) ^
pLight->Specular.g = 1.0f;
" K- X* z0 Z2 s. m6 ^0 N% i) W pLight->Specular.b = 1.0f;" ~2 @- c z# J2 [5 r3 C o: u
// àü?? oˉè* 1 l n5 t! d# d( ]4 a
pLight->Ambient.r = lightColorPrv.r2;6 Z. m- W: h5 M# g! d
pLight->Ambient.g = lightColorPrv.g2;
# i& p6 A* T# G y- e pLight->Ambient.b = lightColorPrv.b2;
4 f0 l( C0 S' g+ P6 X
/ h8 ?& h4 l+ c) q2 C if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
9 U; A* ~, H$ \ {
% f! V- q0 r j pLight->Diffuse.r *= 0.6f;6 f& l. p5 C" c9 b: m/ l& \
pLight->Diffuse.g *= 0.6f;
- X, N' `* f7 c2 r6 y, f/ o2 W pLight->Diffuse.b *= 0.6f;
1 K- ^6 A+ v! C" f2 V; A& x pLight->Ambient.r *= 0.7f;. R5 Y) H" _7 k8 Q% [/ o* F) H
pLight->Ambient.g *= 0.7f;9 M0 E8 I- u5 B
pLight->Ambient.b *= 0.7f;6 v' s# P+ M. m6 c$ j% I
}0 S, m/ N( r8 T9 H3 }" L8 @/ }0 Q3 i
! y- t' l1 O5 Q$ |4 Q/ v) w
#if __VER >= 15 // __BS_CHANGING_ENVIR
! r8 P# N; V) F( ^) E# }* s' @ if( g_pPlayer )! I F8 b0 R4 y m! a
HookUpdateLight( pLight ); . u6 C$ H. l7 y4 ?
#endif
. Y5 @- I4 a% ^: x" Z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! u: Q4 L5 `( j0 \( n9 M
& e1 Z; O7 j/ J, C1 Y/ h5 g! X#ifdef __YENV
% G, }0 L* g1 S/ m3 t pLight->Diffuse.r *= 1.1f;
+ x$ [) @2 y0 I( r4 ]& y pLight->Diffuse.g *= 1.1f;
/ X/ P4 o% z5 @ pLight->Diffuse.b *= 1.1f;
& H7 `( `' \! a- k! s! r$ j // oˉè* ??à?
! R& u8 N* ?- Q/ @$ s4 T# Z8 ?" | pLight->Specular.r = 2.0f;
0 \9 |: J9 r _7 K/ A pLight->Specular.g = 2.0f;6 K( `( D# l8 Q- R# H1 p- f4 A
pLight->Specular.b = 2.0f;
2 O& A* ]; g) U, e9 z // á?oˉ . n, e% T- x! @/ ~" V
pLight->Ambient.r *= 1.0f;, t6 y7 Q& K1 v7 c5 m+ \+ j/ O; m
pLight->Ambient.g *= 1.0f;3 _3 T n3 i: {/ [' A# @
pLight->Ambient.b *= 1.0f;
. |# a6 _. ^ Q) S( S#else //__YENV( f2 t4 a8 i! N6 L+ s
pLight->Diffuse.r *= 1.1f;) _ o, t+ m k7 q
pLight->Diffuse.g *= 1.1f;0 p/ g6 D) F3 y
pLight->Diffuse.b *= 1.1f;% P# a6 ~& ^. J* q( I
// oˉè* ??à? ) S; S* b% o1 z, D+ t# l6 Z
pLight->Specular.r = 2.0f;
. X& i" [9 T/ l5 L/ t- m U3 [ pLight->Specular.g = 2.0f;& X+ [7 J% W4 \1 j0 D) y
pLight->Specular.b = 2.0f;
% f/ B- G4 f- X9 d o2 V, X; g0 | // á?oˉ ' _. U- [7 w. Y' ~% J+ _
pLight->Ambient.r *= 0.9f;
3 R; t: l) |( Q: p; D2 Q7 l pLight->Ambient.g *= 0.9f;
+ C6 P _1 G H$ l o+ {8 I$ B+ M pLight->Ambient.b *= 0.9f;2 r( W% w. u9 a; _
#endif //__YENV 0 _* U \* \5 c; s2 r1 @
2 i2 H1 |( F" O4 ]* `5 A
memcpy( &m_light, pLight, sizeof( m_light ) );5 F* Y; D! z+ [- B( b) G/ w
3 n g* ?7 }+ V9 }, f D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);7 K% _, G8 x. ]0 K
D3DXMATRIX matTemp;$ F7 E+ M, y6 w$ a6 B4 u
static const float CONS_VAL = 3.1415926f / 180.f;
' a: |- I$ o) S! w. H5 }3 K/ D$ x! e. k& q0 u; U
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
I! f! I$ { ^ W d3 M: j D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
, w0 M. U: _5 [/ E, x/ ~ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
/ c& E% G" y* j6 p* e4 Z3 m7 H' Z2 w pLight->Appear( m_pd3dDevice, TRUE );
3 L9 f6 D' A; F2 z7 {' ]4 r- O+ [2 c) W
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) w$ T7 [, D- \2 Y. z9 C7 b // D3DXVec3Normalize(&(vecSun),&(vecSun));
% R- I( ] E% A) p // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , a$ d6 }' ]* c: h9 c9 {5 S& Z7 J( d
* f) \3 J! [: ~2 u+ h! E3 A
DWORD dwR, dwG, dwB;
) e W* M2 e8 z/ I! Z7 J2 Q dwR = (DWORD)( pLight->Ambient.r * 255 );
! p6 O: C/ g4 q$ O+ c dwG = (DWORD)( pLight->Ambient.g * 255 );
: p6 }, h/ d' K" a/ J( ^ dwB = (DWORD)( pLight->Ambient.b * 255 );
5 G( s* \; M" A& u! ^# G* s9 p* _ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 3 P" t; t$ M, \) a' Y) r' z6 T3 s2 H! W
}
+ K4 }+ S; e! c( E# j }* v$ O ^! Q0 t- v7 _1 W- N+ j
: j' X d# |" P$ D m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
5 [( L3 }8 T$ Z7 C$ e/ V1 V 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) );
/ i4 l% m/ ^$ q# p+ W7 W ::SetLight( bLight );
d* P# z3 V' {% W! q, j; ~2 j [4 {& C: \' G4 g, N
// ±ao? ?D?í???ó á¤à? 6 o/ {4 X; d' B; m5 b( c) f# d
m_pd3dDevice->SetMaterial( &m_baseMaterial );
- v5 _! Z4 M/ Q/ u
1 M; Q5 z5 m u- e& }2 o#endif // not WORLDSERVER5 s4 Z2 @2 p; J* V6 p; N
}& L: ~0 @, \3 P* V- y- w
并更换1 F8 p6 c% P1 \5 p$ u
Code:
& T3 n/ ~' ^, N__FLYFF_INITPAGE_EXT
" R9 V$ J0 W; c0 n k定义
& H9 v0 I0 L# \- A1 v3 Q/ r1 w0 a f
# I/ m9 Y4 m! C
# Q/ D1 g) b0 x& q" u
% Z9 }; C; [7 z% r: B0 s
- k$ H# \+ \8 ]# i# G现在终于删除我的狗屁加速...
9 E& H& ^5 O0 E) s- ^. Q1 A1 I2 |" e5 p, |. U& U& U1 P8 i
( u* y0 p/ a8 W& z I$ ]/ }, J; @& ^2 y o
|
|