|
|
食品车:/ W; \& X2 C8 i& L
尾翼:
5 t1 |4 i- G8 V# Z, e- t" i+ V
, C+ G" Y5 ]& q代码:
) B2 ~& ^! f1 [0 \: eCWndAutoFood::CWndAutoFood()
9 m b+ {1 p& X{
& C8 L4 x, r2 E2 Z m_pItemElem = NULL;
+ N( K- _" o4 `/ O& C% N8 s m_pTexture = NULL;
) o$ ~ Q& s4 [& G" `7 C! @ bStart = FALSE;" e$ U' _1 k0 N+ Y5 q% _
}6 W$ q# @3 }( [
2 b7 W5 F3 i6 h* P+ d7 n
CWndAutoFood::~CWndAutoFood()3 |0 p- B$ R4 @) w1 l
{- W, m( J% d1 K2 q
AfxMessageBox( "AutoFood ist gestorben " );
: A" ?! `: K9 R) @}
$ y. c! j# W4 v+ N4 MBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )9 Q- h5 i3 R0 I* {( ]5 y
{! V9 Y: X) m6 b$ S$ h, U' l9 {
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );/ Q0 I& N+ ?0 r$ c& G5 `$ V/ V' y
}
& f |) j1 D; W8 }
P y" V' n$ k, ~: ABOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
% A1 [- k7 t, i: M{! e( W0 i8 r1 t3 h D y
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
8 U6 ?! `3 q" r( l4 U CRect rect = pWndCtrl->rect;
: O* k# o; N7 ^3 V, M' J if( rect && rect.PtInRect( point ) )
0 A. K6 T8 u6 S+ T$ c {
! m0 l$ }5 ~0 q4 F) s5 o CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );1 a5 l7 m3 T S
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )$ m1 d2 {9 p2 }& Q/ W
{) h9 O* n/ D( @0 Z$ ?+ F% p& t
if( m_pItemElem )9 H0 D; N7 }* S; ~
{
. w8 z, X7 t/ ]& r. i: Z m_pItemElem = NULL;# c4 B: Y* U4 D! T1 J
}
- f( _+ p. ~- P( { m_pItemElem = pItemElem;
1 J8 L* y+ K( x* e0 x m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );& n* v6 H: W- ^
}else{* C; V- ]! J8 q
SetForbid( TRUE );8 h! Z" ]& G' H* z) z
}
5 E+ j4 w9 b, k }else{: r) J% P. I3 L0 R
SetForbid( TRUE );: a0 F+ I0 y: t2 ~' K- J; `
}
) f" F: N. c6 O, q4 y return TRUE;) U' E6 r0 ?" b; F
}! @* b3 U- G% ^. X4 H4 w7 @
/ p* H) f$ g) p2 D1 kBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ), H' C) b+ t/ ?) J, _
{! [, p- T! J5 p
switch( nID )
! z/ D. R& q3 ~: r8 i/ ^ {
4 y6 P$ C! p: t' b case WIDC_BUTTON3:
: g& E, U9 J. M2 J6 `/ ]6 P {/ _4 ^) M7 a T* z L% n$ [; ~1 q$ Q4 K
bStart = TRUE;( u8 ?- \( h9 U# o! L6 O
break;) z b, K; U9 ]
}
$ z. H. a& z9 y8 a6 R+ ]; }2 g case WIDC_BUTTON4:- h% r* m7 _4 L2 Q+ V
{
$ o A4 j8 e/ g" `5 b bStart = FALSE;/ W2 r' E% D' V3 l# C0 i
break;
" M9 C! z S. y6 L }
8 a: V* @7 r* {: E+ B }2 i1 _5 k1 Q, \! [
return CWndNeuz::OnChildNotify( message, nID, pLResult );
* h, p- h8 p2 t7 }}
1 T& W$ \& d# v9 B. b! [void CWndAutoFood::OnDraw( C2DRender* p2DRender )
0 K. [5 p3 h2 t8 _& j{9 }4 j5 O# R- n9 `- N
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );+ ^" c' O7 w, `3 y1 }* F. |* |- q
if( bStart || !m_pItemElem )0 G4 a" O! x) k# }4 x7 p. ~
{2 D/ z" |% L- L% u+ D. a8 s8 f& H
pBtn->EnableWindow( FALSE );! g h. q e- S4 R
}else
# q6 L9 ~7 l) w: u( z pBtn->EnableWindow( TRUE );
0 F4 T5 l( ~; ~9 A m/ W: a if( m_pTexture )
9 Q* ?4 F! R! \4 G% p/ ~3 I {
! s ~* J P( l, }4 u) j LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 }0 t `# M6 q
if( wndCtrl && wndCtrl->rect )
# J$ H- U( L+ }/ o1 s/ \! f {" @2 c' e( N. u
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );0 l9 B0 z# [9 h; y
}
$ V5 W' X" D% f8 ^; T0 f }8 m& d& a' L6 s9 P- F
}
+ K. \2 K0 j4 T" I H
" q4 Q, W1 I# i6 y; S4 m _BOOL CWndAutoFood: rocess()
# g7 z# X5 t) D" \3 L/ j{
1 k9 b' o3 R4 j0 j2 Y1 l% o6 | if( bStart )# f, J( H) j2 B1 z3 d$ r
{; `1 P# v+ Y V2 M9 T- l
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ) V- B) g3 f% x& p' N4 R! E! W4 U
{
1 @. _/ g+ |! O+ b% p if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
: H2 [% o: _4 @# O% u3 L g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );9 j; y4 O( e/ y. _3 r
}else{! h1 |2 V( N' Q4 t
bStart = FALSE;
. a& u$ }% T' y$ D% Z m_pItemElem = NULL;
8 P: r2 _* s1 L% K* L% r }
6 q+ b, K4 \/ _7 Z4 V }
% s. T; S* q6 X0 @ return TRUE;
) ]7 y E# U. T}
n& D6 J5 |7 V1 [" d$ P8 v8 |+ O! J2 F; J0 s; R- R" v& J
登录视频废话:
* a2 n3 Q5 S, |尾翼:
, d4 D ^ b+ w* y: [
+ L W, H6 C3 ?4 U0 ~代码:
! w% i# B$ Z, X. L) {4 Z+ T* X/ C' | H- `& r6 r# ^* ]% K
void CWorld::SetLight( BOOL bLight )- A2 q8 _+ Z& @1 {) k9 ]. ?3 [) w2 G
durch" {4 S3 [0 o/ ?6 R3 V0 D% ?
Code:. C6 M: J6 t' F/ [6 l0 k6 T+ U1 l- l: W
void CWorld::SetLight( BOOL bLight )& W& G, P ]5 z0 ~# X8 S
{
, w1 t \7 M& n. M! E //ACE("SetLight %d \n", bLight);* a z4 s9 p% b1 \. j
4 s: h! J- G- n+ F% _- S#ifndef __WORLDSERVER
1 P& w4 X+ ^6 f( o8 | DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);. M1 V6 m5 y" f2 t6 m
CLight* pLight = NULL;
7 [0 H: }1 g9 }2 t" j) t8 ]- W4 E3 N+ b" F7 c9 a! v
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
5 E1 t* F, U$ y; F# c6 k; `% E+ T1 N% X2 c0 w3 k" c
pLight = GetLight( "direction" );% x; W8 K$ z- }3 c) a8 P+ h& d0 F
* i( b8 `) _. C+ ^* q- ]
#if __VER >= 15 // __BS_CHANGING_ENVIR
, M; E/ M& c; A) R if( g_pPlayer ){
' L7 L9 b: t4 R: b. {6 O* g5 a ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
7 O$ L: g3 ?$ [9 u6 r! o! r if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
1 G9 Z+ \; N/ a% {: E n {4 C) b( j/ D+ ~* s
if( pLight )
* S# @4 G5 t/ V, n+ S1 R0 ~3 ?0 J {
6 l! h, r- C: X, @/ k pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
$ f6 D, Q+ Z4 A2 R4 C: }( ? pLight->Ambient.g = pInfo->_fAmbient[ 1 ];- ?0 z& ]4 K/ J2 z6 a9 [
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
+ `- S3 e% r5 k# n; P, t7 O6 q* G' K" X6 u: S# v
pLight->Specular.r = 2.0f;. i- U4 W6 ^' M5 }* c' `3 k% v5 q) O* V
pLight->Specular.g = 2.0f;
: ] v# E4 `3 z5 w pLight->Specular.b = 2.0f;: [) M# O0 L! W' p0 v6 ?* q7 t
+ M8 J5 |1 w6 x/ f pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
, \2 p+ y' t# N9 s" M- A8 Y pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
8 N8 G/ Q! Q% V pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
) \- p( }. m9 g. S7 Z, k2 j/ y0 R8 b) [
+ m( l6 ?7 {4 U9 q/ i HookUpdateLight( pLight );
- a8 m9 l) N. v
6 }" e# ]6 Z3 I! ?! Z/ L memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 r& C: T- A. X9 A$ H0 L. q * k F, N% {: i% S# M
pLight->Diffuse.r *= 1.2f;/ S9 B! {1 U7 ~5 k, I
pLight->Diffuse.g *= 1.2f;+ \0 p. X- Q: z1 t% q4 k: W
pLight->Diffuse.b *= 1.2f;) p4 [+ ~% q! A' E! x
4 ?9 C# D8 x: F; [$ P& X pLight->Ambient.r *= 0.8f;/ o4 `( V7 ]0 N8 ~( n
pLight->Ambient.g *= 0.8f;9 x4 H% t' g. }4 Z9 b
pLight->Ambient.b *= 0.8f;% y( V! }2 }/ D0 M9 N
+ j9 ?9 L, m7 }* {- r6 n( d memcpy( &m_light, pLight, sizeof( m_light ) );( T c, y6 y9 H5 r: m2 j; J
5 p* U; x# P/ m3 k2 g" v' j& ^/ M1 `' o; {
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);/ m i% R/ A' C. N- B
D3DXVec3Normalize(&(vecSun),&(vecSun));/ p* I: }& e! i: n4 B
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 ?$ ]& z" k' J2 W* Z& V$ ^8 w9 l* t! b pLight->Appear( m_pd3dDevice, TRUE );- w& i% J( o% w$ s# t( p
5 D# A6 ^9 I" e$ j* b2 Q DWORD dwR, dwG, dwB; ^( Z4 }4 k7 Q0 N2 x5 s( |+ u" q
dwR = (DWORD)( pLight->Ambient.r * 255 );: {8 c m' q3 L' ^+ Y ~- i- E- o2 v+ l
dwG = (DWORD)( pLight->Ambient.g * 255 );
( \/ A+ l8 ?4 }( r. V* D dwB = (DWORD)( pLight->Ambient.b * 255 );
, J" \) O& g+ a' F. q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 \+ O# P7 V4 r w! d+ f9 ~" q }
$ \: B# e- H2 w u" j7 _! y }
: m2 b& C! |: o$ n2 M) U }- f3 N. \$ d, y8 B4 l _! R* \6 V1 u
else: g4 J, E+ G9 \$ M
#endif + ?) m2 U& V' B5 E7 w2 J
+ X4 x. U- R6 W' r2 f* @7 C4 S
if( m_bIsIndoor )/ p, S+ t5 v+ D. q3 P
{4 W* }9 P0 O! {) l u
if( pLight )
+ g3 Z0 b& Q9 R8 w { 5 X' R! K' d; m) S% c! }8 j
// à??μ oˉè*
! p3 `1 _( S( P pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;5 W. I2 }! n. t* }8 ^7 Q- u
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;: `2 n* f' s1 o6 E0 W
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;2 Z! h1 l8 Y. F: A t" i
$ h" b+ o$ L) U
// oˉè* ??à? 2 X/ G# x+ u1 e0 \* T# l
pLight->Specular.r = 1.0f; x$ T' D) s; u2 ^ j
pLight->Specular.g = 1.0f;
2 k5 d" L8 M" `, l pLight->Specular.b = 1.0f;
# _) z1 o! ?0 o8 f8 p/ T& I // àü?? oˉè*
P- r, q! J! E! w' }6 V$ ` pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;' B8 c9 M' A+ U. n
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;% Z$ j! q& c3 [# L- R( m! A) Q
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;/ E- r' n; G+ f
: J( g9 e! g# p/ X& ~7 j [ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: `4 Z% ~( j$ ^3 U5 j$ J7 G* i0 ^ {- f& x1 U S" f1 j2 ?2 a
pLight->Diffuse.r *= 0.6f;
$ o7 Z' D1 O5 T' `2 A8 \! ] pLight->Diffuse.g *= 0.6f;, o" c' }/ G4 `; T% I7 X
pLight->Diffuse.b *= 0.6f;3 h( q, J2 F8 o" h9 f/ g M" M
pLight->Ambient.r *= 0.7f;
' S7 X- G3 D( \/ o pLight->Ambient.g *= 0.7f;! u: C" D8 z! m% I
pLight->Ambient.b *= 0.7f;
+ j& E+ T6 x5 L" \6 j }
e: C7 e/ Y4 C- m0 y& T" x5 Y c) s3 O7 D$ @, m3 X
#if __VER >= 15 // __BS_CHANGING_ENVIR9 V4 G% K5 P% Y5 G5 y0 x
if( g_pPlayer )& O- ]2 j( Q+ T Z) r4 v- y
HookUpdateLight( pLight );
9 j1 ?9 U. r9 j! a$ G; v#endif# I- O# A# q S: \- b! N2 c4 P, V% H
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- H" t' G" i: Q: L+ }9 ?+ Q7 y- K% y# K" f4 H
pLight->Diffuse.r += 0.1f;
6 W% L2 o1 _+ d/ [! @9 l pLight->Diffuse.g += 0.1f;
' Y' {2 x+ _* g# Z: \# J- | pLight->Diffuse.b += 0.1f;1 ]9 f9 p3 y) v( q- H4 M K" f
// oˉè* ??à?
$ q+ a: G% \' m pLight->Specular.r = 2.0f;
' O5 S+ f7 @* U |7 q8 r pLight->Specular.g = 2.0f;
9 g0 D# {+ Z2 E4 W4 c' P pLight->Specular.b = 2.0f;; n5 N1 K' T, G1 b+ n9 c8 u# J
// á?oˉ
. v" O7 o( ^/ F pLight->Ambient.r *= 0.9f;0 W' ~0 E( Q# M9 d: j) o0 N
pLight->Ambient.g *= 0.9f;* R5 A+ E6 q" i) U& _
pLight->Ambient.b *= 0.9f;
8 a/ w/ N1 v6 a( }) S
; @. e$ `5 ?0 J: V memcpy( &m_light, pLight, sizeof( m_light ) );
: t8 R9 \2 ]5 z/ g7 N
1 D, P7 o' U( ]' c8 i pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
" x# z" x# v8 o# t) Q pLight->Appear( m_pd3dDevice, TRUE );/ l) k8 T0 S N' S) i
" l' d+ ~7 Z" Q4 a DWORD dwR, dwG, dwB;
- L/ O& I# R* _* S# N dwR = (DWORD)( pLight->Ambient.r * 255 );
+ a. u: [6 \) K) x6 ?2 l dwG = (DWORD)( pLight->Ambient.g * 255 );
7 k' q& B# A. Y6 ]+ |& v; q( _ dwB = (DWORD)( pLight->Ambient.b * 255 );- ^2 g7 n0 O+ x! Y# h
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );2 w7 d+ E& }; L/ ^; d
}0 d# A5 [; k3 [6 f$ ^$ ^4 o6 Y
}
2 k& H0 |5 V8 _" C) C else
2 r8 [; m4 s* i2 J8 p {
" H' s: `6 t- j: y' i1 F. j, q if( pLight )2 c8 I7 h2 C) F
{. z) D; E7 [1 _* w+ b' ?7 \3 o
, P; W: p; q6 f7 c/ t8 s
int nHour = 8, nMin = 0;
1 [/ }. F7 B3 j #ifdef __CLIENT! V3 c) c: j" d: u" C
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
: W P2 @$ }- r5 l1 L2 _4 I nHour = g_GameTimer.m_nHour;* w p6 U! I4 N8 h- x( I% _/ \8 \
nMin = g_GameTimer.m_nMin ;
, @: S' \; J8 y' J( _ #else
! k4 j( h( @: K$ P // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
5 D3 ~! D% e# }( n# O$ k2 ` if( m_nLightType == 1 )
& _ `. L6 ]4 M! |9 x- _* h nHour = m_nLightHour;
5 W T6 i1 o8 @! u- H$ G! ]# E #endif
1 O) m- t) K2 S9 U nHour--;
% Z* e* ~9 b8 h. Y- \ if( nHour < 0 ) nHour = 0; T( g6 _6 ]9 V v) b
if( nHour > 23 ) nHour = 23;
9 o/ _5 E: J% W, N7 W
3 i" [3 Y9 v+ I7 ` //if( m_bFixedHour )
% p/ |, m: h5 x" _. B. }; Z5 R // nHour = m_nFixedHour, nMin = 0;0 g- A# p$ Q3 l5 Q+ h1 l
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];* ]& T* _6 L _0 r
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
7 E. O2 N- F8 D+ |
. Q5 d% S7 A2 ?$ d* m //m_lightColor = lightColorPrv;
, O3 \6 W5 m9 X lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
- `. X9 v' m3 s9 P# N) I/ w/ W lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
( }% q; y; r7 U1 ?8 n# I: b lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# ~, U9 W# r* r- g! p
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
8 V* D, ?; u& E' W lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
: @* ?5 l! z9 h# @1 }- h5 J0 N lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
% p$ t; N& P' b7 q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
) C6 H6 d% B4 S I2 R
+ U3 J) L; w& `" a, q% w8 ] // à??μ oˉè*
2 r, e2 L; n# X pLight->Diffuse.r = lightColorPrv.r1;
) G7 Q e% m- \4 ~: z pLight->Diffuse.g = lightColorPrv.g1;. _: E% E6 \% \ V/ m9 r5 |. T
pLight->Diffuse.b = lightColorPrv.b1;. z' ]9 K. T* _1 ~ B- n8 [
// oˉè* ??à? 0 [+ L" b1 _ t- j1 {4 j9 j# S# U- Z
pLight->Specular.r = 1.0f;% D2 }, s/ I- a
pLight->Specular.g = 1.0f;6 H& Q3 C9 V( I
pLight->Specular.b = 1.0f;
* S& V8 T* ^1 t: k7 L7 ?# I4 v; m // àü?? oˉè* % w# R) x! y- m5 L8 U" d2 @
pLight->Ambient.r = lightColorPrv.r2;
' t. _$ c' H' |, y- K& \- T' { pLight->Ambient.g = lightColorPrv.g2;- [" t1 [. U4 n
pLight->Ambient.b = lightColorPrv.b2;* K+ Y; W# \; j
7 i/ Z% v4 J2 t" z4 F9 J; G
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* u1 y0 _3 w1 H
{/ K5 \% s. O2 y. O5 G. B7 e! D7 p
pLight->Diffuse.r *= 0.6f;
$ d) w* f8 ?6 K! P; H( w pLight->Diffuse.g *= 0.6f;. Z4 a/ h8 G( @/ a7 B3 q4 {3 _
pLight->Diffuse.b *= 0.6f;, h1 |+ z1 x9 Q" D& j' n/ g; C
pLight->Ambient.r *= 0.7f;
; ^) T+ u& a" g& S j0 W pLight->Ambient.g *= 0.7f;) k0 |* N3 e {6 a9 U" c
pLight->Ambient.b *= 0.7f;4 h, i1 n. x% j2 z, m; b5 C3 O
}0 t- o# n/ b/ G- o8 b( |: {# ^
$ z" s8 P* W; O& D$ c( Y$ L2 Y#if __VER >= 15 // __BS_CHANGING_ENVIR
; e( @" X- Z$ a% u4 I9 Y4 @: L+ m if( g_pPlayer )3 ]0 q& w+ c5 D! D
HookUpdateLight( pLight );
- K: ~' U8 h8 x& D0 y( |#endif
! Z! K% c7 Y6 D, I! Z# T4 h Z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 G0 n' R2 X& w+ H- e# W% S& C3 w/ ?
$ S5 ?$ m9 x( L' \+ D/ a! r#ifdef __YENV$ N4 J) @. V& Z) Y5 R, K+ j9 |
pLight->Diffuse.r *= 1.1f;
8 b7 @/ j2 \0 m8 W pLight->Diffuse.g *= 1.1f;
$ n8 I. S3 V( Z! F8 y pLight->Diffuse.b *= 1.1f;+ K5 Q/ n& L9 Z( g4 K1 y
// oˉè* ??à? * z+ @. I/ s6 N. Z, m
pLight->Specular.r = 2.0f;$ i. d, N# z4 a$ I4 D$ y
pLight->Specular.g = 2.0f;3 x+ ?2 h4 c6 K
pLight->Specular.b = 2.0f;8 `4 {) d. N/ ?
// á?oˉ
3 I, l! x2 r$ I( W pLight->Ambient.r *= 1.0f;
+ X* e1 Y+ |+ U. t( p$ [! D- H pLight->Ambient.g *= 1.0f;% \* }! H2 H$ D0 I8 h6 ?
pLight->Ambient.b *= 1.0f;
* s6 x" Y1 ^" c#else //__YENV
* z) ]' [* s1 D1 E- N pLight->Diffuse.r *= 1.1f;* o7 }) C' S- V0 f$ a
pLight->Diffuse.g *= 1.1f;
( e+ J5 ?4 p0 Q pLight->Diffuse.b *= 1.1f;4 ~7 `1 n$ x0 [6 T0 ]/ y
// oˉè* ??à? - x9 L- |( S8 R8 d, ]% y4 r) W1 a8 g
pLight->Specular.r = 2.0f;# s6 l- z# ?' ?' |+ Y) f7 x3 p+ W, w
pLight->Specular.g = 2.0f;/ [, ~1 m/ Q0 k+ z) N9 E
pLight->Specular.b = 2.0f;5 x: q' D* M; W8 I1 b6 `9 y
// á?oˉ
: |( O6 P' G% n pLight->Ambient.r *= 0.9f;
- I4 u2 a: C% F; V/ ~$ e pLight->Ambient.g *= 0.9f;8 t7 w. b$ d X& Z3 L
pLight->Ambient.b *= 0.9f;# z. h# Q. F/ |* G
#endif //__YENV " @' F5 K& t% i z1 x" g
8 ^3 \& i$ @7 ?! V/ f, D( q memcpy( &m_light, pLight, sizeof( m_light ) );
, p7 ?# e2 n, x/ J7 {! o0 h7 k
! Y+ U7 F) V2 L% P- o D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
( S4 o/ x; Z0 P+ i2 P D3DXMATRIX matTemp;% y; k0 w& ^( B9 Z3 g5 ]5 H
static const float CONS_VAL = 3.1415926f / 180.f;
7 u7 N9 y# ]& ^: V
% e4 O0 y1 E1 t% G8 \ D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL); }' O; }2 S. P# H' _
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
8 c2 w/ k, Q* c0 X4 l pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
4 x. Q! f( g9 m, C7 w% |, r pLight->Appear( m_pd3dDevice, TRUE );" g/ m1 W7 N8 d3 y* i7 T: U. ~
' S4 M2 F. ]. R$ T/ A
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 ^) ]9 X) q3 P* `7 c
// D3DXVec3Normalize(&(vecSun),&(vecSun));; c5 \. z5 I% M
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
# k, s" N0 Z, X" E5 ^, _- a
7 A; v( P& @* V- [- B6 X; l DWORD dwR, dwG, dwB;
. l1 D8 ]' O/ G3 @! D, F L dwR = (DWORD)( pLight->Ambient.r * 255 );) ? S, j) f7 ?4 Z
dwG = (DWORD)( pLight->Ambient.g * 255 ); |$ y$ A' `5 ~) S* |
dwB = (DWORD)( pLight->Ambient.b * 255 );
" a2 V. }6 I/ Q2 g/ b dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; g7 `' P# C" c+ d }
7 ~. L6 F! J6 V$ {0 y- ? }2 o: y* F2 r% t, R9 _$ d
2 U. E+ l9 I) I9 n1 u4 w8 J! ? m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );, v3 l1 O- k9 Y) O7 x9 z& u
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) );4 v# l, \1 @7 X) Q x. E
::SetLight( bLight );
% i5 ^+ J, T' j1 H5 A0 m; z: x" D: G. N. k& f" R8 Y
// ±ao? ?D?í???ó á¤à?
* V8 b( A$ n5 I1 y1 h9 e6 L" Q* K m_pd3dDevice->SetMaterial( &m_baseMaterial );
! k& s) m$ ~" S5 B! {! W/ w
6 H, x' I" H! M/ b: M4 ]2 e#endif // not WORLDSERVER2 o3 H1 g9 e- a& Y" e
}; U4 w- N& E! f- }" f$ z" }
并更换" J- ?- Z0 Y* S m+ b
Code:
! K E6 u: t% h! `" P__FLYFF_INITPAGE_EXT
) S8 ~4 ^9 d+ |+ {1 q! C定义
' H. V* M8 D( j3 ?5 Y/ ?0 p4 b- D+ r
0 d( }+ R4 t: P: z$ [4 L
4 m' O" a, Q* o7 F- d' l- } D! X; l* ^2 P3 F! v% K3 Y
现在终于删除我的狗屁加速...' R u" z- H9 @2 B
1 |0 u' _" H9 v1 C% X- |
& [3 \% ]3 c" S' P3 S9 i2 `
( J+ `3 e+ Y+ a. Z5 P |
|