|
|
食品车:- ]/ r9 a, C) ~9 p4 N( y( T/ ]- H
尾翼:
% J f+ g. c1 E; s* E4 S2 V( c. s% `, [% F3 ]/ W4 y) s
代码:
2 s M- }$ B' h9 D: J4 hCWndAutoFood::CWndAutoFood()
/ V3 J' `* Y/ o& M9 R; B/ \{
8 k* j' O) ^" V( u m_pItemElem = NULL;
/ j# M4 \$ F" i. G' X' ?( Y# @+ | m_pTexture = NULL;4 F8 v; X# K7 G! a( D
bStart = FALSE;9 f& }5 N4 O/ n) P2 h1 H
}
2 H6 \, [1 j+ `% g5 Y( A2 v/ S2 d9 q- x1 p. h! b @) O
CWndAutoFood::~CWndAutoFood()
# u5 L, i6 R3 p" d% M# }{
) _: [2 N2 t" L% @2 x AfxMessageBox( "AutoFood ist gestorben " );' x, |, ]4 t8 Z
}
( M( T+ W& c& VBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
0 W$ U- F9 F' P5 ?$ Y+ g1 R{
U( H7 S, w$ d% u, ^8 k; ~$ a return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
8 A. R- F/ L% W}3 U$ c& O) W9 T8 [" L* r
- x$ i: {4 P4 g6 Z8 Q
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )! P& N7 n8 V3 H! l
{
) a* i, `+ F" B' a9 L. \; N0 c' _ LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );" m4 d4 b/ a# X$ O' h0 c- o
CRect rect = pWndCtrl->rect;8 m. d" i3 c3 E# h' x3 t0 _
if( rect && rect.PtInRect( point ) ); r; P2 ]. g5 r5 F5 [# T
{) y$ B, f7 M1 C
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
7 N. b0 ?% I' \1 s3 B' m2 | if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )$ t( @' G% r# U- z" ^
{
* {# ~' x6 G! N; c2 S6 x if( m_pItemElem )$ M2 w) r' M2 h' B/ x
{% A$ U% N' I. Z+ g* j# O
m_pItemElem = NULL; W5 a: S: r9 v% D5 X, m4 y; P/ b
}
- _2 [9 L* G) j7 _! ^ m_pItemElem = pItemElem;
. o' E) o l$ C% J8 { m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );- t+ u" o) D* F- p: E# c
}else{
% k( J0 m( m* v/ ^9 a SetForbid( TRUE );
" w" A0 _* |' l8 h$ u( _- a- z }
% s/ Q9 O! q0 |1 X4 X }else{7 f) N0 n& e# f& ]5 x9 [3 c1 o
SetForbid( TRUE );
% _9 z, `* ^3 O8 r" V }
7 J' X5 C' S3 W+ C; w* v% L: v return TRUE;2 q0 z. F/ z7 H6 Z; R: F' M) y
}; t" d" t2 ?! V/ `3 `) ^( b& g
1 Q2 F, j, R& q& |BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )2 V9 {4 ^7 t0 l
{" P) B5 @$ F( V0 P6 |( v
switch( nID )
5 U% q! e5 ?$ ?: z" G8 Z9 E {8 w$ G" n% b- h. {! w1 W$ o
case WIDC_BUTTON3:
+ g8 Q. `( Q! ]) H* s {$ i G" T6 g8 ~- S+ Z6 ]8 w! I
bStart = TRUE;
2 \. Q) m8 A+ G5 _, v8 A. e6 f! e break;
: V! N6 v' R, e: r2 X* ?: ^ }
+ |+ c6 H0 R4 ^2 B t* Y" c case WIDC_BUTTON4:
2 C0 h. r% o8 m {3 w% _9 l' v6 @+ o
bStart = FALSE;. L2 b# _5 e" y; X% W& h5 \. K
break;
. f* J w& s y) p* V. ]( N }) ^# _: x$ [, X* l
}
1 s% u# j& V- `* B return CWndNeuz::OnChildNotify( message, nID, pLResult );
& {3 M) O+ n5 s0 E/ G- i} : D, ~+ z4 [; \$ U
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
5 T* s( R4 S* j: d, [{
/ W9 G% M" \) [0 | CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
% J- _( `* w; b" d5 K5 {- T) j. Y if( bStart || !m_pItemElem )
2 a ^& `: P% `6 [. J; F9 ~6 H {& T6 h* D' H) B" b
pBtn->EnableWindow( FALSE );
2 K' q! F/ \1 d' |, q* X; i, H }else* |- n' R6 G: B: r) p& A5 @ d
pBtn->EnableWindow( TRUE );
. ^6 a% q- [0 w8 U" K+ }5 p if( m_pTexture )2 N, X1 A s# F) b' u7 b
{
9 R) \1 l4 z- z% l LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; X/ B: O9 g) z4 N( \ if( wndCtrl && wndCtrl->rect )/ I% h v& W* {+ d4 j
{$ W) D: a5 @6 i3 T4 I5 }1 t
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
& o7 w) ~% T: |0 g5 G }( v$ I# l0 j1 o5 e
}( J: A$ x) ^) ~$ }7 x0 {! b! d
}
: `- ?7 k" ~+ K& u8 w) b% O6 w a! p1 P! G: q( ^/ {9 Q9 A
BOOL CWndAutoFood: rocess()
9 y9 E" G" a N, z: W: c{. h7 t/ l1 V9 g1 j
if( bStart )
: q) C; J4 S0 B* f! k9 o( [ {
5 f1 U! {9 P# L" T2 g if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
' `, E/ F" D, X9 | {
: Q% ]2 f# k" n' @" G if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
, x( t7 U/ x# \' } q5 B p2 m g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
( j* E8 L% H2 ]. Z }else{
6 S$ k5 j5 r, V5 i3 X: a bStart = FALSE;& `0 t& |3 r) w$ p& }2 Z/ `
m_pItemElem = NULL;
, I$ W7 {( E$ `5 W+ K8 _/ V }8 f" R3 w4 ?' W; f {0 X
}6 ?1 w" Z) S3 H" ]8 W( i/ t* |
return TRUE;, F' a. I2 F# d1 F8 T, L9 ?
}
- L4 D" b3 c! V6 q# i
, X& q4 q, M1 @ _7 H3 Z5 d4 }登录视频废话:
" b) T, ^1 d1 p& X4 _. J/ _) t尾翼:
5 e% j( m+ T, V7 [/ W0 e I$ k. j+ p
代码:
& S9 D) p# m4 B# J/ ]' A& T v& n4 R+ a5 S
void CWorld::SetLight( BOOL bLight )8 a% k E1 Z# ^+ y- |& z L
durch
3 o% y( }8 E( i1 }! T$ PCode:& z- x2 R$ N" s
void CWorld::SetLight( BOOL bLight )
' _8 [) b0 I7 @$ x6 \{8 V- O; M+ ], x, n1 J0 @
//ACE("SetLight %d \n", bLight);8 e% k5 a$ W3 |4 Z. J _8 t
- D3 U1 t. B/ H' s1 _#ifndef __WORLDSERVER
' `4 R" J! M! l4 y$ T9 p- G! p DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
# u1 F, c' }& A( @# N CLight* pLight = NULL;
/ K3 D. P: }. ]& ^4 p
% K& ]7 ~$ d1 R3 ? D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );0 l1 Q! @/ y8 o2 y4 J+ r
B9 b% x1 a8 F
pLight = GetLight( "direction" );
! i" s0 b1 w) |+ k N
- D J! B2 V0 ^ [1 i#if __VER >= 15 // __BS_CHANGING_ENVIR0 m1 ~& I" F, |& X
if( g_pPlayer ){
( u: w3 w) N" Z( S$ p* \' i8 z ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );) \$ y7 W8 M: x9 N7 ~9 n1 B& W
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
) Q+ Y! {; V7 ` {% ^. H1 M+ H" P* D
if( pLight )7 S( f( d5 {$ X+ e1 w
{
3 ]" Q( F/ u) J; L1 J pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) @, ^ u' P x% v9 p0 | w
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
4 H- y) d3 V0 d" T pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
0 ^; s) Q1 i( B( S
2 B% y7 E3 V, L& }) q4 R6 X9 ^* d- b pLight->Specular.r = 2.0f;1 _4 t+ e9 n2 j) E3 C1 t* P$ p
pLight->Specular.g = 2.0f;1 \* B- d, x b/ C; }
pLight->Specular.b = 2.0f;& w; y! c: p( v4 t( z
& @ L% t7 W0 {+ x, [, K pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];6 X* L x" \; ?
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];& Y$ T4 S4 O0 u/ S- ^% O
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
7 V: \" c4 q6 A5 g: x* X# p
! h4 ?& H1 `2 ` HookUpdateLight( pLight );
6 p$ k8 V4 ~3 C7 C/ ?
6 r+ e# T D% l; W! D! W( U1 Z3 f memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );3 n8 W; M. e5 |0 v. V4 J5 u1 x+ N! T, D
6 G& S; m+ g; v% t A7 C) q' U
pLight->Diffuse.r *= 1.2f;
6 U$ K- p: X% f$ i( d4 K pLight->Diffuse.g *= 1.2f;
/ o% j" b2 R3 U pLight->Diffuse.b *= 1.2f;( r% } J( [- i. V6 _
g W9 D! v5 C: Z( D
pLight->Ambient.r *= 0.8f;
9 V# u) G7 q$ ~' k+ r5 V pLight->Ambient.g *= 0.8f;# |0 g3 ~4 n! X# ?5 ~
pLight->Ambient.b *= 0.8f;
; V7 b( z0 H6 [$ K9 R- Y$ Z- p
) a+ c5 ? R H; p' c. C memcpy( &m_light, pLight, sizeof( m_light ) );' K1 A; e" g; L H
) ~; c+ a' |. l9 O5 ^
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' }4 t$ q2 F2 u
D3DXVec3Normalize(&(vecSun),&(vecSun));9 k( b7 L) \) r9 z, W- k5 B
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 C/ J* l( F1 \, l7 U0 w, L0 Q5 i
pLight->Appear( m_pd3dDevice, TRUE );) C! J$ [; n9 `6 K2 N* w% R
1 {* E5 ]3 ?" r [ i& Y; c" ~: p DWORD dwR, dwG, dwB;
P8 o b% z( f: L# H dwR = (DWORD)( pLight->Ambient.r * 255 );
' q. w& N1 |) \% J( E) G( c+ D" o dwG = (DWORD)( pLight->Ambient.g * 255 );
- C5 P3 T3 U( H dwB = (DWORD)( pLight->Ambient.b * 255 );5 V8 C4 \ o. a* ^- q( s
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 U3 k1 W: o' T( u }& l" D) W% n2 C) _
}
4 K S; @, i" r3 k4 O0 B }
6 y, h( t0 F2 c' o else% z/ U2 P, k) R! N& N) E% @, ^2 b
#endif
5 ` n8 e ]% k# o9 }, g- M& C- t2 Z, k$ Q5 _3 I0 B& x7 Y
if( m_bIsIndoor )( p I6 `4 [4 w8 s6 y& N* M
{
2 p! x" u2 x' x2 w0 e/ s2 } if( pLight )" X1 T; f: [+ `/ @3 _" D
{ . C# X( U6 ` j# M; @
// à??μ oˉè*
$ i, K6 W) q' ^6 G2 h pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;# _ h' P% H6 K# N! E
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 e1 f% v$ g' ^. s1 [1 e& t pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;# V( @7 t$ t+ y
' _( a8 V1 U7 ?' X( S; T3 G
// oˉè* ??à?
) I: B3 C" M1 ] pLight->Specular.r = 1.0f;
! Q$ {0 c" z% ]% V* W; T pLight->Specular.g = 1.0f;. x! K- C* y: r; }; N( [
pLight->Specular.b = 1.0f;
4 k1 D' N8 {; o8 C1 J/ I; l |4 Q // àü?? oˉè*
3 ^8 P) r' q* t0 j, I3 }% I pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
& }( r' ?4 c# |3 l1 w+ V4 x M pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
' k2 E" B* y2 R5 {( d5 A pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
& s2 `* P; G0 { H: `. o% R y, j, `: Q. T
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
! v( ~1 |5 D# h {! ]+ Q& V: D0 s% a
pLight->Diffuse.r *= 0.6f;
* V0 A G" C/ y! H$ z pLight->Diffuse.g *= 0.6f;
, J) y" S# j0 h pLight->Diffuse.b *= 0.6f;
) P9 {+ X: H/ b' _: `0 F% n pLight->Ambient.r *= 0.7f;
2 u5 h! v0 [$ m/ [0 U: r) e pLight->Ambient.g *= 0.7f;, m# ]2 @4 J! E% ?/ L
pLight->Ambient.b *= 0.7f;
/ O) h4 H" I0 n" U: O/ w$ v }4 C N6 D0 q8 n7 ]
8 H; _ H: W- i4 u
#if __VER >= 15 // __BS_CHANGING_ENVIR% [$ a! ]4 w: Z2 E& b6 }
if( g_pPlayer )
" g. G2 x9 M h5 B HookUpdateLight( pLight );$ |; ]% H5 Y% F B+ ? y
#endif" r b- ]4 t5 u6 N' \, O9 [
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) R& ]* }' `& ^- a" s/ c1 S
& z" L$ m0 o( B& k- t U) Z pLight->Diffuse.r += 0.1f;
* |, a' O$ s# \: K7 T" F. B, I( V: i pLight->Diffuse.g += 0.1f;! ^) r. W- ]/ b6 P- b, j
pLight->Diffuse.b += 0.1f;
D0 Z0 y$ h/ l: T( S& @1 F0 R# V // oˉè* ??à? 8 W' R) Q* f! |2 }% K4 g G5 e
pLight->Specular.r = 2.0f;7 M5 ]! D$ F( `! r
pLight->Specular.g = 2.0f;
& Q* r5 o" v; }9 H pLight->Specular.b = 2.0f;( P4 t$ f9 T+ F! |3 i. Y
// á?oˉ 4 ~/ ?0 [9 S$ N8 }
pLight->Ambient.r *= 0.9f;
! Y/ M# N) I+ h% ^5 D+ v pLight->Ambient.g *= 0.9f;, w6 I p/ i( l1 h5 l9 t
pLight->Ambient.b *= 0.9f;* S' o. p. _# v. c# G
2 x0 H# ~& V1 c& r4 m V memcpy( &m_light, pLight, sizeof( m_light ) );
3 z1 ]. d8 ^& q; f3 C, ~. O
7 P6 i+ \4 I v- L( p% [& b pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
: F; r' c3 o/ Y+ w pLight->Appear( m_pd3dDevice, TRUE );8 j" @0 I/ V+ ?& z5 E9 Y
2 [3 e; e, F2 [' }+ q
DWORD dwR, dwG, dwB;
6 G/ B) R- {" G0 I dwR = (DWORD)( pLight->Ambient.r * 255 );
! V1 ]# h; a# b+ ~ dwG = (DWORD)( pLight->Ambient.g * 255 );1 z$ W( d) w. u$ D1 J5 z
dwB = (DWORD)( pLight->Ambient.b * 255 );
# V' _! {, S, y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 h( {; V8 u$ t% ^+ |
}# X. s, h9 p# d
}
( H+ p$ T- I% ?( p8 r6 w/ D else! w+ y* }& Y3 L+ q# X" J" ]
{
8 x9 d% S: {8 B9 G if( pLight )8 E+ @3 Z3 N6 d( C* F7 w- Z
{
6 h X# X6 q1 G , G7 R/ s8 k0 t7 L3 e( c( l
int nHour = 8, nMin = 0;
4 y. h2 K2 j* `/ C #ifdef __CLIENT
/ z2 u- }7 F0 y. ~3 u: X+ M8 H // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. $ {, p5 ]! ~0 Y& D) C2 ?" q) ]
nHour = g_GameTimer.m_nHour;
' Z$ @1 A* h& b: E, h$ d4 C nMin = g_GameTimer.m_nMin ;. e) r2 R! N, Q! i- T# Q( H
#else3 A$ X+ A4 h" o& C9 j
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.- \( |/ z! o+ l, I% J# D
if( m_nLightType == 1 )
d) k7 h( \: a+ S" Q6 ? nHour = m_nLightHour;$ ?% Y" Q2 K+ o) t3 ?4 _: ^
#endif' Y( @$ C& g5 f% I3 {- Q
nHour--;* `: ?; u3 h1 e7 r
if( nHour < 0 ) nHour = 0;( D. E" l# {2 p! L" T' @
if( nHour > 23 ) nHour = 23;: X6 V, C9 k9 N
+ m7 ^3 N g$ H/ |6 {$ d
//if( m_bFixedHour )
$ {: l: W/ ~+ B" T# m1 B7 R // nHour = m_nFixedHour, nMin = 0;7 F( P( U8 @! G
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' ? n/ S; q/ Z3 I$ s LIGHTCOLOR lightColor = m_k24Light[ nHour ];4 x$ c! {) m" W1 Q& e3 s
1 F6 G; i$ T5 }" m( G4 f
//m_lightColor = lightColorPrv;
4 \/ J+ B \- z lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
& [; I4 c# C3 ^5 d! ^ \3 ?) ? lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;1 o& d9 d! Z) H: }$ _
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# C' v0 X6 ^$ ~, B3 E
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 n( u6 L2 N" k F: ~ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
' H- F y& {1 y. e1 b lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;4 P' J: W, J5 n5 o: C- l7 O) v
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)) u% K6 O+ |$ Y& M6 a! o7 B, a
# b4 H5 E% y1 Z! M // à??μ oˉè*
$ D }% [$ C/ q+ A) Z3 z& Z" h pLight->Diffuse.r = lightColorPrv.r1; V7 U7 S% V- _3 [6 V% l
pLight->Diffuse.g = lightColorPrv.g1;6 S4 i# |/ q% s( ^ f
pLight->Diffuse.b = lightColorPrv.b1;* T6 H4 z6 y5 \0 g8 ^8 _
// oˉè* ??à?
# c0 R% ~7 q: g8 S0 z pLight->Specular.r = 1.0f;
& J5 Y" l% Y3 J! S pLight->Specular.g = 1.0f;
+ G% H" p2 V n1 T6 j( S2 G pLight->Specular.b = 1.0f;
- ^' l8 d3 E4 k // àü?? oˉè*
2 Z1 i7 D* L# B7 W) j: @ pLight->Ambient.r = lightColorPrv.r2;
7 I# @/ [9 V$ p. o) _$ F+ `9 ? pLight->Ambient.g = lightColorPrv.g2;0 S; v, M( X! d; }5 a
pLight->Ambient.b = lightColorPrv.b2;" A7 i: l" E/ V& Y" m
4 X7 l2 f2 x8 C. Y6 J. s$ ^ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 G/ c' L4 p& P; _# K/ {3 W
{
' R, t7 ?! u% j9 P' X! V0 J pLight->Diffuse.r *= 0.6f;( G' I- A c q
pLight->Diffuse.g *= 0.6f;
& |$ n' v1 e2 [1 B: Y# H pLight->Diffuse.b *= 0.6f;% B+ s _; s' S1 U% c0 P
pLight->Ambient.r *= 0.7f;
+ x) L2 v3 S, ? pLight->Ambient.g *= 0.7f;0 h9 u+ g. }; u T& _6 j
pLight->Ambient.b *= 0.7f;' y2 w2 H4 i" P9 \0 i9 J
}) v2 t( B6 O% G
0 g7 h0 \3 |" F( T
#if __VER >= 15 // __BS_CHANGING_ENVIR( a! V. p' a6 B6 a
if( g_pPlayer )3 C/ A- p* Z4 Z* A Y
HookUpdateLight( pLight );
& { D# m% _; K+ w/ @#endif: Y$ F6 O/ e4 K: l1 b
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 r l7 w: b2 k
7 O- m; l3 n- K7 A#ifdef __YENV0 F3 `7 ]' \! t6 F
pLight->Diffuse.r *= 1.1f;
* l# m$ a# n& m. B" l pLight->Diffuse.g *= 1.1f;, L/ b6 a5 _$ ^- J' s, U7 U2 U# Z$ B
pLight->Diffuse.b *= 1.1f;
) u: f4 ~) U4 V // oˉè* ??à?
$ k: p Z: Q: s& C% w pLight->Specular.r = 2.0f;
" x3 N0 x/ o1 X: ] pLight->Specular.g = 2.0f;& G( o" p3 c9 }3 Q
pLight->Specular.b = 2.0f;. g& @1 _/ |! J+ `& ~1 J# k, T* [
// á?oˉ 3 g* }2 A( ~: p2 f A7 i: f
pLight->Ambient.r *= 1.0f;+ E C" ?1 b: n
pLight->Ambient.g *= 1.0f;
+ U _- _- ^$ Z1 ^* s$ u/ o( Q2 O; N pLight->Ambient.b *= 1.0f;# W. w+ A) u! y8 @' k0 ^+ F
#else //__YENV
6 @( b5 M" D( q% r; h' |) g3 o pLight->Diffuse.r *= 1.1f;+ I9 o+ K* G$ s7 \
pLight->Diffuse.g *= 1.1f;
, F0 n- @0 G! \. l2 M/ d pLight->Diffuse.b *= 1.1f;
/ m2 C2 L- b1 J# ^ // oˉè* ??à? ( B. b B# X8 K8 i' W
pLight->Specular.r = 2.0f;4 a( v2 v9 l, h; L5 V2 h
pLight->Specular.g = 2.0f;7 f* \$ V9 R0 u, u5 y3 ]" k
pLight->Specular.b = 2.0f;. ]% r3 W( F4 y+ ~
// á?oˉ 1 l% \' B: d" _+ {) C) u7 c
pLight->Ambient.r *= 0.9f;
* i5 K5 A1 J2 T! a5 y" V& I pLight->Ambient.g *= 0.9f;. C( e/ f# {+ O! Q5 n# x: o
pLight->Ambient.b *= 0.9f;; P+ f/ b/ W _ \* @ k
#endif //__YENV
2 z7 l$ Y; d4 j9 n! V7 o8 ? # Y9 k$ w# A- S, i8 ?/ x; a
memcpy( &m_light, pLight, sizeof( m_light ) );
9 N' y2 u4 {1 m% L: T$ f* @
( c6 w( h" W5 H! Q) ^: S: R7 b6 w1 b D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
' S# p! G2 p* s7 m3 F7 U D3DXMATRIX matTemp;
9 C# X- M4 t+ O static const float CONS_VAL = 3.1415926f / 180.f;& n$ G, G7 m& s. d% n
. @1 F# L' i4 }5 d! B1 D4 G2 R$ j$ B
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
8 N+ V9 f" z4 b5 g' f& f9 O D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);7 }. ], p, O8 ?2 a
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - Y' t6 I3 _; z# f( }) i5 l& v" X
pLight->Appear( m_pd3dDevice, TRUE );( g4 U' u& u" B M! b, j
9 @4 J) |; T/ [4 e // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 O; E p4 M) U, `, y2 ^. F9 q" ^
// D3DXVec3Normalize(&(vecSun),&(vecSun));( `0 Y+ W+ V/ ^5 m$ J) }# O ^
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: D) a9 v; ^! u' z) q7 G ^" L6 b1 f0 i, [1 q+ I! W) a
DWORD dwR, dwG, dwB;9 H. s Q1 l# I8 X
dwR = (DWORD)( pLight->Ambient.r * 255 );0 u( N* r s, L: _3 e$ G+ B9 _
dwG = (DWORD)( pLight->Ambient.g * 255 );5 I* ]/ t0 t- ^/ v- w
dwB = (DWORD)( pLight->Ambient.b * 255 );1 C- u) W# ?. d8 p* D/ u* B, Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); , p9 ^, b) X' Z
}
X: K% \. ?* e% `. U+ G) V }
- U! P5 J: ^, O3 T: C }9 \: h6 \' F
) y- `6 l9 J. _: { m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );; u! z* Q* u2 I( C" i
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 o& i, X; j& y) g# A8 i+ M ::SetLight( bLight );
d: y1 k4 }( d' [4 k7 |. h5 c9 |# }) J% |
// ±ao? ?D?í???ó á¤à? 3 {3 g0 A1 ^% s0 U$ N+ { z
m_pd3dDevice->SetMaterial( &m_baseMaterial );
2 p( s. c# ?- P0 Y) f6 U/ j $ F! i8 C- C6 K1 B' w2 j3 r. S
#endif // not WORLDSERVER2 u' _, }0 M3 a5 h9 d# J
}
+ I4 T% k& l. I' Y2 i% W2 g: N! ~并更换) v6 `8 d2 X# \: F/ u
Code:
* b/ [: y+ B& ], Q L__FLYFF_INITPAGE_EXT
2 {3 x8 k$ u3 e" ^, B- J定义; Q% B6 h# W- o" [9 m! ^* N3 Z! ~
- t0 O' i2 l* A/ P8 ?
) q0 ^$ E# V4 m: d- a
/ X, D: f- P) Q; Z0 u1 f
" v1 \3 |# t7 A. Y' d" ?现在终于删除我的狗屁加速...$ }9 q$ |+ z" E( p$ o! U; o, l
8 _) F8 j5 r/ q0 a" H+ I: l3 A- ?1 l9 M/ i) l" `% i/ W
7 Q c" |6 z! n7 V |
|