|
食品车:1 F6 V, \8 c) K8 [, B4 r
尾翼:% w- P; o2 p6 v* j
8 H( ?7 W1 Y! _1 @; ]4 s* N5 U代码:( s$ O: j) l) K. p
CWndAutoFood::CWndAutoFood()
8 ]9 ?9 d7 W+ ?! _{1 g, C! d- }8 f7 a: \1 { H6 l0 ]
m_pItemElem = NULL;
$ I H4 \5 k' P' ?6 K* V+ O/ S p+ s8 n m_pTexture = NULL;
$ I! ?! E8 l& }) y# r# \1 J( v bStart = FALSE;8 C" z& R* V w1 @( q
}
1 U% f$ T- _ v2 b4 C2 d5 x7 t. Y: K7 s3 A% ]
CWndAutoFood::~CWndAutoFood()5 W X$ q% E) Q$ s/ }) U
{" {7 }3 T, N- `+ c
AfxMessageBox( "AutoFood ist gestorben " );6 e' W4 r8 n8 O* F- R+ ^
}0 i' P. Q w0 z# }. W G# I
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
8 u' p7 ^: t2 t/ J+ A/ R{
" Y2 H1 y9 T, F$ Z return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );0 u* T) e5 _. L/ H% b
}
9 t- X) b: g! N2 P; q. F9 \* m/ U7 u K p
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
8 r$ ?2 ]( o5 D5 `/ w |{
" C b2 E5 n" X$ ], q7 [) N& Z w LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
$ d4 A& K0 [' W0 P; X" J5 C" w$ k# v CRect rect = pWndCtrl->rect;# D' F" R$ R& U' a6 W- i; k2 d
if( rect && rect.PtInRect( point ) )% j- K. T- J+ K5 ^) \ n5 l( [
{. ^" h3 x g4 x( i
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
: g6 Z: ?/ A7 x; h6 J6 j if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )6 n: X& I' R7 ^; j
{
, v3 Z6 M! e5 v2 Q. `1 [' H7 y! t if( m_pItemElem )) `) w) Z- w) V# U5 N5 X
{
1 \0 q/ H* `* D; a9 P8 r; u m_pItemElem = NULL;
' H) T& J, S7 k: p3 n0 S' {" [0 y6 L- S }+ B4 D" G% A! _. z- m& s
m_pItemElem = pItemElem;7 P& L+ h& X; U6 Y( R
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
5 g$ _( f5 O0 P1 N* p0 H: R }else{1 o. d+ b" }% T
SetForbid( TRUE );
: L* i" j- r- b Q3 h }
, ]7 x, `5 R3 q% E }else{ o4 x+ t' }# q+ I% A
SetForbid( TRUE ); U/ ]+ Z7 g' N3 H% Z1 I8 `
}% F+ n1 R! ^' l% Y- Q
return TRUE;
5 r0 g5 }- c3 I9 w}9 v4 R* a) @" U/ K. k
2 ] }% f6 Y; [* x4 T
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )! l0 m0 k; l4 j
{
- D* R8 W3 s1 t# x; W5 E! G switch( nID )1 f+ B1 Z) g# t6 A
{4 S z+ C, _6 t; x9 U1 D: q0 {+ _
case WIDC_BUTTON3:
0 c+ |: P+ N. l' T- n; k1 G {" Z0 j6 V4 g8 G I1 W3 L
bStart = TRUE;
8 R6 }; l1 _4 S! ^ break;7 E( |$ Q, T |7 o: y
}
1 ?6 e* o B( P5 |! G: E2 y case WIDC_BUTTON4:# R" D; j0 l9 u; ]! m
{' [$ j/ C: p, U+ k% J7 ]- y
bStart = FALSE;
. G5 u. F4 z5 `/ \! Y break;; }2 e; a- S S/ J0 T! @; @
}
4 x6 j+ x# U- v% D) F }
! n/ S5 i, r$ W( k return CWndNeuz::OnChildNotify( message, nID, pLResult );
# e& J, P' M: N3 I0 S/ t5 H& N8 L, J}
7 w/ R" H4 b+ n9 k! \% cvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )$ V0 f1 X ]6 z
{1 Y Q3 q0 t6 I
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );8 l8 U: ~5 D o& w) t+ a ]
if( bStart || !m_pItemElem ). z5 m2 l- Q, H
{
; E C V9 \; `- m( l/ r+ E pBtn->EnableWindow( FALSE );: s% F- d, P. ?7 G
}else
* h" H7 W' J& j4 q* z4 A pBtn->EnableWindow( TRUE );$ e! O! g g7 s1 H& K% J) J
if( m_pTexture )
# r/ N( D6 p' M4 L {: ]8 \9 q- x+ N* i/ b
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ F/ f* M- V+ |" m8 d) K
if( wndCtrl && wndCtrl->rect )# ?) i% `1 Z- u& |
{: x$ r" z1 Q5 W" _' L
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
% D: x1 g$ P. l, A9 W }
( W3 B8 W4 H' H) x5 L }
# W/ j+ i3 j! y( l8 ?}
! r- m4 D1 G: w) e& l# p/ E I! S3 p' L% M
BOOL CWndAutoFood: rocess()
* [' f0 V3 d, L+ I& m! w{1 Z) s* u8 ]2 J- ?9 R, V
if( bStart )
/ x, S' [+ L3 ^0 b5 r( E P {+ u+ v5 }) q+ ^" ~ @
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )3 s! N& U+ e' Z1 m
{: p/ x O. _ A9 e b _2 F
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
1 G% p3 Q" e, I; A j' z g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );# @! t* j) O& c# ^# T- c
}else{% ^0 K& D2 @8 c6 z% y
bStart = FALSE;
8 _2 n8 V! N# P1 s m_pItemElem = NULL;9 m2 c; ]$ [) N& s" p
}5 c/ O& S+ A* v w0 I
}
! H4 f, W0 b2 \3 l return TRUE;
5 L+ K" o: q, X; l# }}2 I* Y1 x* K) |0 c; R! {) Z
5 L, { W2 I, I, ~9 a& B登录视频废话:) ?( J! O0 O" K) I
尾翼:6 Y+ i' Q8 g3 e \. @
0 D% }) y+ N" F8 w9 ^; Q
代码:8 y6 W/ ]; Q/ j& H
9 d0 G) H- M; u# Bvoid CWorld::SetLight( BOOL bLight )
0 I% x6 x' s' s5 ~/ n. I8 J* ydurch" k6 I9 a" V* E/ X& a# |
Code:1 |, \ r- ]% F. N3 [- r
void CWorld::SetLight( BOOL bLight )" X o9 C! Z+ k; l4 F9 Q
{
4 k1 S9 Z4 X* ?4 Z# `: m //ACE("SetLight %d \n", bLight);
& V# I/ ^; D2 P ) C. B7 @0 ^7 g! Z' F# T
#ifndef __WORLDSERVER % n! \9 h' u8 E* q4 |: r8 x
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);7 S0 V& n4 g( q c+ F1 l2 e! @
CLight* pLight = NULL;' d( k# i1 M- y8 S" ^
& l) ~/ v- \/ N4 x5 N: P
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
3 F+ }1 o4 e& k- P+ n
/ C! s2 y* R$ @( b; z) T pLight = GetLight( "direction" );$ g W$ d) g s
- N, p3 _2 W3 |$ y$ \
#if __VER >= 15 // __BS_CHANGING_ENVIR
5 h# z, `: U; U1 ~9 p if( g_pPlayer ){
0 \( B9 C4 Q& U+ ~2 f ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );2 b' `: C" H! n
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
( R8 q' W" c5 f5 }" ]+ W { `! L6 v3 A5 @' u7 A0 a
if( pLight )& H7 U; T2 [( w+ q# v5 F A
{
8 H7 }. k( E0 f( R& H W pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
, w# C5 {6 C3 x0 E pLight->Ambient.g = pInfo->_fAmbient[ 1 ];$ E! L# `* b2 W7 L; B
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( @5 |) {% Q7 J6 D2 N e# G1 v4 |. A4 u9 a, x+ F* _, }, n& U
pLight->Specular.r = 2.0f; Y4 o+ P A& t' c4 `5 _! {: }/ _7 ^
pLight->Specular.g = 2.0f;
' A) ]+ s9 E! [: B4 `. r pLight->Specular.b = 2.0f;' \9 h7 |3 t; c- p( f
. J$ \; P3 b; k) I
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
1 S" U! {# c" Z6 i6 w8 @" c0 K pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];0 B; D6 d7 b% f
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
3 d# ?: k2 q7 H1 a* J # P( p9 }' A0 C
HookUpdateLight( pLight );
5 h$ d& _& s, g/ F
0 @- d& {0 p0 V0 }# T, c ] memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; k8 ^ I$ R7 q) |* k4 W0 }% @3 s $ i7 q$ {. J# X
pLight->Diffuse.r *= 1.2f;
9 X4 ]( ]$ V' g l pLight->Diffuse.g *= 1.2f;- ~0 X+ M1 c0 V, f; T& `
pLight->Diffuse.b *= 1.2f;/ d" o+ ^8 E" T8 x: S, I. }
8 b J+ L' X& I6 v$ e
pLight->Ambient.r *= 0.8f;
9 ?/ [3 \# ?7 Q; N pLight->Ambient.g *= 0.8f; O6 B7 p3 g% R4 b6 q
pLight->Ambient.b *= 0.8f;+ i q0 u; r2 u$ ~
, y/ E* H% c/ `6 O$ W4 a memcpy( &m_light, pLight, sizeof( m_light ) );4 t9 a5 |! s3 a4 [4 C. j
0 I) O7 G4 r" A% H# |
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 v3 ^2 T2 f- L x' \+ H r, M D3DXVec3Normalize(&(vecSun),&(vecSun));
! j- d2 l' O- W- K' ^5 g pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
4 k" o! A# }# j pLight->Appear( m_pd3dDevice, TRUE );' [6 I. |8 P' n' m5 O i E$ ?
0 m8 Y' q& _) t$ E6 ]
DWORD dwR, dwG, dwB;! f! Z# Y8 v: C. B
dwR = (DWORD)( pLight->Ambient.r * 255 );/ ` V/ \) ^. v, G6 p* s4 `
dwG = (DWORD)( pLight->Ambient.g * 255 );
m7 M3 Y7 M, ^( R' k3 f, n7 o dwB = (DWORD)( pLight->Ambient.b * 255 );3 [) N; h1 L7 s6 C9 N
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 B2 j* `: z- @$ i }8 C3 k2 ~- n& f; O) y9 s1 w
}
! e: U1 M4 k& M2 n }
" T/ \; B& C; G: Q else
3 {6 V. i7 ]6 B, U#endif
8 c3 Y% J2 ^- r; n6 T
/ a" `% p. R' o9 i2 u if( m_bIsIndoor )
# v) K! ^+ \9 P( x1 W% B/ N/ j. m, c {
( |+ D4 P3 e O3 c k8 m/ }* y2 |- z if( pLight )
8 G" \3 y# j7 h7 Z, Z7 R* ` {
. Z- g- ?1 ]$ x: X& e- F // à??μ oˉè*
% z0 F6 Y: V' n* \5 o pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
/ n7 D, F4 f( V z% T" `$ L pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 k/ g- ?3 P! o pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
1 x8 z( ^& Q+ S2 Q! d* F& J
; m8 E8 H |- M+ g! \# C. T2 ~( T // oˉè* ??à?
% L; f2 \4 i6 S; R, V: A8 H pLight->Specular.r = 1.0f;' K3 u p6 J* A6 l6 t- N, c
pLight->Specular.g = 1.0f;! B v8 t8 l3 ~3 A& `+ u
pLight->Specular.b = 1.0f;" q2 M, H6 R4 t- A
// àü?? oˉè*
( s8 j# t" n& ?' a# w2 w pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;0 K# \" |( t+ {
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;* O& @) l% o7 [3 ]% d6 m/ Y
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;6 w/ Q9 N. w0 I1 m9 R; o
+ p6 D) I; h" ]3 X% {3 S7 s7 B if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
* ]+ b& c# ]7 J/ z! t3 q- n+ ^ {
/ _$ r) V4 X8 Q( x/ `; W& Q z pLight->Diffuse.r *= 0.6f;
) I3 p1 v3 |5 |' e1 j pLight->Diffuse.g *= 0.6f;' a7 R) v3 z4 H1 q( B* B; E, |4 e
pLight->Diffuse.b *= 0.6f;. ~3 a- _+ m& A+ ~. x7 X
pLight->Ambient.r *= 0.7f;
0 h' g8 Q5 Q6 O' f- M: P! I pLight->Ambient.g *= 0.7f;
1 n; A" ^9 r% I: f5 E pLight->Ambient.b *= 0.7f;* _; c% R8 s, q. N! [8 E# [
}6 {$ e, ^( A5 ?% A4 G: ~ I
, D5 H) c1 ?; v#if __VER >= 15 // __BS_CHANGING_ENVIR
. d+ X. ]( ?! F* `$ f3 ^7 ?! \ if( g_pPlayer )
8 `1 @- [5 s1 d1 S HookUpdateLight( pLight );0 q' G% K& E% Q6 t$ t; r
#endif+ u/ j# x4 W& S# v/ V- H4 m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) W& B( {- S9 Q/ [: G1 J' y& O9 w4 G: t. a8 ]4 Q; w9 Z! @# m
pLight->Diffuse.r += 0.1f;; s# Z6 \/ G. x( j
pLight->Diffuse.g += 0.1f;
; {1 v/ N9 ?' B6 H/ f pLight->Diffuse.b += 0.1f;
7 I3 `& x) x: w) F9 u$ I1 }# A# L! A // oˉè* ??à?
0 \, v9 m+ ?$ [$ M) Y7 W pLight->Specular.r = 2.0f;4 g0 Y/ s/ b. A: _1 b
pLight->Specular.g = 2.0f;
6 S+ |7 [! d: x: W: z pLight->Specular.b = 2.0f;$ l, N2 z0 E) C* ~8 A: y. j
// á?oˉ % G* X/ a9 Q- z' I$ c7 V
pLight->Ambient.r *= 0.9f;
" L8 z0 M! a* z7 a, W pLight->Ambient.g *= 0.9f;
. L( z/ o @0 d* f pLight->Ambient.b *= 0.9f;
0 \& R" W8 Z$ B6 ?. N( [# ?6 J, r7 x( S" j: |3 p
memcpy( &m_light, pLight, sizeof( m_light ) );
( T: Q* n" V& J, \ ! H Q/ }$ k9 o; H. w; d9 }0 A0 x
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );+ h, l% [* i1 D2 u c0 ^
pLight->Appear( m_pd3dDevice, TRUE );
4 N- o3 Y2 g% Y+ x: r2 ~: O
T7 C6 D: L! W1 ?# Q7 V DWORD dwR, dwG, dwB;, R1 H/ N' p) T! w+ G
dwR = (DWORD)( pLight->Ambient.r * 255 );
$ b' f( g) B3 P' L dwG = (DWORD)( pLight->Ambient.g * 255 );
) ~- ]& b" L7 K- d d dwB = (DWORD)( pLight->Ambient.b * 255 );
) u" m I# N; ^( I4 ?* C4 f dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& r/ F" W$ G" b \5 \$ Y3 T+ z
}
1 e2 G, {6 n2 s) b, j }( J) L1 `! A3 x, D* J
else
# G5 t3 L2 C$ ^; E {% m- H; C2 P/ o
if( pLight )0 V( h$ H4 H/ v1 d: `
{
8 a# B! P& |# b& f; t! g* @ 5 ], @* c& Z7 p: i
int nHour = 8, nMin = 0;
6 b" G8 c k5 r0 H; `" Q& ~ #ifdef __CLIENT
3 r4 g" d0 e0 e# x4 @ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
+ f" W; I$ K7 \% {( f nHour = g_GameTimer.m_nHour;7 q" J6 Y% f) V+ K/ I8 Z
nMin = g_GameTimer.m_nMin ;2 y! E: J [& Y. D) k
#else( J, d+ S6 m- g' J: `# ^1 }* H, q
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
# ?2 F6 A. k4 x; A: ~' {% \ if( m_nLightType == 1 )
9 t3 \! s4 Z- e1 k nHour = m_nLightHour;5 D9 y. O2 B6 C4 {; [5 X
#endif
r- z. W$ A* `# H8 f nHour--; k g; }, C# N9 g, r6 @% D/ G) j
if( nHour < 0 ) nHour = 0;
) Z e- P$ j3 P3 O" n if( nHour > 23 ) nHour = 23;
5 D- f, V6 \3 y+ g, | c6 p' ^ j$ g) F
//if( m_bFixedHour )
( g4 w: y' i# O& r5 J e: }8 I // nHour = m_nFixedHour, nMin = 0;
5 v- X: `! L, ^9 M LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];1 Z3 s# ^* Z$ C( f% m
LIGHTCOLOR lightColor = m_k24Light[ nHour ];4 [. a* S' I b7 W9 H
) ?- q, @* i" R( {0 c/ F6 p //m_lightColor = lightColorPrv;4 y+ f+ i& @2 z5 o$ E; P
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
9 m8 U, J4 I6 G1 R7 j4 c6 w lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
7 {, n# w9 q. \ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;9 e7 M1 K3 D; {; \4 K2 J
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
1 Q" p2 o% x, L4 h lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;7 S K; j4 u. b
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
2 \! t p* k" O! |* n5 g // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
3 T9 F8 ?; X2 _
$ n: T& T5 Y, u5 S6 q // à??μ oˉè* 0 m1 e+ ]) k& D5 {
pLight->Diffuse.r = lightColorPrv.r1;! I6 C, V2 K5 N! |1 F3 J
pLight->Diffuse.g = lightColorPrv.g1;
% T/ f. K8 [% {4 R0 x" n pLight->Diffuse.b = lightColorPrv.b1;( ^8 {( I1 P" g! r r
// oˉè* ??à?
" P" ^, B! |+ s$ O pLight->Specular.r = 1.0f; _: z, b1 N! P: c. z0 j
pLight->Specular.g = 1.0f;
/ }# O5 D* p% e) P" X6 W8 ]/ _' j* R pLight->Specular.b = 1.0f;- y5 @4 c; c/ S
// àü?? oˉè* ! l9 ?- f! C$ i/ r V4 @
pLight->Ambient.r = lightColorPrv.r2;# `, O$ G7 [9 x
pLight->Ambient.g = lightColorPrv.g2;
- m8 w! q, }0 B" V( j pLight->Ambient.b = lightColorPrv.b2;! N$ Q/ T( N: V6 ~; Q* W0 K
5 v1 D5 F. a+ ?( U
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 s; Z/ F) o, }. h% M3 H% _
{
: X, m( v/ ^: _; C/ a! J pLight->Diffuse.r *= 0.6f;9 O( M4 {$ u' V( w# q# S( N
pLight->Diffuse.g *= 0.6f;
7 Y' O0 C" |3 T3 w# K pLight->Diffuse.b *= 0.6f;; m3 j8 R+ H: P8 Q
pLight->Ambient.r *= 0.7f;3 i- ^; w! h2 q0 i; w6 W+ {) q- y! l
pLight->Ambient.g *= 0.7f;
# w; v9 W4 v# m+ S% x pLight->Ambient.b *= 0.7f;
& Q' A' o& z! z. H t }3 g# Q! |1 Z |! ?
0 q {' ]+ w& I7 T. J. D* L4 u
#if __VER >= 15 // __BS_CHANGING_ENVIR
3 H! ^3 [+ j$ `3 G9 w, t" T if( g_pPlayer )& g/ c; a% D: m3 D
HookUpdateLight( pLight );
& G$ V4 \8 d- H# Q4 o3 u#endif# H6 ^7 r: v, d0 k9 `. i. ]
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% J5 O" R3 B$ B& L+ m* _; c
# C' }7 V- E G U3 M#ifdef __YENV
+ [+ R+ e# d4 x9 M+ R Y7 R! @" _ pLight->Diffuse.r *= 1.1f;; A0 u# b) N r+ R1 p9 P
pLight->Diffuse.g *= 1.1f;4 q' c0 X, } f/ S- k. K
pLight->Diffuse.b *= 1.1f;. e1 ?3 i1 _7 M: k S' q( c
// oˉè* ??à?
$ Y. `, c* N+ ]3 G/ j6 { pLight->Specular.r = 2.0f;. ]/ L8 D- B5 q1 p" o# `6 P
pLight->Specular.g = 2.0f;. _ s6 @& H- e; t
pLight->Specular.b = 2.0f;/ Q! @5 Y# }7 ?7 |4 L
// á?oˉ
1 p6 I6 R) D8 y8 r8 w pLight->Ambient.r *= 1.0f;
l' B6 _ D# _% ]# m+ f( ] pLight->Ambient.g *= 1.0f;
) O3 M% j0 H* z/ J. x$ H, j pLight->Ambient.b *= 1.0f;
! d) e& s& d4 y2 a#else //__YENV
6 d: r$ ~* Y1 W" B" z7 k d% Y pLight->Diffuse.r *= 1.1f;
8 t! f8 S* ]* U- c! w5 G8 ?$ z6 T pLight->Diffuse.g *= 1.1f;7 G5 g: h7 C$ h. L( M
pLight->Diffuse.b *= 1.1f;
) V7 H+ h: g+ ] // oˉè* ??à? $ I6 y# C" |. ?4 e
pLight->Specular.r = 2.0f;% A6 ?0 T, t0 c
pLight->Specular.g = 2.0f;; m/ l6 \# S# v( Y9 S7 ?+ F
pLight->Specular.b = 2.0f;
" a- F8 @, J8 E" L // á?oˉ , I8 ]: z1 P5 f+ l( t
pLight->Ambient.r *= 0.9f;4 A* V& _" ?! l' }+ x, [" `
pLight->Ambient.g *= 0.9f;- y2 ~3 C" U! L/ G
pLight->Ambient.b *= 0.9f;
( Y' V% e9 M; P# ~ b5 Z4 ^#endif //__YENV
& |) ^2 p. K7 y6 z 4 e: @, J# [& e! k6 T
memcpy( &m_light, pLight, sizeof( m_light ) );
3 Y6 j ]5 O& g7 x* S 7 u7 K7 v$ e: Q7 x! K6 p0 {' t
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);8 A; R, \ K$ U3 q
D3DXMATRIX matTemp;% g% c+ U% X, R2 M& S; f0 e
static const float CONS_VAL = 3.1415926f / 180.f;
) g1 r% [ c# b- O, O
7 G8 q7 C2 D7 e9 K" S D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
# Q7 t' T% Q. W: X" Z U1 J D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);5 _' [! B+ Q, e) _& Z
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
& s# l+ l- ?' ` pLight->Appear( m_pd3dDevice, TRUE );
; ~) ^3 R: l [7 i `% F" B5 Q0 c& z1 K/ P' x! s
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: O! `# _8 r0 F5 c7 E; F
// D3DXVec3Normalize(&(vecSun),&(vecSun));8 z5 q. e; b( P' h& c
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
6 X) C1 Z) Q W/ x; _& E4 @2 R- \" E) C6 [0 ^. x, k( Y9 H$ D
DWORD dwR, dwG, dwB;' c4 { R2 h) {& v9 |) ]: t1 T3 v
dwR = (DWORD)( pLight->Ambient.r * 255 );3 v$ @# K7 J* p, |1 G. b
dwG = (DWORD)( pLight->Ambient.g * 255 );
" d. q" Y; B* K. e7 e8 c. [ dwB = (DWORD)( pLight->Ambient.b * 255 );
; F7 S- s' ?" |' X& K; h dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( m9 A0 a% K$ q% P; j }5 e# b0 x' v) ]4 U" e
}" u- t4 |9 B7 ?2 L# W! k% Q5 D7 I
+ p7 c" d" B! G, w& ^
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );$ E2 Y+ U+ P* p
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) );! N+ T. c* F% ?1 ~9 K) F% a5 l
::SetLight( bLight );% X; o! a9 L4 T) ?6 V3 R4 U) t
4 ^4 U: y& E% P' @* m; f% y8 \/ P // ±ao? ?D?í???ó á¤à?
9 H0 H; d" g$ h* ] m_pd3dDevice->SetMaterial( &m_baseMaterial );. Y5 y* a' A1 `7 `9 Q# |
1 k; S7 e6 K* {# k3 H' u#endif // not WORLDSERVER
# Z" y/ h% K! N* f}: ?& L! X( w7 B1 [
并更换/ k/ t$ O$ z0 m# |2 N
Code:# X: j+ z- T; K; w8 ?. O
__FLYFF_INITPAGE_EXT
- W0 K, R$ W7 j0 V3 Q( a定义
( N: P3 @4 S# o% T; _' v- I' w. y$ | [/ ]( W/ V) E
! N, c7 O! U0 E: ]2 Q4 F9 H" ?# w
: R# n. w# ^4 ?1 a" X P6 G% d& A& P3 F" T1 [, Y* p( Q
现在终于删除我的狗屁加速...* [. C' ]) _6 N7 Y! A6 N
6 D0 n$ y. W( ?& P2 ?
3 u2 P; d! f5 ?+ f3 r% L
4 s% X6 X0 X9 Q4 ~" x |
|