|
食品车:/ X, m/ B9 T1 K6 d
尾翼:+ `; {# E, p8 G' {7 T" @$ G( s
* |2 C2 k# m* X: K) G( A z代码:
; _$ }! z I& Y; }: A4 JCWndAutoFood::CWndAutoFood()
$ V) v! E/ c5 \: k( k% I$ K* b{ d" F3 z* f, Y, Y
m_pItemElem = NULL;
/ p. ?" Q1 k Z- E9 } m_pTexture = NULL;9 C" Z$ m) v" W+ c% v! ~$ K
bStart = FALSE;5 c6 w7 o" j, C
}
8 t) x/ L/ `8 j( O6 y# ?" r# ]- k+ K4 L) X
CWndAutoFood::~CWndAutoFood()1 |" S/ m# J# @3 d
{6 Q: s# f7 ]2 R7 r% Y
AfxMessageBox( "AutoFood ist gestorben " );. s) _% f9 I! K1 k5 Y1 y4 ]( U
}
. |% d' o7 r3 q$ P/ T: |BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
2 r# o, c+ w' E; [) c{
2 e- a( S) T" C) J return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );- X& e+ a+ ?8 v/ B( g- _& ~9 |- n
}1 G9 s; \& \! I4 W1 e
/ r3 {+ z# N. _( N% c: vBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )6 h1 `% ?4 o5 A4 m
{
. j: U, r9 g* H1 {1 M1 X9 ^% x/ ` LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ j# D- M* i% [+ }; j+ C# J
CRect rect = pWndCtrl->rect;
1 L: y4 X7 i- S# w, h# Q. K if( rect && rect.PtInRect( point ) )/ k8 @# ]8 b- V. j' G( a
{$ ~- d4 f1 r' j" {
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );+ [+ z9 G7 `! N$ Z+ n, @& U
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
# i% P: W* i Q j4 l- e. Y& v {
- E; Q- h2 z0 @6 F- l: H if( m_pItemElem ), f% C) Q0 |" c3 H; F
{: X. J7 u3 w0 x9 @3 N
m_pItemElem = NULL;
' u& z; h* g: C+ q }
! o9 o ?8 o' d! P) U/ ^+ ` m_pItemElem = pItemElem;
6 R0 j- k8 I7 ?" F2 C& N+ b2 Y m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );3 B: n4 ]( O2 T* r" c% n8 \
}else{
5 I! c8 y; @* h! X9 }7 B SetForbid( TRUE );1 h4 D l% g& G m4 V
}
0 m+ M$ B6 C- d6 I& q, b- R }else{; F5 u" r. c( N
SetForbid( TRUE );( ]" A8 I" _# M8 @4 g. N" U! K
}
9 s" J9 W7 {( Q! F7 w return TRUE;
- ?0 c5 r Z$ ~$ q}
, j9 Q% E- a1 h7 G7 p" p5 R) W$ ~/ F- D) Y" b% | M
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )/ @) w0 q) ^+ `$ l4 Z
{7 O, f+ Q3 Q; r
switch( nID ), M& y% @" W% R( n' v( r, w0 V
{
5 _8 T1 \) t& K# a3 S case WIDC_BUTTON3:
b! Y5 X: _3 @8 ?* _6 Q1 X {
# j( w5 ?; p7 }+ l) [; [8 M* g; @ bStart = TRUE;
" b# T: i( ~7 ]3 ^' W3 N7 I break;
- H6 E$ R" }: T3 ]0 ^. Z) r0 h }! w' D" A& [- m1 I2 p! l- c
case WIDC_BUTTON4:
6 n) ^5 g N& t4 n, ~' t6 H" Y {
8 D2 t1 c* b3 Y T, f: A8 g" [ bStart = FALSE;7 {( I, y5 D7 h! f9 t5 [4 S6 @4 L5 w
break;
" H) F. Z0 f; U: J1 U# n }
& ]# `( G3 z4 q# U }
- k2 a9 f1 H, d5 T return CWndNeuz::OnChildNotify( message, nID, pLResult );: V4 }: L, ?7 ^ K! a7 F$ V! a/ b
} ' T5 z l( j) \' |
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
! M: |6 K* ^/ U2 G( X# v5 r{
% m7 o q7 H, [# x" m- J+ o CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
5 Y, U2 H* K( F2 E! n [0 G# M if( bStart || !m_pItemElem )* v( \/ }' v0 D$ K! a
{
8 u' `& K, o* d+ O# T pBtn->EnableWindow( FALSE );) A o2 S, E2 ~, \( s
}else
$ N4 q& d5 @- P pBtn->EnableWindow( TRUE );
% j5 V# U8 k. P6 {4 P: Q" {- E9 p, c if( m_pTexture )7 ^; {. D/ T8 C! d+ L6 e
{
( K/ }: m' n5 y' d; t! z LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; r/ g6 K$ _7 b if( wndCtrl && wndCtrl->rect )
9 a+ f0 u4 x" V; x$ a {
O* m/ w8 Y) v# v1 z m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
* k- L5 V( h4 Y+ M: s( Z, C }, }7 o' p) }! H3 b, y! t
}
5 o9 _. ^4 k! P0 j! ?} d. i) o8 h4 w8 T; [
' D3 [8 ~2 Y, E8 A* I. m o5 kBOOL CWndAutoFood: rocess()
' t- T: |6 s( Y& W% I: D( t{. r1 M% M4 [, Y/ @& f1 M
if( bStart )
7 Q) k9 e p% B. Q6 A3 P {+ k2 ^; V7 y5 N! }' j
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
( T: W. E6 l" b# @; ~. w. x! _+ x {
5 C8 p" O/ M; G- _* ~/ Y/ { if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
: y! }; q$ T9 T) O* R" j( e g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
% W. ]1 v6 I8 n1 u" f9 O { }else{
( {% [0 U K6 u bStart = FALSE;' k) d' \0 K; r$ g7 H
m_pItemElem = NULL;( ]' A, [+ j6 _% M7 A2 C' ^
}# I: O0 t. x, B- I! s$ ?
}. D0 d! Z4 M/ p/ L) h, |
return TRUE;% s+ v" t3 o7 g, h. o0 R# C, c; A
}! M: `8 k3 C& Y& c6 r! X
$ k# S8 p+ H8 `5 A; A
登录视频废话: B/ A& d- f* D/ Q6 s* A
尾翼:4 F" i% K# u5 m0 d
( [9 J2 ^. h9 z6 i/ l
代码:
5 W0 G" e- U4 u$ l: Z4 G/ G; z; M, l7 }
void CWorld::SetLight( BOOL bLight )6 U4 ?; t' M& ~# T5 e! g
durch
" @- V! y/ L& GCode: {( Q6 N* E( {9 v& o3 X% U; _" D
void CWorld::SetLight( BOOL bLight ); S2 _: G9 u$ ?! A$ W' @
{
1 j3 K8 g) B2 m- i //ACE("SetLight %d \n", bLight);
: [: p! }% g& X+ g5 h; M ) U* D3 l5 ]# x; V$ C- o7 P; S7 E
#ifndef __WORLDSERVER 4 ?4 H) n3 w, r; R% }1 E5 a: i# Z
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
1 a+ y9 f5 O2 [, _ CLight* pLight = NULL;
- N) M/ ?* e- q4 r
& D ~$ L8 d, B ` |8 ], A7 D D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
4 C c/ S2 V3 f
! H5 L) m* {0 ?) Y pLight = GetLight( "direction" );. T9 A6 `* W' }/ t S8 [: r
$ _! L+ ]8 V' H. F6 l
#if __VER >= 15 // __BS_CHANGING_ENVIR
+ V t3 {- C% \, o" d- k# ]; m2 r if( g_pPlayer ){( U& G4 C1 x. F S! a
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );! h5 s3 ?% z# s! g& S1 G
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
* P+ m$ s5 A2 _ z2 ^) b {
9 {- K* r6 v$ S- `/ L$ ?# a if( pLight )
- V5 G, {+ F8 ~) y/ ?) V {
; m" [* z" h- I pLight->Ambient.r = pInfo->_fAmbient[ 0 ]; u) X/ F& T( c- c" L
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
! `8 @9 P& Q8 ?; P pLight->Ambient.b = pInfo->_fAmbient[ 2 ];( Y p" \& {, C
: K7 F9 R- j" K$ @
pLight->Specular.r = 2.0f;- d- G0 h# \& B0 W1 L+ x
pLight->Specular.g = 2.0f;: G+ b# }, a! j, }
pLight->Specular.b = 2.0f;
/ m+ s. x4 O5 I% X! O2 @
9 F1 {" P4 G# @- x$ i pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];/ o* M `( C& Q6 u
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];3 W5 o1 x% }- s
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
; O, t+ b1 m, p
# v; O- T) @0 b! r8 H HookUpdateLight( pLight ); ( }6 ^/ q* A! s" |
; V' D6 {+ P9 U
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- t& C- X% m0 Y# o+ ] 9 C+ t4 i3 Y& O7 f, O
pLight->Diffuse.r *= 1.2f;
& I4 @* u6 q u; V+ [% { pLight->Diffuse.g *= 1.2f;8 s3 U8 r- l# G& i; H# H! E2 o
pLight->Diffuse.b *= 1.2f;
1 o- \$ X5 a4 d8 L# _( |( i
) F/ j/ h v% y+ z3 v3 o& M pLight->Ambient.r *= 0.8f;4 D' `/ r! L4 D. Y9 u+ t) [
pLight->Ambient.g *= 0.8f;% L6 z& T# J* o3 i: F
pLight->Ambient.b *= 0.8f;) y6 J& p4 G- h ?, S0 o# |
- I/ R: S- k4 d
memcpy( &m_light, pLight, sizeof( m_light ) );3 v+ ~" X9 n1 B7 ~
' Z6 W/ }- r! l; I4 Z6 e# ?
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 W+ N: a$ m5 N+ C$ p D D3DXVec3Normalize(&(vecSun),&(vecSun));
9 D0 F% Q6 o/ _, B0 L4 O9 o pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 E7 ` i/ V; f: ?
pLight->Appear( m_pd3dDevice, TRUE );
! b# B+ D* E z f1 s; l3 }
2 U3 r- \" E& G# E DWORD dwR, dwG, dwB;' V- z5 r! \: B% e
dwR = (DWORD)( pLight->Ambient.r * 255 );
; z& v- A) w$ ^' A dwG = (DWORD)( pLight->Ambient.g * 255 );
" z# v5 m9 O. \/ q2 ^ dwB = (DWORD)( pLight->Ambient.b * 255 );
h5 {* j# k' k2 i7 I dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 F& O- k0 _& O9 j5 G
}
( k* O8 f; j y }
& g0 _- u6 M) B; {: s! d9 J; ] }* I, g/ Z+ h U4 P* Z+ U3 z
else2 y2 N+ y2 p9 k9 i4 ^, m
#endif
, Y1 _4 R) P# F5 O* A1 g
; p. F" D5 y1 P- m8 m+ G0 A" O" ~/ d) ? if( m_bIsIndoor )
# F" X- p l# z1 m6 y {/ [7 h' d+ E3 k( t+ Y$ Z6 y
if( pLight )2 f) g* p ]" I) S: S I5 k7 i
{
8 T0 o- G& ?1 C3 f! [9 j+ i // à??μ oˉè* ! D' p" S* U" G# ?& {/ s% O
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;% Q0 W9 C. P3 s8 a' {3 Y5 H3 W4 S% i3 P
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
: L; }5 u0 M% K2 } pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
5 l2 d2 [( L X: Z8 A
' i) |2 b/ t& N/ H1 r // oˉè* ??à? ) j3 v6 r& U- O- J1 a
pLight->Specular.r = 1.0f;! q- d3 Z$ O& ]* }% |
pLight->Specular.g = 1.0f;
! g8 @0 d0 M* h+ p( Z pLight->Specular.b = 1.0f;* Y1 ]1 _7 V5 Z$ v* `
// àü?? oˉè* ' v8 Q' p! r6 m9 F. `3 j
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
; q8 b. T. W# J0 M& m7 U pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
9 z0 [+ z: H% t% s( a pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;1 ?, W2 F2 e2 P/ }7 k6 ~3 Y7 C
% m2 a- [; }( i
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" M( |0 i2 _. u+ J {
+ C0 S' m4 v# \6 t; `2 E7 b5 Y/ F* l pLight->Diffuse.r *= 0.6f;
% Q1 J2 Q5 p3 F3 y pLight->Diffuse.g *= 0.6f;
/ P$ B Z7 b9 V/ }# H pLight->Diffuse.b *= 0.6f;
8 ?6 Q ]6 l i$ ^ pLight->Ambient.r *= 0.7f;2 C8 X! O6 j8 j' S- z7 H3 x/ |. P
pLight->Ambient.g *= 0.7f;
9 G; `0 E0 E2 e6 t, W pLight->Ambient.b *= 0.7f;
! I5 z1 q W | }* n$ L, h2 j% P& n& v' F/ o8 r9 f
# N7 j5 a1 @" F P5 e# I4 d+ }
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 j( w' k- P- L+ h$ Z: o, C$ K3 W if( g_pPlayer )0 ~& x; s* _$ \( b/ _+ g3 ]
HookUpdateLight( pLight );
3 m" |+ x. }, ~* N#endif, P! @" o& p- m$ x
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) q9 @6 N& g2 {+ S9 {/ ~9 z6 n& E% ?5 w- E, G" D
pLight->Diffuse.r += 0.1f;7 Q' Q4 r, l4 R! V/ D
pLight->Diffuse.g += 0.1f;
, M. I* E, K# H$ W, n8 e% G2 F pLight->Diffuse.b += 0.1f;2 z2 t8 { n1 T' {+ h: l- q4 M
// oˉè* ??à?
1 a2 }' d1 h+ R3 a0 y: E pLight->Specular.r = 2.0f;9 ~( A6 [/ c- b% j
pLight->Specular.g = 2.0f;
* L* _; C U u. M pLight->Specular.b = 2.0f;
8 p* [& R4 d$ m // á?oˉ 4 C8 r2 x1 p; r6 l* D% P
pLight->Ambient.r *= 0.9f;
9 A6 {: S o4 n( |. x pLight->Ambient.g *= 0.9f;
# Z) j2 s2 ?3 j. R pLight->Ambient.b *= 0.9f;
6 E" @) u9 Z. ]2 i5 c' J: g& g8 E/ f( Y2 J# m& s
memcpy( &m_light, pLight, sizeof( m_light ) );6 c+ ?, V8 q, |3 s y# C/ a
! B+ e: n5 e: o- Q) G
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
0 U( H5 V' I7 L, r3 s7 H" O pLight->Appear( m_pd3dDevice, TRUE );
! Q" [1 p2 L' [' [1 g9 Y$ }2 Z * d5 Z4 n/ E2 m* @5 \- ~
DWORD dwR, dwG, dwB;
5 s2 K; ]7 F5 q) j8 y dwR = (DWORD)( pLight->Ambient.r * 255 );
. O. X! c$ g' ]3 w1 l. N dwG = (DWORD)( pLight->Ambient.g * 255 );
! z; h+ g1 Z/ @6 Z. ^ dwB = (DWORD)( pLight->Ambient.b * 255 );) L4 a5 F4 i) n' Y# l1 \# Y1 f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );, `/ _& Y, h" ]9 V( V: w
}% E) e. D4 K( Z E1 m$ d' Y) d/ E
}
0 j; A/ \5 I) N else4 ~7 |, C2 q/ d7 Q6 I2 E/ S. x$ B
{
6 B0 N, y- O' T) R, D+ ^( s if( pLight )
6 x6 `2 B9 O- Y! D4 F7 w {% ^7 }2 h Z* C6 T9 |
/ Q+ c% ]7 |1 Z& A- c% z
int nHour = 8, nMin = 0;
$ Z u0 o+ Q: T7 x' ~, c9 Y: j #ifdef __CLIENT
. T* E; l/ W) P$ M3 G7 B; c // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. : z- r3 H8 O ]; e# n3 U' c
nHour = g_GameTimer.m_nHour;( \9 r2 P" T7 } N5 R. Q* X/ g+ M
nMin = g_GameTimer.m_nMin ;" ]: x" V# ?# o% {6 o6 }) u( G
#else
6 T, M4 G' j( l+ |0 B$ y // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
2 s4 _0 D$ A {9 R7 R if( m_nLightType == 1 )
& C) V7 ?; `; A* B$ R( t1 A nHour = m_nLightHour;
& g' J4 o( b! F& O1 P3 A #endif1 g+ d! J) V+ V1 R* @0 g- Z" W
nHour--;$ _; a+ _# ]6 a3 V/ Y- h
if( nHour < 0 ) nHour = 0;
" H5 |1 ^4 b1 k if( nHour > 23 ) nHour = 23;! f: B5 \- W. V. e1 r% `
8 ~4 a: J/ O+ I2 I
//if( m_bFixedHour )
3 ?2 u: u1 L, t: u2 J+ [% E$ t // nHour = m_nFixedHour, nMin = 0;
' f1 i% ^% r* q' j5 f: O( u/ I LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 j8 }" E6 X K4 l8 _7 ^
LIGHTCOLOR lightColor = m_k24Light[ nHour ];& h' l3 `) f/ y
4 h$ s& G4 V- Y/ D& j: S7 }
//m_lightColor = lightColorPrv;3 E1 N: R# J. z2 ?6 g
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
' v- r" U- Q( \' ~1 G lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;. e- H, I% a( Z- v* H" `3 Z P; d
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
3 K2 s# e& X* w9 o" [. e( v lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
$ G6 P: d8 N+ a lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;. q% Q2 ]8 y- T8 s
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
, @5 [ Y3 m/ E2 Z$ d) Q5 H4 ] // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
. N- V# S1 o1 z, I( {4 J5 N3 s r! q$ v) {8 z2 [: m0 C, |# _; t
// à??μ oˉè* , D3 f( q5 y# ^. c+ J1 K
pLight->Diffuse.r = lightColorPrv.r1;# z" i2 a& A& k, r% v, m
pLight->Diffuse.g = lightColorPrv.g1;! w8 D5 n0 v: ?* {" @+ l
pLight->Diffuse.b = lightColorPrv.b1;
* n. r+ N+ `9 {, K% O5 f( [2 [3 J3 l7 L // oˉè* ??à? ( {0 ~# F$ d6 h& {' L
pLight->Specular.r = 1.0f;. s1 \8 i& P* G# ^5 @
pLight->Specular.g = 1.0f;, J) r5 g9 n. q4 ~# ^3 B! [" U
pLight->Specular.b = 1.0f;8 \: ~, }$ ~! I8 [; ?; J
// àü?? oˉè* ) o* ]" i: |% u3 c1 r, e/ G/ R
pLight->Ambient.r = lightColorPrv.r2;
7 T, C5 F e9 ? _% A pLight->Ambient.g = lightColorPrv.g2;
7 I c# d& _ n. |& e# U pLight->Ambient.b = lightColorPrv.b2;
: W* o9 s3 H5 j1 K- e) z
( }0 v% v1 P" K$ ?1 i3 j; k if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??." U( r9 A1 {) [2 Z* e( N
{" v; T8 z, n1 j$ Z1 v- Q
pLight->Diffuse.r *= 0.6f;
: O& u! S: G) d8 Y pLight->Diffuse.g *= 0.6f;- M9 @( z+ u9 N& V4 x
pLight->Diffuse.b *= 0.6f;
- A& S1 w) u* @; r" u7 _0 z pLight->Ambient.r *= 0.7f;
% x) x% b* K6 _ q pLight->Ambient.g *= 0.7f;. N X# |- T$ Q& n
pLight->Ambient.b *= 0.7f;
# `' L7 I; S+ Y- E- }$ [8 c4 z }
8 t$ ]# x$ }5 a9 g+ t+ ~ # D N4 A8 v- l8 R6 X9 B$ E! d! ]
#if __VER >= 15 // __BS_CHANGING_ENVIR, c+ O B- T2 X
if( g_pPlayer ), F$ F6 s" e4 c5 i8 i, i8 Q
HookUpdateLight( pLight ); # \: o( N/ ^. P, b) v8 K5 ~2 k
#endif8 P0 Z3 e! ]1 p1 ]) f6 J! `
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; q% O& Z3 F* n/ N# Q$ D
3 y6 }9 y; ~- C1 k' U& V#ifdef __YENV
+ ` o `0 ?" | pLight->Diffuse.r *= 1.1f;
, H) l3 k/ t. w; Y/ e pLight->Diffuse.g *= 1.1f;) ~2 O" S' x3 y" M! E# ]) Y
pLight->Diffuse.b *= 1.1f;
& ~3 w6 M$ b# p // oˉè* ??à?
e5 Y. K/ s6 h1 g, ?4 r( [+ F pLight->Specular.r = 2.0f;
0 @# T, }8 k$ C0 e& _: e pLight->Specular.g = 2.0f;) y- D3 Y, f, I) {5 T
pLight->Specular.b = 2.0f;
4 y$ S. ]& U6 v- l // á?oˉ ' F1 l) F( n: w7 g# }
pLight->Ambient.r *= 1.0f;
1 ?1 q8 z0 b) S" G: A pLight->Ambient.g *= 1.0f;" b( d f) v, H" q5 c/ K; Y
pLight->Ambient.b *= 1.0f;" B7 {8 W; C" C2 n
#else //__YENV
" ~0 R6 X% d& g1 r6 P' _4 ` pLight->Diffuse.r *= 1.1f;: r2 k3 _# t) ], R! P
pLight->Diffuse.g *= 1.1f;7 |$ T: G$ K! V d( `
pLight->Diffuse.b *= 1.1f;
8 f7 D% B! d; D7 n- e) A. L7 [ // oˉè* ??à?
7 d/ W. i+ [! w5 o+ G5 Z pLight->Specular.r = 2.0f;+ i6 @0 C4 I& ]. A
pLight->Specular.g = 2.0f;( N4 R8 k% r7 i# [2 `0 G
pLight->Specular.b = 2.0f;
9 J* g1 p" b) L8 D // á?oˉ
: k$ i& S# v# D& S8 P$ ` pLight->Ambient.r *= 0.9f;3 |- w6 m, U- Y& R. q
pLight->Ambient.g *= 0.9f;8 {) {% r0 Y9 f& l2 } K, G/ R
pLight->Ambient.b *= 0.9f;
1 o# e6 y" ]0 _1 i8 E# R#endif //__YENV
3 o0 O- Y5 W( g+ \
+ R: X. n( F. I- g2 C7 {, b) S memcpy( &m_light, pLight, sizeof( m_light ) );
6 ?5 a! j, d/ Y5 } \# i. T* X6 I
+ M) p2 @8 x0 g- U6 X2 p D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
' h2 X, n3 x6 y- R/ P D3DXMATRIX matTemp;" n$ ?2 S( j6 l4 B9 `8 a2 ~
static const float CONS_VAL = 3.1415926f / 180.f;
' K: W1 ~2 S9 C9 o4 _* V
! O7 ?3 o9 G+ X9 T D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);4 o _' G7 U7 ?: K2 P
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
- ]2 R k, R) V# I. D/ y. K pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ) e9 S# R% s# j' X/ ]3 d
pLight->Appear( m_pd3dDevice, TRUE );2 \9 v$ U) c0 Z
3 I3 K( \7 ~, d# S6 U$ `; K* z p // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f); Y6 f4 k$ |8 Q* q; g' S
// D3DXVec3Normalize(&(vecSun),&(vecSun));
& [1 }" L _4 w. S! G n // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 |* U( U' ]( x- v
: G1 ^1 j! i1 Z3 V
DWORD dwR, dwG, dwB;' Y, H- u- ]% @
dwR = (DWORD)( pLight->Ambient.r * 255 );
7 W+ y' I2 C( a& p* e dwG = (DWORD)( pLight->Ambient.g * 255 );- c# B* f7 F* ]+ e4 `) b
dwB = (DWORD)( pLight->Ambient.b * 255 );1 s' V9 Z3 ?: u7 U
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 1 u! c1 A. |2 t5 m+ ~; h/ L3 Q) i
}
: k) j( Y$ `' M }
: a8 b( l6 U$ r4 Q$ [* X |& Q2 c2 i3 ?7 q5 ?4 T2 z8 d2 U
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
) A4 o1 C9 P2 `# S: ~" z 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) );: n9 n2 i9 m) ~2 {& T
::SetLight( bLight );
8 w, D7 z3 A) N% V9 v
3 f% [4 p% ^$ r% L% J" t# q" | // ±ao? ?D?í???ó á¤à? ( v6 K3 I/ ~% J8 i, ?9 [. _
m_pd3dDevice->SetMaterial( &m_baseMaterial );9 n; \" ~- c. d+ D8 M% _
- V! u% z- _1 d" o+ O4 o( T. |#endif // not WORLDSERVER6 Y- d2 e6 ^# Q# }& Z e9 i+ r
}
& A3 ^7 J/ l) z& g7 D并更换
7 g }/ o5 E6 ?4 sCode:& H. u9 D- a% I3 U- @
__FLYFF_INITPAGE_EXT0 g( c" p0 F$ U# B; O3 ]2 b6 C o: B
定义
: ^" @5 O2 Z9 d* f! U8 P* p, [6 ?: s' G, U5 h$ P/ }$ y
% }# w" g- a8 d' T3 J% ~
9 d, c% U4 T3 x: v) T& z! p2 [- g& Y
9 {4 y/ U* W, p0 B+ g# V现在终于删除我的狗屁加速...
/ b; v2 N8 M1 M! F: F
4 `7 c" j4 q2 [5 ~8 `2 G/ @0 m3 H7 T2 _6 J! D$ [# o6 ?* ]: W
$ w1 c, U, K& ~9 c0 O
|
|