|
|
食品车:' J5 j, s/ @% s, U
尾翼:
( _ y# |/ S8 `4 k- N/ {4 d. F/ z* O5 X% O
代码:' y3 m1 `7 D# z. T0 j) _8 B
CWndAutoFood::CWndAutoFood()
0 B6 o; l6 A8 l& S! e5 Y{3 M* Z8 D7 F& { C- v
m_pItemElem = NULL;/ @1 u7 j: W/ E/ b" _" G
m_pTexture = NULL;
, B8 ~ C0 f. I6 o0 U bStart = FALSE;
$ D- F2 j5 X, q}! ?; q+ m5 P* s/ P2 ~1 i
{" D3 o' e0 v- w
CWndAutoFood::~CWndAutoFood()
/ A* G$ v2 ~ r2 f, F; ?: ]{
# ]6 t- Y' ?7 y# W AfxMessageBox( "AutoFood ist gestorben " );- B5 E6 B! p. z+ ~) j
}
5 {7 ?" Q2 |& i5 N% Y( O6 h) L# rBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
& V6 v2 v. _( w% _5 T6 g2 `- U' {{9 g# V0 i# [# x! J4 X# l0 o7 B1 T
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
, W y0 [( T# m}# R4 q/ z! F1 t: d
; N" \" ?# H" h( M7 o- a1 \+ z2 a
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
; W8 C* Y5 Y7 v% j9 [! A{$ j& x. p0 P% P
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. ]8 a" W6 m6 x4 l3 j- g2 M- Y7 p( ` CRect rect = pWndCtrl->rect;
6 d, |6 n* a' m; ? if( rect && rect.PtInRect( point ) )
y. ^, N- Z) S( ~4 F {
, j2 m- C) w) z* n% P( K0 j CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
0 W, y( `3 b- D2 n% i. ^- r if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
: k5 ]% H4 @4 a7 i4 f {8 S, n* t, i5 j* Z0 X
if( m_pItemElem ). d! r. e# o7 h) Z+ _
{
+ i% @. R' O( v/ | m_pItemElem = NULL;5 E7 |% O$ k2 E' k& J+ _+ y
}- {( l `$ \+ J+ W% u
m_pItemElem = pItemElem;, A! }- c1 R& _, t
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );* s0 O; M9 o3 Z
}else{
# c8 a, w' V( [& s4 T! W SetForbid( TRUE );
8 I P! m q" g+ L! N }0 ^: U+ t- n* c& Y. [" I, {' u
}else{
/ i8 t% ?. N$ d; `% k% p SetForbid( TRUE );
% l: U! D; I- {9 A3 }4 U! Y6 n# v \4 W }
4 O3 ~, s( U( _' S( u return TRUE;5 w, ]% D$ B& q: N d
}
6 W4 u2 R4 l0 L! S9 A$ p* j* X4 A; T7 `. j
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )5 `) ?: |& {/ c# ?1 q' x
{
1 D% w; u; Z& X6 i, f% S switch( nID )2 N! u4 }. H& ^6 T
{
+ x( A7 r w6 o% l9 E6 |8 g( Z case WIDC_BUTTON3:
' d) M1 c6 G; k4 ^! }/ y {# V7 E& ]& K, E5 `0 J" v" s
bStart = TRUE;
: C8 V% D7 v( _% X4 S+ g break;( c" d5 A- n4 I1 Z/ K% [8 c0 q
}! ~, D$ I: H/ |5 c8 d
case WIDC_BUTTON4:
5 Z/ U7 B" g& F- U {
2 C! u q* @' E, r; r9 _ bStart = FALSE;
2 a6 x$ O4 g+ D$ m4 ^& M. n2 O break;
* V8 J* ^3 ~3 v \1 N }
( q3 G% }: E8 l. A }
) ]$ _7 l5 k( i. W return CWndNeuz::OnChildNotify( message, nID, pLResult );
( n& a/ \2 n( u: t$ c}
9 r# V+ y/ G8 n3 Gvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )& p3 c" _! ~" q2 o
{7 H. h3 M N; F0 X: \
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );! t z9 a; [/ [; l$ S
if( bStart || !m_pItemElem )8 } d8 }5 {9 B; W
{
5 y- b3 t5 D4 N7 g1 K pBtn->EnableWindow( FALSE );5 M6 ^! q; h3 K: r' i+ V5 T
}else' D3 v3 G8 }6 N/ G7 L; f
pBtn->EnableWindow( TRUE );
# l% d3 f) m' A2 N$ o Z7 s" ^ if( m_pTexture )# q- b. B |4 _$ ?# k; p4 t
{
( u/ ] i! r8 W7 e- q" u& Z/ g' a LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& ?2 Z, H+ [/ f1 {' H if( wndCtrl && wndCtrl->rect ), O9 Z- x/ `) ]
{
+ n. O4 U d) i" k# a7 W0 Z' @/ D m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );1 N/ | }6 ?4 ]$ U
}. i2 q7 f% l1 E, u7 T
}" ^' d4 ^8 E% ~1 N& d$ i- r. h
}
7 H2 v$ k: s$ g" O7 U6 F0 i
Q7 K- n; ?8 z. ~4 \0 ~ u! yBOOL CWndAutoFood: rocess()
9 e# P: ]) Y1 d7 j{
0 H- K. @8 j5 K# m( n if( bStart )7 @) D( Y& L. z% L6 _
{
2 Y3 K: m$ o$ X& ~7 X# \! A if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
# b$ B! a, z" G+ r {. C' ]/ E; d2 T4 E9 K( z, F
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )% A+ a- x7 J+ ~& E
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );1 I6 W+ v0 ]7 F. R7 K* y
}else{+ y' |- H" ^$ @6 J7 k- ^
bStart = FALSE;
; t" A) F; H9 p0 M, [. ] m_pItemElem = NULL;
, Y/ d) _' {6 @3 i) {& j }
) c$ U$ b3 Y: {8 i1 f: G2 ~- n: [ }
2 r* J6 o& }4 X0 h return TRUE;
+ l% v; M# ^5 J1 p9 Q: Q}
$ h# e* ~) Y, M$ _( g; J
) ^& \( U- X- n* ^* l* g登录视频废话:3 S C8 I, m5 S1 x7 f9 i3 u# |) s R7 r
尾翼:7 V0 l5 T, q0 b: n! L# z
9 m5 x& E6 u A代码:
% u) P7 C7 Y( g; l& x, b$ U( \, g: y- p# c& e
void CWorld::SetLight( BOOL bLight )
0 K* r, n5 O Kdurch% [7 f9 i7 ^/ N- C
Code:! r0 ]( J* \9 ~5 x
void CWorld::SetLight( BOOL bLight )
4 F( i3 i: L9 r! b: r8 I: l& s{. _) t, ~" y4 U- A- r4 ]8 ?- d
//ACE("SetLight %d \n", bLight);' M; j% W8 m& s/ e% i+ Z
& v) q% C# C8 U9 X; c9 e#ifndef __WORLDSERVER
3 O; y" @3 n5 H. S9 \ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
6 t' j0 _7 S1 f& ?6 w# A! r' } CLight* pLight = NULL; f) t9 h1 Z: v" i: B3 M. h# ~0 C
$ L1 b' e" k: o
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );7 p+ F& n4 Z! P" Z
) k1 y- h6 I w
pLight = GetLight( "direction" );
3 a/ f! J" l- R- P- s& A! g5 F. K
/ }8 K7 c9 @& c0 c: X#if __VER >= 15 // __BS_CHANGING_ENVIR
0 Y4 t, V5 E3 E if( g_pPlayer ){
; _$ c$ Y5 |) Q5 W' R; o ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
4 I) E# a# Q/ z if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !! k3 i+ F) R' W2 ~
{
: m- l0 w* ?' ~* D2 T1 ^ if( pLight )) `0 g y, R4 o* z2 a
{
' U; _! h' Q, d1 }% J/ p# Q pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
# `7 ]5 T5 l! |' p/ l pLight->Ambient.g = pInfo->_fAmbient[ 1 ];6 w/ g( c- l% K* ]1 h( J0 S( f9 l
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];% w4 B' W2 F$ K2 ~1 L9 y, H0 i
# i3 H3 M0 o+ ?& m% |7 p pLight->Specular.r = 2.0f;
' M+ _& u0 F! ]& H) m pLight->Specular.g = 2.0f;' w3 [9 U% u5 M1 l5 u
pLight->Specular.b = 2.0f;6 D; B" A0 T8 B! G9 z, C7 M
) i- ^& O6 u2 v3 r1 u/ i8 c pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];% e# Z2 b- f; q; Y: _0 l
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];* Z+ D$ w d/ H9 c4 @
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];2 Y- C* w3 d0 _% P; O& H2 A7 ]( y
+ M+ i* M( o$ o# T% K0 `2 y
HookUpdateLight( pLight ); + R! ]0 u1 _* |# P+ e8 E
7 J8 X9 X. M+ S7 }' W, x$ a3 Z- j memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 L: q$ Y3 \, T) a. g+ k( ^
6 @9 k6 E r% ~% f pLight->Diffuse.r *= 1.2f;' Y# R+ [( y1 J0 q6 j
pLight->Diffuse.g *= 1.2f;, |+ M# ?1 S) |6 S6 b+ b: X
pLight->Diffuse.b *= 1.2f;
0 j1 n5 P2 p0 w& V& P3 \% @' p* ?6 X6 V4 z* f8 i+ n B ?
pLight->Ambient.r *= 0.8f;0 C7 U4 P7 R& j4 O
pLight->Ambient.g *= 0.8f;
/ S& X# `$ Q4 y7 d pLight->Ambient.b *= 0.8f;% w. w$ V$ U0 z4 [9 Y4 O
, [8 A" C7 w# j" Y2 M# N
memcpy( &m_light, pLight, sizeof( m_light ) );
; {, ^8 `1 _9 L
) d8 l! b: R3 P; a o; [" C D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' k7 e+ I. ^! E6 Q
D3DXVec3Normalize(&(vecSun),&(vecSun));( o) E* p( j6 A% f
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); - H( e2 Q) B( G* g( D* v
pLight->Appear( m_pd3dDevice, TRUE );+ s$ U' r B* i- ?- S* {
) T0 z7 a% E. y DWORD dwR, dwG, dwB;
" d! W9 N' I) I! I dwR = (DWORD)( pLight->Ambient.r * 255 );# C7 s$ [7 a" P
dwG = (DWORD)( pLight->Ambient.g * 255 );
" a6 G: b4 F9 M) t dwB = (DWORD)( pLight->Ambient.b * 255 );
9 b' l7 ? a, F/ y7 I) f3 \ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );1 Z+ q7 {9 `% _' w T5 ~' u7 D, b! w7 ~7 @
}' U9 M) V: h/ _, G4 K* h
}
5 M( h! P7 h3 n+ t4 }# } }
. g U6 @7 o( H e* o else
! i- s1 p. W% r4 j+ _#endif % x, Z( ~7 ~5 ?% \* q
( y# R" A8 f# ^- q- | if( m_bIsIndoor ): u- f1 J( Y4 G
{/ u* B4 g/ z6 K+ @: }
if( pLight )
, P/ y$ U% T. ] I7 T L { / R/ K7 H% }, v7 A
// à??μ oˉè*
# ~' E9 ]" n6 ]2 h9 f" I# _+ \7 o( F pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
- q9 m: O N& } {3 P h pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;% o' @3 r. K# g# J
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
6 U6 U( ^3 H, C$ b% l/ }( A
$ a% e6 A$ y. r F/ v# o/ s // oˉè* ??à?
8 O \# c. h: S, k. { pLight->Specular.r = 1.0f;
3 _0 k7 D: d. A! ^% E# t3 p, } pLight->Specular.g = 1.0f;* l* l# n: X' i& _6 @6 _
pLight->Specular.b = 1.0f; G% N. q7 j; |0 F
// àü?? oˉè*
3 t/ P B/ H7 f h) ^ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;7 H) y" E) w, S8 M3 k
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ [5 N3 G) b- n: S" D( v8 U+ M e
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 l- K9 D, j L1 F2 P$ j) C2 J: J
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, ]5 a2 C, o3 j1 [! Y {
8 |' c y% ?# [6 C+ y pLight->Diffuse.r *= 0.6f;
5 G6 c5 L" C% [+ m pLight->Diffuse.g *= 0.6f;( A" g* @% A; J# T, G0 ]8 ?) b
pLight->Diffuse.b *= 0.6f;
" ?# b* g3 ?! y pLight->Ambient.r *= 0.7f;
. Z, f6 f, F6 h. x2 |6 r pLight->Ambient.g *= 0.7f;
* {$ }- _1 ?: G7 C3 T+ p7 j pLight->Ambient.b *= 0.7f;7 N* i4 B" p8 T8 a
}
- @( T B- Y9 c; g
4 ^0 A1 I! y" X1 R- d8 I% S! ]5 i% @#if __VER >= 15 // __BS_CHANGING_ENVIR5 e$ y/ }9 ~3 v% d" D
if( g_pPlayer )
- P6 P9 e- ~ ]& X2 M$ ?$ |/ F HookUpdateLight( pLight );
* P. n2 d9 o& M. D#endif
8 Q$ N1 b, G( z" D7 w; N memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 R. ^9 A, v: f, s- w6 r$ @! e. v6 o0 z! I6 G, w; k
pLight->Diffuse.r += 0.1f;
4 j: o$ I D& b) b pLight->Diffuse.g += 0.1f;
# [$ m2 Q% d, E pLight->Diffuse.b += 0.1f;
9 t, O- Y. o4 \1 h // oˉè* ??à?
# T" y/ b# |1 t0 J4 X pLight->Specular.r = 2.0f;
g1 |! S5 a0 x3 r7 q, C pLight->Specular.g = 2.0f;
# ^; w) Z6 }" N+ r' E; P! p' ] pLight->Specular.b = 2.0f;
! |8 M8 x2 P/ ^1 i) Z2 b& Q // á?oˉ
" T5 j( d- V, Q! C: p& c& r' q! C+ z pLight->Ambient.r *= 0.9f;0 ]+ a% i. l* v: P
pLight->Ambient.g *= 0.9f;* f# C1 c( _/ g4 `4 o
pLight->Ambient.b *= 0.9f;
# a0 T+ E: G* w) i6 h, g, Y' Q
& R1 l1 X) d, e* @% o( U memcpy( &m_light, pLight, sizeof( m_light ) );! ]' [+ K+ D. B5 ^) h4 c
) M" U( o' }+ |$ C/ N* V pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );# X7 Q6 R; c# f; `) `4 K- N3 k, T
pLight->Appear( m_pd3dDevice, TRUE );
; C0 u$ v( \3 i2 ?$ c0 i: Y
; n: E0 i2 u6 B% X' a% S8 ? DWORD dwR, dwG, dwB;0 }9 |0 j0 P" D: L, ^* U
dwR = (DWORD)( pLight->Ambient.r * 255 );
" r% O1 x$ ^% w; n( Z/ c2 v* z1 [4 W dwG = (DWORD)( pLight->Ambient.g * 255 );: s$ e& L, g9 f' @
dwB = (DWORD)( pLight->Ambient.b * 255 );- W3 c2 J; {" x/ \3 ]$ Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% |/ I" G1 a/ n1 Y0 }
}/ C+ x# h& Q2 S; L
}
$ O( x. D X+ k# `% k3 w else
& h& H- y: k( M; D- _+ k {
+ q& v/ _4 t7 ~8 |; `0 v if( pLight )
" R3 b7 j V7 t$ F" L7 c. Y1 D { `9 P) R+ f1 J, P: W, `( d
+ K# T. ~) ]2 }- r4 F: J& }9 I int nHour = 8, nMin = 0;4 @8 y. h+ p: O) m
#ifdef __CLIENT
) ?8 k' T# a; X7 ] // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 0 w. G# J+ I- b e0 j: `5 Z
nHour = g_GameTimer.m_nHour;8 ?7 C$ [! q6 L% r3 I; J$ n
nMin = g_GameTimer.m_nMin ;2 q- i" m- `% m* Y9 h/ X0 ? ~
#else0 r/ Z( ?* n$ B3 h! y+ ~9 C5 K
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.7 o4 U; a) _" v
if( m_nLightType == 1 )" I6 X4 D9 s; D' s
nHour = m_nLightHour;
8 y5 s. A' b+ z4 ?1 e) S9 V #endif
8 }4 a3 u# @, k! Z! f# r8 G7 ? nHour--;
+ A6 {$ C- j4 \! V" o z4 ^ if( nHour < 0 ) nHour = 0;
3 f( A1 Y$ w2 E# y2 Q) _ if( nHour > 23 ) nHour = 23;
4 u: G1 s" V- T! i2 x" l6 z) o5 D# q; i1 z$ {( p
//if( m_bFixedHour )
! f H1 F9 F6 M, u* H3 E$ Z* R. ~ // nHour = m_nFixedHour, nMin = 0;3 G1 [% f8 K3 L* j1 J! n# Y% e2 O
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
( d. y9 ^. o3 c LIGHTCOLOR lightColor = m_k24Light[ nHour ];
% `& A) \6 T/ O# X' O# I- o' U5 n; l2 @+ G4 C! N
//m_lightColor = lightColorPrv;
% y1 b6 z. u) l' K4 k, U lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;* A) U3 O# \; d5 q8 f7 s1 I) i
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;( M0 T1 R' d+ y
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
$ G2 Y" H4 M9 F" i5 y9 D/ F lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;0 N1 W5 P3 g. x) G0 S. `
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;! T: D8 W& A0 F# U+ j8 m
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
x0 M z& V4 p! V A // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)9 n/ n9 j# ~, T5 m, ^. ], h
2 B' u/ i0 _. U* Z& O/ }
// à??μ oˉè*
& z9 H/ c: C" p. B- |$ C pLight->Diffuse.r = lightColorPrv.r1;! ?, U* n d' I7 s' G2 E) ^4 f
pLight->Diffuse.g = lightColorPrv.g1;' \- M9 x$ X t2 U! ~
pLight->Diffuse.b = lightColorPrv.b1;
6 d6 K/ v3 i! Q* E1 x! d# V // oˉè* ??à? ' `' n: q7 W. z4 S/ u4 \! K( h
pLight->Specular.r = 1.0f;
" @% n3 e" Z( D6 u; [7 F& \+ @ pLight->Specular.g = 1.0f;
5 k P4 e( ~. D' K7 U0 E pLight->Specular.b = 1.0f;
8 ?# I2 L8 X+ @; ~: g7 \5 m1 t$ K+ y // àü?? oˉè*
+ c0 ~* Z$ \8 }; |2 z$ C pLight->Ambient.r = lightColorPrv.r2;# D- ~# c( m+ t3 J) W) k
pLight->Ambient.g = lightColorPrv.g2;
( M: s1 `+ f( F. S L pLight->Ambient.b = lightColorPrv.b2;
5 T' d$ h; f; ?% A; M, q( ]" L# n0 d1 _3 X& r* n; a
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" Y, `# y, X* i9 p9 l {
: r: u) S8 P4 S5 N \ pLight->Diffuse.r *= 0.6f;
7 ]+ S4 M* g; }$ W' s pLight->Diffuse.g *= 0.6f;4 V- }' h# @' A' I% a g+ {
pLight->Diffuse.b *= 0.6f;& |3 k+ e, a9 m( E8 n4 r8 R' l2 {4 t. y
pLight->Ambient.r *= 0.7f;! ?5 Z: n/ r. Z# E4 k: P
pLight->Ambient.g *= 0.7f;6 w4 p+ ~9 S: `* O7 S |
pLight->Ambient.b *= 0.7f;
: D8 {2 B9 A! \$ F6 }- A }
- M' ? z' C: z& G. f c0 j+ l; g9 [6 l8 Q
#if __VER >= 15 // __BS_CHANGING_ENVIR5 r$ h7 m% J9 L6 C4 Z5 `* T
if( g_pPlayer )
3 K7 t: r2 e% k" t HookUpdateLight( pLight );
( B$ u/ L2 ]5 ~4 o#endif
" p0 l4 u( ]* [4 u% i( k2 j memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, |5 _& w% ^7 m4 {' J+ D
% h ^0 C! I2 s j! X0 d/ w9 Z#ifdef __YENV& S! S& y3 t8 |. S9 U6 T L
pLight->Diffuse.r *= 1.1f;
' d- {9 k) Y: D0 C% F2 G1 \ pLight->Diffuse.g *= 1.1f;
+ d8 G1 R, P9 z! Y K* e3 G( k pLight->Diffuse.b *= 1.1f;! T6 ]4 q- p7 |
// oˉè* ??à?
3 x3 T3 X9 O# ` G/ t0 a _8 P0 b pLight->Specular.r = 2.0f;
6 ~( u# }: N4 q! [ pLight->Specular.g = 2.0f;
2 S' j, N$ h' w pLight->Specular.b = 2.0f;- G2 S* k |" V* e
// á?oˉ ! I% l7 x, N% c
pLight->Ambient.r *= 1.0f;/ D3 _1 D1 d# r
pLight->Ambient.g *= 1.0f;
5 j, K. |0 M3 i$ b; A pLight->Ambient.b *= 1.0f;" M% m! T5 W) i
#else //__YENV
- U/ Q8 c2 C3 `) @ pLight->Diffuse.r *= 1.1f;1 a. w2 {8 P! G( z, [
pLight->Diffuse.g *= 1.1f;3 h, n" e5 Q( ]0 ^
pLight->Diffuse.b *= 1.1f;1 @' F- Q3 ], J
// oˉè* ??à? 3 J0 r0 l* D' G% w2 s
pLight->Specular.r = 2.0f;
6 i4 p5 [ ?" D: i! \% \ pLight->Specular.g = 2.0f;
' p1 w k$ }4 x5 q; ?5 ` pLight->Specular.b = 2.0f;
" i. N2 b" R3 ^, A$ Y5 P // á?oˉ
]$ S- F9 h! ^1 {1 \) Z' z pLight->Ambient.r *= 0.9f;
h3 \% [1 t$ ?% V3 {' j pLight->Ambient.g *= 0.9f;5 g1 G" J4 U' {% m3 b
pLight->Ambient.b *= 0.9f;9 L& @ {( ~" N& U2 Z+ c0 n' p
#endif //__YENV
" F% X% E, M5 `
+ f8 F8 L9 Y: O# B memcpy( &m_light, pLight, sizeof( m_light ) );
2 L+ P7 c o; E3 _( ^. A
7 m7 w E4 d3 C5 E/ n D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
) I+ V/ ]* }; W D3DXMATRIX matTemp;
2 K; k% |8 \% w, Q4 t2 L static const float CONS_VAL = 3.1415926f / 180.f;
$ s8 o, l9 |) t! Y$ e% a$ ]+ l: X; G! ]8 w8 ]- P
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL); A( [4 f9 b( v6 Y( A$ i7 {
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
, B3 m3 X, k9 e* e _ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
2 y8 H0 m+ m/ l' N, c pLight->Appear( m_pd3dDevice, TRUE );
! `$ e5 D5 h' g0 p8 C3 r: e4 f" k8 E& |/ k; _0 y4 i
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" i# c" z4 j4 K l0 H, J7 B
// D3DXVec3Normalize(&(vecSun),&(vecSun));: H- y- X/ ]; H, ]
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* P' k0 K' @. a$ x0 n X
6 l5 G! U$ k! E5 B, R1 N: j DWORD dwR, dwG, dwB;
6 |# i& B8 r4 y; L0 D dwR = (DWORD)( pLight->Ambient.r * 255 );5 F) e9 d9 g+ S8 W
dwG = (DWORD)( pLight->Ambient.g * 255 );3 X" D2 [8 `( u$ ?! V, Z' {
dwB = (DWORD)( pLight->Ambient.b * 255 );, J: n; |/ b1 @. F
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ! Z2 c B [ z' S; z
}% J1 p1 y {9 N0 R Z" H
}6 B4 N7 ]) ~, A& @4 N2 E1 v& q
% }+ W0 n5 s. q6 k- W3 }( D
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );) R' u9 L0 N. T1 i9 |
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) );
) n5 k, u7 x, g' K" Z ::SetLight( bLight );
! f' E. A" T8 r# {' j/ H2 H) K9 T% h9 E* A0 f
// ±ao? ?D?í???ó á¤à? * }5 O2 M6 F4 u3 Y6 n& q' r( o% x, d
m_pd3dDevice->SetMaterial( &m_baseMaterial );- L7 [6 z3 |8 T& j6 A
' W' y5 ]( h2 t#endif // not WORLDSERVER
4 B3 b; u. Z; x, Q: f}
9 |" q! q4 m3 E3 f) S) i0 w0 M并更换
$ L" n; [0 V5 d" T0 U r0 _; q( CCode:
' ^( Q, H9 O: @1 c7 v0 d__FLYFF_INITPAGE_EXT
6 D- o* ^7 r% @* w! J) g定义! ]2 w+ |, ~9 W1 ]6 o. g; P4 u
& [ s% j4 r2 b$ K
& m# {1 T1 Y( A8 U
1 C% }9 ?* Z2 E# V) g) J% W
% S8 ~- ]+ e+ a- B, y( ~
现在终于删除我的狗屁加速...3 B8 R4 J1 P- W! C3 ?' S1 ]
. l2 v: O/ t' i- B1 O( ^/ |2 ^
1 M0 v- `( E, q
" ]1 b/ F! z" L% }8 H |
|