|
|
食品车:8 c& K, q. D7 P0 ?# k
尾翼:' H& V( A6 g1 o( v+ D k( y
# s, l+ ]1 k5 ]$ v4 Z代码:+ f6 y% D7 Y2 ]# ?+ f
CWndAutoFood::CWndAutoFood()
! [7 \+ p6 |& [3 n{: W; m' Q( [& n$ w! X0 k
m_pItemElem = NULL; {0 t7 y8 x4 L8 t4 h3 W& H6 u
m_pTexture = NULL;
3 D* T8 _) J4 `. a \# @ bStart = FALSE;
+ S( T) F5 ]. r H}
8 _: L& k+ d" L# m2 e
9 K' q2 N- b% O. BCWndAutoFood::~CWndAutoFood()
' x: z* A0 L( h/ r) b X; ^- Y{3 m: P/ v4 O1 b# {8 E! b5 @
AfxMessageBox( "AutoFood ist gestorben " );
9 g( I' x* q n. K1 Z ?9 N}: p+ N" Z/ V) L" F0 W. \/ C# h0 ^, f
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
( K( p! b2 Y- k& d: D* z{+ |1 m3 \! }, D" }: E* w
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );2 \3 s. o/ Q z. |; i4 u" | @
}
6 k) o9 u/ N. X* e& V
; p7 A# K3 `" ~3 y6 e" p1 L. CBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )- n: Q! H5 G v# S1 E/ u' J
{ _' _9 |; S4 q
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );7 \. a% n. y3 @
CRect rect = pWndCtrl->rect;
' j! I( Q" ^% T* ~ if( rect && rect.PtInRect( point ) )
7 w; r5 u' Y* W9 V {( Y/ N7 z- a3 d" G
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
8 v1 i+ F+ Z* K; l if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
* |& D* W5 B& Q5 B2 L+ l {" z( u5 k) F8 x
if( m_pItemElem )
0 |& s# }3 a: Q {0 ~4 L1 w' Z" N. T* Q2 y/ Y: N
m_pItemElem = NULL;
4 K: z8 `- N% {2 i1 h9 U, ` }$ S }/ X3 j% @; B
m_pItemElem = pItemElem;
/ q9 [* S" A" y3 r7 w' Y- k' g m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
0 z5 n* G6 z' O% x6 v: n' \4 l5 _0 J& S7 ~ }else{' `$ V! r; [1 ^. ]) S
SetForbid( TRUE );5 K* H N5 L# A( { K1 z; D3 {4 A/ H1 {
}; u4 p' L9 v6 Y( l
}else{
4 B. `& x: \2 L/ f9 n: B$ ? SetForbid( TRUE );
0 V$ p# y) r4 n% d. x }" |$ n* w; t4 _5 S: ~
return TRUE;" A: _; g" M) S! D
}
- b8 O6 e7 {3 R; x1 D6 }' T* j4 C; N1 s& G% r& w6 c' R' [+ |4 @
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 J1 p1 O2 x" j6 s' g
{/ A- s% S T8 o& U3 O
switch( nID ). y/ n. \8 m4 h2 b/ {
{# Q# D8 p) I8 m0 T+ }- l
case WIDC_BUTTON3:
/ b+ P- u! e6 T0 V6 [' @ {
/ K$ b% D+ w4 u+ e bStart = TRUE;
2 F1 G# h" I" j& A K break;
, L, @. D5 b3 b* r3 c" [+ ] }& S- z" L3 v2 i
case WIDC_BUTTON4:
4 ]9 T5 F- y( {) ~ {
& Q8 q; u! Y1 O1 d) X# }# `, H bStart = FALSE;& \9 B& C& c8 g$ P7 X
break;9 r& f: F d' i4 |2 m
}
& h4 A/ c- r# \* R# s& y }6 R% R8 x# h! u/ _
return CWndNeuz::OnChildNotify( message, nID, pLResult );5 E# v! K* c2 O- a
} : n3 Y' P; h' O$ P- u
void CWndAutoFood::OnDraw( C2DRender* p2DRender )3 i2 s! [0 x: S6 ]
{
+ j7 I6 @; P6 {6 N CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
4 K% o- ]: L9 |" I* R if( bStart || !m_pItemElem )
{8 O5 E' Z5 ]6 h) `) y/ o) V {
$ G( R; k# r D2 r5 w pBtn->EnableWindow( FALSE );' Z: ]4 z9 J# ^/ V& k- y
}else, s- [: u$ \" ]: l4 H- b/ Y
pBtn->EnableWindow( TRUE );% N/ o: W' j4 f) J: d
if( m_pTexture )
5 Q- x5 b5 j2 C; c/ y+ m# [6 Y0 J {
; w, w) N' K: `. L) l LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 a! }& w3 ~& X" r, U
if( wndCtrl && wndCtrl->rect )8 n+ B2 o5 y8 ?; \" G" f
{
8 O/ o3 U$ M- @! l/ V! Q3 h m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );$ c0 a8 p6 O( j# r$ Z
}8 r" R1 W# A' g' a2 [
}
F& G. R+ Y5 l7 i}9 _' {# h* b3 _
) s' [ J2 t4 k2 E3 kBOOL CWndAutoFood: rocess()8 n( E' k1 q: L# G
{6 X2 i. H4 A; k9 ?
if( bStart )- [8 X* \& Y8 B( O
{3 j9 f' e! S- R6 d
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; Z4 Q- v X+ W {/ s- ^7 h+ H4 D/ `9 n: r: b
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/ p( X M7 k0 b8 j" i3 d
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );/ t4 j) X1 Q# t5 M' F" A& S3 h
}else{: ^8 d- q' p; `, Y( s8 [; Q0 O
bStart = FALSE;$ c, ?1 q7 q" U6 ^- ~. W
m_pItemElem = NULL;
7 x/ e6 Y+ J' u& s* Z; F }
/ v) |) u' [* t }: f1 N& R; O. w5 V {# p; O. x
return TRUE;7 G2 n: J0 u8 C3 _, e+ C
}9 p5 c4 Q2 C0 [# C; D3 U
% p' K1 I. B, u3 Z2 [/ i- `# O
登录视频废话:
- a+ R7 @$ e0 F9 c尾翼:
( o r, E& D+ K) j3 X3 f
- e( t6 n Z6 B* M3 L6 i代码:
: S6 Z" K! N' \/ j8 n
" h A* u3 D& ]/ ]void CWorld::SetLight( BOOL bLight )
2 N: l/ C1 F. ?2 Hdurch
( ~0 s% Y, i" V, c6 E0 u; LCode:
2 t3 E8 x% p8 p* r: dvoid CWorld::SetLight( BOOL bLight )6 X* d8 {3 v, d7 j. |
{
& O/ n( M- j3 V; U //ACE("SetLight %d \n", bLight);
4 C4 F4 O. n, y/ R
; O& |/ T# g5 S2 u#ifndef __WORLDSERVER ' P! d5 J, m4 Q( M0 y
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* I& E# C0 m5 C7 n( I' }5 e; Q' ] CLight* pLight = NULL;
# U" s8 _& ?* e7 Z8 S# ~7 m
1 }2 z$ y. j+ L7 |' W D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 }% | e0 u! F+ @ b+ C, L" p# f' R, z# D1 a6 v
pLight = GetLight( "direction" );# A7 }: d8 D7 _1 b
5 k3 a' I" H4 ^8 ]5 a; J; Z
#if __VER >= 15 // __BS_CHANGING_ENVIR! s8 m/ P% j- I: O
if( g_pPlayer ){
2 _* ~; Z, k0 y/ W z ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );% b% z* ~5 ~6 G4 h
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!: K" h0 H6 v; x( ~/ w( T
{
* Q" {, o+ T! y5 v% L7 s if( pLight )
* x% p: `' F3 g/ W* I) A {, r2 B; M: ~$ ^9 U7 Z6 p5 a
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];7 L6 p; t) \! H5 {. e# Z
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];5 P; W8 B: _* {. k: G3 V( W8 o/ p
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];5 g6 L6 K% m& s1 u' ^/ q
: T/ ^: p7 |2 {1 L( ?. {; I pLight->Specular.r = 2.0f;. x2 O0 u* ~+ z; d# z( d2 k
pLight->Specular.g = 2.0f;
9 C' Y3 x' s0 Y4 k6 p5 n) g pLight->Specular.b = 2.0f;
; s# V3 Z4 E/ O# w# W9 {7 D & d- C4 v2 Y% @; n- j& U
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];9 ?8 |, I, k7 ^1 X
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
! `, S, w2 i5 _* Q0 l1 u c1 g pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];# F: n* ^! V, C! P% u# @
1 z8 j4 a2 j/ A# s1 j( T/ d2 |. W HookUpdateLight( pLight ); + \: W* ^. _& M$ r% k$ O
0 r- B4 _3 q6 n1 d" j/ r2 s/ l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 O$ q1 ?9 `' F: j1 y, {7 ]
( j8 B" y2 i4 b/ ^3 H
pLight->Diffuse.r *= 1.2f;
& |( S# c& b! f' D/ B pLight->Diffuse.g *= 1.2f;$ k4 W& j2 H ]7 d
pLight->Diffuse.b *= 1.2f;$ x% e1 b, t2 K8 X
2 `7 r# f) y& k6 q, ]9 C pLight->Ambient.r *= 0.8f;
- c; X. z& ], F6 q& s e! Y! o pLight->Ambient.g *= 0.8f;
" ]' ^! ^' C5 Q) v; u- J: ^, B$ Y pLight->Ambient.b *= 0.8f;
7 _: D8 J. U* K9 P/ k/ ^9 l) Z 2 ^/ Q+ C0 ^( u6 t
memcpy( &m_light, pLight, sizeof( m_light ) );
6 B W5 m4 F5 `) a0 r
/ O% U! g% v/ K S, m# y D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
8 v, u: y% P2 P D3DXVec3Normalize(&(vecSun),&(vecSun));
; I# d" T5 _+ T1 ^ A( @ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 D& V8 i! \- ~* V
pLight->Appear( m_pd3dDevice, TRUE );5 j- M4 ~5 n$ S1 g- m$ v
0 P8 D( r! J: C DWORD dwR, dwG, dwB;
* _' t/ o! h+ l, I dwR = (DWORD)( pLight->Ambient.r * 255 );
- S" S6 C( {3 n, q dwG = (DWORD)( pLight->Ambient.g * 255 );6 ?: }* @; T9 ^4 T1 c8 f, n- Y
dwB = (DWORD)( pLight->Ambient.b * 255 );
3 M; [5 A8 O% j ~$ ?% j1 V3 K dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: d" M ]0 e% `# A* I }" U9 ^3 ?2 E3 b, f) i- B
}7 q2 K+ [) r' d
}
+ H O- G9 F/ h2 g3 V else
% H/ \7 b6 n3 r C' Q4 p, U+ W#endif 3 q) E2 z, p; X8 w0 ~
; ~6 F9 Z2 c4 e+ t2 c# C if( m_bIsIndoor )3 | b. z* q. X! `! Q/ J0 m7 q
{7 H& {2 R4 E7 C
if( pLight )
6 I7 e4 I& F2 K' w0 L- e3 ? { / g$ ^) m, `7 @$ a; {
// à??μ oˉè* # i7 k. `) {* N2 s' V, l- I8 X7 N
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
4 n7 }( x, H& W* R- u- q, D+ V! z pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;9 ~' ^# z- {7 F& k
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
! L1 }6 K! y6 }3 B$ h* d9 J/ u
// oˉè* ??à?
6 p3 V6 N: ?% l3 p pLight->Specular.r = 1.0f;0 P( {- d+ ~1 w" C* n
pLight->Specular.g = 1.0f;9 _, W* H* Y) C8 f' c
pLight->Specular.b = 1.0f;3 u5 _* i5 X5 h
// àü?? oˉè*
* |6 W) g2 z6 L2 Z) _; d9 {" k pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;& }0 T! B+ _8 d4 p8 ^
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;+ v7 Y. ]# g, @( b5 J8 G2 D( T2 J
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;: Z2 E c R/ }* J: S6 J! p& h
$ \$ }* c& L/ P9 n! G+ X% [ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- |! l; }6 u% r) C. F0 I
{
( a8 `- c! }8 @6 R+ G9 J pLight->Diffuse.r *= 0.6f;, M4 q6 l2 o+ P5 ]0 ~
pLight->Diffuse.g *= 0.6f;
& j4 }2 B% `. W pLight->Diffuse.b *= 0.6f;
4 j* f8 g( D. ^. y- n k' E" ~; | pLight->Ambient.r *= 0.7f;- ~: b5 N) l1 d3 g3 K
pLight->Ambient.g *= 0.7f;
: y+ b1 Q2 p- M: f# y: B pLight->Ambient.b *= 0.7f;: }& R G: I0 W! Z8 ?. X$ y
}, S2 s9 l- f. T. S) c. U4 ~
+ c- q# G" d4 e1 S; s( c5 d1 d5 Z3 L#if __VER >= 15 // __BS_CHANGING_ENVIR
) \: H+ P! n, I Z- V, D3 n, y3 m if( g_pPlayer )
+ @& H* G2 ]( R' P/ z* I& s HookUpdateLight( pLight );
$ @: a5 r- A7 X+ f. u/ F% H#endif
3 K6 r- Y7 t' m) ]0 B' \% { memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, x' b. Z7 v8 r' i6 d( ^- |
/ n; o! k F/ s: `* P7 q2 R2 [6 l
pLight->Diffuse.r += 0.1f;
- }: U$ b! b. s/ s" H" ~# b, i pLight->Diffuse.g += 0.1f;
! a! v5 q5 s# \! x pLight->Diffuse.b += 0.1f;2 M, E" I9 S/ T; e/ t
// oˉè* ??à?
# x c: W/ O+ z pLight->Specular.r = 2.0f;
: d+ Q+ ?+ `$ P& |1 [ pLight->Specular.g = 2.0f;
/ w6 r" `! N$ R) s7 h pLight->Specular.b = 2.0f;' x; V, S$ V2 E% x
// á?oˉ
" |5 G, }+ j6 u: E' F3 A1 u$ E pLight->Ambient.r *= 0.9f;( p2 ]: s, u( f* K! p
pLight->Ambient.g *= 0.9f;
2 ]& m+ h8 H9 p! o( E% o pLight->Ambient.b *= 0.9f;
. B0 D3 V1 A1 [ x0 C) }: U1 N$ m" ^& B" O w2 r
memcpy( &m_light, pLight, sizeof( m_light ) );
+ a; c' y; l8 t$ g$ a1 F0 J" u 8 q- P0 p7 J ^! d. n( C8 ^+ n
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
& N; r2 A% n- n* A! e pLight->Appear( m_pd3dDevice, TRUE );- |$ a9 s9 }/ Y. Q3 Z* R1 u- n2 e5 h
( l, `" i- r4 L- E! p( i6 n DWORD dwR, dwG, dwB;5 l: M4 V5 F5 H% t3 t: h6 v: e
dwR = (DWORD)( pLight->Ambient.r * 255 );
" h0 X* o2 d$ J# X/ C( K$ ~" Y dwG = (DWORD)( pLight->Ambient.g * 255 );
6 B: F8 q6 r9 V1 ]/ q2 R dwB = (DWORD)( pLight->Ambient.b * 255 );+ s1 x& X+ C" d: e$ C, {9 R' X
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 w) Z; }& q1 {6 P: o" ~ }+ @. D, a Q" v3 Q& V0 b
} Z- E* Q; s1 p! a
else0 x8 z+ Q, c) q0 ~) U# S/ V
{
( ~$ m3 N2 f4 x; p/ y5 z! U& l" ? if( pLight )/ D3 q, }- B, h1 R4 K6 U1 t' ~( T
{0 e' M, v2 y! }% w, [* ~2 c" r! M. `
5 C X3 {% P, H6 J6 ` int nHour = 8, nMin = 0;
7 v. J8 y- b" l, V6 B# L #ifdef __CLIENT3 A J5 |* t, }3 u( D/ P
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 6 e( Y6 C: d0 k5 X, U- |
nHour = g_GameTimer.m_nHour;" `6 _' ?7 {: ?/ w+ X% K9 I" s+ r
nMin = g_GameTimer.m_nMin ;8 ]" N2 p5 \" \" m+ m1 b
#else
9 j6 s; c! f# _, ?; g+ V# x! z // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
! U" N* L# k- e if( m_nLightType == 1 )& Y1 x. }" q7 ^9 q' [
nHour = m_nLightHour;/ D0 j |$ z/ R) }1 F" u
#endif
0 k6 o, ~# v/ v! |& m7 l nHour--;
6 A, d7 l W3 A3 a* F# _ m& O if( nHour < 0 ) nHour = 0;
% W7 }" N9 z3 G* }- ~0 e$ |7 x if( nHour > 23 ) nHour = 23;7 p1 y( j) P7 i7 @2 l2 U, K
( N$ q/ ]. N; B! Y& X1 N* O
//if( m_bFixedHour )
' o0 l7 q* Z7 d% }9 \4 x. m // nHour = m_nFixedHour, nMin = 0;- p6 N, _1 [6 x* r8 [" I
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
: a1 T$ S5 Z) C5 Y6 ?' b4 h LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- k# Q u$ _* i0 [& s l1 m" ^
) H# U; u2 V$ ?, E2 C //m_lightColor = lightColorPrv;
( U" e- C: _7 [- d/ N2 q lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;+ q( ^0 H4 z4 d% K, K) \/ M& s" r
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;( K( `4 d+ `8 h+ I* d- p' t3 B
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
% ~. S, e3 }- D$ U lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;% ~6 J6 K% L5 Y; } f6 U
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
1 M6 i4 p/ c9 R+ J4 @3 s! ]- G! U lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;/ K+ r6 x# @; z
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)4 U7 U9 _: r, i9 D
) \8 g( V" P: | // à??μ oˉè*
: k4 E* }% q: ~, b5 p4 ] pLight->Diffuse.r = lightColorPrv.r1;7 S! W& { u) R
pLight->Diffuse.g = lightColorPrv.g1;
! x# I+ F) i# o5 n% U pLight->Diffuse.b = lightColorPrv.b1;! J% P J5 k7 ~% N- J( v6 C
// oˉè* ??à? 9 _' Z/ U& e* F; g, {* Q1 S% _+ R
pLight->Specular.r = 1.0f;
r5 b6 ~) y6 i% A6 h; z% U pLight->Specular.g = 1.0f;
& ^0 D; j% E7 w* x* }8 v/ V pLight->Specular.b = 1.0f;
}& F f, z( p+ }) w // àü?? oˉè*
/ A0 i% I# k+ E/ n, m( k2 ^ pLight->Ambient.r = lightColorPrv.r2;. I1 @9 j6 Q& Q1 f' E7 y
pLight->Ambient.g = lightColorPrv.g2;8 f0 `+ Z5 X4 K5 R9 ~0 [) _
pLight->Ambient.b = lightColorPrv.b2;" }1 B: Z% T3 l% _
# y- D; x, C8 F9 S* z5 `
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: c- Q6 R1 z8 T8 z c$ Z2 A- R& a {
4 i/ o5 l+ d5 R% K( g3 t pLight->Diffuse.r *= 0.6f;: j7 S- N( l# h8 ^' E5 g
pLight->Diffuse.g *= 0.6f;
6 V$ u, x) T! M/ C pLight->Diffuse.b *= 0.6f;0 Z/ U W' T ?! s6 ]
pLight->Ambient.r *= 0.7f;; G, H0 ?0 L+ Z' V1 r" Z0 t" \
pLight->Ambient.g *= 0.7f;
6 L) w: S+ N- m3 q! w! Y+ n pLight->Ambient.b *= 0.7f;+ |& w4 ^" S% y% {2 N
}
g# n1 C# Z$ _" _
# S* u* g1 R' Y0 b$ @4 v( `! Q#if __VER >= 15 // __BS_CHANGING_ENVIR
' ^; u8 A5 R- T' b7 E1 s6 ^( q* X if( g_pPlayer )
, t7 ]5 q" w" J( s( j( O HookUpdateLight( pLight );
! O/ g6 [9 E2 e9 u, h C& `#endif: m5 W( B$ l( r5 G, b
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 X$ w% ]* w/ e- k }
; b; N9 }5 ^+ B2 m, P
#ifdef __YENV( j- X) \, z/ _
pLight->Diffuse.r *= 1.1f;
" f0 F, c( S( K. f9 K- s; e; I9 v pLight->Diffuse.g *= 1.1f;
. N) h) g5 d' G) q+ g- i pLight->Diffuse.b *= 1.1f;) ?: w! A' B1 k0 w9 d: M" A
// oˉè* ??à? 6 B! i9 r$ C. j/ c Q
pLight->Specular.r = 2.0f;
% Q0 q4 A8 N9 _+ _& N% K: l8 w pLight->Specular.g = 2.0f;) C! o+ z$ |5 b' A, h" d
pLight->Specular.b = 2.0f;
- ], \: y* f5 B1 b* h // á?oˉ
0 K1 d6 ]* Q, s9 P( W pLight->Ambient.r *= 1.0f;
}% U8 u+ s& r4 K5 r% A pLight->Ambient.g *= 1.0f;
$ V+ l/ I; |5 \ pLight->Ambient.b *= 1.0f;
' ?5 Z( c' G* d; s$ }) t* [#else //__YENV: r7 w1 v0 v8 W6 w4 E; V
pLight->Diffuse.r *= 1.1f;
, Y. Z: t# G: z& S5 C pLight->Diffuse.g *= 1.1f;5 x) c& f( e- Q. f: A0 f# M; V
pLight->Diffuse.b *= 1.1f;8 l2 e* ]( Z' A, z' Y& Y
// oˉè* ??à?
) X. h+ p% _1 G pLight->Specular.r = 2.0f;" _' c# L9 a9 y8 `
pLight->Specular.g = 2.0f;
: v% V0 y9 s8 P; i3 \+ F pLight->Specular.b = 2.0f;- v) D, M: W6 ?# ]
// á?oˉ ; V# o+ f( ]9 w, e
pLight->Ambient.r *= 0.9f;- ?+ j. J9 X/ V: O3 f1 h4 V& T
pLight->Ambient.g *= 0.9f;
/ |) h. L1 l0 ]: \3 s pLight->Ambient.b *= 0.9f;
( \9 b9 C% ^7 |1 s#endif //__YENV 2 }7 {$ {5 q3 ~) n7 ^& q& f
1 S6 u8 a$ ~$ V7 a" V, x memcpy( &m_light, pLight, sizeof( m_light ) );
5 u9 K! h/ t2 b$ \# w* o6 N* `0 ^, W 7 L! L5 j, o5 Z) ^5 E4 P
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
6 |& i. [. t! i D3DXMATRIX matTemp;) M) u0 Q n- b2 u0 @3 E
static const float CONS_VAL = 3.1415926f / 180.f;
. R9 y1 \& o& m& {% U( r8 g
, M6 ]9 Q7 n9 a D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
( L" d: c4 N2 W0 {9 }2 `1 ?5 d D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
1 t( Y5 @8 P4 B% c, i pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
) d- R- R+ s( w& X* T- @/ f pLight->Appear( m_pd3dDevice, TRUE );
B6 [" R( b/ Z8 O/ N
1 n/ I$ ~2 S& ]3 D% F/ H/ B // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ C: E1 {2 p* p7 U* k0 ^0 g
// D3DXVec3Normalize(&(vecSun),&(vecSun));
1 {- a1 [; s0 y, W" E& B // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
s2 D8 B; m8 v% J' n) }4 S* `2 v* c, W3 z
DWORD dwR, dwG, dwB;
: v, H' z% f9 [; ^2 G# \ dwR = (DWORD)( pLight->Ambient.r * 255 );
1 A2 g- o7 j# i2 d- d; E1 [1 R | dwG = (DWORD)( pLight->Ambient.g * 255 );" ~$ V, L5 P1 {
dwB = (DWORD)( pLight->Ambient.b * 255 );. y! E- R/ |' c4 H
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( Y1 R5 l8 q' ]8 o( y }: }* @8 S P/ j5 _# U3 @3 j! I- t
}
8 ~/ R0 c# u8 c; l6 P
/ N2 f$ Q% B" W4 m$ S8 w m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );" j/ B, Q8 L- ^ L* [
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) );6 x; ^- p7 Z. @* n! ^
::SetLight( bLight );4 h, H( Q0 E) H$ c
/ B; k% P/ u7 M# s9 Q // ±ao? ?D?í???ó á¤à?
" P1 R g% x L4 p- `5 r9 j m_pd3dDevice->SetMaterial( &m_baseMaterial );
( |5 b8 B( Y1 W9 X6 o * Z- j. h" A4 N4 [3 k5 i9 M+ t2 W
#endif // not WORLDSERVER
~( c. A0 e8 p0 t}4 d8 W" \7 h5 ]2 R( U
并更换9 |# @: @! T2 W1 `8 ~7 d5 f! z l
Code:
# c' P3 {( q8 Z+ ___FLYFF_INITPAGE_EXT
2 p6 [" r. I* K& Z' k定义
) r$ {0 b" r5 k3 w# T! |' ~. ?) K3 W V/ R" L5 I
2 f, M4 X0 q# R. V6 z8 G
% H) Z7 D* w0 `" `9 n8 v; Y. n4 T4 b4 Q/ [& R
现在终于删除我的狗屁加速...
. r4 T- F( @: p0 C
; v0 e' x/ A$ O6 O! s( q4 ?. l& q! O: b
( x ?6 c. e; n' [9 L/ j, @ |
|