|
|
食品车:, i# q# g8 |7 O5 Z2 E
尾翼:
! C' h4 { m9 V, e, n {! T% Y" B2 v1 X1 X' u' U# r
代码:
7 ]& H' G( V8 ]3 c3 f0 HCWndAutoFood::CWndAutoFood()+ @3 ]+ w w1 a6 |5 F, D
{9 l- b( T3 O1 x- H+ a6 H
m_pItemElem = NULL;
! P! ^; J0 j& p m_pTexture = NULL;
2 C1 W, H' x# F3 K# n& d" \' Z; R bStart = FALSE;
8 _: o3 ]! K+ H8 _, `/ p}! m; I# z7 \3 R y( K" ^
5 ]! U0 O/ I- b! F/ L0 c
CWndAutoFood::~CWndAutoFood()
1 X4 V& t- M& w; G. j k+ A) U{# E0 Z' l/ u# `1 C- t% c( C2 E
AfxMessageBox( "AutoFood ist gestorben " );
+ d' t- O d+ H7 y0 |}
1 I- \% H/ [6 F. C ?+ JBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )# o1 W: S1 z7 [+ ]1 H
{
+ V$ r6 k+ Z1 r! P& v9 o; [ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );! d& w0 @% T; N& p
}
5 }9 A2 d6 c8 k ]( M* B2 A
e9 C# G. }* g) }3 p/ E" y- `BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
, W t5 i! Y9 _( x% d' R* n5 A6 ^# T{" L3 R# D4 `4 u
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 B2 w. N- s: T" f
CRect rect = pWndCtrl->rect;! C! W" N! n' [& C! u+ ?5 r% o: X
if( rect && rect.PtInRect( point ) )
4 T* _+ F1 q2 @: j; o/ a {
. V! K; D7 X2 @& s5 M CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );; j7 j1 D0 Z. j, _+ l& ?
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
/ b2 E: J' ?7 H1 B9 C3 k: M {* ?1 K8 }' g8 m9 v1 ^
if( m_pItemElem )) z9 l* T9 A2 W1 H: p' c @' l& V
{# H1 b6 f4 g& B: T- [( a' L
m_pItemElem = NULL;5 a( J3 l- P6 v
}
$ P3 }7 B6 O! L3 y# B m_pItemElem = pItemElem;* `1 a1 F% }* J. X1 M2 t
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );4 O& _9 \ }# ~3 H+ e* i
}else{
, h$ R. Y% ?5 W8 ~. }- F SetForbid( TRUE );; H+ R2 }4 ~1 o! a* g1 _
}; r% F3 N' E% X+ s% o) U
}else{2 E6 z% @: P/ v1 X& w1 H X
SetForbid( TRUE );
, a+ v9 U7 E( E! N0 U* p }
/ ^" |2 U! O' a2 a+ M9 D return TRUE;6 H$ c1 d- X. J4 n
}5 F5 f; Q4 X$ o% `; p
' h0 f% q, N" i5 o5 h& TBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )+ w6 h; m! W+ v8 Q( a# o
{" j% e8 Z" S g1 s6 e
switch( nID )
7 w- v! R' P7 z8 l; _2 X i( k {- K# \; \- B% ^4 ~2 l& P; p" q
case WIDC_BUTTON3:
" G# Q2 c6 `- e {
% [" q; t: N y8 S6 v# M bStart = TRUE;- y9 v" c8 f: o9 C, p& O& R
break;. V% I5 o( {7 O! c/ P7 R' \- I
}
, v1 `# y+ Z: J7 v7 A: ]4 \ case WIDC_BUTTON4:
9 F+ h0 @* u9 [+ Y {% I+ X, p6 u7 R3 q; \
bStart = FALSE;
- A9 D! v, @" [ break;
a9 c. N4 q: N, y: _& b0 V }( a& l2 @: V, H+ b% k9 v9 a
}$ E$ Z5 |+ }0 i- O/ J% q
return CWndNeuz::OnChildNotify( message, nID, pLResult );
f# z' b/ V+ [7 g4 P}
0 `7 g- c- p, d/ U, y- x# nvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
1 q* @/ t1 W9 r+ x6 m9 l+ |{
6 \- l' _$ e K" Y8 ^+ V CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );7 [2 Q: U4 ?: Q
if( bStart || !m_pItemElem )
+ u1 {- _' J$ K {9 m* \4 P; R$ |. D- f" e. K
pBtn->EnableWindow( FALSE );: e+ \2 G3 q& f6 I8 K
}else9 `0 O7 M! w, k$ L* R
pBtn->EnableWindow( TRUE );
( n( c! k0 i! ]/ d- A* d4 Y! r8 D9 H# q if( m_pTexture )
; j/ L9 U- [4 G# { {* o, r @$ r: `$ I- Y9 ~# ?
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );7 f& e6 Y! I" E4 Z! j
if( wndCtrl && wndCtrl->rect )
* L- e/ \3 z9 }. T+ {; e( e% F {
! v1 q& n; Q5 w R m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );' D6 x/ l: ]* I5 x' G, R
}
! u& z% R- k6 Q8 V- b% V, l }
Z/ U: m, f% ~* v! j}
6 B) [' \, w6 q( e3 t8 r
9 W4 o( F0 K5 ?( S3 z- zBOOL CWndAutoFood: rocess()
% ~4 F" X# J# s5 g' P{4 ?. ~/ H) U5 _3 x- G. l r
if( bStart )
: y) M/ N. p$ z) T& Y {
: \# K5 f/ K7 G. B8 ~0 H if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
* Q6 E. d7 p- z& p0 U9 r7 _ {
t' J) n) c7 n. j7 N3 N if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
* E: B3 p% T$ M3 g; ` g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
+ c8 _" N! A) c# E# B- p$ _, l }else{
5 W8 _" @4 v$ i$ R' b! D6 J/ W bStart = FALSE;% A1 B7 d9 {0 h" H/ B. O
m_pItemElem = NULL;( l8 L% G+ T2 G* s
}2 \$ B5 k+ a5 e1 b" b9 h
}
8 w0 L6 Y" k! M return TRUE;
5 N+ O' g2 \+ ^# K h8 N8 T' `}" k% s# O2 {+ o/ v4 }( m# A; x$ |4 M. q
1 A8 M. e; t- O3 S8 g登录视频废话:9 S1 f! T/ J ]: N9 _5 H/ U/ t
尾翼:
+ e0 D" l. u8 H1 \' Q$ r
, O1 S2 B1 U6 m- p代码:
$ w$ O a2 h) L1 j4 J1 W& y9 j
3 x' O' X, G4 U0 H) Svoid CWorld::SetLight( BOOL bLight )
6 }6 Q( E9 N1 {8 B+ r0 Edurch1 a' H! r! s1 I/ ^8 i0 o4 l3 X5 Y
Code:1 H6 F4 z0 S6 e" n/ H
void CWorld::SetLight( BOOL bLight )
6 s$ P! ~- r3 z1 M* b{
6 {2 N* R7 Q5 @. s" E& B9 C6 Y //ACE("SetLight %d \n", bLight);
7 _" ^: i9 S* n2 `3 r; w. J
8 @% F3 u6 w) b' L; R' Z) S- s# }( k) j#ifndef __WORLDSERVER - \# g5 n' O/ |
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);/ i, O( Q1 Q, {+ E$ h* W
CLight* pLight = NULL;
: ?4 j9 Q/ b& J* E9 g! c+ g# ^. w* \4 R1 V/ [! G
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );9 p% F. J$ u' `4 P
7 L6 A. u. A" k& z pLight = GetLight( "direction" );$ j4 H* t6 |! y2 F n5 m5 v
2 i) R0 y3 B& c% [1 {
#if __VER >= 15 // __BS_CHANGING_ENVIR8 H: u. l! r. d3 N' Q; u) @
if( g_pPlayer ){2 t, s9 v K* R* P) K0 |) m
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
" Y# p- D3 V" k+ ?" s* \2 j if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
8 s. [& c5 f- Z+ l3 Z+ x {
, u# a6 \* ^* I if( pLight )
# P9 A) E e" \# N, m; k7 j {2 l) E$ W% v, i3 _0 M
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];" k/ {4 t# s, v2 _( D! Q6 Z
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
8 y& ` _; ?6 ~- u0 i5 R s pLight->Ambient.b = pInfo->_fAmbient[ 2 ];! E+ M \3 J& ~+ p2 n) [# ?7 H( F
" O& L: ?6 T+ ^+ D1 ?
pLight->Specular.r = 2.0f;5 t* T0 e. \4 H" \. U+ ]5 h \5 w, A8 j7 M
pLight->Specular.g = 2.0f;6 P; A9 l$ G( Z2 [8 ~- X0 |
pLight->Specular.b = 2.0f;
7 Z& G9 F3 [4 R7 f. f
5 v* c; D# q- B7 D9 l. M# Z3 y1 p pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];( r1 u$ F' O6 e5 ~5 b
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];$ m/ ]1 f0 F8 U6 B
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
/ \% \" A* v! V' { 1 r- C- l9 @9 x1 U) y. e8 j
HookUpdateLight( pLight );
& G% o& {& F: Z3 B' v5 k B. `! p
6 A3 D) P" r/ i4 v4 D) S4 T memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 G4 F; v! A% R+ |$ i
8 B! m( P5 Z F5 q$ x pLight->Diffuse.r *= 1.2f;( h2 y: H$ C$ Z6 [6 Z: A
pLight->Diffuse.g *= 1.2f;$ w1 c1 r* T) J& [& |- }
pLight->Diffuse.b *= 1.2f;
3 e/ J5 N$ H7 h" y4 h0 B2 V) m, {
1 b/ B! e& Q R) _, X5 p9 ^- ]* S* E pLight->Ambient.r *= 0.8f;
& |7 t6 N; [ ?/ s9 k& C p' C pLight->Ambient.g *= 0.8f;
1 x; m% s' ? |: F. X0 d pLight->Ambient.b *= 0.8f; n; N2 `0 ?$ @0 D: d
$ p) l' W; C# b+ _& e6 v9 R3 m! ` memcpy( &m_light, pLight, sizeof( m_light ) );0 _1 V9 ^6 @, S- b0 G5 m
* a# H9 r$ F, d8 W+ t2 u; m1 k9 | J" x D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
* R0 U! A$ ^8 K+ e* @+ X D3DXVec3Normalize(&(vecSun),&(vecSun));9 U4 _) q0 Y: T; U2 \$ L, ~- ?' ~9 s
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
v* D5 @, I( s2 U( w4 C6 q# b pLight->Appear( m_pd3dDevice, TRUE ); ~0 ~: d! b# R8 V. [
- l! C; Z% X2 I V DWORD dwR, dwG, dwB;, q: l( G) x6 A @; c
dwR = (DWORD)( pLight->Ambient.r * 255 );
; \/ P! }' K) S1 {% Q* D. S dwG = (DWORD)( pLight->Ambient.g * 255 );% z- \7 A$ z+ K, m
dwB = (DWORD)( pLight->Ambient.b * 255 );
8 x' g6 W& m+ N2 b6 ?* k$ L6 }( ]' [ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
# J% j# i4 [: l% Q4 Z4 ` }
7 d9 L( h$ m5 @- Y }
5 \0 ]' U+ Q7 `% q8 Q) ~ }. P% z, H; k: g: d
else
+ o! `: W( c+ i& z#endif
; s) [" Y. s7 o/ u W5 a9 q& a6 g8 G
6 _) X# y! E, N: [5 n6 }* ~- u9 A- ? if( m_bIsIndoor )
+ Z1 D1 f6 t/ D {
( z5 y' f0 W: r9 h+ b* y" ~ if( pLight ): v" Z% x; D* q0 q
{ 8 r) x% n) i2 N( F
// à??μ oˉè* * @3 S9 \. i+ S: _- d7 _: `! ~$ B
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
3 u9 z; @, r0 ]5 `1 D) B1 y pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
% @4 M1 ~# U) h/ A. g pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;: r- ~6 U4 Y% n0 y
6 Z( J2 e8 R$ E) @: m // oˉè* ??à? " ?' b4 N) ]/ B6 X8 Q r g
pLight->Specular.r = 1.0f;
: @7 [# R# w4 w @' |) q6 C. T pLight->Specular.g = 1.0f;" P# ?0 ^3 o$ B% P% ^: w" _, j
pLight->Specular.b = 1.0f;& t5 k0 i, a7 x# z6 D
// àü?? oˉè*
# c) c) A. A8 G& |6 K! Y pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;, U7 p" A5 n/ V0 o8 }; n
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
$ c# v k' ^3 X p pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;5 d% r$ o$ u. e V% o
/ A& z. |5 G3 _ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
# M/ ]5 M9 f; V. E" C9 x {
U4 u/ O0 r; M: f pLight->Diffuse.r *= 0.6f;* g4 z9 R) i* G, E4 k5 ~
pLight->Diffuse.g *= 0.6f;! B* O% H! z1 @8 s# l% M0 n" f6 {' j
pLight->Diffuse.b *= 0.6f;
0 h3 A2 o0 C9 L# b$ _ pLight->Ambient.r *= 0.7f;; X$ H5 v$ S) Q& @3 M2 e6 T
pLight->Ambient.g *= 0.7f;1 q9 `0 a3 W% y9 \
pLight->Ambient.b *= 0.7f;
0 U# t- l0 c- y. V6 s ]8 ? }
# X+ q) `$ L+ I* s0 i
4 ~/ `2 X+ `% X) Y/ c& |#if __VER >= 15 // __BS_CHANGING_ENVIR
' O0 Y4 w* H2 @ if( g_pPlayer )* s7 v6 J! c2 A* v) P
HookUpdateLight( pLight );
( d+ p' t9 T0 W7 X2 g3 s! {#endif
# C2 D D4 `8 C" L) b memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 o6 \. l7 N4 h3 X
2 q0 x% Y5 D* C+ e pLight->Diffuse.r += 0.1f;
' w" b* a, M7 ~3 ]2 n) O pLight->Diffuse.g += 0.1f;
$ c( e& _& u: a R* Y4 Z- ~ pLight->Diffuse.b += 0.1f;) q7 @4 y+ }. m( M
// oˉè* ??à?
5 p2 N* C5 H7 s4 r$ e pLight->Specular.r = 2.0f;
' x! q2 Y1 B8 v2 E/ E& |$ ?4 J pLight->Specular.g = 2.0f;. ?3 q4 ?2 z, T% y2 I5 [/ [' ]
pLight->Specular.b = 2.0f;
! n+ U c- f3 V // á?oˉ
C' I* G+ b/ {, F2 V. v pLight->Ambient.r *= 0.9f;
7 k' n; E% _( n1 P E pLight->Ambient.g *= 0.9f;8 I9 M2 ~( x6 B7 H4 n
pLight->Ambient.b *= 0.9f;
/ q1 @2 a0 C2 W5 E3 Z
0 L6 v3 t9 P9 z% ]3 P memcpy( &m_light, pLight, sizeof( m_light ) );
( Z/ @- h% q/ x: s% U1 ?0 q
+ t, ~4 _! E# b- r& p0 _& ~ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );/ t, B4 \: F0 d* G
pLight->Appear( m_pd3dDevice, TRUE );
7 o) J/ `0 Y: U9 r! C
! P" C; z% j. z DWORD dwR, dwG, dwB;" ^$ L0 ?6 y, X: R" p) ~& U Y
dwR = (DWORD)( pLight->Ambient.r * 255 );
" Z( |9 M, p, W! ^, c dwG = (DWORD)( pLight->Ambient.g * 255 );$ F3 A" a& D( q+ ]
dwB = (DWORD)( pLight->Ambient.b * 255 );
: E% M4 R$ ?, X- h dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. T- w; |7 C$ v% d3 }7 j9 Q }
! w: C& q+ z$ z* y& Q4 T3 U' M }- S- I2 V9 H8 O! w+ h3 K
else
/ i1 q( {" F; q7 u6 }+ @ {
E1 z/ B6 M3 j; F% y* o if( pLight )
! n* m/ o W J8 j# R" { {; x5 e) H3 C& H* B2 V E4 w
7 _9 d8 |& M: S0 C+ w
int nHour = 8, nMin = 0;
% I4 N. f( X3 A# z #ifdef __CLIENT {) ]" C- G. K! m
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
8 w1 b: H4 u( J, ~, U7 o nHour = g_GameTimer.m_nHour;
0 S, I' a( ]$ z5 j. I nMin = g_GameTimer.m_nMin ;+ V$ {$ t' P. K- `' z
#else
+ b% ]7 t+ y6 |) u" |: v" Q // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.' `6 Y. V& s. J. M7 ~
if( m_nLightType == 1 )) @3 c Q9 @* R e9 Z2 r9 S/ S2 x
nHour = m_nLightHour;% C" z+ P% v% X! X( t, b
#endif6 k7 @: p/ C( E# v& l
nHour--;! `5 I: t0 t$ Z* C% o
if( nHour < 0 ) nHour = 0;# u) w3 J- ^' q! \) D. J1 G6 [
if( nHour > 23 ) nHour = 23;' u$ z. x) I! H7 I/ P+ n% o; S
1 H4 N) p8 a: A& A2 L, m2 i- i0 Z //if( m_bFixedHour )
, h% [& i. G, J7 I5 l // nHour = m_nFixedHour, nMin = 0;& v, U6 e# z6 e! ~
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 u( W* ]( t7 G! n& ~0 r
LIGHTCOLOR lightColor = m_k24Light[ nHour ];8 i# H- H+ r9 h' K
8 z8 O! X6 v$ D9 `& m) c' ~ //m_lightColor = lightColorPrv;' \! Q+ a, T6 t2 z$ w
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
5 K) d: s: p2 O j5 E lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
' X1 D0 ~$ j9 y' g3 { lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
- M" Z" B) z7 I. R" \ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
; M- i9 T3 f" f6 `( R$ [2 m lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
- u* q' @2 |* V. ] lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
4 z8 f* r: l4 C% ?! [" h/ o // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)7 V0 Q3 l1 Q# M8 a/ }% s
: {9 w( A& {# o; z& j
// à??μ oˉè*
/ r% w% X# `4 x pLight->Diffuse.r = lightColorPrv.r1;/ p: j9 n6 I0 v: K* ~3 ]5 u
pLight->Diffuse.g = lightColorPrv.g1;& q- [7 }) k7 j6 S
pLight->Diffuse.b = lightColorPrv.b1;- n, a9 @3 O: P5 {, i X8 D
// oˉè* ??à? 1 c" P% P( D; r5 f# p" \
pLight->Specular.r = 1.0f;
' J/ Z, u- T* A/ ~ pLight->Specular.g = 1.0f;
% X' S+ T0 e# z0 ^- s7 z1 V) h pLight->Specular.b = 1.0f;
; U- E9 l/ u5 z: Y' G' \ // àü?? oˉè*
% \: b3 g! k- _: d pLight->Ambient.r = lightColorPrv.r2;* J7 y1 ` y! J
pLight->Ambient.g = lightColorPrv.g2;
1 h$ g2 X$ i2 ^ pLight->Ambient.b = lightColorPrv.b2;
1 e; d5 S7 @9 Z& K. P9 l4 Y- `+ A$ P; {9 K
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., `0 T& }) Q( u) ]$ |/ ]
{
; F" L: e9 P4 Q pLight->Diffuse.r *= 0.6f;
8 |% I' D) E* x2 \! f$ ] pLight->Diffuse.g *= 0.6f;
# v# G' v* o, ]9 a! Z3 n pLight->Diffuse.b *= 0.6f;# \7 ]' }' n. L8 M
pLight->Ambient.r *= 0.7f;
1 }+ a0 Q3 W1 F- ] pLight->Ambient.g *= 0.7f;
" G# P& _- l! C1 X+ R. }. _: V pLight->Ambient.b *= 0.7f;
- F# Y$ E: P1 t6 @ V" n- |4 @ }( L \6 U4 p+ x3 x
% O( t6 ^! Q4 G6 _+ J1 K' H#if __VER >= 15 // __BS_CHANGING_ENVIR
( |# h1 P: {1 E, r* K( q% Q if( g_pPlayer )
# ?3 ^* ]+ t( x+ p* P) w HookUpdateLight( pLight );
, p, S/ G4 r! [% u& i#endif
+ G. \! Y1 j' N7 L0 [& c+ p( R- h memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 b1 S$ ?8 Y' P2 H0 V; R
& R/ c2 A+ F5 x#ifdef __YENV% y9 o# t2 k% W3 l) r* y# I7 U
pLight->Diffuse.r *= 1.1f;
/ i4 S0 e: j: ` pLight->Diffuse.g *= 1.1f;
) o& F3 a1 w) k, ]; Z2 ]7 { pLight->Diffuse.b *= 1.1f;
) L* R& p3 N, v) ^( M" f3 A // oˉè* ??à?
7 Z7 d- a; B* f( l pLight->Specular.r = 2.0f;' y/ U/ Q" b& p5 I- L w% z
pLight->Specular.g = 2.0f;: k) M2 w: K9 }3 @' k* [% \
pLight->Specular.b = 2.0f;
) w6 N( M2 v$ v // á?oˉ
5 E z1 ~% M/ ?* w pLight->Ambient.r *= 1.0f;
/ j* |1 ?) O3 Z: G" } pLight->Ambient.g *= 1.0f;9 n1 x# n: Q, R# r6 Q) y, k( ^' S
pLight->Ambient.b *= 1.0f;4 o4 j1 _, M0 L
#else //__YENV
5 H5 T$ E" r1 _/ f) L7 U pLight->Diffuse.r *= 1.1f;
3 }' C! O7 Z. C pLight->Diffuse.g *= 1.1f;
- A. D) _ ?3 T9 z2 k pLight->Diffuse.b *= 1.1f;2 w0 p e, g/ ~! Q U
// oˉè* ??à?
8 W7 J; J. |6 w+ w( N pLight->Specular.r = 2.0f;4 v7 V( b9 {5 L) D! ]. S8 ^* K
pLight->Specular.g = 2.0f;
+ e0 I2 D4 l: } pLight->Specular.b = 2.0f;
1 {: }" B! z# Y2 _1 w+ _' M* E% Y // á?oˉ 3 v% y. n. U: x0 s# p0 B% j
pLight->Ambient.r *= 0.9f;4 G" A: y: _4 ^8 j* c1 l# @
pLight->Ambient.g *= 0.9f;: A0 c- V9 }7 c; J' G5 G
pLight->Ambient.b *= 0.9f;
4 E4 ^+ D V# K3 t% {% o* A4 y#endif //__YENV ; @. j& C% f% {2 M0 \
: t& e! i) D! f8 { memcpy( &m_light, pLight, sizeof( m_light ) );. D& _7 B7 ? O* s4 K& G* I
' `; P. M5 t* I. e
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);8 S- i; h* _" Q4 X( R
D3DXMATRIX matTemp;) f2 ~- _- q" k3 R5 z& H1 [+ N! z F
static const float CONS_VAL = 3.1415926f / 180.f; u1 m0 U. y: E* B
A& g# {* _7 x, [0 E- f
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);5 q; j1 f+ x" Y+ p# a
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
+ Y! E( ?: |! |2 T; w5 d" `! G pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); `4 h7 y0 Z# {1 y
pLight->Appear( m_pd3dDevice, TRUE );
: a/ n7 Q r8 g9 U& ?3 n
' g6 ]0 O, m/ k. ^: y) q& Y // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 ^& ~* A& E6 P7 C1 x$ p
// D3DXVec3Normalize(&(vecSun),&(vecSun)); e0 d4 u; [$ [; K
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 Y. A, d% h" d- h! E
. ~# k/ C' h' n* Y' g$ e) A+ Z! | DWORD dwR, dwG, dwB;
) S f- Z5 O9 [# C dwR = (DWORD)( pLight->Ambient.r * 255 );. f! W+ d* w' M! ?" t x) J
dwG = (DWORD)( pLight->Ambient.g * 255 );# x0 B! b1 `8 H6 B) _. N P
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 g+ t6 C/ s( V" d; T, b dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 1 N/ K# B$ ^( Q4 Y+ b
}9 u4 ?/ a7 H( ]; [0 z7 n
}
9 Q0 Y0 C$ _* R; b: c9 E6 m8 q% Q8 j$ }) Y3 Z
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );7 A. S' p g# u9 ^8 C g
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) );
6 }% g3 M6 A/ m/ X) G ::SetLight( bLight );! y) B+ C8 x5 e9 U! n% N" C
e4 x Z8 m$ D+ W$ Q
// ±ao? ?D?í???ó á¤à?
: a+ D/ G6 V: Q( P; K m_pd3dDevice->SetMaterial( &m_baseMaterial );6 Q9 `9 Z# {" m, X1 H6 e. p
+ N0 z# B* f) d
#endif // not WORLDSERVER$ \' b5 D7 q4 r: W( o5 V
}
: K7 z& |, ~* [( q并更换& j' s" `9 o- n4 B( O+ f$ K# V
Code:
; }/ t8 [6 k, q) f# ]" g3 G, d__FLYFF_INITPAGE_EXT
' E* d# a0 Q w2 @定义+ @8 W4 j5 j" P3 ^' c) G0 c
S7 X6 U, l% T, J
% _% p/ I3 r! I, G' _' I" p# V" U
: ]+ P$ Y* f! a8 U& M8 K9 M. {7 U9 E% y% M4 w' h! _
现在终于删除我的狗屁加速...# q7 g7 v# w3 z
! W9 S. Y' @6 E& x2 V; s3 A" O+ r' e. S( [# V
7 _- s- W Y: g1 T% O. }
|
|