|
|
食品车:
2 T7 F! w8 v8 p o4 N5 ~1 o尾翼:5 [! y3 _/ q$ y% D8 p0 X
/ O; K9 n4 ]: o" Z3 S! s; J代码:! G! D1 ~+ q6 p
CWndAutoFood::CWndAutoFood()# q5 x, \3 n& d5 N
{( c5 c( u( e+ G' P
m_pItemElem = NULL;
# e. `' y0 w) v: J, O m_pTexture = NULL;
# I2 L! C; i# P$ ^0 K) E bStart = FALSE;
" @0 F8 x/ |( Y$ W}; E% F2 _/ w8 q( R2 u
+ ?5 u- c+ {! y7 X1 m+ a7 {2 XCWndAutoFood::~CWndAutoFood()
- m) T- |0 ~9 G' ^{
6 i Y" e" @$ U: { AfxMessageBox( "AutoFood ist gestorben " );
& {9 j, `9 g; B. u}
* r w( r1 o) w+ K2 q1 f% B9 zBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )1 U3 |) D8 P" O% ~: X- k" m/ e/ R
{8 i0 a8 _! R7 ?
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) n; U" I4 C5 Z) L9 R8 R8 l
}
1 r, O8 E/ {. D( a/ L3 G9 S$ U6 s- p+ L( w0 ~* @
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
! ~& `6 t- k, |4 X{
5 h( X9 D; c, ?# V5 u! k LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
# x P2 Y6 h! ^9 I5 W CRect rect = pWndCtrl->rect;4 ] T: v* i# U5 J* s' B3 R
if( rect && rect.PtInRect( point ) ). Q$ D+ L* J9 Y) B$ m% A/ ^- [) G
{; V, f* y5 L3 e9 p
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
: O ^- T/ M+ }# L- k# z if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
3 V+ r9 [! ~# |0 |: f) V8 |# q2 O {
, F7 g6 V! r' z" J) } if( m_pItemElem )
0 X$ y8 ]* U9 S% X& J+ d0 d; k {/ m4 e# W; ?) {# F- ]2 N
m_pItemElem = NULL;
& U/ p3 Y6 ^/ N; G6 y; k+ p }
/ V) Y6 Q8 ]* y; K M m_pItemElem = pItemElem;
% D4 y# f" o6 _/ g m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );) C- C7 l# a2 w8 g* ]
}else{5 E9 e/ e) x9 d, `! j( m! i4 N! ^/ _
SetForbid( TRUE );
+ \5 e, Y4 N* ^1 k }5 H+ d, B h3 j2 K; |
}else{5 q2 I6 K* {. X- G# k3 e# n
SetForbid( TRUE );7 H1 L1 J8 S& d% K& b- P
}
" A# @/ @0 h0 Y6 K5 D return TRUE; g2 ?( C. a& J! Y# ^- ^
}" K$ H( A1 x! V
8 R& m4 W# T- c$ {8 e6 H; l0 c
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 Z$ R. G6 C- C$ k% v
{
: k3 [0 P) b: v; H8 g0 y" D, { switch( nID )
2 O! C+ p2 j5 F6 X% n# C {
" {% L% u. v2 s$ f/ T" e7 ?* ?6 V$ @0 E case WIDC_BUTTON3:
" E$ R( y8 D, u- C2 F! X$ v {3 g u5 u+ Z- [: K
bStart = TRUE;3 v# _, w1 M2 Y. L
break;7 {8 M+ @- Z, k8 i
}6 P: G& J; C: f! _" W
case WIDC_BUTTON4:; T5 Z2 Q1 L8 T+ Y& [ o: }* c
{
0 d& c: T$ P/ K+ V% @; ` bStart = FALSE;
: e0 L; o. k' w% W& V( H0 p* E break;; P' r& Q- `8 e
}
, ~+ D" H" _& z }& X: e+ ~0 `+ Y
return CWndNeuz::OnChildNotify( message, nID, pLResult );
( A( Z w5 |* }* T- X: i1 f- W& S}
0 b5 U, {9 z* C4 `void CWndAutoFood::OnDraw( C2DRender* p2DRender )& _: a% u E6 W0 x$ K% l
{! ^7 J5 Q: J! R- ^% O0 j
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
! G% P4 w# T+ Y( ^: z3 X if( bStart || !m_pItemElem )
+ O- b1 }% o" Q" j) q; ? {
; P+ Z" j5 x& h- i) o6 N pBtn->EnableWindow( FALSE );
2 M5 p l# {" {: A; W# P5 S }else+ D5 ?1 I3 U1 |. _
pBtn->EnableWindow( TRUE );
/ ^0 M6 l2 p; _6 i: v if( m_pTexture )
- k* A8 \' Z! S0 |! O8 J {
6 w) j' m! c3 f9 q! e8 ~" s* L LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );4 n1 l7 f2 S4 E V& ]0 j
if( wndCtrl && wndCtrl->rect )
! u# v/ f: Q1 j( p {
' I! q- G$ H& H; s$ I9 b2 l M m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
- y; {+ ?9 O& p* @0 T }. ~6 f( Z% k: N0 `5 H. x5 x
}
$ U2 B; _4 T! }( X, J- u}3 ?$ @6 l1 i! Q3 ^
# o' \$ L. n0 \6 G MBOOL CWndAutoFood: rocess()5 s2 L: l% v) }& J; f2 h, I5 `
{
, s l& C/ l$ ^1 f if( bStart ) y: l/ ^9 m% W( U3 U
{
3 F, I) S A9 O! Y! N7 N if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; V5 j, W; a6 f' h# c- k {/ w7 I( @/ Y9 Y# b9 [
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
+ y) T+ Y( _) R- b+ z' j! {3 X g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );1 N. T1 a: n: d' L/ m
}else{4 Q$ k3 c! I# ^
bStart = FALSE;
1 v% ^# j5 m# c) L3 u, i m_pItemElem = NULL;4 A8 Z8 c- q7 a7 n- Z
}! |& L# D+ _3 T' T: k% R4 E
}
/ G6 r* I' I+ t9 { return TRUE;
, e) S, P7 \7 O. |% v}* _8 m9 ?. G# k1 u
6 r5 Z0 w3 \* k9 J登录视频废话:' ~ |+ z/ q" D. L0 T
尾翼:1 e8 ?- X7 H9 x( b! k4 x! {
: R3 g2 s6 @0 A: Y- \
代码:* u. P- C6 E) { x; T1 q& _$ F
4 j& _* w* ^- E0 F) {
void CWorld::SetLight( BOOL bLight )0 d$ T- K+ K, q C0 k) g O, f8 R
durch) |7 W6 w- H0 k3 x# i
Code:5 c9 y1 R0 R9 T) @- ]3 f; ]
void CWorld::SetLight( BOOL bLight )0 }# i! F" [4 @3 B
{
1 i" D' |* Y4 Q. D //ACE("SetLight %d \n", bLight);/ M. C/ a f, m. G
2 s' ]8 m0 q/ R* j& M) ]( Y#ifndef __WORLDSERVER
7 f! j6 g4 R5 z* s DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);/ O+ Q% R+ E# y7 K1 L
CLight* pLight = NULL;
" O1 s7 m2 b) j' g- H+ T
- C; `7 C# Z% J/ f3 X5 K o: c D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );! [6 J! F' x, L; f% f# t
q9 g* U0 ]6 ~ t- C6 R pLight = GetLight( "direction" ); ?% L/ y# C1 C2 z) U+ S, l
4 M2 K* U: b$ _6 A
#if __VER >= 15 // __BS_CHANGING_ENVIR7 e$ }/ R$ r; [% D- h. V* u
if( g_pPlayer ){
6 M9 V3 f9 g! x* k1 G3 }/ x! _4 @, d' i; n ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
, Y% p! U( G& k3 Y: s. l- V z if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 M4 g* J1 {' s
{ |. Z+ U8 a" U8 l3 n; T, a; l
if( pLight )- i5 B$ t7 O2 v& h" g) X9 ~: D
{
3 e9 N2 h: X; ]: m9 k. \ T) ^ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) I* W: J9 P/ e- K
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];" \& Q) M4 y2 J1 S' r, {
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 G4 F4 ~' ~6 N/ D$ o9 D6 Z4 W4 Z
: ^7 ^5 c) [9 @$ Q2 P. T& _ pLight->Specular.r = 2.0f;
1 A5 v' R- A( A$ k) j pLight->Specular.g = 2.0f;
$ N/ L! w0 r# g' j8 Q7 x pLight->Specular.b = 2.0f;& |/ v4 m7 M T
- X$ ] c+ a% |5 h2 I# D pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
( x- e* Z5 X0 S/ T- Z$ i* h pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];. C' i2 z3 Z! [! K& @" N( B
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
) y& j$ b! t# P+ v* n
+ V" O' C; @# P( W& M+ c/ c( N( S! @2 Y HookUpdateLight( pLight );
7 a' k4 ^: _9 a% T, M* N
3 [" O% r# g/ \5 V) l D: d2 n memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% M$ U+ a/ J+ `
& l8 B8 z/ h# D* ~* G pLight->Diffuse.r *= 1.2f;
9 G9 R0 E- ]: o6 C" D pLight->Diffuse.g *= 1.2f;
' }+ h: p; a6 ?3 O* t pLight->Diffuse.b *= 1.2f;
2 W" C+ ?- j; [; Q' C* z+ V# d6 }+ l6 j
pLight->Ambient.r *= 0.8f;
, y( Z, i z; }, ?1 V pLight->Ambient.g *= 0.8f;* |) C8 }' T/ c/ T
pLight->Ambient.b *= 0.8f;2 e! Q: p2 T' G9 E2 _ R
" l8 \( r# l% o memcpy( &m_light, pLight, sizeof( m_light ) ); V s: w: ?3 [3 N# }* O; Z% \, T
) M! F0 K# N' r# ^! J7 _' p D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 h( }! O, T" i- |5 P# o* \ D3DXVec3Normalize(&(vecSun),&(vecSun));
; Y* U" Z- l! ~* K pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' h& P$ f H1 i8 O2 X$ i2 z
pLight->Appear( m_pd3dDevice, TRUE );
- S7 Z9 e1 l+ u- b
* K$ r, E' \! I8 [5 a DWORD dwR, dwG, dwB;+ x. s% V) U) {, Q/ K
dwR = (DWORD)( pLight->Ambient.r * 255 );
, e$ d# w" M2 T5 Z8 |2 u7 k' Q dwG = (DWORD)( pLight->Ambient.g * 255 );2 f2 Q% x4 N6 y4 Y7 U! u
dwB = (DWORD)( pLight->Ambient.b * 255 ); O& i3 d) r" P C
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 v. m6 T& ~$ p7 p5 u
}
* p f: J/ N/ K9 u! f }
, [* i3 S& v% q( h, N0 e' Z) j( \8 } }
9 U* l* `9 ^- |. {( G else
" N& h) X! j C3 I4 _#endif
+ V0 Y1 ?/ j8 w+ j5 a7 A
9 U- j: P( @# A& [5 } if( m_bIsIndoor )
) E- r7 G# d: V1 x {. [' R! e* _/ h: N: \ |" u
if( pLight ): p8 j) b2 o7 O5 }' p* h
{
9 E; }% M; s2 K8 b% S // à??μ oˉè*
+ m$ I# Z/ O, H pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
! M4 Q ~; Z6 T" S0 [9 R, E! { pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
" ~0 n a. v& d1 C" B X9 V pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;8 u4 m3 K; t0 M; o1 X
1 L1 D. M" [7 J1 h4 X+ b // oˉè* ??à? 5 B; {- E3 z2 c. s
pLight->Specular.r = 1.0f;
+ k! R2 L; H2 k7 g$ E6 K. V pLight->Specular.g = 1.0f;4 t Z! i; d/ q: i: Q8 l
pLight->Specular.b = 1.0f;( p' S0 b9 X' K4 u/ V* n
// àü?? oˉè* / ~$ S9 |' c$ u$ J
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;. m$ ^% C$ B) d; H) v6 |7 @, L- ~0 B
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;/ O; x" A7 h, K# Z, l/ B
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;) g1 K# }1 v) o
0 J4 [9 z7 ?8 _4 \3 i0 v; W if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
3 l7 i. |- {! L! k {
+ V# ?# g$ E/ p: U" l7 q- | [! y. P+ a pLight->Diffuse.r *= 0.6f;
1 ]0 { \3 H) R5 l; L0 t pLight->Diffuse.g *= 0.6f;
$ Q! z! [ {0 F2 l pLight->Diffuse.b *= 0.6f;
/ G+ H+ Z: M& L. f& ~6 E pLight->Ambient.r *= 0.7f;
* V8 w9 Y; D7 W u pLight->Ambient.g *= 0.7f;* E' R- S6 R! ]% o! t! ^ W1 o0 C# i
pLight->Ambient.b *= 0.7f;
B3 C5 p& g; m! C0 N }, m& r8 K9 ?0 d
- G+ `4 i2 k0 O. [8 }) o6 H#if __VER >= 15 // __BS_CHANGING_ENVIR* o0 G! }) I3 ^5 o/ \1 K9 Q
if( g_pPlayer )' p& H$ N3 w( W; l2 ?
HookUpdateLight( pLight );; O: ?) }& [( {5 T9 j
#endif
4 ~. ^9 B5 ~8 e A memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- s Z# \& M$ y& _; J D' r0 a9 C3 t! D# C* i) \. \
pLight->Diffuse.r += 0.1f;: D4 n, {# a6 h ]
pLight->Diffuse.g += 0.1f;
. R( T% }$ ^, d, k pLight->Diffuse.b += 0.1f;
* s4 P& ^, a! A/ k' ^ // oˉè* ??à? 8 d- p1 d" w8 f9 d2 o w% q
pLight->Specular.r = 2.0f;! Z% _3 S7 Z( |) x }7 x& `. x6 l
pLight->Specular.g = 2.0f;
) v8 s, o+ x$ ~ pLight->Specular.b = 2.0f;
9 P' H0 Q- n4 K0 \1 b8 }6 Y // á?oˉ
. C* U( {- z) r9 o pLight->Ambient.r *= 0.9f;
! W+ e# x& B# l& ~# ?- V" p6 ^ pLight->Ambient.g *= 0.9f;
" f2 k! v1 r* b$ G7 a pLight->Ambient.b *= 0.9f;& x- ^) U; o% `9 D d
. I; q9 b9 d$ @8 @6 g3 v memcpy( &m_light, pLight, sizeof( m_light ) );
$ z" \9 y: Y; ~& I! p8 L" Z5 R
: p! p: D* e1 q3 g4 T( j2 W7 |+ \5 N pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );$ ^" x/ {) P n; {# ?! @5 g
pLight->Appear( m_pd3dDevice, TRUE );
5 Q/ i6 B9 d5 q8 R) |% W, T & P5 o7 P5 ~3 Y( }6 ~
DWORD dwR, dwG, dwB;
. d0 h3 s( t8 E8 Y* K# q dwR = (DWORD)( pLight->Ambient.r * 255 );: F0 h/ W4 J: {. ~, Z) L
dwG = (DWORD)( pLight->Ambient.g * 255 );
* W6 z: A; S; \+ @ dwB = (DWORD)( pLight->Ambient.b * 255 );6 @% a; m |" T4 R. p
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! h. ^% I7 e( ~5 _5 c }+ D6 k4 s* `) [* G. N
}
$ o: F, d% k+ o8 l else
! x3 L# X- t0 G( Y {
( {( C/ I) D( ~# Q if( pLight )) n* C4 i2 i8 R
{/ T% c8 H5 Q) P6 {$ n$ v5 D$ R( q8 n: O
' ]0 @1 R& F2 k5 P# g int nHour = 8, nMin = 0;& T6 H( S3 U2 u- l& K6 I$ E
#ifdef __CLIENT
; P, D) l7 X4 z6 e5 S' o4 A/ M // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
' c& ?+ E9 n& P# Z, s nHour = g_GameTimer.m_nHour;8 e8 T7 ]" n8 T# W& W, M
nMin = g_GameTimer.m_nMin ;4 p. s" t1 i/ V9 K3 L& P
#else
* [9 i) U4 G7 R S; Y. N // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.8 f1 |: {( O) C% G8 T+ p: Z
if( m_nLightType == 1 )
$ L1 C+ l# t, v7 I6 d6 {- n nHour = m_nLightHour;# _7 ]5 `' T$ f; x
#endif
7 y6 B' e8 K% [# U) C+ X! V5 k nHour--;
5 Q* _! S+ n6 M( Y; x5 T if( nHour < 0 ) nHour = 0;1 L! y1 a2 c* u& g8 P
if( nHour > 23 ) nHour = 23;
5 a* ^' W" c f4 o% L! e6 c0 _: E8 e/ |- o1 W
//if( m_bFixedHour )9 ?5 w& w' X( f* v$ M+ t* a
// nHour = m_nFixedHour, nMin = 0;
" A; g2 Q/ i' h- H$ Y ^ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 n* J9 z1 ~% `3 a3 K! w
LIGHTCOLOR lightColor = m_k24Light[ nHour ];. E. y7 a& n6 t8 O! t$ j( h) [
4 L$ m a3 v4 ~& b0 p( k6 P //m_lightColor = lightColorPrv;
, C( }+ t' T; G, f9 O lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 f& B" _; I7 G: B lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;! K5 |& q% d9 f- c5 {/ j
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# H. Q! B9 H! c
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 l g5 z4 A. o
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;- q* z" g }. H. l" A2 N9 k9 h
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;: a2 k5 ?( [& \) d9 _% a
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
5 [4 t- {" U% d j5 {, ?
7 Y. m- ^( { L: h) E // à??μ oˉè* ) C; k0 [0 J* a2 ^, {
pLight->Diffuse.r = lightColorPrv.r1;" {( s, i# B4 S3 y. O( G
pLight->Diffuse.g = lightColorPrv.g1;
- Z% \* h# I( e pLight->Diffuse.b = lightColorPrv.b1;, f( r* ~% z, a) T
// oˉè* ??à?
6 I) h& X+ G- I6 S& q pLight->Specular.r = 1.0f;, Q0 E! e! k" E' O- K- D8 `# s
pLight->Specular.g = 1.0f;: p& X1 L2 s# p- C. ]0 o
pLight->Specular.b = 1.0f;
0 u c2 [) Q4 @0 T [5 ^( [ // àü?? oˉè*
: H1 f4 J. _% r: O e( c; z7 z pLight->Ambient.r = lightColorPrv.r2;! E y. G3 b7 o" N- |1 g; f* ]* P
pLight->Ambient.g = lightColorPrv.g2;
6 T3 E( E* h8 |2 q+ s pLight->Ambient.b = lightColorPrv.b2;
! M" v' t1 G' |# h, @( o }& u+ y" U A, s6 e Y M) A
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 U F1 k# o8 M- R2 q: e H
{
9 l* @. x- O8 n pLight->Diffuse.r *= 0.6f;1 g# k: e k1 u& `. q- R1 l. Y
pLight->Diffuse.g *= 0.6f;
9 P: c: T& Y# b8 {: B- r pLight->Diffuse.b *= 0.6f;4 ]+ H) `5 A7 ?5 y7 W
pLight->Ambient.r *= 0.7f;/ ^! f, }. f/ @9 j% \
pLight->Ambient.g *= 0.7f;
6 {4 M( U# `. A) ^ pLight->Ambient.b *= 0.7f;
- r( p5 P% D( X9 h0 x8 l }; F1 o Z# [/ n) l( d* g6 j8 R7 S
1 U5 r; H9 V1 f$ d. i& p& O
#if __VER >= 15 // __BS_CHANGING_ENVIR
) t" A# X) {! X6 p7 E- e if( g_pPlayer )
# t% F7 \# N6 [; u) p3 i! }- f HookUpdateLight( pLight ); ; {- C5 c" ?9 j6 m
#endif8 p3 r" X9 M+ \% q h6 s
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- b9 C- e1 E# C6 k# a8 l% @! c/ G, R/ k; F6 u7 q
#ifdef __YENV Q6 ?$ h# z2 p! A7 |! O
pLight->Diffuse.r *= 1.1f;) d* u! |, `1 _, n
pLight->Diffuse.g *= 1.1f;
# V' i. I* B; E z- `4 a* A pLight->Diffuse.b *= 1.1f;
! y1 |1 A9 c/ ?* @ // oˉè* ??à? " K6 x( F2 m: b" L6 H8 W
pLight->Specular.r = 2.0f;
7 c# y7 i1 l1 j! ^/ S& v pLight->Specular.g = 2.0f;
3 a% `# s5 Q. z# w( [% I9 M pLight->Specular.b = 2.0f;/ Z4 v- F2 ]; i( A# Y* p
// á?oˉ
) P; h0 u; W4 C$ i' K1 R; Y pLight->Ambient.r *= 1.0f;
6 b' ?* a6 d0 [% s, o2 v pLight->Ambient.g *= 1.0f;
/ _' M- L; r+ K d; S6 i pLight->Ambient.b *= 1.0f;
% r7 ~1 } a, ~ [$ ~#else //__YENV
3 n) {& ]$ Z1 Y- c" q6 H/ r- d. D pLight->Diffuse.r *= 1.1f;
6 T h2 ^# K- W7 d e0 W pLight->Diffuse.g *= 1.1f;
! X8 e# h- K( o7 h8 @, g pLight->Diffuse.b *= 1.1f;9 F5 i0 |; E9 U. e$ R" x0 W1 A2 v! n3 U
// oˉè* ??à?
+ }* F8 c+ u8 @$ h% a- d" Y: W$ ` pLight->Specular.r = 2.0f;
/ C d( U$ |, C3 L. f- d pLight->Specular.g = 2.0f;, @0 F/ ^4 P1 `3 H5 g
pLight->Specular.b = 2.0f;
8 T# s; E6 n$ ]; e* W& [ // á?oˉ 8 r+ U* G* m7 T: B3 [. t8 `
pLight->Ambient.r *= 0.9f;
# n5 Y, e1 ^$ ]5 W" o pLight->Ambient.g *= 0.9f;
2 a3 I1 K9 }* \. k pLight->Ambient.b *= 0.9f;" {: F/ `% W1 L' F& a5 n0 A
#endif //__YENV
5 e: J& a5 A; K" J% Z" L
# V& w5 i; Z7 |' x# S memcpy( &m_light, pLight, sizeof( m_light ) );% _. I. ]- [7 P7 w
2 f3 S5 p) ~( `4 k4 O D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);1 T2 f3 T: E* V0 Z5 @7 W! }
D3DXMATRIX matTemp;7 R- L/ |6 f* O
static const float CONS_VAL = 3.1415926f / 180.f;
) q, t* n: [/ ?3 Z2 i$ J) W: g6 ~' T1 f0 x/ x: ~- S6 X6 x
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! x( j7 N6 h. ?7 G1 F3 C3 r D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
3 }9 @ E( B! ~! r! h pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ; N, M- y8 b8 ]6 P/ C
pLight->Appear( m_pd3dDevice, TRUE );; Z4 Y& o6 Y. I1 T, T( v7 j
/ W6 A( h s q: y+ k+ _ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 J% B4 J! o1 D- z V9 ^
// D3DXVec3Normalize(&(vecSun),&(vecSun));
, }! A H+ w5 B( K // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 4 T! u9 o* Y5 i0 M6 [0 C
( B: {9 |5 T- P' t* V2 ^
DWORD dwR, dwG, dwB;
) J- |( x( g6 A. W% g2 W1 c7 Z3 W7 W dwR = (DWORD)( pLight->Ambient.r * 255 );! L- N& H# Y3 X3 V, |' p
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 ]) g3 y$ ~ R6 |- ~9 w8 C dwB = (DWORD)( pLight->Ambient.b * 255 );
1 k) N! y7 f" h2 J) t' ?3 j dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 t7 _ k* V+ ~( h4 d }
2 o% `# c1 X) h! W }
8 E* W( ]' H+ H- W6 ^/ i" Y# ]' C$ p% v+ a
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
l& r) {" U/ s3 d8 s. d- | 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 y5 n; r% O/ d% u ::SetLight( bLight );! p, r* ~, G7 ^: J7 g( h1 F
/ n* q& y" M" J
// ±ao? ?D?í???ó á¤à? ) s. t- o7 V3 o! B) H, g
m_pd3dDevice->SetMaterial( &m_baseMaterial );4 u! q2 `; c9 @+ X2 I0 z! d
4 c- M, T* l5 N# ?#endif // not WORLDSERVER
5 O5 ^; y* c" t4 M& z1 O: `$ p}
! e; T5 `5 I$ A. _, L并更换
) C- H9 y+ |* l* p) JCode:6 b( [1 j) Q( L' e+ l
__FLYFF_INITPAGE_EXT
9 l1 K) V# L6 c4 R7 n1 }定义) e( V, o# W) f+ C4 t& M5 F
+ a: ?5 ^; g4 a' D3 }+ J7 i* X+ R0 F) ^
1 W4 H+ `; ?" |; o; }4 G% l; ^! U2 i8 T7 ?, b: ~! a
现在终于删除我的狗屁加速...
5 }6 F5 q7 H+ ^% q
|4 m' W# Y/ t( h* T
4 ^. A3 ]/ k n. `2 |
3 I; b& x7 B# A* B' X+ I7 v |
|