|
|
食品车:
% A$ A3 {' s- t( K尾翼:
; O1 @- K+ @: H6 [$ E" a/ c8 I% {& S- s9 u" M f7 z% ^
代码:
0 V0 g& w$ T- G* o- u5 KCWndAutoFood::CWndAutoFood()6 [1 I& u T- a% J$ p
{
5 I* R( j. _6 e5 Y% y1 b' j m_pItemElem = NULL;1 C1 T( L; f3 L' ~
m_pTexture = NULL;
& `1 O+ p+ l, @9 I9 E; { bStart = FALSE;- z! X- m9 F/ Y- |! k' N
}
3 j8 c- P% b- M' M( x8 ]* I0 O& F0 y8 R( S. n/ i; d3 I, f
CWndAutoFood::~CWndAutoFood()# Z0 C2 C9 x% n4 X- B+ t
{
2 R; J& N9 D" p- T/ e3 h2 W AfxMessageBox( "AutoFood ist gestorben " );
' i/ n- o. B' I+ A/ L7 k) p# Z: m}, z( s. @) S e$ m
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )6 R# {( V% Y/ O, N4 ]- ]$ ?) Y. W1 Z
{
8 s/ R X2 E! h+ U4 K% S8 b9 V return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );2 K/ B+ c: T) k/ T: l
}
4 d; U* o; V" O$ @ W9 [& L( o+ u% ~4 d) e' V
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )3 x* D0 u" h% `$ x9 o A
{7 H; R- [6 S; d- g$ z7 h/ S5 z% b
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' G1 \. S, ]: W" ~6 s1 I CRect rect = pWndCtrl->rect;! O% l Y- b3 D. D( F+ l" ?+ x
if( rect && rect.PtInRect( point ) )
5 D$ l8 s. \! ~" y% u" Z4 L, v$ S {
# }$ L' @3 f! o% x) y; r. i) n CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
- n$ H! l1 v$ x if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )7 y# Z! ^7 E6 l1 p
{
^+ _. h7 b S2 s( s if( m_pItemElem )) E1 V- j/ }# C4 A: x. f
{$ q7 U1 `+ q- ^8 K) {7 ?
m_pItemElem = NULL;
8 _. w" s) p* j& d6 u; } }4 p0 G5 A- W- o3 v
m_pItemElem = pItemElem;
0 B- G' A) o- V m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
1 d3 Y- C& y' [ }else{& Z, s& j0 q% y) T8 G1 P+ e
SetForbid( TRUE );7 z( A5 Y8 v: ~$ M! N* g
}
3 E. _+ `2 L# o! W }else{
* x) F; k9 @$ n; l8 `7 S SetForbid( TRUE );/ m/ K5 {5 o1 g# g
}4 t4 E! c4 U- B |$ ~" v
return TRUE;* [; ~" |9 h' a) G) ?: A
}
/ Y. f" I( I' n$ ^
3 S( {9 w4 b% oBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
4 v3 w( O# [' I# r{5 \- C% L! Y+ h5 H& \/ C
switch( nID )
# \: d9 i$ h( q1 y {5 s. _) F) O! ~0 N9 t! `# f0 c8 q
case WIDC_BUTTON3:& [% F5 N8 s5 H: E
{
4 d. \) ^! Y( F2 U* h) a+ b bStart = TRUE;
; a3 q; G& C: r7 F& h break;
5 ]8 J8 s6 }0 y- n; h7 r! ]# a \1 P4 g8 E }8 v2 y% d+ U* t0 k
case WIDC_BUTTON4:
6 Q5 \3 K$ B, J$ {$ q { t, \" C1 a# x( F% b4 {% o$ z
bStart = FALSE;" u4 s2 g0 d. o$ U: J8 j5 `2 o/ P
break;
5 z) L3 c& b- Z5 s* q }! I/ R/ C8 V. z0 \) } \
} `; a$ j& m1 U; |. x" D9 _$ M
return CWndNeuz::OnChildNotify( message, nID, pLResult );
( a" Q- r" K, L# F+ y. {} + O% {' M8 |5 _5 p4 x, L( X1 S0 t
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
: t& D8 G* Y* J9 h# ?/ _% S2 s{
- A% G9 z* e& s# ~ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );+ G. k9 O% P: H0 }1 l: f
if( bStart || !m_pItemElem )* s A9 C/ j* L2 o, x2 [7 m
{
5 S* v0 r4 |# h( a: \ pBtn->EnableWindow( FALSE );5 \4 D9 @$ }8 k: h$ L
}else
+ ~) H7 S( ?) {/ h, R& j pBtn->EnableWindow( TRUE );8 R/ \5 S0 z! d
if( m_pTexture )
6 b5 X0 A# t3 e# C. c {
9 `6 p/ e" d% T+ W$ Z LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; h) ~8 l/ I2 S" `2 r: Y
if( wndCtrl && wndCtrl->rect )4 H9 N( c4 Q% B) z8 F. V1 o
{6 E4 j4 }% Q+ d( [/ l s8 C3 ]$ |
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
* R) I# h) f. W# ~; M& F( |2 R }
' U/ h8 ?! T4 f& ]" m }
/ N: \0 d {7 Z% `2 M r3 Y}! K. z6 m' W5 M( N5 q* u1 G
: ^' A; t& I& i2 k3 y" v d
BOOL CWndAutoFood: rocess(): f) w% \% D+ `' e M
{. z! f# p$ q* ^6 Z1 s+ e
if( bStart )
/ u6 K* x# D- P) v- _% n {5 U9 J; e7 M; n. V$ J
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
* n% K7 A- d( t0 F( p& H, P' K {7 ^! j- v( e& w; g
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )4 G) L2 |" d0 S- R& x
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. j. t& f" N' N( p! j
}else{+ Q' c6 U( W" r- t+ d
bStart = FALSE;
) d F7 e) o0 D m_pItemElem = NULL;3 J2 b) B; f4 H- q3 @" N* Z. P
}
( _/ U- H+ Q3 C4 }+ n \! _; Y }
) C$ J; G( L# S* X- b" l% I7 m return TRUE; K k& |, N+ g d$ `3 C
}% p+ ]$ l0 B/ O4 S8 N' U u3 l
: z# P" K- d- K% \# X4 z+ N登录视频废话:3 F: e& M p6 i* T7 v
尾翼:
* n/ L0 h0 Z! g& t5 m, `8 ?
. L4 }5 U1 [8 z2 q: U; G& M代码:
; r$ |0 r6 ^1 P/ \) t1 l: v- {4 _0 {5 i R) S
void CWorld::SetLight( BOOL bLight )
) T' w& _& T) M4 Ydurch
* S% N) D' U! o& z* g* i" B8 oCode:
! S+ Q* B- l# e. Bvoid CWorld::SetLight( BOOL bLight )
. X7 g7 o) ?' O2 A{4 |3 _8 i9 U9 x% w
//ACE("SetLight %d \n", bLight);
0 ~7 s c2 D, O: p* @! n
/ ~( k6 A* a* u#ifndef __WORLDSERVER 7 o! n( W) l$ M: Q( a: o
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);6 O% `1 ~' d: ?
CLight* pLight = NULL;
& F% @! m: i7 G" c# O0 _- [4 |' `* Y1 d6 j* K
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );; h# A/ v/ _2 B
; d( ]* h2 m( Y0 P pLight = GetLight( "direction" );
; T5 d& H3 t- n' e3 s
5 E, b5 j7 s8 K* T9 B1 d3 {* Q#if __VER >= 15 // __BS_CHANGING_ENVIR+ _1 U& {$ Q; d' c$ |, e" L# F
if( g_pPlayer ){
( r Q$ c' K0 Y- K ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
: @1 l( n* b/ Z1 }. q9 W if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ Z' a4 V8 n# k# X/ [' b+ I+ Q$ W% r6 P {
4 u: c2 O+ m* \3 v if( pLight )
; [& M$ U: B: P8 \ H {% ^, V2 s6 _% r' x" f4 e
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];2 H5 u0 \* g* H& c& `! T
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];! H+ F+ R, v# W/ u7 u& |4 w
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
n2 z! m, H5 w5 {+ D& b0 J8 k1 T3 D. R" S, |
pLight->Specular.r = 2.0f;
@) [ r* [8 l9 w3 c pLight->Specular.g = 2.0f;' s5 X* \" X* N5 ?
pLight->Specular.b = 2.0f;
* q/ z( x2 l3 A7 M3 p9 s( T
* S' G ~6 Y( v5 Z. d* h pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];7 J4 k/ X2 d. g
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
+ @7 _" Z/ w: _# p9 [. | pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
2 b5 j' F1 q& K& r2 T, b
& }" m, L3 U" c! ^* q0 N! |) d* ? HookUpdateLight( pLight );
4 j. q" N9 X" a- c5 x2 h6 y R! P& [& N7 H
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' ?6 B4 r# [2 c" T3 u4 r8 X9 ~( G. y
4 D7 y; O' J" m' G! p# i pLight->Diffuse.r *= 1.2f;
1 `7 \* e/ ?( I9 K pLight->Diffuse.g *= 1.2f;
. M5 O' ]! `/ x% n% l% Z0 j pLight->Diffuse.b *= 1.2f;
7 Z" t% l# D' _4 p8 c1 s. F7 q! s+ I. Q: l
pLight->Ambient.r *= 0.8f;# F: _3 ~) k9 o7 \$ I
pLight->Ambient.g *= 0.8f;! y/ ]+ i7 }, q8 v! Q, q
pLight->Ambient.b *= 0.8f; Y Y4 S# t* o2 B& e! ]
. G) a" b) }3 Y$ Y) L+ A9 n memcpy( &m_light, pLight, sizeof( m_light ) );; t( T, a$ \* T6 `) l
) m8 S e5 _3 ]7 O D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% H1 ^' U% ^8 \) T6 E; ?5 ^- Q D3DXVec3Normalize(&(vecSun),&(vecSun));5 L! C3 d/ `) I3 F( t
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
& G) N. J" }" w: U pLight->Appear( m_pd3dDevice, TRUE );
" J% F/ O5 @9 N, I' t 1 D$ ~: X8 g L Y/ L9 Y- J8 l6 J
DWORD dwR, dwG, dwB;( }9 }" w& c& I* `) c/ h1 I
dwR = (DWORD)( pLight->Ambient.r * 255 );1 Q! [6 y6 Y7 K6 g2 u; \6 c8 K
dwG = (DWORD)( pLight->Ambient.g * 255 );/ t- f# D5 |, D( P4 F: \
dwB = (DWORD)( pLight->Ambient.b * 255 );5 I: s( C0 R! g
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) R9 j" R$ m/ R. H* w
}
, k7 \6 M6 b& i9 T) ?$ f, F }
8 Q1 B8 q+ Y6 b# A3 m) s# @4 K% k }& T* O0 H- ]" ~) u* t7 _ T
else
2 X R7 ]) B7 O. q. ~3 ?1 a#endif
1 `- g; Z, b9 e" u8 W( R" K$ b5 ]( I
if( m_bIsIndoor )
/ L2 D. Z9 L. T; j& g# d6 o N {* `5 o& ?' r" Z7 w7 r) U: W
if( pLight )& T5 K9 A, X3 ^, S
{ " r: F) \, p* Z) y3 @% ~; x8 l
// à??μ oˉè* 8 O/ E9 I+ ~2 D: l5 |, N
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
1 Y3 Q. x3 w, P1 S7 p6 H* D" w# [ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
; R: P. O! h* [ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;4 G2 m* b8 e8 Q# g& [; f% j& i2 x
7 R" u, M7 {9 m
// oˉè* ??à? 3 [) v2 v) ]% d) M' v$ o/ M) t
pLight->Specular.r = 1.0f;2 M* _; v9 }: k3 }
pLight->Specular.g = 1.0f;* X" h) ~) C$ H$ s& ~3 q' L/ F# g" U
pLight->Specular.b = 1.0f;# L4 ~* u0 d* M8 [
// àü?? oˉè* 8 |. P3 L7 C( ?/ x
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;2 k0 v" X1 W* _7 V
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
* s: l, _/ l6 q. P3 T0 R8 j/ Z& N pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;3 D' G, u6 y0 T6 X+ E+ i, l
& r. U* h2 O4 E. _* ]9 E, G% A& {
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; O* {) e* O" `& s
{
; }) w: H' T& [6 t2 S# ?8 U k: i pLight->Diffuse.r *= 0.6f;1 u( R; P2 d1 [2 i6 S7 _7 T6 }1 m
pLight->Diffuse.g *= 0.6f;. z# W0 F% a7 |( `2 ~( C
pLight->Diffuse.b *= 0.6f;
+ J D* R* c& ~1 A. k. B8 W( t+ |9 r pLight->Ambient.r *= 0.7f;
& f2 A ^/ I) `/ E* f pLight->Ambient.g *= 0.7f;
* s9 g j! l* h pLight->Ambient.b *= 0.7f;
# S: u* C) U+ l- n }
5 U$ B+ q' p, \, ]" F' A
( X- q6 j$ s" e- c! W#if __VER >= 15 // __BS_CHANGING_ENVIR
: G% ]3 r5 m' e9 @9 k" ^ if( g_pPlayer )
: k* `+ z% }/ i; s, f6 I5 D HookUpdateLight( pLight );: i- L2 F7 c" q6 P
#endif
# h& Z% E+ p, t& N- s6 e* v memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( E% i0 a7 E5 W8 w1 X; F$ [) \' D
4 _8 u5 i; |$ m! }) y pLight->Diffuse.r += 0.1f;
1 ?9 A+ C& L1 p7 E/ F, t' Z pLight->Diffuse.g += 0.1f;- ?( j* R8 c7 f2 ~6 B. I% ^
pLight->Diffuse.b += 0.1f;
+ n, r2 [4 P9 w, z5 r // oˉè* ??à?
) G$ s5 Q# m3 O# a) s* i: i+ C pLight->Specular.r = 2.0f;
* U: h/ g8 o5 u2 H$ D pLight->Specular.g = 2.0f;
/ S! O: N- P3 t% y pLight->Specular.b = 2.0f;0 M( ?& D; D9 \5 w1 f2 q, A, k
// á?oˉ 1 b9 w! @/ W! j" ~$ ], [
pLight->Ambient.r *= 0.9f;
! T- M3 C+ r( x2 V: G1 I8 x" b p pLight->Ambient.g *= 0.9f;
+ r2 _- B/ W; H) L) j# `: j& f" T pLight->Ambient.b *= 0.9f;" n' H3 {. k& E5 ~& ]
- F: M) d# J5 U# o9 l8 @ j, S memcpy( &m_light, pLight, sizeof( m_light ) );
. Y l$ M' `& Z, b$ O L. x
& G2 \, J9 F; m2 E+ T pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
2 l$ `/ `, H+ M6 b" g% x& j4 v pLight->Appear( m_pd3dDevice, TRUE );5 y3 h; ^8 y. b' E; s( |' }% s
0 G$ r$ W+ C+ @" { DWORD dwR, dwG, dwB;
7 \. N+ p( ~& l8 k. ?7 z dwR = (DWORD)( pLight->Ambient.r * 255 );
- ] k3 w& p, t- O" ?8 ^3 o dwG = (DWORD)( pLight->Ambient.g * 255 );
! z+ {! m; D! _* d; W dwB = (DWORD)( pLight->Ambient.b * 255 );2 p. Y/ `6 u! r2 u+ f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
% h1 \& D( E# s4 T: h }
& C4 E. C5 I6 v) Y. }# D }7 e5 N, G, @1 D' C" G6 X* i% w
else" x2 w7 [$ B+ _' u. Y2 J3 u
{
7 o; O* L- X1 _/ i' d: z6 [% j if( pLight )
4 t% l' S7 A2 _* C+ o- t {% y3 R, V5 y& G. x
" M+ ~% Q2 m4 _/ A1 V
int nHour = 8, nMin = 0;3 t8 k2 K9 ]+ r2 Y1 q" Q# {6 x
#ifdef __CLIENT3 }! P# |* Q3 Y' ]2 B1 Q! }
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. - o3 U- _ i: w% `, u
nHour = g_GameTimer.m_nHour;
& T( Q' S8 G* O+ s0 j2 m' x/ [8 e$ h nMin = g_GameTimer.m_nMin ;
( I4 y: e" N$ @2 H #else% {+ h8 @5 z7 x' p7 a
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
P5 C) N4 D$ o if( m_nLightType == 1 )4 E/ v) A; B/ ^
nHour = m_nLightHour;0 C" Q# E: B& D2 o0 ?
#endif
) f. U% T \) j( H4 Z nHour--;
: m: m8 l3 Z* |; n8 D if( nHour < 0 ) nHour = 0;
$ i2 a) \# o/ h$ j* r if( nHour > 23 ) nHour = 23;
& I- d3 U* z% I$ v
, l& }( L: [& _$ g //if( m_bFixedHour )
# j# B7 n( P' W5 u! o // nHour = m_nFixedHour, nMin = 0;# o7 y1 S/ H1 e' o, {- B$ G$ A
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];* e3 u# h$ k4 n: U0 D" u9 m
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
o* q* M* Z1 a6 e" [( y6 R6 O3 S% y8 A: C7 ^
//m_lightColor = lightColorPrv;
% s9 O: h" V9 G- f) V lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;1 Q4 C0 b3 ]# @/ _9 @7 D
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
0 W+ h! ^- ^1 n+ ] lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
- J, Z; @* a) h" e( a1 } lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 c: [% V# W; |' ~1 _; t: J, L v lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
# v% ?- u y# F lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;, r8 X( [8 C! r6 E
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
" o- V0 G# C& `' s; C/ M$ e
9 Z+ U+ s- m4 Y7 H( H6 i // à??μ oˉè*
. w6 N% R& L" c3 r pLight->Diffuse.r = lightColorPrv.r1;
9 L/ b- A9 ?* w- ]7 ? pLight->Diffuse.g = lightColorPrv.g1;
: B5 Q& }+ s$ c pLight->Diffuse.b = lightColorPrv.b1;3 G- `+ d0 E* x9 t- x
// oˉè* ??à?
$ }4 y( B( R$ ^6 y6 T3 H pLight->Specular.r = 1.0f;( u/ H; B* m& z: i
pLight->Specular.g = 1.0f;' |; E, A6 f6 {5 O: W2 n3 e+ H4 {
pLight->Specular.b = 1.0f;
; C1 I4 S! k0 w1 }# ~1 @6 r // àü?? oˉè*
# g& R% o( t9 n2 S, n% V: v5 R pLight->Ambient.r = lightColorPrv.r2;
4 G. }3 v! K# G( m% B! g pLight->Ambient.g = lightColorPrv.g2;( n z" ~3 j0 I/ l# ~# w" V
pLight->Ambient.b = lightColorPrv.b2;$ M. D; Y7 D) x3 l8 y
6 z1 q; K1 J5 ^( a# ] if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
3 F' \0 C( u: o& Q! d& S- _! `4 J {
# ?9 ~# Q) w% M pLight->Diffuse.r *= 0.6f;
: I6 I% v7 ?3 g2 d5 u& G pLight->Diffuse.g *= 0.6f;
4 |+ } n7 z9 s3 F! K4 [9 g* X pLight->Diffuse.b *= 0.6f;7 y! H; I! w4 P0 b i1 f1 {
pLight->Ambient.r *= 0.7f;3 K" n" j. T3 F
pLight->Ambient.g *= 0.7f;
2 V4 T( a' R6 e/ K6 e pLight->Ambient.b *= 0.7f;# W+ m% O) a# ?
}+ m% l& L7 s; L: e0 _
1 ]+ K z2 P+ d2 A; C( D8 P" S#if __VER >= 15 // __BS_CHANGING_ENVIR) A$ R% u; Y& i9 q; T
if( g_pPlayer )
Z0 g# u, X. p HookUpdateLight( pLight ); 5 F& ]5 [! f" L7 H! G! P( I
#endif
) J: B: r* D% \$ F; ]& L memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( k2 p4 B; j/ q6 B
- h9 z: i/ ]8 C: ]" }4 Q2 W#ifdef __YENV
$ v6 X9 c( X( v: b0 o0 C9 }8 R pLight->Diffuse.r *= 1.1f;
9 z4 h$ ^3 L3 G0 j! u# f+ u+ t pLight->Diffuse.g *= 1.1f;: ^, q$ L+ C" R1 S1 ~, K
pLight->Diffuse.b *= 1.1f;. P9 U, {* I+ E& S+ {: E! q% B
// oˉè* ??à? 8 [$ _! T% O; I" ^7 ^' @
pLight->Specular.r = 2.0f;
& p: Y7 p9 j+ M y( `2 e4 j pLight->Specular.g = 2.0f;
! e9 U5 T Y+ V/ r# d pLight->Specular.b = 2.0f;: I4 ]4 E0 n, m" A0 G9 j
// á?oˉ 5 j% m2 ]) \/ w8 I
pLight->Ambient.r *= 1.0f;
. }" f* x9 x+ Y3 Q- h0 W pLight->Ambient.g *= 1.0f;( x Q, q3 Y t* O+ y E
pLight->Ambient.b *= 1.0f;) r0 Y6 n3 O% B: B& R
#else //__YENV
- h2 E5 H) @! @! i* K% E pLight->Diffuse.r *= 1.1f;
. |3 M/ n; u. N" p3 u/ p pLight->Diffuse.g *= 1.1f;
4 h2 |- v- r- g8 ^. L" w pLight->Diffuse.b *= 1.1f;
O: p' T( x, U // oˉè* ??à?
: O- T: O0 j% N( Q2 ]5 v, J pLight->Specular.r = 2.0f;4 `$ g/ W' y4 a2 G# b
pLight->Specular.g = 2.0f;
8 B( E2 x: }4 p1 {: H pLight->Specular.b = 2.0f;
& S+ r: A6 h" P // á?oˉ
' [. e Z* v- n& `* d4 K pLight->Ambient.r *= 0.9f;3 b0 P& S3 O$ p5 i) d$ I
pLight->Ambient.g *= 0.9f;5 u Z/ m! t& n, A5 {
pLight->Ambient.b *= 0.9f;
/ @6 B3 H) [& I# P3 a1 W) e) u#endif //__YENV 7 Y" o! x! b) a
7 e; ?/ V! B& T2 [3 C
memcpy( &m_light, pLight, sizeof( m_light ) );/ ^3 k% M/ |. @2 k3 `" z
1 W! n% F3 M( d+ W D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
! y1 F7 D7 D! Q0 [! @. | D3DXMATRIX matTemp;3 O+ O) E6 ~& d1 Q' [
static const float CONS_VAL = 3.1415926f / 180.f;/ z8 N1 k5 ?" ?( W( f
0 c, G" _; a* p$ h6 e1 } D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
& ]- N) T. C, W1 H+ } D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
6 z3 h; Y7 `5 i: y% X6 C pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 d& \" H& `8 C pLight->Appear( m_pd3dDevice, TRUE );0 l! _8 r( C& h0 z* Q* ?0 D/ g
; O- Y; o3 [# }- z9 ?' ~6 N) [
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 Q5 \) n" R! j8 h+ _, l
// D3DXVec3Normalize(&(vecSun),&(vecSun));
; t- F3 V; p% C // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); # H/ N3 H2 S$ c0 t& Q- m+ |5 K0 z6 r: |
7 |* k% [4 [8 S' N9 T
DWORD dwR, dwG, dwB;
* _5 D- ?# [6 N dwR = (DWORD)( pLight->Ambient.r * 255 );: a" L6 l: {6 \/ w* }
dwG = (DWORD)( pLight->Ambient.g * 255 );4 m' v- ]. g5 c; }! N3 K
dwB = (DWORD)( pLight->Ambient.b * 255 );1 H5 U/ J9 d! p) ~" `2 v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ! I5 x8 X1 ]: Z+ w$ D; k! ~
}3 r& y# @% @4 o
}* `3 T2 f1 ?' ?# @
4 Y3 o+ s6 f. [4 e* W
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );8 s8 x. I1 B7 D- ?8 A" {* ~, Y
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) );( O2 h. f8 K6 {% j* @1 y
::SetLight( bLight );
7 {1 }* G- X2 Q6 ?( o& x' b( t6 _. V+ ?
// ±ao? ?D?í???ó á¤à? " ]! J5 e% R7 o5 X/ w% J1 n/ n
m_pd3dDevice->SetMaterial( &m_baseMaterial );
, x( Y+ S0 @5 |1 j, h
/ ~# l& n# h! R: P' j' z#endif // not WORLDSERVER8 \# I! ]& a, h! | Z y
}
7 d2 n' s9 f. B; o3 \并更换 l& @6 W1 E$ q8 n: @* N3 U# l
Code:
- Y3 c, `0 }! U, ?6 A# X+ ^__FLYFF_INITPAGE_EXT7 ?- o- o/ x, P1 H. B
定义
9 i. {6 X9 Z$ `3 e% E! t
# ~# j' [! ^7 y7 w1 F) S/ r: R1 {) k- a( V7 v8 x) ^
- T) y7 d8 j% S2 N; y$ k5 A' \
7 U3 v# W$ p/ |3 I9 Z5 l现在终于删除我的狗屁加速...
4 l9 G0 _1 }! X' l- d' B5 z6 |& R X4 y3 Z% l C, `& ^
' O, g. e/ W/ U0 a
5 C% A1 o6 b9 _6 Z: `% Q |
|