|
|
食品车:8 f! z. |! e- i' r- R
尾翼:
$ f" d9 k( p. B7 c# B# g" B/ `6 z4 o0 ~; e6 k
代码:4 W n3 x" Y% u/ _1 Z
CWndAutoFood::CWndAutoFood()
3 T, u: B! ^5 k{: v: k1 a& e) u3 L
m_pItemElem = NULL;$ t5 ^; x% H4 R. x
m_pTexture = NULL;
7 _* [/ W% i0 J# @1 p bStart = FALSE;
- S& R- p! R, ~5 `}
2 b3 { D6 ?* Z9 `8 f, J- ~' [% k8 N# b, e% L
CWndAutoFood::~CWndAutoFood()
6 [/ a7 D: E6 A{
- F1 L0 J2 T8 z$ a4 \& [( l3 U- ~, z AfxMessageBox( "AutoFood ist gestorben " );! ]! l8 N9 w3 p9 M( ^
}
1 b. J, u$ {' j) F8 tBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
1 d& v. Z/ B" w$ x3 t{. O3 e5 t3 z" f
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
) c7 a! [! m! K# p}
1 g" y8 {& W( w+ E$ _" ?4 O. z# O! h( Q p3 X0 K, e
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ) y) w& u/ \9 h' b7 P9 m$ m
{+ y1 ?5 s% C4 C0 V" c0 z
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 O) B7 N# R [0 J& ~/ h
CRect rect = pWndCtrl->rect;
% H9 `" i* U! f' Q+ ^0 ]) k0 I if( rect && rect.PtInRect( point ) )
+ b* l3 H4 n* u* j3 h {
6 T$ l4 X4 c; K M CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );; O5 q. |& T8 f- e) C% ?$ k& w: ^
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
) H0 V/ K- t7 \ {8 s( {- s9 b9 W$ w' ?" W, k
if( m_pItemElem )/ `# H& @3 ^, N0 X5 R
{
0 J' L0 K! A! b$ |; y/ P! E8 Y L m_pItemElem = NULL; \9 y" ~8 T0 K/ k0 W; C
}" x) H7 N0 Q2 L, e% Y5 L
m_pItemElem = pItemElem;
T/ g1 N6 I2 `: n. b3 | m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );7 H6 n9 K; G! h& o$ c0 T& u
}else{6 B4 s( L2 l, H2 J
SetForbid( TRUE );/ x r$ ]7 |( W6 e4 t+ A! t5 [
}
* A3 W0 E; I, q }else{
4 J8 W: q6 g5 S SetForbid( TRUE );
$ R) O& T, e% d8 ]5 P" K }& T6 ~$ n$ `* b$ v) |$ n3 p& i1 {
return TRUE;2 |+ y1 }2 T' o+ {8 u
}% E5 Z, }# K' C; u, g' P4 w
9 d7 p/ ?. B& ]3 S6 F7 zBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
* t. c G# v8 s* }6 B) T3 X& m( R{! @2 l. O% H% {; e
switch( nID )
5 p$ j0 a/ M2 V1 G2 E! `- g" b. ` {4 l8 P0 [) q! C8 V! u# o5 E" v7 f
case WIDC_BUTTON3:
( V3 E- ?* d+ W. U2 b) y {
( B1 y5 x2 c( L% ]6 X bStart = TRUE;1 I `/ C$ @: k% T5 X, a% t
break;
% w: Y, p ~3 m5 @2 ^$ G0 ~" {4 t }8 D5 s. f/ q( [2 C' F5 P7 z! t9 \
case WIDC_BUTTON4:
4 a7 x, \" v- I {
9 ?) L; k1 ^5 F) b8 G: H, d8 y4 h bStart = FALSE;+ Y3 Z/ ]7 H: Q: e6 M( _, v0 O/ Z
break;8 @" \& E: o8 ?! w( G' t# ~' b
}# }; T0 `. |* U/ U# j& }& Q
}
2 _( o" d% }! N9 u! J9 t" u+ ^: ]# D return CWndNeuz::OnChildNotify( message, nID, pLResult );
5 v! K% e6 K+ \' Q# a0 s: K} 8 O; e& C ]2 Z
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
$ U$ D, A) o2 T5 i5 z! }5 [) x$ B{1 [& e4 J9 C9 z6 g4 }- `$ q8 q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );6 }/ i' b ?, K+ @2 x3 `
if( bStart || !m_pItemElem )
+ L1 Z) t6 m: Y4 T* U {
& j6 d( P; S8 Q+ O+ L H% {6 X1 B* R pBtn->EnableWindow( FALSE );
2 z( ]2 l0 ?9 a* O( B }else
6 [5 Y. J. U5 o( O pBtn->EnableWindow( TRUE );) d1 _: r/ H: t5 ~7 x' t, O
if( m_pTexture )
$ D/ t' e: n( l! y6 s1 i {
( L. x6 E' ? `/ ?( n" }2 A& s4 X LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); W% d( U+ g; ?3 y
if( wndCtrl && wndCtrl->rect )9 c1 p7 |$ p: N6 f
{# c' K6 B A7 {9 G
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );# P( a8 t+ u6 n" m3 _
}5 [8 Y g9 g2 x/ y0 b
}
1 I; }! |7 h2 J9 y ]}
" y1 ^6 @) S F3 S( ~/ N
) \; M( S, A# N9 J9 V. dBOOL CWndAutoFood: rocess()
) M/ g7 f5 i0 j/ a, S, Y2 k7 R{/ o; H* N4 S. A* q
if( bStart )
) I$ Y4 @' }$ \1 N; i; x {6 B$ |- o1 l7 d: b
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
$ g, w2 ]* c8 l3 u6 o( j4 r- e% H {
3 y& C. M9 c$ X, `2 O6 C6 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() )5 c! X% b; W2 n% P
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts ); J' Q) Z# H# L, d2 Q4 }
}else{# F7 H5 ^- ~% w# M- V
bStart = FALSE;. R+ p* \: s) p" l2 L8 B. `% o
m_pItemElem = NULL;
+ T1 }: h$ z8 k4 y0 D) H4 j4 t6 D }
5 I9 R8 w! m* B2 O8 C q }
$ n1 r! G& @$ m: S return TRUE;! ?" l8 e* L; q0 _) ]
}
& L. K/ C2 W$ c! B" t9 k2 w" E; k$ N, n) Q
登录视频废话:" v; W3 e3 G" n0 m. V _0 L
尾翼:
7 O6 K8 s4 P* G$ i% ]2 _1 @
* E- I! j, L2 m+ W, `代码:" P# B( |3 ^* @9 w
* S# n i+ D5 }4 h
void CWorld::SetLight( BOOL bLight )+ y c3 e, E5 }7 e3 l: l; ]) |
durch
y5 v# P% s f% ]0 G) JCode:
. M* U! `& w5 Fvoid CWorld::SetLight( BOOL bLight )3 n. w" D* n$ ~! ? B
{0 l/ K# u! ` E. o E+ i
//ACE("SetLight %d \n", bLight);- J! B% H5 `6 q& W4 d+ Q
6 s5 L+ f7 }+ W; c* P: l#ifndef __WORLDSERVER 6 l$ A( w- C9 z$ A( S
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
( R" k$ o- a5 _) T5 X CLight* pLight = NULL;
+ n3 |- b4 E, S. |8 I- e5 B$ B I4 V0 _
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );* U: N2 q6 `; w! u! _
# [+ S4 o& h f6 ?7 \
pLight = GetLight( "direction" );% r. A6 \' r7 }* n7 c+ r( k% c7 X: ^
' H; I) ?) `2 f3 W! C) }
#if __VER >= 15 // __BS_CHANGING_ENVIR
, b; x( w% b, I& Z5 Q; Q0 n if( g_pPlayer ){ ]& J8 S- M7 P
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );( a' ~& I5 J/ l- H8 d
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!& T8 w, U* h9 i6 c {
{
- `' ~( }+ D2 {4 i0 f4 }4 O if( pLight )
! D' U' y- ~2 F; r$ C d {
: S4 a+ w Z! V8 z" r. S/ b2 a L+ P pLight->Ambient.r = pInfo->_fAmbient[ 0 ];: F9 K4 W1 }5 ` F F: E
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
- P" R7 ^, n" X: g/ u, \ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];$ W' z$ \# F, i2 Z, @2 @( W
+ O( h! S+ ^ ^1 j" K, U, f1 n pLight->Specular.r = 2.0f;
! d& R. K! q; d1 n2 c4 V pLight->Specular.g = 2.0f;
: E: \! K8 ]2 G pLight->Specular.b = 2.0f;
& ?5 I$ n8 U+ H: s , d) V1 K* C2 G# l# _0 g
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];+ E' r. P6 Q0 i1 W, G
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];" N$ ~( K3 t C2 _
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];% v2 T7 Z) S* M& ]
7 b& G& I% P( X- K& z
HookUpdateLight( pLight );
' E# U$ f6 a6 [0 Z% H% O g) z O c+ [! w4 h0 F
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
A5 e9 c/ d8 `( d O: T# e * S; K( r+ J- q( Y4 }' G1 h; z
pLight->Diffuse.r *= 1.2f; O2 c4 f$ K" e% M8 W4 ~$ U
pLight->Diffuse.g *= 1.2f;
; Z' _, F* A5 c6 r4 v pLight->Diffuse.b *= 1.2f;' q/ _0 i* e+ I( i; R
6 e" H5 J8 i$ }. |; b4 b* n' U pLight->Ambient.r *= 0.8f;/ ~! T2 {2 Q2 R. e2 m3 c! Q
pLight->Ambient.g *= 0.8f;# H* v% c& ]! J: }" ^
pLight->Ambient.b *= 0.8f; Q e1 w4 E9 D6 g$ y) a- b2 {
$ l) P% R! p. j5 x memcpy( &m_light, pLight, sizeof( m_light ) );
% k3 _. W# y4 R; b% {# T& y' R+ c9 `6 C" b
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
! N1 n, x' h7 m7 S' k D3DXVec3Normalize(&(vecSun),&(vecSun));8 f: X2 V \, F, M
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 5 {/ C6 {4 Q3 b( [
pLight->Appear( m_pd3dDevice, TRUE );- k" z( y% r) y: Q
6 I- d A, p; v2 t; G DWORD dwR, dwG, dwB;
. l2 q+ i7 f s& j5 g+ v7 u: v dwR = (DWORD)( pLight->Ambient.r * 255 );
8 n% @( E/ t: j' Y$ j dwG = (DWORD)( pLight->Ambient.g * 255 );. q8 a0 m6 {8 t$ a+ r. u5 }( i
dwB = (DWORD)( pLight->Ambient.b * 255 );3 y- g4 w5 u0 Q. k y: `
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );5 n, a/ \, h, Q# L( X) I* z# D2 W
}
) d$ D3 K* h7 F/ B% ]: X; y }
. C. r. g* M9 H( f% l }/ Y- |( F' J: _* t" M
else
+ _+ r" _( R9 A. R#endif 9 N5 V% b& R# R
n9 C0 ]# t& e6 O" N- x) R if( m_bIsIndoor )+ t; U7 [5 l. Z; \% U& a& l1 X
{
1 x" w( q) Z/ y. u if( pLight )- j: N+ [& Q; N" n
{ 1 @/ ~9 X$ T4 _. I- C. m6 O
// à??μ oˉè* 5 D6 s, y" Q# A' C3 Y V. C
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
4 j8 S" h$ o2 V; \, c. o2 P3 f- Z pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;# v6 C$ {. w4 ~: W
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
7 x; P' ~* q' ^5 B" {. n1 D' e/ |- {. ?% U+ k: ~
// oˉè* ??à? 3 z+ g& o- I$ c' B9 [
pLight->Specular.r = 1.0f;/ a9 r* u5 Y: ^+ [* n4 q
pLight->Specular.g = 1.0f;
. l( s- h# q9 ]% V( O+ N) O pLight->Specular.b = 1.0f;
" n! w6 a; H/ l% S3 g // àü?? oˉè*
" A N; D" N6 d1 A pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;+ z+ S/ r# V) v5 p
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;0 z, M8 M e! _: l- c; m/ T
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;: C6 C2 L3 S: @+ q q* d1 a+ I
+ ?* K5 k' E. X5 k8 m" W if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- g, C1 J5 `; y' m
{$ G3 J& ~3 m4 ^
pLight->Diffuse.r *= 0.6f;
$ ]5 a) I2 D# a pLight->Diffuse.g *= 0.6f;( x! p1 y& C8 N
pLight->Diffuse.b *= 0.6f;/ {4 v4 x6 U( D5 q. S
pLight->Ambient.r *= 0.7f;: q. |' ]. ^1 P, F
pLight->Ambient.g *= 0.7f;5 c' m1 c+ E" T
pLight->Ambient.b *= 0.7f;: e: d/ p0 z& W% m0 u8 p
}
. J6 R. v. K! D, ]0 \* K6 m
$ c7 [- U/ L* X+ Q* k# S#if __VER >= 15 // __BS_CHANGING_ENVIR
& g: I b+ U5 W5 A8 q9 x8 ~1 [8 t if( g_pPlayer ): c! \4 U% M9 j( A! D. U5 S
HookUpdateLight( pLight );5 g. _# c' w( Z7 q+ y0 Y1 L
#endif* j/ r% Y, N6 d) `7 n
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( f+ y! J5 P6 ]3 F p0 Y7 U
+ ]. t" ?/ h7 |0 Q, o4 Y pLight->Diffuse.r += 0.1f;! S4 f( i/ w' l# Q& ?, u! A: L3 E3 Z
pLight->Diffuse.g += 0.1f;
) t+ `. Q4 E* b J- _/ T pLight->Diffuse.b += 0.1f;
: _7 @" p$ Q4 e1 w+ I3 C // oˉè* ??à?
: e. @& ^# o7 v$ ^- T _$ c5 ^- H6 _ pLight->Specular.r = 2.0f;
8 `8 @, d" ?$ `8 q pLight->Specular.g = 2.0f;
* E: U2 l+ G- V# }0 Q9 w pLight->Specular.b = 2.0f;
9 Z0 a! b1 A, I& ^2 ^& ?- a // á?oˉ ! o q' i0 M! P% n3 |
pLight->Ambient.r *= 0.9f;
. T1 x( B# E4 A, | pLight->Ambient.g *= 0.9f;
% L9 Z: u! K6 b2 w, L% S. | pLight->Ambient.b *= 0.9f;2 c! [$ L# \8 X* n
7 {& Q0 c: I; W& D memcpy( &m_light, pLight, sizeof( m_light ) );! x# W# N9 a" v( R9 c3 L& U
' L2 { n6 c* n8 }4 @+ _7 V pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
. T: E- u4 a; ^* ] pLight->Appear( m_pd3dDevice, TRUE );
$ `+ ^6 d6 C) i* x # I* n; i5 o; L; z4 J4 }) Y
DWORD dwR, dwG, dwB;4 i. f. b1 C, b; L$ s, s3 I$ q
dwR = (DWORD)( pLight->Ambient.r * 255 );
0 _! r+ d! a* M) |! M dwG = (DWORD)( pLight->Ambient.g * 255 );
- g" ]5 e3 C: a# v' Y dwB = (DWORD)( pLight->Ambient.b * 255 );
- h6 _$ Q& }2 |# a, K dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& n' X0 |9 E J0 g }6 c0 F% V n% C7 t
}
- X. X4 ]/ s, v* G& s else
. |4 x) I2 ^ \& }* T/ b {
6 L/ v0 S" f- R2 Z if( pLight )* z9 D$ L6 m" G6 |1 J
{
9 K, K9 [0 c% d6 R
) E0 [/ a9 R ?5 }1 O9 D int nHour = 8, nMin = 0;8 k3 `) j' }5 O4 O
#ifdef __CLIENT
9 O4 P5 @* F' } // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
, r7 j& l+ u* K) H4 ?( Z& C6 q nHour = g_GameTimer.m_nHour;' P; ~* ^5 r9 M2 M/ z3 U5 S% z
nMin = g_GameTimer.m_nMin ;' y$ G( s4 N* W0 n
#else
, m; j. u& y K, p // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
) U6 ?3 e: Q; O( {. C" S9 u0 r. C9 N if( m_nLightType == 1 )
: w$ m+ \" n; M$ Z8 N nHour = m_nLightHour;
% V9 ^. n& }5 X& L #endif
3 G: _& _: @+ A& u, u! R nHour--;8 U# I! z' i; @" \- h: w1 P
if( nHour < 0 ) nHour = 0;
8 t: C% |, g2 r if( nHour > 23 ) nHour = 23;) Z) @/ q* j$ I+ \% Y* h
' y. b' r6 ?) f) ~ //if( m_bFixedHour )
& o+ k$ i0 a3 i" w1 e5 f/ h; @ // nHour = m_nFixedHour, nMin = 0;! P0 F8 c3 @' N% U& s( H" ~* O
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];. R. q* w6 _8 k7 [
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- i3 J. m2 p* o( m) U: H( z8 e8 Q( g% z+ e
//m_lightColor = lightColorPrv;
, D9 A3 |- Y i3 R) L# m lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;0 b( T5 ^; I7 {+ x$ C
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;) f' o& [# @" @. w9 b
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
8 T, @3 R/ |+ \5 ~& L# A lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;8 _9 @% ?+ N0 m! c l% Y
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
( b5 ]* D. [( m lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;( N6 `0 t+ K- Z: w0 e7 z$ k$ {1 Y
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)3 c2 e% H6 G/ U, O/ J. A
; H3 m/ A- \1 S3 u$ a# t+ N1 F+ k# C
// à??μ oˉè*
3 h Q. |. h) f* i' m pLight->Diffuse.r = lightColorPrv.r1;
& L! V" ^/ j: l& y9 C8 p pLight->Diffuse.g = lightColorPrv.g1;6 _& `% R4 F: C
pLight->Diffuse.b = lightColorPrv.b1;0 V7 g7 ]8 K; l: Y
// oˉè* ??à? 4 L. y. J9 o; G9 n
pLight->Specular.r = 1.0f;" f, X* |/ ?; [5 O$ z" r: |- Q
pLight->Specular.g = 1.0f;& L7 o4 k6 \% T& G, F
pLight->Specular.b = 1.0f;4 ^" O' p3 t& r) z" S
// àü?? oˉè* 7 S2 | O0 ]* D5 [
pLight->Ambient.r = lightColorPrv.r2;
! o6 L/ c5 `' c$ t pLight->Ambient.g = lightColorPrv.g2;
% d& o. @* A/ i, k0 X+ d pLight->Ambient.b = lightColorPrv.b2;( q' g4 t2 e- g1 a+ y# S
; l7 l+ Y- ~9 \9 I5 ? if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., z6 p3 u( G/ O7 H P" y
{5 l7 }, G5 S" i
pLight->Diffuse.r *= 0.6f;
( T% A+ k0 I9 { pLight->Diffuse.g *= 0.6f;2 B; m7 s: [1 t4 R# ?/ p7 w
pLight->Diffuse.b *= 0.6f;
. G8 N0 v8 a" C$ P* m pLight->Ambient.r *= 0.7f; w9 E6 p6 r0 ` V& M3 _/ \
pLight->Ambient.g *= 0.7f;# X% X; _/ r/ \2 t
pLight->Ambient.b *= 0.7f;7 M/ W$ b( O' @. V
}
X2 c9 W0 W( N5 ]
7 w7 U- ?) K% P" m) Q+ p; ?+ e/ g#if __VER >= 15 // __BS_CHANGING_ENVIR
+ W' E: l; M$ s8 d" H( B3 A if( g_pPlayer )! c9 w. B/ N3 ]8 I9 l8 [5 A4 V
HookUpdateLight( pLight ); ; {( B9 k; i$ A! C) s( c. A
#endif2 L- M" A9 ?! S$ p: {1 v& r
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; S; c1 H- X! E/ c" A$ f# T n
L7 Y& G0 y8 S# e) k$ \. l#ifdef __YENV4 o: `3 K7 u( i. e- _& W& `( Q
pLight->Diffuse.r *= 1.1f;) [* j2 V8 v, B9 ^- V
pLight->Diffuse.g *= 1.1f;+ H E7 B) c! j( m5 n# [
pLight->Diffuse.b *= 1.1f;( z) K3 c! j: U; ?/ Q( q
// oˉè* ??à? $ v8 p1 \. @/ q; T8 a, {
pLight->Specular.r = 2.0f;+ q- Q, E' ?+ `- j. H
pLight->Specular.g = 2.0f;
! i0 D) [" p7 i pLight->Specular.b = 2.0f;- D( U( w# \& R; q. X
// á?oˉ
' d! n3 h$ |; {4 s pLight->Ambient.r *= 1.0f;
& Q- ], ]% W" [# a) ~& l pLight->Ambient.g *= 1.0f;
, n+ B/ B) _6 E$ y pLight->Ambient.b *= 1.0f;
# ]5 q7 }5 j- O c* _. i#else //__YENV
( h# P Z ?8 A8 u pLight->Diffuse.r *= 1.1f;0 h' r2 x4 W( _& |) ~5 T A
pLight->Diffuse.g *= 1.1f;! Y$ u8 v% G. W6 K7 W1 h; c
pLight->Diffuse.b *= 1.1f;
7 k- S6 O( ]/ t' q i5 D // oˉè* ??à?
+ s9 I( l, Q, k pLight->Specular.r = 2.0f;5 O! b& ?2 {& ?. x0 }
pLight->Specular.g = 2.0f;
: R) d, n/ P! |7 o, i pLight->Specular.b = 2.0f;
7 i* T8 v5 T( `( {" f // á?oˉ F( p( L! r9 `
pLight->Ambient.r *= 0.9f;
$ f/ K0 o& o4 Y8 z4 o pLight->Ambient.g *= 0.9f;
7 p) r& z M8 j$ z1 Y& Z1 X! b pLight->Ambient.b *= 0.9f;
* d' c" d1 g9 {& h5 o4 c) F#endif //__YENV
2 p2 g+ @9 t- c5 V 8 N& B3 c/ S1 L3 \. v
memcpy( &m_light, pLight, sizeof( m_light ) );# d* E! z/ d- n6 P
8 \6 C3 f5 X- i6 Z1 F+ f+ z
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 X5 O' @% ]# W8 I1 |
D3DXMATRIX matTemp;
8 T2 T n5 x* j static const float CONS_VAL = 3.1415926f / 180.f;! Z7 N7 e) r/ @+ \
: g' A! S+ S; e- E0 u. q% S
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
2 w8 \) B8 ] C) a3 h6 | D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);* e" J" }" \. z$ l4 E
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ( ]2 ]9 U$ E% R9 }
pLight->Appear( m_pd3dDevice, TRUE );
6 k1 ?: ~( c* v2 f& N' ^
) k2 v5 F; F" C' [5 p // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 e1 F2 W3 B5 T$ s6 H' F8 h
// D3DXVec3Normalize(&(vecSun),&(vecSun));0 ^' @2 k3 R' a5 M1 E2 V
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* q' X3 r0 @3 [ e" H
, ^4 m% q) f! ?% t' y DWORD dwR, dwG, dwB;
% C- G4 M+ _" [3 k dwR = (DWORD)( pLight->Ambient.r * 255 );
3 h5 J; W1 L' K/ \" P- p dwG = (DWORD)( pLight->Ambient.g * 255 );) g- _1 Y2 v6 v5 K
dwB = (DWORD)( pLight->Ambient.b * 255 );
* x [" G0 p1 C2 F+ [5 n7 W dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' x! E3 ]$ D0 z }
9 t9 N& ^+ ?0 P& x) F: P# [ }% H' X7 ?6 u: O1 p
$ o1 ?! F" P; g) i3 ~
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );5 W3 F3 E! j- W: N4 S3 f
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) );' d! O- a. r! K
::SetLight( bLight );* H% N0 c) B4 s) l2 J4 A9 l) {
0 E G. L$ X$ l9 l% V
// ±ao? ?D?í???ó á¤à?
$ W6 k; Y. \5 H- }+ v" j1 T# W2 n7 b m_pd3dDevice->SetMaterial( &m_baseMaterial );
7 k+ I' [# r7 n: M/ l! a
7 F l8 | k0 ?* z2 U# L#endif // not WORLDSERVER( N5 _ [/ H% A: \, i% {' [
}
* ]# S" o4 V! z; a8 a* q- t并更换5 _& j5 U5 @' Y" X! i, I
Code:
5 I* w% L {9 B( j9 P3 q: |__FLYFF_INITPAGE_EXT
- m# `0 k# d( U9 R3 L% ^定义8 ?4 V" R9 C6 h
8 H' H! I) X4 U! A/ {
- x/ n3 ?6 J1 i+ b
4 Q( N' i( @' s# @1 i+ N" _7 T* e/ n$ S; T
现在终于删除我的狗屁加速...) X$ a7 X. q3 B
u; P/ `4 J Z. p$ Y. J: _
1 c; ` t! K" L/ @3 n% R; }. W m1 `! k, d
|
|