|
|
食品车:
6 I: g0 t- N# h% V尾翼:
7 z6 n9 c- H& d4 n1 A6 m" g& U
代码:' t* k0 c" w1 r# p* S
CWndAutoFood::CWndAutoFood()( W7 x3 M+ C$ E- h. y5 m
{
( |) h; }7 E, h, v3 U: |* } m_pItemElem = NULL;
9 h1 W) U* b& Z; c, g$ @ m_pTexture = NULL;: ?) z2 `3 r! u- K o# D3 A% T. r
bStart = FALSE;" G/ q. ^, b# P8 T. i
}8 [; ]4 T- Y P$ I
! S, S$ c$ s6 K& }7 l0 i6 j# [
CWndAutoFood::~CWndAutoFood()
, h' _+ ^0 ]& ?+ K1 F) [{
# n9 [1 }; Q1 K x: N. r0 ^% N# H7 Y AfxMessageBox( "AutoFood ist gestorben " );9 }% W. X* P# [) v" O
}* O, D. B" N; v" E s- r3 Q: V, X v
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
5 J4 l% j. O9 b) J& m, v8 V{0 J1 V( n( R- M& _0 D) ?* \
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );( k% D/ c& S( I7 n" A a
}
; l$ `+ P) O% c8 O. o v7 X1 q9 g! A7 m* o; x8 e. k# w
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )5 F) z2 X2 ^5 V: y; ^
{
9 a' t8 Q1 F4 r/ s# W% Z. W LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
5 D) K+ L( o/ ?/ y CRect rect = pWndCtrl->rect;
' S8 ]; j, r# W3 `, x( [5 ` if( rect && rect.PtInRect( point ) )
. x! w. q7 Z5 u3 P4 p- z {
, D3 w) y, F' F$ F7 |. d' g9 x CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
; W' q) E( G7 L% v z6 s( U if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )( J) {: J7 F' W$ v0 ?9 G2 Q
{
; D% N' o. p* M; j1 [) e2 q9 `; d if( m_pItemElem )
3 T, z) d' C1 m {7 P& k- k$ z- r# r
m_pItemElem = NULL;
7 Y b# x9 a/ w& G }
3 f* j" ] ^' L m_pItemElem = pItemElem;
- Z! H/ n) Q7 g! s4 W m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
% S2 e6 [2 Z' `3 l }else{! P4 ]/ d7 T6 x; H
SetForbid( TRUE );
3 R) m6 c# ?* u( u: }& `2 l& A }. L5 i3 l; ?7 ~, K
}else{, ?% A' B: U( k7 a
SetForbid( TRUE );
7 b% u) Z* U; b3 X* z) a5 ? }, P2 c+ d# t. k
return TRUE;; J* g' R: [9 X+ L
}
, l" S2 a; R1 Q' K# ~( k8 j* @; o- {
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )1 X$ B7 I& v; O! T, P% H
{
; v3 X0 v' h7 I! q( \ switch( nID )" O3 e# y1 l$ I5 u
{
) {! L+ s# D( j1 Y' H case WIDC_BUTTON3:8 ^6 f8 g5 u$ I* j
{( w% n7 f8 g7 z& ]8 M H3 S
bStart = TRUE;
% g1 t! Q( R e) ~" k m break;4 z5 t9 ]. v( }! u9 h0 X/ x
}' N% }5 I3 D, k1 l3 d9 G
case WIDC_BUTTON4:0 ~- A; P* ?1 l4 r& I
{
, ]. \1 w0 }" a+ m9 M bStart = FALSE;+ [- \$ C3 c E5 H. M0 i' Q8 S+ O
break;. ^" v8 s( k! K" r2 Q
}" ?/ U; _4 |/ m/ ^6 k$ V( B
}
- E9 M& f1 X. j; _" D return CWndNeuz::OnChildNotify( message, nID, pLResult );1 Y0 z( C: A$ S% b
}
9 {, G0 ^ V+ _7 [void CWndAutoFood::OnDraw( C2DRender* p2DRender )$ p, ~% [4 Z M
{# y) y0 H9 F+ |6 |+ ], r# H
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
# m( h" O* c' ?/ o$ h7 v* X1 E3 @- P if( bStart || !m_pItemElem )0 x- `- q' O5 W% s
{
& F6 F! X$ T+ S# P/ J# p( X pBtn->EnableWindow( FALSE );
9 `: T5 v9 w( l0 C0 d5 E }else
& _' F" G5 E' ^# M' X# [9 I pBtn->EnableWindow( TRUE );
8 J7 _1 R# n: Z if( m_pTexture )$ p; v; |. V; Q8 B- | J0 h/ O
{( i; F. f; ]/ O. [* D
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );& ~3 z) l6 f! T9 H& a% T5 w
if( wndCtrl && wndCtrl->rect )( B5 E) l3 ^5 g4 S
{8 M" Z3 Q6 H' f. F8 o. l% }8 i, f6 G
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );; T7 ^8 D0 S [; S6 k; H
}8 v5 r; G: E! R$ Y* @! ]# I8 ~
}+ f: r) d1 P, @$ e9 y
}6 T9 }3 ^2 R, h6 A; l5 z
" h3 J+ ?9 v5 ~8 r8 }+ @1 JBOOL CWndAutoFood: rocess()( e$ W, {8 T) T9 L% q: t, d
{
+ Z o O2 d* D6 k if( bStart )$ @. x; [8 N& F% T9 u" C
{0 {* _0 a& ]9 V
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
+ E1 ~) P f- V {
! H/ w3 v# n0 N* J+ M if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )+ W) a9 W! \1 r( l M: R5 Q8 M
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );% k: z2 d, l7 R$ f
}else{
! ^3 p1 o: k# u* v bStart = FALSE;+ p+ M7 m6 C: f2 M+ j1 W
m_pItemElem = NULL;
" o% x5 W4 U3 S* m+ v, E }
& r3 v3 }9 \; i M5 W" E }
- J3 B! S+ O' E y return TRUE;. P6 F$ P \( E" l d& r4 ?
}% Q% l) B x' x
2 {3 L0 l: m4 J O; m1 E& f
登录视频废话:& |6 }' H4 X# K
尾翼:
& M5 Q7 r7 \7 Z3 m: i* G. M) O! v8 Z0 D. p1 ~) C* @; ^. i
代码:# \. R$ l! V" m8 Q* @
; W: \: X' M3 W, S% c! w4 x
void CWorld::SetLight( BOOL bLight )' A& I8 E8 x6 Q( e- }5 F
durch: C0 F( D- a, j% w6 p4 q8 S$ m' a
Code:
/ M: l% I& h( I) D ~. J+ Gvoid CWorld::SetLight( BOOL bLight )
$ m3 o3 N" B; s* _! d* y4 m{+ T* J6 L7 k/ f9 v5 J2 j
//ACE("SetLight %d \n", bLight);' P) Y+ Q) R2 ~, s9 }
9 A! b! j7 m" `! f( Y. L5 v* M4 v/ R( N
#ifndef __WORLDSERVER
( x: G# c9 s& W, J$ }! |$ a7 f6 v DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
. A7 p; z7 m1 o0 B( k3 `: C CLight* pLight = NULL;
6 }, b% ?- i- L9 T) B# }5 ^3 n% ?2 r5 x3 T. x* T
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
1 b9 `: O- O* {7 O, J
9 u# e% Z7 \8 C, a* j* w3 U pLight = GetLight( "direction" );
8 b# W- G* M5 E t; i/ V1 |7 A: R4 e; e' U% }
#if __VER >= 15 // __BS_CHANGING_ENVIR
6 D6 s7 m! C1 ` if( g_pPlayer ){! E5 z$ D- w- \7 N# \: [
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
/ @: P8 G7 H, x* g6 Y% z if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
+ G3 g* Z! ?# l2 f' l4 k" T: q& Z2 u {
2 F7 O( {0 D1 ^5 y if( pLight )' q3 p6 Z& f2 W6 p/ f, }
{2 r- V4 t4 {9 o6 `2 J; X$ _7 _
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
& D& T( W6 A( U1 }9 R5 _7 r pLight->Ambient.g = pInfo->_fAmbient[ 1 ];& m6 L: I7 _5 }3 m) A
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
- h6 C5 \2 ~3 n5 Q4 j- L: f
$ D+ H1 N! m3 m4 r pLight->Specular.r = 2.0f;
1 k' u% V+ r# S, T: w& }( S( P pLight->Specular.g = 2.0f;1 i9 ^6 p- o0 \) Q
pLight->Specular.b = 2.0f;* C, k2 ?+ \% x' k2 [& d* o" g' ]- @
0 _" d9 b1 A$ Y( n4 T
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
' I* T& @4 t5 R% \7 u pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 x- I/ y0 O+ r; e$ y( I! P. Z pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
- ^/ W& S6 n: O& u* Z1 Q 1 Y* H$ J6 P, j( {
HookUpdateLight( pLight );
2 D& j7 H3 y* c- A) U8 `3 M
* p, E- O; F# }$ g! H memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 ^" j0 B E8 ]3 X) i- [
( N8 i$ J, z" O# E' o( m1 f* h! F) v pLight->Diffuse.r *= 1.2f;
2 F1 x) C+ \. N+ c pLight->Diffuse.g *= 1.2f;
7 P! w. [' |& H, E, c7 I: X+ N# u pLight->Diffuse.b *= 1.2f;, m2 h, j g8 o3 A: _2 `
8 t# Q7 v# c6 d0 f$ C- H7 \
pLight->Ambient.r *= 0.8f;
1 A' u: ^0 a1 u1 L# n pLight->Ambient.g *= 0.8f;
% z1 [* a( y0 W9 C: Q1 W% P pLight->Ambient.b *= 0.8f;
0 B) J* F5 K# y+ o0 N8 h% Q 7 v7 Y. x, R2 O. H/ L$ u h
memcpy( &m_light, pLight, sizeof( m_light ) );
4 g, P4 J9 W7 o# t s W& S
4 M9 ~# u) h, m3 f D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ O+ W& _3 V1 o4 u D3DXVec3Normalize(&(vecSun),&(vecSun));8 m6 S' Q- F" S, a. S3 Q
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 U0 |" g; U$ P" f6 w
pLight->Appear( m_pd3dDevice, TRUE );/ u; ]' r3 P8 m; p9 q3 L L
* k) @- q1 Q I& }$ H DWORD dwR, dwG, dwB;
0 s( B! X' J9 F& j! [1 u; k dwR = (DWORD)( pLight->Ambient.r * 255 );
( u( V6 |' X, f H, r4 T' { dwG = (DWORD)( pLight->Ambient.g * 255 );% H3 ^: V8 A# p: j2 M( I
dwB = (DWORD)( pLight->Ambient.b * 255 );
* _$ `9 [- k7 {" m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# Z1 w% {' m% k( _( g
}/ w( v2 j0 Q* C, e: s- z4 t$ e
}$ m+ h- N* \* \* A4 ^- v0 ?& a
}7 r# p0 n- m8 F% ?- m- \& [( d
else2 O7 T! |' N1 T. V+ O1 u7 ~9 c
#endif
/ d* Y# G( Z8 h2 k6 w- H
4 T2 V2 k. G3 ~. } if( m_bIsIndoor )) c0 U$ F9 q& \) I, X' J; l
{
* T" w, d4 u# W$ Y, ~; T3 J, m- ^2 c if( pLight )% d5 K }4 h# ~1 h. D8 d6 q8 S
{ % d3 s5 u7 D- {7 x. u$ s
// à??μ oˉè* - B3 d( `# I: N; S! z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
& p2 ^, D5 {5 o- I1 \5 A6 z& H0 X pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;; i9 M, u* Z9 Y6 H( C
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;$ p* W8 n9 H# y8 t: \; {& Q
4 }" t$ w# g8 \; h4 E4 @ // oˉè* ??à? 7 L6 e Z6 U" [
pLight->Specular.r = 1.0f;
. Z: V# r6 }' {4 ?2 T2 K2 } pLight->Specular.g = 1.0f;3 ~7 G2 ~- v+ v8 h
pLight->Specular.b = 1.0f;" F) @; N# r; \& n0 S
// àü?? oˉè*
5 J! Q7 T8 `8 k( @ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
$ K7 f) f- e% ~. s pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;2 i% k: f2 c! d, y: F2 `
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;7 _2 ~; w- B- h$ O9 t4 e8 ?9 C
& S# n, s2 W: R9 `! d. Q' K0 @: O if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- D7 ?/ B5 u# t9 ]: S6 G {
6 m- m; U' s) R8 z. r pLight->Diffuse.r *= 0.6f;+ c. z3 U: r; n& R9 R+ C
pLight->Diffuse.g *= 0.6f;
( e" h' C2 n" T& O; ^# U pLight->Diffuse.b *= 0.6f;( N# \7 N, y' Q; v7 a6 V
pLight->Ambient.r *= 0.7f;
' O, U( B) I) Z" W, P pLight->Ambient.g *= 0.7f;) O! F+ u* t3 k+ q+ b* }
pLight->Ambient.b *= 0.7f;6 Y, B9 I" ?- k) m7 K
}
2 }( b; }; i% c" f" g
8 ~! v* b4 ^9 V5 o4 ?7 B#if __VER >= 15 // __BS_CHANGING_ENVIR4 I- o) N' ~* u7 L6 F q
if( g_pPlayer )
( w% ?9 @# V- o2 e HookUpdateLight( pLight );, x8 x3 W( s9 [9 ]0 r5 s
#endif
* t! d6 ]0 p5 F. w7 W2 K) ~. h4 i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 S$ e' t. v4 o
" T$ q, X* v. M3 g# S6 h$ F9 m pLight->Diffuse.r += 0.1f;+ z. w* P. e; M4 K3 L. K
pLight->Diffuse.g += 0.1f;
; {8 C9 s) B+ Z pLight->Diffuse.b += 0.1f;- G# B# @1 s6 \/ _; R F |
// oˉè* ??à?
. B- D" }0 e- E' i- m pLight->Specular.r = 2.0f;
# H; L( B. F0 w0 t' Y( |! M8 p/ n8 ? pLight->Specular.g = 2.0f;/ u6 E* w( Y) ]# Y# p
pLight->Specular.b = 2.0f;( z1 k- f4 h5 L
// á?oˉ
$ S8 }) B2 O7 e/ t pLight->Ambient.r *= 0.9f;
; ^7 L: h8 S9 E+ v( y! r pLight->Ambient.g *= 0.9f;
+ _ p1 b, B/ B8 I# ] pLight->Ambient.b *= 0.9f;
3 k) I0 V c! v+ e9 {! z. t5 D
% ]8 B( r7 ^) @4 G" \ memcpy( &m_light, pLight, sizeof( m_light ) );9 m: G. c& \2 l& [+ T( N' F
0 J+ O7 _6 s# u
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 F3 u) m# |4 z/ ]
pLight->Appear( m_pd3dDevice, TRUE );+ L" g P% G* v0 h5 m7 W
% N( l6 J1 ~) F& q4 T' ~- \ DWORD dwR, dwG, dwB;5 }, R) b C3 N% A5 o" D
dwR = (DWORD)( pLight->Ambient.r * 255 );
4 [" g. }9 z. G% z dwG = (DWORD)( pLight->Ambient.g * 255 );
( c+ B% h8 Z Q9 k! e dwB = (DWORD)( pLight->Ambient.b * 255 );8 e7 R+ G |/ ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. Q8 k" W; L: P6 R7 h1 c }' [$ k1 z( A: ?+ W& S& v/ _
}
! n3 U& @, P. a6 [3 A2 y else: ^1 K$ {( S5 M6 e) A: y
{8 P6 {/ {+ t* l) ?! z5 l4 L' k
if( pLight )( A. W3 w8 s3 g; L% k8 ]5 _
{
3 `& x' [3 @3 X* N# T/ i
* X# Z, y$ N' T9 ^/ x7 E# L- f; z int nHour = 8, nMin = 0;
/ H% L8 T8 b; ~0 a3 F! q #ifdef __CLIENT! }9 G. g5 N6 O4 Z
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. : `6 w! J; v4 B) ?/ e0 m, E6 v
nHour = g_GameTimer.m_nHour;
0 u+ N3 x7 R% r! ` nMin = g_GameTimer.m_nMin ;
, U' X2 O& F2 a( C$ x( H4 U8 {; g) V #else# w/ e' u+ K) S, B; `7 B3 _0 s9 \
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.& q% K( a# h) b v( x
if( m_nLightType == 1 )
' x3 d) e9 b3 @ nHour = m_nLightHour;1 j }0 j/ U! r b8 n/ @) z0 P
#endif
' r( P" O* E+ G) R nHour--;
7 Q6 x8 Q# ]9 {9 | if( nHour < 0 ) nHour = 0;: U2 k8 x: k1 f, G
if( nHour > 23 ) nHour = 23;
* W" z+ I3 y. T& }$ Q( _" r6 y) y& X; S, m
//if( m_bFixedHour ): a3 x/ F; y* e4 ` [
// nHour = m_nFixedHour, nMin = 0;
: V9 u- L5 @, ^: @% N1 a: C3 f f- M LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
+ L5 ~6 h) I9 j1 ]) p {0 I9 q LIGHTCOLOR lightColor = m_k24Light[ nHour ];4 {, ]& _0 G7 m' S9 e
/ X- z S, V" v* D' G. z" d, k) O //m_lightColor = lightColorPrv;
# n" q) e+ w: }4 ] D$ z1 u lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
5 y4 h; y4 e+ b( C) t7 L5 k lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
0 ]5 M5 l5 U; E6 P. q# v lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
% W. X+ E1 W/ W/ {8 C lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;4 ]! v) O7 A* ?1 j& Z
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
% ^+ I' {8 o6 P' ^7 K1 m lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;$ u" d! c/ A& d1 @% n3 I: M* r
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
. a( d5 z( p) t% P
! B7 { l4 t9 _) j // à??μ oˉè* ) V2 \. B9 Q H5 q7 k" |$ b
pLight->Diffuse.r = lightColorPrv.r1;* v8 I l+ \) M
pLight->Diffuse.g = lightColorPrv.g1;6 t' {" B" o4 {' T, j6 T- g
pLight->Diffuse.b = lightColorPrv.b1;2 O% X5 m! c9 `, j( R* }
// oˉè* ??à? 8 W- e( L; W8 C% K! a+ Z5 @. j4 ?
pLight->Specular.r = 1.0f;
8 U8 P9 M; @: C1 a pLight->Specular.g = 1.0f;6 ~# w/ V6 W/ M7 S1 Z3 r4 b
pLight->Specular.b = 1.0f;
/ C/ {7 F6 K$ g // àü?? oˉè* , h+ z" N. u, s: C5 Z
pLight->Ambient.r = lightColorPrv.r2;# _7 n$ ]0 S( P0 ]# U6 l' c* K
pLight->Ambient.g = lightColorPrv.g2;5 y, ^1 t1 K' E0 i. i2 Q+ m$ w0 @
pLight->Ambient.b = lightColorPrv.b2;( b# U* M% R7 v q
" E) m) h! K# r3 X2 }( W8 L' l
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 L& v( m' b& e- F$ |& w {
: e3 \7 j: s; d pLight->Diffuse.r *= 0.6f;
& Y) ~1 h9 ?, j1 Y9 { pLight->Diffuse.g *= 0.6f;
% d! M& V4 w$ N( S7 Q: y pLight->Diffuse.b *= 0.6f;
/ o. O4 A( L* ?3 j& g q pLight->Ambient.r *= 0.7f;
$ O. B# }4 }8 L+ A& p( v pLight->Ambient.g *= 0.7f;# n) E+ d' Q" b8 x; a/ k
pLight->Ambient.b *= 0.7f;/ u5 d9 {+ v- w8 {
}) v$ t) }1 K& Z3 f
) n0 m/ |! x1 p" {# X( N
#if __VER >= 15 // __BS_CHANGING_ENVIR
T; B/ f+ q) M1 @3 F! g if( g_pPlayer )& ?, x Q+ R, ~$ H
HookUpdateLight( pLight );
6 Q4 R; r6 T5 b# g+ x c4 ?#endif1 T/ G9 ~7 ]6 {
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- j( `7 i* k) c1 \9 G4 m% V; F9 X! C
6 J$ x- p6 M. B T7 A3 @#ifdef __YENV, o% k _: R0 {! F8 `2 A% T
pLight->Diffuse.r *= 1.1f;
, ` l* N3 B" n9 K6 { pLight->Diffuse.g *= 1.1f;
! R" S1 ?& o- y- l) X# @4 f3 S pLight->Diffuse.b *= 1.1f;
) i2 V; y, n# O+ `7 q // oˉè* ??à? 8 H- m* s8 \8 [5 ]
pLight->Specular.r = 2.0f;
9 B, h4 I4 A# D pLight->Specular.g = 2.0f;
& ]7 P- d1 Q* C6 e1 M, k; t pLight->Specular.b = 2.0f;( G+ ~" Q7 E; r0 [) s1 S* J$ l/ R+ a
// á?oˉ
# B8 K& T" x m7 V pLight->Ambient.r *= 1.0f;4 I: u4 M/ w8 c6 T l/ X
pLight->Ambient.g *= 1.0f;) L% Y' B4 P! N
pLight->Ambient.b *= 1.0f;
$ j0 Y+ V& {1 O& \1 w1 H#else //__YENV9 y+ {+ C( ?' \0 g5 k7 }. ?
pLight->Diffuse.r *= 1.1f;' O: C/ P9 L Z9 k3 R
pLight->Diffuse.g *= 1.1f;
6 k: w9 H2 X- V* m6 I# j+ c pLight->Diffuse.b *= 1.1f;
+ G$ ~2 s/ c0 C! t // oˉè* ??à? 2 k( |2 ?3 |+ e8 b$ q
pLight->Specular.r = 2.0f;9 w/ ] d% w$ V; I
pLight->Specular.g = 2.0f;
8 I/ G2 V1 R3 J1 h: m# | pLight->Specular.b = 2.0f;
4 D' [) X: q' e // á?oˉ 3 X e4 [7 G3 m# `/ X3 }
pLight->Ambient.r *= 0.9f;
3 ^1 \3 u2 A7 ?) S7 O. n; o pLight->Ambient.g *= 0.9f;( ~+ C/ A" Q) }- E# l
pLight->Ambient.b *= 0.9f;0 ] @1 p8 I, K; j
#endif //__YENV
4 e& p* t& J. d* O4 q4 ^0 k5 G , Z' u' g: S; Q) F7 i+ n3 L3 Z9 n
memcpy( &m_light, pLight, sizeof( m_light ) );9 \; N4 {8 p- A a7 P7 d
1 }& u5 [* l7 q
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);: N# }) c! P; s M
D3DXMATRIX matTemp;: D0 h5 t$ U: j7 N
static const float CONS_VAL = 3.1415926f / 180.f;
9 ^* J* I( f: {' i
1 g2 X+ e( e2 O& y, r D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
2 Y4 B! V2 K; r' n& C D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
( j4 m0 d/ t% G6 O# @8 c- V pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 |* F( r6 ~. R( w/ _) s4 K
pLight->Appear( m_pd3dDevice, TRUE );/ D* l0 v# Y+ s1 G; z
: U: t+ p" E- F% A8 {) C* p // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
( r1 W/ C/ d0 Y3 I: {. ~, F8 o // D3DXVec3Normalize(&(vecSun),&(vecSun));
. @- `+ Y. {: e% N/ r2 h // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , e8 U- b$ w+ R! X: p4 p
4 ]: ?: n5 E. U0 v4 P DWORD dwR, dwG, dwB;
" `& U; V7 r. c/ t dwR = (DWORD)( pLight->Ambient.r * 255 );
" g8 v- H. K+ K' j" O dwG = (DWORD)( pLight->Ambient.g * 255 );
7 g- a: U* E# `3 l- l4 h9 B' A dwB = (DWORD)( pLight->Ambient.b * 255 );
; l* f6 b1 m2 `. ]& o1 s dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); - h: B" N+ H+ Y9 _
}- u5 j) N% w" P. C
}
( p6 j; H, U- x% h8 a g9 o1 v2 m% P( R8 U# m8 E' v7 @
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
- Z3 z5 z6 Y- N7 W* G. 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) );6 d' u" t [5 B; X4 X
::SetLight( bLight );/ V; R1 K. U6 l4 ~
. z5 m2 L' A9 p# @ ~% c0 z // ±ao? ?D?í???ó á¤à? 0 D" d W6 e) E
m_pd3dDevice->SetMaterial( &m_baseMaterial ); W) N& D8 C! u, H
1 \/ e2 e E* }, d
#endif // not WORLDSERVER+ H' j) l" I+ U s" d1 }5 u
}
9 O+ D6 `/ I! u3 D$ j0 r$ T/ i并更换6 A! |8 q" N& a6 L3 g. z
Code:
) R5 o& e s3 c' S, B! u__FLYFF_INITPAGE_EXT
8 m( S5 e, d J" o3 s* ^定义
1 G# H) }1 J& D1 I
- }( Z2 ~! f% d$ [; H6 v* P/ W1 t* d6 _+ b1 j: x+ S4 W2 q# C
+ Z" q% k, V N4 ^- ^% r) N) R, _( a. `, ~/ M* C0 H
现在终于删除我的狗屁加速...
Q3 x( z6 Q3 j$ m6 E5 K( p( b" _
; s/ X' E4 V; j( I7 d4 ^
& Q' K! M& q* K. l. r2 S& x' Y. C2 y# ?8 j# M# z
|
|