|
|
食品车:$ B4 g- a* `7 p) c/ w9 a5 \
尾翼:0 i) u' s' M1 i; [9 N( U% `% D
: T; B4 j- _: V6 d6 x0 h代码:, Q5 J( ]- F* I; r1 `
CWndAutoFood::CWndAutoFood()
: _. m4 o* g0 [& A- D( ^{
- ~9 l- |) a8 S' A6 { m_pItemElem = NULL;, d8 L C1 `$ z0 c: e* N3 y
m_pTexture = NULL;
. t0 O3 l( O/ d+ j9 I6 ~( c/ z0 K4 z bStart = FALSE;
' Q# u/ I' K7 S; n8 t& g+ C1 J}: x' y8 s- Q. l3 n. P; a
# }+ w. H7 I6 U3 [0 s4 `CWndAutoFood::~CWndAutoFood()' K/ U! [& D7 w! o$ O! {9 Y1 u0 a) J
{
% b- d) X: t9 O: R' i% m AfxMessageBox( "AutoFood ist gestorben " );6 I f5 J8 j& \7 h" e# S5 a9 f" r
}
+ t. p: P# V: \- JBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )2 d& y+ t" x# b! x& F
{( C, o7 [& X9 h; H/ g
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
; }5 W! v* B& s7 b* l7 ^}
% p1 H7 i+ b2 P: C# U* _- l. u. h) \8 t4 ?# @0 J6 i( J1 Y' U
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
* `6 h# w) ]/ d# ]; b& n{! W: p$ O+ X* g$ \- I
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ V/ Y* u- A4 `( r3 }
CRect rect = pWndCtrl->rect;" A( N5 w/ m; W- k) H
if( rect && rect.PtInRect( point ) )
: P) B% U* B9 \* @ {
& A+ c2 h; F, L+ [, s# ~ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 [5 S% R" ^6 Q ~5 }3 i. y6 L if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )$ T. g( l! x6 t& C
{
5 v8 Z O5 h+ \0 H) G; e/ F+ v2 B if( m_pItemElem )' @0 w/ _' A, S" j: x' o
{
0 G, Q' |) ~. F9 C7 L* i m_pItemElem = NULL;
. S4 E( B9 d0 _" `* {2 \5 U4 o6 z }
; r. u; s8 |5 \2 b4 T m_pItemElem = pItemElem;7 F8 i3 U# R6 w- u; Z, F y
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 S3 p9 S' g" }* O8 j% o }else{
. u# c, T, _' P. V" K$ Q# _& c SetForbid( TRUE );
' u# I8 d. Z, ?2 \7 J; E! s }# d. X/ Z6 B! W4 ]; F3 l4 P
}else{
5 f/ {+ A4 u, a2 l: M X% V SetForbid( TRUE );
; C* c* f y+ A, V }3 n1 _' A9 {+ m% j/ U1 c/ k# y
return TRUE;
( A2 m9 q; z. K; u- J% x7 S}' k# b- f: D' S
2 C; N: O$ n9 G, ?) v' cBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
' y' ~9 E1 R0 R6 A K4 ]{" W( q' G' ]9 S$ w! O
switch( nID )3 I+ R) L$ C" c+ y @
{
0 }% {% ~. r! S4 d; t: R( [ @ case WIDC_BUTTON3:
6 F8 s! H; h! V6 M* [ {" m' E( l. m- x! e
bStart = TRUE;
! a" Z8 b+ y7 A! @ break;
( L2 t* V: l9 Z; j7 z0 \# a" J }
$ V2 [& Q/ Y- w( [7 d case WIDC_BUTTON4:3 G7 a: `' y4 I. N0 |
{
. r8 B: N3 E- ~) i8 l bStart = FALSE;8 x0 ^2 P2 p4 Z; f' G6 O% H% e
break;2 E2 b+ d; |, K/ S- |
}' d/ U# W0 u. R3 B3 c _$ Y8 t
}
- R* `/ K8 z' F& ?1 P; J. Q return CWndNeuz::OnChildNotify( message, nID, pLResult );
' Q w( o* I+ X/ t7 a; T% h} 3 k; ^4 T8 j: ^: d
void CWndAutoFood::OnDraw( C2DRender* p2DRender )7 a0 c: k: K6 M$ |0 J5 }# Y8 i
{
( }' \( n$ j; v8 b2 Y CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );$ N4 ?1 ]* G! P
if( bStart || !m_pItemElem )" m V- V9 w+ D h
{. S m) T8 m$ g! O3 R" a
pBtn->EnableWindow( FALSE );3 C9 s! Q+ O; L& c, b
}else: w, P% [, X% {3 s( w5 h- E4 G) d
pBtn->EnableWindow( TRUE );
3 `+ ]; V2 T& ?5 u7 ? if( m_pTexture )
0 g/ D8 c0 o, K4 O+ I# S* q {# u* J/ }6 n) p8 k* I0 Y
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
- G- k7 V) o: s( F; H if( wndCtrl && wndCtrl->rect )
* o: ?4 y7 {6 s$ Z {
: K1 ^' \# F3 L" |! F3 \; c m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );4 ^9 f$ }+ I8 o' X; g
}, ]) {' T' k8 _* a: D1 [2 S
}" t7 E. @" y# _
}
. k. @: L# e$ e# S1 I' L+ X+ v2 S }, Z# r" j
BOOL CWndAutoFood: rocess(). O5 i7 B2 C; }0 u, _
{
3 g7 o% u& w1 y! U6 m if( bStart )% y [- ~) W- i
{
7 f8 m1 X, B- ]. R2 l if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
& ?3 E' F1 ~/ V- V2 D- { {) M6 B; y5 ^) e) x4 M0 ?9 Z6 z R0 H
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
4 S8 i7 M5 Z7 t4 p7 {% e: @4 l g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
! T% W# }! E, B+ V8 Z }else{
7 k( V" U* z' f7 T6 |: e3 c- d! D bStart = FALSE;
3 {. o7 |9 N/ O m_pItemElem = NULL;
' E! {0 L3 B. \) ~( p. u }
1 d/ D& p% S7 m# H h }
/ ~1 s8 n: ^8 t return TRUE;$ I% H: y8 s- g$ k
}, |, L% R( N+ H
' i% U; s/ B$ q8 ~登录视频废话:
% j7 P) r* c/ J/ m7 x' V尾翼:0 M+ o- {# D: d7 G7 b$ e$ L
/ B1 c$ z% V t, H: z, z代码:) w: B o, H: M0 f0 O
, j+ t o. c# I. Jvoid CWorld::SetLight( BOOL bLight )# | e& f( W3 T& P
durch. l; y* R! k4 M( \# e s# O0 x
Code:3 S% w6 ?2 }4 x- ]% W
void CWorld::SetLight( BOOL bLight )
$ F% { e# \$ W4 B) O{
- f2 ]. ?( U( R4 | //ACE("SetLight %d \n", bLight);
6 T/ l# D5 Y# k; I 9 b+ c- t" b* p/ J& o! i
#ifndef __WORLDSERVER
) v# V, h" S* q* F" ~" f0 A DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
' C* f1 g0 Q% ` CLight* pLight = NULL;8 G, e4 v6 R6 K
4 W- ?# \3 D* ]1 G$ n D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );0 i; t. }" @! N+ k5 g- B7 L
- k+ I0 s7 ?+ \5 Z
pLight = GetLight( "direction" );
$ n6 b8 f- |& T; @
) `/ m4 C4 Y7 V5 G, g( G#if __VER >= 15 // __BS_CHANGING_ENVIR0 W8 G% Q* @1 ]/ k9 ~
if( g_pPlayer ){0 p) l! v+ w6 b) x1 H- M+ W: ~
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
; s+ F3 f* y' E" F6 J if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!, |: h9 }3 ]2 t* p
{- r! z: T. O. O0 b" z0 k
if( pLight )
$ d; r5 y/ c; U% `: d9 m- ?3 A {
. U2 p7 X0 j% a, T) I7 f' f9 y pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
5 Y! }- x1 R# \9 a( E" c+ y pLight->Ambient.g = pInfo->_fAmbient[ 1 ]; g2 S& @' K. ^, K; b7 f; N
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];3 C, V2 t/ C0 e9 w- j Q
( C3 v; D f' W. ~2 T8 H0 R; {0 n pLight->Specular.r = 2.0f;1 ^* Z2 t y7 g& L! R) p
pLight->Specular.g = 2.0f;2 i" H5 |' s! N6 N
pLight->Specular.b = 2.0f;+ v& \- s! A' u: Y: o
9 F! Y$ m y! j/ u) Y$ U' R pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ T7 J4 c6 M5 m* w/ z. d! r) z6 \ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! v G* T$ n K- E8 \" V$ s
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];: O B, s' I8 y% u, Z
/ N4 I' C) y' t& U
HookUpdateLight( pLight );
1 B+ f! P' V$ C
& b# w* w# O6 c s2 b memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );$ ?) u8 Q2 ?& E& ]0 V
4 x Q; E& E+ g& J ~9 M
pLight->Diffuse.r *= 1.2f;7 G& ~2 N# z4 B1 c
pLight->Diffuse.g *= 1.2f;
, n- K( A/ D; J pLight->Diffuse.b *= 1.2f;
: B; F! f; | S3 u$ W* Z: ?. T3 K+ H/ C) T
pLight->Ambient.r *= 0.8f;! ~0 s: ^# w7 e0 e. _; e6 d
pLight->Ambient.g *= 0.8f;
H5 I* h: ?! ?1 u- D pLight->Ambient.b *= 0.8f;' J2 D5 ~) T+ d8 M/ m8 R
2 \" U& Y, i( o6 s7 P/ c' y' G memcpy( &m_light, pLight, sizeof( m_light ) );
3 I+ \' `: g1 C9 X/ N k6 R% [. |9 n, r) ?7 W4 _" o
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 C' {3 [ O9 \8 C8 j D3DXVec3Normalize(&(vecSun),&(vecSun));
5 s8 o: K! G8 Y& k$ ` pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); A! p7 e8 {; }; P2 ?
pLight->Appear( m_pd3dDevice, TRUE );$ i6 @! @- H/ j! o
. H/ b+ m) z1 e5 h
DWORD dwR, dwG, dwB;4 K2 j0 A" Z" A+ Z. ^6 r
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 E2 p' a, ?. a, e+ ^ dwG = (DWORD)( pLight->Ambient.g * 255 );
" _: V1 r, t! j dwB = (DWORD)( pLight->Ambient.b * 255 ); o% c. E$ K' |/ Q! O) f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- B. _4 M9 P4 B4 k }- [# w) o! h% D0 _& \% w4 w
}' o. `3 w8 G0 c. ?! n
}
4 a4 f0 w5 x1 u, [ else& ]# e/ a ^ F$ i% k7 f
#endif
& G* K5 Y5 t: \) Z. C
8 M( Y( O4 q4 [7 {6 N0 z if( m_bIsIndoor )
; T l6 J% [- o& F+ v {
3 [5 Q/ d% f0 @* d! @. j# c if( pLight ) z& P" {- j" n' N
{ & _' P8 |2 c% D
// à??μ oˉè* w G( k+ U2 q, l$ h7 M
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;: H" K* n; r: w6 H
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;) B+ k% T7 l, b# _
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
2 m# W# M6 ]3 g6 A% @/ n6 j/ X4 q' G8 x8 o7 {' F+ ~
// oˉè* ??à?
$ l- h* r* `! e Z pLight->Specular.r = 1.0f;" W$ t q5 _ F+ O6 G' Y
pLight->Specular.g = 1.0f;
0 s" a! s9 p0 U( l+ q& G pLight->Specular.b = 1.0f;8 o4 W8 L& S" a8 ~" v9 T
// àü?? oˉè* * m8 S4 d* i, X1 L
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" h- [. H1 f" q y1 s pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
+ @. u6 ~* i( z6 [5 n3 q! Y6 ~ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;* d8 P. v8 h7 X3 o
" \/ S9 P* W, X H. `/ V1 A if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
. L. R N& p& i5 I" g. q {5 a$ L2 M0 [/ w4 y3 a$ c
pLight->Diffuse.r *= 0.6f;' j E8 h/ E# ]" r1 m H# I
pLight->Diffuse.g *= 0.6f;
4 }$ b& P) q) s pLight->Diffuse.b *= 0.6f;
. d8 l8 b, V; k1 @: F pLight->Ambient.r *= 0.7f;0 {+ Q! n% d& v/ R9 q1 |
pLight->Ambient.g *= 0.7f;2 c- W1 X* U9 a9 _
pLight->Ambient.b *= 0.7f;/ M' f4 [* I; q4 `0 @- P7 D
} d3 F& [1 @& a1 i+ r; a% c4 B
2 Y6 U5 ?' V/ @+ E# o8 o( H: [
#if __VER >= 15 // __BS_CHANGING_ENVIR/ }2 ^" [/ O: x
if( g_pPlayer )
; j2 ^ J8 P. s3 d$ G3 s/ m ] HookUpdateLight( pLight );/ q6 D& {. q% S9 x; e
#endif
9 q* P" S! K; ]$ E" b memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 F9 l9 d" }1 n! i) z5 C y
3 X* W/ H, s) U pLight->Diffuse.r += 0.1f;
& v$ [9 W% u9 Y5 `! p2 I1 p pLight->Diffuse.g += 0.1f;
' i7 H2 _0 m* Z/ o( p& T) q pLight->Diffuse.b += 0.1f;
8 x" V! W9 q* N& d+ C- C // oˉè* ??à?
- R+ L2 u; \6 a" a: K8 O pLight->Specular.r = 2.0f;8 w1 D+ L2 n" e" c
pLight->Specular.g = 2.0f;7 ~2 a; d8 g8 [9 P8 R, S
pLight->Specular.b = 2.0f;/ v" t5 Q, A+ q- ~: k6 N
// á?oˉ
( c+ w) ], f+ p pLight->Ambient.r *= 0.9f;
! D9 N1 P8 ~1 g6 Y7 Q! E2 R% u3 d( V pLight->Ambient.g *= 0.9f;" t$ L7 W% N9 t1 V/ h
pLight->Ambient.b *= 0.9f;
7 H5 J5 u }) s+ R5 G$ R. Z. g( w; K4 q2 Y7 l3 R
memcpy( &m_light, pLight, sizeof( m_light ) );$ ~; v; D' G. c1 V* X' E3 ~) z
5 I6 k' y' G9 I$ l: O: w" q8 W: Y pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
& ], S: m0 ^( V& b" Z) s0 t `' [* M pLight->Appear( m_pd3dDevice, TRUE );$ m. E+ K. c2 b3 S
" h& J3 I1 p# t8 ` DWORD dwR, dwG, dwB;/ ?+ W# t/ G& m7 |8 H
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 r4 M! ?! H+ V" `% q8 C/ t dwG = (DWORD)( pLight->Ambient.g * 255 );# z& ^$ y, s) _4 ~
dwB = (DWORD)( pLight->Ambient.b * 255 );4 ~1 Z. E' t( A8 d4 X9 Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 G2 ^* U0 l2 I2 _/ }, n( c: V+ n* H3 R }% {6 o/ m' q% c; [$ y ?! |
}
$ G$ _; e" U1 k7 I9 B else( u% a3 B' @; |+ f) C7 e
{+ c$ X4 C% k( Q) \: V- b9 y/ p/ t
if( pLight )3 f6 \0 N- d+ [5 `
{
& ~+ U" Z7 |- I! J3 k 7 E$ Z7 }: B& V5 x( j& O1 T
int nHour = 8, nMin = 0;# I; V5 p: I5 p% L% k
#ifdef __CLIENT8 y+ R0 x3 N5 d# Z w. k" O( _
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
- z- u) \) z$ Z' ?( D0 N8 R% r* V nHour = g_GameTimer.m_nHour;# L1 {6 f8 t* f8 n: Z" k5 k0 I
nMin = g_GameTimer.m_nMin ;0 }2 J9 `/ n- A3 S( L4 H) X6 r
#else3 \ i! y! ^* ?' [5 H
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
/ s a, c4 G/ Q4 y if( m_nLightType == 1 )7 V0 B4 a0 a# O; `( r
nHour = m_nLightHour;' B0 m1 V- e$ D, N
#endif
# _! o. W6 M( H8 W2 U8 x1 g) z nHour--;
# U2 {8 z3 O3 L2 f7 t8 y if( nHour < 0 ) nHour = 0;
1 [. E: ?) p3 {, A6 n# m+ J if( nHour > 23 ) nHour = 23;
, X6 _" b, C4 P, K$ N" i8 G0 ]0 {$ w8 d2 c5 d" E0 M+ T
//if( m_bFixedHour )% u) c" q3 ?( S9 |" ^
// nHour = m_nFixedHour, nMin = 0;% I2 T, r8 y e- h( t' z: o
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ]; r8 x4 I7 T& _
LIGHTCOLOR lightColor = m_k24Light[ nHour ];5 ]. l0 D/ k: }5 ]
6 C) p+ M, a5 \- S5 g, f! s4 m //m_lightColor = lightColorPrv;
0 |" o7 I% |9 m; Z; W lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! s; r7 R# I% ]% \; o b lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;( Y" L. l8 y( m! t2 Y
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;- n: p% U4 g5 V8 \
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
" t W0 A) O: r8 N+ C lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;2 t% b. s& G- A8 l2 U
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;3 S F) ^3 A; j4 _1 ?1 f, l9 U
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% J( Q. i0 E! W/ b4 t# |; T" i0 [
& V# O, g# z. l# ^ // à??μ oˉè*
4 j7 I0 {9 f- K6 i5 g pLight->Diffuse.r = lightColorPrv.r1;8 T+ V! S1 o5 T& l! j
pLight->Diffuse.g = lightColorPrv.g1;3 v+ |4 Y- h. t7 u5 o* z2 o) [
pLight->Diffuse.b = lightColorPrv.b1;# \& G+ B8 m+ V' |
// oˉè* ??à?
5 G! m2 L k) V pLight->Specular.r = 1.0f;
- S/ a+ ~; c. q& ?6 R+ m4 b, H pLight->Specular.g = 1.0f;
& Y* L/ F) e. y* C4 \5 p pLight->Specular.b = 1.0f;& C; d+ U. g# j0 Z$ I. t8 j/ _
// àü?? oˉè* & l4 J& V( i+ y; y
pLight->Ambient.r = lightColorPrv.r2;6 {% ?3 c$ O& Z [
pLight->Ambient.g = lightColorPrv.g2;
/ k5 h, M, }( } pLight->Ambient.b = lightColorPrv.b2;
: {( j8 i+ u3 W
; e" ? N9 s s' q: _ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
# b- l _# [- f6 _8 O9 S {8 d2 F0 q7 z. R
pLight->Diffuse.r *= 0.6f;
q# I, m( p4 b+ p% J ` pLight->Diffuse.g *= 0.6f;
! d: e c9 V m m: u* W& z pLight->Diffuse.b *= 0.6f;/ A. `5 g. ^1 M& E+ H0 y* e
pLight->Ambient.r *= 0.7f;
; I; Y# w* Z9 `" B pLight->Ambient.g *= 0.7f;
+ p0 L9 Z }- _8 _# ^ ~. O! S pLight->Ambient.b *= 0.7f;
+ h/ J3 L2 J+ L7 D% ], K9 L }
0 }' T( Y5 x7 _* e" N. N9 V( I " x8 t* a/ Q1 O8 L; |% q1 t
#if __VER >= 15 // __BS_CHANGING_ENVIR
" M5 p) C( y, X( {, `+ @8 R9 x if( g_pPlayer )% l9 A' m. K( Y, Y4 `
HookUpdateLight( pLight ); , N1 `) v, r3 s& J( I- x" M+ ^
#endif
7 P% l9 G* }7 _4 A" E1 X3 }, g3 W memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );" Y& G, P1 ^" j: Z6 K; {
4 F: X. B: k7 s#ifdef __YENV7 X: n3 K7 ] g6 ?2 S; t7 Z
pLight->Diffuse.r *= 1.1f;; j a, E6 p. ]) J
pLight->Diffuse.g *= 1.1f;
& g- {( C9 \5 o pLight->Diffuse.b *= 1.1f;
2 U% t, l! a+ ~0 l* Y6 R // oˉè* ??à?
! L' O& K/ { F8 X pLight->Specular.r = 2.0f;
- s+ j; ]. J7 i, n% w" R* L pLight->Specular.g = 2.0f;
8 H6 s* ^ u& B, j pLight->Specular.b = 2.0f;
4 v! d1 y ]! @" T* _, q // á?oˉ
6 X# J+ G0 K& q" |) e f pLight->Ambient.r *= 1.0f;. J- S, u6 O& z6 ]0 B: a: Z
pLight->Ambient.g *= 1.0f;( O8 I( `0 W: w) _
pLight->Ambient.b *= 1.0f; {) F" b- |# w8 R% C7 \! x
#else //__YENV
3 F: C" X+ s* z1 `2 g0 J pLight->Diffuse.r *= 1.1f;3 h6 M9 _+ R4 x
pLight->Diffuse.g *= 1.1f;
' q# @+ x z. w- r pLight->Diffuse.b *= 1.1f;
, j2 @, E; h( c7 A% x- Q // oˉè* ??à?
* A% u D- N* g- x$ |2 _, G5 y: w pLight->Specular.r = 2.0f;
/ i+ d) j& I" _. `% z! T pLight->Specular.g = 2.0f;
! m2 G( u- s2 N. I8 x! t pLight->Specular.b = 2.0f;
2 X. q6 j! S; y' K; E7 _. w6 ]4 H // á?oˉ : @2 o; w* Y$ U/ v
pLight->Ambient.r *= 0.9f;6 ^6 T, h2 X5 r7 E9 S0 k% H7 i
pLight->Ambient.g *= 0.9f;9 \8 D |4 \8 _1 h/ W* I
pLight->Ambient.b *= 0.9f;
1 X% n$ H% P t: H8 T9 }#endif //__YENV ( O! `( _0 s1 @' O" b; l3 t
0 i$ [& C& x$ h4 E% m7 X9 Q4 k/ s memcpy( &m_light, pLight, sizeof( m_light ) );
9 J) `. x8 K4 m* l. i" u& D. ] 7 l! P+ b& h% M) W! }
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);" c: V3 m" e$ a( R0 J6 w2 A
D3DXMATRIX matTemp;( O' O" a2 `2 _* `
static const float CONS_VAL = 3.1415926f / 180.f;
4 o; l! ]+ F) g% l5 L/ y, n+ ^9 V! f8 [& g5 r( U2 Q3 {: S1 n4 B/ o
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);) v7 {# W1 X8 T% {$ a* C
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! x1 X# ^! \1 B+ N
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
7 Y7 ~# a" [) P/ J. w pLight->Appear( m_pd3dDevice, TRUE ); V( c$ A+ _$ F0 Q# s6 f" y8 B
1 P5 X5 r( r% B8 F! Q6 p$ [2 w
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' j# W# o/ x( ?/ }/ `6 R
// D3DXVec3Normalize(&(vecSun),&(vecSun));5 G3 W" }1 w, `! s' T
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); $ z% P3 y( ^# @4 I
. ]7 c3 W5 y! I s/ E5 N1 \ DWORD dwR, dwG, dwB;
, y( {: P; E+ M! U; a dwR = (DWORD)( pLight->Ambient.r * 255 );5 I o0 F5 @: O$ E$ `
dwG = (DWORD)( pLight->Ambient.g * 255 );! z; T0 |5 l9 `0 t: i2 h1 ? y
dwB = (DWORD)( pLight->Ambient.b * 255 );
: Q2 ^7 D5 |2 \' C( x7 h dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); - \, {9 t( u6 ^0 }8 X) b' ~
}8 j8 @' y6 Q* E" F* ]
}
/ S: q% A d" w7 M. H* Y& K6 j3 c% Q3 X. ~$ c _+ l$ \
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
) j- n, D2 n; H' }+ n 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) );% c' O) V+ W' A, v8 i8 ]' }1 @
::SetLight( bLight );
/ @, s# }2 J( _( K2 c2 m2 F+ ]% n O/ K% Y
// ±ao? ?D?í???ó á¤à? 2 _0 Z, o$ U' |9 V
m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 v1 \- G2 A# t0 T& N : y: |3 Y4 W% e9 C. E/ C6 e
#endif // not WORLDSERVER' B% F; s6 i9 U4 F4 X
}
. ^- v% K! d7 f+ r/ S$ `1 U! J并更换, S4 ]+ L: s1 X7 a, {4 ]
Code:
* r$ Q7 g: p. a$ b( c( N! }# m' D1 Z__FLYFF_INITPAGE_EXT
' U) L9 b" S7 a$ D定义$ O/ D7 A @5 O, u( C8 h; d
' O5 r0 m! J1 ~1 M; o7 C( e0 e5 |/ v, ~7 B- W% ~/ i8 @
* v0 d) n% a7 k" A4 l: \( T R
, z! @- p- I. a3 e4 c* a
现在终于删除我的狗屁加速..., ~# |! k- Q/ S7 E8 P
$ C. m- A/ h) _ _) L
3 B7 n- ^, E- l+ ?- }4 X# e4 F0 e+ X% Q6 @* S1 c
|
|