|
|
食品车:" [, [3 L& ?8 X% F
尾翼:! w' |8 u) B* A5 r5 C6 S
, H! h" j9 V7 o! ]2 n3 K7 h' ~% L2 p, r代码:
, w7 P3 O3 e5 y- V$ D' L$ W; qCWndAutoFood::CWndAutoFood()+ U0 y6 a J0 G: U; K& D
{( a2 Y9 [2 W8 m2 R( r8 M
m_pItemElem = NULL;( }0 H7 J6 d; e' y
m_pTexture = NULL;. ^9 G( R: ^# h: G
bStart = FALSE;
" E8 Y3 E/ z1 ~- f' c}8 F( S; q0 O O# n0 |$ A
. j- A: Y- E6 f! O, s4 wCWndAutoFood::~CWndAutoFood()
* q+ V- T* B( b{* w b$ d" |# \' u- e
AfxMessageBox( "AutoFood ist gestorben " );& s, S5 _' N$ q8 c u( X2 ~3 I
}
. W8 E, a# Z- x, m0 ^8 gBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
1 I* S3 E. @+ p% t5 q6 w{9 n$ F" g. [" g# V
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );& g5 n2 c! \( C. q/ K
}
& v" D; x. B# s5 o J8 X) w# E4 i+ f5 s
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
) k1 Q. p9 x9 y: J{
# w- b. X0 C! F F) n LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );0 C0 p Y, l4 |$ t6 J2 f; G
CRect rect = pWndCtrl->rect;
* V* k ?% W+ G if( rect && rect.PtInRect( point ) )# q, u6 G- }; o4 z
{0 I* S( o3 s* ^# o& k: o
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
: _$ |. V, \1 i0 S9 j if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )( M1 `% S# F2 W) d( G& o
{- m4 i/ e7 C p4 ?0 E7 o4 s4 u
if( m_pItemElem )
1 r# }3 Q2 D2 |! m {
, h- D( U. m' q6 Z m_pItemElem = NULL;2 I0 b5 g/ k9 P
}
# |( B* R$ L+ o" ]3 C3 s. w6 h m_pItemElem = pItemElem;& @! c- z$ ~, _2 w$ R
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );# @8 V0 `) G& i: Y' N
}else{
" z- b7 x" X0 N9 Z- l5 z' g SetForbid( TRUE );
$ C1 ?6 C: |0 k }1 c" |4 K" f# Z5 ^: s
}else{+ N0 E( a! b# _7 ~% H9 f; I
SetForbid( TRUE );. t3 K; m: c) _! Z3 B
}
/ x1 Z0 i1 x! J' k- \2 z8 w; N return TRUE;8 ? C$ e. i2 ]8 q2 v! v
}
4 i( {5 ]" R4 s6 Q$ w/ [
0 a. Y& @' O$ E2 Z; `5 k0 v e( JBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ): J6 \3 f6 ]3 @0 \8 F/ v$ ]) n
{
t+ p& L1 i- ]1 N switch( nID )
# m _* Y1 [( g! @8 L$ B9 V {
% }0 k$ Z: _& q4 [ case WIDC_BUTTON3:% N, l6 t3 A- S/ O: f
{1 }( \# D6 L. ~& z
bStart = TRUE;
+ K, X5 O" d6 ~6 y% Y3 m$ x break;- a4 r3 L# |% m9 t; t+ e
}
, r9 \* k7 R+ M8 M. P4 b case WIDC_BUTTON4:
- q& ~* r# ?5 ] {
' }8 M" Z8 i- T) E: }5 k bStart = FALSE;' n3 `4 F- t2 M, | b5 V
break;, D" [9 t0 N' e0 y$ _
}
2 G! b* h) a/ z9 F }
" _: M" H+ O$ n return CWndNeuz::OnChildNotify( message, nID, pLResult );) w1 r. c! D& E! [
} 4 _3 Z& A8 N' W/ ^; M! u, U x
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
5 N1 v- F% k3 w2 w+ z& T{
& K7 E( B5 F5 a( K8 N CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );0 z4 [" ?# l, i+ G) K4 k1 [* H' t
if( bStart || !m_pItemElem )2 [6 w8 W# I' o! D0 Q) [
{
r( O* e' |# K; p3 L pBtn->EnableWindow( FALSE );
0 o) R3 v: @" t( E& f6 R }else
8 m0 G$ W7 j& V1 H. c& V( o h1 ~- F pBtn->EnableWindow( TRUE );
4 B7 ]& q0 n/ d8 g6 P8 S if( m_pTexture )
& d/ V; q# X7 k* c7 ?7 t4 j {- o) {& y+ l1 q; z) K2 |
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );! i, q2 ]) J5 @* o9 e9 y8 k
if( wndCtrl && wndCtrl->rect )
+ i) t# v7 g/ l0 ?7 }: \! X; M; S {
( G7 _1 M% J: e m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );5 r; q2 O% n# R: R. n
}
6 z- [" h) S g- I: T. M6 O9 ` }
4 @% Q) s- {$ | B' e3 t}# K# z0 c0 I1 S! A. \% P
9 {! B- L' Q y6 u0 |BOOL CWndAutoFood: rocess()
5 x2 P- S9 y) g$ T# K M{ `' h, p4 q: |3 H$ a
if( bStart )/ q8 k3 B/ n' g1 P. v% h% v
{3 J6 g5 B4 {6 e7 [7 g
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
/ k2 |0 s4 E5 q {0 K' I7 I( O: q: r! k
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
1 u# Z% Z# @0 z/ V( O" _ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
\) f. e0 B! N/ l: C }else{* E$ f/ {, J3 R+ Y: Q
bStart = FALSE;! O1 f o9 h1 d* I! `& n0 `
m_pItemElem = NULL;
* J1 U' w8 H. L }. l7 w7 a' C" N7 i/ E
}4 A' C# q& `. w' d
return TRUE;
2 B9 Q6 E: O% r/ Z7 Q1 u/ X7 B}
% }7 j7 |% @) e" s" E9 N+ ?4 _" Q) k3 b9 g
登录视频废话:! q h4 ?! S8 u
尾翼:+ [" o3 ~ @6 A+ d$ Y
7 l+ r% y. y6 J
代码:' _* n: p5 N8 o4 I0 p
. O/ O' ^$ Q' k# x" G' R0 N. l' e
void CWorld::SetLight( BOOL bLight )
j0 G( f2 G# o' p% A7 adurch
# B. |4 H3 r; qCode:$ M' q- ^7 c* Y9 M2 q! i
void CWorld::SetLight( BOOL bLight )
+ Z+ e2 T" N8 Z, A1 o/ i1 [{& p7 r( q7 L9 A) L9 z4 w; s$ v8 X2 L
//ACE("SetLight %d \n", bLight);0 Y! u2 }" t' D
u. e, I+ @% Q! ?6 c
#ifndef __WORLDSERVER
8 V K' p7 t8 `6 a3 M4 z D0 h DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);" f* a5 r! s `5 i5 q' z1 i
CLight* pLight = NULL; k9 d b6 D, x* p* R3 e- c4 H
k8 w) @$ u3 h
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
- r0 x# X0 c# ?3 a0 C" V: h9 t- h Y6 ]
pLight = GetLight( "direction" );
4 e8 K* s9 I) r; E5 ^+ s e2 b2 l
% r" N" S6 v1 X+ k% s#if __VER >= 15 // __BS_CHANGING_ENVIR% Q6 [0 D% Z) N i
if( g_pPlayer ){
1 k& N2 ]$ `) B9 }- E0 y6 B$ H# e ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );* ~+ m% V$ ^% e" r5 I
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
% T% ^9 q4 N) a. O, N3 [. C' n {
: V% ?9 H* r) v, U# {. o% c; \ if( pLight )" a9 Z# K% E/ d7 f: }8 }3 o) e' p
{
6 K& X, |. [8 O+ G R9 k: b# g pLight->Ambient.r = pInfo->_fAmbient[ 0 ];. D& R& }% z5 [8 h% w
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];2 i$ { ]" k( q) j( s* m( L9 y9 }
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
, u Y4 [$ A0 \! x
9 U# H9 c" Y# A- O) o& y) _ pLight->Specular.r = 2.0f;" E* A! R% x# l5 @) t
pLight->Specular.g = 2.0f;0 I8 I, R5 k% T ], W$ H& K# [* n
pLight->Specular.b = 2.0f;5 [6 Z( g, ~* h; J& O; M
- p" _3 |2 y$ {9 a l( y
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
1 t' P: t% L' m1 q pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
9 \1 I$ M* I% ]9 L2 d pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];, Q9 q( V! L( c
& V, l6 `" w( K4 {" y! r* y9 O HookUpdateLight( pLight );
6 Z- D5 a6 C# e1 i6 m+ P2 t" }" q. i5 J, m/ ^* b0 ]
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );" A9 a0 _+ c9 S$ l
+ x# K0 t8 u# ]$ ]4 u% @* m0 H pLight->Diffuse.r *= 1.2f;" \, a3 [. o! C3 ]+ `9 y
pLight->Diffuse.g *= 1.2f;, p7 B& G- T7 A% y6 |/ v
pLight->Diffuse.b *= 1.2f;# }6 Y4 Y7 }, U" S
5 @4 r' K% f# H9 \! I8 ? pLight->Ambient.r *= 0.8f;& t8 a% J1 O. v2 G
pLight->Ambient.g *= 0.8f;9 Y) ^4 i% `( _0 }! v" q" o$ D
pLight->Ambient.b *= 0.8f; v1 S( j1 Q- |2 U" [3 C% L0 I
5 r( J" G/ V% D% F& g4 C2 h/ p
memcpy( &m_light, pLight, sizeof( m_light ) );
- C/ i- Y/ [7 Q& t% |9 b/ |! @
X- o0 Y2 I, Z' L D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 [0 k8 v6 ]) ~# }
D3DXVec3Normalize(&(vecSun),&(vecSun));# K' g2 J8 P' P6 [
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 1 Z) S) L' C8 l# p0 ^
pLight->Appear( m_pd3dDevice, TRUE );& S9 x/ t! H# Y
1 u7 m% T2 c3 N0 U) a; G |1 k# J DWORD dwR, dwG, dwB;
1 s6 ~6 b4 Z+ s" n8 D, U: p dwR = (DWORD)( pLight->Ambient.r * 255 );
1 i3 E5 |* H4 \9 A' z6 X3 C" W* F$ n dwG = (DWORD)( pLight->Ambient.g * 255 );
?, ~) S- l/ ^ dwB = (DWORD)( pLight->Ambient.b * 255 );" s# J, m$ ?9 ^6 I
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 D, G' c! l6 t. w7 a! i: r. g }
* B1 ~' V5 Y R$ \, B, L }
8 x8 T8 W. Z& f6 j+ h }
% O6 B; Y3 ] o- ]# @ else
) R$ E( U% J* @/ j2 ]1 J#endif % r. Q! Z4 a/ U. I P
1 ]! Z5 p# F: \+ n5 T _) X' ~3 [
if( m_bIsIndoor )8 [! m' T; P/ {. w- G% L
{) m7 r* S6 W/ i
if( pLight )! O* o3 g5 u0 @4 {7 p
{
5 w k" `2 L) D9 Z // à??μ oˉè*
) D8 V9 H, l. C# @4 W; ` pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
$ H/ \9 f9 H, m: Z9 j pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
, Y w6 }( H& j% t* U/ p! ~ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
) P9 d9 P0 [1 I" D1 a* E; Q- j T: U& U/ \# c
// oˉè* ??à?
" J |" S8 ]' S: ]. G& u pLight->Specular.r = 1.0f;
# r7 f# d$ @- g5 ], e+ ? pLight->Specular.g = 1.0f;3 U2 E- v {+ D% n E
pLight->Specular.b = 1.0f;
: C! o0 e7 ]3 E0 L0 w& z9 | // àü?? oˉè* 6 L( r) l& s) i3 c
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
! g y2 U! u1 o$ g/ _ pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
' W* n! ?/ I* P! X8 K, B pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
' G2 a- m) Z1 `& z; i. B' \1 Q: D1 \: S1 ~$ G% P C7 U, i) l
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, G) [' V1 `- e {
9 n1 X, [. n0 T7 C" o& U1 o pLight->Diffuse.r *= 0.6f;
5 K" E5 z' ]2 F) B, n+ `2 c; q) ?0 h pLight->Diffuse.g *= 0.6f;
8 E0 h% l, ]9 h4 L( D pLight->Diffuse.b *= 0.6f;: R" |2 c6 ^% ]
pLight->Ambient.r *= 0.7f;
' z x& D2 `. h! k pLight->Ambient.g *= 0.7f;
7 L3 |5 w: P+ _& L8 | pLight->Ambient.b *= 0.7f;/ E2 C+ Q; S& F" X+ h9 M$ ]- \$ X
}5 w1 n& j( j- d" ~/ e
$ E% \8 p5 E/ k! v' i( l6 I
#if __VER >= 15 // __BS_CHANGING_ENVIR3 D5 e2 X* W5 d* l1 [$ x
if( g_pPlayer )
2 t* I# k8 r' R- d4 ~! l HookUpdateLight( pLight );
' B4 R# Y! v5 ^; x7 [' o#endif5 t5 z3 }3 P$ W" b# `) L
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 I X' o- L( u$ }" ^
6 b! y; j; u7 p' i( ^ pLight->Diffuse.r += 0.1f;
6 |+ u4 ~6 d: S- ]. m- d7 } pLight->Diffuse.g += 0.1f;
) B3 T) y" t n& {+ E pLight->Diffuse.b += 0.1f;
9 M7 E3 ^- A4 z' S) N& r- v! ~ // oˉè* ??à?
% g) u0 p. O3 ` h pLight->Specular.r = 2.0f;
$ b2 s5 m. P: E. x$ | q% \ pLight->Specular.g = 2.0f;% j8 ?! r# G; |- D2 L. j0 W5 y
pLight->Specular.b = 2.0f; e8 l/ _' y, C0 \8 }) W
// á?oˉ
( W) K: U8 O: _2 s% R: M' O) ] pLight->Ambient.r *= 0.9f;
7 O) s2 V' p& }. t" V9 R pLight->Ambient.g *= 0.9f;+ a- P: M2 ^ i9 T' p) ^/ H
pLight->Ambient.b *= 0.9f;
9 _# ^8 E& f7 K _% E' n( b3 |! j2 i ?. S! D4 |7 T4 C
memcpy( &m_light, pLight, sizeof( m_light ) );3 w- Z0 g. u! r. W4 H# ^& w, `, s+ T
% ]/ q. j1 ^ I$ R
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );3 x2 S: o$ b3 d& s3 k6 T0 `( O
pLight->Appear( m_pd3dDevice, TRUE );2 }7 v9 R+ X& U2 A4 X
9 U& U/ I5 d1 @5 a! A
DWORD dwR, dwG, dwB;1 T* q' q& [2 K1 ^9 ]8 p' E
dwR = (DWORD)( pLight->Ambient.r * 255 );
( q. _' `: ?4 K3 u1 _% h% O4 d dwG = (DWORD)( pLight->Ambient.g * 255 );2 w9 g7 j! Y9 R2 G) g0 }! l& \1 ~
dwB = (DWORD)( pLight->Ambient.b * 255 );! X* a0 n# {; h! i
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- U- F ~( L8 b1 w h# Y }
) h8 i; F4 O6 V& D- x% l+ f }0 A+ ]) q% G' x; P! Y6 v
else. d5 H; ~# } t! C: H1 N& b+ M
{
2 ^+ _% }. Y3 t+ G. o& J1 y- D if( pLight )9 R2 s7 ~0 C7 H' ], n3 O+ T
{0 Q; H2 o8 c# H# A
: f. }0 t0 T4 d7 C int nHour = 8, nMin = 0;( z9 r9 O7 E y7 A6 ~3 J9 K8 Z
#ifdef __CLIENT: ~7 o* {2 j: N8 Y) l
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
& F5 @' a& y3 R4 L$ a% e. b nHour = g_GameTimer.m_nHour;
- D$ [; ^' ^8 D2 L nMin = g_GameTimer.m_nMin ;
8 n: @3 E3 Q0 b5 `5 T& n #else) k) U* b9 y% M- s) d) Z
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.4 @9 o6 j" o: a# R
if( m_nLightType == 1 )
8 W& l2 X& C* k. j& b nHour = m_nLightHour;& R X# w0 `. D9 c
#endif
4 H. E+ y$ p4 E" e) B6 g nHour--;
$ m* r1 }6 Y+ j! J if( nHour < 0 ) nHour = 0;3 @% O( B0 r6 a" N' M# ^, x; ?
if( nHour > 23 ) nHour = 23;% B6 b+ q- j6 Z/ O, X
& g* h& O0 E T4 Y- b% T //if( m_bFixedHour )
/ W5 G$ [7 N1 j! \6 L/ T* r // nHour = m_nFixedHour, nMin = 0;
0 W- y3 g5 c' G" z2 \ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' P- R9 x1 {& ^6 J0 b" w- O# f LIGHTCOLOR lightColor = m_k24Light[ nHour ];
& k, k7 n. S2 h# x/ K; d b8 b) }9 g3 s7 B- _( u# x
//m_lightColor = lightColorPrv;
0 p1 R' K, |: p1 N% H" I0 ]1 S2 E+ K lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 ^( r" ]* s9 q lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;+ m, u0 }2 k6 Y: e0 O7 K
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
/ n: g9 a4 ~; U; v- I lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
+ k, b2 Y3 T% B5 ^# R4 h lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;5 L; i5 A9 r8 {" y, S0 c0 m
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
1 t% d; ~- ?" A1 R# g5 ]5 v( ^ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
8 D w! I2 \6 y" X, p D9 h: y z3 v4 G. O& }$ J6 q
// à??μ oˉè* 6 ~9 y3 j# w! {3 ~
pLight->Diffuse.r = lightColorPrv.r1;0 g! h. J% t8 w9 w+ m$ z
pLight->Diffuse.g = lightColorPrv.g1;
" o) R$ K& U3 w" S% e pLight->Diffuse.b = lightColorPrv.b1;
+ m$ ]: `* {6 C& e( w // oˉè* ??à?
1 A8 J% |* _9 T8 n ], G0 W pLight->Specular.r = 1.0f;
1 o$ ?# r+ n( k pLight->Specular.g = 1.0f;4 G! p* q, r5 i& m# P+ \
pLight->Specular.b = 1.0f;/ f6 x/ u& ~0 q
// àü?? oˉè*
1 m- z9 o& F, m! t( S/ P U& s pLight->Ambient.r = lightColorPrv.r2;- S+ Y" J$ J" m/ A9 P
pLight->Ambient.g = lightColorPrv.g2;7 Y1 y/ O- y5 ?3 e: R. C3 ~2 F% j
pLight->Ambient.b = lightColorPrv.b2;( B% w' _: o+ P
2 a ]' U# n, }9 N# L if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 M# W4 d7 _( C- b1 a# T4 H {' d6 K7 H8 b7 s$ |3 y
pLight->Diffuse.r *= 0.6f;, D' E% I+ Y- R
pLight->Diffuse.g *= 0.6f; ~) r6 O- i9 l
pLight->Diffuse.b *= 0.6f;$ l: @2 q8 F/ F$ r. Q& i4 b2 f
pLight->Ambient.r *= 0.7f;* c( ^1 ]0 R- Q( u% ^- M) ?
pLight->Ambient.g *= 0.7f;
9 L2 w G9 z& [1 F. U pLight->Ambient.b *= 0.7f;
^ \ g# @$ R }5 d8 V7 N& x" ]9 \
$ d( k8 I% ^- M2 n, j2 G$ F1 q. P. P#if __VER >= 15 // __BS_CHANGING_ENVIR
9 {8 g4 a4 x2 D if( g_pPlayer )1 w ~1 o* v6 I7 Q# m2 j. V
HookUpdateLight( pLight );
4 k8 t- i" \7 J$ l. d: F#endif; |7 G7 g% |1 }0 _+ L
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" k3 Y% h( S3 c" Q
' k7 Q% S4 ?6 ^3 ]- W3 Q#ifdef __YENV8 y+ h- V4 s1 p6 z
pLight->Diffuse.r *= 1.1f;
+ L A* T' U2 c% T# \& f" {! _ pLight->Diffuse.g *= 1.1f;
. R) q4 V- ~, z% S6 N" z pLight->Diffuse.b *= 1.1f;
5 Q6 n4 L1 h. n6 i5 _- X! m // oˉè* ??à?
B' G" S( M* w8 \' Y/ g, P pLight->Specular.r = 2.0f;: f5 ^: \2 w/ v. {, m& X. b t( T
pLight->Specular.g = 2.0f;
$ Q6 H& H; v. B6 C: d pLight->Specular.b = 2.0f;6 }4 D4 T g0 W0 \& Z
// á?oˉ 6 l4 S% I$ R$ y1 N5 D3 r
pLight->Ambient.r *= 1.0f;* K7 G8 D1 O2 F! U# b5 |8 M; u
pLight->Ambient.g *= 1.0f;
' o7 p) U; ]' w3 d% Q pLight->Ambient.b *= 1.0f;
% l5 b$ g- {! C% N1 P7 q#else //__YENV
8 H0 F* v8 |0 T pLight->Diffuse.r *= 1.1f;2 `( n) i. O6 e' r- J0 Q. T" J
pLight->Diffuse.g *= 1.1f;
1 D# M& F1 I" E8 v1 B2 s$ b- k* d pLight->Diffuse.b *= 1.1f;
8 e5 I) ]* b5 M4 { // oˉè* ??à? ( ]( r; Y% _6 t8 _
pLight->Specular.r = 2.0f;/ D/ ^1 H( g9 T+ _4 o
pLight->Specular.g = 2.0f;1 z5 U% O$ e& A( K- \6 Y4 X4 S1 s
pLight->Specular.b = 2.0f;7 K& `" O' h& \( |( X5 p* |$ o
// á?oˉ ' Q1 O5 A! ` z6 p8 \+ ]
pLight->Ambient.r *= 0.9f;
( h- I# i7 w' C6 |0 ? pLight->Ambient.g *= 0.9f;
1 D( J: E& U- y+ _! d2 Y pLight->Ambient.b *= 0.9f;
; u( t' _5 ?6 r#endif //__YENV
& e9 c! Y+ g6 B# |* k8 N
& ?- W" p& k% ^; C6 @+ C- j$ m ^ memcpy( &m_light, pLight, sizeof( m_light ) );
' a6 _4 I! \! X' ]) W9 t9 [ ; {/ d# Y7 a+ H7 W+ v% T: G' Z
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);7 i* l7 W" U% Q5 L- Z3 ~( d
D3DXMATRIX matTemp;
3 w, J V2 s$ @( S" g: q4 D, y static const float CONS_VAL = 3.1415926f / 180.f;6 Q% ~0 X( }( n6 h6 z
' Q$ a: J% B. P$ H b* i9 u
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);2 D, p9 c: n9 y) T; X0 K: V K
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
j4 C2 o: F0 d5 o3 H: z7 j pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
+ C1 z* f2 u- b6 o7 L9 a pLight->Appear( m_pd3dDevice, TRUE );
% F: r* i) c5 u r* q
0 D. l* k+ F0 F2 C7 P, B: W // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);. H. b: o; s. B; o. o0 P( R0 L8 i
// D3DXVec3Normalize(&(vecSun),&(vecSun));$ d6 Z M5 l$ i) E3 n) R4 P* D" _+ F
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, h7 F u% P4 {# T4 h* y! i0 X' H8 S1 _6 m6 m
DWORD dwR, dwG, dwB;
" T+ K, ^8 F# ^' ~; y dwR = (DWORD)( pLight->Ambient.r * 255 );) v$ \& V4 G0 Y( l) u# o2 {
dwG = (DWORD)( pLight->Ambient.g * 255 );
8 O A) ^7 u" y& d+ ~ dwB = (DWORD)( pLight->Ambient.b * 255 );
# S* ?, q/ j$ O3 Z' m0 c7 k9 y# \; \ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, w+ E9 u+ c- g9 ]2 D" H }4 Y) {( |$ [6 U' y& I, s
}. p( R8 D" O5 F8 h1 X, T4 Q
) A8 `+ W& q3 n4 c7 c) R* x% s1 L
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );# @; J6 i/ r: v$ H
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) );
2 `' e- i; k4 L ^! H ::SetLight( bLight );
- W- Z: ]! N! s5 }5 g! E8 w7 U4 D+ L3 x- ]6 N
// ±ao? ?D?í???ó á¤à?
4 f: z, d+ B7 l+ D) h; }& C4 X m_pd3dDevice->SetMaterial( &m_baseMaterial );
- Q/ q& f, U" f& U 3 t+ g. Z3 ^6 R/ M* g4 C$ L
#endif // not WORLDSERVER
$ a6 ?& P4 a. r1 u, ~ b' B, m}. [$ ~( z, b3 x% K9 r+ o
并更换6 _. m' Y( T5 p1 y
Code:% r, Q5 \* x6 _1 N: b
__FLYFF_INITPAGE_EXT/ Z# O6 e+ v% C4 N5 R# q& n) h
定义
( R% V r- e& s x2 L1 S7 K- A: U7 Q0 U! e/ N) d p
0 V3 S9 a8 y( ]3 t( @3 |
8 P. K v/ ^2 j$ ?# W$ O4 x# |3 j7 U2 Q. l
现在终于删除我的狗屁加速...$ ~$ n; E% S3 O& f+ |! r6 `$ C
* W$ i- y( K/ P5 s1 w4 q- ~9 i
( U9 j; _. Z" J( i8 D, d
2 Y# I6 e( g; y: _
|
|