|
|
食品车: H6 Q+ `3 v/ T! F- f
尾翼:. q/ H: X9 P: S9 b/ o( P+ t0 s
# {9 R5 j- D8 |; G代码:' n! k6 c* b. C* v# Z* F" D
CWndAutoFood::CWndAutoFood()
0 o3 g6 c( H& }- O' d$ G3 l{
w k f/ D7 s" m$ V; v9 l: L4 \1 A m_pItemElem = NULL;* M6 v% o4 ?6 i) Y- R& t
m_pTexture = NULL;1 j2 b0 |/ b. Y
bStart = FALSE;( C7 l9 i& u. v1 G5 W3 k( K1 M! F0 p
}
& _, a# b. {! K3 Q4 D2 A3 T! i, V1 D: W# a( R6 j! q8 e+ B4 b+ }
CWndAutoFood::~CWndAutoFood()
9 C/ s0 s0 g5 [" r- M; q{
5 v, c3 u: f7 _2 R/ c9 k! r AfxMessageBox( "AutoFood ist gestorben " );
# H; Z2 s- N; k& l8 A}
$ v7 E; X- r* ?5 e; GBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
5 y5 h, @2 n) k+ D{/ c3 ? o9 U- J' k# h
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
+ [: a0 |& G- ~$ f}
; Y1 ?1 \- ~/ v' H, z5 p1 Y n- j9 h6 W8 P) k# p
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )/ ^1 y8 M9 }9 A; ?% e! J/ l
{
/ Y8 y, g; o/ x# | LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; ~2 S' s' y! p" g( e. M: t* L& _6 q
CRect rect = pWndCtrl->rect;
& E K3 L% b& c# s if( rect && rect.PtInRect( point ) )& g8 G( Z$ z- }0 h* S+ g
{6 E F4 k* ]4 [# y: {& w9 J
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );* r8 ^/ n" i4 ^/ d( B8 t8 N
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
! w" k! z( o5 _' S- F$ j; V1 N) v {+ f: D0 z8 _; c; M- h8 X) ?
if( m_pItemElem )
; q: y1 P' Y0 J5 d2 U {( t2 }; V2 T( n* C
m_pItemElem = NULL;
+ Y( u8 f# S7 T' ^5 z% H }, i, t b7 U/ O- c/ w
m_pItemElem = pItemElem;2 J6 i! E: i+ W8 D8 S
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );1 z, J4 }7 G5 C
}else{
/ ^9 y. S! C2 b SetForbid( TRUE ); N3 m# A2 X# _% A9 v8 ~5 r
}5 C' k" I) q- f7 v6 K
}else{" ]' ?+ j! d% I' r
SetForbid( TRUE );3 T- J& x% s! b$ b8 q
}3 ^4 q0 r: G, v ~, P. H
return TRUE;5 d0 e, r% Z! H5 V2 b# x* L: y
}. i' Y! j# N( p1 G; c8 F1 o6 `+ E
& A8 k/ L7 G2 @# F& G, z
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
$ f" [, t9 ~' p4 R6 k! b{. @+ B% s' u. t7 E d+ ]6 \
switch( nID )
5 X) J( W) j6 i {
, u: ?3 k6 S, ?0 \9 j( r9 H0 R case WIDC_BUTTON3:
* k5 Q) H! T& D% j {
! |) M. D+ M" ] bStart = TRUE;
7 t6 r: Z9 e* b- Y break;
$ D/ A9 K$ r! n4 \ }; P A, W1 u, n
case WIDC_BUTTON4:8 _0 E# p( E) _6 w
{
$ _' }% ?: C. _, ]; G! N/ \ bStart = FALSE;- ~9 V. u# F* k) _
break;
: o$ B; Z, E+ Y7 Z }7 a6 Q1 F! f, ?2 D8 h
}
4 o8 Q* {, S! O* s/ }; Z6 w return CWndNeuz::OnChildNotify( message, nID, pLResult );
$ ?0 N( J9 `! z) u! `} 2 I2 x w2 Y" V# Y; h# d" C
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
' X1 H: U' \1 p L{6 T! r# o. p& _( f# @. f
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
0 m+ {( z9 w1 ] if( bStart || !m_pItemElem )
. W3 [) a( R4 \4 w {/ a Z& J1 H# Z+ o% f0 a3 x
pBtn->EnableWindow( FALSE );7 V/ H8 r6 H% A! o1 V) m6 J
}else
; o3 F+ W2 E& Y* ?1 S; v pBtn->EnableWindow( TRUE );
1 E ?3 G4 W( Y, s A) t; P' ^ if( m_pTexture ), O: _9 O/ v& H( J
{
* r7 g, r" b/ A9 y LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
1 `4 I+ I3 K. b: K4 i if( wndCtrl && wndCtrl->rect )
) }$ r1 ~& z3 t$ A# o; f O {
1 U' U. Y8 e- J8 x9 H m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );: w( ~4 G: d' \: O
}
& h, S a+ f# C/ P' c! k }! m: I5 ^; s+ n! q( n) T
}" }8 @) p" @7 ^: S
% }0 d) c1 a6 v
BOOL CWndAutoFood: rocess()
8 e$ k0 I! |1 ^; b2 u: |3 z{
& O7 R" u: v4 c K4 ?$ y if( bStart )
+ U6 ?% {& Z' B* b {
* w l# {0 O/ R if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
# y& \, \: H( ^9 j [ {
0 H3 T8 X( }9 |6 a3 H ^* h% E5 c if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
$ F+ g9 g1 D* X. w N, @+ ` g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );( S+ ~ h j3 J8 p5 D
}else{
! v% S$ j; s6 N o3 p0 v bStart = FALSE;3 |$ {2 f% U3 m' {" {2 ?, U
m_pItemElem = NULL;9 J( x" K8 G H8 L
}
" m( _9 V' `4 u2 ? }% J) Q7 j6 ]& h' H0 A# V
return TRUE;
6 }. Z, f. m: y5 k7 i# M}
' ~( I1 c. i% M! J8 U+ W4 X. x1 a' U" z
登录视频废话:
. w1 M- e1 o* @/ N* j+ ]- [尾翼:
4 O* o q8 |! v( ]8 m6 Z n, o8 [
代码:
. Q q- k0 j9 f0 C& c$ a7 N. W! N6 i$ Y
void CWorld::SetLight( BOOL bLight )+ w4 l: E% K. K: P. K5 p* T& p
durch7 q' i! p& W: h7 t) ]& Q
Code:' r8 i' V' ^3 E( ?9 q1 R& h3 _% j
void CWorld::SetLight( BOOL bLight )4 p6 k1 z) |- N4 L- _# F1 Y; x
{" J4 F; ?2 V" }2 J3 ]
//ACE("SetLight %d \n", bLight);
" j$ L; ?: p" x
# k3 K/ k' A0 a, E& B#ifndef __WORLDSERVER
$ V5 ] A# c- e/ Z2 r! z DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);$ L/ X+ E9 X2 ]* C. ]" i6 I+ x0 _
CLight* pLight = NULL;
1 |2 A/ B9 P* D, I
! ~- E# K; Q& }2 r D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );. P( W% [ L8 |$ w, S8 ]2 o
0 `2 x" |4 k9 O& Y; _ pLight = GetLight( "direction" );
" e7 o/ ~2 `# |# j; B
8 O% U+ l. q& ]3 E3 s( j0 _: A2 T$ ^#if __VER >= 15 // __BS_CHANGING_ENVIR
! T0 G2 {$ q9 K& v3 D if( g_pPlayer ){/ e; P( ]6 i5 |3 A- s- _: W5 M: _
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
/ C- J! A4 {$ _, E2 H. t if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!2 M2 Q0 J- B0 E) p1 X5 U
{
5 P% x9 Y2 [9 e: a/ _4 T if( pLight )
, T d4 t2 }4 f. T+ A1 \ {
1 O$ m" j; E L& | pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
7 B. Y7 n# ]2 X8 y3 L" q pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
3 D* L4 X3 f' b6 B# F8 s! M pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
" K7 E( J, \: O5 `2 T
6 T& n" q2 J0 C+ F5 I* b# f. m pLight->Specular.r = 2.0f;' M: D- l% [7 x2 `8 R
pLight->Specular.g = 2.0f;
2 b) U$ v) ?- I L& M0 h# p pLight->Specular.b = 2.0f;
/ Z q! ^% q8 V* _$ y/ R+ R# A 3 E8 B+ e( O7 {. U+ q
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
# h+ L3 M& v* S pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
0 P9 ]8 r D5 O4 \7 j; S- g* [ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
: d K, S5 l: f m0 j
* S; n, L! n5 b' M( n# m/ \/ m HookUpdateLight( pLight ); / H' w+ k% y H v& `5 X
$ p. n+ s& u2 U3 J' L6 n
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, m0 T7 b, e+ J4 q% h! C0 b
: k$ w, U2 I6 a. V! K- V
pLight->Diffuse.r *= 1.2f;
& ]+ q3 e1 k% c* C( ` pLight->Diffuse.g *= 1.2f;; {0 `' N4 ^; w" e
pLight->Diffuse.b *= 1.2f;
, E# V+ D: K- ^+ j b+ a! F, Y1 c/ j! k) v l
pLight->Ambient.r *= 0.8f;8 @0 \9 i% R" Z/ w
pLight->Ambient.g *= 0.8f;
# `% Z' L" J3 }$ m8 A; R pLight->Ambient.b *= 0.8f;" ^0 y, a8 a J3 Q' R
* C2 z% C0 \) e memcpy( &m_light, pLight, sizeof( m_light ) );
+ I* T/ f( j" B* z) ~% l" U4 D$ g+ P
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
" O) R6 e. Q1 L D3DXVec3Normalize(&(vecSun),&(vecSun));* w3 u( G$ a# \/ V% s: f* A, J
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 9 M t7 b8 |' v# k1 ?7 q
pLight->Appear( m_pd3dDevice, TRUE );
! A2 G: s1 Q1 Z* P
6 J" ^) r1 T4 ]& Z1 `6 _3 d DWORD dwR, dwG, dwB;% A1 B4 o7 m9 U% X* m- Z. E
dwR = (DWORD)( pLight->Ambient.r * 255 );
1 T' W3 t+ z2 Z1 T dwG = (DWORD)( pLight->Ambient.g * 255 );
, q! P0 I6 V" ^8 t; } dwB = (DWORD)( pLight->Ambient.b * 255 );7 G4 X& A% v# ~2 u/ k' ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" K! F3 \8 ^/ b% E! \
}* H7 f; h( q% c1 j1 _: N
}
) J2 \2 ], d( P1 l }: @; s9 Q! V* z4 S/ z) Y5 s8 j& E: a
else7 |4 N7 x* s; S% T, ]* g( @# e9 _
#endif $ ]5 n1 a9 @0 u1 K6 @
2 z; H: l) c8 A) I8 A( A
if( m_bIsIndoor )
6 n' q9 J' v8 O$ a. h( D {
* x- w0 C9 V& d+ N* o1 c3 Z" W7 U, l6 @ if( pLight )+ O( ^; y+ T( S) `+ I7 S: A
{ 4 a) N0 s! p* h& T; i6 @. ?
// à??μ oˉè*
9 ?( l) j& h @$ `, X, p! } pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
/ a+ X6 `6 P7 C3 Q+ p" A pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;! Q2 b. N' m. X, B( j
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
8 K* g$ U8 m5 d& L" c7 ^% u
/ r8 b! j: y8 ^2 \5 f \3 ^ // oˉè* ??à?
2 f6 g8 I+ L/ o) k5 u/ V1 I5 D pLight->Specular.r = 1.0f;
4 j Q! R7 v$ M x* l7 D6 ? pLight->Specular.g = 1.0f;+ y5 G, H$ G4 n5 L
pLight->Specular.b = 1.0f;
$ |0 j5 g. k3 d6 z. M0 E) Y // àü?? oˉè* ( i4 E* O; w. `) W/ ]
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;7 F, y {% {6 u5 m: a( D- v- m
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
/ a9 `) ~. o0 h) k2 e pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;+ X- I. O5 u! i9 \- Y
" M% i# _, K& P1 U if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
. r) y* W6 z+ W: B- l8 ^: O {2 N5 [+ B# c+ ^3 w
pLight->Diffuse.r *= 0.6f;3 z+ p9 R ], L4 B/ ~
pLight->Diffuse.g *= 0.6f;
; q$ Q: Y8 R+ W$ I# H* `; O# q pLight->Diffuse.b *= 0.6f;
; C7 D/ r9 G* j pLight->Ambient.r *= 0.7f;
( v, h( s7 |: \! A8 u' ~! p$ l pLight->Ambient.g *= 0.7f;
6 [; q) @9 o; r: b( i pLight->Ambient.b *= 0.7f;
* U- e: f7 u; T( }8 D6 s8 D }. ]$ p* @7 T2 F8 P
( n0 {& E C' P% z8 e#if __VER >= 15 // __BS_CHANGING_ENVIR2 k9 U2 j5 i; x# }- y8 a9 m& W
if( g_pPlayer )9 L- h- U6 r- O; x7 j+ M
HookUpdateLight( pLight );2 T6 @& a; E' A0 J
#endif
s9 d8 S% C2 N5 x) N, V memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 [7 M2 |8 l0 f X. n- N- Z' b6 L0 W* |6 s: l; t2 g, A
pLight->Diffuse.r += 0.1f;
% ^( Z; ?3 Q' R0 [% [8 j$ U pLight->Diffuse.g += 0.1f;
# m& G+ i Y9 `# f9 i3 g: D* E pLight->Diffuse.b += 0.1f;6 H, P+ X5 K; u: n+ `0 v, B
// oˉè* ??à? : q# a/ ?# l7 @, _$ Z
pLight->Specular.r = 2.0f;
( J* o1 L7 A' k" M O% f pLight->Specular.g = 2.0f;2 L9 q; d" A# k: ^ v L
pLight->Specular.b = 2.0f;) A5 {3 {8 S( ~( ]: E0 v: B
// á?oˉ
* x% P, ` _8 H p; ? pLight->Ambient.r *= 0.9f;
3 u* e1 M# J- n# X O( n- ?3 V pLight->Ambient.g *= 0.9f;# q7 Y' {" S; a+ g2 J- F% M* H
pLight->Ambient.b *= 0.9f;0 J2 m3 x/ p& Q% O! T& H) m9 u
$ e4 ^3 A/ C4 A3 t memcpy( &m_light, pLight, sizeof( m_light ) );
0 L' c. p# Q0 C, {
% w/ M7 d. k4 Z! E pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
' j" |+ d% z. p5 `! N pLight->Appear( m_pd3dDevice, TRUE );1 o0 e+ S+ @* E( r3 ^- f2 }
+ M- {3 Q/ B0 i7 ~( p2 x+ Y DWORD dwR, dwG, dwB;0 M' f5 X5 a! `
dwR = (DWORD)( pLight->Ambient.r * 255 );' D, q* @# w2 K4 d
dwG = (DWORD)( pLight->Ambient.g * 255 );
7 v/ K# h' l. E' Q# ~& ]* { dwB = (DWORD)( pLight->Ambient.b * 255 );( e w; r# U$ J! T h0 Q; P
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' v8 ~5 b$ y' ?
}
! u) w9 ~; i- E }2 V& i, I" K5 k2 ]7 l
else$ u3 k6 j7 q/ w, t4 ]! m
{8 _" D6 ~2 r) U8 `, M, E
if( pLight )
" Q. \8 l7 h4 |0 h% T {
2 D$ L8 p7 \0 b" e/ p ! N* {6 i& S9 X1 ~1 q2 K! H/ ?
int nHour = 8, nMin = 0;
$ O8 ]# U7 R9 e$ }, O' o #ifdef __CLIENT4 l! w4 y* I; B
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
9 G9 C& O" X/ X! c8 c" O nHour = g_GameTimer.m_nHour;
9 a& h/ c( x L( C nMin = g_GameTimer.m_nMin ;
2 i9 r2 F7 G( `6 B' O5 [6 s #else
) S, }; v% j5 B( X" h // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.6 `0 s$ F& t: D6 a
if( m_nLightType == 1 )
" }0 `6 g1 G# k7 h8 L$ \ nHour = m_nLightHour;
: {( t9 V. d3 B2 | #endif* x+ \6 ~" }# G+ q
nHour--; c4 @7 f( ^9 P4 W& Q# A; A. f. g
if( nHour < 0 ) nHour = 0;0 q3 {0 l$ |. z1 {+ k9 ^3 |
if( nHour > 23 ) nHour = 23;7 B. Y5 R t6 Q; T5 L8 B9 f7 ~
' u7 G9 t' b. A, r3 D //if( m_bFixedHour )
; U/ P. w- j7 K. B5 F3 i0 W+ E8 o" J // nHour = m_nFixedHour, nMin = 0;# c$ \; u6 p' g5 I4 H9 E/ T! v2 m
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];# q; A- l" u k& I! H
LIGHTCOLOR lightColor = m_k24Light[ nHour ];+ Z1 f" D" p( H9 c! q! |3 S
H5 z3 a. O3 P8 O: q6 p; P( [; A
//m_lightColor = lightColorPrv;# T) F) [2 `$ Y. }- D" a
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
: F2 i# d7 W2 B: l lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
6 ^! ? L' t) w& e lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;/ f5 T' G1 m* t& u+ U7 e4 S
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;: |) O B9 T/ l2 S( u5 N5 K0 f
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;( W8 X" c2 {3 k, [( ^
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
& o! m6 W; c+ D' Q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol) F# m7 \) @/ _$ H0 i8 i
3 B( Q- Q' `3 Q6 Q0 c1 N2 S4 X0 e // à??μ oˉè* ; Y R0 F7 Z! |# m/ u& U4 P/ R$ E
pLight->Diffuse.r = lightColorPrv.r1;
2 O- b$ q- F9 B% Y+ P pLight->Diffuse.g = lightColorPrv.g1;
8 j ^( w1 G- n! K' h& H: o pLight->Diffuse.b = lightColorPrv.b1;
/ K% x1 l0 J! H0 c" q // oˉè* ??à? $ h6 K* a$ F0 t( S
pLight->Specular.r = 1.0f;
3 g* N# ~! h( h& X( [$ n" _4 ?6 k( l pLight->Specular.g = 1.0f;. N9 Q3 S' a" L
pLight->Specular.b = 1.0f;
( i% J' [* u7 Z3 Q // àü?? oˉè*
! Q7 h4 W( B H% o pLight->Ambient.r = lightColorPrv.r2;
. p& i4 P5 J$ M2 t1 i" w/ u pLight->Ambient.g = lightColorPrv.g2;5 V" q2 j% @' n3 F+ h1 q
pLight->Ambient.b = lightColorPrv.b2;
8 z4 ?6 `; A0 q( t, m
! ?4 s( R; L4 [6 Z! X if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
% h5 s7 }* w$ W, L {/ ]4 }% |5 U( V+ [
pLight->Diffuse.r *= 0.6f;6 g+ R. U$ r4 p; f; S4 r/ i
pLight->Diffuse.g *= 0.6f;
% M3 M7 F1 T+ q( |; F6 k8 h pLight->Diffuse.b *= 0.6f;
0 H7 m) f9 d8 L2 N7 \! e( ~ pLight->Ambient.r *= 0.7f;+ b5 `+ k" H" _; }& ^9 x
pLight->Ambient.g *= 0.7f;
3 r2 ^5 `/ _6 J; l9 n" k pLight->Ambient.b *= 0.7f;
# I: A" S+ m2 A7 G$ v" ?* w7 K/ ] }8 V6 B4 i$ M# E; i w1 `: \! K
/ U% ]- B% N% T3 v" n/ A$ g
#if __VER >= 15 // __BS_CHANGING_ENVIR
s# {& `: M' v3 V5 _4 F6 E U if( g_pPlayer )
9 i% R. u: o( E; C HookUpdateLight( pLight ); ) z+ F7 o9 G- ^8 j; Z6 c2 @% q
#endif
9 ~1 Q, P3 `2 k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 Q& I' n. X" p0 d2 J; I+ x0 e5 v% n/ F8 @
#ifdef __YENV0 i: Q" F" v1 m1 i% J2 D% u7 ]
pLight->Diffuse.r *= 1.1f;+ A. Y" L' e/ r0 H% c8 P6 D2 m8 Q2 Y
pLight->Diffuse.g *= 1.1f;; b. u1 r' f$ h+ I
pLight->Diffuse.b *= 1.1f;. u& F1 C; Y Q9 k- x8 r
// oˉè* ??à? ( ~4 {# b, R& r& g9 u
pLight->Specular.r = 2.0f;
' I4 H6 K& h# u1 H% o pLight->Specular.g = 2.0f;2 N2 Q. q4 \7 [0 L5 B
pLight->Specular.b = 2.0f;1 i! l$ g& a- A# u+ l
// á?oˉ / v+ w& v" q; l; i; C8 G% x
pLight->Ambient.r *= 1.0f;2 [8 l7 ?) p( W! K* H3 v
pLight->Ambient.g *= 1.0f;
! M/ s& _; W0 s) N" q/ J pLight->Ambient.b *= 1.0f;
, ]0 ^+ W9 B, d#else //__YENV. y8 D8 l. a9 z" \# [/ Q1 A
pLight->Diffuse.r *= 1.1f;
S. v/ Z, ?/ _' I" H# B! b' ^# a9 n pLight->Diffuse.g *= 1.1f;7 k ]0 j0 \1 W+ |) e8 v; G5 W- C
pLight->Diffuse.b *= 1.1f;
" K j4 C1 N% Y: M // oˉè* ??à? " O- K/ D6 N5 ~2 L: p
pLight->Specular.r = 2.0f;( D5 g; {! k A, r q# n
pLight->Specular.g = 2.0f;
. Z1 b- o4 g. _ pLight->Specular.b = 2.0f;! d' O: Y& B# K& v
// á?oˉ
2 s0 G: Y. g& |( H pLight->Ambient.r *= 0.9f;7 `) d5 v3 I3 w. N# f, w
pLight->Ambient.g *= 0.9f;
?5 [0 Y3 V5 L) T: t' P$ }- { pLight->Ambient.b *= 0.9f;
! B' h4 s& h# ^#endif //__YENV " D; ]& f$ K1 u9 |9 [% W: u' O
, c4 P2 W! S* `3 T1 e
memcpy( &m_light, pLight, sizeof( m_light ) );. \- f7 X8 P3 M( W/ U" E# b
0 b0 V) [% U% t4 ~* j4 |0 f5 W8 G5 V% r
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
' d2 D e# r' o( s D3DXMATRIX matTemp;8 J( m3 u3 o6 h6 b$ T; v/ M
static const float CONS_VAL = 3.1415926f / 180.f;, J2 U. p% u! [# o' z2 Q4 t
8 W2 ^, f+ N$ ?5 G: w D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);6 c- B+ |4 w4 U z6 P: z
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
) Y9 f8 h& r( `% w V pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ( S k0 u1 Y5 ^4 E& [8 w
pLight->Appear( m_pd3dDevice, TRUE );2 s- r( i, W1 I; }# |- X Z
8 h- G9 l2 `' M4 \* q1 k0 Y // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ N A9 _( y: b2 n0 X- G
// D3DXVec3Normalize(&(vecSun),&(vecSun));
" f: Y X6 I; F& H4 _ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 i/ @) D7 y! y8 l3 R4 t% n
& e: _% [+ E8 l3 p2 H: D- \ DWORD dwR, dwG, dwB;
l( a0 ^$ w' P1 E3 [# q* E dwR = (DWORD)( pLight->Ambient.r * 255 );9 n- u# ~" V- {/ }
dwG = (DWORD)( pLight->Ambient.g * 255 );
' U) U: K: G# M% r2 {& k+ S/ T4 e' s dwB = (DWORD)( pLight->Ambient.b * 255 );
$ t' O+ {# k: D D# }9 }+ i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 K) O* N0 h* [- V7 K; H/ F }
4 G/ ]2 \# J- l, |+ ]2 y }
! L( e+ w# L) }/ @2 C1 \# ?' g) m
; b; L v% t% i. o m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );" f1 t$ c) Y7 s
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) );' O6 b% _* b Z4 A! r
::SetLight( bLight );7 T! D0 S; x/ k$ {9 w. b
$ \2 m2 a. K F+ K" z // ±ao? ?D?í???ó á¤à?
5 c# J6 N7 Q' h6 F m_pd3dDevice->SetMaterial( &m_baseMaterial );
, @, D! J. k. V; B! _ 3 y) |( r6 B# v/ H2 I* t9 z' C9 }
#endif // not WORLDSERVER
8 v' G8 w7 ^& z' z, K}0 L4 R7 ^0 ?, D
并更换. L- \9 F1 o" @! X" T& |
Code:' \# f7 T2 N1 P: d( g* i
__FLYFF_INITPAGE_EXT
! B) g' }& K& ^" n定义" z V, n2 v8 g/ I v$ `9 N
7 u% F" J5 N: X0 c ^ i
3 c1 D8 [, j3 |) Z i
2 I" N9 s9 _: u n E# U
: e3 w! x/ O9 W9 B现在终于删除我的狗屁加速...
9 o5 G3 [, C; u, X2 ]3 L* [, O: D# a0 e
: @) u- ?7 `7 E6 a3 N6 t. Z6 V
" @; z' g, X9 ?' ~6 Z! X6 Z0 e
|
|