|
|
食品车:$ ^/ A9 y9 ]; I1 I. E3 @
尾翼:3 q4 c& G( ^8 q+ F* W$ ]; Q
# U3 }" Z6 r1 K6 A
代码:5 g5 p) m" |* E& _. [
CWndAutoFood::CWndAutoFood()- p7 ]3 i( t& h8 H3 x
{
7 t. [+ o, J2 ^ m_pItemElem = NULL;
- n- ?6 C3 g/ w6 X- [1 Z m_pTexture = NULL;
+ T- m! B$ N: ?. K, A bStart = FALSE;
* z1 Q- g! m- F9 a. n% \: e}
" @9 s4 N) u. ?8 o# l* m, D
! g- c- }) o* i3 |5 o- QCWndAutoFood::~CWndAutoFood()
0 V5 o2 [! W4 Z! g{- j6 w" Q# ]1 a# L! ~- `
AfxMessageBox( "AutoFood ist gestorben " );4 J8 h( |7 q8 R
}6 R" ^: s6 m w M
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
+ \$ Y$ g3 l5 r( S2 G- h6 F{
# {% r# O" A) V6 I+ H: Q return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );- ~+ N# M) T4 F2 |, l- {5 r
}
& a7 h6 m" q; r# D& A4 G- `
) Y; m1 B( L- a7 a( }BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )( p+ `- Q* s3 G' Y2 ~0 L
{/ ?" v% a- r! F! x$ g& R6 Y
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ | L" r- }1 {1 N- J
CRect rect = pWndCtrl->rect;
4 E/ I, {: [ v3 h# x9 X7 f if( rect && rect.PtInRect( point ) )
1 _4 n' |0 @9 \4 D- C @" d3 x8 I5 k {
: G8 g; ^, c1 }0 P! K CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
9 P, k0 w/ L! } if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )) U' C. k- y2 O) e
{
{* ]# y" s [7 m if( m_pItemElem )
3 j! Z2 ]. m/ b% D8 k* E R, _. D$ X {
8 f2 t" X, X( v. Z$ R- N m_pItemElem = NULL;3 X/ t; h5 g0 W: P9 \% ?
}. Z' [; ^8 M3 P x/ ]8 d. p, M
m_pItemElem = pItemElem;
2 O; G) M& q$ y( c m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
$ B& ` L6 Z) o( r }else{) A6 V" ^* }# ~, @+ K
SetForbid( TRUE );
/ d8 m# H6 O& u }0 T) O, m3 h) v a) c3 F3 K
}else{
; u- N# k" ? X/ \* X$ F SetForbid( TRUE );/ F' l- T) z P
}
7 u9 H9 ~8 q O3 o0 @ return TRUE;! Q6 c; D! P# J$ o6 o
}$ o# p7 ]- f2 W4 O
, o4 }% l, l) K* e+ I
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )/ ?. |5 M) i1 O
{* c3 l }0 H0 }8 ]
switch( nID )# |/ _2 E; Y+ P5 Q0 r# p
{
* c/ [+ P$ p8 X2 U+ s8 h case WIDC_BUTTON3:
! R+ b. ]+ v0 H' h: A {
5 c& c8 S# R/ q3 V) } bStart = TRUE;
* ]; S& l% d- z& x z& E break;- K$ h: D' K- `
}
' i) e% I8 |4 U/ ?, V$ h. [ case WIDC_BUTTON4:0 u6 Q# Q2 H& j
{( f1 l2 d- |! E p2 F$ l/ o. v9 G
bStart = FALSE;# k3 G) T" T: ?* r1 q5 T
break;! _& n" h: ^) g
}
) x# _4 d: U2 J9 V1 C/ r }2 }5 |) \% w X
return CWndNeuz::OnChildNotify( message, nID, pLResult );
. C ?8 B9 f0 f# N0 y( I} 1 J; i+ k* S- _/ n
void CWndAutoFood::OnDraw( C2DRender* p2DRender ) f/ |) ]- O1 c! Y3 I8 g, B0 B, m
{
5 K0 U7 J- \7 \( ^- j2 l. p7 ?4 G CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
- s3 |+ f: N7 k4 `1 a if( bStart || !m_pItemElem )
' {7 P' i* U$ X, } {
9 y# C" e# B9 f) f+ Y pBtn->EnableWindow( FALSE );
9 [2 ~1 _ t, F# r) l }else
& m& \- |0 P& Q9 a* C pBtn->EnableWindow( TRUE );# \( h! L4 Q. L' r/ v$ B. G
if( m_pTexture )/ }- h7 U2 p' w0 N' v! c/ c3 `
{+ }- \9 l+ h' u \; n, x1 D
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );( q% ~7 j2 t; _, d' y' Z3 m% K
if( wndCtrl && wndCtrl->rect ) |# W# b: o* V B0 L5 s# J% i7 N$ L
{
) r4 z% r' I, D- ^5 _ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
- g+ T. F5 E+ D }
# @; c% ^4 W) v }+ r0 }7 W& }# ]6 A
}, K( v! b: Y; |9 ]5 a3 e6 _0 [
( z1 X0 v7 q9 Q- G8 g
BOOL CWndAutoFood: rocess()
# D- z- x; v# T$ Q' N{
8 R) `5 Q8 H3 p* R- m if( bStart )
( S, \* q* C' T) e {! T0 H4 s) l5 q& W4 X7 _* h5 z( d# A
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )' s0 X4 R4 [, d' B, E- j- [
{1 F5 r% @% D3 g5 q5 A: F# I 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() )
* s2 s- [% O0 U" [- U; b1 w( D8 s: O g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
' T7 r! Y( `/ N+ m- x* Y6 @ K }else{8 n2 G* n3 P9 n, `9 V6 o
bStart = FALSE;- y0 K' a+ O0 C( `) ~( J h8 o
m_pItemElem = NULL;
; ~: {. g' B+ [* B% x9 F }
9 g1 M. P( a1 D# a7 C& `0 ~) z }& N, b! F8 ^! H5 K. _( S
return TRUE;
+ z5 S- i2 O' k; Z}
1 q7 `, t, F3 z0 m+ Z; y6 { @- n3 ?/ m+ o6 p% L* ?
登录视频废话:+ e( x) I, M6 c# ^
尾翼:. Z" y, W! P7 p% x1 N
7 {9 j6 |! W1 I1 d' M
代码:) b h* ]8 X3 c2 K/ |$ B
/ D4 ~8 _' v3 G+ y
void CWorld::SetLight( BOOL bLight )# q$ E1 Z* h6 G) l1 w, l# L0 p0 b
durch
. i% H4 h# g6 ^3 ^7 ~, P( \2 w# pCode:
; U. C- \: x! [( a( r6 avoid CWorld::SetLight( BOOL bLight )' b% j0 e7 U* z, M" v! f# k1 ?
{% _" l# I' d" U8 c# J2 j: e0 p6 {8 Y
//ACE("SetLight %d \n", bLight);
) C7 v3 M) N2 X# C* Q : F8 A/ [; P. M! R
#ifndef __WORLDSERVER
6 v- \, m& O$ _2 @ R DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
~; |" q; n, D0 f6 @ CLight* pLight = NULL;$ _. i# d* z5 g/ H- b" t
; u' R0 [* u/ C6 l
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
' Q/ `- q) r/ v# w3 V8 ~; J# S/ w4 w( ?! F, ?' d
pLight = GetLight( "direction" );4 H5 g/ ]2 `2 w* Z
' A" @, [% t r! V( e9 n
#if __VER >= 15 // __BS_CHANGING_ENVIR: U) Y' c1 Y; a5 K" s8 E
if( g_pPlayer ){1 n7 s$ W+ L6 U+ o; A6 c# |$ X, I
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );8 `3 G4 K9 h4 ?3 Y8 \. \2 j
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!/ A! e# u+ o& H6 l" \3 V
{
9 @5 g$ J; m* ]' G8 O: j7 H if( pLight )& S# i5 Q- ]/ g
{+ L9 g* p0 _- y; y
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
( j) v$ s0 i* M4 G4 I g pLight->Ambient.g = pInfo->_fAmbient[ 1 ];! c0 H* t% F! |; \( k% m
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
9 F. _+ L( p% j1 a& {1 _! y+ o4 W P3 a. t: P# t
pLight->Specular.r = 2.0f;
1 }; w% w D% K+ e0 b5 ?. L$ K4 | pLight->Specular.g = 2.0f;5 p$ v& U" Q6 v* |( r
pLight->Specular.b = 2.0f;
, _3 @) W) M' U% v2 | 5 ~ v) f Z- W
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
8 A9 i4 I3 d. Z6 {% t( L6 N pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
9 ~* d' j3 ~. T3 a* e" R pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
( \- e1 h0 ^2 U0 h: U8 r. z 4 N) ?" g. d, Q' o; V, N _6 d
HookUpdateLight( pLight ); * u: @1 k; X9 [$ t( K
5 q9 i9 L7 L E( y0 K memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( C) w3 O( P- _# x 2 r# u, T/ w& |8 L
pLight->Diffuse.r *= 1.2f;
2 x+ j$ F0 \% I1 \1 y5 h z& N& J8 E" F/ | pLight->Diffuse.g *= 1.2f;
* ]! i/ d% V5 ^ z2 O- k! k+ l$ o pLight->Diffuse.b *= 1.2f;
7 b6 K0 U8 C+ H4 _6 b( R& \
z8 T1 V3 i# b# ~/ b. l pLight->Ambient.r *= 0.8f;# `; u! J& k" i
pLight->Ambient.g *= 0.8f;
( ], V6 F% t+ n pLight->Ambient.b *= 0.8f;
. ?) a9 }) h) P( J5 u: u2 J
3 J+ j1 m0 j+ |6 t$ m1 u' H1 g! Z memcpy( &m_light, pLight, sizeof( m_light ) );) {* f4 [; k& j( H% A0 B
4 n( f. i( Q3 v! x+ K7 ? D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ ]& W V, i: U+ N6 H" `
D3DXVec3Normalize(&(vecSun),&(vecSun));, ]: j1 f k8 W! q5 A
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
7 q6 [& X4 y# t5 ]/ S2 L) j pLight->Appear( m_pd3dDevice, TRUE );
1 a) f6 R2 l$ Z" z* s" `
+ T: H: c/ {1 U DWORD dwR, dwG, dwB;
) ^6 ?$ L) g$ z5 B% H* @ dwR = (DWORD)( pLight->Ambient.r * 255 );' w$ b0 L" p' ^$ N/ P
dwG = (DWORD)( pLight->Ambient.g * 255 );. y/ u2 ?5 E9 S5 u ]7 S' e
dwB = (DWORD)( pLight->Ambient.b * 255 );
T8 c1 @1 \2 r1 g dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ T1 x" |; w$ Y p2 E8 R- Q
}
$ G7 p9 G0 S* Z% Q1 w# b" B }2 r# ^2 I3 D2 ~4 N
}
3 m' F0 @! ] }, V( g else: j9 i, r+ @5 I
#endif
3 W2 B) x0 u, U8 q, I% e+ H: g- M
if( m_bIsIndoor )
$ _8 Z& K, q% {# n, r0 k {
7 t, L+ `2 j% j# k: H$ } if( pLight )2 c2 |9 `' _) Q# y* ^
{ 8 r5 T k7 f' x0 z
// à??μ oˉè*
1 E( W) o- ^8 l# n4 L pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;% i' z0 B' T1 K$ y7 u3 N
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
/ e6 G' y. e# n8 ^$ n1 |# C pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
* r7 s! s( T @+ m" v/ \, \+ v8 g. C( E) u" @& M- n& L
// oˉè* ??à?
- f7 c9 `' y, e1 z0 q pLight->Specular.r = 1.0f;
' g$ _# `. m/ _1 B1 P" I+ Q5 v- |, T4 Q pLight->Specular.g = 1.0f;
. D% }* v( Y$ Y pLight->Specular.b = 1.0f;5 |/ g* t4 Q" r1 N4 k' k8 s5 F
// àü?? oˉè* 3 d% v6 u4 `6 N
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
% ^" j) F M& Z3 _8 _ b pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
/ s& }8 U2 X( g- t! H- | pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
& y" @9 K9 N: }0 C% x% Z0 ?" ~# R0 O" _# c% T
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
) F. }; g% q! E {
) d/ f; x2 ~. D: _1 b. i4 F( j+ b pLight->Diffuse.r *= 0.6f;. I7 [+ ^( N0 N3 w) G
pLight->Diffuse.g *= 0.6f;7 c, U- l0 {6 H* s$ h- ? ?2 |- g
pLight->Diffuse.b *= 0.6f;
: S0 {1 {& y0 j4 H/ b' g pLight->Ambient.r *= 0.7f;( m9 ?- T! G5 [' A `" c
pLight->Ambient.g *= 0.7f;
1 {7 U- P* l- b, P$ j9 E* U1 g- y- d5 F pLight->Ambient.b *= 0.7f;8 f$ _9 s6 n; N! s* Y& E+ Y
}
" _; w: X2 R4 k- R/ B* c7 X. j8 A
& K( C& u5 ^+ {$ P4 K" c% N#if __VER >= 15 // __BS_CHANGING_ENVIR
- J3 }8 d$ v: y& K if( g_pPlayer )
k5 u; c: R3 z: ~ HookUpdateLight( pLight );
: X3 g1 q2 {6 \#endif
: F' b3 d* H- \6 ?/ U! M! u( P memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 H8 _1 H p6 U; Z
) y( I2 r% k5 y# m% T+ Y# I) o4 D pLight->Diffuse.r += 0.1f;
% m7 c4 @) D! O0 E/ {4 Y pLight->Diffuse.g += 0.1f;
7 F1 t8 B7 U" [; m pLight->Diffuse.b += 0.1f;
6 F& I% Y8 A) B5 u( |6 x6 O // oˉè* ??à?
8 H: B; r2 T, l pLight->Specular.r = 2.0f;
u: n1 u3 j3 o# n$ L pLight->Specular.g = 2.0f;7 z* I: B, n) P* p, p* p: W8 g
pLight->Specular.b = 2.0f;/ K& Y ]. k3 x: l1 ~0 c1 V. h
// á?oˉ * X- _: a3 V1 @0 j1 o3 Y& \
pLight->Ambient.r *= 0.9f;
2 C! Z- h0 J8 T( S pLight->Ambient.g *= 0.9f;( l) g, [8 D% ]0 ^
pLight->Ambient.b *= 0.9f;1 W; \ {5 l! G S& \. X
1 }5 r+ J {- ~4 Z% V1 B, K. w$ _ memcpy( &m_light, pLight, sizeof( m_light ) );8 D4 c+ |7 {1 z. J0 o7 G+ d" ?
3 s/ k' m3 I9 W% x pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
9 @' l8 _* T6 f pLight->Appear( m_pd3dDevice, TRUE );+ J+ v& d6 S3 \4 u
$ n% Z# S" ?* f& Z9 _
DWORD dwR, dwG, dwB;
9 F! i1 [/ U0 `2 h0 X dwR = (DWORD)( pLight->Ambient.r * 255 );
" C$ y' E. [; `/ M dwG = (DWORD)( pLight->Ambient.g * 255 );
* h1 p" W6 m0 R# J: G" k2 T dwB = (DWORD)( pLight->Ambient.b * 255 );
7 ^7 ]$ o. A! G( `$ e- s1 t dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* H! X9 j( W# ]# ?! f' E }
3 v5 m. J. W8 W" Z' N" K4 C }: T; R6 \& i) G; z8 t4 r* J' Z! {
else) F6 G, n) W. O1 w7 h( @
{; B2 ^& i$ J) g4 C5 c
if( pLight )# z+ m8 \- [9 k, @
{6 t" b9 }- z4 o3 K+ a" b
/ s+ j. f6 ]6 m% {4 C int nHour = 8, nMin = 0;
! m0 g1 ^7 J B* y #ifdef __CLIENT
$ { R+ l& ?1 n5 S // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ' ?. Q+ W0 E3 r# S3 s- d
nHour = g_GameTimer.m_nHour;4 t& w- J- s, ?& S6 w0 k/ W
nMin = g_GameTimer.m_nMin ;+ ]5 Y. U# J' Y$ O: s, ~) H
#else
+ h) p5 z+ W+ C& m // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
( c6 s4 C5 E' q. L8 t B- {' s if( m_nLightType == 1 )
; B+ K8 {! P2 d/ b j; J# Z+ m+ x nHour = m_nLightHour;/ V- k0 ?1 O5 Z& {' t! s( w
#endif" e, A: S. ~8 ~" r) j7 c
nHour--;
. l- P" [* x" d6 F if( nHour < 0 ) nHour = 0;1 d& E! g# ?9 J, A& G, F
if( nHour > 23 ) nHour = 23;0 r* a# m2 P2 ~7 R* Y; S2 l
/ L/ v0 s% ~9 S. y- \
//if( m_bFixedHour )
" ^- ^& f5 z( p1 I // nHour = m_nFixedHour, nMin = 0;" t7 D, i4 i; ]
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ E) W; Q' |; F
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
8 @+ o; t F6 r/ ~$ t) \2 E n; T U: T% g% G& t) m' \! y/ c1 Z
//m_lightColor = lightColorPrv;
$ [2 g0 L \9 r3 f# O5 e" ^# } lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
9 g C3 d' L) c! l( T" S3 I+ Y! ?4 O+ V lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 \; J$ E! W# [ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' b* U6 A c! f9 Q& W8 M
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
: D9 {- x. c4 O lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;) j2 m$ t- k/ j2 t- ~! O4 s
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' x+ i$ L; {: f. y0 Z
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)' I) ]0 B) G5 l: A% ~. s
4 Z s% u; }& \5 o0 \ // à??μ oˉè* 7 _% Y6 m( \$ Y; X, o2 q Z
pLight->Diffuse.r = lightColorPrv.r1;: |) u+ n- X: b$ L* L5 a
pLight->Diffuse.g = lightColorPrv.g1;- C. h4 g# n6 i/ K
pLight->Diffuse.b = lightColorPrv.b1;4 Z/ z( U$ g$ h7 u' v
// oˉè* ??à? : k. d) r* w& C' s+ g, s! m. `
pLight->Specular.r = 1.0f;6 X0 m4 x8 T) S) O" U) a B
pLight->Specular.g = 1.0f;
3 q4 f$ v. c) x& P pLight->Specular.b = 1.0f;: l S* u7 f( @' [+ ?
// àü?? oˉè* 6 Q; c, u/ f% @6 N0 w+ z2 u3 e. H
pLight->Ambient.r = lightColorPrv.r2;
3 _7 G. W) Y# ?7 y pLight->Ambient.g = lightColorPrv.g2;+ n/ q9 V; c, F5 Q9 ~
pLight->Ambient.b = lightColorPrv.b2;
7 `) \! G: d2 H1 F/ D* F" y+ o3 I2 q# `8 R; u) t; X
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
4 l) @! p/ f8 E {( G5 e% T2 Y+ U) l
pLight->Diffuse.r *= 0.6f;
: z% q( _$ u {. R( } pLight->Diffuse.g *= 0.6f;5 \# x% }7 c+ o g1 q* N3 c
pLight->Diffuse.b *= 0.6f;$ a$ t( c* i6 Z) G, l7 e$ l* R
pLight->Ambient.r *= 0.7f;) y: ]& L& C& v/ H2 E( `
pLight->Ambient.g *= 0.7f;" w, ]3 j3 G8 t. b; A( x
pLight->Ambient.b *= 0.7f;) E6 L( M/ O& s" E: ^- x
}
% e: [5 w! J2 b# d# J% o 6 |" U( U. ?. x1 j$ R h- {
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 S4 s; F1 p, u2 ?& [# \* i9 K if( g_pPlayer )
/ C v3 ?. E9 }/ m HookUpdateLight( pLight ); ; y, z6 J& \" b) F0 @
#endif N, p( i5 V$ r5 t2 G/ D7 |
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 v$ x. U& _, @( C7 G( j5 L% f: u; `9 F
#ifdef __YENV
# @4 A' d( @! l d. R! L0 ~ pLight->Diffuse.r *= 1.1f;9 n. p9 V% `( y: e
pLight->Diffuse.g *= 1.1f;. n# p7 A) F/ n8 c4 u' [2 n5 W+ F/ I
pLight->Diffuse.b *= 1.1f;0 [* W, _" e9 ^
// oˉè* ??à?
* ]+ k) M/ p- J* H- B pLight->Specular.r = 2.0f;& s" f$ h% X6 L! N5 H3 \& D+ l" y
pLight->Specular.g = 2.0f;+ K( F2 y6 @3 Z0 f+ I( z: ?7 d v: O
pLight->Specular.b = 2.0f;- O. a5 }# `* O% S
// á?oˉ $ v4 t9 c# W: N" c2 B% M
pLight->Ambient.r *= 1.0f;
# C4 l4 d, m" h) w pLight->Ambient.g *= 1.0f;
; L+ k G3 G0 t. T3 J8 ? pLight->Ambient.b *= 1.0f;* x7 t* {6 e2 M1 `0 h; _
#else //__YENV# P1 u+ N) Q5 a( N# ?! Y8 i8 o
pLight->Diffuse.r *= 1.1f;
) K5 @! H# ]6 s pLight->Diffuse.g *= 1.1f;8 v4 S4 v& D0 Y* n: B) {1 t
pLight->Diffuse.b *= 1.1f;
6 u: \8 O, n5 j; S' f/ F0 ^6 ^ // oˉè* ??à?
- r. k, W/ s# |6 u pLight->Specular.r = 2.0f;
/ \- r8 u6 l' M% i8 a8 ^! c pLight->Specular.g = 2.0f;
3 h( l9 s; X# w, W; V* H$ ^ pLight->Specular.b = 2.0f;5 k) N5 e6 z0 g! L8 M. L
// á?oˉ
6 R1 a3 K* n" X/ ~2 f0 Z" l pLight->Ambient.r *= 0.9f;) Z1 U3 e$ C# h! Z" A& f
pLight->Ambient.g *= 0.9f;+ `6 y& K5 e& G6 \% k4 I
pLight->Ambient.b *= 0.9f;
( f/ R) {2 e/ T) c/ z+ A; A l#endif //__YENV
0 c, g1 s0 c1 {
. l- X7 f7 J5 ~0 R memcpy( &m_light, pLight, sizeof( m_light ) );5 z0 e+ b' E; p" K( N
6 P, M; y) a, V9 H D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
" S. Q# H6 y# N$ ` D3DXMATRIX matTemp;
' u9 N$ I% Y& L* {) \% H# L* P K static const float CONS_VAL = 3.1415926f / 180.f;
% D% Q9 f; p$ T! i* r% G
" A2 W! z1 Z s) B/ [$ ?4 x% M; Q D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
7 }0 z( q% [. ~ D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);$ Z3 Z- O6 t( y! o) |0 v
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); % G- K B1 e0 ]- Y/ F0 t
pLight->Appear( m_pd3dDevice, TRUE );& ~/ w) ~2 t8 Y' h6 N) E
, c" I- f2 d% | // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 ^% g: O7 {5 D5 |; J# z
// D3DXVec3Normalize(&(vecSun),&(vecSun));6 d1 D% b1 C9 N
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 b& ?( Z- Z# G7 R
2 j0 N3 T m% l" a* ^1 a! R
DWORD dwR, dwG, dwB;* Z6 u8 c* ^, c6 S. a0 E
dwR = (DWORD)( pLight->Ambient.r * 255 );
: R5 C( b4 J, `5 E dwG = (DWORD)( pLight->Ambient.g * 255 );5 \! {% k0 {$ Q/ @- W
dwB = (DWORD)( pLight->Ambient.b * 255 );5 N: S, x" o" D1 I
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 l9 y' k' @2 }6 S }
E! t; Y5 i7 X2 F' L& Y4 W }
. o4 Z5 ]2 k- Y6 \- v; [2 C. p P$ a0 W0 t" G" Q6 f
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );0 j5 K" H6 ~/ F/ N
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) );
; i0 A5 Y9 ~- @! z ::SetLight( bLight );: @1 I$ q% y! m6 @7 M7 e6 C
3 p, E1 `, J0 H# E. k# z8 e; m // ±ao? ?D?í???ó á¤à?
' E) G8 x2 z6 O% f; ^2 R m_pd3dDevice->SetMaterial( &m_baseMaterial );
! A" [$ ~) t/ @
8 `) i3 Z4 `! T' i! B: r8 x0 `#endif // not WORLDSERVER1 k: n5 M$ E& a# m# e2 g
}
% Q B& }4 M% A并更换
, Q# O0 d& T" Z9 r0 y2 B, r cCode:
. g6 _* {7 H3 C+ S+ E__FLYFF_INITPAGE_EXT
- i! l5 `5 [# j8 m( I$ }% v定义
& r, u, n0 d+ O: f* q$ e9 M
- T; \/ P/ m+ @$ E8 q. G2 Z, t7 `5 w# t4 g( B- Y1 U( Y
! \4 h J( x6 V) \6 [: ^3 Q0 U6 ~; f3 u
现在终于删除我的狗屁加速...
( M9 _6 B; h% @2 f0 D4 c/ X3 U
' v( D; ]3 V; B5 Z7 J8 [5 v& r
- r' Z3 n1 O k. X- q |
|