|
食品车:- x! n0 t: h5 D) ?6 `6 u4 F
尾翼:( z- r4 J$ w" @5 Z. _
% O+ Y; f8 I% R& m代码:2 U* S/ r: q2 }8 y7 D7 [% g
CWndAutoFood::CWndAutoFood()! W, C) n O2 E# Y e. g( @
{
1 Q( i$ U6 x' h) i m_pItemElem = NULL;
' I8 ]. d! Q* ] m_pTexture = NULL;
+ R' Y* Y$ }7 K bStart = FALSE;6 W( s7 @8 l/ M; N
}
+ q; `- v0 a& J; `, |' X1 ]! L0 W+ D0 p& h1 [9 q6 F. K- r1 p+ k) y3 x
CWndAutoFood::~CWndAutoFood()
8 L5 Z5 T/ K! _9 w( _% T7 z! f{
4 g# ]; L4 }/ g& d; ` AfxMessageBox( "AutoFood ist gestorben " );4 J" ? d" C& s1 m4 S1 B
}
7 d+ k; J5 h( c5 P) o; hBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
+ ~# D8 j; i& i- j+ x- h+ R{
3 C8 m0 s* ~; [% e' g return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
. \2 ?- r/ R" P/ c' R3 Y7 P}
! g+ W3 r# N* _7 C7 K7 p1 X0 [' u" [
* X. f p4 h6 eBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
* Z$ l7 ?) V8 L{# W2 \8 Y# S; C! Z
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: f+ w1 ]+ ^* [1 C' g CRect rect = pWndCtrl->rect;. E L: x/ I3 D1 @7 T. @- j( C) }
if( rect && rect.PtInRect( point ) )
4 c" F" E1 N# n# u {% c' s0 f6 F* R3 K0 n7 }5 z* d# {/ `
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 y5 S& N3 ]7 ~& P# X0 i; k if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
8 D/ B1 [( s7 D2 R( A7 U2 n G6 O {8 d/ a- { { l
if( m_pItemElem )* D( [$ D/ ^# P& \0 F' u
{& i0 w: U: d+ b% t3 o; ~6 K3 R
m_pItemElem = NULL;
7 a v, O5 t' [: Y' @ }, D/ ^ P: @* C; x
m_pItemElem = pItemElem;
7 d1 G* ? A7 S) U7 M8 q m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );5 h, e& p% q" W6 w U$ N. P, w9 o
}else{4 Z& d4 Y- ~% A! ^% c& S
SetForbid( TRUE );# e* G% g* Q# {' R$ J' ^8 B
}0 X! h$ F$ [6 v' r5 P
}else{
6 H7 r$ h8 G/ c$ \ U7 F SetForbid( TRUE );
Y9 ~/ w/ n# n }$ t1 e' U. B f% C, Z6 V
return TRUE;
8 ~& k3 {! g1 o: ~, N}: {* J* i. Q5 K8 T9 [
$ N- L! O2 ?/ P: EBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )+ g8 d, Y4 g4 i; t) E
{- k4 p/ M* F, V o; x( r( @
switch( nID )
4 }9 @: f. F4 P. S3 T5 X- |* G {0 o& }1 H0 _' c; q* M5 z0 T& R
case WIDC_BUTTON3:
* i' r! V4 c- x {, U4 b) F% C, E& N
bStart = TRUE;' r8 ~! q. o+ c
break;; N( @' G, g" T2 k; h, \4 V
}
: W3 g& I) y$ n1 ? case WIDC_BUTTON4:
2 V) v+ s: ~& X8 t& ^1 Z4 R1 e6 A) P {
* R) b) K3 c- P" P+ [8 j bStart = FALSE;
+ S; G$ t# @" A+ r! c9 H break;
' J' [3 y. | _; _- r+ n0 N }
" l6 l$ d" z' i# i- z }
" v. ?, k% ^1 V# m, X. a return CWndNeuz::OnChildNotify( message, nID, pLResult );
$ N- i4 C/ o* Y% M}
6 L4 A U% R. _, C) i: B$ c q( f6 zvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
- d" R' }8 V0 g8 @{6 @/ e% I7 }( f$ Q }9 b$ K3 S
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
/ a. U& C6 P3 R- k2 r+ D if( bStart || !m_pItemElem )- I+ u. T+ D- K7 P( g, q( x
{
' d5 l, l1 @6 D: j: N pBtn->EnableWindow( FALSE );
}; V9 n0 F* j. U8 |; Z }else
9 I% z' q) C3 J# R pBtn->EnableWindow( TRUE );
) i7 B8 Z! \2 h% D if( m_pTexture )* o5 S9 y1 U$ }7 [
{
6 q& M& |" Q8 L, j% {5 h8 ^; m LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );5 ]" P3 B5 n% V: a; @
if( wndCtrl && wndCtrl->rect )
9 R) Q s! |2 o/ P& d; u {' h" X l) Z3 X1 d" ~4 p7 B! t
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );: t/ z1 F6 ^$ W6 q0 Z* |" R
}3 }* l& }& c% Q% B: n( o( |6 ^
}
7 U! V) ]. ^" x6 U}! ?% c0 c: y7 P& H n8 t
4 A/ Y9 v1 `9 }3 b4 [7 v+ `BOOL CWndAutoFood:rocess()& C! h- R% e2 o% \9 b- h7 R* n) \- f
{4 u3 |4 D( O e6 W3 R
if( bStart ). ]% e- B \' B5 i5 z
{
/ X! I; `9 n( W7 L& _* b1 S+ y. w if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. }) }4 O/ E. K {
* r7 s$ a/ g* B [0 |0 R) D 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 G% H. b0 Q8 _ W# s
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );5 n, f4 K- {9 x# N) o8 `
}else{6 ~% V: w+ s# } x
bStart = FALSE;5 T3 [# m, ~! y4 G- h0 D5 K- k4 C
m_pItemElem = NULL;
& n# b9 r# X5 w1 q7 w; a! s6 P( W }0 V C/ k4 Y& V- ~" v
}
2 f% [7 i: Z/ v* r return TRUE;
, e8 i1 Q' R7 U5 s- T; t/ |}/ K7 m( X/ m+ j! g
% Q8 |. p8 }- G5 H. [登录视频废话:
, e2 @+ M9 P0 O/ }尾翼:
3 v' p* B+ K/ v @! t6 y# Y' Z7 c, {- y+ i
代码:$ V( `9 I* C. G' v
, N+ Z9 z+ B* j) g1 e3 Q
void CWorld::SetLight( BOOL bLight )
. i* f/ Y' s% J% l% Qdurch) @, Z- a& Y8 m+ Z- i+ }; X
Code: V- u; @# K) z7 V, \ s
void CWorld::SetLight( BOOL bLight )
- e/ n* h3 \3 s{7 k& e0 \5 p$ B5 h
//ACE("SetLight %d \n", bLight);
, ~9 O6 t, A9 I 4 ]2 q/ v: C+ _$ B. z
#ifndef __WORLDSERVER
9 N- f% w: r- \ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);; l' X9 H" h0 h6 l% l; G5 W
CLight* pLight = NULL;
+ T `0 }* E) B5 q, l* _( q; `0 F7 F9 T5 f5 [4 P& _
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );; J: Y w/ Q Z
& _8 k2 i% u. B! h8 O& k
pLight = GetLight( "direction" );
: \7 j V0 }$ W; M) M1 W+ j
4 ^/ N3 k* j1 `0 o( V#if __VER >= 15 // __BS_CHANGING_ENVIR# G1 j) S: a2 o3 x4 }+ h7 Y
if( g_pPlayer ){$ d7 K2 s6 N) m% ?7 v
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );6 \9 c3 Q/ ?0 u6 X6 R
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!- G' |1 d, d% _ m, d* ]3 s9 j
{! T9 j9 Z$ [+ h/ h! Z, J% ?- o
if( pLight )
8 `. a0 ?' \# n' S2 Y X" Z% h {; K" A$ {/ C7 V+ m
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
$ J) l5 i; D7 D pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
; e$ p. E- [2 z2 t pLight->Ambient.b = pInfo->_fAmbient[ 2 ];, `# c0 C2 k% ?, U J) g, }
) y7 x% \" K# {( C( o) z
pLight->Specular.r = 2.0f;9 Q3 h; ?: V3 l, F9 ]* f5 y' E
pLight->Specular.g = 2.0f;' a9 [+ _/ `5 r z
pLight->Specular.b = 2.0f;
$ v$ K7 \; ~) x* N, ?$ i' ] " ?+ \9 z% ^7 p% |
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
; [7 r9 ?( s; r$ D# Q$ ~ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];8 Y7 N- |) w3 y2 u/ f
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
& w! E! D! R: s4 Y& W # ~8 y ?$ H9 W: O5 v+ r! T
HookUpdateLight( pLight );
( U3 P, W3 A# u1 ^1 p& u c: a4 L9 A' t4 J1 L- k0 F
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. y0 b- u) b: `+ ~3 T ( T. P& n. W4 W4 K; d+ \9 {" I( m
pLight->Diffuse.r *= 1.2f;* B* L7 E9 s* v/ A6 {4 z
pLight->Diffuse.g *= 1.2f;
; H6 Z3 W7 z( o8 | pLight->Diffuse.b *= 1.2f;3 o" H3 g0 f) u: ]# y
0 y% I& H+ `* n4 ~+ @
pLight->Ambient.r *= 0.8f;
' I6 |& {2 `! n1 a* e: R pLight->Ambient.g *= 0.8f;+ Z) o$ O! E/ B- t5 J4 @; P
pLight->Ambient.b *= 0.8f;8 D# K0 m4 W) t$ ~# A8 }* [
4 u# o" k& ?+ p7 A
memcpy( &m_light, pLight, sizeof( m_light ) );* g. t% a! K0 C) Z7 \1 f
* z0 l7 q1 S5 }, m( \' L
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 Z/ a T, m0 F* p6 ~: W- W4 b
D3DXVec3Normalize(&(vecSun),&(vecSun));& w* s: B: G2 c6 ?: }8 i, d
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); % |. A) x0 U8 J
pLight->Appear( m_pd3dDevice, TRUE );
6 ~/ U/ h) g- n W, q( I0 o+ l1 O ) |1 q( L$ Q. S* ?+ ^
DWORD dwR, dwG, dwB;
# `3 [, K. B4 h) b9 S9 g7 T0 f dwR = (DWORD)( pLight->Ambient.r * 255 );
# L/ K" C; ?$ S& S3 Y dwG = (DWORD)( pLight->Ambient.g * 255 );& \$ ?# H: [. h8 M5 z: T* P
dwB = (DWORD)( pLight->Ambient.b * 255 );2 G. F w9 U' c2 s7 f0 D
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 \8 a0 l3 S1 |+ T# ]# T& `
}
* T: }; F/ k% V! m0 S! c- t0 y }% ]5 E% A2 \7 C+ F C
}$ s( v9 e. t! J% F1 N8 _# l+ g, }
else
6 d# G( d* M5 d- g#endif
/ t+ ?* n; F8 m; H9 m
( t/ \/ d# A, A) u9 _ if( m_bIsIndoor )
* B5 _, G5 a5 c/ w" x0 h u {3 ~/ }& w# |0 p" C" M, u
if( pLight )
( L( |& x. Y9 Q5 v, @ { - ^9 m! d" S z ]& R0 _! x
// à??μ oˉè* S$ \0 g( n7 y9 q! Z6 E9 y
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
& c# _0 V0 Q9 x2 V" R1 `) Y pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;) d) H9 H! a* j; u3 o: p
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
2 N8 g6 u6 L% G1 e0 B8 E6 F7 c% ^5 G7 Y) I% Y
// oˉè* ??à?
% I9 M H) Z' A* c) L3 G* Q pLight->Specular.r = 1.0f;
! L3 ~3 K2 L( l+ ^' v' y, V7 T pLight->Specular.g = 1.0f;
7 R( k; d5 O/ ], t& |' X; u. {5 ] pLight->Specular.b = 1.0f;+ x+ S0 b: p. z$ M
// àü?? oˉè*
: x) |: Y% V0 a( v l pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
) l2 a m4 T% t2 W8 S* Q, H pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
: m" S% d6 t9 F5 e" q, a+ M pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;4 }: U, c; _4 |# @( }4 I v3 X* O
1 Y7 M0 i: F- Z" H" ? if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
* E3 b* v0 y" ]3 t2 { { {! h8 C( G* T- @) q$ |7 s/ q( v1 M& r
pLight->Diffuse.r *= 0.6f;
. l% C6 ^# x& h: u& Q6 c, f) d pLight->Diffuse.g *= 0.6f;
9 \& I4 z, S' A( T# p& Z pLight->Diffuse.b *= 0.6f;3 r# x- B. o! W6 R9 d( i& q7 m
pLight->Ambient.r *= 0.7f;' W* F# _) n1 m& R5 _' c. d( g& j
pLight->Ambient.g *= 0.7f;
( J! g% N6 B& b3 M+ |' m pLight->Ambient.b *= 0.7f;
/ D; v \7 [% j4 n }& S! P/ q# |) i: Z$ s' }$ R) L0 B
7 f& {& E6 o2 q. m1 C
#if __VER >= 15 // __BS_CHANGING_ENVIR
& j4 q- B r( f7 F7 a1 b if( g_pPlayer )
a) j9 [2 {" j3 ?5 ?) y HookUpdateLight( pLight );4 ^, t4 R( M, ^5 Q" T
#endif
+ g2 g& m7 ~& I( }0 W# _- G4 l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# b) [4 \% G i7 r- @! V
+ e( L6 r' i- {( I5 E7 X3 p3 l8 Q pLight->Diffuse.r += 0.1f;% n1 V- L! M4 e8 u) M
pLight->Diffuse.g += 0.1f;+ d" Z+ a% \7 n; p& t; r
pLight->Diffuse.b += 0.1f; O% j. f9 L/ _$ i. N; k
// oˉè* ??à? 8 Q7 _% e+ }( A* D: j' Z
pLight->Specular.r = 2.0f;" d$ E; J. O4 E2 d% t2 {) K# |
pLight->Specular.g = 2.0f;' R6 x8 n& f! o7 J
pLight->Specular.b = 2.0f;# S/ Q% e; i6 R6 P' v9 `
// á?oˉ 4 \! v; S; G% C
pLight->Ambient.r *= 0.9f;, B, b: n* j, X3 e, H! s
pLight->Ambient.g *= 0.9f;
: ^5 m! j6 ^/ I pLight->Ambient.b *= 0.9f;, m; {1 D: a9 U1 g; K9 F
/ @6 e* G0 o: b& W {* f
memcpy( &m_light, pLight, sizeof( m_light ) );; f/ b( |! C, M) K/ k% {" I
% q) y! F7 o9 W$ R
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z ); L+ h1 x; T( R$ u
pLight->Appear( m_pd3dDevice, TRUE );
& ~& {% b% |* n/ G2 A. X
1 S, |1 R+ X3 c4 s* K. b; X+ B" n DWORD dwR, dwG, dwB;: x6 f6 p" j1 X$ u- t( `! y
dwR = (DWORD)( pLight->Ambient.r * 255 );' J1 g8 z, Z F: ~% q3 v1 m
dwG = (DWORD)( pLight->Ambient.g * 255 );
' E+ z7 e6 N+ y t dwB = (DWORD)( pLight->Ambient.b * 255 );. g0 ~8 Z1 _( x; V' ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 G' L) u1 J7 o }) C/ ?! p: ~8 J
}7 F3 e; g( S8 y" G3 [ }- Y u
else5 L; v6 A0 F; k# J+ v# ~
{$ r- s! { d# e2 P8 x
if( pLight )
8 e8 D$ V# W' E8 \7 ^ {: \# B- z' n0 L* {$ T3 Y
4 w- X0 e1 n1 h. Z# {6 g9 C; u
int nHour = 8, nMin = 0;
3 r" H. l8 i% z$ q, H- L3 r; X/ M #ifdef __CLIENT) i- }6 ?* k5 `% A
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
- H& d7 f: G. a# p% [+ ] nHour = g_GameTimer.m_nHour;# s+ m8 g0 K( x d/ P6 [
nMin = g_GameTimer.m_nMin ;, q6 Q- M7 X& {1 h' x
#else
& E0 R. F# _3 [6 U) L // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
' Q! @7 H# {/ m# @ if( m_nLightType == 1 )7 \ H, [( a8 v0 [3 `# Y9 h, P
nHour = m_nLightHour;7 R t- m5 x4 e/ M% c: V' W! g
#endif- Q+ ~; y/ u! q# C( S
nHour--;
I4 V4 u, |2 b( y9 B: r if( nHour < 0 ) nHour = 0;4 O, U7 ?7 ~2 e) n8 i% R# G& t
if( nHour > 23 ) nHour = 23;! _( Y8 w" c& B, f- a
, e' {5 r7 @" E5 E5 W9 t //if( m_bFixedHour )( X# F4 L% Y9 L4 p% D1 h0 r
// nHour = m_nFixedHour, nMin = 0;
, j; A8 a& }& j/ z$ c LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
0 V+ O4 D) Q4 e LIGHTCOLOR lightColor = m_k24Light[ nHour ];" X* O) Y. v) H- a3 E" A
7 [, x2 K( ~; ?" E //m_lightColor = lightColorPrv;
9 ^6 b) N( d) F6 K7 k. f lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
$ B3 k+ C0 b: l& I" r lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
2 K4 g) k1 P* {! p lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;! O! S% |! h& M6 i. q+ R) e5 P, X
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 q3 M) r2 K% K7 X
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
! c; Y5 b8 h; h$ p) i1 p+ P X! f lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;% C l1 {/ m1 R) Z' q# `
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)7 C" i' n$ _: g
, a/ Q m* E1 G/ L5 X: ~, Y
// à??μ oˉè*
+ X! w( o5 I5 j0 ? pLight->Diffuse.r = lightColorPrv.r1;
. r! S. T+ x8 q+ w pLight->Diffuse.g = lightColorPrv.g1;" q6 v" e9 H& z" R) [# U. I
pLight->Diffuse.b = lightColorPrv.b1;
5 r- q- ?* ?; ` // oˉè* ??à?
# U q1 n7 j5 c5 s pLight->Specular.r = 1.0f;
& e. U3 v+ Y2 a8 C0 w4 @ pLight->Specular.g = 1.0f;2 K5 y1 A/ K: y B7 @5 M
pLight->Specular.b = 1.0f;
- w# o, U D1 x, ?+ P3 J // àü?? oˉè* 2 [! A0 e( w; |4 x; s0 X9 K8 T& v
pLight->Ambient.r = lightColorPrv.r2;% l ]2 t" {6 ]# G
pLight->Ambient.g = lightColorPrv.g2;; b& ]* l+ n' H" P3 R2 W
pLight->Ambient.b = lightColorPrv.b2;
5 A( x% p- e7 G# H3 J
8 T a) n) A% i1 o" e4 M if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" v% L3 o. c! T( p' s3 k {! c1 I) b2 P+ ]0 v9 r
pLight->Diffuse.r *= 0.6f;
8 ^2 _! L$ W% ] ^9 b pLight->Diffuse.g *= 0.6f;
! L/ U$ \7 e' w) X- u8 D* u* O pLight->Diffuse.b *= 0.6f;
$ t, d# d' i5 G8 w' J; `) X pLight->Ambient.r *= 0.7f;
: i2 J( W2 V% W pLight->Ambient.g *= 0.7f;( F% s, u9 z% y7 O# G# y' u. v
pLight->Ambient.b *= 0.7f;
1 g7 @& m* C' c$ l }
' |. r& r& h, ~6 K8 u9 V' y1 }* E $ V8 D) r; Y5 F# U+ E
#if __VER >= 15 // __BS_CHANGING_ENVIR( f- A2 R D) C+ ]5 y
if( g_pPlayer )6 B8 |+ e9 s) u& h5 |: l3 D( R
HookUpdateLight( pLight );
( r! ?/ x; U4 x7 p#endif
* m5 P- D% x3 |' ~; g memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: u/ Y8 V( l9 n$ ?0 _) a% M; t1 Z( ~8 Z5 g
#ifdef __YENV
2 Q6 y$ Y% Y& @7 v pLight->Diffuse.r *= 1.1f;: {) r* S! q" Y0 H$ J5 r
pLight->Diffuse.g *= 1.1f;3 W9 f2 G* N7 H$ k
pLight->Diffuse.b *= 1.1f;9 {1 [6 D5 r: O: a, ^
// oˉè* ??à?
9 [8 p) a5 C! s pLight->Specular.r = 2.0f;
4 T( B/ t/ O) G' t+ ? pLight->Specular.g = 2.0f;
- i; z: i! q6 U, n9 h9 J9 {; o pLight->Specular.b = 2.0f;1 F' {9 ~' Z0 L" O# j
// á?oˉ # p7 A3 |0 J) W: s o" N
pLight->Ambient.r *= 1.0f;
1 |6 t% H% {- n( F0 j+ y* E pLight->Ambient.g *= 1.0f;
! Q, ^! [# [0 O: x+ c0 x$ j pLight->Ambient.b *= 1.0f;
) ^2 h9 Z& \- S+ e#else //__YENV
/ A# f4 Q! O1 n# K) {3 t" [ pLight->Diffuse.r *= 1.1f;
0 E0 I5 v- B9 J pLight->Diffuse.g *= 1.1f;7 L0 [6 ?8 d! h8 A" c9 c
pLight->Diffuse.b *= 1.1f;" B, q" C, j, q! B) }
// oˉè* ??à? ( c! Z' A0 { t+ L% B6 N3 L! z' y
pLight->Specular.r = 2.0f;" n: y; S9 O5 Y/ W, h/ ^+ H& n/ P j- W
pLight->Specular.g = 2.0f;
3 e& w+ i C( o- M2 A( } pLight->Specular.b = 2.0f;! C' t8 G# D" Y2 k: Q/ V
// á?oˉ
& A2 g5 D. ~+ g7 h/ a4 j P pLight->Ambient.r *= 0.9f;
8 z, ~( z# Y! N8 V* m pLight->Ambient.g *= 0.9f;
$ w4 P* @% n0 A pLight->Ambient.b *= 0.9f;
* ?* f: _7 k% g }* X#endif //__YENV
5 k) D" Y! v1 h/ R3 ]: i
" j5 ^) c2 v6 J( K) O, D memcpy( &m_light, pLight, sizeof( m_light ) );+ |1 H# R1 x3 r# H" }- h: W: f
* k+ P! z* |+ r6 ^
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);9 g. L$ ]" L2 C5 }! O
D3DXMATRIX matTemp;) ]8 c5 S, k& ` T
static const float CONS_VAL = 3.1415926f / 180.f;
! ?" l. t# Y: Y, N% r* R4 j! l8 }/ C% R
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);, i1 V! W) @; }: m" {' i
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);/ |; W. f) a; [9 w/ @/ t
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 1 x* S7 J+ J8 a4 U$ D% S
pLight->Appear( m_pd3dDevice, TRUE );
8 @: c8 g# B4 x/ H4 k" f9 m2 g
1 g0 `: |7 H. J1 W // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' N) L- s( ~+ w T3 j! d$ C
// D3DXVec3Normalize(&(vecSun),&(vecSun));
" b+ }* \" g. ]6 f: G // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 {4 g0 O) n2 k8 d, r
( [. k0 p' W( `& F DWORD dwR, dwG, dwB;
4 X) N9 H2 |4 o) c: i dwR = (DWORD)( pLight->Ambient.r * 255 );
% G+ |" q# w) U. m2 N- L1 E+ H# B dwG = (DWORD)( pLight->Ambient.g * 255 );
5 `3 C' x# R0 O, D8 B5 R dwB = (DWORD)( pLight->Ambient.b * 255 );( a- X% z/ W+ t7 R2 Q' v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* V* m$ X. g+ ?+ f3 O9 x }4 X2 O- R- e+ E$ E) F% a( u
}3 R4 ~+ C' l/ T. s7 p9 }! C+ w
9 ~) d! H; F% W4 _' o( ? m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
" ?* J& p8 K8 l3 } `9 s 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) );
8 _- Q3 w8 n% I0 [* f- n ::SetLight( bLight );
* _2 Q2 y, _9 {/ Y- u l6 O. z, a6 l4 t& l3 H5 P
// ±ao? ?D?í???ó á¤à? , ] V, d1 N: B9 ~! g0 Z
m_pd3dDevice->SetMaterial( &m_baseMaterial ); f3 w6 T" W$ O6 O N; H
7 W3 o# ~2 w% _, f$ U#endif // not WORLDSERVER
0 a3 h$ k& x+ @! g6 M Z}
# O: S. n* T% e8 Y: S( L; y" h并更换3 y0 n1 t1 U! w1 k
Code:
/ u, w9 ?4 f5 P7 B) v' L__FLYFF_INITPAGE_EXT3 [: r6 f) y* }+ W( _( y. b
定义+ ~( ?+ f! [4 f/ F" k
! |3 u7 {/ Z9 |" {- L, Y% N) a
9 R, j5 P. }7 f; b5 h: ^/ L& ^0 I5 W$ ]
& ?* Q7 e1 Z" S& |' m
现在终于删除我的狗屁加速...
7 A5 W& P8 Q& Z- c' s
+ ]; v [& O* L& W( E, J( y# H% D3 s. y* X/ Z
7 y7 ~" q5 k% k* [- T
|
|