|
|
食品车:7 m8 d* M( I$ V2 ^- I
尾翼:* ^ w* Y" c0 h; N/ B9 K
+ Y: B% Q1 M5 ]) z; f代码:. _ u& j8 u0 B2 U
CWndAutoFood::CWndAutoFood()
# v$ o5 x3 i+ _{) h6 L3 H7 [! L2 ^% }# D: d# b
m_pItemElem = NULL;2 M' o% M" ] h3 H) }; ~! l$ D
m_pTexture = NULL;
0 p, a7 h# E' E9 W& H/ Z) M, J8 e1 C bStart = FALSE;
5 L. s1 S- {7 U" Z}9 q7 A1 U U% c3 X2 `
' P% Z/ |; y# O/ D' |
CWndAutoFood::~CWndAutoFood(); U, Q* z7 M/ a$ m h3 F+ }
{
7 w c( r, Q# @: s/ ?% | AfxMessageBox( "AutoFood ist gestorben " );6 Z! r0 C5 c+ e0 q
}
; [) ]. B- ?, ?7 Y6 p* U0 mBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
, k4 ]1 _. m7 r! }{2 p! C7 ?/ } n; M
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
4 M' ]8 O" U5 ]0 z! Y}
2 n+ t: j7 R$ @, Y
* D' z4 u, ^0 n9 c/ D; uBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
! {5 \' A; s% I1 S2 ?$ D{$ O$ ^* O# u' Q2 ?
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );7 c0 V; |: x- P: ?, J: M
CRect rect = pWndCtrl->rect;$ q: o- l) X* H* }3 l: V2 I8 R2 {
if( rect && rect.PtInRect( point ) )
* g8 `7 e- {9 }+ S( {1 K7 I& A0 v( P {- t( t! ~; Q1 e1 \, r. x
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );) [# z2 _* m% V0 t# c7 v8 W% `
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
$ j3 v2 ^( J3 D1 I0 j+ \ {
# t/ _* y, h' t& S ^ s1 r6 m/ u; x, q if( m_pItemElem )
0 u- c+ R8 M1 w/ k& U( O: _+ ^ {
& ^7 h" S0 _7 f m_pItemElem = NULL;
2 V/ F2 @5 ?' I" G* D }
+ T8 c9 T8 b5 b8 I( e$ J2 Z* K m_pItemElem = pItemElem;
: ]4 u$ x, m/ ~4 }+ f m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
" w2 o6 ?( b1 K* e. Q8 z }else{
- h7 e- d w2 _( z1 L9 M; {+ U7 ? SetForbid( TRUE );
, @3 x% ]' w* b }' x$ `4 P) I8 _" D/ k
}else{ d$ U/ t, D3 r& l
SetForbid( TRUE );4 t) b" B( c* u+ J# j/ r" x
}) X* I4 P: k, d7 d
return TRUE;/ K @ e, U, c2 o# v% R
}0 a/ L8 _7 J& L4 r6 q
8 U+ _# h! i3 r* Q1 T: x9 g
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
8 Y, ~; c! H' J7 z: ]+ W{: T: J2 Z( P" B! n9 R2 L
switch( nID )
+ Z4 _7 ~6 c2 e0 @5 H8 v { X7 w: `8 D. R. h6 B8 o3 r
case WIDC_BUTTON3:
; f0 U: u0 p! ]& v r {
" ~; k' B" Q2 c6 B) M. Z/ D! q bStart = TRUE;
5 V# X) w9 S% \6 t break;
; @$ ~ j- b7 T }/ r& k6 l. \# L$ N. n+ D
case WIDC_BUTTON4:; G0 g( c6 @; B: I, P B7 M1 @3 f
{. M8 n! B: @ q* c) ], Y! V9 I
bStart = FALSE;8 m2 s6 ?: s: \3 W9 Z! n
break;) ~ F# ~% L- p# O2 G- w
}: k. _" j# h" I' R& Y# R3 i
}) o+ B* P$ y& i* c, b8 ]
return CWndNeuz::OnChildNotify( message, nID, pLResult );: n) g w! M3 f- p1 `
} # d, ]3 r3 T6 k. v4 y
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
3 r7 i( q+ S: R' e1 L& F{7 p$ n4 [5 ]2 \ G% H2 K2 i
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );/ R1 A8 f7 p6 F
if( bStart || !m_pItemElem )
3 }6 D J7 _3 t6 [* h1 K. `) P) b {
2 P1 h- {: U! K5 `5 k4 R pBtn->EnableWindow( FALSE );9 p: S) ~) Q9 L' l5 K) e7 ^
}else. M6 A, J. y/ k; \3 z
pBtn->EnableWindow( TRUE );6 P9 y' Z. ^0 W+ t% N0 w- o
if( m_pTexture )5 n+ _, B ~6 k6 T6 Z
{9 h% N, S1 D' B( y8 O0 F: }9 \/ w
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ m7 }1 b q+ U* N; q
if( wndCtrl && wndCtrl->rect )# d# U) q+ i+ s& Y
{
0 Y# u- Z8 r7 z, ~ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );$ \' N( [" J% N- p; S- J+ o7 ?6 W
}; P) I) |6 B* Q: H3 r. _$ w% Y
}
: e( `+ J/ O* F! G6 I# G' ~& i}# u/ ^7 ~# \; a+ s* e
V! m1 O Z {' a0 V6 z# M
BOOL CWndAutoFood: rocess()
! b' o3 M" A* g+ T7 @: C6 I$ |{
% q" Y1 i) _3 o! ? if( bStart )3 o8 |. V7 \2 F5 [
{, |' }) C$ w% @' H" Q
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )! h& ?" h6 }3 d7 u; P9 F# \
{
2 W0 R: K7 q6 \ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
8 o2 E4 [7 b4 U$ I3 ? g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );% ^; i, e4 c0 M! Q [% c
}else{
" L5 L8 T" z9 I- |6 a$ v9 V bStart = FALSE; G0 i/ F( J) f, [5 e
m_pItemElem = NULL;! I0 r0 C7 S7 s
}; I( ~; c( `! F9 `1 i5 ?* c6 N# L
}! _& K+ T; V: R' Y6 j. K
return TRUE;
, ], i! n! ]& k( R H, r- |}: I3 A2 r6 i/ k9 h: M; r0 N
% w8 N' f! S& f" x3 j8 f' P- X
登录视频废话:+ U$ f$ l/ y- {2 V Y
尾翼:$ t4 y0 G4 i% L
' n: b9 |5 X9 G- L代码:
. S, |6 T8 k1 Z! @/ ? m! N5 q7 g* ~- @1 B# v# S$ W
void CWorld::SetLight( BOOL bLight )/ p. b2 Z5 L/ Q3 Z1 Z9 ~
durch
$ m. o" Q: Y; o8 _$ YCode:
3 v( Y% m: }- \: Y8 _void CWorld::SetLight( BOOL bLight )
" R8 Y: E& W: D3 C% F6 M% n0 i7 P{
0 C- K. ]+ ~1 V' x" R C //ACE("SetLight %d \n", bLight);
+ |4 J; I1 y# X9 m* k4 K4 ?$ V0 Q
! {' M* j3 _8 _# l( }#ifndef __WORLDSERVER ) l' t6 D) O8 a/ V8 z0 j
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);8 J7 _* l3 p- X# u2 b3 M1 |* s, @' S
CLight* pLight = NULL;2 {+ F& n9 _$ R. ?: A2 K' R- D9 w7 `! L
3 Q* M( e! B. l# T D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
" C1 P$ _& {/ {- T7 p9 b0 W" k- N' q- Z0 C; q2 o. c
pLight = GetLight( "direction" );
7 m; ^0 c s ~ a$ g2 r: k- s3 D8 c8 W& d
#if __VER >= 15 // __BS_CHANGING_ENVIR+ ?8 Q8 A4 J0 ]; m- e! W4 s. O
if( g_pPlayer ){" d9 z5 i: G! p1 `! K$ f) g
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );6 R9 B x% K" ]) t/ v" H& I! ^% m
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!2 R$ _4 ^- b/ k; b% [$ c
{# U' i9 a/ H9 d( E! H
if( pLight )
4 M* G% _ q! F: ^$ y( g {
9 E3 y& q9 N$ h8 A& b pLight->Ambient.r = pInfo->_fAmbient[ 0 ];' q/ l3 N4 h1 G4 T9 J5 Z1 F. C
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];& c0 j+ y' a- i/ w$ K
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( S( w" u x8 Q$ c) A$ B3 P, a' n' _6 D: x/ y! ?
pLight->Specular.r = 2.0f;
$ D4 {. ^6 T( d F pLight->Specular.g = 2.0f;
. F' ^7 x0 y: k6 z pLight->Specular.b = 2.0f;
. U0 N$ m$ R, B$ _! y# B8 p3 @ 1 l+ W) ~' u4 F' A
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
* r2 o3 e N* d pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
+ M c C E1 R) m) p, i pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];6 I; f5 t& f. a; ?
4 x, T- ?" }; L. B! G) Z1 c/ s4 c
HookUpdateLight( pLight );
: b, J0 i( k2 S/ I N$ `$ N8 L
) R7 s9 n) h+ k J memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! h. w' g1 s* O3 r6 A% f
' L- i4 V4 w5 ~! Y pLight->Diffuse.r *= 1.2f;
+ N, }/ m. N% m8 u2 x4 U pLight->Diffuse.g *= 1.2f;
& w" ^# M* A3 H7 b) @7 z3 | pLight->Diffuse.b *= 1.2f;
9 c3 U3 ]& s# ] g& Y6 {: ^
2 d' K) E1 I3 f) ` pLight->Ambient.r *= 0.8f;; X3 `* o q, @" n
pLight->Ambient.g *= 0.8f;
1 a, Q" A, ~+ I5 a ^' q pLight->Ambient.b *= 0.8f;9 N: |! |+ q; {! a4 ^% _. p
* z! n/ k4 f$ i# K. I memcpy( &m_light, pLight, sizeof( m_light ) );
/ h0 P% n: t5 V: V x
0 U7 ?' G+ [3 s0 q D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 I" u& w) ^! G* Z8 f7 C D3DXVec3Normalize(&(vecSun),&(vecSun));
1 `+ ]5 H: r0 {6 f5 G M8 }' P pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* ]" V, T2 D: f+ D pLight->Appear( m_pd3dDevice, TRUE );: X0 w1 y7 T3 s2 p
" @- j! x) U4 v' ]9 n
DWORD dwR, dwG, dwB;
1 \; [/ _( y; Z4 T @% O. u dwR = (DWORD)( pLight->Ambient.r * 255 );) f6 E3 G: k9 B8 n
dwG = (DWORD)( pLight->Ambient.g * 255 );
' A! _& V2 z! ? dwB = (DWORD)( pLight->Ambient.b * 255 );
! |. D2 \" _' \- j O$ U r dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* [5 {; O& S2 w3 Z8 _ }+ b( X, f! K# `8 |& a
}. I# v1 p5 K( n& @: w0 O* c- l) p
}
! I% O7 f* m3 Q% ?1 i z( T else
2 l8 e9 [, r. X#endif
* j6 Y4 s4 r% T
/ e7 D" K; b. v% } if( m_bIsIndoor )7 d0 b" T- t9 _3 w* u! r
{
' B, `6 P# m0 I/ m' W H4 v9 m if( pLight )( ?' r( x1 b: E- g5 V' D+ ?1 \& m% q
{ ! g* I" E( U5 x. i: [0 c# d
// à??μ oˉè* 2 e5 I/ [9 B) c; o7 R% x& V' k) ^2 H/ Q
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 ?" N( S- {: q" Q
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;! e' F3 N" \ O( v# S+ g6 S, F( f( {
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;* B7 k' a( u5 B r
0 ?) I3 e5 g" j6 E
// oˉè* ??à? # N# \( j& c) P$ k" ]; R
pLight->Specular.r = 1.0f;2 J/ i; q- r: ?& r
pLight->Specular.g = 1.0f;; R- \2 i- |5 s& Y6 [2 x2 e5 B' p
pLight->Specular.b = 1.0f;
0 G0 G2 a( C% l( P a y: }/ b+ Y // àü?? oˉè*
2 a: p& W2 p& Y pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f; i) H+ x9 Q: G: O& d0 r; x
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
4 ?: R4 n. a3 m$ o. r pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
+ S7 i( e; _! g# y ?
$ d; o# B0 C" W8 Q: q" q1 x if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
3 Z( h7 M+ A, v {
, f; Z1 ^( E( Z- Y1 f' v pLight->Diffuse.r *= 0.6f;
! `3 T1 z8 L7 r% b2 K& X pLight->Diffuse.g *= 0.6f;6 Q2 n. M1 E3 R, B8 ~" f& ?$ d( A
pLight->Diffuse.b *= 0.6f;8 G2 e1 n4 e. h: v( p/ w
pLight->Ambient.r *= 0.7f;* R. L' L. L" {' y' o
pLight->Ambient.g *= 0.7f;: W9 u: j; g8 g! u; v& g) o
pLight->Ambient.b *= 0.7f;
( q+ ]/ v" U) c- d5 ? }' [! g' h/ s% T- ], i. N( F e7 @" R0 E
4 u& K7 e& Y# U# h+ m- p#if __VER >= 15 // __BS_CHANGING_ENVIR- L0 c7 o4 [. d3 y& y# W2 x c
if( g_pPlayer )2 c* h. Q$ S% g% C
HookUpdateLight( pLight );- K& @" K" ~6 x8 X* H% J0 T
#endif
& Y% `0 j9 B: p8 U7 Y7 ^ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. S0 g0 O. u% `" a* s& q5 z1 b6 K, n/ b& O/ Q" x, |
pLight->Diffuse.r += 0.1f;
* l6 H9 _5 N0 ~/ G/ \1 r pLight->Diffuse.g += 0.1f;0 m- U/ D1 c+ }1 D. O8 m5 A8 P" Z
pLight->Diffuse.b += 0.1f;
* Q- {* L; x7 u/ G* }4 b // oˉè* ??à? 6 j+ r: U! I3 W0 j/ S5 d
pLight->Specular.r = 2.0f;0 D8 R6 M3 a1 K, J
pLight->Specular.g = 2.0f;* U+ G6 w% O7 b/ |8 n; o
pLight->Specular.b = 2.0f;, ^" K- {" ^* ^+ _ [- C0 M
// á?oˉ
, p- n; }* l7 H9 O# g pLight->Ambient.r *= 0.9f;( G7 H T4 V% l- W
pLight->Ambient.g *= 0.9f;
! y7 N" E6 V3 n pLight->Ambient.b *= 0.9f;
) g/ N3 J* Y9 Q8 G% {& K+ q% Q& }( I
memcpy( &m_light, pLight, sizeof( m_light ) );
$ c2 A3 H3 c9 k2 T; g# y* u5 ~
- [# b! e' W5 s1 {$ `8 t pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
3 k) d. k' b% D' O; [- J pLight->Appear( m_pd3dDevice, TRUE );
% v \% ~0 F, C: O5 R 4 b& b' y3 i5 g# `. d
DWORD dwR, dwG, dwB;1 n9 Y6 F" q3 t" ~6 z- A0 m A
dwR = (DWORD)( pLight->Ambient.r * 255 ); M/ T" r, R* O5 _0 C
dwG = (DWORD)( pLight->Ambient.g * 255 );
* Q" H6 S6 h; B% A6 f dwB = (DWORD)( pLight->Ambient.b * 255 );
# |! x( ]; d" ]8 g4 t7 p dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& r0 L- s7 X$ S. Z
}
5 m/ z' o- `% b2 K* l: w. J: F }
" {+ R& f5 ~- t0 V: H else5 T" c0 ^# m' Q# ?# p) n, h: x
{
/ N8 Q& p: b/ @8 L if( pLight )
" t- N8 l. F. O. o& P$ ?8 @ {2 F, Y) P, O+ g* [7 T, a
+ u8 l z/ W+ u; k- \3 q int nHour = 8, nMin = 0;
* W3 ~1 ~5 B5 } #ifdef __CLIENT
6 S; D) k) K T; O r& t2 a // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 0 v6 ]7 i. }2 P" R) U
nHour = g_GameTimer.m_nHour;& P7 b% b) ~+ ~, _
nMin = g_GameTimer.m_nMin ;
; B, @) [$ S, o. ^ #else/ r4 W! ^: k8 H2 F W, w
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.# T8 e% j; h: c& \& D7 @6 O0 g
if( m_nLightType == 1 )% V: o9 I# E2 L5 W( ~
nHour = m_nLightHour;/ z9 k- o( ~% `
#endif
8 P1 B ?8 E& J nHour--;/ x/ O( K7 w; j+ h& u% B) A7 l; B, J5 s4 t
if( nHour < 0 ) nHour = 0;
8 V9 P @0 a- x1 R! [4 c e if( nHour > 23 ) nHour = 23;' V6 g1 p- ^# _" X8 F
1 }5 u. F9 @1 w5 U7 i( f
//if( m_bFixedHour )4 p4 D2 r2 h. w9 G
// nHour = m_nFixedHour, nMin = 0;9 U/ I5 I$ I. b: h* q
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];; m. J0 I! I) `6 I
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
! l$ |' X3 C0 N8 U
# _7 a1 k" B- ?8 W; L //m_lightColor = lightColorPrv;( Z0 }) ?+ q* T0 m$ `/ s
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;2 a; i1 Z7 e8 _, I; a9 P
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
; c# k! k" |! ~5 W6 d, `3 J% q lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
7 \' Y, U3 u1 V4 p. |& F. @0 q lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;0 \0 w) M7 h) Y6 `
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;% _9 U% |! \3 \8 I" S
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
2 l2 s* u8 b/ C5 {: y& t A // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol), w6 d1 I9 f6 V, t8 i
' [) p4 j- I: A9 z& ?: B" o
// à??μ oˉè* 8 z- N& A" p! D
pLight->Diffuse.r = lightColorPrv.r1;
D- k N6 [" z' k# Q- \1 w pLight->Diffuse.g = lightColorPrv.g1;
2 t- \4 v/ h5 h6 U$ x pLight->Diffuse.b = lightColorPrv.b1;% }8 q) t0 Q0 V0 G4 b: F
// oˉè* ??à? . P# c/ C) B; A0 c$ H# u) K
pLight->Specular.r = 1.0f;
1 Z3 Y: h; D8 J pLight->Specular.g = 1.0f;
; E* k2 W+ n j, L pLight->Specular.b = 1.0f;1 v( W, w6 j, H, B/ M
// àü?? oˉè*
/ N( K' b" A0 X- r& z6 C3 k pLight->Ambient.r = lightColorPrv.r2;
0 D7 ~( B& x. I$ v0 }( `" ] pLight->Ambient.g = lightColorPrv.g2;
$ V7 r8 `7 p: t# R J1 l+ L; _ pLight->Ambient.b = lightColorPrv.b2;
G/ N# r, p3 Z# Y; j9 @0 ?" @
6 ^3 Z3 P! K- }% U if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.6 e; j' G4 N$ m8 J; T" f
{, F0 w7 o L" }. y) y: L7 p2 j2 U. P
pLight->Diffuse.r *= 0.6f;
% M5 A" [1 f4 _# P# N- ^% J pLight->Diffuse.g *= 0.6f;
7 Z. @5 I; \7 R pLight->Diffuse.b *= 0.6f;
4 H7 D' k3 J3 i# b% V( w0 O; R pLight->Ambient.r *= 0.7f;
, E. t8 ?: C) n, U1 s pLight->Ambient.g *= 0.7f;
9 N. m, ]9 R% w: s L6 r pLight->Ambient.b *= 0.7f;, t4 x& i" m9 b6 h
}8 O8 m2 ?" O1 c# G
4 m4 L3 \, I/ \
#if __VER >= 15 // __BS_CHANGING_ENVIR
6 d& U# j' |2 ?/ B if( g_pPlayer )! n! U3 C8 x9 ]6 J5 b
HookUpdateLight( pLight ); 6 P# C9 [1 K- t6 f- G2 x1 [, @
#endif r+ g! j @" H( `$ F
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; l. X. b, y9 K1 {$ r. l: n& Y# @+ G S) M. t6 W
#ifdef __YENV
/ v/ [# {* }3 j% f, j* _ pLight->Diffuse.r *= 1.1f;
; x( m! B( O$ Z/ n7 i! l5 G9 D! Q! B pLight->Diffuse.g *= 1.1f;& l( |- P! _' P; Z- V: H" |
pLight->Diffuse.b *= 1.1f;
) H4 Q) M# l \9 ? D/ S/ P // oˉè* ??à? 6 }" I9 o! {3 d8 O% N8 @& P4 C( |! s
pLight->Specular.r = 2.0f;: b4 L1 V1 H/ i( k2 s/ Q* q% W
pLight->Specular.g = 2.0f;
! g0 U/ `2 }6 y" b7 g pLight->Specular.b = 2.0f;" k3 B N/ W: A: L
// á?oˉ 2 }7 _" y' R4 z- B# a+ x6 X, O
pLight->Ambient.r *= 1.0f;
, K/ C7 {7 }4 U& `5 }; I pLight->Ambient.g *= 1.0f;
( i! h: K9 {% [# b pLight->Ambient.b *= 1.0f;/ W; {! q) ^& ?* T' N) e8 Y3 m) @
#else //__YENV' r5 |1 M+ _ ]0 t% m+ o( _5 d
pLight->Diffuse.r *= 1.1f;8 _4 M+ p7 D- \# ?" A' X0 A
pLight->Diffuse.g *= 1.1f;
/ n! H( U; d: o5 O pLight->Diffuse.b *= 1.1f;
8 ?5 D5 M' G7 c" l2 T6 k' n // oˉè* ??à?
2 ?8 D& L; }2 C" l A) A$ Y pLight->Specular.r = 2.0f;$ u) `1 a7 G3 T% d4 D' a: y- V/ g
pLight->Specular.g = 2.0f;
- g1 U8 q ?& J6 h pLight->Specular.b = 2.0f;4 ^+ S5 W8 M! F& ]1 p! X
// á?oˉ
* {1 G6 |& l1 G pLight->Ambient.r *= 0.9f;) s9 Q. V; t# b# T; Q/ e6 i
pLight->Ambient.g *= 0.9f;
3 b8 v: z& o: ~ pLight->Ambient.b *= 0.9f;% ^4 X% H( k _( {; s2 v$ ]4 Z
#endif //__YENV
[3 l( W6 W: E9 v
8 q. z0 T" H( \# ]5 C) ^4 } memcpy( &m_light, pLight, sizeof( m_light ) );
% _+ E' [7 p1 x6 s- z. \! C4 j 8 o$ b# Y/ R/ R' T, i* w% q1 `
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
* I# j2 W5 [6 H D3DXMATRIX matTemp;. n2 J+ F$ d/ d" ^
static const float CONS_VAL = 3.1415926f / 180.f;
9 l# c w' l& ]7 A+ G% G- l' N( l' z4 a) }- S! b4 P
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);% m$ R& I: J9 R1 {/ ]: N
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp); s, P# b& X8 _+ l/ o
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
5 T/ f$ Z6 [: b7 B, _ pLight->Appear( m_pd3dDevice, TRUE );1 V9 f+ }5 w) M6 S
* D/ R! g- {* I0 p% m- _% k
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) e- q- X; s2 Q6 D // D3DXVec3Normalize(&(vecSun),&(vecSun)); {* e2 p7 M( F- }2 P# q) |9 \
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: C p' K, }( f3 F6 m6 C$ H6 F: a
DWORD dwR, dwG, dwB;
! h/ J% V- t4 t% J& O dwR = (DWORD)( pLight->Ambient.r * 255 );) e2 q1 f/ d: r& c0 t4 V
dwG = (DWORD)( pLight->Ambient.g * 255 );
. |" o: `; k' u dwB = (DWORD)( pLight->Ambient.b * 255 );' k9 A0 k7 w+ T2 S0 L, D3 w
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( z H" U" }1 E2 k5 g* s( ] }% G2 j* I6 N3 Q
}
/ d8 ^5 t0 s8 V) _! M' G
/ `8 f [7 ~; y. w. t0 U m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
: p, z4 r8 r% ^4 a! k 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 p+ T; S- H% l& T ]2 ^ i
::SetLight( bLight );
3 w+ L- I, L$ i6 a3 f. q+ P& m) I1 @2 C) u, C+ n2 u0 V! a# Q
// ±ao? ?D?í???ó á¤à? % i N% Q! k8 s' M
m_pd3dDevice->SetMaterial( &m_baseMaterial );. l {7 A6 F f0 c% S( I* T
, T4 h8 a9 K4 T# V0 ?. C# [4 [#endif // not WORLDSERVER- o3 j6 D! D- ?6 F) o. I
}1 O6 l5 l1 [7 p; ?
并更换6 V) r! A; w* P' X8 Q( Y
Code: v& _3 n/ f l6 l# M
__FLYFF_INITPAGE_EXT
0 T6 G( U; f3 Q4 L: X定义
$ ?% y. j F0 }4 U! F: p9 P
3 U. }- s T0 v- \# W" V! m, d- c4 h0 z. ~- b
t+ [; i, m& ?. t1 I8 g4 ?
. r: B* Q0 m; M+ P, D& X现在终于删除我的狗屁加速...
/ ] o) G* u# a+ p9 x# q O; u, h0 {. z
- n) W& x. t2 m+ N; K7 N
3 p9 \0 q# _5 H; h8 ~: l |
|