|
|
食品车:' b% A9 v7 i9 r% V! a' n
尾翼:
2 I. o0 g n" ~2 q$ b2 T' [' u' Q+ d3 N+ ]
代码:
4 M0 i3 Z6 a! i; S3 B6 y, ?CWndAutoFood::CWndAutoFood()7 e! y* i, ~, O- J5 Y# e. F3 h" U
{
9 n; @$ _7 I/ s5 n: f ^! G m_pItemElem = NULL;- y" `5 n9 K' Z" K1 A
m_pTexture = NULL;: j) l+ F6 \$ u! x) s3 s; M
bStart = FALSE;
+ { ?1 V; q5 e6 }+ v}# s' k4 k7 `" L d' A* h: v h3 T
5 k. T$ {' D# q/ }- C; u* C: l' W) oCWndAutoFood::~CWndAutoFood()
) }) D) a. S. L: ]3 ~1 n{
$ O/ S! |2 {, G) K5 x# r: F3 B AfxMessageBox( "AutoFood ist gestorben " );/ I5 @& H7 t" j: a. B9 ?
}( l% W( U5 T7 Y- W3 }2 \8 V
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )4 p3 N8 m+ ^8 P+ d) y
{
" n9 E& l2 j1 E& _' L return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
0 O; i- z" z( I" U5 Y! a! A; ^}
/ w/ R D' y y
: Y: e. L# i4 XBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
& T+ j( @8 ^9 g! @ k ]4 M* R- u{$ x1 R. G' i7 L% [5 \1 [
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% o* [! N6 M0 `/ I7 J! p
CRect rect = pWndCtrl->rect;: y: m1 I6 }6 O- J, O7 X6 t6 t
if( rect && rect.PtInRect( point ) )
/ J, s, A7 V, q# S2 d5 h9 s {0 {2 m/ _5 \6 `5 N7 d; m3 w2 x' z
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );7 ]& k* X, S+ T, V
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )2 l. W. Y$ Q, J0 i# ]
{/ u# J! M! I) C1 E
if( m_pItemElem )+ I5 j- d6 e7 D+ `
{) ^ C4 \* X9 ?( g# k4 ?
m_pItemElem = NULL;; c$ l4 M( F6 \/ o R
}
. m3 h3 L- X& [! j' q1 J m_pItemElem = pItemElem;6 F8 d8 Z7 Z, `1 s
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
2 V2 t( m6 `0 [5 E5 U' q/ J }else{* E' V p$ {' o6 U, F6 F3 W
SetForbid( TRUE );) s) K3 [! { r" E& K! O3 N% Y
}
$ |) O2 n6 `* N( t8 R# L$ w/ @8 U$ ` }else{
" J3 |& ], ^% l' }7 [: Z SetForbid( TRUE );0 C6 G0 m5 c/ H( l
}$ J9 C6 e9 J% D! `, S- u
return TRUE;
( k* X+ m5 ?( h8 `( u1 T}
# |- q/ c5 z \) u8 ~7 T0 J" K6 _
: d* m) M: I# V* WBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )% R$ v" c* @6 r
{3 ?# p1 R/ T( W; {
switch( nID )0 H7 m! r0 Q |8 M
{# F! a4 V/ J& r; w2 v# n: N- `
case WIDC_BUTTON3:
) f& f! L; |+ m7 ]) A3 L {7 ?8 N& L' a: a
bStart = TRUE;7 k# w' b, z5 M/ k9 Y* A0 E
break;( u% V) @+ H; w. J
}
$ f9 q" m# x. X6 f) V case WIDC_BUTTON4:
! T7 x/ C# y0 R, I {8 o& B8 @1 H; z( b& w% b8 [# I
bStart = FALSE;/ k+ E& ?- e1 D$ k8 j+ r4 |
break;
% d6 Z" q A8 d& ~9 i" ^( n3 ? V }
. q; I. p1 A7 m! ~! ]7 ? }
. ~4 O' q; m3 Q2 F9 n* q! y- t return CWndNeuz::OnChildNotify( message, nID, pLResult );
6 g7 u6 D( f& ^5 W# A% f/ {} 8 n m# T6 ^' T/ i! D
void CWndAutoFood::OnDraw( C2DRender* p2DRender ), v) C4 q# J% G d
{1 e- Q: h3 c2 z5 m, Z2 y! d% s
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
1 f0 p' o- m4 R2 `5 N if( bStart || !m_pItemElem )
+ n! ^% A Z, H: r/ O {
: j e/ t, ?) w! [ pBtn->EnableWindow( FALSE );
8 l+ L0 ?0 l& L+ r, {* ~( \ d! o e* J }else% R# K1 ]) A- _7 Y2 q% u
pBtn->EnableWindow( TRUE );. Q, f* E5 `- n
if( m_pTexture )
) J# i* ?0 P5 l2 D" L {% m9 d$ e8 F; Y G3 ~
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, p' G1 [$ R2 ~+ l& ~8 C if( wndCtrl && wndCtrl->rect )2 a& `/ k) r n) [2 v
{
8 p9 p7 Z' r( K2 P/ l3 m$ G m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );, {) x9 X3 {# b5 Y
}* u7 r" t8 Y& H& [, n. m2 s. L
}/ i+ Q! a1 ?9 ?" N
}, n/ \2 g/ Z/ V- h
5 P6 u) ]5 P' D% V$ BBOOL CWndAutoFood: rocess(); V; G; z5 ]. I- i$ y1 g
{9 |& K: C3 r8 H j
if( bStart )
& R6 u" r/ E- z, b+ I {9 g* B7 i5 M5 K2 H6 F9 m0 B7 O
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. r' _6 ~/ z: ^0 I* l {0 Z& [' P' _+ ?2 d9 ~
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
( u/ s+ Y% P$ l1 e* J @8 ~ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
9 x/ i3 q9 a4 Q }else{
# k& W8 R, J5 G% N! C% W bStart = FALSE;
, y2 N% ?% a2 ]# Y0 |. o5 X m_pItemElem = NULL;
9 ^0 F' g O7 l# w }4 t* k1 `# Y; {% ~
}: i2 {' o) o$ w, d
return TRUE;( {4 Y8 }! `8 B
}- Y# ]3 y3 n4 K9 k# s- O+ i. Q! C% k
7 i+ S- J0 t$ }4 \' Q
登录视频废话:6 Z: y4 z! z( B! S5 r6 A& d
尾翼: H7 |) d( ]2 k+ [% l
b' F2 k. m" {% {! p+ G9 P代码:
) _6 M0 {" Y, g `9 T0 \* B e1 i& E; |3 r0 f" @
void CWorld::SetLight( BOOL bLight )
# k# A1 F4 w3 j7 }4 e/ k2 J. b% cdurch
, Z6 M i B+ `3 G! ACode:$ T. S2 N: ~$ m$ ?
void CWorld::SetLight( BOOL bLight )
/ F) R5 g( S* d/ M5 o{
! m7 M @, ?( y1 b8 L0 \ //ACE("SetLight %d \n", bLight);2 o7 _$ l9 X' T- ^/ ]: A+ _
d% q. ~' _, w8 [2 U4 V' H
#ifndef __WORLDSERVER
4 |2 m/ b) t& S/ P; ] DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);& R; ~, J9 n# q$ h- D9 F
CLight* pLight = NULL;' O# V9 I$ [# k- K2 H/ m# k$ @
; t1 l3 h2 }: c9 W+ z1 D D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );, [: ~+ ~0 V$ m+ d9 P
) E4 O0 k& G: }( ?6 R# t8 F" u
pLight = GetLight( "direction" );
# M, R6 U8 D7 n+ p# f. z7 Y0 R: q, U8 v d1 Q ^' ~3 E2 i- Q
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 p# \9 Y1 Z* L: `5 M) [# O0 L1 b1 \ if( g_pPlayer ){
$ l: W9 J$ K# m" D- o: [7 q ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );% H! e& C$ y4 B C' p; ?
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
& w: e6 U; U$ H' H( L' f {2 [/ S1 m: a+ }/ b
if( pLight )7 F2 w; g! ?6 B
{5 h& X+ E3 c9 m0 p. h
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
* i; X( |% Z1 I+ ^% Y pLight->Ambient.g = pInfo->_fAmbient[ 1 ];0 Q ~# |( k) k& h$ y* n. T! `
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( C1 M, G! H' }' U. _
; k7 |, [6 c4 K1 P pLight->Specular.r = 2.0f;! ?$ J; F( F$ g" l) e2 H
pLight->Specular.g = 2.0f;
- Q, V$ L! h7 Y pLight->Specular.b = 2.0f;4 K6 _( |* G/ k' B
) T) ^* t8 f5 Z+ n0 f3 t pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];/ a" G3 g R2 `+ c! D
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
, n' d, |. }( K5 q pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];2 }, B- t! ?' c2 l3 Z. V
5 S O; S0 Y' l- x% M; L
HookUpdateLight( pLight ); / M& Q0 h: W& w* u
* _" ]4 l; a0 H% J6 V& w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 C' J2 M- c' L$ i \; Q1 Q
$ Z4 w8 B% N% j5 r6 n
pLight->Diffuse.r *= 1.2f;
. U- t# t1 e6 }2 P) S pLight->Diffuse.g *= 1.2f;
7 ^. S3 }3 A; O pLight->Diffuse.b *= 1.2f;
8 L2 ~: k: S# w4 ~% q
' [" Y; I9 Y! n/ z pLight->Ambient.r *= 0.8f;
2 v) @. Q" r( M& e3 ]: w" @2 c! Y pLight->Ambient.g *= 0.8f;' x0 f/ `/ b6 k# M8 b- L
pLight->Ambient.b *= 0.8f;
! W' W1 _4 p5 t5 w* t r * V5 h- s, e! E, m1 d! t
memcpy( &m_light, pLight, sizeof( m_light ) ); n/ K8 y$ d8 \) @- b, f) ?
5 @2 A* O- w2 I8 }7 [5 Q2 |& d D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);5 V% O: v' a$ _* \% x
D3DXVec3Normalize(&(vecSun),&(vecSun));
5 w3 z; |" Y- m. _ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " I0 V/ s3 i/ I( ~
pLight->Appear( m_pd3dDevice, TRUE );' @1 G- `( f: I2 d. p* }) z
5 h7 d5 ~9 J; ^) J+ ^7 Y: | DWORD dwR, dwG, dwB;
+ t% T# y9 }1 J' d1 z0 { dwR = (DWORD)( pLight->Ambient.r * 255 );
& G/ `2 s5 y9 n dwG = (DWORD)( pLight->Ambient.g * 255 );- Q* r, t3 W' u0 c; f3 [" d1 l# M
dwB = (DWORD)( pLight->Ambient.b * 255 );
- B3 \% f( X* l, R2 M dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );( C* U8 F' z+ j& k$ D3 J
}- Q* C! R1 [, |- J
}( `) Z \1 s8 x6 |- [. ]) Z
}0 A* j; n6 a3 S/ U! ^! U& }0 L
else9 H, G2 P# b' f0 l0 @" W% ~# D
#endif
3 \% E7 {: O) V: p: ? h7 R" s: V+ M8 D$ h' N7 |+ f
if( m_bIsIndoor )3 } G- w9 v$ M
{
9 g7 Q2 }/ D {, v0 Z if( pLight )" t) `) K: Y$ S+ _7 r7 r
{ ' H6 @8 h G. A2 ^+ u
// à??μ oˉè*
: w+ b1 j3 `8 N9 g pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;* Z; T, | M, R9 I! u; x8 T: ~
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;8 z9 i0 Q }. ?
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;- n* J% x/ B9 m: i; v1 `
f% X1 ]! l; l // oˉè* ??à?
5 Q& ]" h6 ]3 {9 A% \. Y3 u pLight->Specular.r = 1.0f;
/ ~. e( S5 ^. J% \4 }3 t pLight->Specular.g = 1.0f;
/ G; ]9 Y/ f2 `9 V, J$ D pLight->Specular.b = 1.0f;; F7 i% D7 [: f" n% p4 i: a$ H6 t
// àü?? oˉè* 8 o/ F/ E N" ~) s- W" V s: j: d) i
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
5 R4 h6 @! h; E8 A* D+ H pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
8 Z/ Q; A0 {' d( W! z pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
2 F8 i& u8 u, r* j0 X9 [! J# s' m' ?2 v
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 Q2 g* M9 B& K& h. G- Y0 ~8 T( U A {: h9 G0 {3 J, w
pLight->Diffuse.r *= 0.6f;' w5 i+ ?1 {* u% H+ g
pLight->Diffuse.g *= 0.6f;
1 y' T p) X, C1 S! M pLight->Diffuse.b *= 0.6f;' Z& T, c( n8 U* _; y3 T" k
pLight->Ambient.r *= 0.7f;
/ _$ Y- |" {6 {9 `' h pLight->Ambient.g *= 0.7f;9 [0 Q: q1 l4 K$ l7 v# s
pLight->Ambient.b *= 0.7f;9 g5 @( y! f7 n8 W
}' u' c2 {# p% N% n* y/ h6 K9 ~
. C! |0 \' X& T8 L3 y#if __VER >= 15 // __BS_CHANGING_ENVIR8 _! R4 D+ i K
if( g_pPlayer )
' N& n3 _% z. m HookUpdateLight( pLight );" V" M9 M. P) ]+ B6 O
#endif9 B0 @; [9 k$ o% z& S1 b; W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' y8 X& ~* w$ g; ~- w# V' C
* o h2 v4 n- m! d( Y. M pLight->Diffuse.r += 0.1f;# N0 N0 }9 D* y- I' {5 x5 J" v/ b
pLight->Diffuse.g += 0.1f;
: ]6 T6 C9 M& n3 i0 E# W pLight->Diffuse.b += 0.1f;% C4 J0 m) B7 x9 G7 u
// oˉè* ??à?
6 J: i+ G; \, b pLight->Specular.r = 2.0f;0 r! N7 |" J4 _3 f5 @
pLight->Specular.g = 2.0f;" g. ^% P# f, `' X
pLight->Specular.b = 2.0f;
! ^4 f) U& K" e* X/ i. f+ w3 J$ G // á?oˉ & H% z& n4 T: f6 s+ j5 |
pLight->Ambient.r *= 0.9f;3 h( T" X# ]4 U/ M0 `: k# ?
pLight->Ambient.g *= 0.9f;
/ F0 s( \- g/ G4 Y7 Z pLight->Ambient.b *= 0.9f;3 d6 i- \9 K# {: A6 S
7 O: |* |5 e; H) ]
memcpy( &m_light, pLight, sizeof( m_light ) );- ~8 L! X6 }9 h) E0 X. {
, s: }( ]- v" |6 v! l
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
' ]; d2 C: O1 C W pLight->Appear( m_pd3dDevice, TRUE );
7 M" a- ]( O! ]& ?" i; K
1 U8 b- ]4 {- t. E3 t o DWORD dwR, dwG, dwB; V: q# F& b1 Q2 B) T5 V4 ?9 a
dwR = (DWORD)( pLight->Ambient.r * 255 );6 r2 X' N$ j" \5 Q
dwG = (DWORD)( pLight->Ambient.g * 255 );# I: A' k4 S* t$ c2 i* }9 O
dwB = (DWORD)( pLight->Ambient.b * 255 );' D8 ?6 N9 @, G7 }7 o5 c
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! L+ k/ C/ y5 L: B& Y- n
}
4 L$ A, [0 l; r: I( F }
) U/ r, K* z! X: x" C else
% J: \/ x' ^+ W( e6 h" v {/ J9 j9 r# r1 C* O7 Z) ]
if( pLight )- J4 p: d7 B% Y* \7 C' B# B' s% h$ i
{
/ G, ?" X) X/ b2 e$ l7 G5 `( ^ 1 G- ^$ x* `1 l7 g% J% W8 Y
int nHour = 8, nMin = 0;2 s" f5 b7 O. s1 W! t( G
#ifdef __CLIENT. N4 D; ?5 {. i$ Z
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
( L% {/ ]7 a7 K5 T# w% e nHour = g_GameTimer.m_nHour;2 \1 S4 G+ N$ Y8 J
nMin = g_GameTimer.m_nMin ;
% A; t' v: c6 E) ]" }8 W #else
. C: v9 u* U# [0 O // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.: u7 T b; d% Z3 G+ y! j$ N
if( m_nLightType == 1 )
y% q4 u+ j9 c. b' W. P, w nHour = m_nLightHour;- t4 ~$ a! }4 T9 U
#endif. Z& R+ u) P5 T! E8 X4 @
nHour--;
+ @8 D# b; X" X A& u if( nHour < 0 ) nHour = 0;# b6 ^: G r0 C
if( nHour > 23 ) nHour = 23;
( E4 n9 k5 z0 d k4 h2 c. _% @
, m* C/ }5 Y# N; ]! @, E N! ^+ @ //if( m_bFixedHour ), h' a4 H" y+ h
// nHour = m_nFixedHour, nMin = 0;
8 w* n. A# L/ M9 |3 D# P LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];! Q2 T$ @6 K* `1 {2 D6 Y7 L, v
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
% V/ P7 j, n% N# o% P
; G: E5 o( j- ], Y& l7 m/ [2 e //m_lightColor = lightColorPrv;+ r+ v1 E; C q8 F4 j7 f* w) ~3 `
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;% n6 e9 l) ~# m4 D
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
& W. x' R% v% L9 N; { lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# m! |! ?9 v5 S& L/ L' X# J
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
' Q& T: R, {9 H ]/ j5 [ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
9 T, x" J7 W5 S {% A lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;; ^" O$ M3 B( p/ L3 O/ `
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
4 W3 v$ P/ n; V5 {; V4 M+ m+ i, z. M
// à??μ oˉè* ! G [- _# q& K9 ~* O* L9 O( N* v
pLight->Diffuse.r = lightColorPrv.r1;5 @- c, U' |9 }8 {$ ]' g2 C @4 }
pLight->Diffuse.g = lightColorPrv.g1;
7 M( o9 {( c! ]; e5 O. d pLight->Diffuse.b = lightColorPrv.b1;
* c! @( I5 l0 Q( j3 ~$ M // oˉè* ??à?
. x9 x/ y4 `& x$ U9 [) Y! B pLight->Specular.r = 1.0f;/ ^! f2 U! T2 b2 R
pLight->Specular.g = 1.0f;
9 `0 @& F0 Y G0 s, Q pLight->Specular.b = 1.0f;: Q6 Q: u9 Y5 H/ Y+ l: N% [
// àü?? oˉè*
6 A- z! H: T+ G) J pLight->Ambient.r = lightColorPrv.r2;' K" y# B, C8 \# L5 l
pLight->Ambient.g = lightColorPrv.g2;
- b. j) U; L! G0 S A* P) a! { pLight->Ambient.b = lightColorPrv.b2;
) N* y) k; S+ @2 o2 |) j( H
5 _5 E$ E/ m u9 y% N8 n) Q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- K9 o! _1 S) n7 m/ e* f {/ i$ X+ c" H- L0 J/ |
pLight->Diffuse.r *= 0.6f;/ Y- T- K: }# ^
pLight->Diffuse.g *= 0.6f;
p# b8 [; F5 R6 @& l, a0 ] pLight->Diffuse.b *= 0.6f;
( Q) T8 D2 Y; {) K3 X pLight->Ambient.r *= 0.7f;
! K; M( R7 n9 @+ {/ p7 V; J4 s pLight->Ambient.g *= 0.7f;4 a* Q+ B0 N1 \3 K8 f+ w
pLight->Ambient.b *= 0.7f;$ q( A9 R# B+ P/ r
}
4 y8 C3 T" H- ]1 u9 T i
5 {( R: z3 M" I( V#if __VER >= 15 // __BS_CHANGING_ENVIR( B9 v0 f# h3 F9 u
if( g_pPlayer )6 k' y; M( p8 V% L) q
HookUpdateLight( pLight );
! ~6 G- b+ a' U2 C' f#endif
5 G$ V/ C8 U, { memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" e1 t* y% @. W s
9 t0 n# w* F1 I#ifdef __YENV) J! P& q1 h& _ B: O6 n# |
pLight->Diffuse.r *= 1.1f;
1 {) n9 @( I, ^$ q9 P pLight->Diffuse.g *= 1.1f;% z/ @8 C- \- K: B
pLight->Diffuse.b *= 1.1f;' x4 I3 N8 h% u! {0 V+ {8 u
// oˉè* ??à?
9 |3 A1 k* H) s& W pLight->Specular.r = 2.0f;
& f) k! p F C9 Q! o$ o pLight->Specular.g = 2.0f;6 s$ Q. L8 L! ]6 o* ^- J
pLight->Specular.b = 2.0f;
& p4 H+ ]4 d# n7 T9 r% o! X+ C // á?oˉ 1 ?2 ^. i! x4 `3 K
pLight->Ambient.r *= 1.0f;
: }; L0 N8 h1 S d9 q pLight->Ambient.g *= 1.0f;
1 B! \8 U' }# [+ i# H2 s* h pLight->Ambient.b *= 1.0f;# S$ l4 {3 q' E. s! K! u
#else //__YENV
0 H# l' f8 S+ x7 r5 ?) f& Q- [) k pLight->Diffuse.r *= 1.1f;
1 u) J4 h3 O8 x8 T& \" m pLight->Diffuse.g *= 1.1f;
! m) R3 D6 ]& J4 ~ pLight->Diffuse.b *= 1.1f;
}8 u6 ]% I% i8 j, l // oˉè* ??à? 3 K8 I& w% {% }! M
pLight->Specular.r = 2.0f;$ o! ?8 p7 m/ E$ n# Z
pLight->Specular.g = 2.0f;
9 \* t O+ q" c, @5 u pLight->Specular.b = 2.0f;6 @* V! g L& f9 T$ p5 D
// á?oˉ
0 n5 ~1 [* d* B7 q& u- l# e pLight->Ambient.r *= 0.9f;
! J5 ]4 {) I. n4 D! r pLight->Ambient.g *= 0.9f;
, e, B/ A4 q0 [/ `7 F- ^+ g pLight->Ambient.b *= 0.9f;% w% g( _8 c0 L
#endif //__YENV
- ]: V/ H) ^' k2 m, E8 _ 6 S. ?, f$ b5 f" W
memcpy( &m_light, pLight, sizeof( m_light ) );
& N6 [0 A& c# ]* G% v + w- P3 v, `$ {8 w) H) M4 q/ I
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
/ w" Q9 r w' p8 N0 @# A: J D3DXMATRIX matTemp;( K: A3 q) t. ?7 J
static const float CONS_VAL = 3.1415926f / 180.f;; Y$ ` I; W( [3 G5 n
* z1 v- ^5 L% H7 J; d& a$ V( Q: q1 d D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);, ]0 V* t; O6 Z2 s5 K9 M
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& _$ s7 b" ~" ?! t# K
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); " G( Y0 |$ D4 W5 j# p# ^7 ^" i8 X
pLight->Appear( m_pd3dDevice, TRUE );' i% b% ^! W! P+ ]- G# Q0 V
3 D$ J0 F& K+ d6 I4 o- Q( a& `; U: Q
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 |2 T" F/ f; y
// D3DXVec3Normalize(&(vecSun),&(vecSun));
6 B* b) A; E8 p/ B* Y7 R$ p // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ! g" }& T3 O6 r/ i$ H I. x5 J* ~2 Z& U
$ Y! G) s) Y. ^2 j* y* k2 d/ k DWORD dwR, dwG, dwB;
# S1 ?' ?% [) p3 O, s dwR = (DWORD)( pLight->Ambient.r * 255 );
/ L# m; P9 f N; }/ |9 Y8 U) d dwG = (DWORD)( pLight->Ambient.g * 255 );3 M8 B" f3 M( P$ {
dwB = (DWORD)( pLight->Ambient.b * 255 );
" P5 \8 Y6 m% W, C; S dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. u& f# R$ D( {, ]2 F, }0 B }, e' z% ~+ s6 Q0 _+ ^$ D' e7 z. N
}
9 E$ P, X! n4 \# i* s4 Y/ E q( M1 o6 M- R
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );: }5 y' `( ~! [5 |# E5 X9 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) );
" k' `) K8 l( y* b, } ::SetLight( bLight );
, |; S+ e. O7 c/ ~3 ?& y$ y- H ^) W
F3 G q0 m9 h# i$ l; r3 h // ±ao? ?D?í???ó á¤à? : p3 c' ]5 h+ P& G2 a9 M" C
m_pd3dDevice->SetMaterial( &m_baseMaterial );
+ W7 g( |( l. g4 f6 `
) F1 D& [9 b+ Q' X* E" V- t#endif // not WORLDSERVER4 L! a; m/ a5 }: Y6 K3 E( F2 S
}
4 F: F I% T) _) O& n# F+ h并更换
/ `5 N3 G' F) w! p K5 bCode:
( U- n% |. p7 L& T" \9 y3 |1 U__FLYFF_INITPAGE_EXT& |" K! d$ y( P- |# M7 D! `
定义6 o3 `, y- m' |* ~
* H! Z ]$ w( H1 W; M# F! ?, T1 P* q1 ^$ i: m
+ u5 {2 v1 m `8 R! T* F
, u9 Q" t3 c: K2 b4 Q6 y
现在终于删除我的狗屁加速...$ o) O8 B' F! K& ?
7 A/ z$ C/ x* Y- W7 f. d: V" L
' }4 c2 d0 O* A% W0 t3 J8 O2 | G, Y6 G8 n
|
|