|
|
食品车:- b/ r7 g% R- W
尾翼:) ]; s) P3 t5 N4 Z3 L
+ G A: t9 Z6 J" P. s代码:9 L6 x7 d. a9 F6 b* M
CWndAutoFood::CWndAutoFood()
. a4 S, Q0 V' Z; Y4 {, t$ w7 k6 Y' D{" n# ~2 o* F% i/ S4 z
m_pItemElem = NULL;3 p- s( v& X5 v, T: i( P% v
m_pTexture = NULL;
+ J- Q& f( y p bStart = FALSE;" F a+ @9 d# \% P2 U; y* d( T2 t
}* f3 g2 T2 a$ z" x
! [3 u% o: c" t
CWndAutoFood::~CWndAutoFood()6 q* l+ Q2 E3 ]1 B) A- x$ j6 p
{& h m4 m3 E( `% Z) T
AfxMessageBox( "AutoFood ist gestorben " );
; b* y% [+ Z; n, l5 W6 R" r}5 Z1 H1 T- Q' I; n+ z. K9 t1 q
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ). h, p' ?- H) K, H! B* \3 W
{
; z9 h5 k2 S- k& h- D( ^ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );8 X3 T5 H# i! e' l7 T/ g, m6 c
}
0 s" O, ? g- ?3 W+ E( Q, i! u8 Z" e1 e/ C4 d4 E- g
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ): A3 b+ \' Z6 `' h
{
) S4 m! A( o0 K; r" g4 a) C LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% f8 B( L( p) [# [( E3 L
CRect rect = pWndCtrl->rect;
' n7 ?/ O$ B: q7 ~. d8 {9 q& | if( rect && rect.PtInRect( point ) )6 {, U4 p" j; }- _
{
% y& _$ C$ P0 A% P; B& ^6 A3 c8 G CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
% Y- a5 w1 L& C. y x if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )5 x: i; y+ a$ D) p' S' d9 l- g
{
3 P+ {2 b5 n" r% J5 ^ if( m_pItemElem )- w, H, E/ z6 Z- f
{
6 Y% e" j$ k( P: b" d m_pItemElem = NULL;
& h+ i+ o" `2 O% O9 M" ] }, F! _+ r$ C9 Z0 ]$ L6 m9 `
m_pItemElem = pItemElem;
9 ^0 x( p! s2 P! V) U/ } m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
' @- w V2 v; T2 \' x! B. ~' c& v4 n5 { }else{
, s# a0 w" ^: Q- B- Q# Y, Y SetForbid( TRUE );
! _6 p5 P+ H/ b$ T }
/ Z# ^# j' @/ m) K$ b6 E9 C }else{5 {2 Q' N+ Y O- A" I
SetForbid( TRUE );7 z* V0 h& P/ E$ r
}
. [+ T2 G. W! }: @, s& ] return TRUE;6 P! `/ ~# V, X
}' Y- W# n C3 n, b7 w, O3 @+ V
+ m9 T' d N, S2 q. w; x, b
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
& C. |) D) l ~% d H; m0 B' u{
" M* y# b8 L6 I" O switch( nID )
x" S* ]% V9 [0 {$ C {
5 d# F, I; V {7 d1 d/ ]- X" i. d8 }* } case WIDC_BUTTON3:
( u8 y" S2 M: ]1 F; O5 ]: |6 ` {
" s& }1 n% H+ o3 { bStart = TRUE;
6 I l# Z+ G5 w6 P break;6 e+ V1 P. n) F
}
* d7 m" X2 k) \* }3 h. M" B6 a4 a# N case WIDC_BUTTON4:0 i/ G# n, {7 O; d' x
{
- K, K% b. s4 w: |: x( Q bStart = FALSE;. a5 q! g% R5 p3 }3 D
break;4 ` U% n7 S' _9 J
}
6 E4 [6 M# U$ n: H! l# J0 ` }
" U% C0 Q9 [ p" ` return CWndNeuz::OnChildNotify( message, nID, pLResult );+ g% X. \2 v X; L5 R
} % ^5 U" C- G3 v" G# i% A+ d
void CWndAutoFood::OnDraw( C2DRender* p2DRender )7 x" X7 S- M. X, b
{
; ?: @3 @: [, d! U' \( t CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );+ [1 d- F* o& c
if( bStart || !m_pItemElem )
) ?8 R& m' c& {; j+ t4 _+ V {: [" M" d5 ]' J+ R- \/ ~0 Q; m
pBtn->EnableWindow( FALSE );
8 l$ d& D8 z9 d* T2 ` }else
0 A' ^. I) i, p4 G1 m pBtn->EnableWindow( TRUE );
! o- w, K8 S! A+ v6 O if( m_pTexture )8 P+ H/ U: m w! W
{
9 K% r% J: x' }! I$ N LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
9 h ~9 H ~# F: [9 b0 c( v, C if( wndCtrl && wndCtrl->rect )+ V* j* d0 S5 T
{# X5 F4 s) V; _5 @6 z+ S
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );- U$ X6 o4 Y+ V; |3 F- l
}
, J P, v. I8 q2 | }
+ O @% L, x* a7 T}2 t% e( q7 V5 j7 p0 s" r1 k
! T" P! J$ p1 p" |# l- N! i# U4 kBOOL CWndAutoFood: rocess()0 F* w) g5 t5 P7 `
{5 e* H P" \& a, R0 U: o6 P, u
if( bStart ): ]2 |# f- c" }1 j1 V& a
{9 o$ W2 V# P S3 R
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
* l& \8 y/ n( Y& L {+ z, Z& R) G0 c9 W" v) F1 }
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )- T4 c+ c: ~) N* Q' s% A# v8 K
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );! n$ b8 `5 @/ G7 o1 \2 r% A
}else{
' D U+ y4 u5 g( ? bStart = FALSE;
$ L3 l: d2 \0 o5 m m_pItemElem = NULL;
. s3 p3 ~% [0 s9 m6 s; K$ B# M% X( u% j }
1 |! z& O- |3 } }
5 B- _' H: D: y" m. k! N return TRUE;
9 J, e9 C0 Y' V$ `' \) f4 n7 }* h}
, \7 X( L8 o3 Q) v7 i0 `/ P0 G$ T/ B9 C" X7 `; r1 K. W4 f
登录视频废话:
9 ?8 p: X. ?* U, a6 F, n尾翼:
* ]: S* ]0 ]0 t" ]7 O6 ]8 k! u3 B/ W) e. s) Q: m1 D" s$ A5 E
代码:
6 B7 F- [' i5 l) G5 O. A6 r9 v8 R5 i5 g' K& i$ U
void CWorld::SetLight( BOOL bLight ); v6 V1 I1 a/ S2 ?7 S
durch1 E0 x* p# y' q7 w8 m9 m
Code:
6 P6 ~, M' r- w; v( s! y: O' r( D) Yvoid CWorld::SetLight( BOOL bLight )- x$ U0 |; V2 M9 ?$ R7 a$ f
{
+ r9 J: l# G& ?# J Z6 L' b. k! D //ACE("SetLight %d \n", bLight);$ K, |7 Y; z. d* Q, \$ f& y- Y
3 |' h% [; [1 M# e" `# G
#ifndef __WORLDSERVER
- |4 {9 a- o0 _# J' m8 E. C7 i+ u DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);2 J4 {8 H3 l G
CLight* pLight = NULL;
, r. d7 N9 Y: Y+ K3 F1 [: g% e5 I' b; z' P, S4 ]* Z- n
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );8 [5 i% x( l" k6 D1 E0 p
9 T* g8 g" B6 w% X( e4 k$ e
pLight = GetLight( "direction" );7 ?1 f/ m0 O9 F0 t: X7 p& e1 X
4 E* N7 f9 ^; i; }7 Y#if __VER >= 15 // __BS_CHANGING_ENVIR
1 G# d1 t0 b' k* j# q% X if( g_pPlayer ){& v2 ]8 L3 m+ [2 ?" r. r
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );( e; U4 ? P+ P# U6 Y% y
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
0 s; s; k( F; p {5 b2 Q k* g# E) C, S, _6 r$ X
if( pLight )3 X7 h! G- G- K: y c# l# }
{! a6 C! Z" L( Q }6 d' u
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
4 L" C5 R6 r: o' t; `" s2 e pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
: o' A* c. h( Z: w2 G! t. [ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];; u M6 h! L& @, x7 r
' e [/ f9 s$ p% G3 x9 S
pLight->Specular.r = 2.0f;
5 ]1 ~3 V9 u; M) ?& w) O pLight->Specular.g = 2.0f;
: f7 o( S0 y! e& b pLight->Specular.b = 2.0f;
$ \& m4 S5 R- G. U2 I, S- {# \! g( j Z5 O% D6 l) y) @5 u1 P
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];% Y# c, Z5 A: y3 V& m
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];* P( m9 E" T [0 w
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
& Q" k2 H% |) C* O. L! g
1 @( m: s, F1 l4 B& F$ h# [& K HookUpdateLight( pLight ); # b6 y# W/ h T
7 N( _" E4 b8 C1 f% _ ~1 D2 w. R memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 N v+ ]& z! H$ a3 C9 U9 o" S + l; \: [3 n; v; W
pLight->Diffuse.r *= 1.2f;6 r% c* R+ t9 y- A' q# Y
pLight->Diffuse.g *= 1.2f;; }: X3 [9 d0 j4 y2 ]; ]
pLight->Diffuse.b *= 1.2f;4 y# \) @/ G2 }' }$ A: P. _
2 k, _% r2 j6 T! C7 m& p pLight->Ambient.r *= 0.8f;
1 g0 ^# V0 H% P/ E/ S pLight->Ambient.g *= 0.8f;
, ?6 l I. V- ~! w$ L: r8 k pLight->Ambient.b *= 0.8f;1 L" h0 [" P1 t
. K u- L' w4 d0 O' x( G6 Y memcpy( &m_light, pLight, sizeof( m_light ) );/ B7 W/ [. l8 w/ R( F
1 N, f2 O/ Z/ n8 H) l D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);9 d4 @* U0 p- A
D3DXVec3Normalize(&(vecSun),&(vecSun));! A+ Y# U' D" k0 Y8 B) m
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
! I+ j, h, O1 \$ R$ X pLight->Appear( m_pd3dDevice, TRUE );
9 ?3 ^1 p2 Q# B X: y& F " W2 ?1 U7 o) ]- B
DWORD dwR, dwG, dwB;
' [- ]' E. t/ X% V. N* _2 J6 r dwR = (DWORD)( pLight->Ambient.r * 255 );2 X! T2 t, @( B' O) k' I' ~1 ~
dwG = (DWORD)( pLight->Ambient.g * 255 );% `2 R1 \0 b- j
dwB = (DWORD)( pLight->Ambient.b * 255 ); Q2 c3 L B$ t$ m- }8 }/ ?
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); J0 l3 G: _8 C$ [- m1 ~7 Q7 p
}
* @ a; x Y; X$ ~ }
* |2 c( A) @4 u8 k) A" K) c/ F+ d. K }
" b+ x- c8 i' C- y/ b5 V else
" {3 V7 p9 Y i e6 c4 h! Z#endif 5 u3 W3 r' Q. l9 ]. m6 R& d
6 Y5 T: t6 z m if( m_bIsIndoor ) K5 _7 z5 c# q' `7 p9 S- H
{2 [$ P9 R2 M' F% A4 m9 e. M6 ]
if( pLight )
9 T1 }/ ?1 Y. Y! W2 a {
& o( r- S- p, l" ]. x- z // à??μ oˉè* : l2 ^* Z! D/ W# t, g
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;& Q8 i3 @6 y( i; A# a, _
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
' Q4 g: g. O' m% L1 H pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
9 f, O1 |$ j7 v% T; L+ q
: Q X l! P! L* d" k0 x // oˉè* ??à? 6 p. s' c& W% S! q& q% E" j
pLight->Specular.r = 1.0f;0 b, a; L( {0 G2 L5 d& J
pLight->Specular.g = 1.0f;2 M6 L$ _6 w, u& `2 A5 `, s4 i* {
pLight->Specular.b = 1.0f;
6 i; x- h% s8 k5 E // àü?? oˉè*
6 l- X& ]! S' j G8 Q' B, I pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
+ f7 A ~# f4 Q! |8 C% W pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ Y5 Q3 |7 V5 \/ J
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
5 ^" ~8 B1 _, U; r9 v$ Z" i2 R6 M, T) P4 v& ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" y1 ` l: o* K4 F& g5 s1 H {
k0 B% f3 P) r% T, J( y; d: F pLight->Diffuse.r *= 0.6f;9 P% U- { u* I
pLight->Diffuse.g *= 0.6f;( b" n- o/ t9 r
pLight->Diffuse.b *= 0.6f;* r$ I4 Y2 b s: Z t- A K
pLight->Ambient.r *= 0.7f;/ f" ?7 Y7 N& l; Z9 B
pLight->Ambient.g *= 0.7f;
) W$ ~7 `1 s0 @" ?* O pLight->Ambient.b *= 0.7f;- d$ g5 z( \) P) q; \5 ^
}
9 T* @6 ^1 \. Y- d9 r; @2 o. D1 L6 \4 j
#if __VER >= 15 // __BS_CHANGING_ENVIR
* X( Q7 \' E! Q4 f- g: z if( g_pPlayer )
# ~" H9 E: v6 ]0 k: Y$ X# G4 w HookUpdateLight( pLight );
7 Y6 E- I$ D* i4 [! v/ w#endif( |; h( H0 O' f7 Z0 D) o! ~) q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 Q, R8 n1 c6 d7 ?2 \# q' p. K3 n* `" n0 l* X
pLight->Diffuse.r += 0.1f;
8 F; f" p, P# y, N/ ~8 t pLight->Diffuse.g += 0.1f;
( J7 z0 g! M1 Y- P pLight->Diffuse.b += 0.1f;
( W- F6 G: f. l* ~ // oˉè* ??à? 4 F6 F# B8 A8 w: _' G5 d
pLight->Specular.r = 2.0f;
& Y- K$ d$ Y0 D/ g pLight->Specular.g = 2.0f;8 U' k4 a+ [$ K! X
pLight->Specular.b = 2.0f;) n& P4 s" z+ l' h4 ~! F
// á?oˉ ! [# j0 d4 ^" K8 q
pLight->Ambient.r *= 0.9f;
! j$ e; t) m0 P* q pLight->Ambient.g *= 0.9f;
5 W q5 z! }- K \# U pLight->Ambient.b *= 0.9f;
6 o. Y* g* y) g: @) d, X+ w9 t. ^
2 i( N7 X C* o5 @; v% x; t, i0 L memcpy( &m_light, pLight, sizeof( m_light ) );5 _" u0 \6 L! A, _1 H" Z$ h9 B
/ Q: i$ i$ t: ]( k
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );9 S8 c g/ L7 D
pLight->Appear( m_pd3dDevice, TRUE );. e* q6 r0 p* f! j1 y
) Q8 j* o. A7 ~" e$ J
DWORD dwR, dwG, dwB;
. S* `2 C7 X7 q# _9 K, Q dwR = (DWORD)( pLight->Ambient.r * 255 );
* C. W( o8 {) e1 p# ~* M5 d dwG = (DWORD)( pLight->Ambient.g * 255 );
+ B9 f7 K/ L% Z0 d% s0 b1 O dwB = (DWORD)( pLight->Ambient.b * 255 );& r$ n3 Z ?8 c8 p+ B
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 o4 S9 x* P8 J+ F
}
, R5 Y; N5 w% D1 X- U) p( D: x6 g9 x }3 X' k) u; [" v: t# x* w7 }5 a
else
1 B, }( f! |/ B! e4 { {, K& p9 }1 q1 ]
if( pLight )1 _/ g2 A1 M1 b8 W' ?. `
{
`$ M5 Q F) f, | ; l5 | s& @/ J8 F8 I9 |6 U9 k3 t
int nHour = 8, nMin = 0;, q: X5 D/ h7 {- ^
#ifdef __CLIENT' X9 [" }" {) e" p
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. N! K% g; N' C7 w4 f ~. d* x
nHour = g_GameTimer.m_nHour;$ _! X" }2 Z: \4 T6 i' S
nMin = g_GameTimer.m_nMin ;
7 c: n3 e- w. m$ V8 [ #else
$ B5 o) z; W9 a" d- ` o4 U // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.6 U, k; ]5 g$ R5 {
if( m_nLightType == 1 )
6 P; H% z6 l& w5 p nHour = m_nLightHour; f- m2 @7 h6 W3 u) a) g
#endif
1 C+ a( j* D }1 Z) y4 E nHour--;
+ B* s" R5 F0 ^5 x& \6 \ if( nHour < 0 ) nHour = 0;* ]% g3 |, z- T& d; B
if( nHour > 23 ) nHour = 23;8 m9 z+ J6 B1 K* q3 w: ]/ S. m
+ U, S. b9 t1 L: @7 j" ^, x //if( m_bFixedHour )! S8 T* F7 i5 m3 Y- t* K+ G7 N
// nHour = m_nFixedHour, nMin = 0;
9 h. p: B# G f2 `: e, B LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];9 W9 U6 r' V/ v# _
LIGHTCOLOR lightColor = m_k24Light[ nHour ];( ^8 ^8 v2 _. l& R& m' v8 b U8 e, C
; g- v$ `* Q! K" M9 I% W& A //m_lightColor = lightColorPrv;0 d9 o$ m v! K4 K5 Y
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 A9 i4 B2 ]7 l w. S! C lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;9 E3 @5 Y& Z( x" _+ M! Y
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
( J0 y) O1 Z& s( y+ a4 W1 o1 B lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 y6 A6 k* ^" y; F3 H( a7 W Z
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;& Z' D) W) w1 t7 K- Z {9 }
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
G% l/ v( {: y# N" `0 g // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)! ?8 `1 m. `5 d$ v# n+ j8 Q4 D9 w
1 g; J& F. `6 z; m // à??μ oˉè*
b) l5 I! a1 H2 W# f pLight->Diffuse.r = lightColorPrv.r1;" X) C W7 l4 F4 K; t; L$ v
pLight->Diffuse.g = lightColorPrv.g1;
: O4 s u! z9 s pLight->Diffuse.b = lightColorPrv.b1;
" h4 g, _2 B. Q6 q u4 S N // oˉè* ??à?
7 e3 A, W+ k& [- X# h4 r pLight->Specular.r = 1.0f;8 T. K" P$ Z+ N$ H" O* e2 _
pLight->Specular.g = 1.0f;0 h; |. u# a( H& ^6 X
pLight->Specular.b = 1.0f;' i- |% y6 }* U1 x" }- {
// àü?? oˉè*
# M. U" K! |4 [ pLight->Ambient.r = lightColorPrv.r2;- R m' M0 s: Y% t9 q7 g
pLight->Ambient.g = lightColorPrv.g2;, W, O6 _; S) I p# d
pLight->Ambient.b = lightColorPrv.b2;
# g) X5 J: `) F! G0 W z9 M7 C
( w1 w0 S6 z# P. G( ?( H if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.1 d" _- J" g$ H6 {5 T/ Z
{
; \1 z3 u0 J0 J0 ? pLight->Diffuse.r *= 0.6f;7 n3 S' ]% n% Q4 R
pLight->Diffuse.g *= 0.6f;: |: @- n$ J" }4 o
pLight->Diffuse.b *= 0.6f;6 [! ^; ?8 C/ t1 N
pLight->Ambient.r *= 0.7f;
3 P. {) n( D! r) V8 Y$ t% Z: O& H pLight->Ambient.g *= 0.7f;
& W- ?: q& ^9 Y; c% Y4 k pLight->Ambient.b *= 0.7f;
6 |$ Q' E' [5 \$ @ }/ i c6 u& D* e& [ A
( E/ O- L. z4 I# W" P4 }8 ~* B8 I
#if __VER >= 15 // __BS_CHANGING_ENVIR
# Y( d- p$ K+ t' a) g9 i5 L if( g_pPlayer )
+ Y0 z7 m+ g# P5 }8 h HookUpdateLight( pLight ); ) D6 A$ _# |6 D d; Y4 L
#endif0 q6 o% ~3 r @
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. Y5 C; F2 m; y" I- @+ Y; m
; P# [" Z& m* I
#ifdef __YENV
+ R3 \; }! y9 `) |/ ~: R pLight->Diffuse.r *= 1.1f;
! q! L9 c. {% C, b8 |2 q) }' t pLight->Diffuse.g *= 1.1f;
! F6 P; k6 c& s' |5 G4 \ pLight->Diffuse.b *= 1.1f;
0 B9 G: P1 l6 f& w // oˉè* ??à? ; x* W! `. \+ {1 W3 N9 k6 z: @
pLight->Specular.r = 2.0f;
$ @, \+ A3 b# @ pLight->Specular.g = 2.0f;, M5 ?2 [! F" v( Y3 D
pLight->Specular.b = 2.0f;
! G" F- {+ C% l0 i# |$ E // á?oˉ
4 n/ D1 U4 a$ g1 C pLight->Ambient.r *= 1.0f;
$ V( I8 W4 S# _/ Q. U- | pLight->Ambient.g *= 1.0f;' G; S9 N" g/ |& K, J0 u
pLight->Ambient.b *= 1.0f;7 e. z/ A# U0 C) y0 \& W% O# }
#else //__YENV- |4 _- b9 \2 e8 c: t2 J
pLight->Diffuse.r *= 1.1f;
( A* U6 M0 B/ y% G2 F+ I7 T pLight->Diffuse.g *= 1.1f;# A8 R7 B/ x# q1 G/ X
pLight->Diffuse.b *= 1.1f;/ v7 o( O6 d+ ~+ C( G" L& R/ o% ~
// oˉè* ??à? 0 c7 Q' O- a3 E( g# p: p
pLight->Specular.r = 2.0f;
& @5 M. @2 Y& h m7 W& \& K- R! T pLight->Specular.g = 2.0f;1 l/ v9 N5 `* _+ @
pLight->Specular.b = 2.0f;
' u9 r5 q/ b7 Y; p- k7 c1 k // á?oˉ
" e9 v+ u* D) X: G0 `( g8 b( S, p pLight->Ambient.r *= 0.9f;6 J8 N5 c6 w6 V' Q! _
pLight->Ambient.g *= 0.9f;4 T3 h' |- I* {: m
pLight->Ambient.b *= 0.9f;+ B' V5 j$ b6 O) m0 m
#endif //__YENV
* {/ D5 H: R& \8 e& e6 X # y2 x' Z* l4 N" N) x
memcpy( &m_light, pLight, sizeof( m_light ) );; r7 Z( @3 q6 a/ w7 w
$ H* o# I7 P% y9 k* w+ J1 d D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);1 ~1 y) @( n3 B7 l
D3DXMATRIX matTemp;
0 |+ a9 @. k: \% F static const float CONS_VAL = 3.1415926f / 180.f;
4 W/ N- M3 K& _
3 K/ t& u) V: q. p; b& S D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
8 E4 ?# Z" I) G4 G9 m2 k5 L2 \ D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);3 h& q- j7 n3 f1 p/ Y' ?
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - |) o8 R, R9 l3 E6 c/ c2 ?& K2 c
pLight->Appear( m_pd3dDevice, TRUE );& u/ o0 m1 N+ V- K! } v
8 c% M, } e; q) V1 U // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
3 S* g4 r3 B0 Q. l // D3DXVec3Normalize(&(vecSun),&(vecSun)); y$ `% e' y% @6 }- P( g
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 @/ p3 s+ L2 C: {. q& ^, e1 g2 e2 \; B" K. H
DWORD dwR, dwG, dwB;8 a" z3 ]) f3 ?* _/ m
dwR = (DWORD)( pLight->Ambient.r * 255 );6 G5 g0 O2 R8 s. z+ W. ]
dwG = (DWORD)( pLight->Ambient.g * 255 );
% Z; o I% Y: u( N6 w dwB = (DWORD)( pLight->Ambient.b * 255 );
; K$ k) S% @- _0 F dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); / H& A! P$ y i
}
4 E2 W/ b4 q! K! K7 I }# Y; i4 g; \, w: q
% E/ n) H# y2 K( {) [ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );& [# e" m- H9 G4 h- i0 }" K' n( T
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) );6 J$ B! ?% |8 h9 w2 \6 s5 t
::SetLight( bLight );
0 J$ S; t# O5 [% O
% y1 }( F J5 D9 n // ±ao? ?D?í???ó á¤à? ; _4 v7 G3 z. b
m_pd3dDevice->SetMaterial( &m_baseMaterial );
, `" f7 q( G2 ~: @5 x/ m2 g2 s% X * Y. [+ I$ f) k! K0 q7 p% H/ b' E
#endif // not WORLDSERVER7 Y& F: D# ? x1 e: H) b: W j
}" x( Y9 ?3 k' E1 Q
并更换
3 c- V1 c2 T5 s1 ]; NCode:+ a, `% z0 B- Q$ E5 ^6 v
__FLYFF_INITPAGE_EXT
# e; O6 v/ t8 w定义
: |9 C. Z+ B: U- [. {3 }' A" Q. j: e4 ?# O7 T
/ I& P3 s" h) K8 [
8 e& N, g% w( u$ r% X y+ j% X5 ]% B
& |$ [3 T. g4 {8 g, J现在终于删除我的狗屁加速...3 B! G z; G! ?
+ r4 Q# t# N. @
; w1 k9 i) z8 G( _3 t) q) S% u: A/ _; u( z+ {
|
|