|
|
食品车:+ k" V6 a& L" g
尾翼:4 e$ J- A4 c% L- Y/ K+ N
0 `' s4 F& d+ M" o9 w# K代码:
1 B* Y: t' q: S* sCWndAutoFood::CWndAutoFood(); g6 ~' ^5 V" c8 J0 v/ }4 [ U( I
{
" q$ a+ {; S. ? m_pItemElem = NULL;' }- U, U0 g w+ J0 @' w
m_pTexture = NULL;
% ?4 W* X# k, F' |0 J bStart = FALSE;' M8 k4 \* J5 ?! u
}; d- |* _( G6 J3 d3 A# r
# h8 K2 ?; w! o( a
CWndAutoFood::~CWndAutoFood()4 G8 s9 X! w2 c
{
( v! y, c3 F# j4 U AfxMessageBox( "AutoFood ist gestorben " );5 Y: j$ { l/ ~6 z
}4 s; j2 ~; v% w4 p W
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
* K. S" n- a; h8 D% \{8 G" R: Y# E/ ?& j- a5 d
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
8 O* w% C) u, _7 D+ f0 A3 U' w% k}
* D* `, i* r: l
5 v( ^# L) q7 o& P* O( `4 o" n/ YBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )1 n' ?1 `. f; A9 J
{
) z% f( v! j) q( g LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
9 F' T& j1 Z2 ]: f) B* G% B+ n CRect rect = pWndCtrl->rect;
7 v& B' ]& Y' v! L if( rect && rect.PtInRect( point ) )
) g6 _& K5 `# z/ x4 ~2 | {
4 a" p3 W2 N( B* z5 c CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );9 i+ Q# \' S. e( g1 |8 z8 O) O
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )- b: y; U8 n3 R) I3 P" E/ T1 A
{
9 u, k6 r6 T% B" \' T0 x- F if( m_pItemElem )
( s& [0 k8 z$ T5 A) { {
& [' r' _4 h6 A9 N m_pItemElem = NULL;
( Z; G. {# \6 T }
% {. R9 r0 Q( m" @/ W2 t m_pItemElem = pItemElem;1 [) S" P/ A/ H# q( F
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 W$ ]/ a& h Z L i6 E }else{
3 d- b7 w) z0 d4 e$ C SetForbid( TRUE );
* D7 H1 a$ z6 [; H$ I }
4 L; D9 a5 e- c1 t }else{/ c6 Z5 c0 M: F2 |4 Z$ G7 ?+ Z
SetForbid( TRUE );2 t- P9 T {2 @8 u
}
/ M( n$ U, g. ?4 k! i5 r* W. h return TRUE;
# E" B4 Y: v! S) t( S5 g}
5 y) W! J' ?3 a& R* _5 b# ]" w1 M% n5 S; h6 c
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
A% X7 T* F/ \( _. n ^{
! J/ d; s, o7 O( B, r# e switch( nID )- S' Y! E1 C7 S" Z0 M; t) p/ c( |
{
1 W6 p# A$ L- x+ s3 l! v% | case WIDC_BUTTON3:
# B( `4 f8 h8 W3 N- { {
- A0 Q& l, r& M" j bStart = TRUE;# D. w- n; N: d6 r! }
break;
( j" A. Y$ Q1 j$ w8 U% {8 R5 O }
, s% i0 ]6 r/ p% t- l+ X+ q case WIDC_BUTTON4:
3 l4 ?' c( I9 Z4 U* _- a; ? {
. c# k4 w2 I3 ^ u bStart = FALSE;
7 C8 _! ?" ~8 O( h9 A' @& E) S break;0 N4 e: a3 Y* e+ e) n
}; i. g g) M- m4 e- m
}
* z/ b1 c4 V p7 |& J; I return CWndNeuz::OnChildNotify( message, nID, pLResult );: u) X0 H/ q) R5 t. X
}
& b$ V/ b7 h M8 B- }void CWndAutoFood::OnDraw( C2DRender* p2DRender )
- j4 R( a# H/ Q/ x5 L8 _{: ]0 x! ^. a) e( a5 m
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
4 r. V3 h1 D- c: p1 O if( bStart || !m_pItemElem ). Y9 R7 n2 i( C) r) r: P a
{
' C* M$ ?5 U: L- y: J6 ?2 c: U- I pBtn->EnableWindow( FALSE );- o& a9 _# I0 J: L
}else7 {0 a9 U0 w/ w! {, Y9 J
pBtn->EnableWindow( TRUE );" U: y: g% K" }
if( m_pTexture )
; V4 Z( R! {1 ` {
5 K' d) s. p5 b1 w5 ~/ g6 q7 q LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );) c( q0 Q6 Z2 ^8 J# n, E, A( [5 c* `5 _
if( wndCtrl && wndCtrl->rect )' y+ h* ]7 G9 e+ c, u
{/ ~1 f. v, B, ^
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );! z4 L# x* ~: C7 ~! L/ W t" N) n
}
7 L. ]' [+ q1 G/ J# Y }1 ?" e' q1 c$ P Z9 `6 Z# ^
}; j& w Y* Z; J! B9 y: C" p, t5 E
3 ?8 e. I% X6 r* m4 v" ^! q( o
BOOL CWndAutoFood: rocess()
_- X5 t+ L! v8 q$ ?3 \3 \1 E{
, P/ e4 Y0 f1 m$ c6 T if( bStart )" ] X( c$ q0 a; I8 c0 k
{7 P% p9 L2 _7 U1 y! p6 E
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
" V+ e4 X) Q/ J7 {: E {" s4 C1 S% Q. 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() )# E3 o) v$ P4 v/ v8 d
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );, D+ I$ z9 H1 D+ S
}else{4 {" C. r4 g3 |- M3 {
bStart = FALSE;
: y7 m( Q5 X1 G( |* P: R/ R m_pItemElem = NULL;# x$ E. s" A$ r4 p8 b5 n
}7 l% o% y; w8 e: i6 ]
}
) r3 \ G6 j6 r9 N7 i8 e return TRUE;
/ K2 {- v# a* ~6 A; t0 C}( q- @! a# ^4 H( a% \( l. b$ O+ B
' m& F0 {/ p9 n1 Y: \2 Y3 Y" F {登录视频废话:6 D. ] F: n/ Y. U! a% L. n: D, D
尾翼:. E, b1 r$ m5 P2 Y& Y5 m
# l0 J6 N0 _% f! d6 J6 u; u+ F1 W. L代码:6 |9 t Z' h& o/ z
5 q% z& y4 H: j+ R+ m2 Q
void CWorld::SetLight( BOOL bLight )
& ~; a4 `# g5 ]3 O1 S6 @' h7 f x0 bdurch
s( E+ ?8 m% c/ P* J$ d( Q' i% ~Code:7 D3 u! N0 H3 V$ w. G% ~4 c
void CWorld::SetLight( BOOL bLight )" U) r7 L* V$ z- j8 C6 @" @4 J6 u
{
3 F; \) A/ _: j //ACE("SetLight %d \n", bLight);
- G5 C Z) C! p4 ?
/ n& [9 X, Y: o- I" h#ifndef __WORLDSERVER 3 Z0 I5 y* x0 O4 b
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
) D+ I! N' V" M8 g0 g/ D CLight* pLight = NULL;
: y6 p% H& @- \8 P/ |) C1 U8 U
4 _+ l: w; _' \8 }+ u9 w D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );5 Y# {- y3 ^8 v2 k
/ h; N _ K) E. C$ z
pLight = GetLight( "direction" );
- b$ ~ ~: H% g; r% N9 R' j
; J& A+ e y" b% Q% c2 X) r' f ?#if __VER >= 15 // __BS_CHANGING_ENVIR
$ U1 L/ v' X! s" T7 n4 A if( g_pPlayer ){, @7 n8 V. s3 C2 d9 e7 u- N
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );' ^1 G1 t/ b, }% J4 \; [
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
9 A( l6 L0 f+ Q {
" h5 i/ O- x' `' k$ _0 k8 ? if( pLight )
5 S% J- {% z" e% |: x3 o {
) G" T& | N3 h1 s- [) x1 _ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];4 U' [. e9 a/ E0 @9 i
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
1 o) Y5 o% z5 v% t) { pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
2 q" o/ ]+ N$ u2 l; Q( q5 H& I3 \! U" U! a$ Y
pLight->Specular.r = 2.0f; F5 Q# | {, I# @( p" `
pLight->Specular.g = 2.0f;
0 p! t6 p. l0 {3 Z: _ pLight->Specular.b = 2.0f;
" q3 F V1 M3 r. B
* \( u* m/ U0 I$ c pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
, L* [/ u- @+ d: Y8 i; w pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];" a8 R5 L( l1 m+ j. O$ R
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
' b) ?0 [0 A' D0 w) M, P ' s' s4 l' g8 n
HookUpdateLight( pLight ); ; S3 m- T4 N/ ?# [3 H
6 Q$ B1 u8 r" Q3 q: v( k/ b
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* c3 y5 m- [ F' r1 r. L9 e
; o+ u! L- L+ u0 g5 y
pLight->Diffuse.r *= 1.2f;% i- `% f9 [1 [: r. g% j* f
pLight->Diffuse.g *= 1.2f;0 Z. k# s+ y$ n2 c! G
pLight->Diffuse.b *= 1.2f;
' Y2 p6 h% t; }- b" s- c1 K. a5 v
/ P( B g/ W% N pLight->Ambient.r *= 0.8f;
* a, x* N9 ]6 {5 I& A7 @$ A2 b pLight->Ambient.g *= 0.8f;, R7 V( R) l [ f& O# x& c
pLight->Ambient.b *= 0.8f;( {9 W" y1 v; C( P) L
0 X c. U' Z2 d# s# ~3 {4 d memcpy( &m_light, pLight, sizeof( m_light ) );
8 s3 `% E1 }7 x* p; r- D4 v1 H3 B0 m+ c" q; P
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# \: j" S, i% g7 E7 e' U D3DXVec3Normalize(&(vecSun),&(vecSun));
( F1 d' }1 O. Q: u$ p& K9 N) r pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " n9 ?, B$ ]7 R4 x' w8 [, y, Y
pLight->Appear( m_pd3dDevice, TRUE );' v! s9 B9 h5 q+ w, s1 u$ S* i t2 r
G! u- P& o6 S+ N$ l: |+ M6 j DWORD dwR, dwG, dwB;
2 B4 i5 B+ J# ?* S7 i dwR = (DWORD)( pLight->Ambient.r * 255 );
2 C+ b$ j9 v' H5 ?/ X+ o dwG = (DWORD)( pLight->Ambient.g * 255 );
6 A9 N" h& O! w \0 J3 O dwB = (DWORD)( pLight->Ambient.b * 255 );5 c" i9 d" i D! F2 T+ v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 o- D+ k+ J" L e/ T5 v: G* q }
% F' S7 v9 b4 U }4 Z, e' }% f; C1 o
}- L* @( V! }0 a0 F5 \
else
* r$ V/ ^ F7 U7 ?( A+ M/ n#endif ' _ P$ O8 g$ i
$ E/ Z }; ]$ W4 u. ?* J if( m_bIsIndoor ); c# t6 m6 u$ y3 K! g; e
{: W+ ?2 t) i/ _& Q$ f2 f
if( pLight )6 R. d9 g8 T. k& Q. X2 }" {
{ ( @/ f3 R* |6 a
// à??μ oˉè* / @* X' b% `1 y2 V
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
7 ?2 ]( w7 c, w: Z- y% ] Y: V" [ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
2 t! L* }% a# ]6 ^' h pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;; ?8 R9 Y/ t" Z
, K, H/ x. X! G; w1 w( n; ~ // oˉè* ??à?
! B: J7 M4 C0 {- o3 R, V pLight->Specular.r = 1.0f;
2 E: R5 A3 t) `: D2 Y: [. ]& ] pLight->Specular.g = 1.0f;
6 v9 n! l& j& _) t l7 P. X* N pLight->Specular.b = 1.0f;
; p/ N: [ }% K H // àü?? oˉè*
" d. n1 y, B8 `1 W/ B$ M pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 M3 {; Z# O% @% a% l. p' u
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
" b, z6 O4 c7 I( J/ l3 B pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
! ~5 t( s' g' D) C& J7 q4 j) ?( H4 F$ h, ~, F- \
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.: ^ x1 V+ v! Q2 o/ I, \
{9 J. S' ^, G4 I. W- c2 \. f
pLight->Diffuse.r *= 0.6f;1 d* A* u8 ]$ ~# H( t
pLight->Diffuse.g *= 0.6f;
8 L" \% J* f, `; E8 s$ D pLight->Diffuse.b *= 0.6f; p" E. K: B( V. C# N. e; e7 W
pLight->Ambient.r *= 0.7f;, v) ]9 ]( [- ~# B* O) A% x
pLight->Ambient.g *= 0.7f;
" B( [1 U$ U4 f0 _3 J pLight->Ambient.b *= 0.7f;
S9 i b2 I2 D5 b. p" m, f }
G4 ^+ J h* V+ o9 \
0 O4 c+ w# ]2 T' j! P: P#if __VER >= 15 // __BS_CHANGING_ENVIR
; u Q8 n/ K& b if( g_pPlayer )
* E8 D7 o( @4 n" c2 h, p: S: \ HookUpdateLight( pLight );& ^- i6 K6 e/ I7 F9 U) A$ U: @
#endif
2 ~! r7 w& t2 [, s! l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. e# L- O( i0 G0 o* e$ H
- a( B/ N8 R; c# V L V/ p, J2 r pLight->Diffuse.r += 0.1f;: g, F% r) N8 T2 A5 ~
pLight->Diffuse.g += 0.1f;+ P& Q1 q& z! s+ O! `
pLight->Diffuse.b += 0.1f;) q1 f7 P, e+ h+ l9 k
// oˉè* ??à?
6 Z7 u5 ?8 T8 E3 O ?) v9 p2 v pLight->Specular.r = 2.0f;5 [( S" }& d7 @* p" ^" @6 Z" G
pLight->Specular.g = 2.0f;
: T$ V. U) R8 L) _ pLight->Specular.b = 2.0f;, p) |- V" T5 S6 h0 q0 W
// á?oˉ 8 Q( S4 \9 e x, w$ Z% X
pLight->Ambient.r *= 0.9f;
* j7 Q, l" s6 J: v4 B pLight->Ambient.g *= 0.9f;
$ F9 D3 L; x& n* z+ V: | pLight->Ambient.b *= 0.9f;
/ w$ W, Y4 U# p/ G0 S; O, [+ @
( u8 M( w W0 a( v9 D$ G" @% @ memcpy( &m_light, pLight, sizeof( m_light ) );
; i$ S5 S. N" s4 g0 k7 X# `" M0 G% q 0 i8 A6 u l) ?! b" d) o
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );. w$ Q& r" ?. g3 H/ A! c& K
pLight->Appear( m_pd3dDevice, TRUE );
^6 V$ I+ l, @+ m7 G
' Z; ^4 e, F6 u- t DWORD dwR, dwG, dwB;+ z0 w* P& E; R8 w
dwR = (DWORD)( pLight->Ambient.r * 255 );4 N/ [ c! r9 ^5 S3 v! }* u
dwG = (DWORD)( pLight->Ambient.g * 255 );
; u, N6 ^6 _. I8 Y5 P dwB = (DWORD)( pLight->Ambient.b * 255 );8 g- u# Y6 d$ w/ K
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );7 l0 C/ R( C) `6 f
}
8 l% F8 L! H/ a% W: H2 l* Y( o }9 d0 `% U' a+ ?; t0 Y3 J/ }
else
4 e6 x( S+ B' _ {+ }3 Z7 F. z0 y& I/ g y8 P
if( pLight )
3 q8 Z4 u0 m( a5 F; W* c {& k; \; v" s( l+ F7 A+ h: t0 d
% @8 K1 t. ]8 I
int nHour = 8, nMin = 0;
4 U+ d9 _4 ~* x* d4 @5 H- W #ifdef __CLIENT( ?0 X9 b6 z! r- I' }
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 3 h) g3 m% V: ?, z9 L
nHour = g_GameTimer.m_nHour;8 A6 w$ S, S1 L, L0 \' L; f3 Q
nMin = g_GameTimer.m_nMin ;( K; D. W0 }. {( I: Z6 e
#else
' Z5 g. N8 Z$ D // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.0 G; @0 I1 J6 y% F" R8 F, I
if( m_nLightType == 1 )
$ u& }5 O8 [, f1 ]' }0 [1 l9 N' v h nHour = m_nLightHour;
% e) k) y9 s1 B1 h/ s- \ #endif7 R( I6 v6 J9 h2 f! W
nHour--;
0 y$ I8 l5 _, e+ `, l if( nHour < 0 ) nHour = 0;% f/ n+ I1 T9 q
if( nHour > 23 ) nHour = 23;
: a: D3 {( k% X; u# K/ W7 s& z+ m# T8 K, H
//if( m_bFixedHour )
* v" y E" A; W // nHour = m_nFixedHour, nMin = 0;
* f( u- D# m/ c) g4 A6 h LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 I3 c/ | P/ T4 r; j
LIGHTCOLOR lightColor = m_k24Light[ nHour ];7 I }; D& r$ f/ u
6 q. N1 {7 Q$ j$ g //m_lightColor = lightColorPrv;
% Y' w# [* x5 X) X# ^% ^3 u lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;9 V: S$ j! q% F. N
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
* j: k6 {4 C6 O' O lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
; c2 [3 A- ]/ O$ e; N lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
3 ^& R8 C7 ~* h( Y lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;3 B e; K/ b2 f
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
6 b" k; {; V7 Y* m( A: S5 H // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)+ w* A6 i. ^ U
+ Q: B( f; A' v5 M- e7 K# ^
// à??μ oˉè* : a8 T2 [& |* P, d
pLight->Diffuse.r = lightColorPrv.r1;
+ |8 l" ^' \: E. A) W! k pLight->Diffuse.g = lightColorPrv.g1;
( H, r$ V* s' c3 t/ V- _+ C1 A pLight->Diffuse.b = lightColorPrv.b1;1 n5 C0 ]0 C" {- r/ s/ ^
// oˉè* ??à?
( j) H9 ~1 n# o; B# S( } pLight->Specular.r = 1.0f;2 u1 @5 U7 _* w3 y
pLight->Specular.g = 1.0f;; W7 P! w1 W+ P2 A
pLight->Specular.b = 1.0f;- R8 w. R$ k" w: d
// àü?? oˉè* - D5 H) s7 W' U2 Q
pLight->Ambient.r = lightColorPrv.r2;) K' [& f0 V1 F- e1 o8 Z
pLight->Ambient.g = lightColorPrv.g2;) T* U% k. w1 L! r8 t4 x5 z: x2 w0 j
pLight->Ambient.b = lightColorPrv.b2;! I: P) `+ S) m1 g. O/ c1 Z
. A. q: g6 D4 f7 |- i+ D
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
. q9 X4 a: @, r4 L {
) U+ H- ^9 G' v7 O- U. X pLight->Diffuse.r *= 0.6f;
5 X. H0 N+ s: F! S: L+ A pLight->Diffuse.g *= 0.6f;
7 Z, a% K. g9 k3 v5 x; [ pLight->Diffuse.b *= 0.6f;/ I+ S' v" Y- Q
pLight->Ambient.r *= 0.7f;; ^7 o O( [1 \
pLight->Ambient.g *= 0.7f;' V1 l5 l5 p) ]7 ~" ~% ]# v
pLight->Ambient.b *= 0.7f;
1 c0 T; \6 W- F0 X6 L }4 e; l3 `( v+ U2 E
) p4 u; g3 V5 b2 d; G
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 n1 v0 t) s" ]3 o! H# u+ v6 d if( g_pPlayer ) k8 K2 u8 v/ {+ U7 O6 U+ C5 e
HookUpdateLight( pLight );
: G9 p) `4 i+ I L! X& o! u* @; h! G#endif+ S. @. C" u( n0 I
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 `! N! Z" S) L( w l+ i
2 t: O' ]- ?2 R7 d% o
#ifdef __YENV6 I- N5 V/ L8 b5 Y. V; s
pLight->Diffuse.r *= 1.1f;" p6 S& d; x" z
pLight->Diffuse.g *= 1.1f;
% f, O$ ^0 m3 T" ] Z$ G pLight->Diffuse.b *= 1.1f;
! k9 f. H. g3 m6 ? // oˉè* ??à? 3 n5 a1 s' g3 Z$ z
pLight->Specular.r = 2.0f; a% D5 T7 s4 e3 H6 O% V- O* F0 \
pLight->Specular.g = 2.0f;2 e0 Z* N" j6 s" k& b
pLight->Specular.b = 2.0f;# } l7 s5 P. h$ l& K" `) a
// á?oˉ
: M( x: W9 ?4 e4 |9 e pLight->Ambient.r *= 1.0f;2 t' R5 k }6 w/ z3 J3 p2 o4 ^
pLight->Ambient.g *= 1.0f;
( }# _5 u3 P4 I pLight->Ambient.b *= 1.0f;
' s- }" l d* g, H7 f8 E+ Z& X#else //__YENV {% a1 e% m+ H; {
pLight->Diffuse.r *= 1.1f;- o" D# Y: q$ S" ]# x# [
pLight->Diffuse.g *= 1.1f;
1 v2 _, }6 ^9 A0 d/ d pLight->Diffuse.b *= 1.1f;
. X+ T; a" E8 V5 l$ r // oˉè* ??à?
- a* T6 |+ A# m. I0 `8 G pLight->Specular.r = 2.0f;
* t7 h9 n" y6 E" ?7 u% s9 \ pLight->Specular.g = 2.0f;$ U- U2 V7 L# |' z4 R# q
pLight->Specular.b = 2.0f;
$ \8 |' G0 E) N0 _ // á?oˉ
8 f0 V Q. Z3 b1 \ y7 f pLight->Ambient.r *= 0.9f;
0 a$ D3 P* m' p% h$ ~6 l pLight->Ambient.g *= 0.9f;6 e2 r* B0 P4 M" ^4 _
pLight->Ambient.b *= 0.9f;
* f/ [8 p6 U T$ l/ f#endif //__YENV
; [; d4 A2 t4 g, l# p, J" v ' P& m9 B. N1 K$ I
memcpy( &m_light, pLight, sizeof( m_light ) );0 [( m. j5 R+ M; i+ Y6 C7 a/ t5 a
" J* v. q: x1 u: A4 a( { D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
& _; g3 z* }8 y3 L D3DXMATRIX matTemp;
& N% U& X6 ^' ]9 A: h6 Q* O& ~ static const float CONS_VAL = 3.1415926f / 180.f;1 k: }8 x0 ]7 N) `8 ? G
4 q2 t; m! S$ `$ @! w
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
3 | P# X4 {% }* l2 {1 t5 p% ]2 x2 W3 m# C D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
+ V2 ]# G1 F7 e pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
# [8 G8 z: M ~7 K [. ?, D pLight->Appear( m_pd3dDevice, TRUE );
& E) F, |+ v0 }, a, G3 t0 Q: C- {1 C2 ]6 O4 Q8 u& i+ {: Q
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 m' K) y: Z* K5 N
// D3DXVec3Normalize(&(vecSun),&(vecSun));- i v5 y1 G2 M) M
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ! A D4 `$ o1 J& r
: i6 g: Z/ a0 h
DWORD dwR, dwG, dwB;( Z+ i; n/ L9 T. Z( S" s5 X
dwR = (DWORD)( pLight->Ambient.r * 255 );
+ {9 K _5 Z6 x) ^' v dwG = (DWORD)( pLight->Ambient.g * 255 );: x; h k# Z$ c3 x9 k9 y: O
dwB = (DWORD)( pLight->Ambient.b * 255 );1 `* Y0 p0 M9 n* y
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 j1 k/ ]# |7 j, X: ` }
6 `) b9 l: r0 I3 [% `) D9 n }
8 I6 S/ g. l# ^- ]+ h# b [! h. P* _' U; W/ v
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
5 b9 F7 R1 T1 `+ H5 ? 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) );
8 o$ J7 E! o$ k6 \; y ::SetLight( bLight );3 T8 n7 x( J8 _1 m2 J) r; u
" M7 g, A' N% @! ~% u7 ^ // ±ao? ?D?í???ó á¤à?
" Y8 y d; M: j5 B2 u a( j3 V m_pd3dDevice->SetMaterial( &m_baseMaterial );
$ T) Y S. C# b( N! h
. l. @: u- L% Z3 x; ^* `#endif // not WORLDSERVER
& S. J; Z: V+ g}- ?1 F/ J. O) R% w6 G; |: a9 q
并更换
. n4 w6 z; v" g" A4 k0 S$ KCode:; W* m: X, {! ~" g0 x$ `
__FLYFF_INITPAGE_EXT( ]$ B/ d' _$ ^4 J8 `# E
定义
9 H, i6 b/ N }2 T, l2 u" i7 o) e4 j5 C3 f4 E& \
- {, T1 `4 H; \" s- c+ R
- ^2 X1 x9 |- h6 a! H& G; f
2 L% k0 w. d; E% W0 A0 @现在终于删除我的狗屁加速...' R! {; W3 }1 t0 o& ~5 h
& J% R7 u0 Y0 F: j) ~8 }( M( ?7 m
. j6 v0 s- J5 _
. w6 |5 i! h3 _' B* j. j
|
|