|
|
食品车:
( a3 X. B" S+ r3 [# T3 V- H尾翼:
# `7 P( | C1 G% J' X s
( l- b" t+ n6 X1 E8 L6 w代码:
9 Z5 o1 {$ M5 y3 wCWndAutoFood::CWndAutoFood()
5 G7 e7 p: \0 X. ~8 b{
/ ~* D. P1 @2 {4 v6 P; ^ m_pItemElem = NULL;- z6 S4 }' P1 l, \( U$ b
m_pTexture = NULL;
6 w4 t: W; A# I0 ]. G* T bStart = FALSE;
$ r7 _$ b2 U! ?) `9 F4 \}
3 s$ L* Q( N8 h$ |& \8 @# a- Y3 e" A: z9 z0 k
CWndAutoFood::~CWndAutoFood()
( b- g X+ Y% ^ c{
5 y4 P6 v) [8 B Y" E; V AfxMessageBox( "AutoFood ist gestorben " );3 |3 e2 x3 k2 Q4 ?2 z# Y1 J. P
}7 E6 F, k5 R/ M* E0 ]( I
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
, M' ^( ]) O+ h" S{: \- i4 R5 U% T& o5 g1 J8 n
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );3 `$ o. j5 n; c, c" D: e3 }
}+ ~- h% }/ o' d* f) q% v& j% O
: K' Q6 `2 b7 G& z5 N8 _8 RBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )/ e1 i3 u& k* q- F* C
{
1 e, j1 R) A. N" P7 x LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
* u1 C& R- g: L# E CRect rect = pWndCtrl->rect;% E* D9 u5 `; e# _/ H9 z6 G; s
if( rect && rect.PtInRect( point ) )1 z6 d% Z3 Z6 j! l+ _" E
{
$ M* Y! l# w+ d, p3 V- q CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );/ ~$ c0 N5 @. g3 X5 ], \# O# O
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
9 v. _6 \ H" i, }; l {/ Q* u( L, ~; k& R J) f
if( m_pItemElem ); R7 c K* M1 q7 @$ I3 q& N
{
J7 ?$ J( `( j2 N- F3 }+ H m_pItemElem = NULL;
3 {; q. f1 {5 ? }6 B; p% P+ T2 V a' P' ^
m_pItemElem = pItemElem;
; q# Y/ Y) _# @9 V8 B' |5 U% `1 l m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );" U, o: w# f: T/ \
}else{! O; }% z% }; c p U" e5 {' M
SetForbid( TRUE );+ w r8 j3 U6 y$ K3 Q
}, t+ j: I$ X9 Y5 f0 b' ]
}else{
9 d8 [7 i( u* ]% K SetForbid( TRUE );- r: S) ?) f# [) s9 Q
}/ A- @5 `9 P3 n( G: }
return TRUE;, i# n3 Q+ [; X5 |$ V% G: e
}
% }6 h3 @2 c- S/ V7 L, w" x
# ]% A' |# E, m5 uBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )6 D/ L _& L V) v$ R
{
% @4 T; X7 ]3 N8 H, `: Y switch( nID )4 E: u, \5 I& |2 T( o' s" w
{
$ \) h' c+ B) ?& Z/ j2 { case WIDC_BUTTON3:3 N; l5 }0 ? q5 M8 _, H- D
{
) Q5 @7 P: ?+ @; q bStart = TRUE; a' l' k2 f* O8 b2 k. f4 B
break;
/ o! M- g$ {" [: N' J8 M: Z }
' T% D* W$ J+ u) U case WIDC_BUTTON4:
0 T+ P! G4 P, E H8 g- H4 V {
1 y- n& {* A$ S4 _! v& D; n bStart = FALSE;
. @$ F- K" d( F% [( B: @$ z break;2 O. u' X# o' q8 |) H: T$ \% l
}
M- H+ x+ T) x* V }
: v0 J( |9 A+ x2 {$ q return CWndNeuz::OnChildNotify( message, nID, pLResult );
, |$ a& w4 F5 d9 s} K: Q* l: |5 ?6 [ L) t8 Q
void CWndAutoFood::OnDraw( C2DRender* p2DRender )6 t% v; t' j/ S, Z4 g
{
2 [2 J# Y7 u4 [( h1 j3 { CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );' }, c6 x" [, k7 j9 z2 Z! q
if( bStart || !m_pItemElem )
1 P' S9 x' v9 X3 @$ w {
0 ` Q" }8 U- p& {0 i% M' g! d pBtn->EnableWindow( FALSE );0 \1 O' `4 C5 j
}else& j# t% [9 f/ E+ q" U
pBtn->EnableWindow( TRUE );
P+ v: H' M( B( H4 V3 Z2 a1 L! e; F if( m_pTexture )+ j% ^# A/ [6 U1 }9 S5 F8 ^
{
! ?4 n, f- u. N LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
8 G% h$ \6 b. L. g2 c& b' A* l$ ^ if( wndCtrl && wndCtrl->rect )
1 l, s+ X; C. i' z {( n7 [: Q* P4 W) I
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
2 Y, \" v' I* V4 P }
! g- b( K$ _2 ?1 ^- O& D }/ ^$ D) {8 y3 B3 {% X% x4 Z
}
4 F; P9 T- w4 W; a q4 j2 t+ O& E3 A' Q) {' Z- X0 l
BOOL CWndAutoFood: rocess()
2 E8 E+ v# M& p! b{
& q! j6 E+ z, i' ~& c if( bStart )
/ M: A. h0 x: L( \/ v {$ f' u8 z0 }& ^9 l# o$ a& `, F$ k
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )9 `& o+ d2 l: k! {7 N' r" F
{
" c6 F. B" a3 J* P, V/ O4 S ` if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
+ {7 }! o2 `- R* N7 K g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
& L* q. G) @2 d! K& y" T }else{
' {0 F: x, d1 ^$ h( X! y k* L V h bStart = FALSE;9 Z2 z, I4 O, c5 j6 d/ n( o2 `
m_pItemElem = NULL; R: n1 y4 g6 J# b# S
}% j# E1 j' E" r9 s/ d9 o6 n* U# O
}1 B u: }: N* k
return TRUE;7 C0 I5 g3 C$ P+ V d* R) `
}! k% t. h6 L: F: a8 c, r
8 Z- V: e, Q: B1 L; p5 |# ~登录视频废话:
2 w6 n8 O. _, t ?/ R* K尾翼:2 h7 }" R/ N4 b- ~$ t% ]: `- {
: ^) M% V" N4 j: Y2 x! f `# s代码:7 @$ x8 q: q! ~9 B
6 l" \" g+ M! G1 `1 O% {7 v8 K, Avoid CWorld::SetLight( BOOL bLight )
$ z' Z9 X0 b+ v8 Jdurch
. u* u0 `8 R0 n5 CCode:1 \" l" h: P1 n7 q* J; ]+ M
void CWorld::SetLight( BOOL bLight )
: z' A/ X1 t% E2 M{
# F" J9 d S1 L( k) R3 d //ACE("SetLight %d \n", bLight);. E2 s; E1 H J. D8 _5 Q; y
* h3 X4 `5 j& V/ T, w* Y#ifndef __WORLDSERVER ! ]2 P- I1 e. r+ h) K# O( U) z
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);% G* i+ Q. @. g# g9 I
CLight* pLight = NULL;' w6 a- U& S- ~: A: d- M2 A) I( B
- A. m% A( x+ q, B' K
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );" ]8 X& d5 Z9 J+ P9 j& e6 L
$ E5 H. A1 _9 T, N pLight = GetLight( "direction" );
9 {- g) z1 I7 F5 z: d
1 A/ W0 s/ ?# f- w$ n#if __VER >= 15 // __BS_CHANGING_ENVIR$ H" E; u H) W# F0 a
if( g_pPlayer ){8 H: I3 J6 H6 `) e3 Y
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
; p- R! f; g6 M if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!+ O. y2 m; ^& X- ?5 K4 u. P
{
- y8 r: x3 r' j* { if( pLight )
" }$ @* M, w! m3 y e, E! N6 n {
: \' L/ N* Z ]5 p" Q/ x pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
1 x7 j5 f( m6 _) z1 j2 K2 M; Q pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
' W0 p" C/ l) V+ v$ w pLight->Ambient.b = pInfo->_fAmbient[ 2 ];$ Q% I: r& h7 w/ p# n
: m3 Q8 }1 a9 \) a0 ~, A, x/ W pLight->Specular.r = 2.0f;5 _5 h+ Y" ^8 W$ o1 x! K" t
pLight->Specular.g = 2.0f;
+ Y; i( W2 s' Z: ~5 B) j pLight->Specular.b = 2.0f;( K) D, @% S# e. `1 x: Q. U
3 A3 }. @. x6 |; `# }# }! S) a D pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];4 u/ H; j: B- B, Z' D$ M
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
U$ S3 k* S- K! b$ I pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
- {' m% o2 d s+ \& g+ z" ^
0 F; M+ E: p! a5 O# z HookUpdateLight( pLight ); B# ], N% h: ^& R' v& H9 U
3 h9 R. F& H0 b2 x3 y
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 L: }, r" N6 ]! o
7 Y- _% u! e+ ` pLight->Diffuse.r *= 1.2f;
! s' }# S- o; R+ `- k/ o% V; R pLight->Diffuse.g *= 1.2f;
3 N! T+ e7 i j$ u5 |) h1 N pLight->Diffuse.b *= 1.2f;
% G- Q5 j: J e( z4 m7 |
3 p! S6 }0 Z$ t/ k3 Q/ D pLight->Ambient.r *= 0.8f;, S1 Y$ ^0 @( p; l3 `
pLight->Ambient.g *= 0.8f;8 |7 E3 P' S; c/ X+ A
pLight->Ambient.b *= 0.8f;
# z4 `7 K7 Y. X% x
, Z8 U1 H* s9 Q0 v memcpy( &m_light, pLight, sizeof( m_light ) );/ v4 X9 J6 s: b1 g/ [
! ~% D2 c' l/ S D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);/ U- V1 w& u. ~. @% z1 t6 X2 g" n
D3DXVec3Normalize(&(vecSun),&(vecSun));
. I Z8 D9 {( s9 ^' w pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); * x/ ~3 L n0 t; g: s
pLight->Appear( m_pd3dDevice, TRUE );7 B) P' K8 Q0 s% o/ R) d6 X; j7 M
' H6 U8 Z' @5 t, i0 k1 d, `$ `0 O DWORD dwR, dwG, dwB;: H( u* v ^4 c( l9 G% F
dwR = (DWORD)( pLight->Ambient.r * 255 );: P# T4 i6 `: M
dwG = (DWORD)( pLight->Ambient.g * 255 );
$ I4 v$ x2 s- z I5 @. Z dwB = (DWORD)( pLight->Ambient.b * 255 );9 X6 d Z9 C3 ?' @- i' h
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );0 c9 S: P2 }& C
}, d2 s1 l/ T9 s) s
}) O- z; b; l0 f% Q2 U
}
) G/ b3 a8 M1 z" a" h4 i, {* M else
3 D9 ]$ |' g0 v7 c#endif
! ]& R% D2 j7 s* `9 D
7 f2 c( F5 Y6 \# P# G6 b. K9 L if( m_bIsIndoor ); e, i5 J- U% ^5 U7 j" Q% A
{
$ N7 b) W5 i4 a, R' ]* B if( pLight )
+ ?6 h- S0 @$ K D2 D7 z1 B# W) a) Y {
6 A/ P5 {% \# V // à??μ oˉè* 3 H$ F+ R9 P* A" }
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
$ M9 s( b5 K1 M* O2 ^ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
& |& W4 I6 S: X( d pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;- p4 h, b3 [: R$ _0 [" h
}* v/ M, O) |: Q
// oˉè* ??à? - X, h% A" ?' y) y' X2 {
pLight->Specular.r = 1.0f;0 [' U' ?0 b6 B: I5 {
pLight->Specular.g = 1.0f;
, \% T/ q8 p& Z$ u+ ]( d pLight->Specular.b = 1.0f;
( J; {5 }2 Z( A! C3 |# S // àü?? oˉè*
- W% h' e$ d* q9 Q- U) u* r2 r% C pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
, F7 M& K* p, E( K8 z5 \% v8 s" \5 A5 h: p pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;. z' }" C" l/ ^/ y) D# F
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;; d, W' z' c* v9 e
3 u* x& t4 E. s* u9 {7 a7 g' }" t
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, G$ e1 q% [. u) E7 y9 F2 j M {0 T+ e& ~3 l+ u+ x
pLight->Diffuse.r *= 0.6f; z% W1 Q! T/ p# [3 R# l1 {( w
pLight->Diffuse.g *= 0.6f;0 j c/ O. R6 d1 `0 m+ ]
pLight->Diffuse.b *= 0.6f;
5 {+ m: F1 A0 o5 J( F pLight->Ambient.r *= 0.7f;2 C0 d# z% O8 {, n5 _
pLight->Ambient.g *= 0.7f;( r# w, u; D5 U* n; |5 Q4 R& d
pLight->Ambient.b *= 0.7f;( @6 u, d' k; M0 ~
}# f2 f) a0 w- Q
1 W* ~% ?; l& h
#if __VER >= 15 // __BS_CHANGING_ENVIR, P& [2 ^9 O8 W) f# B
if( g_pPlayer )
: B, x9 l; n$ @- O. G HookUpdateLight( pLight );
: \! G* z' R1 t1 E8 ^+ z#endif; A+ o% u8 d1 R% |9 T7 V# K( M" v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) m: t! }$ p- h3 o& w4 g( y4 T- w8 `# F7 m" F2 @
pLight->Diffuse.r += 0.1f;
7 ~7 G3 ~ a+ s% z5 S pLight->Diffuse.g += 0.1f;+ @" y) Y! C9 R- r* V1 C& f
pLight->Diffuse.b += 0.1f;9 h4 r% k- ~2 {& ]$ l
// oˉè* ??à? & ^& j- W+ n1 l' m
pLight->Specular.r = 2.0f;. A) h, s! J! V/ K) K4 c
pLight->Specular.g = 2.0f;
4 F9 ? d! T6 T0 [4 [1 h pLight->Specular.b = 2.0f;
! m. ]/ a* f- ~' F& T0 L // á?oˉ ( _; F- @+ p- H8 c$ _" \
pLight->Ambient.r *= 0.9f;
' `$ q* `* ^# x- w1 L% M pLight->Ambient.g *= 0.9f;
* m3 _+ Q* X! w pLight->Ambient.b *= 0.9f;, J) }6 j v: |% Z! J S
/ \: N0 V5 [1 [! ]) F: ^
memcpy( &m_light, pLight, sizeof( m_light ) );2 s) ^8 q0 D0 q; U9 `+ x0 t. u; G
0 R7 i" |% I. E# X( Y0 F
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
0 z+ a- K! G: m+ H* ]; e* X pLight->Appear( m_pd3dDevice, TRUE );1 T3 x4 f0 i# P4 {- a
, A0 h$ r) x9 P3 M9 E. I7 I* F3 |
DWORD dwR, dwG, dwB;
( i/ @- \1 ?) j1 C dwR = (DWORD)( pLight->Ambient.r * 255 );% P n! I/ ]; B
dwG = (DWORD)( pLight->Ambient.g * 255 );! L" Z- c5 `. t! d
dwB = (DWORD)( pLight->Ambient.b * 255 );
: o& |9 P1 v0 \- g7 l) { dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ q! t/ R4 X3 P3 U }
7 e) L G" T; U }
4 t0 k- A' J) Q2 Y else
/ z0 E; B5 {$ E: m( T; R {
5 H5 I1 J/ x$ D0 X0 F( j if( pLight )
5 J# L' R) f5 ^3 a) p$ f {5 P5 A* l6 d; C* Y- I
+ p7 R( j( ^3 |* `# \ int nHour = 8, nMin = 0;7 Y' {7 Q; G' W* q, {9 Z+ N
#ifdef __CLIENT2 k8 h* r4 D5 _( ]+ _
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
$ R& m' @* O3 P% A5 C5 d nHour = g_GameTimer.m_nHour; v d# J* {9 ~3 k F3 Q. g; P
nMin = g_GameTimer.m_nMin ;3 p5 W( u$ D1 N0 r1 f2 L5 y
#else! k7 [0 {4 A: g& G/ V2 W+ _- E4 E8 F* m
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.. U, s" ~% g+ e6 D3 h) V
if( m_nLightType == 1 )3 e& G/ n+ _* U' l
nHour = m_nLightHour;2 k, n. i# h: ~
#endif! Z; U; {+ j! N; X2 H6 _- Z
nHour--; a4 X* d/ F% f% ]2 u# Z6 b
if( nHour < 0 ) nHour = 0;* M4 X! s! r. r0 x/ S( R
if( nHour > 23 ) nHour = 23;
8 p3 u& u5 `) ~( ?
0 M; }, A* v+ o6 C' ^ //if( m_bFixedHour ), f6 t2 x2 X& l; w; g7 ~. B- M
// nHour = m_nFixedHour, nMin = 0;
( _) t5 J/ g3 T4 W! Q8 [ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
$ h+ z2 J4 N, d5 s ?5 Z+ a LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 E' n/ c4 s/ U5 E# N
) k, P7 x3 m* \& u4 ~" I+ z //m_lightColor = lightColorPrv;+ H+ Y, \% _% ~$ ~+ y* W
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 m/ R1 q' a5 d lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;) n" r- r' Q1 x q# v: R* e$ M' O- e
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;5 u8 b* U9 ], f3 W- t$ p
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
& U5 i6 v! [) }- N" } lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
5 J0 m" h3 r2 S1 ?* s lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;+ v0 |3 L2 J1 L$ k( Y
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)+ u# i! P* Y" Y5 C- t Z
. B, C/ ?. y, b3 i) E
// à??μ oˉè*
0 s) `( P; h, S0 t/ W pLight->Diffuse.r = lightColorPrv.r1;
8 Z& ?% P4 A V1 A& }7 q ? pLight->Diffuse.g = lightColorPrv.g1;
2 \1 s" k. v) f, |. ^$ H) N pLight->Diffuse.b = lightColorPrv.b1;% B/ |1 R. G* `4 |
// oˉè* ??à?
) T0 f. Z* s: D" S1 n4 g4 l8 a pLight->Specular.r = 1.0f;4 H$ L, [+ I& A* p, F8 D& O
pLight->Specular.g = 1.0f;
+ M' @- x3 F* ?- \ pLight->Specular.b = 1.0f;8 H2 i4 ~8 L: B# _- n
// àü?? oˉè* , o9 I7 J9 w7 j) j: K
pLight->Ambient.r = lightColorPrv.r2;( O: [# s, }& }
pLight->Ambient.g = lightColorPrv.g2;
! [$ x7 F+ V: D* m% f* f/ m pLight->Ambient.b = lightColorPrv.b2;
% F- x. @! U w8 n; _" Y1 }/ Z P9 Q. I9 l8 j7 e
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 K8 a2 W8 K5 N6 W. r' z {$ t% B% l+ q4 O p6 n
pLight->Diffuse.r *= 0.6f;
- \6 b% P! ?0 n$ G, D pLight->Diffuse.g *= 0.6f;, N( L& U9 a/ w7 ^6 P. d4 E
pLight->Diffuse.b *= 0.6f;
0 U3 @' H; u8 Q pLight->Ambient.r *= 0.7f;
- o- n( N4 a. d' O. h* L1 w pLight->Ambient.g *= 0.7f; Z/ k3 }8 B0 M2 k O# H
pLight->Ambient.b *= 0.7f;
4 i F2 \1 [( t; @2 P; {8 Z }) R, `' f+ }2 G& B1 s9 O4 o
" g' K7 b& f4 R: B#if __VER >= 15 // __BS_CHANGING_ENVIR
% X! i, L. Y# p% w* {/ A ] if( g_pPlayer ); j5 A7 E" s: l c: O$ a8 q
HookUpdateLight( pLight );
9 T/ [% Z5 V5 V/ `# j#endif5 ?3 z, i, ~: z: r! y1 y+ h: q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 {+ a2 _% S5 o/ e+ S0 A6 q" z
- `2 r2 Z+ l: q#ifdef __YENV
7 @( m0 w9 A/ Y( L pLight->Diffuse.r *= 1.1f;
5 I0 E( @, d" \ ]" e$ ?- ~ pLight->Diffuse.g *= 1.1f;
) V$ {# g* e' |$ _9 O9 k pLight->Diffuse.b *= 1.1f;; l8 Y8 x8 V- _2 i, U; Y/ d# y
// oˉè* ??à?
1 `/ X' N' X, L7 E, a1 d, \ pLight->Specular.r = 2.0f;* b. C/ v3 \* F9 J8 t* b
pLight->Specular.g = 2.0f;1 a \. j7 z* f7 o E
pLight->Specular.b = 2.0f;
3 K( A1 p+ z* N) m // á?oˉ
4 I, R4 [: `5 v" a2 d pLight->Ambient.r *= 1.0f;
- m- L) T$ K& W# S4 Y) o8 Q* F pLight->Ambient.g *= 1.0f;
* c( J8 \- Q* N4 n8 ]: L2 b pLight->Ambient.b *= 1.0f; r4 \+ X) D# \5 P7 |6 a% G# ~
#else //__YENV& q; P1 p" T! z/ J8 P @% K
pLight->Diffuse.r *= 1.1f;
% D/ m% i3 f4 n pLight->Diffuse.g *= 1.1f;
7 p' `0 |* d% E0 b pLight->Diffuse.b *= 1.1f;: L! @6 _( ~8 F
// oˉè* ??à? * t; ?. }" \4 Y: S' Q9 g
pLight->Specular.r = 2.0f;
4 N* i( }1 {, e5 i2 U pLight->Specular.g = 2.0f;: e8 T8 K4 V, E P, k r
pLight->Specular.b = 2.0f;. k; |. X) ], N! Y+ Q7 r
// á?oˉ
' _ w- Q7 w4 y$ r4 T# m8 n: l- z pLight->Ambient.r *= 0.9f;
2 z R7 Y$ h! u4 f3 } pLight->Ambient.g *= 0.9f;
; b5 {% h: m& @; l8 i0 U5 Z/ ?$ | pLight->Ambient.b *= 0.9f;) s% S2 f7 W0 j& \! a/ o
#endif //__YENV
/ M5 [8 h. d$ {. `2 I: T ( A4 H- y3 Z" q5 k( \0 n4 O
memcpy( &m_light, pLight, sizeof( m_light ) );7 _. t1 ~) I! M. r, W
5 O, L) L% A& o/ v9 W; r D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);6 J$ A1 B, I; X5 p
D3DXMATRIX matTemp;' G8 T, m' `( j( ~; I6 E8 [
static const float CONS_VAL = 3.1415926f / 180.f;- Q% r) L1 E) ]( o: }6 w2 F1 H1 {
2 j7 Y; w S7 j7 Z
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);( L9 D) g: C! W2 h" T3 n* R% H- @$ S
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
: b+ K$ M# f* _. Y% z+ D pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 R2 J' W/ u6 a7 o8 B
pLight->Appear( m_pd3dDevice, TRUE );
$ Z+ r7 R2 f7 j- G
3 X; |0 ?4 s6 @, u! N/ e2 {0 w // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ @8 S- u: w- Q! r! s // D3DXVec3Normalize(&(vecSun),&(vecSun));' _" @& y+ S) p8 \/ _2 H: h3 v8 E
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- X6 u( F! e- B* E5 m( ]; `2 Q
8 ~ q; D" M, v$ F. t4 ^9 O# k DWORD dwR, dwG, dwB;
# D) P# L; {) e/ C; I* }$ U dwR = (DWORD)( pLight->Ambient.r * 255 );
. o5 M, M, j% B1 ` dwG = (DWORD)( pLight->Ambient.g * 255 );3 Y/ C+ A0 S6 B. {- e3 J
dwB = (DWORD)( pLight->Ambient.b * 255 );
; x& q5 @/ E' x7 G; O. |9 t$ j N dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 8 k! R r. j) C; e
}# U7 ?% J7 o k; m
}; k. Z; S2 U! Z/ j1 t4 |8 c
5 ^! Q& d8 o& Z& H m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
- r8 _ S& C9 r1 M; e 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) );% n. o% D# y$ ^7 p) O5 s
::SetLight( bLight );# T' o' S4 W l: q- a
( `4 O* |3 Q# |* ]! ~ z" |" `( v
// ±ao? ?D?í???ó á¤à? 3 B0 g4 ~. y( D/ p, a
m_pd3dDevice->SetMaterial( &m_baseMaterial );
4 b" m) {9 b0 H p) e4 f " i; R7 Y o7 m) u( w% y* u, n$ X
#endif // not WORLDSERVER8 p5 V4 w- L0 D4 N8 t1 ?& _' E
}' ?1 G( f% g' f: y) q; s4 R7 [5 B
并更换
( A. M1 u& h1 k h5 j* C9 lCode:
2 [" K+ {9 X6 Q' m* W5 ~__FLYFF_INITPAGE_EXT5 Z5 D3 c# o8 h% d! v
定义/ A! a c1 f* ~6 h
; M, g8 K# \, F' k l" R2 s# w
+ s# ~1 F4 E" ?% ?
9 l& j* B& H& W& f1 ~
' b5 T0 T5 L2 K- ^5 I+ C现在终于删除我的狗屁加速...
$ U i& m% @3 F0 `; t0 }$ a% z2 ?
2 {: p) _8 n4 R! E5 B6 Z; Q8 l) ~
; p* C) V3 V% n. r7 v+ T! p
|
|