|
|
食品车:/ \3 D6 r6 w% q @+ N& q
尾翼:
" K p. x/ [# ^* j
7 U" w- g4 A% b6 H代码:+ x) e; T& s! r" e/ {
CWndAutoFood::CWndAutoFood()3 X% p" O% c5 x+ ]
{! \3 i+ r$ ~6 Q
m_pItemElem = NULL;
$ |1 [: D& ?8 u0 |. X m_pTexture = NULL;. u+ }5 D Y' ^2 o) q! u
bStart = FALSE;7 a1 a, Y0 {2 Y- K$ \
}6 _0 X$ }6 p7 f. _( k% L8 t% t
3 Y) z. `; M1 j$ F" ~3 Y, }6 V8 ?
CWndAutoFood::~CWndAutoFood()& D6 {$ O$ J) `, n" |( r7 e- \
{( z: B) k4 i& v$ p1 x; q
AfxMessageBox( "AutoFood ist gestorben " );* E) S% y/ ], A3 V: d9 Z# j
}
" e9 i& Y* j. |0 O% tBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
7 y4 [1 L+ {! S% F{ H. R9 e; ^, B0 B
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );0 W# T1 m0 j1 o C
}8 E8 @5 U9 N" E% l/ |7 Z( W- ?
6 |1 m; T! o. t; O$ Y2 w3 iBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
2 F2 I+ q( {7 Q4 `{
; O3 t5 X& E5 y& u LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' [/ x1 ], f: k& ~. D3 z CRect rect = pWndCtrl->rect;
3 i/ B* e" H- @) X if( rect && rect.PtInRect( point ) )
* `; j1 \1 @" ~5 Z1 l {2 t' }) H( s6 J# d9 ^. _9 Z
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
7 C X& N5 d( P) q5 c2 P if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
) K/ Y0 d+ [; {0 J |) F3 ] {
3 W6 g) E0 C- L% g" [) t if( m_pItemElem )- ?' w: [) n/ W$ A: X3 k4 O' p/ m" C# x# x
{
; ?- N6 P0 K( f* q& ]+ [ m_pItemElem = NULL;6 r+ k" ~; V" H0 ^0 K0 E
}
% A2 q& B" U6 ]0 k m_pItemElem = pItemElem;
1 r' H& {' P7 L5 E6 x g m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );5 r8 i& o' _3 V5 c a- x/ z, k
}else{
/ G+ m! |# v6 B0 @ SetForbid( TRUE );
! @5 I% t3 B% E }
% v/ b: }6 c! X0 E }else{
- l$ l: s) W( m. h/ R2 Z" z SetForbid( TRUE );
' X( ]9 Q( |+ b& ^% t. b% G0 Z1 |- g }
" N1 b. m" c1 t return TRUE;
+ C/ t1 H: u6 I3 r}. s/ {5 k2 K4 Y. @9 j
9 v# U" q6 j+ n2 B
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
1 _- C# m+ }& f8 ]4 a) S) l S{
% \. V1 Q, Q' A3 p8 k: H switch( nID )
" }' V7 C& m* @. l; v5 i" v {0 N* c$ [, q- @' B3 I/ ]
case WIDC_BUTTON3:* [5 c% N- P2 K9 A
{
2 i- }9 k, D9 I& P7 M bStart = TRUE;
* S3 k0 }- t! ?# @4 {1 N break;
7 o k6 r6 y; F I }0 z0 g1 } \! p. o
case WIDC_BUTTON4:
) M( F4 K! L, j- k5 T& V7 h( [% p {% @, o8 z3 ^, W' z& I9 V
bStart = FALSE;
6 E# ]& t2 m4 j/ W, F" k1 U8 K, z break;
' i% M; i) _+ D }% q. z5 v: [% `5 i# a
}
( I- a& X/ d) l( J7 f& K$ B( G return CWndNeuz::OnChildNotify( message, nID, pLResult );
* [4 Z! Q! e" `' H. r& [- a! W" g; ^4 T} . ?8 q! i( P) ^$ t9 ?, S
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
/ ?- n* t L% X% a9 C9 L{* [6 A; F- n0 l2 e" R
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
) G; G- q9 H% z' w if( bStart || !m_pItemElem )
$ ^2 ^& s9 y7 K0 \' @ {
. M5 Q: b q8 z2 `5 y; Z+ ]8 K* }: t pBtn->EnableWindow( FALSE );. C. i3 ~6 [# s+ j. k5 ^
}else
/ X: }7 O+ d$ M# C pBtn->EnableWindow( TRUE );( X5 q a& T: i
if( m_pTexture )
: T5 ?5 @' M6 ~1 V {9 w$ y {
, a0 y8 |! G/ r$ X" C: ?: h9 r LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 N' @. y' K O% |
if( wndCtrl && wndCtrl->rect )# T: g8 U' v6 V- u/ ^
{$ r: b# R7 R& S$ u
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );# N) Q" A8 [8 e+ _/ H% U
}5 n9 P4 ]: ]6 x4 ^, q
}& Y Z- D- a! N2 W3 N3 `; Y
}
) n6 ~5 a2 B7 I9 b8 L9 e3 Z
* Q# `2 K, k( k. q. b" w$ tBOOL CWndAutoFood: rocess()
. R( s: `! m% I$ s" _( z{0 V4 {# z9 [( M% I( b6 b( m/ }1 `; }
if( bStart )
& j7 w2 w' {- ]% z( U l {4 L" i% G1 ?1 h3 o1 q7 ]9 f- n
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )1 `2 G0 ]; `5 l0 S( U: k0 ~
{; b& a- S! v5 [) i: t
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ); \9 x9 H) ^1 b' S2 i! M, u
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
' L2 D' F G' I }else{
( D* ]% A1 U; T bStart = FALSE;; \# W& m7 Y% Q8 D9 C% o
m_pItemElem = NULL;: ~: L0 R* F* }5 X# ?4 c
}
5 m: H8 j9 p" ]. b* c }, s# ~4 A& [, o) ?
return TRUE;
9 P s: r& o9 T t* y}
! g( C8 I8 ~, A- ^5 f' ]
& i2 E) P/ t4 T登录视频废话:2 O X" ^; Y# F. ~) ~
尾翼:
4 U; K% B) i# {5 U [- z# i5 ]; H* W" P6 o5 k2 c9 H
代码:6 G; H! Q, @* B0 h9 E
5 R2 Y9 M2 w/ v6 Z9 F
void CWorld::SetLight( BOOL bLight )" d! n8 [% h8 F: s
durch' V6 ^" u7 ]9 K. w4 T" h+ r- Q: N
Code:
v' y! P" C# z1 L& R B6 ovoid CWorld::SetLight( BOOL bLight )
# Y; p( r$ t7 ]0 J0 E+ G{
2 A: n( A* A1 T5 l. k% N //ACE("SetLight %d \n", bLight);
* ?. a' r/ V4 e7 D* b1 H * l1 V6 H8 @8 C8 {1 c% Z0 z7 |
#ifndef __WORLDSERVER
: t+ g& r- J7 ]0 m DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);1 a+ ^, `. F. g7 V6 o
CLight* pLight = NULL;; l+ N. e s2 `& i
% T( ~8 }9 u. s* h" s7 T A D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 k& }5 f# K8 b9 T- `' j! W5 y& o* G8 S; o8 V
pLight = GetLight( "direction" );
( t- `& \; L' A: x7 O5 Q7 s' A/ k, s( |1 K+ r
#if __VER >= 15 // __BS_CHANGING_ENVIR/ S& d3 C' _1 r, l, m `& i" S4 b! q
if( g_pPlayer ){ E! ?6 z* s: Y1 h- Q
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
$ ~6 B, @. U+ P+ Z j3 w if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ f4 g9 D% N" ?* R2 c1 x# g2 ^% D9 U { t" d1 M% f4 J8 J* ?7 `1 N
if( pLight )4 F& _" h3 C, Y% P% D
{
8 u. m8 ]- k3 t8 K0 m pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
' W9 z: m: H4 k/ m3 G9 g. C+ `3 z pLight->Ambient.g = pInfo->_fAmbient[ 1 ];" M1 d$ R: p5 C1 M! p/ Z
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];2 }% w; t+ N* h, [
# k/ q& l2 Q) ~( Q3 I& n3 ^
pLight->Specular.r = 2.0f;
* l6 D3 Y9 g9 p& Y; b. l pLight->Specular.g = 2.0f;- T/ ?# ?/ n V! w8 }& s" K; N
pLight->Specular.b = 2.0f;' A2 W+ I8 k/ A: S6 C
) h0 t0 h% v2 X) b9 r3 g; V pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
( P: o6 B8 h; D, \( Z" | pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
1 s6 }1 @! Z, j, I1 v" [ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
$ u; J1 D- v- S" U - b* v1 s( z) C$ d" T
HookUpdateLight( pLight );
# V8 G# `6 t2 i1 I/ n7 L2 y- p* Q1 p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: U4 V, t- a9 `: r9 a
6 `3 U5 B' ?. j4 J. A
pLight->Diffuse.r *= 1.2f;
3 F4 L1 e( Q% p6 j& w4 K- L pLight->Diffuse.g *= 1.2f;
; Y( {' p# Z5 n# G pLight->Diffuse.b *= 1.2f;: g9 i6 c4 F5 Q
* t) h, L# ^; V9 l6 e! p3 e) @8 {
pLight->Ambient.r *= 0.8f;
" W. o! A! j! t5 C$ f6 E2 m, m pLight->Ambient.g *= 0.8f;
/ U; q, F( v c/ U9 M: W pLight->Ambient.b *= 0.8f;
7 u% z8 O! z) `" i& ^ # f$ Z `+ \- Q; @. h, u8 {4 ~
memcpy( &m_light, pLight, sizeof( m_light ) );
% p; K0 g& M W) P. {" F' ?2 Q5 c( Y0 S( O6 N9 A. z9 K8 U
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) o; e9 t- T! Q p8 E) V& K; I D3DXVec3Normalize(&(vecSun),&(vecSun));" `; w5 F& c, r# _: x6 q( z. c
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' e$ x" ?0 k# G3 X6 ?
pLight->Appear( m_pd3dDevice, TRUE );# y% t4 s2 R2 Z3 r" ^& M/ C! L
" _9 p" F A* r1 E- h) |
DWORD dwR, dwG, dwB;" P. q4 Y4 s5 q5 }% V; R- Q
dwR = (DWORD)( pLight->Ambient.r * 255 );8 { v) L: R+ ^; f
dwG = (DWORD)( pLight->Ambient.g * 255 );
& T# e. h- [: a2 _5 k dwB = (DWORD)( pLight->Ambient.b * 255 );
; F9 [: E' M3 @, U# Q1 W dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 T* g8 u3 F: B, i, Y i V" D
}3 k- D9 ^, h$ y; E* j) V
}* |7 D; F0 ?8 X" ?% {
}
8 G* F2 ^6 N' D5 T; ~3 ` else4 U/ J, e' L% b1 n
#endif * }4 c, [1 K2 Y% S4 s
* w6 b' Z1 t; @8 E- Y5 z
if( m_bIsIndoor )
: ^) H+ b$ |& Z. l+ c {& A) s! C* W5 E1 O( p& _ A
if( pLight )3 K$ Q1 i. ^4 @7 W" f4 X7 p( i
{ 2 \" `. w" R8 o' G* e. P
// à??μ oˉè*
6 e6 x' {: \, } [1 r pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
- i0 i! f7 P9 J pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;3 |/ Y- }6 ?9 |# y/ b
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;$ j( w4 F- x" \. R
+ X% h: J8 O) f2 M2 M
// oˉè* ??à? 5 [. R' }) F2 a5 [, Z- `
pLight->Specular.r = 1.0f;+ W6 U8 ]8 Q, x6 r. w) h
pLight->Specular.g = 1.0f;
, X% |8 S& U0 g6 {/ u- r pLight->Specular.b = 1.0f;
3 C$ i, y% m& e6 r R6 H4 f // àü?? oˉè*
' R9 |3 j9 w! ~! u* ^ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
( M7 V4 b" f$ o# |% r pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
$ H8 _$ U+ k7 `4 Y" d, N& N pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;4 J3 }3 d! \3 g1 Z
3 P* g9 I6 I/ a4 H) ~2 v) ] if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
+ ^" c; ?3 C- n x' ? U {; t% h! _* {7 C8 u7 x5 K
pLight->Diffuse.r *= 0.6f;8 j/ b# w6 l& h
pLight->Diffuse.g *= 0.6f;! r4 S1 C/ C4 m
pLight->Diffuse.b *= 0.6f;
$ `* p* D; w, t. q5 Q f# q pLight->Ambient.r *= 0.7f;
+ r* H# }2 O6 L( `! y: L% {6 U pLight->Ambient.g *= 0.7f;
* i( d: m m @ pLight->Ambient.b *= 0.7f;0 y: \" R% k* {/ ~& a
}
) H$ w. N$ w- h) ~7 C; U
; l0 o5 v- [- X( B9 ?4 m#if __VER >= 15 // __BS_CHANGING_ENVIR' D0 D3 S( ?- X" g/ `: b7 c
if( g_pPlayer )# b; ?$ R0 D& n+ e' L! i
HookUpdateLight( pLight );
5 Z Q5 b x3 n# {$ Z3 s+ Y#endif: x3 @; {4 d1 u6 P% ]/ `
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );" z8 P- ~ @# z4 ]+ V3 @% T9 u
6 @" o; F" h% _' T
pLight->Diffuse.r += 0.1f;4 y6 B3 S! {/ L9 ^0 E
pLight->Diffuse.g += 0.1f;
) E% b: |* Q3 z9 x+ h$ b1 u pLight->Diffuse.b += 0.1f;# _. x& i* U. h$ C5 T
// oˉè* ??à? : ~( T. f. C# t$ d
pLight->Specular.r = 2.0f;
$ C. Y$ o i4 D# x/ o1 M# E, A pLight->Specular.g = 2.0f;
3 P$ @/ b5 J4 p# Z+ E pLight->Specular.b = 2.0f;- m) q1 A+ ^( G( c8 y7 H
// á?oˉ
: m$ M: r( ~8 U4 @1 c& P pLight->Ambient.r *= 0.9f;# P t2 [& P4 j- l
pLight->Ambient.g *= 0.9f;
; Q, k6 g! d* B$ a, v pLight->Ambient.b *= 0.9f;. h; ^7 M+ J( O
3 j$ o N) B9 a2 s
memcpy( &m_light, pLight, sizeof( m_light ) );- c8 X% z$ I* ~$ `" Z5 x
! p% ~0 v) a! ^* L; i/ Y8 c pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );8 e( l, q. j0 Y% G
pLight->Appear( m_pd3dDevice, TRUE );- A3 h9 V# G; F/ R9 w; |4 w
' A: d/ g W! j5 K' j' s+ l- [; X
DWORD dwR, dwG, dwB;
6 ^1 ?! q* }9 x O; _: }' E dwR = (DWORD)( pLight->Ambient.r * 255 );
1 N$ W' T6 k& z: e9 i. j dwG = (DWORD)( pLight->Ambient.g * 255 );
8 M8 Z- B9 D8 ]# q dwB = (DWORD)( pLight->Ambient.b * 255 );) \3 S3 _1 K+ L; Z/ A% A$ p3 A
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
9 V# Z" d4 P. ^0 K' Z% D* A }7 {9 A5 f" B% X5 ?4 |9 C/ ]
}0 z ^0 [, O$ M0 a. x
else
7 P3 b2 C3 t! B {8 B, @ ^* N$ M* a$ i, a$ `$ R4 o
if( pLight )- ?* \$ T* Y/ d8 a' |5 u2 `
{' P, t: w6 j$ V T3 T& N+ P3 e
8 E% T0 E: G$ W G3 l4 ~, H
int nHour = 8, nMin = 0;
* v* g4 r' s' @; f o #ifdef __CLIENT' m* b. R I! a' r
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. * B. C' z9 C) ]+ c4 B% P( S
nHour = g_GameTimer.m_nHour;
u0 c/ V! w2 m2 P' e h1 ]( Y; O nMin = g_GameTimer.m_nMin ;
" {: D4 v) q4 e5 E0 k9 k) L #else4 f% y: {) e. ]! h" {# k) [
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù./ U2 C, N h" y& p# D
if( m_nLightType == 1 )( G& z; R" T( q: ^% R6 U
nHour = m_nLightHour;
* k+ g0 R1 o( D. ^1 F- {* d2 K #endif) l3 }# K2 J Y7 f; q7 n5 S
nHour--;; o" H- R6 ^( ], n0 \
if( nHour < 0 ) nHour = 0;0 P- S$ ^$ `2 e* n
if( nHour > 23 ) nHour = 23; j& q8 p8 `7 }% P9 J5 t
1 s4 B# e# D; D1 k1 N
//if( m_bFixedHour )3 i1 h" d% i( z- V- @
// nHour = m_nFixedHour, nMin = 0;, f3 ]9 O8 j3 \3 l. a/ k
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];- t6 ]/ x% x, j( s: @/ Q1 Y
LIGHTCOLOR lightColor = m_k24Light[ nHour ];+ r) Q0 u, j$ J
3 [4 F* E3 q8 {5 v( A" M //m_lightColor = lightColorPrv;- I4 R/ K* j+ r' R+ o$ h1 j' S
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;4 k7 w0 ]1 c2 N$ M$ q
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;: N0 @7 T4 m- n- P3 G- K; e |
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;: O" L* C: j5 f# o. s& ]* B
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
" I9 a5 v$ M7 a# i; ? lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
* n8 b! L4 b; @ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
$ d* p0 |0 f8 ~+ r4 @3 y // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
+ l7 q, d2 ]8 }" Y! B* G% }5 g8 T. B {5 p% a' g
// à??μ oˉè*
& |( L$ @- B; }1 v) Z1 e pLight->Diffuse.r = lightColorPrv.r1;$ j+ u: ?- m" u5 E" W8 W
pLight->Diffuse.g = lightColorPrv.g1;
& |3 r$ b" f( q. ~$ |0 ?4 ? pLight->Diffuse.b = lightColorPrv.b1;2 x* L9 D/ p) B5 z* b$ ?
// oˉè* ??à?
# ]& V5 c; l7 f pLight->Specular.r = 1.0f;
8 p+ }9 u- X1 Y/ r pLight->Specular.g = 1.0f;' A# I5 s8 w; L3 A5 I8 x' g
pLight->Specular.b = 1.0f;: V5 G5 y: d+ N2 h
// àü?? oˉè* - d. Z# [1 J5 p* e% A0 V8 b9 `: L
pLight->Ambient.r = lightColorPrv.r2;, _' i' `* U6 p8 g. L. X5 v0 [
pLight->Ambient.g = lightColorPrv.g2;
) X3 d: g1 J; m5 J& R pLight->Ambient.b = lightColorPrv.b2;
4 r$ ?0 l4 t! z ]# Q/ ]6 Y/ W8 R* V1 P0 S+ B
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# b, w+ R1 f5 |4 S2 z& a4 D
{
, w6 y, g% T6 B; q8 L4 A" }9 P pLight->Diffuse.r *= 0.6f;
2 L$ q) u5 U- m0 a: n pLight->Diffuse.g *= 0.6f;' C v8 h( C8 O8 \( T3 g% l
pLight->Diffuse.b *= 0.6f;
7 v7 t' y3 N! ~5 e pLight->Ambient.r *= 0.7f;2 r I! E. B/ F! f/ s' |5 v% `
pLight->Ambient.g *= 0.7f;7 x# R: @" i- R) B( ~
pLight->Ambient.b *= 0.7f;
* _2 `( ?1 W; w3 o8 r+ f5 |! I# `" J }6 R7 F3 \/ u3 Z& _; j ~
6 q) K3 p* U& F ~; ^$ Z, y+ o$ ^#if __VER >= 15 // __BS_CHANGING_ENVIR
, c O& l" j3 S# N/ i) V if( g_pPlayer )3 J4 h- ]9 E! X) x) O- e. |
HookUpdateLight( pLight ); $ q1 Y1 t( J8 {2 j: T; s1 I
#endif
+ h1 h7 {9 [7 F& t9 d memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ q" m; W: ~: R2 N7 r R* B! [3 F1 j2 O9 w, i. O
#ifdef __YENV
e, Z1 U3 n% o/ W7 y+ [ pLight->Diffuse.r *= 1.1f;
9 a( [( P# R; r* x' g$ p pLight->Diffuse.g *= 1.1f;
- E# k" ?4 F4 b$ z pLight->Diffuse.b *= 1.1f;# F) T' E% e) H# j0 g# y4 ~; k4 S
// oˉè* ??à? 7 [) R) T/ X; G$ N0 `
pLight->Specular.r = 2.0f;
( J; M4 e6 `+ ~8 N+ \& L/ v" u pLight->Specular.g = 2.0f;
, @* o2 e+ o( U: }/ C pLight->Specular.b = 2.0f;! w) J6 F2 W0 [8 z0 \
// á?oˉ 9 C; I/ H3 ?3 a8 {2 R* p4 g9 I Z( w
pLight->Ambient.r *= 1.0f;+ |4 e2 q% F* u- L0 d
pLight->Ambient.g *= 1.0f;
; A% t" w4 l4 E) D9 H) E4 _0 p( r) c pLight->Ambient.b *= 1.0f;
' r, Z4 m7 x9 {#else //__YENV* |; ~* `! H; T5 U; W
pLight->Diffuse.r *= 1.1f;9 n# W" ?7 X/ }
pLight->Diffuse.g *= 1.1f;; v6 T! k/ B* x ~& b* d
pLight->Diffuse.b *= 1.1f;
/ e+ Y; B# Z* a1 O' X+ | // oˉè* ??à? 5 ]0 d' P: `. J3 Y- W7 Q; w+ w
pLight->Specular.r = 2.0f;
! h& N) {/ \; o& r) v+ Y pLight->Specular.g = 2.0f;0 ?! _" D# o0 n( C; D/ _6 z' x
pLight->Specular.b = 2.0f;# C, n. C5 }" c8 E9 }( P
// á?oˉ
4 p' W0 X- O& @+ k, Y pLight->Ambient.r *= 0.9f;. D. w1 b5 N4 P0 ]+ ]9 a8 B
pLight->Ambient.g *= 0.9f;
) {& x/ z5 K7 O, R7 d1 |9 \" ] pLight->Ambient.b *= 0.9f;
2 i* ]! v- j3 o2 K ~4 Q#endif //__YENV
' I T/ _$ D+ L q9 w; x' e
0 V" k: f& k! Y2 \3 e memcpy( &m_light, pLight, sizeof( m_light ) );8 b5 {7 D" l& G7 E: r: o- L
- ~! w- R1 A" E D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
M! t! v, h+ g0 u) _0 J0 t D3DXMATRIX matTemp;. P+ X4 P0 P$ v8 Y. v. V
static const float CONS_VAL = 3.1415926f / 180.f;
5 e$ ]: S) O, o B" U: e" s2 v; e
- d" |9 X* c2 K0 c; q; V: t D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);# C! K" b4 _: Y9 U5 z3 r+ s
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);2 o7 b. }$ ]- b
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
. Q& G, n' c1 n P& F3 h pLight->Appear( m_pd3dDevice, TRUE );) r ~; t; a: i2 j8 K3 e2 X
9 ?; N5 e9 s" M2 q" o; v2 ]: D
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; G. S: c t4 O1 ?- V // D3DXVec3Normalize(&(vecSun),&(vecSun));
7 M6 E5 P+ Q+ A" K7 K // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); & H0 ^% h1 m" r* R0 C9 W; B4 O( ^
% Z! }" O# U9 Y% G4 \! ? DWORD dwR, dwG, dwB;
5 v7 _- T0 t4 ?' g4 P: u dwR = (DWORD)( pLight->Ambient.r * 255 );* u2 \: R: J" O2 N! V% O2 d; W
dwG = (DWORD)( pLight->Ambient.g * 255 );
; S4 \ w$ l- W; z8 @ dwB = (DWORD)( pLight->Ambient.b * 255 );; ?& P: L( C3 L; [
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ! J0 h+ j3 }# T
}
" ~" X2 |$ E* l; b1 U* t, l }
5 z: P$ I0 |; f$ M; ]. l% c9 a4 n) R- ~/ K8 K
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
& A, C& E- c+ ?; F; o* 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) );8 |! J7 D$ {& v$ m/ U2 {6 W/ A
::SetLight( bLight );/ B/ ?& b: Q% O* i
" ?, _1 ~8 N" c( h+ c$ l2 g* `
// ±ao? ?D?í???ó á¤à? K9 \/ C. U. `6 ^2 ~2 n& b
m_pd3dDevice->SetMaterial( &m_baseMaterial );
1 y: o* ~4 ^1 }/ y0 Z# c+ ~ % S6 p7 l" [5 l8 L1 i- t
#endif // not WORLDSERVER- J1 j' W, z8 T* d4 ~7 ~
}+ J! Z4 T: Z9 h( a2 z) p( l
并更换$ X& E0 ?( \+ l
Code:9 \! b& E6 m2 o$ b
__FLYFF_INITPAGE_EXT" D- K9 w" |+ X1 b/ v1 c" Z
定义
% S" ]& j) R1 d: r* Z' L* C& {9 X9 g+ K
3 W, p( K+ J9 l
' F; x; ^; \* [1 {
% Y) {2 @0 _# ~2 L% [现在终于删除我的狗屁加速..., G9 Q% T8 R5 M3 P) S( S7 h
' }) [. \) i; b$ `! ]
; u5 w$ e- k1 a# J: d9 V8 O
" k2 { E" F. C- R. | |
|