|
|
食品车:# M: d! @3 \. C) ~
尾翼:
! S" t9 x: r9 A w+ C# S; t* ^) n
' D$ G. @, W& y代码:: f- S9 f& F7 Q, o
CWndAutoFood::CWndAutoFood()0 e, w3 C$ G |+ X- K
{9 E6 f- P1 K3 e/ C+ M
m_pItemElem = NULL;5 K$ [6 y1 k& K N7 S
m_pTexture = NULL;
& q9 m, y1 `$ z, c; i* c* [ U* M bStart = FALSE;; l" Z: z' n2 K6 q6 p$ a; p$ r
}
% |6 t, K" p. w( ^5 p- E; e1 U9 ]% b" c5 Y, B' d( B
CWndAutoFood::~CWndAutoFood()
. o5 ]+ M9 t& J* D0 Y: i{$ ]5 g# R2 U; F* R0 V. u, `1 p
AfxMessageBox( "AutoFood ist gestorben " );; a% `3 p8 v& E4 ]' T
}
& n* r5 l& x. l u$ [7 IBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )2 N7 j1 r( E2 O+ e2 Z& K
{9 y: q i6 O$ V L5 p; S
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
) p; f4 g1 [0 v5 O5 ^% g}
- }- u f& m" D( }& N) V* D* p
. J! O* [! R4 d0 B0 k1 oBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )1 c, _. y7 `, J3 b, v' g
{
" |0 _, f4 U+ z( @ LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 D8 |9 J) D' [
CRect rect = pWndCtrl->rect;
0 R) N) E9 |& m5 o4 p0 O. T if( rect && rect.PtInRect( point ) )
/ _& N; u! e8 D7 P k' B6 a1 ^ {! B2 a( ~7 f C3 ^1 }9 o c; O
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );& h5 n; u" j- D( v7 t6 `
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 Y$ Q) Z" ]5 m1 k/ ^% j
{& @7 I$ P, u) N0 g. L" ~
if( m_pItemElem )
; a. v0 a h; H" l3 d/ {4 v i" H {* J- c, W) H. ]- f" u0 _8 @
m_pItemElem = NULL;
8 z% j6 y7 H' a' W; d }
; e3 Q' b4 o# E9 }% {, n( D m_pItemElem = pItemElem;
- Y4 \; c0 T x. _5 Z# Z m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );4 g7 k; U- j& d, E! j8 e
}else{
; Y5 Z" S0 ^2 h% Z SetForbid( TRUE );' J6 C& O* k, u+ c2 Q
}
) N1 g4 y+ R' t }else{
1 f; V6 P- f7 \4 F2 o% I# h) ` SetForbid( TRUE );1 r9 d |; r0 A& \
}! C# C6 }) @, x+ l
return TRUE;
( ]+ `8 e7 K4 X/ i}
( f% b3 c6 m* ^: U; [* X8 ~! q- p: p" y& Z" A$ y; N7 R
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )' h( l8 w! L: a
{2 K3 n- \6 g7 z9 y4 }/ F. a
switch( nID )2 E% \" C5 a9 z* D5 k
{
9 a5 c/ n; I5 A9 t9 E case WIDC_BUTTON3:+ h! x- v& ?7 E- e( y) B
{
) q1 S G$ U0 s' [$ {, G2 K bStart = TRUE;
6 ?4 Z+ q2 F! s0 l3 P! `; f break;
( S1 _& Q% a2 t5 z# f, h1 l# w }
' R4 w" a, ]/ I- m4 W+ j* Z9 t case WIDC_BUTTON4:
) K t4 M! d8 B' x5 B4 i {( m; ]/ f& |2 m- s I3 d6 {
bStart = FALSE;% N9 l! K: ^5 K; }* R, N
break;
( N$ t# X! E) b+ P) d1 u }7 b* Z ]" b3 @! S5 }* N- G0 Y$ |
} p( ?) I9 Y0 a% Q
return CWndNeuz::OnChildNotify( message, nID, pLResult );
9 o1 [4 Z8 c4 m4 Z$ L} 7 M& X! S' x7 Q, N( ~6 |& X/ k
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
- W* W) ?8 I: y% Q7 y# r{5 i5 b5 v& J7 \' Z
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
1 S9 `/ L# g Q! f if( bStart || !m_pItemElem )/ z/ C3 O- `- |& o9 H# q/ X3 D
{7 u- u% ~% C0 w$ V4 p+ C$ o% O
pBtn->EnableWindow( FALSE );
* i: S, T F' l6 X }else, n* W* S, v9 v
pBtn->EnableWindow( TRUE );( p3 h; u" n2 h& i
if( m_pTexture )
& V( Q# z7 [& a4 v! ^2 V/ m { W3 x& d% N9 T' Y+ f! H0 Q- E
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; n3 K; C) ^' H( z4 E if( wndCtrl && wndCtrl->rect ) F4 ~' S. ?3 o1 K3 y
{
4 H% g! w2 W+ A8 d m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
2 J. D7 f7 }! L0 B: W }; a' I9 M4 j& e. e2 p B# c# F
}
& h1 t5 L0 g/ j W6 G; C/ u}. r8 Y. z! A3 d9 K
9 g9 D& ^) ^/ _: J* _BOOL CWndAutoFood: rocess()
5 N! N3 W2 r: v{" P/ C* k$ d7 c: h; [5 T" C4 u
if( bStart )- G0 G3 x$ l4 j8 j. `5 X6 f- h* ^: m. C
{
9 T0 B2 ^" h: k6 @4 q4 H: Y, ` if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
) I7 I6 c2 e2 i {
0 {* J4 {3 t) i if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
0 W+ Y' ]+ Q, ?/ r- W g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );6 e/ S$ J y. d, O' S7 @' a, I
}else{+ J. V4 {, M2 ~, P+ P1 O6 @- ^$ ~6 s
bStart = FALSE;
& b8 T+ {- X G m_pItemElem = NULL;
0 N, v3 _/ J! R! h+ k }# k& i" K0 _$ y& p: Z/ q w
}' B" t; F5 t* f; {, `/ W7 Y
return TRUE;8 @" w" W" h% X* ^5 n8 K- O0 F
}
6 Y3 {7 M% w% d, o5 z0 ]; V a v# `4 i( W; a% k
登录视频废话:
: t0 C) X, @+ I4 p1 g4 R7 j尾翼:
' D1 K9 P v5 R- G' F0 i# G0 Q9 J' u9 B: n% ~& o. `4 }
代码:
" v" d1 c- f, T8 D# L8 F
9 L# m/ ~" ]/ Y2 G3 P& N/ [void CWorld::SetLight( BOOL bLight )
* A5 f# K g8 \1 ]8 P" s& j. udurch, E+ c3 F+ |% X7 b
Code:
" r2 Q" [( J, ~; o6 \void CWorld::SetLight( BOOL bLight )" r& n- S& U" W4 F4 M1 l' X% X
{+ q+ @4 ] C- x- }
//ACE("SetLight %d \n", bLight);( H* L4 ]# R; M( U/ P; F2 Y7 d
% S3 i, E( Q1 q v#ifndef __WORLDSERVER V/ d' p& P8 p2 s3 U
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);, {9 D; T$ G, C: f2 l: z5 k
CLight* pLight = NULL;
9 g6 O, J. @5 m; E3 C1 ^8 ^3 ^( J3 I; c2 S: E, B- \, M4 V T* i
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 K5 p! O E, P, y4 r4 N8 f( g A4 U& H7 X. _+ f' g. u
pLight = GetLight( "direction" );7 |1 ?& p& J2 g" w5 m4 b* c- `
( g8 |$ |! S$ b) {- B#if __VER >= 15 // __BS_CHANGING_ENVIR
3 u- a6 K+ I5 Y2 H: ~ if( g_pPlayer ){& C; t( O) w$ [: |* q
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );: C+ |+ B5 Z8 o$ w# T/ f
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !! W* L+ o* D* N+ Y+ |
{
' x/ }' g9 E- h! }; V if( pLight )( ?2 ~2 `" ^5 d! E- j
{
. N+ T- `- O4 e( N! z; g7 n* r/ N pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
& k( Z" V$ i: C* u pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
2 m, E; D9 W2 |1 H; N pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
- Z) g/ j, r/ J- B/ u% E! S/ ^! N& b
pLight->Specular.r = 2.0f;) v. R8 y. R$ ]( b7 Q% x0 g
pLight->Specular.g = 2.0f;: Y: h: c3 Q8 ~
pLight->Specular.b = 2.0f;
) Q& o8 G, F8 \& k
# G+ ~. \" b+ ~2 W6 @, ]2 D pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
1 J% {9 i2 w. a4 C pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];, h: C6 R' l& R( W9 J) B. Z
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
9 x' X' `8 E$ z: y
5 k: x8 `% c7 q8 r# i! V HookUpdateLight( pLight ); 8 E+ u* j* |* C/ b [9 ^ P
& B* w, N% b5 i
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( J9 x6 E4 m! G: q+ s! }
5 }$ h0 O! l& j( W
pLight->Diffuse.r *= 1.2f;- f' D$ M+ d. Q% P4 P! i; B4 y4 S
pLight->Diffuse.g *= 1.2f;( W/ K* I% r. t6 ^, U# C
pLight->Diffuse.b *= 1.2f;2 ]" A" w9 d: b4 m) u. | c/ e% D
5 z2 [. R0 h: B3 U2 d
pLight->Ambient.r *= 0.8f;
( Z! ?' W r5 l, ~9 C, v pLight->Ambient.g *= 0.8f;# \3 r; \8 [; Z, K. A2 @) v
pLight->Ambient.b *= 0.8f;
7 e$ g u, x) C% z7 J- d $ [, S e9 \$ D
memcpy( &m_light, pLight, sizeof( m_light ) );. u3 X# B$ V: T# f* M/ ]
/ s( f S) D' U7 k9 w D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# G' p5 P' d! t: d, T* e! J" L: x D3DXVec3Normalize(&(vecSun),&(vecSun));% [3 U' f0 k5 m O/ s' |
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
/ U! _. b$ | o pLight->Appear( m_pd3dDevice, TRUE );
: l, d+ F F0 e) v8 t7 G
) K: f5 w& N6 j6 Q3 h DWORD dwR, dwG, dwB;
6 o" h$ F5 D7 Y; p' q dwR = (DWORD)( pLight->Ambient.r * 255 );) y% b, n9 B/ ]* N L9 K
dwG = (DWORD)( pLight->Ambient.g * 255 );
c$ H, l& y2 }) d; ], f7 o/ n dwB = (DWORD)( pLight->Ambient.b * 255 );
3 ]& \4 s: N/ n7 c5 { dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );1 Q6 i. h/ b2 D& q2 V" V' o
}
* F" Z9 E* Z) ] } U7 Z1 S# W+ w' P1 e/ a2 [, x
}& {; ]8 s' V+ U6 w
else" F+ s3 i5 {& I5 ?: c! P2 p
#endif
. J4 Q* y( {2 R$ _ W$ D5 D6 _' g
& n* @$ \ z: q8 Z# i if( m_bIsIndoor )
% G4 l7 Q- m* X/ s7 ?$ e% H {
( f; c. H7 l8 v2 C2 c if( pLight )( A& m2 l# y' }- m
{ . t8 V8 [9 [ M' b" L
// à??μ oˉè* . Z# A& ], |, w7 M
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
3 K& E% M- H. @( n) A7 y pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;' L: x7 s. ?% f6 P E& q, r# T
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;; d5 g- w; O" o" J0 E% t2 M
- ^' d* u2 _' b# {5 h& a. U
// oˉè* ??à?
: O' p8 z! t# @ u+ k6 S) n5 t, n pLight->Specular.r = 1.0f;" j" t" P- U4 s, S5 R8 q5 H
pLight->Specular.g = 1.0f;
a I5 W t$ u' P; h: a( t- z pLight->Specular.b = 1.0f;
6 I! J6 k% n) m' c. _/ v // àü?? oˉè* 7 H# U+ i; A! \4 ^
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
) J+ k9 v8 V$ `* _0 M; w3 T2 L pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
% b. [2 S: M) v: A7 ^ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;9 H6 O7 b9 Y8 A5 a3 W& ]3 _
{" Q0 ~5 \3 ]( t; i
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
9 k2 v0 Z" w& F2 w J4 `9 _ {6 a) T- I& U5 J0 D
pLight->Diffuse.r *= 0.6f;; }9 z" j3 x, N" x _, F
pLight->Diffuse.g *= 0.6f;
G( |- L6 ]1 A( \& T+ h+ L4 G pLight->Diffuse.b *= 0.6f;
8 v, L+ [! S* B$ l1 `. X; W pLight->Ambient.r *= 0.7f;
: b) K4 d0 `) [! F: Q6 h7 M pLight->Ambient.g *= 0.7f;
1 w8 l( l, m. @% a pLight->Ambient.b *= 0.7f;+ S+ I! L2 h/ l" x) P$ f& _
}. W/ J3 R7 L |% G& N0 w( E
% F" w$ e8 o" e. y: c#if __VER >= 15 // __BS_CHANGING_ENVIR* Y) Y$ n: | e3 \3 m
if( g_pPlayer )) ]; F0 ^9 J7 p" N
HookUpdateLight( pLight );9 O$ |0 I @$ U2 L1 V
#endif
) t) f. l: o/ L memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. k1 O3 b' o5 Z# K0 ~+ m: i. ^0 M$ d3 |6 d3 N* R- p2 P( d0 U
pLight->Diffuse.r += 0.1f;
, r3 k& W6 B' Q+ I. O/ s/ Y pLight->Diffuse.g += 0.1f;8 Q0 Z8 u L4 a+ \$ z
pLight->Diffuse.b += 0.1f;
' ^0 X- [: \6 d // oˉè* ??à? . {3 W) G+ a$ R: U% S
pLight->Specular.r = 2.0f;
$ X3 `# V- _) D8 Q5 C pLight->Specular.g = 2.0f;8 J3 z/ r6 t2 G
pLight->Specular.b = 2.0f;
8 p. W- m7 D m) p. j // á?oˉ . J/ n/ b: X0 f2 A: g3 k6 C S
pLight->Ambient.r *= 0.9f;
) O5 {5 H# _, A9 z0 S, ^' V pLight->Ambient.g *= 0.9f;
2 n A `9 E, `6 N) }/ m' ^ pLight->Ambient.b *= 0.9f;4 f( ]/ f; {8 t6 l) M) k0 H
" ^8 d9 L, }! N" B2 U% I9 \( z4 W. b memcpy( &m_light, pLight, sizeof( m_light ) );$ e: X2 O$ k: T' ^/ \1 Q) @
2 i9 ]: z2 n5 o/ Q7 C pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );) J: |6 p/ o; i/ X( N
pLight->Appear( m_pd3dDevice, TRUE );; s: Y" J' s- \% A1 X
0 g: u( r+ ~6 C# B& ^
DWORD dwR, dwG, dwB;/ E, _" W: p+ t) f. f. P
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 F6 o) T9 R o6 x dwG = (DWORD)( pLight->Ambient.g * 255 );
6 P- H, k! I2 W* s8 H# q H$ r8 G dwB = (DWORD)( pLight->Ambient.b * 255 );2 ?9 ?- w1 J5 d0 s% m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 _" i4 R# P8 L8 T+ i' V }
1 i2 Z3 L+ R2 @- m }6 b6 G {! p% o8 D& {$ Z; w) V
else
, R# ?7 m- W0 d( m U" C; G1 o" x {" u! X( s6 @% H, c# F
if( pLight )) e0 _* M( R1 Z& j" t, r
{
g- r! w( c$ c0 f8 q , ?$ ~4 l7 [4 u
int nHour = 8, nMin = 0;+ A% _0 @" H) g% R
#ifdef __CLIENT- n4 i9 b T" @5 C( ~
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. : D. Q" q9 y) {" G, b, a7 S
nHour = g_GameTimer.m_nHour;
; x \$ ?5 F, B. B3 m% ? nMin = g_GameTimer.m_nMin ;8 {! M, ]0 h( ?7 G
#else
. C1 i4 a c- B" F' p // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
0 Y! t/ E5 B# F: G U if( m_nLightType == 1 ); h; h/ y! W6 G9 b
nHour = m_nLightHour;" y" K& Q% j% T: w7 s" P* R
#endif' k/ ]" H1 s% v
nHour--;
# S# x/ I/ A) t1 W7 \/ K3 G/ ^ if( nHour < 0 ) nHour = 0;$ V1 F5 f3 R7 F7 t' l, Q
if( nHour > 23 ) nHour = 23;
$ W, a+ `9 R9 ^) [0 X# ]$ O% _) ^3 W! j8 N; U* e( |: l" \1 c
//if( m_bFixedHour )
9 s% |, \4 J. g# Z( B# r+ p // nHour = m_nFixedHour, nMin = 0;. {3 R- Z! {+ \% {" q5 j
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];/ I- }; _# y) g
LIGHTCOLOR lightColor = m_k24Light[ nHour ];6 p3 Q# `' `6 d1 H) p0 d- D
! s0 I2 d) H- D& B3 a
//m_lightColor = lightColorPrv;
. ?* J' V- g4 [% J' h- n2 n1 I lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
" [* v. z P D" l lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
- g5 J2 A( a6 T3 m: C) P lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
- \8 h4 P8 e& k# |+ E' n lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60; W8 q, ~- d+ F+ p
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
* L9 F. A% s, G2 Z2 I lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;3 A2 ~ R) q. l3 {6 ]
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)! ~' ]( y! d3 }7 `
1 d5 D' X+ v0 N3 V! \: L0 v/ |9 W // à??μ oˉè* # s1 [" V. ^1 m" P0 }
pLight->Diffuse.r = lightColorPrv.r1;; ~3 \1 R% ^- Z
pLight->Diffuse.g = lightColorPrv.g1;( A: j7 I6 d0 \: `( ]4 k
pLight->Diffuse.b = lightColorPrv.b1;
* B1 T9 G. B! m6 y2 Q4 D( e // oˉè* ??à?
/ G7 u) C9 N1 ]3 r/ a0 A( f pLight->Specular.r = 1.0f;
- y1 t+ \1 {6 ~. a& Z pLight->Specular.g = 1.0f;& \. I( l$ }8 W- ^
pLight->Specular.b = 1.0f;7 F) G/ k/ Z) Z4 \
// àü?? oˉè*
+ @! B5 v) P& H- q/ O" I q! v pLight->Ambient.r = lightColorPrv.r2;
4 a9 e+ D: h) e# c3 H/ u) D pLight->Ambient.g = lightColorPrv.g2;: H/ Q3 y7 g/ p8 @. F
pLight->Ambient.b = lightColorPrv.b2;( n2 K L3 ^) V+ W& J
2 A, x$ w% A8 x# t& L
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 E1 V9 `% h/ C5 v! C5 @ {
3 O; b2 x" I: @5 H0 P pLight->Diffuse.r *= 0.6f;; Y% h I" U( W
pLight->Diffuse.g *= 0.6f;& @8 C, f' O' Q# G3 `
pLight->Diffuse.b *= 0.6f;
' ~9 H" B. M8 F2 T l" M pLight->Ambient.r *= 0.7f;
7 T' h3 N. N$ ^3 B! l9 S( Y* I/ ` pLight->Ambient.g *= 0.7f;
; L8 g9 u* }6 D( P8 r0 @2 N pLight->Ambient.b *= 0.7f;7 e* Z a$ E# Z) y) `: u' }/ x3 V
}
* v( S% u8 r) ^. R 6 L' N* N" A- T1 M& T8 a
#if __VER >= 15 // __BS_CHANGING_ENVIR
! M5 T3 W2 d: u3 c y) g# ~+ C if( g_pPlayer ), b: y0 v' [( J6 T# X8 t$ S; q4 x1 X
HookUpdateLight( pLight );
5 G$ D1 z, K/ Q9 v3 h4 Z! k) u/ q#endif
7 `$ t4 B" d# C& b. g memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 I k D5 b7 l+ x8 J
0 t3 @# _% D' q6 D E7 `4 a
#ifdef __YENV( {/ `& @# h/ B2 E; }7 b; [
pLight->Diffuse.r *= 1.1f;, `& ]( O9 K7 v4 `. b" h% w
pLight->Diffuse.g *= 1.1f;
6 ~5 b9 `) Q3 q0 X pLight->Diffuse.b *= 1.1f;/ [1 s: y" |$ `9 T7 l" N
// oˉè* ??à? 6 A/ C4 U6 o2 P7 C) c
pLight->Specular.r = 2.0f;
* g3 {' @4 ^. F% l& y5 n7 y# s( u# r pLight->Specular.g = 2.0f;
; |7 ]$ H D, @, v3 e pLight->Specular.b = 2.0f;1 a+ m; O. ~# L
// á?oˉ
" b4 C) U! A1 t: ? c/ e. N pLight->Ambient.r *= 1.0f;
7 y, z; [6 l/ b( D+ N1 G, o pLight->Ambient.g *= 1.0f;
/ g6 l Y4 H; O) S5 C& I: Q8 } pLight->Ambient.b *= 1.0f;4 B" r6 }, V! p( K9 J% h
#else //__YENV
/ P- F- m8 L: Y5 Q pLight->Diffuse.r *= 1.1f;8 p7 g2 Y- G3 z
pLight->Diffuse.g *= 1.1f;
" n& `$ c! K1 `' _ pLight->Diffuse.b *= 1.1f;8 \2 l: J1 w2 |$ q- g3 l ~
// oˉè* ??à?
+ f1 `/ c, O6 F/ a pLight->Specular.r = 2.0f;1 i% l$ _$ A f8 l/ _, T- w8 P
pLight->Specular.g = 2.0f;
- G9 z( y ^, m, x D pLight->Specular.b = 2.0f;
; s {) z' Z- Y4 @0 E, S) R# [5 Z+ O // á?oˉ 4 \. H2 @! r7 \; f, r& J' m
pLight->Ambient.r *= 0.9f;
, o# F& M6 E5 a% h5 D# H5 h9 B pLight->Ambient.g *= 0.9f;
8 \8 R8 c+ A$ V: @' a: j) ] pLight->Ambient.b *= 0.9f;
7 Y. x4 A; m7 J. C, v#endif //__YENV 7 n2 ?- E0 J/ O$ V$ [8 F* \9 c
) b+ T1 B& R$ ?7 G8 b memcpy( &m_light, pLight, sizeof( m_light ) );
+ {) R) M! y9 M5 c& z; c& i' S
7 E! U- z/ U$ Z8 D9 ?6 Y D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
* P- N. U, u, D0 n) a6 `, E D3DXMATRIX matTemp;
+ ]0 ?) `0 c6 z( t! x6 J. P0 B static const float CONS_VAL = 3.1415926f / 180.f;
% _- R: N9 f0 F5 z
; L: E4 q5 ~9 K ?7 Q D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);& E6 z9 s/ e! c4 j
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);6 C* N, q9 n1 ]; f! g
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ?/ P; S: k- Q" _ M% t
pLight->Appear( m_pd3dDevice, TRUE );; D, d' Q9 H8 t/ v6 T8 u9 p
4 g; U4 p6 P7 l2 ^. f6 s // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);/ q) d+ @! R+ K2 W7 I1 {& B
// D3DXVec3Normalize(&(vecSun),&(vecSun));3 `' U) {: r2 ^" d- ^ }7 X
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: y5 M6 S$ X, I8 |( A# H/ j2 m7 j- u; _$ F) Z# H9 _) ]9 F6 V) o
DWORD dwR, dwG, dwB;
0 j# U m! z7 A) R& C dwR = (DWORD)( pLight->Ambient.r * 255 );
9 Q2 m7 c8 q. u1 x' n dwG = (DWORD)( pLight->Ambient.g * 255 );6 I& V5 b% \1 [$ Y
dwB = (DWORD)( pLight->Ambient.b * 255 );
& \) B! y3 r9 A" e7 t dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) i* |1 a, F% c: X- {6 H
}
8 a* m- `; `6 Y5 _, ` }
1 A8 j2 |$ c$ I' {% a& Y3 m2 R6 e+ t3 g8 y* [0 W, w9 I
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );- z% B2 V: z! L
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) );
( X) b1 N* K8 d7 Y- }/ I% I ::SetLight( bLight );
& v( A% y, A6 x& w- g1 L/ H- @! `
// ±ao? ?D?í???ó á¤à?
8 ?8 r; A3 W8 h/ f m_pd3dDevice->SetMaterial( &m_baseMaterial );& r9 c I' o1 U$ W/ f
. h' j' h K( ^) X9 ? g
#endif // not WORLDSERVER
* k& S' [/ A3 g$ ^}
/ U+ i. o! s1 r$ e6 [并更换! j+ z: U G& `, u+ R: B
Code:. i* L7 l. g' r- E
__FLYFF_INITPAGE_EXT. O5 b- M0 p7 O" x' H
定义+ P+ Q* @4 Q g/ @
7 }: |9 o6 y1 ^7 O8 `& K# H# o5 L( Q0 W, o6 a# g$ V
% s. I9 @# |% J/ F- s( h% n
: H& J; }9 g* U) b4 C' G; g
现在终于删除我的狗屁加速...
f$ r+ r" u# @4 o( K2 W0 [
; `1 L' }" c0 Q$ }1 `& p7 P) W
. [4 j F' B- ?. S0 T
9 k5 z n$ q& P- N4 R2 `7 l* b |
|