|
食品车:+ e5 f) p) l+ M ?2 _
尾翼:
# u( y4 f, `) H% P# x2 L/ n) e5 j* d% e
代码:2 s+ E! i5 j3 b+ C& I
CWndAutoFood::CWndAutoFood()
6 |3 a/ e% K5 ~{
, J) Y6 @. H; O" y% c m_pItemElem = NULL;" T2 j: ~! F$ X8 }. V
m_pTexture = NULL;
) v F. V2 o) y: P bStart = FALSE;
1 |6 `+ X8 U0 v w& l6 _& Z6 q7 h}
& m; a- _, l8 T+ _9 |% W* n( E1 l, \3 z$ i1 J
CWndAutoFood::~CWndAutoFood()) E3 S* C% d" q' B
{0 y C5 j3 \+ M* R) F L% Y
AfxMessageBox( "AutoFood ist gestorben " );# c2 f& h5 m+ R6 T) H8 j! f/ n
}
) g2 E }' V# B" h1 SBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ); E% Z$ H9 e+ f6 x; Y
{" u* T+ R) ^! k7 b: W1 {
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );: B2 ]1 ~3 ^7 D! A3 K
}1 [, x% e) o1 g; P* v" [
6 K% w5 c1 ?+ f) C+ n; [7 [
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
2 |" q/ R# d0 j" G. H* c{% q9 ^& w7 _5 v. s& u
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: M6 e% ?$ p* |) d
CRect rect = pWndCtrl->rect;
: U5 O7 X+ G5 K1 j if( rect && rect.PtInRect( point ) ); W7 e- ^6 |; S u! H, Q
{# U2 }, O. L8 U, \' L% i$ o
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );' @: E( p3 R7 @- F$ v7 i- Y
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )( V' e; |! |) c
{
* F( }( T0 L2 n9 t# f; i if( m_pItemElem )
1 l2 L5 }0 q7 K* i( u, }7 | {2 ~+ R) Z* P9 u+ y% v' X5 a
m_pItemElem = NULL;
" c% m( @) a( ^1 n) h/ O, z' i, E' A }! O+ g. U/ C! Y& ^3 F( q7 l5 `
m_pItemElem = pItemElem;2 C" U! S. [5 D% ?0 h
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
5 |# y/ M* b5 T }else{
* q* i4 G: B# i1 g SetForbid( TRUE );7 n* K* g: B/ o6 }/ D/ L
}
$ g$ z- T, w# e* k) Y9 M }else{
! Z" r$ d, m: {$ v3 n; G! B/ x SetForbid( TRUE );
* y. B# Z' u; o- ]% k/ f" [ }* _# y' j( `) w
return TRUE;
$ c+ w" |0 V" ]}, c6 ^$ m8 u$ |% v
( w( v+ j5 T2 D% K( E
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ), P, u3 Y" k' K: K) M
{
( O( h8 O9 \0 X$ j9 f switch( nID )* k0 {" M7 ^/ m9 P
{
' a8 Y- J: e7 \ case WIDC_BUTTON3:9 Y$ t# l; |4 }+ X7 {
{
4 Z. O4 s# B' s9 }! ~ bStart = TRUE;
. ?9 k7 p( w; i break;
" g. f" ^2 r& `/ I. `5 [8 V- X }
- U2 U9 {; o* D" ~6 K4 V8 y; ^3 p' i case WIDC_BUTTON4:6 q1 h0 l4 w( b. R$ Y1 _
{: Q7 t* g* ^$ O; x- l6 k, ?8 E
bStart = FALSE;
4 Y" B$ s. _ @4 D break;
. x# w- M e* _ }- M0 I/ g0 ~ F3 S' m$ J! l6 _
}" f% `+ a7 m- r6 O
return CWndNeuz::OnChildNotify( message, nID, pLResult ); M" d. U6 y" x" X
}
9 k8 W( M" {2 \. `5 z" Qvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )9 |3 I4 }7 C5 c2 O3 [# c
{+ H/ @- U0 a% p1 K8 `
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 ); U" [" e# R+ k) @
if( bStart || !m_pItemElem )! ~( i- G+ M: o% S u0 [
{$ A6 E6 O k4 L6 v! q: G6 g
pBtn->EnableWindow( FALSE );
4 _0 D. Y5 M! p' {3 q+ e }else: D0 Y6 J$ b% Y5 f4 u5 ~2 h
pBtn->EnableWindow( TRUE );* m' S2 Z& p% {
if( m_pTexture )8 i0 i- a7 F7 n% M2 v
{
9 m8 l& p. a/ ?7 H- p LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; n b; B! o% u/ ?
if( wndCtrl && wndCtrl->rect )
" r# b+ x: z8 {6 c' r, q/ ~0 D0 { {* G: A! ?4 i8 Q6 G' Z1 w- C
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );) o* _$ f8 E% _
}8 O& ]+ x/ y, g& S
}
* _" o; B; [$ z5 \3 d% N}+ G7 H) I' \6 A, X3 E
1 I! ]5 z9 E& B1 `
BOOL CWndAutoFood: rocess()
6 I0 P/ ?! f$ J{! O) e; x6 {- [. | P2 A/ T* ? U
if( bStart )
) g( r- {7 p3 q! o+ T/ e1 p; F {
8 \7 r) s8 q" v if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
+ u) \% O: W1 Z: N+ J {2 Z% B; f* Q& H: C4 b+ 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() )
5 k% {! H3 _: V$ v1 [ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );: a5 {- T: G9 R# I& b3 d
}else{
, s" M* C- F: d1 M3 m& e bStart = FALSE;" M/ k* Y4 P0 r6 K7 I; l# P
m_pItemElem = NULL;
( } n. Z0 q4 h% m6 C4 Z }
$ o% W I ^0 T9 Q9 f5 g }
c; m4 H2 J( m: G return TRUE;
5 c$ V+ w0 l& }4 r4 n6 s" n3 P}; i; Z, h# K) Z/ }0 A
. c3 @" M3 }! \2 D7 E- w
登录视频废话:
" P' R: _$ h9 ?6 Z* S尾翼:
( \! K# q3 c3 K. p
) C5 F z+ Y' D$ ~( t/ _代码:
7 U, i' {3 l& b% i) O3 N! j$ ^1 m: T; d% Q( _; ^% @) V
void CWorld::SetLight( BOOL bLight )+ u. D" P! V# S
durch+ f" x4 I; J2 a* M: M1 `
Code:8 T" z( K9 f- D( d. q. a
void CWorld::SetLight( BOOL bLight )" |; h" m8 ]$ a
{
9 X$ w% m y+ Q( l //ACE("SetLight %d \n", bLight);+ |) r7 t, H- |, k% s
# H7 c/ ?+ ] q6 X& T/ @
#ifndef __WORLDSERVER
$ o' N/ I M. R# b+ t& B! j% m! d% e DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);, O1 f" A: Q1 C; Y/ G6 O
CLight* pLight = NULL;
3 A. x: D/ _, u4 G0 }' h5 M4 v8 K9 J: }4 [8 U5 f- s( ~
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );! N" P6 B: {' H; f
+ f8 k+ N/ V; o: r2 S1 ? pLight = GetLight( "direction" ); a7 d# w# R' w
4 h# y9 ~* `5 \4 ^" |, A, J P#if __VER >= 15 // __BS_CHANGING_ENVIR" C+ d- A$ j n. J
if( g_pPlayer ){
/ d" r% C7 `- O0 x" J; d0 K5 i ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
; v1 K6 e: I: j if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 A+ q( K' e/ R9 V. i
{# y0 K. t( W( O2 d, V" W* [
if( pLight )
* _# _! q& U/ g. ] z! E {
* M: c; I( f. f7 ~% N5 A pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
2 N6 P, E0 M1 ~% g0 _ pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
3 A$ D' M/ g* B D) A6 F O pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
! U5 T9 H. }3 D, Y" O% p1 z* q2 `1 i! L8 G+ G
pLight->Specular.r = 2.0f;4 R! i: U. ?3 |
pLight->Specular.g = 2.0f;& p% b" H I! z
pLight->Specular.b = 2.0f;
* K) `) ]1 Q: C( c# B x
0 e$ t3 {4 h# d6 P3 E6 f! U8 I' a! i" o! t pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
; N0 p, [ }' G4 H pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
( F5 R* D, |8 B ?$ i o pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];/ K4 w! n5 P$ i# K D0 [4 F) S. q- u
. s5 i% b3 @& [$ l3 W9 Z" P: Q0 D
HookUpdateLight( pLight ); 7 F$ I; m3 e' f& t5 i
7 b7 |" e3 n0 b9 h% u) T/ _2 ?
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# o: L V- s' m0 s( }6 l
2 P1 n$ |$ F! j5 P9 `2 u pLight->Diffuse.r *= 1.2f;# {. w) z9 k! D
pLight->Diffuse.g *= 1.2f;) m. v) q0 |* P0 d% ~: X) m8 t
pLight->Diffuse.b *= 1.2f;, P, [, O& X! g! F% J) H
( {6 x$ ^& a# X9 m( v7 p
pLight->Ambient.r *= 0.8f;9 E+ L+ w% Y. U+ ]* p/ E/ A
pLight->Ambient.g *= 0.8f;
; J* N( I3 v9 G ~! o pLight->Ambient.b *= 0.8f;
: _& n" t" G8 `" O
2 r8 b3 H' t; Z9 i% J memcpy( &m_light, pLight, sizeof( m_light ) );
. e; C' a( w- h* ], x) B
* H! j) X, t6 t3 X6 w! ^ D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f); c( S9 A5 i0 o1 F0 K
D3DXVec3Normalize(&(vecSun),&(vecSun));+ ?% j9 f7 p% R: r0 v J/ k7 n, p4 W
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " }+ _# z0 J5 ]- J2 `( M5 _
pLight->Appear( m_pd3dDevice, TRUE );7 w6 ?5 [# y5 N4 S- \
* R4 L1 N% w4 U DWORD dwR, dwG, dwB;
% g" k: c: r/ n- H2 Z8 x, Q, \& d dwR = (DWORD)( pLight->Ambient.r * 255 );
) @ J* D. j8 H" T' m dwG = (DWORD)( pLight->Ambient.g * 255 );
8 }; P6 k' p6 @$ E# p0 g% S9 T, K dwB = (DWORD)( pLight->Ambient.b * 255 );" @) U2 p# N) q- F {
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. c( L) J, P5 ?9 D }! W) H' f( r* H. R
}
8 c# Z5 J7 f$ ?% ?- e2 L \ }4 P* C" l' Y4 s
else
& U. E6 K9 w o; a K- E+ X8 i#endif , U# L9 n. P% X
* F2 c7 ~" t `/ l* o if( m_bIsIndoor )
) K+ j# h& s4 I1 Z {
: r3 @! t) l* c2 h. x3 C; L if( pLight )) [- A0 T' ~2 S$ K1 [9 y' \
{ - \$ N3 [+ \" _$ N6 v6 r
// à??μ oˉè* * O, ]& ]$ q% G1 o) e& n. M" P* P
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;0 X; M F3 i2 {8 [3 N! E
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;2 C h, o# ]: z. }! O4 E2 V
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
7 c4 m! _# Z X8 R
/ U; L$ _2 E" E5 t // oˉè* ??à? 8 C" }( X: O' S. K, y
pLight->Specular.r = 1.0f;7 U9 @4 E4 h0 ^& E1 i
pLight->Specular.g = 1.0f;+ H# E. F- E4 F1 x
pLight->Specular.b = 1.0f;2 G/ `8 e2 @" g7 T; A( K
// àü?? oˉè* 5 N' f0 Z6 J A+ v
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
! u8 Q' V# p7 ?" y' }. ?9 ~7 F pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
9 K9 f/ h }/ G h. W2 V pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;! N ]$ s9 Y8 e2 i* @# [! }
) F# K9 @" y# t- f/ X
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% B1 b$ ~- g+ G
{
8 g4 z1 ?$ ^% S pLight->Diffuse.r *= 0.6f;
T3 j( {8 P, S' U$ ~9 h& B pLight->Diffuse.g *= 0.6f;
' `& P9 U7 g! P( w* J pLight->Diffuse.b *= 0.6f;, z% j+ f. ?8 L2 |1 N+ a9 J
pLight->Ambient.r *= 0.7f;% j% W- y; B t" e4 I: @; w
pLight->Ambient.g *= 0.7f;/ v8 d" q: \7 y6 I: p6 }
pLight->Ambient.b *= 0.7f;
7 e z% o- A, q( a }
/ J* ?& N* L4 D1 O$ |
: X1 M5 [1 G# n8 X. ^- `#if __VER >= 15 // __BS_CHANGING_ENVIR% ?+ D7 b: u0 l# h9 B; X5 i: b# j
if( g_pPlayer )
) F; z6 R9 O/ C/ t& N HookUpdateLight( pLight );" l! C. k) C+ g$ Y2 A0 E" H
#endif
* c& d3 f) }" H$ V) z. H, Y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 s# {# [& t# I, Z' M' Q
6 r7 ^ ^9 M# Q- X& X pLight->Diffuse.r += 0.1f;8 [4 G! P' q; `6 j( S6 P) k E
pLight->Diffuse.g += 0.1f;
' A9 c2 V. d. f5 X& r/ N pLight->Diffuse.b += 0.1f;; ^" L c, H1 e3 I! Z3 Q& t! I
// oˉè* ??à? & \7 t& ~" Y( _6 @$ r6 ^
pLight->Specular.r = 2.0f; B* O5 x$ {/ y$ ]% i# r
pLight->Specular.g = 2.0f;
5 @9 _' e6 S1 E* ^ pLight->Specular.b = 2.0f;
, O, E! K# M0 g, u2 ^! U // á?oˉ
4 o( W( m# w$ p | pLight->Ambient.r *= 0.9f;
& c8 {. u6 {; B3 y% K4 ~. r5 u pLight->Ambient.g *= 0.9f;: }# Q* f9 r* }' f
pLight->Ambient.b *= 0.9f;9 h" n* P' {. j
% S3 Y$ s5 n$ i5 ^ R @ memcpy( &m_light, pLight, sizeof( m_light ) );
2 t# h/ k: y$ ~ o; {; p% S 6 ^4 X+ F" R! q% r8 n; h$ ?
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; T) n6 \2 A+ S- E! H3 E9 U
pLight->Appear( m_pd3dDevice, TRUE );1 ]2 ^1 ^/ w1 _, C5 Y. m5 V
) L+ ^2 J( O; I! D$ r1 y' G
DWORD dwR, dwG, dwB;' F3 t0 h/ I2 j& M* W. ?$ y# `
dwR = (DWORD)( pLight->Ambient.r * 255 );# P2 `! ~1 w! g
dwG = (DWORD)( pLight->Ambient.g * 255 );
: L% h- P* r. W- y3 k* Z dwB = (DWORD)( pLight->Ambient.b * 255 );
Y. `% z, W- x2 O dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 Y `& R6 `+ A
}1 ^3 G. K& T) F& i& Y/ K: [
}9 G3 |- |( u7 b( g
else: [4 z6 a3 x! M+ V( @
{! b7 Z, Y' Z1 [2 O" ]
if( pLight )
4 j& c" b0 J6 J) c/ @, Z. P {" U, | c+ |6 Q, S) A7 W
7 A2 Z2 Q2 J* J3 B
int nHour = 8, nMin = 0;9 @3 E j& u) E
#ifdef __CLIENT, ]8 w! e, V7 I6 y6 M
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. . M/ n) \" f9 i% L
nHour = g_GameTimer.m_nHour;
+ R) o. C4 H6 V4 F2 s H nMin = g_GameTimer.m_nMin ;
- G% e$ x; f' M% d# l #else* j; t L% F. c: C
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù." W6 b! [5 n) ]! k+ O5 ]: G
if( m_nLightType == 1 )
+ h2 @( ]/ z3 r) h nHour = m_nLightHour;
, {- P3 j/ V4 x$ e3 J #endif2 ~# I2 v4 j' Y5 s/ j* _0 d- e
nHour--;
: G8 |' L- v: \5 c if( nHour < 0 ) nHour = 0; w8 \9 s3 H$ s0 k3 C9 q+ q( ?' T' B
if( nHour > 23 ) nHour = 23;
* s- W2 @1 t% i4 ]0 x
; L8 ?# q: H+ M: Z$ |. e C3 H% a //if( m_bFixedHour )
8 r+ Q' h! P# W& X( I# p' G, p, j // nHour = m_nFixedHour, nMin = 0;. ? t3 _& I2 D; u
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ p9 ?. g; O$ k1 Z/ a: c/ g
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- k* h* N8 f! J" B6 z: T6 K' a0 m% T4 x% ^ U& u1 _" k
//m_lightColor = lightColorPrv;
4 i. y1 N$ ]" W. l" S8 ^0 _ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
( g4 s- c( `! y' s9 q4 u lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
5 K- v' e- @' O6 [# b lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;& ?: G `5 n9 y3 N( Z2 y4 }" Q
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;5 o& z7 q7 D t8 f
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
4 o) l: u( d2 h2 T5 ^ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
5 ~2 f$ u/ f# K9 z' B9 d, W // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)/ a8 ?. \" m6 t; z, x
P Z& u9 ?7 z3 ?
// à??μ oˉè* ) \3 R6 J" Z g# z
pLight->Diffuse.r = lightColorPrv.r1;
) m" a; b: K( c, f: m+ v* J$ P8 C! \ pLight->Diffuse.g = lightColorPrv.g1;) ]$ r: i5 a0 ~
pLight->Diffuse.b = lightColorPrv.b1;
9 q* [0 m" w" o9 R0 Z7 {' Q4 B // oˉè* ??à?
, \; i" c. R* H( X: j* W pLight->Specular.r = 1.0f;; `0 ^& S7 }* O6 S$ ]( s, r
pLight->Specular.g = 1.0f;
% d$ \9 X- I) X+ D- N! ~& v7 v pLight->Specular.b = 1.0f;' t v; ?" y0 U* O% u; U `
// àü?? oˉè* ) T% V6 ?! g9 ^" [9 r) w0 ]
pLight->Ambient.r = lightColorPrv.r2;; k! ^' |2 G+ P( C7 p
pLight->Ambient.g = lightColorPrv.g2;
: A9 A* z T& R, {! I! B# e( d" M0 _ pLight->Ambient.b = lightColorPrv.b2;5 K. i; V G+ R9 v
. S- R- Z, v6 Q/ U# s( B
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??." `: x1 \+ z4 T# a
{2 ~2 R( I- h/ M+ P9 W G3 j6 x6 G
pLight->Diffuse.r *= 0.6f;, p: d, g7 S; F
pLight->Diffuse.g *= 0.6f;3 [. u# I2 }* K+ m+ ], ` o
pLight->Diffuse.b *= 0.6f;
3 o s( C- x4 f4 R4 s8 \ pLight->Ambient.r *= 0.7f;3 A' O6 _+ d8 U& c2 ?) v) [
pLight->Ambient.g *= 0.7f;% E' G" a8 O# t- Q( c
pLight->Ambient.b *= 0.7f;7 h% c; h! ?/ b
}) j! v& K: m5 D
- q9 U6 @( o7 V/ J0 q' s% F
#if __VER >= 15 // __BS_CHANGING_ENVIR& E+ Y0 c* I" Q/ p+ A1 |3 t+ K
if( g_pPlayer )) V( G% {. W4 d1 a
HookUpdateLight( pLight );
0 q5 M$ H3 e F, i! u3 O#endif, [ x- A, q5 J3 r9 g( B) @8 N5 a
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! ~0 ^: q( V& v8 k( J; J1 j0 x( t0 q2 l3 M: ^# [7 _2 I
#ifdef __YENV! j7 N' p( S" y/ ^- j2 A
pLight->Diffuse.r *= 1.1f;' F' y& V# H. D" E7 B, ~
pLight->Diffuse.g *= 1.1f;1 R( d5 E8 S. M* E
pLight->Diffuse.b *= 1.1f;
" V+ U w% K: c0 }" c% x // oˉè* ??à? ) E; A& n. r# j# F
pLight->Specular.r = 2.0f;# [; x6 V9 ^, x, I. k# F, @
pLight->Specular.g = 2.0f;
8 x/ Z w# o" v8 j: f0 E' N pLight->Specular.b = 2.0f;
8 Y5 D: m; p6 ~2 x+ `5 F$ c7 V // á?oˉ # M& S0 k' Z- |% @& H$ N1 W
pLight->Ambient.r *= 1.0f;
( G, e @1 _% p$ c pLight->Ambient.g *= 1.0f;8 H6 r! o" @: |9 g- Q
pLight->Ambient.b *= 1.0f;
! O) D- ~ s. @1 R' c#else //__YENV+ l+ Q1 t, }7 v2 q# A7 M8 }* \2 @( Y
pLight->Diffuse.r *= 1.1f;
8 n6 ?$ n( k& L- c8 l8 l pLight->Diffuse.g *= 1.1f;% M3 Y4 \3 F% k
pLight->Diffuse.b *= 1.1f;$ i$ h( v, ~% E2 `/ f. Q
// oˉè* ??à?
0 d' x0 b9 H$ I: T6 j# f* t pLight->Specular.r = 2.0f;2 I+ z! M# o% Z3 ?+ l
pLight->Specular.g = 2.0f;
$ g% T$ l. _8 m2 K$ z9 ? pLight->Specular.b = 2.0f;. h L: }( V8 N3 H) O
// á?oˉ 8 s. G* p6 h% k- Z3 i
pLight->Ambient.r *= 0.9f;: _ H! o+ S: y3 z) p
pLight->Ambient.g *= 0.9f;
& B3 Z/ p+ o3 L% `5 s pLight->Ambient.b *= 0.9f;# H, j; h6 u. M5 r: b5 A' L
#endif //__YENV
" s& Y4 C- L& `! \# u8 t! A ( x" E. [( J# t3 E
memcpy( &m_light, pLight, sizeof( m_light ) );
7 ~5 {$ R9 E, S/ ]/ x$ y. x $ ]2 U# H4 Z* K% J" s& y K$ K- m
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);2 P8 j9 i3 n. l: y, W
D3DXMATRIX matTemp;% `. Q' k9 f& ]* Q6 Z- k
static const float CONS_VAL = 3.1415926f / 180.f;
6 I; a+ o3 x( R7 N2 e; X
1 z0 i( O* U8 Y& O9 s% a D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);8 u3 R; H9 T7 q3 ]9 s
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
b/ K- F7 C, W# V0 j pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
9 q6 C6 O. ?( n2 N) k pLight->Appear( m_pd3dDevice, TRUE );
1 r! ]' I. q3 b
`( p' g( k) |0 g/ d // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
. D- w0 ]8 f m6 r: ^ // D3DXVec3Normalize(&(vecSun),&(vecSun));, q8 g4 j5 i7 f: K G
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); O% E' |/ P/ R& o& q
' w) a0 F5 l8 \" Y& T4 V
DWORD dwR, dwG, dwB;. U- Z$ b+ y: e3 ?$ ^+ D
dwR = (DWORD)( pLight->Ambient.r * 255 );
3 I4 h" \: a, i* G G dwG = (DWORD)( pLight->Ambient.g * 255 );+ ~: _/ r' ]/ m. r. I
dwB = (DWORD)( pLight->Ambient.b * 255 );
' X' ~9 c6 `5 V- j; o dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
8 d" I. ~( ]8 l }" t4 q" k/ e% G3 @/ K( G
}3 ^0 A% R9 }6 f0 i" m4 _
6 x2 @$ i0 N7 V, s, B+ T m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
* e0 m) w9 n5 J 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) );
$ e/ V% t/ ^* E/ b# @; c9 [ ::SetLight( bLight );
5 X# l! @6 r# O5 x4 R" `: L
% u* A/ d$ g8 m // ±ao? ?D?í???ó á¤à? 9 [2 i8 B3 d$ N6 x
m_pd3dDevice->SetMaterial( &m_baseMaterial );9 B0 J2 p: p/ h; n- `/ J
9 }& \; q/ A+ L- l% U. m#endif // not WORLDSERVER. e% J9 E% n3 T. u
}
3 b9 ^2 g; t' k0 \; A; n8 P- m! i& y并更换& L/ b& ]$ ^# t" u$ U1 z& }- d
Code:
+ i. p9 b& Q5 C/ n2 p+ u0 @__FLYFF_INITPAGE_EXT$ m# E: T3 t1 ^- _$ n3 I8 ]
定义
: B% L( w3 C( p) }" G, {3 d! i- U1 M9 ^
) Q; X6 m( J# j% t+ C& Z
- ]$ k: |, H/ Q8 Y) a- ~, i
/ `( P. I: n0 Y; B3 m2 o0 b, ^9 f, P1 J
现在终于删除我的狗屁加速..., F" ]# o( M$ d: H: c8 [
3 r0 n6 R3 N C3 e4 }6 Z
- ~3 d. u) s8 K8 e7 _+ a9 A/ P
1 K" s% i' A2 w% M |
|