|
|
食品车:! w6 A+ g4 P/ ~+ o2 |
尾翼:
2 M6 k l( G) K9 Z% @% h* r3 x1 v. F3 J# e( J' j7 c, b
代码:* y3 j8 S; a4 @& o X
CWndAutoFood::CWndAutoFood()
& }9 z/ P8 W5 T: ^# M{
% |$ T7 ^- ?8 b3 R) _5 [ m_pItemElem = NULL;9 w) i5 H$ @! A5 u7 r# |" L' B1 X6 k4 l
m_pTexture = NULL;3 x" S# w# f( \5 p4 _& P
bStart = FALSE;1 b2 b4 z9 P( x! Z) x
}! R- S' d7 T& e
$ U, A( Z1 D b" Q% [7 ^CWndAutoFood::~CWndAutoFood()
9 q, o/ O ?; b* j. @- F, z3 ?2 p2 J$ X{. x$ Z, g1 ]* P) } q% U& k( f
AfxMessageBox( "AutoFood ist gestorben " );
5 d& T0 ]6 b. i! S; J: ~0 H}
- @1 Y& g- E* V1 r1 f u) wBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )4 x. ?& Y; u5 |. h2 g
{
. `6 k; X3 E% L( K6 S return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );3 c) I+ F% `. o* B) f/ L
}
. E1 s0 R- O* D- j6 k# Y }/ m- w: t# f# p6 }
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
% S- T: {4 }2 @; A{
! i9 M' H( ~2 @: k9 | LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );5 v! h+ F+ J \# W, U% P6 D+ G
CRect rect = pWndCtrl->rect;) \( k1 m3 }! ?- Y
if( rect && rect.PtInRect( point ) )" B1 s1 ~3 n" S% F7 D" u
{
, s/ _3 b! n5 ?% |; k CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );9 L: ~- P% @$ N, |, c
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )/ ^1 t3 Q$ j! f5 ]0 z. I
{$ r3 Q N' r3 m- J b3 k G d
if( m_pItemElem )
. e- F4 }" b, q7 O! ]; @: C) C- O {
# u; j0 M- x1 S6 H: t) u: k2 V m_pItemElem = NULL;$ O8 O' D' E9 S6 F* ], D
}$ V/ U3 s+ k* d
m_pItemElem = pItemElem;
( h! |% Y9 C/ U3 Q& G m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
- ]2 I# r8 D: }; [ N }else{
, R, F2 H: R8 V% e7 E. O5 w SetForbid( TRUE );: v$ {& t! R/ M- t: H
}
) \6 \5 F5 m5 ?( s7 y7 f }else{" C3 W8 x" e9 a0 \; n
SetForbid( TRUE );, T& N$ [, j% d% L% ]: x' J0 Y
}+ f0 S/ L2 `, W' T
return TRUE;
5 |2 l% Z9 U. g}! e: t1 `; y* `& q5 ]9 o6 {
3 a7 J, T6 e3 @0 b& wBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
+ P( k, @/ F7 f( }5 }2 r2 y# F8 h{2 n3 J+ D4 l3 h( Z. w* U! o8 |
switch( nID )/ U* X$ {1 m, V' |5 ~( H0 a' k6 A
{
7 p9 C3 j0 B3 ^, W case WIDC_BUTTON3:
$ w) ~6 ]: a/ E6 B; U {+ _0 j" Q, r! o7 o! S9 t7 ]0 S
bStart = TRUE;. P$ z! ?2 b3 ]) s5 s
break;
, y( M* k& Q( Z+ N7 ^2 ]% }! e }
( C2 |, O. b1 J8 a3 U case WIDC_BUTTON4:) J$ W4 q# i2 H! X4 s8 S
{
, p T0 a, G1 b' F bStart = FALSE;
4 |2 Y6 e& X/ Z% Q" b) @ break;' B& _% l" K# F3 e* L& l
}
; i4 q. b5 N$ G" F2 U# e `. R }' o" L+ O- V. \ V/ d
return CWndNeuz::OnChildNotify( message, nID, pLResult );: a$ W( h, r# p; F) ?0 x& e
}
* g9 A; F! ^3 H9 Nvoid CWndAutoFood::OnDraw( C2DRender* p2DRender ): |8 \4 o1 {+ T4 e) s" b( V
{6 `9 w7 o( G2 Z/ j/ h3 [
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
{5 z& }) e6 Y# q# C- e if( bStart || !m_pItemElem )
/ l" i* k8 D# u3 y7 }1 [1 `5 R {6 m" ^. m( u) H& Q
pBtn->EnableWindow( FALSE );& R) |4 C: @, Z2 v' l. j: m
}else( J5 @! n- v* K8 x7 p. V7 y
pBtn->EnableWindow( TRUE );- I6 K# y8 ?& b$ s" Y: W
if( m_pTexture )
0 T: J$ S$ B2 {. t4 X$ C { `2 |4 M5 i' _5 J- `4 i
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ {1 _& t, k! |( i
if( wndCtrl && wndCtrl->rect )' A5 P$ x9 }( Z/ V
{* A# K0 p0 } z$ S& T3 w* D/ S
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );5 k+ l U/ G( f0 ?) B. T1 l q3 U1 x
}9 {* f" c7 b- q9 j) m
}
# g% n: j E$ g! ?% c6 [}
% U# v- H! K3 B' r' f4 T
5 E% A& l3 E0 a% d D/ A+ e$ v+ PBOOL CWndAutoFood: rocess()" S! t3 z0 `, `+ A! k
{$ `% f$ j+ Y4 l# i+ U
if( bStart )0 d1 p2 U+ g& a* j% B& J& C
{
! h! {5 b$ X" k/ |2 W. u2 s! j. C if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
: b0 ]: ]7 r# `5 U7 g" K {: P5 L+ F, d6 f7 h! ?' W0 J9 [
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ): D% l2 `' h1 \4 }
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
$ o% U7 ^ W4 ? u }else{( N, ^; G4 t" q
bStart = FALSE;; z; X- n& H' i" ` C
m_pItemElem = NULL;
! Q! w" Z7 Q9 B: c }+ y. |, o' q8 i+ I0 N0 P6 T* q9 R( \2 V
}
4 C8 T2 \+ {6 ^8 F+ o& d return TRUE;
+ o9 J4 h" s8 u$ e}
]% ?) u2 l9 ]$ t6 t2 q: S
$ A/ f/ W, ]) K# [2 ?( v9 y9 T登录视频废话:1 }! ~* `! Y8 [5 E' z) U
尾翼:9 i( s: h y9 ?$ }7 f0 l% I
2 ^" f4 ]+ t( h( X& f p
代码: h/ b. o1 ], h
: T( n+ A, K4 N4 @5 ?
void CWorld::SetLight( BOOL bLight )+ K4 g6 B2 Z0 L& f2 U6 h
durch
; U$ u, k4 C2 x' b) c- _) I0 m3 oCode:6 n; G6 W/ r" ~( g: g( H
void CWorld::SetLight( BOOL bLight )
! Y2 y6 f/ b# Z( f{% `: ~* D7 Y" {$ C6 r h# T: s
//ACE("SetLight %d \n", bLight);
: k4 |8 e# g M8 q
" R+ Y# I5 q" i6 d, G#ifndef __WORLDSERVER
( }$ M# I' Y6 ~; n% d. l1 U DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* m; Y2 D% k2 } CLight* pLight = NULL;
/ L+ _' u3 t; N9 _! A8 {; G' G4 X9 o. e+ \% ^+ Z
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );! m* |0 N( i; S2 w6 f* J! k
2 t. S! T; k: Y( ? pLight = GetLight( "direction" );7 }/ ]6 N6 t L/ u9 m. w1 [
2 Z: r! f! {# |#if __VER >= 15 // __BS_CHANGING_ENVIR
0 C! n# k5 ?: \# S% M! q- k; n if( g_pPlayer ){) c. O* F8 A0 s0 U7 {* h" A2 y
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );$ G v O4 b5 ^, Z' y/ V
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!; b0 n7 y2 p* x" ~, o0 Y
{
% C- ]4 j9 G) U if( pLight )
1 {" L; U! I! n3 ~* ` {
1 q& |6 |& a3 s3 i9 e$ _ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];7 m* I' T+ w' k3 F/ Z( Y$ P& h
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
' U: K4 }5 z! f. `, o2 U( a) h9 C/ J pLight->Ambient.b = pInfo->_fAmbient[ 2 ];; h+ K' S' r+ Z
4 Y- h) m, W0 k% g9 _3 W+ Y
pLight->Specular.r = 2.0f;
: z# t+ A9 n# j" a pLight->Specular.g = 2.0f;0 G2 [! _5 Y3 }+ |
pLight->Specular.b = 2.0f;
+ b/ }8 A; L J8 A% m/ N
) V- t/ L9 X6 K! g. @" W# e' K, t pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
+ t4 x. H5 l/ W2 Y+ i% E pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];" G u$ s! K+ B4 o1 Z2 f. Y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];9 O# [+ ~# r7 T2 x; y. w
' S4 S+ k; D( Q& q% q% u' l/ J/ a
HookUpdateLight( pLight );
8 n; d% R/ ^7 n m
! L; z! k8 v1 B3 G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% q) U5 d* q- M$ [+ l7 q4 R' |1 n3 l
/ F3 ]3 ^) G. T9 G8 ]$ U; A* b6 e
pLight->Diffuse.r *= 1.2f;( X! v& i+ R' f9 E
pLight->Diffuse.g *= 1.2f;
8 w3 O. @: C" l2 j V( A* v pLight->Diffuse.b *= 1.2f;
7 s. e' Y: F9 f% ~
" J4 ?( M1 u" y pLight->Ambient.r *= 0.8f;1 _- q. b& c& g
pLight->Ambient.g *= 0.8f;
! k- w) N8 _% x, H( i pLight->Ambient.b *= 0.8f;
5 i; R! X1 `4 J) t" \8 ~% o- f2 \
0 a# e. l: H3 H! J9 M8 z memcpy( &m_light, pLight, sizeof( m_light ) );/ D% C9 M2 Z/ |5 M/ K
) O- d" c! ]' Z- \! `
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) ` r# e# x5 r- x+ N. t6 J# m D3DXVec3Normalize(&(vecSun),&(vecSun));
9 e9 X4 D& Y2 A pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
3 [+ s; P8 w1 O+ ? pLight->Appear( m_pd3dDevice, TRUE );
1 A R3 @% A5 _8 ~
2 t' U. ^# @ L DWORD dwR, dwG, dwB;
0 [ C' B; Y3 @ dwR = (DWORD)( pLight->Ambient.r * 255 );
* B% a( _3 e! Y. f% Z dwG = (DWORD)( pLight->Ambient.g * 255 );
, r0 B" Y. {% C3 }6 U" D dwB = (DWORD)( pLight->Ambient.b * 255 );
8 i/ B) `1 z: l/ ~ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" d/ V# ^% C# W- r, H- L7 V+ C/ I }" s. h _6 Q. L: E
}
+ C0 I3 x- Q* S }: k2 y6 R/ W5 X3 U* G+ K
else
6 q C& }6 S4 Z; \#endif . `3 n& w9 ^) j2 L7 n- u2 H% h G
& H- p* M2 n. N8 \0 s5 X( l if( m_bIsIndoor )
5 o+ s }2 k; Q5 s2 u" B {. y/ ^- S. i# k4 n' M
if( pLight )1 ~; t, @( x5 V" ^0 m! [1 ~
{
; c! W% o, F, `9 o // à??μ oˉè*
0 L' r( ^/ Z2 N: O3 k pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
& e8 I2 G; o, E' ?0 B' t4 n pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
8 W; ]+ M6 D* @8 Z pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& S$ D @0 x' x1 L4 L7 i/ Q; o/ T5 ~
4 P( P0 B- W) R$ v" s1 p8 Y9 a6 A: l // oˉè* ??à? . D$ s" R& v0 S9 U$ F+ A: A
pLight->Specular.r = 1.0f;
( D8 y* @# ?1 F/ | pLight->Specular.g = 1.0f;
8 n3 {, B0 e m$ p. I4 `$ i# l pLight->Specular.b = 1.0f;! G* B& B$ ?6 k( B
// àü?? oˉè*
0 u/ R8 W e& I2 f2 K0 Z pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;/ q1 r* G2 }5 ]- c% ~
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;" b3 r$ A, c) `+ g
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
: v6 t' [/ F5 z1 K# `. |# m" f z& k8 g( ^4 j+ @3 J% X
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.2 X/ O6 z) m. Z+ K' p
{
: k8 z( k. U5 Z: _ pLight->Diffuse.r *= 0.6f;; h1 o. E, ]6 O/ X' }5 M% c
pLight->Diffuse.g *= 0.6f;
! Y& D2 p$ c& l% ] W3 A4 Y- x pLight->Diffuse.b *= 0.6f;
4 S# _; e) P$ L- j* ]. g, p8 t pLight->Ambient.r *= 0.7f;
/ m& B! \3 k* W. _4 \ pLight->Ambient.g *= 0.7f;
) y, ?3 N- n' ^& }, D( t! x pLight->Ambient.b *= 0.7f;' o, O# g4 ^- I5 Y; x' I
}, O: k; V" p$ Y$ a( R. M7 Y5 `
" D" p( [) Y8 w! H2 k& E#if __VER >= 15 // __BS_CHANGING_ENVIR
" L; T' }* A& f if( g_pPlayer )0 u& P& m8 ]/ I: S! t
HookUpdateLight( pLight );2 f' I, s7 F9 W' {
#endif; f- v' m; x, f
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! I7 m* y. @4 I0 c y8 K% p7 Z) Q$ }! b- K3 A
pLight->Diffuse.r += 0.1f;
5 ?8 B: ?/ Z; W8 [ pLight->Diffuse.g += 0.1f;
& b" R0 M2 R" h5 W3 F6 H$ ^ pLight->Diffuse.b += 0.1f;
; v+ ?# M: b) H( P" p // oˉè* ??à?
# d% ` k$ } Z8 @ pLight->Specular.r = 2.0f;
1 `& V4 b, B( x2 n4 v pLight->Specular.g = 2.0f;4 S' Y0 f3 x' T- n6 @- |% `5 T
pLight->Specular.b = 2.0f;
9 f4 A1 A6 l0 q6 ^8 N // á?oˉ
1 }2 X! B. n& |8 o2 S pLight->Ambient.r *= 0.9f;1 m6 R4 J5 e1 w4 ~
pLight->Ambient.g *= 0.9f;$ ]2 H* b5 Y8 d" D# M5 p7 b
pLight->Ambient.b *= 0.9f;
: u8 b: y8 j8 \& L2 ^/ U
# h d5 g2 h* [& v1 D memcpy( &m_light, pLight, sizeof( m_light ) );: X9 L9 x" m6 V7 D2 W, C1 T# T) K/ {
' e4 g2 O, o1 b# @( J) c pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
; c0 u" g8 D1 H# Y: t pLight->Appear( m_pd3dDevice, TRUE );
& T+ j0 U5 }4 \) r ! g( ]0 c0 W) ?4 \
DWORD dwR, dwG, dwB;' d( p8 C& m' t# y0 [
dwR = (DWORD)( pLight->Ambient.r * 255 );' J' A9 J3 `& D: A' s
dwG = (DWORD)( pLight->Ambient.g * 255 );+ R. Z& ^; y2 j6 W( s3 _! f$ Q5 c5 A
dwB = (DWORD)( pLight->Ambient.b * 255 );7 v V8 B4 I2 J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, p; k+ o- k' D, H2 T9 v }
! B6 |+ o7 _' r2 Y1 o, M0 ? }
; V; {3 z3 h3 T. l- z else: Q3 P V$ Q$ d5 f; {% }2 }- i9 S* ~6 N
{
! _ J- e- E3 T if( pLight )
9 ~* r! x# s$ F$ @ {* F8 s2 b0 W- T6 F
% R, m7 @0 f+ h5 l int nHour = 8, nMin = 0;
( @+ p0 G3 d; P- ] #ifdef __CLIENT4 Q3 z( S4 q# G2 X6 S
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
# S% r2 X/ e5 ]5 q( F nHour = g_GameTimer.m_nHour;
, T" Y: i) S$ K! H nMin = g_GameTimer.m_nMin ;
3 m- D( d6 _- J #else
/ t9 _+ I+ O* e- j! o6 u: e // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
3 a* w2 X) L8 z* t" A! R if( m_nLightType == 1 )
$ w# d/ u( Y% f Y nHour = m_nLightHour;% F! t& ]" Y: O* D' t
#endif& n6 a5 s/ C" G0 ?0 h. U3 `/ Q) d
nHour--;
$ N4 f, l2 n$ q: j# v: n* \/ z if( nHour < 0 ) nHour = 0;. M/ R5 J9 k, o }, e1 z1 M. M
if( nHour > 23 ) nHour = 23;
$ u: J- E# v) ]& f6 w' p( C) v4 f E$ z" t& x
//if( m_bFixedHour )' ~3 }. q5 N# l8 _ O k+ e
// nHour = m_nFixedHour, nMin = 0;
- a6 d, T7 r7 S& p8 \ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' F: ^% G2 o2 L9 k2 Q9 k9 t LIGHTCOLOR lightColor = m_k24Light[ nHour ];) J' Q- D$ j% |3 u2 t/ Z
( M5 N' {7 I8 Y' [! g- K2 j1 R //m_lightColor = lightColorPrv;5 Z* g# u- R' F1 F8 m# W) x
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
5 f2 F: P$ K/ k2 K% x lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
1 T2 y4 O: p! ]% H/ Q lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
W7 y+ ^; L" K# q( c lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;' j4 r9 C2 e# \
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;* l0 C6 p) e$ i
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;% m& P# a5 ~0 E" q0 z( v6 T
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
6 Y5 K2 \6 C6 l7 c. x8 r5 j7 r2 ^! T1 H9 B0 k4 ~/ V/ b5 m0 \# e c+ |) s- ]
// à??μ oˉè*
# D. `( D+ ?5 F Y4 e pLight->Diffuse.r = lightColorPrv.r1;9 ^# }" E0 I$ ?# Q2 Z; R/ W& F
pLight->Diffuse.g = lightColorPrv.g1;3 Z3 D% A5 M0 S0 q+ D; b& j
pLight->Diffuse.b = lightColorPrv.b1;1 b8 n. N0 E5 L0 \
// oˉè* ??à? . Z1 R( c2 d" T/ Q3 G1 o/ \" G
pLight->Specular.r = 1.0f;2 @' v5 V9 w0 K; ^
pLight->Specular.g = 1.0f;
8 G2 C: E$ @7 w. k pLight->Specular.b = 1.0f;4 z3 ~7 l: W4 Y1 L; _/ Q- L
// àü?? oˉè*
+ z8 M) |3 ]# ]5 t; ~3 E pLight->Ambient.r = lightColorPrv.r2;
6 {- ]6 g+ c- e, x8 c* }$ L& w pLight->Ambient.g = lightColorPrv.g2;
2 k# B- C' ^( |% z. u" G# ] pLight->Ambient.b = lightColorPrv.b2;7 a E# v/ r* U/ ~$ N. j, n
# Y) y& C6 r N) n- \
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
; |6 P; [$ L8 { {
^6 i% x( Z8 G- i% k$ ~! R pLight->Diffuse.r *= 0.6f; O4 ^; s* p( m7 v/ M' B6 T
pLight->Diffuse.g *= 0.6f;
" C- _4 M" U1 d# @ pLight->Diffuse.b *= 0.6f;
9 ?, O0 L5 Q3 d8 n, s) ? pLight->Ambient.r *= 0.7f;; j% {8 |- j3 }- Y) G4 S
pLight->Ambient.g *= 0.7f;4 v6 y) x( D) C0 ~# `9 w' v( H
pLight->Ambient.b *= 0.7f;
0 s, r( m! g0 s6 H9 b% B }/ C& o3 v0 |- }4 f
1 E6 o2 q8 m" X& r#if __VER >= 15 // __BS_CHANGING_ENVIR+ i; ? B0 ^2 B0 W; ~6 {
if( g_pPlayer )# s! d- W2 W6 \& H% w7 y4 i
HookUpdateLight( pLight ); * X- d# c6 s$ D$ N
#endif0 N' N: f8 P/ r' q8 `6 ?/ [2 W4 Z4 c
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 N7 Q0 _7 p- y3 J
5 ?, V% H, L4 U" i) M) P#ifdef __YENV
6 R0 {4 w; Z2 T! `. r" l pLight->Diffuse.r *= 1.1f;0 f" A" A( c3 [8 T) e- i8 v3 p
pLight->Diffuse.g *= 1.1f;
' t; s3 k: c+ `" L5 z7 b8 k2 e- x: F( k/ x pLight->Diffuse.b *= 1.1f;
! @- Q- x+ I4 d6 G // oˉè* ??à?
' \9 Z: J- S, k5 p- f pLight->Specular.r = 2.0f;( L% n' L1 F& V' q# g J
pLight->Specular.g = 2.0f;
7 ?! w ^+ O9 K8 P3 F pLight->Specular.b = 2.0f;
; }: @7 l. W4 \$ ] // á?oˉ
8 b! ?& S3 f2 y6 s5 ?+ h( U6 j, ? pLight->Ambient.r *= 1.0f;- R7 i# o. G g6 i! `: d) w
pLight->Ambient.g *= 1.0f;
# s2 M: J; a5 c# N pLight->Ambient.b *= 1.0f;( y# u4 q8 x/ c6 H
#else //__YENV
+ T c& }, r3 b" b1 i pLight->Diffuse.r *= 1.1f;
0 `! p7 ?" P! s$ r5 z! ^9 `) _ pLight->Diffuse.g *= 1.1f;
% V8 G1 A1 z" K# b/ F pLight->Diffuse.b *= 1.1f;
( N# w5 E* |) v; { // oˉè* ??à?
d" y5 J! z$ C# c$ v pLight->Specular.r = 2.0f;
7 j$ G" w8 }. A4 N0 D: h P pLight->Specular.g = 2.0f;7 t, J% W* q7 B" O
pLight->Specular.b = 2.0f; S' d2 T7 Q+ q, f7 V9 P! y4 P
// á?oˉ 6 d0 h4 m; ?& a) w4 U
pLight->Ambient.r *= 0.9f;
3 O; Y5 p! x2 u3 _: s# ?1 | pLight->Ambient.g *= 0.9f;1 T! x6 [) M; O1 b* o: V# u
pLight->Ambient.b *= 0.9f;
, S6 K$ Z" |- _, o$ A5 E#endif //__YENV 0 {) ^/ F2 F. n- i1 F
/ z( u0 F& h0 `0 l) F, x
memcpy( &m_light, pLight, sizeof( m_light ) );; a0 ?7 W1 X# t: D) q e% v% o" B3 h
- }" p- u( @1 Y$ Q D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);4 z/ I! P5 |$ l" k+ N
D3DXMATRIX matTemp;( c& B% F1 C9 p6 U
static const float CONS_VAL = 3.1415926f / 180.f;6 _' T3 [! p% l, L
9 C" M9 N9 f( `$ \; W" a J" d4 J D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL); j+ o5 ^4 ?, X
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
* P7 M8 @6 I$ o/ ~ R. g9 }. i pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
4 c. z' e( u0 V, q1 m( u: f6 h pLight->Appear( m_pd3dDevice, TRUE );
- B& r' Y% }+ y, h, ?) J. J. n5 t4 {3 }4 _$ m3 N4 X) h
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);% w; h7 x6 B' Q9 u* t3 {
// D3DXVec3Normalize(&(vecSun),&(vecSun));
& Q1 L; I& ~- |/ b2 ] j // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 O$ S& u" _7 a2 v
1 @! X H8 O, B3 n5 t& u- e DWORD dwR, dwG, dwB;7 f: C* F! l' L/ w1 X& Z8 p
dwR = (DWORD)( pLight->Ambient.r * 255 );
+ z; J R7 a v dwG = (DWORD)( pLight->Ambient.g * 255 );
/ f9 S! [( C( w9 ^5 H: ~/ B dwB = (DWORD)( pLight->Ambient.b * 255 );4 |, U; F+ b* ^+ C# G {4 }1 ^
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 0 g2 K/ o+ a1 l- E
}
& b' T4 ?4 y& t) _- } }& R% P0 A' m! r/ _; M3 R. b
n1 p; \: W7 _
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
1 }) ~+ ^2 G& p8 } R. A" M 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) );
9 {, ^' ?# d0 _ ::SetLight( bLight );
( z \6 O) E- k/ W
5 Y( U0 s. _5 c2 z7 U, Z1 L // ±ao? ?D?í???ó á¤à?
" ^$ }2 `5 l A5 d6 b m_pd3dDevice->SetMaterial( &m_baseMaterial );
* |9 H" ]! E9 k. D; [ - b: P4 D/ G+ I: A$ ^8 l. K5 I
#endif // not WORLDSERVER! \1 s. W) C9 n
}1 g. Q( b) k3 F8 o6 z, y
并更换0 M0 d/ }5 O, Z; t; Q
Code:8 ]& D7 g0 {* U2 G1 m- i x
__FLYFF_INITPAGE_EXT3 `$ A6 @/ y. {. D0 i$ z8 }' ]
定义
5 p. r1 ~1 W: b* Y( _! F
: X3 F: F/ g; j- P }1 N+ j
* F+ x8 ] V+ Y. _# c9 h9 k- U K# y8 ^0 D4 e J
% j' m, ~ U6 R4 R0 P, Q9 ^5 n, {现在终于删除我的狗屁加速...% r2 K4 x2 S' c$ [+ R+ ?
/ K- o2 b$ y! {- Z M4 O9 y
^ k r7 g+ v- G8 l6 @, ]9 T( V! o& T7 q3 Z0 R% P2 ?# v
|
|