|
|
食品车:
0 `" e! j3 r Z( Z! G尾翼:
2 C( `' u2 b+ }) b: F+ K; s9 q; T+ h& ], |; j/ f# P4 w
代码:
$ S; y' U$ q6 O" {' ^CWndAutoFood::CWndAutoFood()
% h! ~4 ?3 [$ ?5 W0 [3 o2 u{
2 c6 t$ W+ q0 B4 b+ |2 U+ V m_pItemElem = NULL;
' D( X: m6 W: ^6 L) H m_pTexture = NULL;
1 H1 y. q$ U$ Z7 _# w# D: S1 a bStart = FALSE;8 }% N; {# g3 ~% O; S
}
2 i$ g. U3 h |- E- K: d9 C
2 b: s. _$ M* r. xCWndAutoFood::~CWndAutoFood(); f# d: J# S# y( K
{' n2 ^8 Y& C: N( h N
AfxMessageBox( "AutoFood ist gestorben " );- b+ [3 `# A, d7 q& q2 [" H- Q- m
}
* v& s& O$ ]4 g WBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )1 t1 O$ \/ A$ q: F/ e
{
' A* ?# I- W, F& `6 g/ b# e return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
3 h6 q$ G/ s) g" Z}
2 @$ G4 Z3 F& p& X4 Q4 l. l
( u( i A; X9 I/ h6 z, T0 vBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )2 _) m7 {7 C* ]5 y, s: w' p
{
# D& u+ H0 \" c3 Q LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );. h$ u4 G0 I. a7 V6 u
CRect rect = pWndCtrl->rect;
5 _, N8 F( U! c. |) s0 P- _ if( rect && rect.PtInRect( point ) )+ z3 j' A6 e9 x$ p8 z& a" i
{, q% w K) U* h6 e
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
( X. C' O! N; N4 ?5 v if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )' U. `* l/ s$ r/ n7 s
{
% r5 F; M9 C1 E- [" A6 Y! u% _; d if( m_pItemElem )* }7 Y* p% ^' ^* n: v" |/ ]
{ M' L/ F0 d1 _2 `" A. K, X2 c
m_pItemElem = NULL;
" U1 R" S$ j( S5 H9 X9 | r8 o A3 i4 } }
# Y$ L) h, @ W3 q m_pItemElem = pItemElem;
" l, G: U1 G7 R/ Z m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
1 G. w7 ~' C! ^% c' c2 b }else{
4 d6 U+ m1 f+ r8 ~# l# Z SetForbid( TRUE );* N( U, v6 S: |/ q
}
1 r& }& d( F. q, S- r+ K& b }else{
# I" E# ]" E" r/ ~% L& J SetForbid( TRUE );9 ]! N* R9 e3 U7 B- M4 _
}0 q( e/ X+ z: t
return TRUE;+ W; h9 A! ?$ n1 U
}
: t$ S. l l, g( d3 ~7 s4 W! @' N G% _% }- W
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
8 J4 A" f) s) Z$ m- }7 {{" `' C- @( ?: }) g
switch( nID )9 ?$ A6 Z( F* U# A& q
{! i0 G: i" g# g% X8 L1 G$ c
case WIDC_BUTTON3:! F+ U$ B" n' v4 s0 z! e/ Z% l
{
4 j" v# j- I3 p$ y5 V' s bStart = TRUE;$ Z, o% @* ?6 n$ e
break;
' [# F3 E; I, ^' Y# p+ a }
1 x* T, O; e H4 G case WIDC_BUTTON4:. f( K* n* g" t$ I8 m5 n( f- e0 B6 Q4 z
{
2 _4 z5 Q3 M) C( I/ B7 c bStart = FALSE;
% @, b6 v( |/ t Y0 u q: t break;
9 n3 h: `. q- p0 Z }
. [4 r& p( \/ x1 o2 u; h }
7 R9 P0 {5 V# j7 j return CWndNeuz::OnChildNotify( message, nID, pLResult );4 B( d" E0 D" p; m1 ] ~5 i' @
} 0 c" {8 i* a* F2 s" k
void CWndAutoFood::OnDraw( C2DRender* p2DRender ): C# A5 A$ q7 d& j( `$ R& J
{
: ` z: S& N2 r5 |4 g: V0 t g CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );* R O: {$ p" r7 K- l* k6 S" O2 k( a
if( bStart || !m_pItemElem )
9 j x' `4 x T& U5 Z {( ~; u I5 J3 r8 _
pBtn->EnableWindow( FALSE );. f s8 z5 \4 j! m Z
}else* l% R0 B5 k! d8 W: K
pBtn->EnableWindow( TRUE );
- v+ g: ^ ?$ N I O5 g if( m_pTexture )
) q1 n P# t/ a {
t# o+ B( S4 u- @7 ^9 B( ? LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );7 x, l0 B$ v; h( p4 A7 M
if( wndCtrl && wndCtrl->rect )5 P( {& H: Y* r6 [- `: D( i
{* Q" _ J3 x. }' v$ _& K% }& c5 B& p
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
! V1 I5 l1 b) \2 j- h# E) G }3 N- m3 O7 N4 P! |# e j8 g0 D
}, k" R5 q$ m4 ~5 O9 d" c' K
}
1 P! T. {( s2 s. q- m
( [3 _ O8 b1 Q8 F! S6 VBOOL CWndAutoFood: rocess()
9 k) M6 E. H* N" `3 k8 `{) W3 {8 a2 w! v7 F8 \$ T
if( bStart ) ]; J! L! S; U) _
{
; G9 {5 E, Z8 Y if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )7 g" s! G7 X, F& ~1 Q
{
]# V, e2 W# t9 F: W3 U if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
2 `9 t% G2 D0 D g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );9 v/ u! x9 n# [! e) Y) F
}else{8 L+ J) N' m% p3 c3 Q/ Z) h
bStart = FALSE;
( }6 p p' }# Q6 } m_pItemElem = NULL;- a1 g# @- V3 z! D" F8 ?5 j+ C
}7 Z# L8 K) p: U3 y
}
7 `7 n/ R/ g0 _ return TRUE;$ W' W# `! s/ H& E. h" y
}
- G; a2 Y+ I, a& N3 }
, b/ X% D% O \& n登录视频废话:& o3 e6 j0 ?& ]) r2 p, ?, ~
尾翼:
# a8 W$ M- h9 G3 G w
3 U6 m4 f7 L9 }3 P$ B) ?代码:6 Y& j1 C8 e2 E- k( [1 A
# H3 J/ O2 |+ B1 T2 f" C# s7 _void CWorld::SetLight( BOOL bLight )
. n9 x/ f, s( D# V5 edurch
/ t; D" h# s" _, L; }! C6 G, E# W5 mCode:
- S6 O5 i$ q% N: v7 {void CWorld::SetLight( BOOL bLight )! `: `9 `* n6 ~
{, Q" z; M5 U4 p" f# M0 _
//ACE("SetLight %d \n", bLight);& w0 {7 q6 P1 C+ l- B6 l+ ~
5 N$ _! c3 L: K6 \5 e: O# g#ifndef __WORLDSERVER
# K/ z$ L4 q5 h, L9 @& C DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
1 j: ~3 U9 a3 x) D2 ] CLight* pLight = NULL;
( N$ V1 Y2 u+ ^5 f( c! |/ G6 u. ^
, _ o- N# L4 L- _% r/ R D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
7 A0 N" e4 Q- z+ I) G4 ^: _
) r. i: u2 b8 d: u pLight = GetLight( "direction" );( P. p! f, _1 U( e; _ P9 Y/ P% C
* R" s8 L/ y7 }$ \0 o#if __VER >= 15 // __BS_CHANGING_ENVIR
5 }1 l/ `5 ^6 }1 c& v if( g_pPlayer ){
$ c8 B) n; X N$ o% i ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );5 X$ [# @4 ?. h/ j/ w1 p
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!1 ?) Y6 \8 U( K6 `
{, m3 C3 F D1 O$ u8 e4 \. _
if( pLight )
; H2 ~2 ]$ L7 S- g9 D* w) t {
! g2 n+ R9 o, d/ S pLight->Ambient.r = pInfo->_fAmbient[ 0 ];4 \1 h! L3 {$ f
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];; ]6 L" O# R& t, j) h2 B! j7 D+ d
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];) Z |/ x- }2 P/ I. X/ o3 W
4 v( u4 E, t2 o, [' [' D6 a( Z+ V
pLight->Specular.r = 2.0f;, w3 W6 S) ?( d1 c4 ]+ m
pLight->Specular.g = 2.0f;
. Y( _/ s5 _5 J5 T9 ^( d# V+ ` pLight->Specular.b = 2.0f;
2 ^1 S( ?% s0 ^/ D: s# V2 K
8 e8 t/ {1 }& P5 s6 E pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];9 q; B8 k: s$ {5 a
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];8 V! M$ r* C V( b: ~, f6 l2 M8 ?+ P
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];$ w6 `; q0 I J4 ?9 h' R8 ^
3 x! D$ b- d! p" S+ _+ U9 T HookUpdateLight( pLight ); ; O' N: n9 C' L. t* O
/ w; T% B% b/ _# {7 j
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
_; f3 M, a7 G" b" R
! B; d0 ~# s9 M) N pLight->Diffuse.r *= 1.2f;1 Y3 P8 `$ H/ L1 y ]
pLight->Diffuse.g *= 1.2f;
1 ]9 P( M8 w, T" {4 c; L" d% r pLight->Diffuse.b *= 1.2f;5 f2 E! Z6 Y5 V( u
/ S8 a! \* @8 E" ^. w5 A
pLight->Ambient.r *= 0.8f; m1 \( V0 c5 N
pLight->Ambient.g *= 0.8f;+ U- y$ t) O! [8 R9 L, V
pLight->Ambient.b *= 0.8f;
7 a& }5 z( t5 M+ S1 S 2 n9 G9 ?. ?; T
memcpy( &m_light, pLight, sizeof( m_light ) );
, B. v3 m0 k% e' ]4 I( G; b- X& e' ]- ~$ z: F, z) z1 x
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);# i5 @# z' W" J2 W( H1 s# x; E
D3DXVec3Normalize(&(vecSun),&(vecSun));0 \" E4 I- w" z+ G9 d% s9 }
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 C1 R& q* C7 x# D0 {& U) X. w pLight->Appear( m_pd3dDevice, TRUE );8 B/ |7 x& D$ t
2 ?7 V; y9 B9 u9 P9 ^9 ] DWORD dwR, dwG, dwB;
- z: f; M6 ]- A0 A8 ?: P dwR = (DWORD)( pLight->Ambient.r * 255 );% H. m$ u! I: X2 f `* ^( i
dwG = (DWORD)( pLight->Ambient.g * 255 ); j8 d' U" v! m$ E5 \4 r
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ a' S! q( |! L7 M% }& y* a dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& S Y2 [& N; w9 M+ }* u+ W$ U }2 h) G. N! p8 z3 _
}
. g* k, d/ k9 G1 j; F% I# s }
' q8 c# ^+ N5 Q" q8 q; l4 c else
1 _! H |: m9 @#endif
* A& Z3 s$ I9 t1 p4 }( e7 q9 v# L$ g7 o
if( m_bIsIndoor )
, k% Z7 C9 f+ F- \ {
" w* Y, u$ s, I+ q: L; k6 l( U" ^ if( pLight )
7 m+ M& I7 X; ?% t2 S* ]$ }( j' c {
' _" [9 a# l9 V$ c- W- I // à??μ oˉè*
" ~ ?; A6 S6 c4 C! {9 h2 e pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;( n+ O( Z: x9 g3 `% B
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
, ]; ~8 f0 T2 w2 l2 y) A4 y pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;" D4 ]$ |% H! f0 ^0 M
$ ]7 L+ j1 H& ]1 o4 {% d+ z, z
// oˉè* ??à?
1 N: K0 J7 {, S8 [% z6 K+ w pLight->Specular.r = 1.0f;% A: _1 ]6 W8 i1 @
pLight->Specular.g = 1.0f;
z3 X0 W4 c1 m' O3 i3 s0 ] pLight->Specular.b = 1.0f;
$ p" I) c$ @- R# b; t // àü?? oˉè*
% V# f7 p; V d5 x8 T1 W' Z pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;& q9 V2 B/ {1 ]/ T
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;/ N. k4 z, p- W
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
( c" K& _4 n+ f# X5 k& ?7 J$ ?2 Y' `5 D/ }
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 _" Q/ A$ n' d( _) A: X+ f
{0 g) D% ~3 c9 o, H6 C
pLight->Diffuse.r *= 0.6f;2 [& F, e0 w* E
pLight->Diffuse.g *= 0.6f;( l- f. ^) D. `* P9 Q2 x
pLight->Diffuse.b *= 0.6f;
$ h& a' t1 U- V$ V pLight->Ambient.r *= 0.7f; T9 P$ O" V7 ]( y w* i/ X3 p
pLight->Ambient.g *= 0.7f;
B6 k% z. E. c5 _5 M6 } pLight->Ambient.b *= 0.7f;
6 d/ P D: z7 l) f5 n4 b v4 v }" a U0 |% s+ Q4 h
3 y9 [* q8 u6 N) ]" E% N3 ^#if __VER >= 15 // __BS_CHANGING_ENVIR0 Y2 ~3 \1 S: |/ h
if( g_pPlayer )
, o5 w \- {" ] HookUpdateLight( pLight );
6 _1 l2 b# C7 z5 W/ M. v#endif
h& J, _1 j* E& [4 l' ?2 t( p' e8 c( y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 f( l" |6 V9 @' B+ l& {& f8 Z
1 ?0 a' S: |8 E7 K
pLight->Diffuse.r += 0.1f;
9 q9 j* I& x# W- g9 {" L- p pLight->Diffuse.g += 0.1f;
! E0 I/ }) O- T' x7 Q8 ? pLight->Diffuse.b += 0.1f;
* t9 w& P; X5 M% I // oˉè* ??à? " t9 `% q' P. s8 b5 v: @
pLight->Specular.r = 2.0f;8 t% R( G( C6 e. ]/ P7 J
pLight->Specular.g = 2.0f;. e; i: N: I7 Y% Q6 w, d
pLight->Specular.b = 2.0f;, D4 k+ y. R: g1 I. f' |% r
// á?oˉ
! i) h: Q0 i( p& w! M5 g pLight->Ambient.r *= 0.9f;' `; H# C) ~) |1 d# r9 {% J. M
pLight->Ambient.g *= 0.9f;. @" C9 B! p+ c J4 k+ \
pLight->Ambient.b *= 0.9f;$ c- v% g0 P3 ?2 {/ Y
+ u% T4 F( @: F9 u% @ memcpy( &m_light, pLight, sizeof( m_light ) ); @. A: f" q1 n0 }) D( ~
* w) L- p# l& `: K6 m2 l2 z/ G
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
" Z5 K* s" A. H( x: L pLight->Appear( m_pd3dDevice, TRUE );$ J, g0 n5 f, B* I, ]* v5 @0 h: W* w
- X4 G* l) M1 c" T, V' C DWORD dwR, dwG, dwB;
) x0 k5 l f' m3 z. o# v dwR = (DWORD)( pLight->Ambient.r * 255 );8 r" A# \) o2 a
dwG = (DWORD)( pLight->Ambient.g * 255 );
" z- o6 H9 R: A) Y5 N2 u- m dwB = (DWORD)( pLight->Ambient.b * 255 );0 m+ Z. j- Y( _4 m% L- Q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* T3 N; ^7 h! B7 Y' ?- S7 Z } }" r7 W/ i9 U6 y9 q5 n' z+ i
}
+ a, Z9 U. P+ `$ L5 q6 m/ Y else7 x; j. l! h7 h2 ]
{% g0 D7 i: H5 B- _
if( pLight )& a% `, C- D+ _, M" G" A$ U$ r
{% r: B0 l6 P: j+ |* p
& S9 X7 I+ u# z int nHour = 8, nMin = 0;- n4 f- ~! e9 X3 U, L% Q
#ifdef __CLIENT
% F; v( D1 {$ z: E // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
T: d9 [+ g& O/ [0 [* u9 V nHour = g_GameTimer.m_nHour;5 R4 _# e- l2 i* Z- I7 Q& o
nMin = g_GameTimer.m_nMin ;* c! F9 d4 ]8 }& B7 G' @
#else
3 e. H. h; y) q1 T/ ~: P // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
- w% x: H2 ?3 `: F8 @5 I if( m_nLightType == 1 )( w/ F5 H$ g% \2 w8 S+ p/ ~3 y
nHour = m_nLightHour;/ L. \8 X* G8 M. i; w6 W
#endif
, t: x* M8 _2 J7 Y- k3 {/ D nHour--;
+ c0 _! d( m6 @! \ if( nHour < 0 ) nHour = 0;( k0 C* l. S) U
if( nHour > 23 ) nHour = 23;
8 P G1 n7 v; V( ?, P5 Q# w% z" e X+ d; H& M0 O. E" [
//if( m_bFixedHour )
) O. d4 z2 h, L9 w // nHour = m_nFixedHour, nMin = 0;
0 s: ~/ K6 O; v: s$ `+ Q LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];; {% q$ j% W6 t$ |: I
LIGHTCOLOR lightColor = m_k24Light[ nHour ]; H! b+ Z4 j t& E+ K
) x' N* O8 @9 W0 N! a
//m_lightColor = lightColorPrv;
; D9 N+ Z9 ~; t lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
) H. l- _4 ^0 n% W, W2 q* Y lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
: t3 c2 A T1 @4 q7 l lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;* o& w# \; ^0 D- ?; q" [
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
; B: D$ S& G/ |5 [$ z" } lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
: T. x8 G) v' t& B. `3 D( b4 I) h lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' N" P! g& K h; d0 i
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
! V2 g* Y6 F9 k0 g8 U0 X- n3 t R: z6 f7 J" E/ B. `( _
// à??μ oˉè*
+ E: ], x+ v2 Z/ ] t3 N/ A3 M: L pLight->Diffuse.r = lightColorPrv.r1;
7 L" ?5 |' Y1 W/ E pLight->Diffuse.g = lightColorPrv.g1;
: ~" ?8 i9 {6 n5 c pLight->Diffuse.b = lightColorPrv.b1;
b% A" B, m5 m4 i- P5 t2 q // oˉè* ??à?
, Z! G1 j' n- D, v4 \* M$ U pLight->Specular.r = 1.0f; ?+ @5 H6 ~5 |$ r# Z
pLight->Specular.g = 1.0f;
# U* m* S9 x9 a" g9 B# S, K pLight->Specular.b = 1.0f;
: M# b- r. Y' ] // àü?? oˉè*
5 j/ {/ Q$ k, q+ T/ G pLight->Ambient.r = lightColorPrv.r2;
/ U( Q1 W, [" X( L, ^ pLight->Ambient.g = lightColorPrv.g2;
8 ~# [% L! t* z. R pLight->Ambient.b = lightColorPrv.b2;
7 Y) J e2 F4 i. f. u% b& Q: ?3 ~7 Y% z3 ]3 z. I
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.' U# T( x. q& x Z- |
{
; ?' K5 r) k) R T8 W+ v7 e pLight->Diffuse.r *= 0.6f;
; u9 O9 u: [0 W$ j pLight->Diffuse.g *= 0.6f;: `% S0 a: l) n5 r w# d4 U
pLight->Diffuse.b *= 0.6f;
8 z$ z$ b/ q, _ pLight->Ambient.r *= 0.7f;0 J- B) x) _& }
pLight->Ambient.g *= 0.7f;
) [9 S% U( |2 a1 S* r' N) m pLight->Ambient.b *= 0.7f;9 r2 F4 d& @' V0 z4 W$ _
}
+ Y0 A" ]1 P4 I5 N; B# d
" z7 }. ^2 g; n7 f) D# r#if __VER >= 15 // __BS_CHANGING_ENVIR+ T' r0 }/ c; _2 v0 Q# Q# ^
if( g_pPlayer )& z/ Q: \+ H/ N7 c3 x
HookUpdateLight( pLight ); : b# N7 f; B8 D" c) H" D
#endif
( E7 T+ O# i$ r7 s5 O& U; \/ m- F2 u& P memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" d3 _! x) W+ w/ y$ a! O6 Y, I% P# N& A/ \5 Y5 O% b
#ifdef __YENV
8 W8 \8 n4 @1 ?+ t2 p# A% M pLight->Diffuse.r *= 1.1f;% t1 s n" G$ ]* o, w3 H
pLight->Diffuse.g *= 1.1f;
7 C! h5 [. y8 P6 e pLight->Diffuse.b *= 1.1f;' l9 a5 S, i& [* `4 x% \0 c; z) U4 w
// oˉè* ??à?
8 u( `3 @- ~+ G1 ^ pLight->Specular.r = 2.0f;3 V) G3 ]* K1 l. [! v
pLight->Specular.g = 2.0f;
1 @% I% D1 J5 b- }; i( W pLight->Specular.b = 2.0f;
: x# R- @3 ]$ k- M! ]( {5 e // á?oˉ
" j T$ Y$ k6 h pLight->Ambient.r *= 1.0f;
3 Q3 p+ ^: g' { pLight->Ambient.g *= 1.0f;6 O% P1 c! l* g* p
pLight->Ambient.b *= 1.0f;
0 P6 q# ~, |8 S! L4 s% W; N#else //__YENV
! H4 H4 F5 b# F' \ pLight->Diffuse.r *= 1.1f;: [9 \' @7 g& Q& p5 ^& Y* J
pLight->Diffuse.g *= 1.1f;
3 [8 J/ L' l+ } b& a# f2 L pLight->Diffuse.b *= 1.1f;
0 I* i; T% B* z0 P // oˉè* ??à?
4 @# g. F$ t9 `! C& `2 [) { pLight->Specular.r = 2.0f;% @9 @$ e8 o: x0 X4 ]
pLight->Specular.g = 2.0f;
1 T4 B" S9 m8 g, h: P3 _. q pLight->Specular.b = 2.0f;; O6 k% G( u$ M4 `" r
// á?oˉ 5 E4 U5 I9 x5 z/ A
pLight->Ambient.r *= 0.9f;
, j; @" H& e/ V pLight->Ambient.g *= 0.9f;
^4 ]5 l) O# g pLight->Ambient.b *= 0.9f;
' X# p8 @; n5 K5 m/ @) [- C8 r#endif //__YENV
! q3 H, Y/ w5 ]! @' C ~
' r5 A# w- f. H$ {( j. k2 f memcpy( &m_light, pLight, sizeof( m_light ) );
% y8 ]7 \0 T' _7 l
, T q4 X2 M3 J% v9 ] D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);% N! [3 _4 p. |$ w% o/ S5 P/ B2 q
D3DXMATRIX matTemp;
' y2 g& y6 a' Y static const float CONS_VAL = 3.1415926f / 180.f; a3 g/ B: Y* a3 L7 e
- H# N& X2 D v' h/ e! c
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);5 G$ i7 p0 U" W* N1 ~
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);2 g& b4 x6 |+ ]4 |( N
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
; z% W% K0 U! T; V( m0 n) U pLight->Appear( m_pd3dDevice, TRUE );, C3 m, H- o9 ~( `
( D( R6 P& C. m7 n
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 [. f7 e6 r0 V' W T
// D3DXVec3Normalize(&(vecSun),&(vecSun));
# O* i+ C. I7 X // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
% ]$ [- j; \6 h# K
) F' j+ D( c! E, X; k( ~ C DWORD dwR, dwG, dwB;
% A: _: n" b# N, E0 a. n# h3 O dwR = (DWORD)( pLight->Ambient.r * 255 );$ a G$ m0 ?- F
dwG = (DWORD)( pLight->Ambient.g * 255 );" ^% Q# x# d* c6 L
dwB = (DWORD)( pLight->Ambient.b * 255 );/ I4 e( f0 `# Z7 a( r
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 5 l% \/ R& H1 K( {& O$ O6 r1 @
}( `$ o' E* [4 G1 C/ l+ o. N
}
; K8 \5 M R3 X9 b4 T. ^" R) r3 e" B( R q* O$ j% x& W$ \
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
$ p' z* l0 A/ T \# Q 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) );( b- C" y" v: z
::SetLight( bLight );
. g4 F5 f% ?% `& L* C3 ~
# u u: U5 D) y) v // ±ao? ?D?í???ó á¤à?
7 z# m( y# l8 p% N( ^) X4 t& z2 {/ i0 b m_pd3dDevice->SetMaterial( &m_baseMaterial );
, A) }, D" W! P7 T- c
% W2 x/ v$ _5 C5 J U#endif // not WORLDSERVER
2 N P; B# Z# @5 {) k2 P D% @}! k. |: a5 B8 B5 H( {$ g
并更换% S& [0 e9 D& P5 u" i, c2 _. ^
Code:
4 ^/ o9 ]. a9 t: u" N__FLYFF_INITPAGE_EXT y7 i2 L, X7 V! `1 b
定义6 [1 `8 @2 N+ \% Y* X$ J; t9 C
, @7 R0 }$ a- J Y }+ ~3 J* y0 e
5 h. L+ C: o: Y8 o) ~5 v8 v! I7 E/ y4 b
! s& k0 [- e$ f/ a9 C( y6 z5 b
现在终于删除我的狗屁加速...
8 D; I! u* i4 y2 `2 f! Y
1 H! x- m" b) \* O
/ {0 L+ R$ N% i/ V% E# T L. s( P6 f8 b4 w( v3 w
|
|