|
|
食品车:
5 ~* {8 t. g, `! L' a1 B尾翼:
, m6 G- C' @9 \% K# A, h
* g3 R) D& l& C' l4 r2 i# E$ c7 J代码:
; q3 V$ c9 o! T' f% l( G: TCWndAutoFood::CWndAutoFood(), v7 J q# Z$ Y9 j' z8 Y5 X
{
6 h$ G. D e2 n0 T- Z5 m m_pItemElem = NULL;
' B0 K- Z l, q/ {9 @ m_pTexture = NULL;- h: m) K- P% Y! b( k/ {1 y
bStart = FALSE;
3 z, b, M. r/ r* O9 P2 [2 K6 @4 W}
$ R) u3 x& l' N1 Z+ C" g' @% T$ q/ U: V5 k
CWndAutoFood::~CWndAutoFood(), {# s; ^8 P. c: o2 X
{2 [7 M4 ]3 Z. {5 N5 O& B
AfxMessageBox( "AutoFood ist gestorben " );
! u3 s! P5 v3 C6 Y. F}9 \& Z7 c8 C+ B+ q+ X. \1 V6 _
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ): h" [! T7 Y$ o/ Q
{; R; [9 j7 o" @3 E
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); F9 d9 `3 P* S2 f' z- m) b6 T4 d
}
9 ~1 a x) o* p& h: ?, d" B7 L+ b4 ?& ]9 c5 L/ L
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
# ?4 }" _9 T4 l4 T; {7 [8 M* [{4 `2 i- l2 A+ _% \. c! M r
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
# q: c4 r+ @) l4 C2 D CRect rect = pWndCtrl->rect;# c: K1 O: a# Z, Z
if( rect && rect.PtInRect( point ) )
+ S& W. V/ R& X {
9 l- A% U& F* x; ?; h' y+ z3 d CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
- M4 M5 p% u% n if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ), {9 u# H# {9 e+ u! A3 h% G7 v
{
+ }/ t5 d+ r6 d5 ^ if( m_pItemElem )0 `6 E, }! l5 V' T4 }5 K
{* ]; j% K! M. | M" C7 R9 U5 |/ m
m_pItemElem = NULL;8 _& N+ N+ k2 a
}; P9 ~5 t& c* N" U7 @$ r- I
m_pItemElem = pItemElem;
; F& N& x! ]* K2 h M3 w m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
' L0 k4 D5 U# i% h3 A) F }else{5 |& G" [1 L0 h1 K' Q* j
SetForbid( TRUE );2 Y! f9 {4 ]; G1 `0 ]
}
* Z' D5 x Y; |# B2 ?2 J }else{0 r% Z2 c3 M7 Y( Y6 ~, ?5 i
SetForbid( TRUE );/ X$ [" R, n4 |9 j0 i+ o! l' g
}, d8 r$ U; |' ]$ P* ]6 g/ ~ B1 N
return TRUE;
9 n: E) n( f% ?3 c}3 p& X" G( l- ^5 I# I- f" T" c$ D
: g; a1 r3 R0 r: x0 v5 {4 e
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 ~- Z/ x1 v% @0 d9 g, J
{
. w- l: R& k0 F7 q. d& i- E1 K1 J switch( nID )
2 K: ^! M1 s" l) g5 D! K% u {; y6 d0 z l3 n& b9 B) H
case WIDC_BUTTON3:) E C7 A" c( |, y4 Z P
{
) e% a; N# R. U. d9 Q bStart = TRUE;
4 X/ @- o! B! g: o break;6 {. D9 H$ Z, g. X' \# U1 @
}$ U+ o& p/ z, E7 m/ ]
case WIDC_BUTTON4:
5 V& A; g- G. u/ d, b8 K- M* T {
8 `7 Z$ Q# Y7 A. r* y- |- x bStart = FALSE;( h$ c" i4 D N8 g8 O7 J
break;
5 F) r& G) u1 b- ` }# Q/ e9 o1 B! d' T
}
# I0 [9 Q5 r3 }/ x, ?, ^! s return CWndNeuz::OnChildNotify( message, nID, pLResult );5 R1 I2 r# k0 l, J# J' J
} . L; S4 r' O, g2 P
void CWndAutoFood::OnDraw( C2DRender* p2DRender )( W0 z- w) b3 S: [
{, ^* x3 _; n( G* I
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );! W7 b& k/ W9 e( F% p
if( bStart || !m_pItemElem ); t/ s) b' |* ]' g6 ]
{, D, o- J( g% Y7 F
pBtn->EnableWindow( FALSE );
l- J' z6 A1 I, p7 \; ^ }else V& S5 L% Q" F7 O. X! C
pBtn->EnableWindow( TRUE );
8 l, }$ ?6 U. Q" y2 h4 `# Y8 o if( m_pTexture )
1 _* c) n4 B9 A. p {2 D8 Y6 L% y: P5 a' ?$ O
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
- G' Q3 l# F6 O7 t7 ^+ z$ r J: S if( wndCtrl && wndCtrl->rect )
8 a& o4 ^2 X% X# L3 S {3 S, S- b9 Z* r* Q/ E) _- q- G
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
1 p- m9 @/ J( O" T }
6 F6 L J7 i" c6 B. M }
, K, B6 G5 l& _+ |' |- y1 _: @$ v+ ~}
4 {0 I8 J: ?# y. e) s/ T8 ~
* ^! `$ S. M% g9 V5 n+ c) OBOOL CWndAutoFood: rocess()8 J( M0 _' g8 k+ r& y' ]
{
$ ~7 W+ W2 K/ F: a# U3 O$ A if( bStart )
8 z) x; Z0 X. O; a/ `: F {
& ?# w: }5 m( q5 Z, R9 q4 B: b0 [ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
) U" H) L1 C% H* Q6 X {. t% S4 s: l; |: J `1 G
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' X. m6 W
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );, F8 R6 M9 Y9 M
}else{
, T9 G0 O' P3 l. H `& }6 m bStart = FALSE;$ x! [( q7 o" _9 j
m_pItemElem = NULL;
! n/ t6 \, u$ i5 x" L$ L: Q9 @9 w }
& A! p f' K: C }
. _" G& ^) y+ W' | return TRUE;( j- f% H: Q( I4 ?8 p, D
}
% T5 W/ J6 A( j
: y1 G, g3 b/ E2 r- ~0 Z" T登录视频废话:) }0 d O! k7 ]7 ~ L9 K
尾翼:
4 S4 A/ F8 D- x. Q J( Z2 a$ S, w
2 B' B! C7 | [代码: |" f3 c: K; z5 h
) N3 k, O- O: j. P; Bvoid CWorld::SetLight( BOOL bLight )
! s+ q$ }" c% J, n. ldurch5 A6 Y" o: ^" z* j7 e( c. j
Code:8 E( u# O: b: }: B7 C
void CWorld::SetLight( BOOL bLight )' a+ ?2 r! t0 m x% y O
{+ F) T/ x- k; G% Q H% D' c
//ACE("SetLight %d \n", bLight);
A6 o# W6 l2 l+ P5 c 7 K: `5 x" r; A
#ifndef __WORLDSERVER / m' c. H7 j: }. o" {& s. E
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);7 T5 O/ p, P2 G6 }6 D6 I! ^
CLight* pLight = NULL;6 x1 h/ e/ j2 f- y! Z& S4 F
$ h; j* k' v+ o2 S! R2 n! O9 z
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
0 j5 f$ }& I+ v4 F' h2 H' n
! t; P+ r+ y/ B# } pLight = GetLight( "direction" );+ q; v- N( g, m( ]9 v& k/ f# w' a4 d
3 A% B2 o. k9 z# {
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 S p5 j! u( h: `' e if( g_pPlayer ){
+ b" k( K/ h: S+ D7 r/ @$ Q ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
6 u; @3 [+ Y0 z# o7 U* Y3 r3 O9 U if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!1 x2 h9 j) _; {- N$ J( v# Y
{
" t. B- g$ V, O& ~8 m a if( pLight )
5 B: H0 ?# m: q! _8 _ {1 I o. }; h* P5 Z, A- R* x- p
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];; b0 r g) B9 ]
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];) C- U6 {& p4 m% w* O1 `* n
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
5 U( o1 A" z0 P3 u8 F. l% w4 B
pLight->Specular.r = 2.0f;1 |4 a! K0 n, m& x# l" t
pLight->Specular.g = 2.0f;
, l8 n% ^/ O) M' k/ e pLight->Specular.b = 2.0f;8 g$ `/ O7 ]" f5 O; d* D
. ?4 U* d" R4 I4 A g* V/ s pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
, M( k" {, v. k+ N, f. V9 K pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
, G, Q. k; [8 e8 Q1 n pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
& h2 i; e( U! b! b
6 Y9 U1 m7 @2 o$ ~ HookUpdateLight( pLight );
/ N+ L1 M2 P1 Z3 e2 ]" [3 Q R& j9 V- ~/ P- G2 n( u
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* @( }; ?) Z2 k4 ^
2 X7 K# s0 {9 Q [. |% U, N1 e: K' L* y pLight->Diffuse.r *= 1.2f;$ {9 [# c2 z. L
pLight->Diffuse.g *= 1.2f;; E3 g/ d( m8 |
pLight->Diffuse.b *= 1.2f;: p2 `/ t: L4 N9 W7 c( T
% I) S6 X, C/ Y; i5 I* q( `0 Q
pLight->Ambient.r *= 0.8f;
, h; Q) P8 S* D4 k: } pLight->Ambient.g *= 0.8f;1 x' q' w. b0 \ W3 R
pLight->Ambient.b *= 0.8f;. } ?: T7 x: \# A" R: O9 q. m
0 h9 S' V* i3 x& n# `8 @4 g; `$ Y
memcpy( &m_light, pLight, sizeof( m_light ) );2 P5 L) Q4 u1 p% x6 I
7 Y4 ?* z- P" u/ G( g/ L4 p. m
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
K O" B# q. h( u, b D3DXVec3Normalize(&(vecSun),&(vecSun));
( B9 |1 @" |' }, z5 y pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
+ z0 H, ^0 X8 F, d; g pLight->Appear( m_pd3dDevice, TRUE );& y" f; ]; s# K1 q* m# A
: q0 |8 o: c. L1 r4 K3 }; ]' c
DWORD dwR, dwG, dwB;! I' v" F3 N! W- W: R, W) _
dwR = (DWORD)( pLight->Ambient.r * 255 );
1 ~4 w# g4 `1 e4 i' C2 Q. j- K dwG = (DWORD)( pLight->Ambient.g * 255 );( F$ v/ v; o0 [% s9 s
dwB = (DWORD)( pLight->Ambient.b * 255 );' y& A/ T. G# g4 [
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );. T# h) n* l% W/ }, k. \1 v
}
- @& ~8 v+ n! g2 I- w }
6 j" n* s9 H* A0 M }5 Z; G0 e* G" x4 Q7 h
else
9 R' c: l& Q' _% P, x7 |#endif 8 y8 E1 l. m6 n" u
5 C2 `; r7 {, { a9 q
if( m_bIsIndoor )
. V s" J7 I7 D6 ~ {0 c/ q. P6 v3 V! a) \* s; i1 y( C
if( pLight )
: a4 c6 R1 d8 F: z" W* }) b% ] { & n4 [/ f2 E( t
// à??μ oˉè*
2 W% T9 K4 d5 \$ M pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
5 E; {1 h O* N! \3 [1 t pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
1 } Q U" h, [ t- m1 X9 F' g pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f; |4 X3 i# }5 J* U- t4 \
( Z0 D F% j2 A( z
// oˉè* ??à? ! g' [0 Q% u( x5 _
pLight->Specular.r = 1.0f;- q% X& A* D; u. M
pLight->Specular.g = 1.0f;
2 |! N: f( z2 C8 E pLight->Specular.b = 1.0f;& ^' Y7 Y0 O6 w# P, {
// àü?? oˉè*
; a' Z/ ], ^8 M4 ^' u pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;' |% d) Q4 Q: C/ q4 ~8 u& x0 r
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;! w5 B2 E9 g% [
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;0 g$ x9 J. Q! z( z! J! f9 h
; R3 C9 B% R+ J( m* b
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 N% E# k# h- Z7 d% [1 W" y2 o
{
: d1 L4 @2 ~6 l5 x pLight->Diffuse.r *= 0.6f;
+ H: w1 Y# J* }$ h: n5 y7 P _ pLight->Diffuse.g *= 0.6f;) C8 r+ z1 @ e: U7 b$ ?( |
pLight->Diffuse.b *= 0.6f;5 ?, o0 x* C. M) m6 I$ a
pLight->Ambient.r *= 0.7f;
0 ~- v, z9 c0 t8 Q, @- O pLight->Ambient.g *= 0.7f;, R+ ?( g- @5 G& E
pLight->Ambient.b *= 0.7f;4 k+ ?. P; G! |! _" o
}/ F5 e/ r& L/ C) r
5 ^! x1 a* Y$ W; c0 J. I# U#if __VER >= 15 // __BS_CHANGING_ENVIR) K" s9 U! }# E+ Z1 d q& ^
if( g_pPlayer )/ J1 A2 N; [! X) ?! B" }
HookUpdateLight( pLight );# C( [6 f* r& R: E: j- `8 D4 f
#endif+ I5 o: R) ^8 n! w9 s5 y* L: N. R" q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& J4 f0 ^# c% |; l4 R _: S, O
* B7 i& u4 `( D( s9 T( C$ N3 J8 X
pLight->Diffuse.r += 0.1f;! E) A' R5 o& d2 y' M t
pLight->Diffuse.g += 0.1f;
" O/ ^7 r$ }8 y3 p5 v. F; U4 b; p pLight->Diffuse.b += 0.1f;
5 c; P8 b, g% H6 }: ~ P$ \ // oˉè* ??à?
v8 p1 F9 M5 w+ q pLight->Specular.r = 2.0f; z* D* Z4 T9 l0 T( r$ U
pLight->Specular.g = 2.0f;
" |, Z* e' E6 c pLight->Specular.b = 2.0f;# {% }2 M3 h+ ^: o2 C5 @3 O
// á?oˉ 9 ^9 U' p0 E3 n3 w1 R3 n
pLight->Ambient.r *= 0.9f;
- P2 f' L' g3 w7 ~( u% c. V6 X pLight->Ambient.g *= 0.9f;
7 x/ i; o2 ~, ~" [: ]) R pLight->Ambient.b *= 0.9f;
4 I I8 \# a5 |' y+ S# ~1 M& [# w& t. d7 [5 v* |* `
memcpy( &m_light, pLight, sizeof( m_light ) );
, v3 t/ B2 a9 U
1 e) w! n" M& k3 G3 `9 K9 Z, k pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
* P- H( @( F' u, ` s3 F4 t( D7 h pLight->Appear( m_pd3dDevice, TRUE );
8 q5 p$ G& o, F. ?+ L 1 h7 s8 Y. K" Q% w3 m2 x C
DWORD dwR, dwG, dwB;
" J$ [( J1 P% ]4 G M0 e. b dwR = (DWORD)( pLight->Ambient.r * 255 );
- x0 S" p* N% d$ a; F dwG = (DWORD)( pLight->Ambient.g * 255 );+ v( r& B$ F! q7 C8 t
dwB = (DWORD)( pLight->Ambient.b * 255 );
4 ? _2 \$ m/ E1 G( t8 Y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" L' Q" y4 Z8 \, v5 l }
) A+ s! B4 { Y7 U$ ~' ~ }$ L g% q. u! t' j3 {, M
else8 m+ g% u$ E0 n: J
{
/ v6 {% a6 H( Q* t; P* G1 H if( pLight )! K7 F v/ j0 r0 f
{1 X# n) X3 Q6 e
# K+ H2 s1 S2 I5 k0 u7 P
int nHour = 8, nMin = 0;7 N, U1 D# {3 c+ [7 z- D6 p/ ]
#ifdef __CLIENT
4 ]# Y; k" g8 `" b$ i( Y+ s // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
- b. n5 P+ x3 z4 D# n1 z" C1 r# o nHour = g_GameTimer.m_nHour;
9 @. N! c7 _) k' l$ H( W! r8 P nMin = g_GameTimer.m_nMin ;1 `! ^5 _3 g5 `0 Z" ~" ^
#else
- s2 F1 o7 C" }% z8 k3 @ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.1 e6 R# q1 E9 U$ K# p
if( m_nLightType == 1 )) \! O2 `7 g) S, P4 f8 m/ V
nHour = m_nLightHour;
! Q8 i* {# O/ b$ l #endif
1 ~8 f" l! y% |2 d6 m7 S nHour--;
) O$ C/ m1 G( U if( nHour < 0 ) nHour = 0;0 l( x! Y* |0 A- M+ Y6 @
if( nHour > 23 ) nHour = 23;) Y" r0 w8 w2 B
2 Q6 {& G# \0 ~ j
//if( m_bFixedHour )
7 `( a% {+ `8 D P4 c: x, c // nHour = m_nFixedHour, nMin = 0;8 ~8 f4 v0 [; `* w& W
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];2 o* t) K1 H- b; _' Y( Z
LIGHTCOLOR lightColor = m_k24Light[ nHour ];/ p% F: G/ D9 O
, K" N" S1 z3 K! Z //m_lightColor = lightColorPrv;
# c2 z! K8 x1 G4 [ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;7 O2 w3 V6 r, p
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
+ E1 [8 ?8 C$ R) R6 X; P2 n$ v. \ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# u$ O o) ]& r% f% u+ w
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
( w1 d% a3 S3 a# I3 B' J% D) i lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
8 k# A1 k; a# X lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;" T1 W9 c7 o1 q+ Q0 D ?
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)0 e9 f9 @3 x M& o3 C! }
# k6 ^1 o. M! v // à??μ oˉè*
+ A9 `5 @7 ?; @8 T pLight->Diffuse.r = lightColorPrv.r1;
7 q# l" _1 B9 Z/ A' V! k# ]5 a pLight->Diffuse.g = lightColorPrv.g1;6 L! ~4 w4 h3 ?, b1 f, [
pLight->Diffuse.b = lightColorPrv.b1;
/ p0 f) o9 c2 Q# i% o4 M // oˉè* ??à?
% D9 W: Q! k/ m1 a4 Q8 O: L, ? pLight->Specular.r = 1.0f;
6 Q9 K8 M! M c2 ` pLight->Specular.g = 1.0f;
$ I4 h9 T3 s! `; P pLight->Specular.b = 1.0f;
. e6 o8 _0 k. ^5 U1 ? // àü?? oˉè*
S( H( p( J$ j5 B5 }6 B/ C pLight->Ambient.r = lightColorPrv.r2;7 R7 n' w5 ]+ C0 a
pLight->Ambient.g = lightColorPrv.g2;4 r) V7 @. l: w- B" e) K3 L5 A9 _
pLight->Ambient.b = lightColorPrv.b2;; N- F1 k: c1 [8 K3 |+ m
# q/ O+ c. T: \8 x4 k1 g
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
' c5 K5 N2 G7 `. l$ t' \0 H {( }1 ?+ R4 F9 B& D( `+ l$ P
pLight->Diffuse.r *= 0.6f;9 q M) @0 L9 z1 |8 |
pLight->Diffuse.g *= 0.6f;6 e. M, x* @+ \& F8 s
pLight->Diffuse.b *= 0.6f;* T/ j0 F5 B( U
pLight->Ambient.r *= 0.7f;
/ s; a& E0 {, x5 ]0 v pLight->Ambient.g *= 0.7f;# W1 Z9 L8 Q6 K% E& P1 J
pLight->Ambient.b *= 0.7f;' y- ^' U) D4 x0 `: ^$ b; ?
}
4 G0 e# {& D, m" R- k 2 f; F! t+ s, J4 }* n
#if __VER >= 15 // __BS_CHANGING_ENVIR4 y6 d, g$ g q/ u! y8 M. L
if( g_pPlayer )
) m9 ~# F$ x4 N6 `: R HookUpdateLight( pLight ); ; L: c6 |" V5 N$ u
#endif
2 O: _. `# m( Q, n2 J memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" q# F1 ?1 D* ~6 A" ^( @! e5 x8 z
* {1 u- i. m' g#ifdef __YENV6 R* k# f; u0 r2 ]3 [
pLight->Diffuse.r *= 1.1f;
% w( I4 h# Y$ ` pLight->Diffuse.g *= 1.1f;
5 \3 j. A0 r& m" y0 Z5 W pLight->Diffuse.b *= 1.1f;4 z0 K9 d* V' J m" `1 R j
// oˉè* ??à?
8 R! h ?" k; w( _# L pLight->Specular.r = 2.0f;
6 g: u/ \ d; p* o3 J( g pLight->Specular.g = 2.0f;
7 Z& @1 z& X) Q# L+ O& x* u pLight->Specular.b = 2.0f;
. ^! z2 e/ p2 h( O3 U( v7 b // á?oˉ
( n3 n6 n% n2 K! o- n! } pLight->Ambient.r *= 1.0f;5 c4 i7 ~+ z: P( @! D
pLight->Ambient.g *= 1.0f;
& G* y; E1 W" d6 Y: Y/ d- l pLight->Ambient.b *= 1.0f;, o# B8 r3 Q z4 [) w" q
#else //__YENV% T# A0 ^8 P8 p; f* Z
pLight->Diffuse.r *= 1.1f;8 o0 e" E$ s& X& U; {
pLight->Diffuse.g *= 1.1f;: ?. l2 M2 K+ G# g, N) S9 C
pLight->Diffuse.b *= 1.1f;
F( A/ \) q7 T // oˉè* ??à?
9 g( P/ r: k7 z pLight->Specular.r = 2.0f;) U- L* o+ f# H% f- `
pLight->Specular.g = 2.0f;
' k- C3 H7 M, G' V9 q pLight->Specular.b = 2.0f;% @/ k/ I- f5 p) [
// á?oˉ
[. {$ `8 C; ^0 G; p5 V+ w pLight->Ambient.r *= 0.9f;
5 K: w, ]0 V* W8 M& f$ S* e pLight->Ambient.g *= 0.9f;
6 j2 X: y$ s Y+ M pLight->Ambient.b *= 0.9f;
, A+ |) u1 ^8 X' s#endif //__YENV
) Q* Z9 Y6 O/ I8 f' G - Y: ~$ H% `* ]" L8 c- b4 ^
memcpy( &m_light, pLight, sizeof( m_light ) );
9 [+ [7 z9 B8 q8 a , U4 w8 W0 E7 l- L/ m
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);" Q. e1 f4 @! D! u0 v& r
D3DXMATRIX matTemp;! U8 k# J2 P( `: U& _# n1 L
static const float CONS_VAL = 3.1415926f / 180.f;
3 M2 f" Y) X% |. y9 }8 K
8 A$ \- h% K7 u- n D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);; }4 W# U: x( O* h" j# |$ }
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
! T% y- I- h! K3 P0 d6 C pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); O! y( M/ i# J z% D @
pLight->Appear( m_pd3dDevice, TRUE );$ l$ T# W! O) A# O
$ y6 J ]1 F1 Z# M
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
' c* b' D5 @/ D! q // D3DXVec3Normalize(&(vecSun),&(vecSun));
& t/ z. ^ |9 c% q! h. [ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( S2 k! o. x4 g- z
( A. m4 X7 `+ I6 [: n; {( o DWORD dwR, dwG, dwB;
Q9 S* D; n/ I" y3 _- i4 Z+ T dwR = (DWORD)( pLight->Ambient.r * 255 );- i; d6 G _+ ]" M7 c( p3 x
dwG = (DWORD)( pLight->Ambient.g * 255 );
* \4 K$ V2 Y) ] dwB = (DWORD)( pLight->Ambient.b * 255 );8 _5 m! F/ b! G& `
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
8 c7 `, y" J, \ }6 |0 m2 z* w3 `; K [
}
- A. b* g! f' p7 j7 m
; F4 ]0 ]3 D/ a m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
1 h& @' b. A* U. 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) );+ `0 U s. z3 @/ {3 f- Q
::SetLight( bLight );" n7 y7 ~/ }0 [0 X8 g& @
% m# C4 W/ V4 d // ±ao? ?D?í???ó á¤à? , o: Y0 ^. w. f8 z* C, a& A" y
m_pd3dDevice->SetMaterial( &m_baseMaterial );
: q1 t6 |$ [! z! J- m2 Y, K
' _& K4 ] H0 W: ~, I#endif // not WORLDSERVER' {" i& N5 U$ x. F- q
}( O M7 p. q! J5 w8 f
并更换4 H H7 L( ?! D u$ C
Code:8 u5 Q5 P+ c6 u. S/ L# v
__FLYFF_INITPAGE_EXT+ j1 i. K; ~9 b9 ~
定义
& x/ y5 i, K! g! P$ A4 Q" L/ m. P% v
1 I0 }9 \& W8 s3 P9 |, s
: w, d5 @, q. Y! t1 ]% `6 e) O" Z5 i) h, }1 d0 O1 A' k
现在终于删除我的狗屁加速...
' Q& m5 o8 Z6 U$ C6 n
* G& x+ X* E* m) i+ U/ M0 U! Q* v' {' u/ A5 V L% h% s% }9 h
7 `/ r$ e" P! k H* A; p |
|