|
|
食品车:- s: `1 M: M @
尾翼:
: L& y' k* X" }4 T! A$ N6 W5 h& x( w9 X; _3 ]
代码:) T* o T1 y- f! {
CWndAutoFood::CWndAutoFood()' ]+ K! n7 Z w* G2 `
{- {* \8 i/ ^4 b3 p" [4 u
m_pItemElem = NULL;
# Y; X3 i8 j' W g( J; F m_pTexture = NULL;
; L& V) i# m, l1 m5 d% B! x' C bStart = FALSE;
! N( m) l4 i, j4 `1 w3 z}
3 x0 {7 Q0 ^+ D/ o+ z, w, p: B
- M' A9 N- y# t* ?1 {( J9 }CWndAutoFood::~CWndAutoFood()
9 A8 _3 X- T. t+ _{
5 Y$ f4 q8 k$ z- X* h7 U AfxMessageBox( "AutoFood ist gestorben " );
4 P! n4 t7 K& T5 ~7 }& O% I# z' I}
( [1 o3 T4 U9 i- z, m# S7 k$ d; LBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )5 ?2 _, K: N5 [1 W
{5 T8 ]% X! Y& Z3 [" ~: ]! M: e& u
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
1 g8 I; s. c/ N" [9 \" M" C}
5 y z/ p& N# f' z# ~% b- d: K& U* o5 X X6 N# H/ H
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
; q; x& i. O+ o& d* R- o U{- X# R1 j" {; \6 x, Z' i
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: I+ k% n; F- _* m$ T
CRect rect = pWndCtrl->rect;2 w6 B; g: k+ f* G/ J. w4 |; F1 h. ^
if( rect && rect.PtInRect( point ) )( J, E1 G& X6 c9 O' w. O) ~& I2 Y+ U u2 E
{
- b5 X) R( Q1 h& S# L9 i CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );6 U0 J% T; z$ v& i7 a7 o
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
5 ^& q4 j2 |# ?# @% o& A& u, ] {9 ?9 s- L; t# e$ i. x
if( m_pItemElem )6 t2 y u: n* I& [9 r B1 l
{4 f5 f& T% z; D! w
m_pItemElem = NULL;
& g( W u- L+ H2 Y+ l0 h2 |, F }
$ h+ v4 f$ g# B3 ], t' n; p$ ?8 H m_pItemElem = pItemElem;) f, h' }( Q# D' h( A v/ i
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
% I* N7 q( W8 U }else{1 Z" ^8 X' S2 S$ H. P
SetForbid( TRUE );; a( K& c0 {" r5 T5 f$ {
}
e& g. B% U, K1 G }else{! i4 ^+ X: d7 y, W1 t
SetForbid( TRUE );5 X0 I+ t7 K+ q' v4 [* P
}+ c/ o" w6 X: p# i+ Q, V) O
return TRUE;
5 ^; G$ a( o q* t. y$ p( w# k}7 {& T5 A* M' k7 r# E. a# ]# u$ u
5 o: ]0 M# V' j% C3 }3 Z/ _9 m& t3 P4 ?BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
3 [: `. G9 I* f1 @2 _4 W; {) h{/ g- y Y! i, \- j9 J
switch( nID )
" s0 f# b$ g8 U% C {" {$ n7 I- b3 {+ e7 ]& C+ t
case WIDC_BUTTON3:
5 s+ U2 A( R2 E7 j4 l2 y+ t5 n0 @ {$ g: n3 u) F7 x! P! F) b2 G
bStart = TRUE;
. e4 m/ N9 ?/ w1 j break;
( L' m3 t8 S1 B }
2 E, [9 y) G0 S( V7 Z% f x- z; A1 J) w3 q case WIDC_BUTTON4:8 s; ^. E0 t( G
{
4 O8 ~' G% ]; f( o bStart = FALSE;
5 j, g: [! a+ {8 c1 q" D break;
_; E: K O5 n/ {, ] }
8 F4 l2 z0 T" _, _9 A6 l% q. g }( v: B* q7 K! w" }9 ~* z1 ?
return CWndNeuz::OnChildNotify( message, nID, pLResult );6 C8 g1 {) G' \
}
# L1 R& Z2 T! U! Fvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )& N/ \2 O! r$ e& `
{, h% |6 j, b; k, h9 M2 f# f4 U4 ?
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
! ~6 p! V6 q% b, I* D8 U if( bStart || !m_pItemElem )" M4 r# d9 G" H+ {) b5 t# V
{. e2 c1 x2 J) X( E6 }+ q1 G
pBtn->EnableWindow( FALSE );
# \+ ~# w5 z+ m8 V* H }else" D0 m5 S5 f9 c
pBtn->EnableWindow( TRUE );1 d/ j* L! i) n& |% {+ ~( f1 l
if( m_pTexture )
/ ^5 [0 Q3 [- u m9 n {4 x* {2 F0 `9 S! d
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
1 a8 O+ K4 ~) ~5 ]8 N if( wndCtrl && wndCtrl->rect )) u( r: l+ v9 B: C5 u7 q
{; S% z( \6 ]" n0 E' p5 n$ ^2 X8 H# K+ o
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );2 X% Z, e( H+ [) x' o5 f
}" o: x0 _" i0 ^' p' a7 A7 L6 t& t
}' W3 }) u$ b0 {, f* ^2 ]5 E
}
! h: \" M$ V# W2 d8 M Y' F8 {& l3 c- z% Q- c. w5 J
BOOL CWndAutoFood: rocess()
% K3 `1 Z( p( c& |2 @{4 f# t5 B, ~' a; H
if( bStart )! a! ^" X" a: B1 Z
{
' i- o6 @8 s& F% Z3 f+ s if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )5 c4 T4 v. i; \/ F. ?+ T$ d: e
{) k% g: x ] b; S$ z( F
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
1 ]" X# j/ J% j3 N g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
5 B9 k- R z& S. B# }1 V9 L3 l# Q }else{
+ C. v' l( ? P8 a/ ]4 A- r bStart = FALSE;3 p3 v1 ?& b7 D& M& C: e
m_pItemElem = NULL;
/ r1 H8 d* [ ` }; h; e5 ]+ e3 I
}
* Z% [5 K* [! o q! w( }1 c return TRUE;
; Z, C' h& {* h! r! B2 J}5 D X& [( b, O; E' N" I0 v' G8 E9 L
$ ?2 H1 e8 a! v4 ~登录视频废话:
$ H/ @( F/ S+ g- R! L5 v) ~尾翼:
$ @1 y- W4 ^, g" n/ D6 G5 r+ a0 ~% W0 t) R
代码:
2 \1 D) `0 B N0 U. C9 j: z" o
: i, F- x# P$ a( f" r# l' c; vvoid CWorld::SetLight( BOOL bLight )
, C, Q& W9 K- |, Vdurch
& G/ S& P+ a9 |- ~! SCode:4 M+ ]4 T' k6 A3 c L
void CWorld::SetLight( BOOL bLight )
4 a+ A: ?$ l' c. }; l{6 F7 L) l A: G4 S; e
//ACE("SetLight %d \n", bLight);
- d- Z8 y! B* E- K ~
. z6 I, {- P# ~ [#ifndef __WORLDSERVER
' e/ u8 o& k2 \0 P, e0 c. ?: @ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
6 h$ O6 W0 ?$ J- ~! N; a/ m CLight* pLight = NULL;
+ m1 s7 ~* n3 `# l( R5 Y( A6 {/ \6 X, f
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
& Y) _$ v& u, ^
3 ^# C8 r2 T. r. V* u5 F7 _ pLight = GetLight( "direction" );
, t& h% H% k+ g) y' L4 P
^6 u1 ~9 V3 L9 a3 n#if __VER >= 15 // __BS_CHANGING_ENVIR/ c {/ v9 Z& f5 k% i0 ~. W8 s% T
if( g_pPlayer ){' v+ c/ `1 d8 g3 @
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
; d( Q# n w" v if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
& f; h ~7 N; Z! S; g, E: C {4 }2 y- b2 o5 q7 Q' r0 j$ \9 I
if( pLight )- z) O: _# X0 `% ~7 p. }
{
6 x8 ?7 `7 Q! d, x; K* e) h pLight->Ambient.r = pInfo->_fAmbient[ 0 ];" L5 Z! j2 Q' K7 t5 f$ F) ^
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];) J! K& {7 `" U# @& N2 f
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
: X: X* O* l. V W8 o# Q2 e( u! u
8 {& o( C: ]" l* @$ a, X pLight->Specular.r = 2.0f;
( x( Z0 U" o! k7 a+ a d9 ]: j pLight->Specular.g = 2.0f;
|% a& r8 Y* ? R pLight->Specular.b = 2.0f;- V2 c$ P6 s0 [1 X; |$ W; l5 N4 I4 i
4 N3 V; H# d4 M
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];8 N' y9 X) B0 ]7 A3 J& Z' U
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
3 v4 p/ Q' t) B* g2 N8 f! a pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];( ~- Q' S' Y; H# ?; U7 s
0 e+ H y% J- b: W! u2 S HookUpdateLight( pLight );
4 R+ h! _# H( D
, @; G' z% E" f. `3 z: R& r memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* k+ x" Y8 u5 @/ |
2 C% O, R7 M* x2 q1 k8 M4 ?4 ` pLight->Diffuse.r *= 1.2f;
$ n4 g' L5 j3 x) U& `& B% x; p; K4 M( C pLight->Diffuse.g *= 1.2f;+ V/ p; Y: z9 k- B
pLight->Diffuse.b *= 1.2f;& T2 ^' W" f X" b( y" u, c
: y+ Q" w& @% ], ~ pLight->Ambient.r *= 0.8f;4 w, c, _1 ^2 b: L4 f: \) P$ j
pLight->Ambient.g *= 0.8f;" u- @1 u& a" k& ~/ y
pLight->Ambient.b *= 0.8f;, N0 {0 T' a- B, P
4 J3 e7 h4 L& f& q% Q memcpy( &m_light, pLight, sizeof( m_light ) );
) r4 c2 J& n& b* {; V/ ^. f# W) `9 V# k* p7 H% k: g8 {
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);9 g: E4 b* O0 L7 G% c" Z
D3DXVec3Normalize(&(vecSun),&(vecSun));4 l( G; [8 L6 U5 f
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' Z! G+ Z* N$ S* b# @# {
pLight->Appear( m_pd3dDevice, TRUE );0 D' k/ F7 K0 b' t
. G3 {7 K; t2 Y8 [ P
DWORD dwR, dwG, dwB;% ~3 H3 Q2 O3 i2 c1 w
dwR = (DWORD)( pLight->Ambient.r * 255 );% A1 f; F9 M( R( e
dwG = (DWORD)( pLight->Ambient.g * 255 );) u6 C2 D L0 e1 o% o+ Q
dwB = (DWORD)( pLight->Ambient.b * 255 );# W9 |. M9 M* D" s+ h* l: A' g/ r
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( l0 V+ ]' W+ B+ b }. u: l) a- U. x6 ~1 t- z$ H
}5 Y* [: g9 f; ]9 C; L' c
}
3 q- ^4 a- s1 F$ A" x3 t else$ w4 Q" a X# L+ E+ m3 l# f
#endif
( r5 o$ m j, Y: U4 ]4 j$ E. G( d* r% [ S
if( m_bIsIndoor )4 I' ~; e* ], r2 w+ r' F1 ~$ M
{
?9 m( i8 ]+ l$ l+ J+ F# F: Z if( pLight )5 T) M5 _2 x( W z# S) t
{ . [- k, `- Y0 ^. X1 B" D# L. V
// à??μ oˉè* 7 P9 G% Z7 i( x l; d! n
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;. M, V6 g$ R0 p u/ z
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
. f1 F# {; A9 S0 @% K- g K pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
% z$ B" U; y8 C8 c, k: }' Z
: [6 ~8 U1 z9 k' U2 U. b/ ^ G // oˉè* ??à? + A8 }8 t; W Y* C. v3 g
pLight->Specular.r = 1.0f;
9 ?9 Q+ A+ M, m& J/ l9 Z pLight->Specular.g = 1.0f;% @5 c5 ?! n8 ?' R" L
pLight->Specular.b = 1.0f;
/ d' l. U* R+ s& O6 q // àü?? oˉè* + D+ `; X; ~! \; V0 q) k9 C
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
1 I" i$ w+ d8 ]' Z: K7 l* Z8 m pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;7 X3 M3 [, `5 h- A6 d
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
2 o* W! r# r5 `; {+ T4 D3 d/ U h* D. k7 W
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??./ p& w4 U/ i7 n& W
{8 w$ ?: `/ S( x d5 _* x; D
pLight->Diffuse.r *= 0.6f;* G4 V+ P+ J! W* _& [. h+ l$ S7 I
pLight->Diffuse.g *= 0.6f;
" i# e" q; m# |) ?4 ?5 G! ? pLight->Diffuse.b *= 0.6f;
3 Q* [, E. n2 B9 d( H; z- h/ Q pLight->Ambient.r *= 0.7f;4 \6 s4 C# L0 Y' Z; j
pLight->Ambient.g *= 0.7f;& j- x+ M+ G: B) ]% l: h; |
pLight->Ambient.b *= 0.7f;, N$ ]% H4 o4 W. N
}* O; O" U+ l/ d+ F/ {
8 k3 p: }: p: L6 H; ^. w6 G
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 y( F3 l i2 N! O' y* D. e if( g_pPlayer )
3 o; D- R# q& ?; Y6 F HookUpdateLight( pLight );$ q+ }- K6 X* t
#endif: _: _( n9 m4 Y. Q: L
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 N9 A1 B8 H. K
) c9 Q& J7 K% P' x2 Y) a
pLight->Diffuse.r += 0.1f;
2 h$ Y& |! f$ u8 G9 F6 s- w! ? pLight->Diffuse.g += 0.1f;
7 F! B( s$ ]3 d6 { pLight->Diffuse.b += 0.1f;
/ V/ `! W) S. n // oˉè* ??à? * C. X, H$ U; X2 r8 z; b( H! U
pLight->Specular.r = 2.0f;
6 p- [ X" e+ Q8 F& F, N pLight->Specular.g = 2.0f;
1 O0 ^9 d$ V5 V1 W# K( l9 J pLight->Specular.b = 2.0f;
( y5 n; t+ L) J: Z4 Z1 E' o3 Y // á?oˉ
4 m. N9 h& P) I/ V" \ pLight->Ambient.r *= 0.9f;+ x! [+ |7 J7 S9 j9 U @
pLight->Ambient.g *= 0.9f; f; u( |2 J5 _
pLight->Ambient.b *= 0.9f;. k% }3 H1 H+ j% N: b
6 M$ l: |7 q7 Y1 @) b B( ]
memcpy( &m_light, pLight, sizeof( m_light ) );; _/ G) F W5 i0 a9 r/ _
" _) K% c( Y' |
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );+ k+ D. m( j: |
pLight->Appear( m_pd3dDevice, TRUE );
: F! P; e! \! f9 g. a2 A 1 A) x; Z/ h1 A$ p5 T
DWORD dwR, dwG, dwB;% ` t; s6 V/ B
dwR = (DWORD)( pLight->Ambient.r * 255 );/ ?1 P$ n" e+ J' K# M& y$ ?7 ~8 J$ w
dwG = (DWORD)( pLight->Ambient.g * 255 );$ S4 m( m7 p4 k7 m5 }* W) b# _+ f8 h
dwB = (DWORD)( pLight->Ambient.b * 255 );
8 b9 W W$ ?/ k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- `5 t) i0 z f" d1 e8 g) n
}
$ x1 n* Z. c' x; S z { }
- n1 K+ C" L) ], y3 f else
K0 F: ?" i5 _# l$ S; z {( l0 ]3 H1 W* _; S2 `( p
if( pLight ): x0 {0 I9 a+ `9 V$ v/ y
{
# M: n3 c6 q! ?
8 T+ k2 M( {1 x4 h. G l int nHour = 8, nMin = 0;
0 ?7 E7 l" |# v, U6 v5 W #ifdef __CLIENT" I/ T B# F$ a. Z4 L" e
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
6 Q9 ?. O6 h: F5 m nHour = g_GameTimer.m_nHour;# ^3 J# B3 ^; d( L! k
nMin = g_GameTimer.m_nMin ;& S6 R, A3 @1 d; G
#else1 ?- O! I5 o" o2 m* |$ p6 [
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù./ Q+ z" f% ?5 }8 {
if( m_nLightType == 1 )
; l- R; T6 z, M' o( b nHour = m_nLightHour;- x6 H; S* B: h o
#endif
1 u* a. b1 b% D& D- i6 X; e nHour--;
6 V- X$ u2 ~8 I* a% M if( nHour < 0 ) nHour = 0;3 `" ? r5 I$ ^& U3 Y
if( nHour > 23 ) nHour = 23;/ S0 W$ n, q- W, b' Z
( y8 Z$ e, e, Q0 E3 L6 i1 w //if( m_bFixedHour )
5 l, K7 w- a; ^( W2 ], I+ U // nHour = m_nFixedHour, nMin = 0;4 y8 l& f# }, e2 Y7 X! s% F) j
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];# B3 F- x) n% J* \' t/ A
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
8 u3 C: A( h( F) N5 ^; L8 ` |/ R: X
//m_lightColor = lightColorPrv;
) P# j, |0 o, {9 {. f! ]4 ~ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 F! c3 V: x2 [# \$ x0 |, e5 J g lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
" T' W, W5 c0 c3 V8 k lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
/ B$ A& \+ _% c( a- c lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;1 F) \, Q5 `) Y$ b* r% u0 H1 u
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
0 q( C$ y4 [( B2 F+ w9 S! \2 q1 R lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
% j; R: n* V& q* {* h: ] // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)! ?" I* V: `6 y
$ v% _ M% V- U
// à??μ oˉè* & M6 o5 F) n0 {2 i* {- ^8 {! `$ J' G
pLight->Diffuse.r = lightColorPrv.r1;
6 K+ Y2 r5 q: t+ H pLight->Diffuse.g = lightColorPrv.g1;4 ]3 H: b- `7 }/ p4 J5 R' ?
pLight->Diffuse.b = lightColorPrv.b1;+ O0 F: Q0 j$ _, A" o! g
// oˉè* ??à?
- \3 l ]- I- r! \8 n# ?% U pLight->Specular.r = 1.0f;
* W' Z7 O' i8 f# {: r6 X* m- _ pLight->Specular.g = 1.0f;
% n8 ]9 M/ M7 x% u& p7 P8 X pLight->Specular.b = 1.0f;% f: o/ M- ]9 n
// àü?? oˉè*
3 m0 a, }4 l& b" y L& c; L pLight->Ambient.r = lightColorPrv.r2;
' i5 E3 z* ]! g pLight->Ambient.g = lightColorPrv.g2;2 D- f' M1 O( o, h8 v0 K! Q
pLight->Ambient.b = lightColorPrv.b2;4 b) v: _: {! x/ q, D. d' z' o
+ J, y& p2 i- X: V; L if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 o4 [) o; I3 E7 b+ s1 T
{
5 E' b7 A" @8 b: _2 ~) l pLight->Diffuse.r *= 0.6f;
7 M+ p7 p* I" r v pLight->Diffuse.g *= 0.6f;. m' K: t V( ^# s
pLight->Diffuse.b *= 0.6f;& ?8 i& ~9 O2 d
pLight->Ambient.r *= 0.7f;/ @4 ?6 r$ d8 V3 x0 _# e8 a% }
pLight->Ambient.g *= 0.7f;% d, u$ m5 u# B' s: J: ~0 g
pLight->Ambient.b *= 0.7f;: R: W F# m+ C( R& f' V
}' E+ @: k- w. w3 B4 Y& n
4 `9 B. N) h# X \8 k
#if __VER >= 15 // __BS_CHANGING_ENVIR/ F. G( Y2 r% @, B* T F
if( g_pPlayer )
; Q- i$ e2 e# ?1 f3 d( g7 \7 ] HookUpdateLight( pLight ); ) J+ `; N/ d! }) g+ C: g
#endif
8 b! X6 |+ Z$ Q+ y, R) \ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; P9 Q; P0 e+ n2 p: U
6 [# P2 ~3 q! A#ifdef __YENV
: b8 o7 ?2 n# L& n/ g9 n0 O9 e- N pLight->Diffuse.r *= 1.1f;
0 q: H; h2 d2 o+ k% @( n pLight->Diffuse.g *= 1.1f;
( k3 U8 Q% ^+ v5 E pLight->Diffuse.b *= 1.1f;
6 {9 Z' g$ v0 h // oˉè* ??à?
0 T5 Q' g; |5 p+ V pLight->Specular.r = 2.0f;
) B1 O4 e2 y3 s3 \: U. U1 j* g pLight->Specular.g = 2.0f;
) x9 b9 Z. \& O/ p* r4 V4 a- m6 o5 n( P pLight->Specular.b = 2.0f;
, a& K3 e7 t1 N+ F5 Y // á?oˉ . y9 U- ]: a1 Z2 y2 a6 n% a
pLight->Ambient.r *= 1.0f;
) x$ k% L$ f4 b, ~ f% |% A pLight->Ambient.g *= 1.0f;& f7 O2 [: m% m! e/ z4 C( V
pLight->Ambient.b *= 1.0f;9 h; w$ a# p6 F0 f0 s" H
#else //__YENV
9 V+ a ?9 h$ Z6 N1 Z pLight->Diffuse.r *= 1.1f;
" W4 H$ z4 `7 X. z, z. q8 `) D pLight->Diffuse.g *= 1.1f;
: h% W1 b# ]0 h; {7 ] b pLight->Diffuse.b *= 1.1f;
6 \) u; |6 D0 W9 y // oˉè* ??à? : L. w- X6 O' K% x$ Z) o$ A' K9 k
pLight->Specular.r = 2.0f;
$ b; o" {8 n: R' i pLight->Specular.g = 2.0f;
2 V* H z0 p& S% @: u6 K9 H% Z z, `5 w' t pLight->Specular.b = 2.0f;3 _$ o l& \. b$ m! s
// á?oˉ
; F T6 s9 V9 b' J4 ^. K pLight->Ambient.r *= 0.9f;
6 t8 W2 l: R' T0 E% e) [% |% n1 { pLight->Ambient.g *= 0.9f;
) _) j5 \* _, M; I! I% n. d pLight->Ambient.b *= 0.9f;3 q" }+ b0 X6 s% |. R! a* l
#endif //__YENV
" f" V# l [5 j8 _$ T3 @
5 [! F6 P! I! V. u memcpy( &m_light, pLight, sizeof( m_light ) );
: ~# Q) z# ]8 W5 W1 ] - V3 N8 w* E; z
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);! ]4 {4 W- \6 P) X1 d
D3DXMATRIX matTemp;) w, v$ x9 H6 W& K. Y( b
static const float CONS_VAL = 3.1415926f / 180.f;
$ U% R9 w" T2 `4 c8 n* @- m! g; G
8 k9 Q4 v2 `. `1 B- Y D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
0 S! q; _2 Z% g" m6 J3 ` D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
& N$ J1 i4 _/ L2 [ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ' V" D" w1 ]9 W& O8 v6 H6 N
pLight->Appear( m_pd3dDevice, TRUE );
" N! u' x, r7 S, v6 i, f* Q2 g
. e! {/ z7 W2 | w+ } // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 q6 P9 n5 m' x+ Q5 E, _: Q* B
// D3DXVec3Normalize(&(vecSun),&(vecSun));
; H. g. b, M# x" p# ^( ^; | // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 a m0 y; h% y( _6 b' E, P! g" c9 z/ F
DWORD dwR, dwG, dwB;) Y5 i* w* F, a+ L7 k# a6 k
dwR = (DWORD)( pLight->Ambient.r * 255 );7 a+ R0 y5 ?" G+ u
dwG = (DWORD)( pLight->Ambient.g * 255 );
6 L3 p5 ?/ U8 A' n ~8 e dwB = (DWORD)( pLight->Ambient.b * 255 );
3 S6 B0 G: Q" H) |/ G' r dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 2 q2 ?# @' d, t
}
. T X' j. h! K0 e, [ }& m: L) z2 ?& T. f" U
/ x! j h" J' \7 \! ] m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );% k" f% p9 h4 U0 |; W9 x
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) );
& `. M( Y$ ~( J ]& v ::SetLight( bLight );9 R5 w$ J3 F( R. M. D. t O) F+ h
4 n" G$ C4 N$ t4 T& g% w
// ±ao? ?D?í???ó á¤à? / n6 ?- y: M T# D) k, Z
m_pd3dDevice->SetMaterial( &m_baseMaterial );
6 O/ g8 `8 Y4 Y5 d7 S0 ~ # \2 I. h% e: I" p
#endif // not WORLDSERVER
1 w6 L+ d H, ?+ b}
0 T; ]% ] g; Y9 Z: @2 ?" p* O并更换# i; b0 h( e( h. m& Z/ g) l
Code:% @, V. e& f4 t1 S0 ~; s) f
__FLYFF_INITPAGE_EXT
3 S: x' l; P. x; \1 k% v定义6 x7 _+ [7 [- b6 U) }
! o+ I& P1 `) m* h
4 M4 ~/ j2 Y+ j/ m; a; X. h) O( z$ n9 D7 _
% k, Q, O: J# M8 m
现在终于删除我的狗屁加速...
/ P9 C* Q* f4 L7 `' i% \+ @. H7 j
6 B0 |# F P! P' t+ u; r; L5 S, q: _& I
|
|