|
|
食品车:, G5 W9 w0 |& D7 U7 ~9 v& b5 j7 @
尾翼:
$ P3 ~3 Z3 |4 Q( `; @0 \6 z! _& g6 m; v6 p$ e
代码:
) A1 J0 G7 [; s# QCWndAutoFood::CWndAutoFood()
9 K& O& _ D6 L{
~' G" L7 l3 w4 e: I m_pItemElem = NULL;
4 S# o& N4 t% d0 `' W m_pTexture = NULL;
6 ?- M- I' F' W& ^$ E/ t% W bStart = FALSE;+ K; X! F' O4 m. F( W: c# w
}" G) F L* K/ q
% w9 O3 J$ t1 A5 H& k& LCWndAutoFood::~CWndAutoFood()# b/ l3 w! |6 Q5 u2 L
{
( d0 o5 Q$ z) U& }4 A1 r AfxMessageBox( "AutoFood ist gestorben " );
3 G: _ c" {5 W0 [" D}# V; N0 X3 u7 j
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
3 y9 V2 T0 V" o$ I{/ g- C* X+ m- I) `, y
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
$ a& [+ P$ a- I" D2 f, g R}
; H/ X" o- I: Q" ]5 z# g0 Q( I! N% K4 i2 M e& i0 @
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )6 R7 `% d1 u' v+ d! a
{$ {1 F( l4 G$ y% F3 r/ N+ W
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* @! J4 ^; T" |" W
CRect rect = pWndCtrl->rect;
, C L! Z3 I, M: b# _ if( rect && rect.PtInRect( point ) )8 ^3 v/ `3 m0 f! N
{
6 j6 G$ t( ]' S4 K0 g7 v6 @ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );( q* R1 E4 f1 n& ?& s
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )8 D/ `& ]/ H& U4 |) e! z
{+ _$ @- K4 R+ y% x8 p8 J
if( m_pItemElem )" K C* m) f" H0 V' Q1 {
{' p- E1 @1 H4 e( g
m_pItemElem = NULL;* f+ p# E' R) ~ x5 _: g
}3 D3 q$ S& T) j! m# z# x
m_pItemElem = pItemElem;2 b1 \- N) ^ R& k! v
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
) @" y1 a$ j+ K& I7 ]1 A+ Z }else{ P# `+ E! Y& | A8 b% L7 l) ^
SetForbid( TRUE );
2 @" r& H- c$ L. \/ i( o }1 a* V/ O: w, L: h. @, O! ~* ]
}else{8 h& r6 p% {' P) ]+ G
SetForbid( TRUE );! s6 L) o& @9 J3 P
}
; T* @( `$ m) |/ Q9 W return TRUE;
. m, F( d% L& ^0 m( g# H$ S; y3 R}4 l/ ]2 z. f' R
7 _ o! ~" e- F# W" ~* {BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ), z( a$ z( _5 U% S8 l, E
{
. A _# j0 |0 U& W switch( nID )/ G# g3 i6 r$ p8 v
{
# E/ J2 S, F) e9 A) {8 w case WIDC_BUTTON3:
5 X8 n( @7 f5 E/ R1 E# C) X5 R {
+ r1 D; n R% o bStart = TRUE;- b$ X5 C s# g# o
break;: |' D# }; `; w' b7 @/ X
}$ r5 D& O3 l' \# l3 {1 l# t& p
case WIDC_BUTTON4: u! G. E) ]& Z( x+ u, e, [
{
+ D# o M/ r( w7 Z1 j6 d bStart = FALSE;3 a. g# C9 S0 z. z: D$ T' \5 J! X
break;
: v. z! s' Q2 B1 U5 V" E" l }
$ O/ P) b* ~8 q+ H* P3 q }
9 D' I6 z: z7 Z8 @! w; z! Q: o return CWndNeuz::OnChildNotify( message, nID, pLResult );9 |) y) D; u9 e) o# S% u" I. U; W
} + X6 B% z3 L& F( ]: O# J0 p
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
! f" _8 I* e5 O" g2 O7 A) q: ^{
; y8 K8 G, x) ]2 V, m2 z; q CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
$ [9 F7 A! N1 J$ w% |7 H* I; @+ v if( bStart || !m_pItemElem ); W; J0 E8 O2 \ U" r+ o0 M8 ^$ m
{
$ j$ X* B5 N& n( E pBtn->EnableWindow( FALSE );9 E/ g( y0 U4 F, w" B! S9 g
}else. R9 w* `) C% z+ K4 H
pBtn->EnableWindow( TRUE );
! C' O; q3 v$ r& `2 a0 a) I if( m_pTexture )
& G0 e7 V2 A" ]) U {/ k: U! t0 M# o4 ^' m
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );6 Z! \$ a+ e* Y2 p
if( wndCtrl && wndCtrl->rect )$ J9 ]4 h5 p: L9 j: u
{, l4 h5 e8 G$ A3 i
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );. g. b P! r6 k* i: \
}8 I* W) r c* [+ j
}
( {! _, X" N% @5 r* y: r}: B2 D* C" }; l' |) H! U: N
; x/ d7 ^0 c- B, E5 bBOOL CWndAutoFood: rocess()
9 r& V7 \( a# t. V2 @{( |" L- O- p7 b; {& L, X1 \: n
if( bStart )
& v$ q& \+ [; M6 s, Q {, K$ ]4 @3 r/ x
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )/ W! Q- x/ J. [! e
{
' R0 C' }- s0 G+ F: Z 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 H1 i4 U# ]) G3 n6 ?# k' C6 F8 W g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );9 _ T: r& L# K+ i0 f$ Q* Z
}else{! M, q4 i9 W2 n2 }
bStart = FALSE;
$ J5 D+ Q. E1 i( r A+ m. _: i m_pItemElem = NULL;9 m8 Z8 d: h' t9 I2 `9 k
}
- q! z* v! r+ l }: }4 O; s: T9 R4 v5 p# N5 L) o
return TRUE;
2 ]0 ?4 q+ K! R}
. g7 m, m# v7 P$ i
/ j" V2 `! J" n. Q$ C# U9 I E登录视频废话:
! K- O& I5 ?( m8 ^& ?( S0 i尾翼:
$ _$ W# C! W+ C, X l% z/ R
4 g- _3 f; F1 l/ U$ O代码:
5 K M# h1 w* p, f# c" c" Y, k( r, n( N! a; |* w" H& j" U
void CWorld::SetLight( BOOL bLight )# S8 g* e a1 U! H2 i6 P" R5 T
durch
/ U* o# h! @% |8 T" O- n& eCode:" U) c! M. X; S5 r: T7 I
void CWorld::SetLight( BOOL bLight )
9 s8 U6 J1 G3 K8 y5 g3 _2 L{. J# e& \4 K4 v8 ?" E g! E! W1 Z k& a
//ACE("SetLight %d \n", bLight);, e2 Y/ m; ^& k" K# J
2 L+ S- m7 a5 u; t% V/ c0 l& w; c
#ifndef __WORLDSERVER
l3 o! w! Q: r: ` DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
! C9 D4 p3 o0 T. |" W `+ c1 N6 }9 s CLight* pLight = NULL;
( X& }( U r$ P" `6 X8 Y7 L+ T* x# p. @" {0 y. K* L, W5 X0 o
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
4 f$ y3 g! y3 O7 W/ A3 d( f- W' A/ p" m( D& G" Z
pLight = GetLight( "direction" );! ? {- `' c/ A& J5 w2 T
6 I0 N# X- [( M$ o$ e
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 J8 n2 q+ ]3 r7 E4 m" i if( g_pPlayer ){
3 p+ p4 K; i$ n) L5 C7 T- _/ e ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );3 m0 y) M' z+ l$ ^, u, S% ?
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
9 ~# g) I3 P6 I1 t6 d. W; I8 A {! w D8 C' k7 P. \$ \: b9 l
if( pLight )
' D8 r5 c' X3 }; C3 z* f) w& M {. p, _# ` P, d) H% @: ~! u* Z" I
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
8 U: y7 J0 P9 A4 f1 W$ l! H pLight->Ambient.g = pInfo->_fAmbient[ 1 ];6 _7 l- K; @9 }7 T2 B4 s& A
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];" M; z' q4 W% o8 c
. [# \+ g `" v% X" S pLight->Specular.r = 2.0f;
5 R9 i$ J) `* L$ ? pLight->Specular.g = 2.0f;
6 o' x6 r/ F$ U4 d" s7 I6 U/ n pLight->Specular.b = 2.0f;& m% P. S# B# _) T2 l: p% N8 H
' z. \ m P9 ` pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ]; E: }% h5 J9 X# h7 k/ J9 z# E9 M4 n
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
/ I0 W; Q. }: Q/ V/ ?9 v% _ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
! J6 N& n1 M& @5 O: `
2 D2 F+ _; ]" C9 }! \. W HookUpdateLight( pLight );
4 Z4 ?; x: o& R7 P
) e! _4 k& U8 k# e& e8 i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" R+ _6 I$ X5 _6 b* z: E ' o- l, n: A* E g& L' {2 j
pLight->Diffuse.r *= 1.2f;
! i4 o$ h( J8 x2 H. d! s4 `; t- u pLight->Diffuse.g *= 1.2f;
5 x% v" ]% c% k pLight->Diffuse.b *= 1.2f;. Z( G$ q. U% Q c# }8 t
/ |$ r9 g- G$ c# z# E3 j9 B1 @
pLight->Ambient.r *= 0.8f;
: l, ]# D# F" |' u2 q pLight->Ambient.g *= 0.8f;
; `/ A1 q0 t: b, p. }7 f pLight->Ambient.b *= 0.8f;
( z3 h; N# ~7 X; ]2 }, T
3 n( C6 Y1 t) ~8 D# E+ ^ memcpy( &m_light, pLight, sizeof( m_light ) );/ z# e' F3 P5 m
' @: J8 _* ]! [/ A% G6 I( I; N
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 b& R# I- \) B% [
D3DXVec3Normalize(&(vecSun),&(vecSun));9 k( N2 d+ W% G% F1 e ^
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 O" I* i8 h& Z1 V
pLight->Appear( m_pd3dDevice, TRUE );
3 {) g5 r6 p* l& j# {6 M; ~5 ]' |
. i7 ` V- W/ Q5 s" R DWORD dwR, dwG, dwB;. ^* K8 a4 t# o3 X
dwR = (DWORD)( pLight->Ambient.r * 255 );' y0 T1 z1 O: {0 D
dwG = (DWORD)( pLight->Ambient.g * 255 );
7 ]- Y7 j6 j( N3 a) v7 { dwB = (DWORD)( pLight->Ambient.b * 255 );
2 V! {/ j C$ ` dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" v% n* G; y0 R4 H6 ? G( O
}
6 e: e1 |" ], w- |/ a$ n }* b* p0 E0 @ x5 }9 F' K
}
, x2 @! K4 v9 t( T" ^ else
9 M. `- V W, u2 w8 V% C; n. z6 v' Z#endif
3 s2 @" F- g# [ A
6 j& v- b w9 J( O& C* p if( m_bIsIndoor )9 y v( L; j X) W, i
{7 V& o9 F% [3 j) Z5 j6 L9 E
if( pLight )
?* c: h: G3 p$ c0 L% f+ K" S { 4 v. ~# H. ^; x, l# h
// à??μ oˉè* 8 h: O) I/ }8 T/ e
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
8 Y$ g& B! C& ` pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;. f3 l! f; M7 h, \/ K3 r, R( g
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
2 K/ y4 z l' M* p6 C- e( Q& m: t, p0 f) T- e+ F2 s+ ]0 z" V
// oˉè* ??à?
9 i$ O2 C) G3 o7 y8 {' ?( P7 P0 V pLight->Specular.r = 1.0f;
" L6 {9 t! R2 u8 z# e$ @ pLight->Specular.g = 1.0f;/ A/ F7 z6 _" H4 j
pLight->Specular.b = 1.0f;
# K0 K: @* M: c# {; ~ |' A // àü?? oˉè* 7 R; X6 a) E0 I3 F+ B
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
2 N) j) D2 b) K$ ]2 ^% @+ Q pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;: [, H# ~6 s& V6 `
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;- O) L. Z6 i( i
6 v& v+ Q% R7 l; m if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.' i3 t3 T3 U! [7 w* e% o
{
O: q: ]( y* x* y+ y pLight->Diffuse.r *= 0.6f;4 e/ i& [$ n; W S+ Z) s
pLight->Diffuse.g *= 0.6f;6 V$ } R4 P- \6 D
pLight->Diffuse.b *= 0.6f;5 S/ ~ B$ @% s1 t
pLight->Ambient.r *= 0.7f;
/ I7 r; Z# |" ^6 W pLight->Ambient.g *= 0.7f;+ C$ E/ s& ~ H1 G. M; _
pLight->Ambient.b *= 0.7f;
4 c8 Q8 t7 C% D/ f }+ | M2 a5 A8 ^# Q
5 r* N) ?5 v5 I% _( f' g
#if __VER >= 15 // __BS_CHANGING_ENVIR
' ~9 C) F* ^( ~ H- ^8 D$ t% M! k if( g_pPlayer )
( b; G0 z5 F! d0 \ HookUpdateLight( pLight );1 E$ U/ E( y7 T% l% Z) }( s
#endif1 ]/ p. z; @8 _ Y: c4 p( C* P
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ [, r9 K1 y, F- W; P: p; V1 C! B5 c1 p
pLight->Diffuse.r += 0.1f;! V) n$ ~( q% f: I: S2 x& f7 c
pLight->Diffuse.g += 0.1f;
5 h3 c) m8 T& t pLight->Diffuse.b += 0.1f;
( [9 D7 t5 v5 H8 T, ]4 h# _ // oˉè* ??à? ; G9 ]3 _% u* u
pLight->Specular.r = 2.0f;+ M9 X$ o" b- W4 v, S) G' c
pLight->Specular.g = 2.0f;
( X: s! A7 d4 }9 G pLight->Specular.b = 2.0f;0 z$ |( a- _0 s- Y8 a7 H' h
// á?oˉ ) o0 C1 N0 O3 w# m8 v* |
pLight->Ambient.r *= 0.9f; |. }% W- m$ ]& H' L" [
pLight->Ambient.g *= 0.9f;/ e2 S; x0 Y" T- Q5 R
pLight->Ambient.b *= 0.9f;
: K0 i+ x/ w1 u3 s3 {) r
% P. d8 w! ?" P1 V3 v& k memcpy( &m_light, pLight, sizeof( m_light ) );
; y- O' D( k, w1 b, Z B 2 C: X! j: t$ T# P) @ a
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
+ P8 S. @' a+ d, u9 \4 z7 R; B pLight->Appear( m_pd3dDevice, TRUE );
# ?2 S/ ~) c* z$ }" M" a
\! p) ?0 W, W% _2 X DWORD dwR, dwG, dwB;$ R* j# W- |+ G4 C
dwR = (DWORD)( pLight->Ambient.r * 255 );" @+ i9 u; E) E/ j6 j9 o
dwG = (DWORD)( pLight->Ambient.g * 255 );9 u6 R$ L8 I" w" f# \7 a7 N
dwB = (DWORD)( pLight->Ambient.b * 255 );4 p7 x, Q9 w( I3 ]1 x: K) G
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! V; C, ~; ]1 r3 _! x# B }5 {3 A% Y: {, Q$ o6 _, a i
}, d1 o f8 y8 `. b
else! t/ O" N6 p/ _, t# R1 x. U0 ?
{* p& w; z; m! ?8 e& A- V- Q# T0 _
if( pLight )$ j+ E/ ?9 c3 |" j9 n+ h
{0 i$ `" ~8 ]; J
# U% W. a4 J6 A- A8 y0 H/ }) w int nHour = 8, nMin = 0;: N) ^* L9 n, `, n1 G5 ^
#ifdef __CLIENT2 }# E, s% ]+ E/ H( C% a
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 3 P6 ]2 R3 b8 Q* K, W/ K& K
nHour = g_GameTimer.m_nHour;
2 S3 d; E" ]* K _5 E- J nMin = g_GameTimer.m_nMin ;6 Q3 y7 V1 F; ?% d, |: t4 v" {+ e1 M
#else' Q. z- l- Y3 i3 z: u0 d, ]* ?
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
8 @ {/ D" t) b/ G if( m_nLightType == 1 )
; U, G1 f5 |* z& ?2 F nHour = m_nLightHour;
5 G5 p: [+ X4 ^" ?2 G" { #endif% s9 M, W4 K6 h
nHour--;/ J3 p# N) d* w5 u2 N- C
if( nHour < 0 ) nHour = 0;- L: l9 b, g0 O' k9 m9 T4 ]
if( nHour > 23 ) nHour = 23;7 D$ G! D- E- f8 i( Y
9 }' B0 C5 r3 {6 }( Y
//if( m_bFixedHour )- u6 L' D2 l* N
// nHour = m_nFixedHour, nMin = 0;
1 o, B* j/ u: f% o. J LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];) y* _7 c: B" ]7 {4 g
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
1 A" E6 h: H3 l$ E. _7 g; z. t
$ @* T6 Z! I% Q; H6 [ //m_lightColor = lightColorPrv;
: c9 Q. v. x0 O% B+ @' Z lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;% a1 `! K8 _3 Y8 \2 g# t+ _, g; {
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;$ K" y4 ?9 ~2 ]1 ~( ]4 F! X2 d6 q
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
! B# U$ C8 Q* V6 p lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
8 s8 g) P. M7 e# E) P1 j lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60; L+ D- ?- ^! J3 g0 V: j$ C
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;$ p5 A8 X* z5 S1 |3 v2 u J8 F' ~
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)- C: N' j) V$ r+ s! i- S
3 ~8 V: F+ q# O
// à??μ oˉè* # p5 c! r% Z" K, l
pLight->Diffuse.r = lightColorPrv.r1;
' z: D& H! h! C( s- g pLight->Diffuse.g = lightColorPrv.g1;
$ X: R5 v7 N1 w# i pLight->Diffuse.b = lightColorPrv.b1;
) O! ~+ U9 v/ B& `2 L // oˉè* ??à?
: H+ y$ u2 A$ j+ z& T/ B) u* ^; W$ m8 ? pLight->Specular.r = 1.0f;
! l, \5 Z l1 x# s. S pLight->Specular.g = 1.0f;' T2 g8 t4 _1 U/ N# q1 y0 h( r- r* r
pLight->Specular.b = 1.0f;1 b; s" A2 D- s( e5 y: Q
// àü?? oˉè* K d" L/ a, A" c
pLight->Ambient.r = lightColorPrv.r2;1 x! e8 q) C7 d6 f( ?( S" k4 d5 [+ z
pLight->Ambient.g = lightColorPrv.g2;
2 f$ f& |3 ]% A/ w9 H' j3 P pLight->Ambient.b = lightColorPrv.b2;: f7 |* T7 M6 f5 m+ D" Z6 A* {, s
( G: e! V" N1 u2 f. C
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ A' F% O4 j$ o/ `. n
{
) p( W! J( T2 ^* [3 R+ Q. O9 B pLight->Diffuse.r *= 0.6f;
+ h: p$ \$ y _, ` pLight->Diffuse.g *= 0.6f;7 E2 Z1 {8 K1 |6 t) X
pLight->Diffuse.b *= 0.6f;
6 n6 p8 u* P& _) l pLight->Ambient.r *= 0.7f;) x( m- v8 O7 F b! t( p
pLight->Ambient.g *= 0.7f;! G) L5 l" H' m1 B( z X' b* W
pLight->Ambient.b *= 0.7f;
) s" B* e N& p. G) ~. r1 {8 [ }
4 W( }( i* u; i* g 6 F: n, k- y5 Q' I$ B; ^9 I: ^8 G4 [5 K
#if __VER >= 15 // __BS_CHANGING_ENVIR
. K+ K& C, L0 t if( g_pPlayer )
7 ?, a- F) g& q0 F1 ~: T) v HookUpdateLight( pLight );
9 s- t- E# e6 @% D4 x2 r: V#endif
7 X0 N0 v, p2 v) a8 m2 N memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 q- K. K& F; c6 ]( Y+ k" c/ R' o, Y: |
5 b* w& h$ S4 ~! @% C#ifdef __YENV0 a7 B; ? x) o) C8 u0 ?1 R% |
pLight->Diffuse.r *= 1.1f;; B5 \ F! A l. C: `) G' E0 a0 r- [( g
pLight->Diffuse.g *= 1.1f;4 b: u' x% N: a# J5 t/ N3 { w
pLight->Diffuse.b *= 1.1f;
0 J1 I9 r$ p8 A* i# P // oˉè* ??à? $ G' I ^. g- T4 E: N- P) r
pLight->Specular.r = 2.0f;3 @( K# v* J/ L- M6 d) k2 L
pLight->Specular.g = 2.0f;, { x1 f R& H( T4 N, U# q
pLight->Specular.b = 2.0f;
% p* b# G$ m3 }* t, o // á?oˉ
' m/ K' `- e! J& ?9 p pLight->Ambient.r *= 1.0f;
/ @" n. ?2 s' o pLight->Ambient.g *= 1.0f;% \9 X3 w/ a- }9 p K6 ^
pLight->Ambient.b *= 1.0f;
* h! [4 j- Z1 r) A#else //__YENV- [. i% t- U& \' H8 r, e
pLight->Diffuse.r *= 1.1f;
0 Z% H7 x+ v* ?+ p pLight->Diffuse.g *= 1.1f;
* \$ R: P% u& W8 t- P; K pLight->Diffuse.b *= 1.1f;
8 E3 [: a. e! \ P w5 n // oˉè* ??à? . o4 B9 G+ N& y+ a
pLight->Specular.r = 2.0f;
$ @, k5 q5 w! E3 l7 V# F' b pLight->Specular.g = 2.0f;
* O2 H- G9 E' d5 v6 o pLight->Specular.b = 2.0f;- i+ d: G% D& q2 { H- J7 I
// á?oˉ 9 _& V5 N: I5 a( q* Q% K
pLight->Ambient.r *= 0.9f;
9 V( J0 Y3 x! P+ H5 | pLight->Ambient.g *= 0.9f;
9 @$ g5 _) a# Q1 q- y pLight->Ambient.b *= 0.9f;4 B# r" X1 i d. g
#endif //__YENV ; ]+ e3 U0 g' S+ w6 x
8 Z; k( D: i* Z+ b) f" v5 r( K
memcpy( &m_light, pLight, sizeof( m_light ) );
* [' W! T' G; e& m
/ b2 M5 P$ h; B D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);4 ^& i9 I; E; L1 D, Z
D3DXMATRIX matTemp;+ C5 ^7 V; ?8 e: G: W
static const float CONS_VAL = 3.1415926f / 180.f;. `# e) L- G0 E. `( q! {
+ h" U" J' A0 o7 U D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
1 W3 a/ c r4 [; b* w* ~! t& P# N D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);" P4 ^9 K5 J! T% v" Q. b
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
4 n8 [( P# b( a U+ l R; ^6 { pLight->Appear( m_pd3dDevice, TRUE );# ~. ?9 }- [+ e% n, Y! D
- s6 H" _0 k+ X1 b" b3 s5 {2 X // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 O B, \1 j: i9 p7 g( @' L6 X // D3DXVec3Normalize(&(vecSun),&(vecSun));" Q9 O% v# _+ j/ I; v1 o: s$ ^$ k9 G2 y
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: u$ A/ ~0 k; G" T2 X
o4 e: p9 ]3 ~) T" z DWORD dwR, dwG, dwB;1 P) W% L$ L. J( J
dwR = (DWORD)( pLight->Ambient.r * 255 );! {9 Y3 r( j/ j7 V9 g
dwG = (DWORD)( pLight->Ambient.g * 255 );0 U3 o& ?7 M2 A3 E
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 z% K* m4 \; M- o5 A( B dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) b. o5 G! E+ z; h
}/ ~" h, B+ s E" x
}
$ R2 f6 C$ \2 G9 j
$ B4 W( d+ H3 E1 B m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );" A% V& E1 J0 ]
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) );
2 S; L- x* p0 Z ::SetLight( bLight );" U# ^# E9 u0 m
6 X3 W: O0 l7 j1 ?/ L6 B! } // ±ao? ?D?í???ó á¤à? ) T! ^& o# K. ~- q
m_pd3dDevice->SetMaterial( &m_baseMaterial ); s, I$ {0 [9 ~" x, v' ]' J
; a/ y% b. p! n) U#endif // not WORLDSERVER
; N+ U+ L& O( w# Z# |: y: t7 b}
+ O* c3 k2 m2 i- ?6 H0 E, B并更换2 E7 C! ]6 W* j F( c
Code:
$ {: Y) Y( T4 n5 Y3 R__FLYFF_INITPAGE_EXT# {7 d+ w' ~8 G- k! Y5 Z$ T
定义+ O% r( d- G9 `: _2 W$ B: }3 o% u
* C1 v6 T Y. g5 ]/ U
4 b7 o w% B- Q' M4 S( N5 ]' y8 \ J1 o6 y* B- \6 i
; Z, {, ^" M5 M: |8 G: o
现在终于删除我的狗屁加速...& M+ w3 Y7 U7 Y% H- r
7 o6 C K# Y/ T
1 |' l* V# a V4 [/ `3 v& Y
$ d! f$ O: \: Y. ~: }& ^" h' m4 r6 E |
|