|
|
食品车:1 d, ?7 S# [; ]& H4 b
尾翼:) K6 I$ N, b4 K5 y. U5 e8 h- Q9 [5 p
* D. Y+ E; h! K9 N
代码:
7 K7 s( h1 A8 K) M1 mCWndAutoFood::CWndAutoFood()
8 [( L0 y( T: v' O{: ~9 s0 ?5 H) o" m4 h" b9 d: c# M
m_pItemElem = NULL;
* T+ T! ~( c/ R8 M m_pTexture = NULL;
% {7 U! I2 J$ v% l' s; O5 a bStart = FALSE;7 r9 U2 d3 K A# H e9 U
}
' L; m2 N, n3 ^2 N: S
% r0 y4 Y: l: I2 `- G2 s0 e5 l8 ICWndAutoFood::~CWndAutoFood()
0 Z8 C" @4 d% R- n: {" W7 T{
" G6 k7 E' g4 z$ I t+ @; Q AfxMessageBox( "AutoFood ist gestorben " );
) X6 g P+ r L. s}
. G4 g0 m# i4 _, ~' f; LBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )8 q) V% d5 d# n
{, P; y7 ?/ e1 V+ O4 B7 C
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
- P$ Z& J/ }6 d}
; V$ F, D @5 ]$ x4 A+ g" c% c5 T$ |2 G# W7 H. t
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ); \ w+ u( P! w) D$ @
{
- W! Z8 A/ D0 ^1 ] LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: E% q" c. B* @, {: X
CRect rect = pWndCtrl->rect;% j1 F6 q( q" K' D+ c3 {' }. u
if( rect && rect.PtInRect( point ) )
& R5 Y$ l1 d% P; f$ N {
! m) X: H" B/ ]/ e* j7 r CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
0 [' [& ^9 H* K9 {4 T if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
$ ~( u0 O9 q- I/ s$ I2 [ {
8 O) S2 D4 f. S* v9 L0 e; v- t if( m_pItemElem ) C. k9 H9 Q* C
{
/ q% ]0 q+ F( D! y3 X; }, p: `+ M m_pItemElem = NULL; n0 n; o) c3 p
}
& p0 `, ]7 }% E m_pItemElem = pItemElem; x6 _8 O0 K8 A/ W$ p4 u
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );2 C9 Q/ ~& L5 `' e" }" g) |7 h
}else{
- M1 k2 b" a% w& J- W: K$ j SetForbid( TRUE );# O. |3 c4 E) R$ {
}
# I& U4 y2 m& o; x9 X& C }else{" k0 w$ v1 v2 I, O; }) m
SetForbid( TRUE );
$ h5 I- u! t: r( i) e2 U: r }
& j9 P" D9 ]' _3 A$ J! [8 s6 ? return TRUE;
# d* W( o; J- y0 R* M/ b+ y( k}' v0 O9 o) r' O! E- |4 v) o# L
! p- g" Z" I. R7 B/ y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
; F; K9 W0 Z( ~. Q$ x3 u: X( }{
- Q) {. y" j% e& R# X switch( nID )8 _) N1 u+ f, o! X6 R
{: w8 j( u! k/ s9 {4 b5 V
case WIDC_BUTTON3:# e2 R# O$ ~& }6 q
{
8 N: y$ e& M: X0 a# G/ W bStart = TRUE;
+ I- v. J7 t/ ~4 l; \3 b, x. j( g break;, o) h* l) e" l; d- Q
}- c Y/ l' R' `5 c3 a
case WIDC_BUTTON4:$ R2 u6 l! b0 ]+ U+ `
{$ F6 d/ s C: @4 V- k
bStart = FALSE; x' Z' K' D, z. j; h' t
break;
( e0 b% m- r7 S/ z; o: `" k/ r }3 m( o* o; ^0 q5 h* L
}
# {" l( o1 @+ }1 I return CWndNeuz::OnChildNotify( message, nID, pLResult );% ]8 ?3 O- {. J! N6 h5 P
}
6 { j; I h, c B8 Ovoid CWndAutoFood::OnDraw( C2DRender* p2DRender )2 k0 `7 |. ^# U& @6 y, _
{6 U3 Q, m$ ?3 q* ^' h
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
7 c+ S5 A" R/ n; m: e& l* S, w if( bStart || !m_pItemElem )( Y q9 @) b' ^0 w! _
{
" C- Y6 a$ T" [ pBtn->EnableWindow( FALSE );) s) b/ B( ^2 G: h: ]8 e' p0 Y
}else+ V, ~2 w+ J$ @
pBtn->EnableWindow( TRUE );
+ W" |# ~ P5 K if( m_pTexture ); E4 Y; G9 {2 ~8 I
{
- f/ O1 c, m# t, F LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 I% k+ ?6 `# t% N( P, E0 n
if( wndCtrl && wndCtrl->rect )
3 g0 ~9 B. v7 u, I6 g0 g+ K {! a5 ]# R% H" Z" f
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
9 D5 a1 {& P. x }- P6 S6 K; }" C$ H8 U% t/ h% q& x' ~
}
d1 ]" S2 |: d2 K! J6 K! d}
( o. v# Q+ l! w1 r
5 Q" G7 W* \( ^6 {3 ?5 {2 sBOOL CWndAutoFood: rocess()
1 w6 N8 S/ P6 ^* p{% O- [2 s$ s4 n6 j& @/ C* K
if( bStart ). i) P& D# p* [1 y0 i* N. ]4 e# Q
{) s+ j$ m3 w1 f; ^. D1 N
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
5 ]0 }& [; i3 @ {5 I, _- o/ R9 w
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 R1 n( ]* U! v+ l N- ]3 }) ~ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
: }# s! X, a- O0 ] }else{ C4 i# a% _# w! U% H
bStart = FALSE;
: u% N! q# g. v. n/ T0 v m_pItemElem = NULL;
3 M9 M9 m! a2 h9 t4 P5 N- S$ t }
# a k R5 c- H5 s; U# }! d# I# X }1 H }0 n. y9 Y, D
return TRUE;3 E4 M( j9 T: }4 X
} A! w! T1 y/ J2 Y0 a% U! L
, e } ?$ e* m7 Y5 q" I1 |
登录视频废话:* |$ c( k4 L% |; i: Q0 k
尾翼:$ ]6 U8 ?5 b, i4 V" H
9 o* M3 P# F& h- b- }# ~7 k$ z代码:+ b# x) F, G, r3 `( e6 i5 g' _1 r+ j
$ w! ^ {# F+ l* u$ m1 @: d: ?& t
void CWorld::SetLight( BOOL bLight ): {2 ?' ?. ]; N2 S- H8 A( Z3 Q' }
durch; l% D( u; e- ^$ u1 p! i" G' {, n+ }- _
Code:
3 @. H) o* w+ Z" `# R& g0 Svoid CWorld::SetLight( BOOL bLight )- g& G* G6 x( I* k# o1 o8 t
{$ ?6 M \7 r6 a" c5 B! }* j
//ACE("SetLight %d \n", bLight);/ o1 v5 l, l' w% B1 G0 ]
. {' {- H1 N1 u$ H6 _* o: H+ v#ifndef __WORLDSERVER ; K" `7 ? n8 J2 E1 q9 y
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
% `5 A1 j2 @6 N/ \ CLight* pLight = NULL;
- m4 S% e9 ]7 C {" B
0 S. S. m# Z4 Q* j5 \% E D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
& N7 F5 m5 _7 ?4 I. b+ }3 _# h! X& s4 v( x- h9 M4 P0 {" K
pLight = GetLight( "direction" ); u% P( B7 r3 Q! E2 n. A
7 I. ?# O' j; B0 w& H#if __VER >= 15 // __BS_CHANGING_ENVIR
& P. T1 @. T! C+ D+ t K; [% F if( g_pPlayer ){
+ c- A. R9 p" r1 W, Q7 o# a ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
( a- @# w: G$ M, e7 T3 N if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
`2 C4 b& M6 e1 |1 m7 s/ m9 j6 l {- q( Q+ Z! C/ A+ H: F! k
if( pLight )4 O5 L) N5 B: H/ K1 ]
{ L$ m5 E7 [- y- F1 {% E
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];5 |/ l: s6 `, e9 b2 e
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
* O {9 k8 K" e# X8 m6 e pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
; z' D% {4 m6 W- q. n% z
! v7 B! e8 g8 z7 J' j$ P/ T, |" E& q pLight->Specular.r = 2.0f;0 u3 n' ]% ~3 H6 ^' W2 Y/ u0 q
pLight->Specular.g = 2.0f;+ w3 K) v1 [- t* M' z8 K
pLight->Specular.b = 2.0f;
2 t: m# I4 u; ^$ R 8 X) [- L) U% Q* E- Q6 W4 s
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
5 q5 |9 M# S- i. j8 b- T" u pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];2 R) v: s( e+ d. M- r
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];+ W( D0 C5 f: o& g* M9 b) @
8 W2 \9 o0 i$ {1 i% C
HookUpdateLight( pLight );
' N; A' S& { M5 G2 {/ Q6 {$ b# i( j! f( d% f$ J: o' m9 x' V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- y% a5 R3 c* c
; b& N ?' y5 @( z4 x% n2 e' |
pLight->Diffuse.r *= 1.2f;3 K2 c7 F0 s; n! C7 `# L
pLight->Diffuse.g *= 1.2f;
+ O& x: f/ ]) @7 h pLight->Diffuse.b *= 1.2f;: K/ p( W" k3 p U# r1 e
$ e8 N( k! _9 y8 p+ {# h) `( r
pLight->Ambient.r *= 0.8f;
0 g+ ^1 _9 \* X! |% ~/ Z pLight->Ambient.g *= 0.8f;
% k5 `8 W$ ?" T+ n( w pLight->Ambient.b *= 0.8f;& ] p* l9 y7 d5 q5 q
! t4 Y |4 Z* Z memcpy( &m_light, pLight, sizeof( m_light ) );
, W$ z& N$ D$ e
# n1 ?* o0 i" w5 }0 b" R D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; H* Y8 l. D2 W# O D3DXVec3Normalize(&(vecSun),&(vecSun));
' |7 F2 g. x. ]0 Y1 k, k pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
# S0 V* V2 m p. k" l pLight->Appear( m_pd3dDevice, TRUE );
. r4 d9 q! ?; g( h" M - {5 I& H5 V0 C' C) o
DWORD dwR, dwG, dwB;) s& T# X; ^/ c
dwR = (DWORD)( pLight->Ambient.r * 255 );
/ y" q. S- y7 V" [% Q+ v" V dwG = (DWORD)( pLight->Ambient.g * 255 );
l+ |$ k) g; N/ n" i* d! G% F/ { dwB = (DWORD)( pLight->Ambient.b * 255 );0 K* T% v/ F2 d+ R' l; m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ y( y+ X9 ~3 y }
8 v; L7 S: g7 S- l2 P* f" c" M- J }
+ N2 _) x& e' C! P* h }. F$ q0 z0 _/ k. ~. K, T' x
else- g; B; P, t6 R9 w
#endif 8 m, R7 P a4 u) Z! O
: \! r) j, ^+ n" j1 a# b/ J if( m_bIsIndoor )8 O/ b m8 k! b& e4 x" e5 F I
{' A; b4 f. S4 {' w
if( pLight )
6 M y' h, Z( L2 a6 V/ t {
6 D8 `" W& F9 A: e // à??μ oˉè*
) L5 h* m% v) d9 ^6 m! E5 G pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f; j) W, c8 ?; H, N2 z, u8 V
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;7 A* ~+ B: X5 _' [
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;3 f% ]9 F7 I5 W/ Y: _
* Y7 f2 f0 p$ d4 X; e, h
// oˉè* ??à? ) f- c& {6 U6 K, q
pLight->Specular.r = 1.0f;
+ a" m4 d7 \+ X D- j pLight->Specular.g = 1.0f;
7 _8 L2 V9 h8 M: v) t: V pLight->Specular.b = 1.0f;
4 a7 G) F. u V. R0 p' R // àü?? oˉè*
) w6 |% q7 R2 @; p9 b! u. u0 V1 n pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
# e6 g1 V9 k- z! I7 j pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
$ N) [% Z5 l3 }7 _. T' U8 y pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;+ C( L" p: n n5 v( z5 Z
" ?- H+ X1 F, F4 p+ X4 J# H' r
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.. J$ |, y: j6 N: ?' l/ E! @1 L* Y
{
, f1 j6 V& S0 i& C, X! F) j pLight->Diffuse.r *= 0.6f;
8 \: o0 i6 C' Y* a8 H n8 L pLight->Diffuse.g *= 0.6f;
0 s; \5 f9 i n! W# U pLight->Diffuse.b *= 0.6f;' s4 E1 T! U4 i! a8 K& g* m) e
pLight->Ambient.r *= 0.7f;
. J8 L( Y& Y( `* f7 X pLight->Ambient.g *= 0.7f;
6 ~& x: ` Q0 t9 K+ P pLight->Ambient.b *= 0.7f;
( g2 M6 P4 r U) v( I3 _ }
K# M1 `# x1 C6 P0 Q; D; P1 U3 l# e3 {' |/ |" `
#if __VER >= 15 // __BS_CHANGING_ENVIR
+ N# W0 A. T* g6 s1 m7 g if( g_pPlayer )
. Q( N: K5 Z8 p: }# E HookUpdateLight( pLight );# U1 S7 B; z8 ~
#endif
1 F/ ^/ P. ?/ H& k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% N- }( E F. l7 S( i2 f2 s9 p
E7 F; C. A9 O/ M pLight->Diffuse.r += 0.1f;
& B/ ~$ U3 _4 d9 [$ X pLight->Diffuse.g += 0.1f;3 J' R$ P7 l6 w1 j5 H
pLight->Diffuse.b += 0.1f;& |/ r# I1 `3 J5 g1 y, f
// oˉè* ??à?
9 j* f; g5 _% y; A* ?- F0 w0 V& ^ pLight->Specular.r = 2.0f;
4 p; v8 [0 u' C3 A7 C4 o6 g. _ pLight->Specular.g = 2.0f;9 S- y+ |& U4 b* I& p4 l) l2 G
pLight->Specular.b = 2.0f;5 W) d: j; A, p5 w
// á?oˉ
; w$ S/ E4 I6 B# T1 p8 i* j pLight->Ambient.r *= 0.9f;
6 o- M; h A# e2 M' Q! n2 T pLight->Ambient.g *= 0.9f;
1 U" a: T% t* e" g; d$ i3 c7 L pLight->Ambient.b *= 0.9f;6 `8 [5 u; k3 t' w! h
2 b( x1 T: N3 z+ \/ o memcpy( &m_light, pLight, sizeof( m_light ) );
4 [" Z2 i, m$ c, A / q% \1 `/ c8 s. O2 ~5 ?/ D
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
2 A( Q' g: _& f' X% ~, s pLight->Appear( m_pd3dDevice, TRUE );
( y) `5 D3 K( v 6 k. c- O8 r$ G* \' X
DWORD dwR, dwG, dwB;
2 j% z$ t& V2 M dwR = (DWORD)( pLight->Ambient.r * 255 );
) U" e" j$ W9 v- Q* K dwG = (DWORD)( pLight->Ambient.g * 255 );
0 N& A0 U( w- s3 a! I dwB = (DWORD)( pLight->Ambient.b * 255 );1 S& }: Z: [8 g% ~, N& r
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ e- L9 a. q t3 y1 S$ j7 S- Z
}
; k( m1 s4 s1 |8 m* q5 ` }
i0 S1 h" c$ j5 X6 d8 I# R5 v$ W$ `2 b else
$ ^( l( {8 Z9 f- t* b {
& o8 _! \' y/ q4 h if( pLight )
; I* i% I, l! B4 U( e( ~5 `+ c, U/ b {. o' b/ @0 E. n$ z! y
: s* e; B( _8 t# f
int nHour = 8, nMin = 0;# Z2 ?1 k1 l8 O2 C2 G
#ifdef __CLIENT9 h5 ]7 ~* X- k# @6 Y# X9 g5 P1 X
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
! Y: e0 h( |' G* n( c* \2 U7 r* _- } nHour = g_GameTimer.m_nHour;/ t8 U, [0 `% ^$ n
nMin = g_GameTimer.m_nMin ;
; J* s2 ?( _; _ #else
, f& d' b4 g4 v1 L) Y" w0 P // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.5 r- n! R" v2 N# v! O/ c- |
if( m_nLightType == 1 ). n, c, Q, S7 k! n, {6 }
nHour = m_nLightHour;* }! X+ {6 C+ n* f$ D7 s j
#endif" u3 t$ k9 ]9 O/ U
nHour--;$ K+ ? |) ~* ]) E0 Z
if( nHour < 0 ) nHour = 0;
+ G; E |+ Z0 f5 G' T if( nHour > 23 ) nHour = 23;+ L2 ^+ D# g) L0 K
/ R1 M H, e: B) I# M; n* M+ D
//if( m_bFixedHour )
2 o3 i3 t F! y* w9 p+ x1 O& Q // nHour = m_nFixedHour, nMin = 0;
' J; v" }! m2 z7 r/ L LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
4 V& T: S& R! g; J LIGHTCOLOR lightColor = m_k24Light[ nHour ];
% w0 ~' q* i$ s+ ^( [
& ]( a( S9 }$ e4 ~5 D: S //m_lightColor = lightColorPrv;
" r& o7 y! s' b$ b. S$ s# Z lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
. S: c' r M4 v+ m8 V) M9 J lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;5 D. Y0 A2 [% M) P3 P1 W- D
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
% B) }6 \ t7 |* @: B/ t lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;- I8 ^' Z. `; l; Q& Z3 T
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
0 ?- N" Y9 ]' }0 J9 m( c! W lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;; y1 F0 Y0 J$ }1 m6 C7 {0 A
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)2 g9 O9 ?" Z$ o' N4 v
0 S2 B# C* i$ d+ c* |+ w3 a1 M // à??μ oˉè*
4 V s8 l+ e0 ~3 d7 T B pLight->Diffuse.r = lightColorPrv.r1;
; y0 i% B' Q& |# q7 l5 g8 P( m pLight->Diffuse.g = lightColorPrv.g1;( k) z R4 }) g. |9 e# J3 j
pLight->Diffuse.b = lightColorPrv.b1;2 ], r' q2 v* }* B
// oˉè* ??à? , s* |' l9 Z4 J4 x3 q1 a
pLight->Specular.r = 1.0f;8 L3 ^ w! \; I; _ ]4 a
pLight->Specular.g = 1.0f;4 |8 S8 ^/ V& E2 y2 [
pLight->Specular.b = 1.0f;
# P2 E2 o/ f9 W. e% h+ R4 d/ w // àü?? oˉè*
# C3 Z- x* u, |( K pLight->Ambient.r = lightColorPrv.r2;
% v x; I* ~! \: c pLight->Ambient.g = lightColorPrv.g2;- M2 O5 h- S; p$ C% A- W4 E
pLight->Ambient.b = lightColorPrv.b2;2 l" s. N! @. |# U, K
6 P/ u: b5 G, s$ v' d
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% }& T' K0 s+ Q0 T/ v5 A& z
{' y; ]9 S8 ^6 U
pLight->Diffuse.r *= 0.6f;
1 V1 P+ F3 E/ s pLight->Diffuse.g *= 0.6f;' y2 l7 B% n' i* c1 T$ B
pLight->Diffuse.b *= 0.6f;
5 Z1 g) Z* d3 G% x$ B6 A pLight->Ambient.r *= 0.7f;
$ j. s3 _! v6 |+ |& U- T9 ` pLight->Ambient.g *= 0.7f;- }. a$ q* B7 h. [! ?
pLight->Ambient.b *= 0.7f;) E/ T, r% {0 j3 H% q4 H! o
} u6 m4 v9 x. @ `2 ?' r
# D7 m& L. G# ]# {* d! g#if __VER >= 15 // __BS_CHANGING_ENVIR+ ?- S, [; P2 p" S
if( g_pPlayer )/ h5 a& _' P9 N# J) e) F% |
HookUpdateLight( pLight ); " A) u4 O9 ^2 B+ o7 y
#endif
9 Z3 o3 \) D: Q& V) y R5 [2 d a memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 j- a5 G( {( F% q8 y: _6 G5 w1 @1 Q b# Q. Y; K, v
#ifdef __YENV! U% w# c7 w8 o* H2 |6 o8 ]
pLight->Diffuse.r *= 1.1f;
3 \: G. Z1 ^4 E9 y. {. M9 C pLight->Diffuse.g *= 1.1f;9 M4 q9 n% ~5 E! f8 t' y
pLight->Diffuse.b *= 1.1f;
}! A( v3 B O8 w& u+ X0 A // oˉè* ??à? * g; h8 _2 Z8 P: a
pLight->Specular.r = 2.0f;
, {3 p" ?: d5 F# m" w pLight->Specular.g = 2.0f;1 r0 d. Y2 \ \$ |
pLight->Specular.b = 2.0f;9 ^1 Z9 h5 E9 j- c6 Q
// á?oˉ
. v8 d4 O6 b# L2 W! u- p3 B+ ] pLight->Ambient.r *= 1.0f;
1 x; n" N, E% z: v" [5 k6 j. a4 @ pLight->Ambient.g *= 1.0f;
) c* z& ]% R$ B G3 c1 F! [ pLight->Ambient.b *= 1.0f;6 I5 z( O; T l# B7 H+ J& u
#else //__YENV2 k9 f; m" R/ B3 T5 c, O
pLight->Diffuse.r *= 1.1f;3 B9 f0 V! X7 |5 F! O- s" ?
pLight->Diffuse.g *= 1.1f;
9 \9 Z ^. |; y( j: \" Q. Q pLight->Diffuse.b *= 1.1f;) L. f6 @3 g, i, U
// oˉè* ??à? % H; Z/ f/ r( g' [9 w+ e" k
pLight->Specular.r = 2.0f;
; l! i5 j& f1 @+ w6 ^8 k9 D( r pLight->Specular.g = 2.0f;
0 u7 w' H) q2 j& Y pLight->Specular.b = 2.0f;
; v4 H/ P) K+ O& h // á?oˉ
4 i. C0 e( l& t. ]+ `# e: i/ E4 f/ ~ pLight->Ambient.r *= 0.9f;# b/ u/ W* k, V
pLight->Ambient.g *= 0.9f;
: ]3 `, i, T3 @ k' P3 D pLight->Ambient.b *= 0.9f;( l; \8 B5 d% X- T
#endif //__YENV
% j4 E2 p) Z3 Y2 t
4 y5 S: V1 W8 K2 H/ E, d8 n memcpy( &m_light, pLight, sizeof( m_light ) );
3 t3 _% A3 v: ?( C% R6 m
" a8 I( n& T8 r. ]; T D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
4 Y0 N/ t4 S; c# Y9 `2 |% ^! Q D3DXMATRIX matTemp;
$ @* I* M/ j! H static const float CONS_VAL = 3.1415926f / 180.f;
+ @/ |, g2 f9 g' c, P7 p
3 y N0 L8 B$ d2 m5 F& y* F D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);; h# X) L. u0 ^+ O( y, I% c) Z+ @
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
? i S& C/ x5 D# m pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ! b. b2 P+ u% S
pLight->Appear( m_pd3dDevice, TRUE );. N* F O% S* P$ c8 ?
4 Y" g$ e! _; m7 q0 n M // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! N1 w( g3 N3 f2 u" u+ t
// D3DXVec3Normalize(&(vecSun),&(vecSun));
3 @! k$ \0 {. |& O4 N# A4 r/ _ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); t4 y) s: ~2 P+ Y5 t8 x" c% e: @ S
: v8 R% I2 k7 Z DWORD dwR, dwG, dwB;/ a1 @ S' {( m5 w I
dwR = (DWORD)( pLight->Ambient.r * 255 );4 r! B- q! c% ^# ?! x3 s* z% q2 d
dwG = (DWORD)( pLight->Ambient.g * 255 );
0 `& x% i1 K1 G5 j- a dwB = (DWORD)( pLight->Ambient.b * 255 );
/ Q$ l7 r4 Y0 K4 M$ | dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); " M5 ~! Y [8 m% Q% [( b
}; p1 v5 @# N# Y8 b5 O8 b3 `: u
}
k4 B5 [4 g$ ]6 c8 d
6 | [) [+ y8 Z0 s, i m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );% @6 ]& J+ L! g [
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) );, T- b6 ~) w: D Y+ n
::SetLight( bLight );; W/ w7 h) a* o y- W
0 ]! p$ n# Y, |' H+ G // ±ao? ?D?í???ó á¤à? : n/ v5 ?+ T: g% d+ }3 Q
m_pd3dDevice->SetMaterial( &m_baseMaterial );( m' k. q0 C6 k0 }
& e9 X7 ~( r* x s
#endif // not WORLDSERVER( G) w; o' Y3 {: Z( R3 e3 E4 S0 [, N
}$ W0 e* K% M% U. |7 p7 A3 y% _' f
并更换' h6 `, L" O5 \# X( }
Code:
6 b1 u( O! X+ d. M" P__FLYFF_INITPAGE_EXT
/ s& D5 Q0 e5 {" O* g* Q* Q5 l定义
0 l) ^1 h& w1 a# {, v0 _' }: g0 b7 z# u* Q9 f( e; v) j, g6 K
/ u7 C) V) z9 a8 c k2 q: }/ `
6 c& ~3 j& I/ L
9 a( V, O9 Q1 c: G$ P
现在终于删除我的狗屁加速...1 n( f/ P: s% c; K0 }' c2 q1 |( U
+ j5 D# c3 J `; W) I- W
( M- N* m) ^6 u
/ F6 y( \# T' f2 S7 [7 ~% |
|
|