|
食品车:
2 i- K! e9 N4 @8 D3 {( X( ]7 n尾翼:. g6 L, S$ ~! Y. S. u
1 K4 L8 ?$ k. P) u代码:3 e5 P/ @3 h3 X6 a
CWndAutoFood::CWndAutoFood()
2 s& r- P3 z% m; O# ]{# Z+ ^* f5 p* K- U* P: m4 o
m_pItemElem = NULL;
! s- K% Y0 o% ^/ `% s u, r m_pTexture = NULL;9 p7 q9 k. `/ |$ p5 O/ @
bStart = FALSE;: q1 s5 Q0 T% X# U% p
}% ~; a& W: h* h# V4 x0 H7 }
0 s4 }" L u% i i( N( q% a+ [0 ^CWndAutoFood::~CWndAutoFood()# l, T* h2 [2 t
{
' I/ ^( o5 B! v9 ^5 @ AfxMessageBox( "AutoFood ist gestorben " );$ B; b" }+ m. |. P
}) R) Q9 g& y0 `; K# |
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
/ w. ?# R+ }9 @ A( R{
& Y' A( u0 b! O1 }: T6 H6 Y( S1 w7 g return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
% a: A$ X) ^7 Q8 J}
}7 A% o2 |7 `9 M. i' E6 o7 U& K/ X
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
) u& V& t- X z0 E. v{
# T L8 v8 Y: o4 e0 I LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: g6 `8 g9 T1 z5 J* f+ X2 l$ h+ p
CRect rect = pWndCtrl->rect;
5 |! s/ x; ]0 |& A; ~) Q p' ]( y if( rect && rect.PtInRect( point ) )% `$ K5 _6 V" \0 k8 G
{: ~/ l; L! w1 q& t) s- y1 J
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );# H$ k8 H; D' T2 e& Y' |
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )- J) ]/ f5 ^, ]8 d! C) r$ k& g
{
+ C% i8 U% F: s' K& V, Z! _ if( m_pItemElem )
! i) a/ s2 K8 Y {
t& g" R* B. }% k4 b- L6 | m_pItemElem = NULL;4 t) E7 ^# ~1 M' Y# m4 a, P
}
' Q, g( h6 s& Q, R- I E& p m_pItemElem = pItemElem;
& f i2 D- h# q3 H; K m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 V1 X H7 p# R }else{
0 |5 r7 E' C2 G% Z SetForbid( TRUE );, @, N# ^4 K4 g& d- a" X% A% L
}
! Q; f- r( X b' B4 ?" w3 q }else{. V5 f; s4 H' a5 S" B% o
SetForbid( TRUE );
! _/ O4 \# L% ?( E( @' l" l9 ` }
! y% Z& H/ Z4 d% a return TRUE;. C% G$ t6 _. H
}
6 |) p- Y+ d6 x& l. H- f& L" L4 j. A, V& T5 h0 `6 [; v' M1 ? d! B
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
`7 D1 b" m, K2 P8 s0 n0 j{7 f7 W. a4 N- s$ \
switch( nID ) L* {6 U2 l' N4 k) S& f
{6 c8 ?+ T8 r! u {8 l. r
case WIDC_BUTTON3:
* E l7 h0 o, ]2 T {
3 _! B! U" P% T; l( S9 E: c bStart = TRUE;
8 j) O5 {) W" a& C7 _ ^+ P break;
2 I! t6 @2 ]1 J. Q. o% { }1 Z: _' X4 f- A9 I& `. V3 P
case WIDC_BUTTON4:! k6 [& Z9 H0 o* l4 a+ J5 {
{7 o" s% W' ~# x! W" M+ i
bStart = FALSE;
) D6 \! w8 D Z9 V6 N: F/ f9 C$ ~ break;
5 {, z* A% Z% D* c }
6 Y( K% c( h3 A7 b4 X. j$ G4 J9 A& | }
o; ]- ?4 k! ~4 {+ ]' t return CWndNeuz::OnChildNotify( message, nID, pLResult );* R4 M% u$ s" Y4 W6 R* ]
} 8 W- P" u& G1 m/ p- q& f
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
( e; ?5 z- {( i0 ^' [" t9 q{& `9 S5 r) x5 I
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 ]+ _% r$ W% O* a% ^+ o* G3 ~: A if( bStart || !m_pItemElem )
8 y" A0 [$ m( I; ~- m {
' ?/ w4 b' b: }& X c0 |+ C" N$ q pBtn->EnableWindow( FALSE );
. l. [ \# L; l3 R" m4 W u$ @$ c }else# Z f8 a5 X4 P3 o" B
pBtn->EnableWindow( TRUE );- F/ \. j A7 A, Q2 G* b
if( m_pTexture )
0 t: F2 Z# h: z# ]0 L {7 p) i, E( v$ Y k2 _( A$ M) b
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ `; v- {! {- W( ]1 g) k
if( wndCtrl && wndCtrl->rect )! Z" {: u2 g6 f4 J6 j5 |/ ~" Y# N
{) k* B. ~- o$ {+ S4 G
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
: q" g' q( r: i2 s- | }
, _: C: m8 a; c" |* M5 \5 M% z }
3 o' L) o# w! ^2 j1 c/ i, \}& @+ b& v: W. h- P1 p! h
( C; Z8 k( \2 ?5 d7 ]
BOOL CWndAutoFood:rocess()
0 c2 a; `; h) k( w{
! Y8 k6 J% V7 w* C, Z7 n; }+ z if( bStart )
$ n5 i' h2 I A3 k {
0 J I5 K/ U7 G8 j if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
0 L. c0 K) |4 ^2 K a {3 S z8 `. Z) V6 R+ j" x9 i
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )0 `- ^# }5 ]5 m* v; i8 M
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );; [/ o6 I% l1 L
}else{
% d" e: `. m( S1 A# ?4 [; b7 _ bStart = FALSE;7 x: T- w% C1 Y1 t4 i
m_pItemElem = NULL;
, T' G$ w; k [! c- w }. b- J; e- b9 ]
}8 F3 F n$ o! a) h' i% U" w* Q. X
return TRUE;$ L" S( W$ s( j) [
}3 H" s9 Z# b9 I ^3 z
% I3 y- L* z: I3 w% }7 Q
登录视频废话:$ ]. ?. p3 |6 j7 D3 K c
尾翼:- ^/ ?* b \" u, O
2 O5 q" m% G$ U3 @: D. z% v代码:
7 \" a3 V) m, e3 M7 k' T d+ t1 j
void CWorld::SetLight( BOOL bLight )
% q: D- i( E% _+ tdurch3 m" |/ V) A( }5 U: k& H7 m' l; p
Code:2 O) k! x$ d2 c% ~; V% j
void CWorld::SetLight( BOOL bLight )( G' D# {8 |( S3 k8 m
{& ?) d0 }% H! a7 j
//ACE("SetLight %d \n", bLight);
$ u) R2 F2 ~6 [! n6 z8 l7 W' D) z ( r( D& E9 c+ r" q
#ifndef __WORLDSERVER 7 z9 k& w. E* Z7 z, ^( g) ^
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);" ~! P: ]: E4 v$ C" Y- {
CLight* pLight = NULL;
1 l3 _5 O/ @9 J) H
6 N6 _/ w0 F' p' Q7 x D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );5 ^) c8 M" ^! q7 I
* K3 P; y% [. J, H! E: N
pLight = GetLight( "direction" );
, t. j8 q! O" @# p! C
5 ]4 U( p& }+ ^4 O#if __VER >= 15 // __BS_CHANGING_ENVIR
+ m4 q4 Y A/ c* h) N+ y/ V if( g_pPlayer ){
& C+ j" s! U2 w4 M8 [- ~7 I ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );' {* o; I' ~1 v5 [
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 o6 S, S5 ^ e" [. {
{: o l1 Y5 r4 d- I! d9 y
if( pLight )6 o( m3 e" J5 m" B; c
{& V& f+ D* C5 h& x, ^+ J" |1 y' K6 `
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
% R9 s( }+ S/ {8 Q* O4 q. A pLight->Ambient.g = pInfo->_fAmbient[ 1 ];7 v0 V6 J, {' \+ P& `! }
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 H6 D3 v3 u1 d, r
+ a t: j; |; O2 V( b
pLight->Specular.r = 2.0f;% |) ?9 t9 f& W- a3 G- n$ f5 ]
pLight->Specular.g = 2.0f;# ?8 J9 X+ d- r G5 m% Y+ E
pLight->Specular.b = 2.0f;
, T) C( s3 g8 H# T + F1 d$ g; K0 S, f0 u8 ~" r
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];. ]% I/ j. r2 Z$ }8 { k" t
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
7 L, m) X0 x1 e! d3 ~8 j7 a: [' X pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
, z' N% v( ^6 U- n
- d& S, e3 G* H1 s* l# ~/ g HookUpdateLight( pLight ); * C. N0 |4 i& @* C: J: `
( ]: _! R# x( q; x, x' I memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 N, O, E. H) y0 A
% t) L \9 ~/ L) ~3 C pLight->Diffuse.r *= 1.2f;- e# F {, a5 u, P$ e% D
pLight->Diffuse.g *= 1.2f;
; f% v1 z. i% r1 I pLight->Diffuse.b *= 1.2f;% H# T( c4 c1 I- E
. F, d8 A' b" e; S! N- Y
pLight->Ambient.r *= 0.8f;
z& S/ z3 h# A+ s8 [ pLight->Ambient.g *= 0.8f;
Y8 n; n0 O" ?6 H3 D7 M4 a2 y6 k' B pLight->Ambient.b *= 0.8f;: R) X. i8 L/ k& @
+ J# g) R; Z( T& L1 K5 e
memcpy( &m_light, pLight, sizeof( m_light ) );7 C0 l C' ^( G, J/ Q
0 J( t4 |( B) O L i+ X
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; U- D3 X9 `+ R) t" c) ?
D3DXVec3Normalize(&(vecSun),&(vecSun));
# X; w3 D$ Y [! a5 O& K pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' {' k% i( `3 V$ i) e; h6 p pLight->Appear( m_pd3dDevice, TRUE );, R& p0 e. J( y, C1 x+ x* L
3 |: e5 t( n! ?6 }7 [
DWORD dwR, dwG, dwB;- H8 }8 a8 x* `* w: H
dwR = (DWORD)( pLight->Ambient.r * 255 );* b0 ~! T0 P" K& D% I4 {3 A1 T- R
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 N+ R; A3 W. I9 A3 l8 B dwB = (DWORD)( pLight->Ambient.b * 255 );
% Z0 ~9 | c( P# e dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );2 [" ]& D; g' @% o) B
}. U/ Y8 V! n! K0 S. Y* {+ F
}5 P7 O1 {( H* \/ Y' M
}7 \$ m, U7 [# Z- b4 z5 R% m
else1 L4 v) z" E: |1 h: _6 d0 T, O: q
#endif 9 p y- F& p8 i( E$ ?% d" C8 _
0 L/ I, L* n* h/ h# i8 N8 A4 Q: ?
if( m_bIsIndoor )1 Y: C5 E7 c+ ]+ P6 u5 S
{9 L2 u ~0 O, b, h" A. X3 s
if( pLight )
4 X) g' {, d j* e { * _# I0 f% ]' z6 P% X- g q" @
// à??μ oˉè*
8 R2 V" s1 s5 g' ` pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;1 v" h# s% B0 ]% S9 u0 @, \. i
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;" i- V2 P( K5 k; J7 u0 F1 R% e
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;2 [; \. ^1 C+ w) D E* \3 {# }
% }! @6 k+ s6 c7 ~3 ?8 i: X
// oˉè* ??à?
* c7 S* T8 a7 o3 v7 j" o6 [; D pLight->Specular.r = 1.0f;
. D0 U. H+ K% N1 |8 b pLight->Specular.g = 1.0f;9 |4 u/ a, @0 x
pLight->Specular.b = 1.0f;
6 s" H" ]: S0 b/ e3 R // àü?? oˉè*
6 Y+ N4 ~3 J! E5 S pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;5 P1 g6 x+ K2 O3 Q8 K; c0 U
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
* r+ z' K. c2 v$ b# h pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;- ~8 C6 x4 } y/ J7 k9 k7 A" K
% B: r) j8 x' u: V) q, k, h
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
D% \, J1 R+ M; C3 \" G {7 _7 O# Y8 h9 S! b+ C3 q" n T
pLight->Diffuse.r *= 0.6f;7 Y& \2 H$ q7 T0 \+ d1 V
pLight->Diffuse.g *= 0.6f;, C* v$ p! L) G, x0 S4 x
pLight->Diffuse.b *= 0.6f;0 x8 ~* L6 z/ H$ V; E7 d
pLight->Ambient.r *= 0.7f; G" O l+ N- f" p& J. L# D2 a
pLight->Ambient.g *= 0.7f;
( E$ q2 v. a, ]# x6 ~9 q1 F7 } pLight->Ambient.b *= 0.7f;
' L' d& x- U2 {. U% m4 J }3 X3 _8 u5 p+ ^9 A
* R A2 Z1 q3 A' _
#if __VER >= 15 // __BS_CHANGING_ENVIR& P( x6 `2 x7 @% i/ D
if( g_pPlayer )& i1 [8 @3 @: G% S
HookUpdateLight( pLight );
0 g8 [8 F+ O7 ]" Y' k, p5 }' @#endif( t5 K ]! p V8 T& ]
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' n) h" R' c' w, Z9 e3 R9 z0 q
3 v6 Q% W) e. v- p P7 F pLight->Diffuse.r += 0.1f;
' q l0 @ M" o pLight->Diffuse.g += 0.1f;
( C8 P4 C# b& c& _% V8 G( W7 c3 @ pLight->Diffuse.b += 0.1f;8 \& B5 K( U# S9 Q& M
// oˉè* ??à? - p5 j/ {( e& v, p% F* x% `
pLight->Specular.r = 2.0f;. W# d4 p q1 b, O' K8 t
pLight->Specular.g = 2.0f;
& s+ a6 Z( i8 ]6 H8 i pLight->Specular.b = 2.0f;; v! L, s( V, T- c# \7 q
// á?oˉ , ?! D% q" H, {( Y: Q
pLight->Ambient.r *= 0.9f;( M) j5 {: X+ W8 U& B
pLight->Ambient.g *= 0.9f;
- J$ Q( m- W' [! E1 c% h( y* P; q* M pLight->Ambient.b *= 0.9f;( c5 L- N" l/ t0 ~8 N, [
( J# P5 x* ^3 a9 P( _" C1 ^$ \
memcpy( &m_light, pLight, sizeof( m_light ) );
3 N* L+ [" F @4 G8 [3 e 5 ^7 ?9 J6 A% l/ X! Z
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; e+ Y% r% O' \5 e: H" o+ \
pLight->Appear( m_pd3dDevice, TRUE );
* e6 Y; z1 a/ E6 Q / W \1 D4 O6 S. d
DWORD dwR, dwG, dwB;
8 B/ s5 w% b% A' K. d1 ? dwR = (DWORD)( pLight->Ambient.r * 255 );
: w; K( o O5 p8 D dwG = (DWORD)( pLight->Ambient.g * 255 );
! K: A8 d% h; F. L- F' H! h" Y9 e dwB = (DWORD)( pLight->Ambient.b * 255 );
" i7 \; e ^0 T dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. D( f+ ]6 K8 b! @4 o; v1 T" a }
) y' a4 X' C# O* V+ g) v }: I9 T1 d( ?, D) i; \% c
else
2 A4 `! O8 s& o {
7 a( ^; s# @+ @4 d; p3 C2 X if( pLight )* }7 N! P; y% k1 t$ e
{
_4 [0 }- n, U1 L# N7 k6 o/ L. d: |7 o , [1 |& m! W' P
int nHour = 8, nMin = 0;5 w/ k& r `( d5 L5 G, g7 S
#ifdef __CLIENT
9 T( E- H7 \: b `+ M8 I, n, G; s, f // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ! w8 O+ ~$ N+ p6 m6 `
nHour = g_GameTimer.m_nHour;
( y! K) J [. D5 g4 | nMin = g_GameTimer.m_nMin ;
8 J& F( m+ d% X #else1 x: k: b+ q0 _/ M$ l; G
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
+ x! V# J1 [2 u0 M if( m_nLightType == 1 )
4 X! H# I1 @8 F nHour = m_nLightHour;3 l2 L* c4 v! d7 E9 W
#endif; Z( C4 _9 X$ {$ [* B% _2 X* j
nHour--;% \& z" h7 U; O
if( nHour < 0 ) nHour = 0;
+ o$ T7 o2 b" ^4 f0 ~# q4 r2 z4 E. _: j if( nHour > 23 ) nHour = 23;
% U2 u# Z& a6 W& _$ I" U# U( L3 t& |& m/ Q
//if( m_bFixedHour )* y! L" H7 [! t3 p2 ?0 I& K
// nHour = m_nFixedHour, nMin = 0;& F! D" P" V( y+ S
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 x2 b2 @5 D4 ^; W5 o* O2 K
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
. A! h f9 {5 {+ S+ S8 q& {5 U; n4 H# a/ Y: |; j3 L- _
//m_lightColor = lightColorPrv;
% ~* _: v0 G$ E/ h- }( [7 @' z lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
- J& q. ^* V/ A& O" H6 L lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;# d4 U2 M$ ~% ?0 ~
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' G; s1 S) C8 Y: k! B
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;( ]9 w1 T5 D: I
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;: z4 c- y7 G* o
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60; w! A7 ^" H$ i: F/ P" v
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
7 H) S. i2 T4 y+ x' c3 p7 M8 h: Y4 Y6 z5 F x/ J* o& ^
// à??μ oˉè*
( @" b& l E4 O8 u; ?; K" G pLight->Diffuse.r = lightColorPrv.r1;' B% L* u( {' c% P# ]8 Y9 z
pLight->Diffuse.g = lightColorPrv.g1;, K6 ^1 \! N9 V, |' `/ P
pLight->Diffuse.b = lightColorPrv.b1;
0 Q, w' m ?1 t: v // oˉè* ??à?
. ]! s+ Z/ f* J" T6 s) `8 Y- G pLight->Specular.r = 1.0f;
; i, j9 S9 C. Z6 Z' e. ~ pLight->Specular.g = 1.0f;
$ ^4 U( y6 m3 E4 E$ I! V1 p+ p pLight->Specular.b = 1.0f;
G% s8 v0 m+ |2 e // àü?? oˉè*
5 a( M$ D6 m- _+ n9 ~. D pLight->Ambient.r = lightColorPrv.r2;
9 n: s" F$ h8 Z pLight->Ambient.g = lightColorPrv.g2;
- U+ U. I# |' n1 O$ P. }$ ? pLight->Ambient.b = lightColorPrv.b2;9 k) I7 S& ?! J. B- b8 G
6 @4 |- ]1 E# ]7 G: W! ] | `2 s
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
9 r8 ^- X' A! ~- I( a) y5 N {
" Y7 L2 ~; ~2 T9 b% M pLight->Diffuse.r *= 0.6f;2 ]) A' q; n% `- Z; T, w
pLight->Diffuse.g *= 0.6f;2 [% K1 q; I7 _$ ]; U S
pLight->Diffuse.b *= 0.6f;
% B! Y8 N( T% k }0 Y pLight->Ambient.r *= 0.7f;
" J( @3 j- U! k: _4 x( m: E+ e pLight->Ambient.g *= 0.7f;# v# h2 ^, k: D
pLight->Ambient.b *= 0.7f;5 B8 D2 ?* f& I. G9 f
}8 a7 C6 x( K6 V
8 J" c5 e: F$ }- h, X, h#if __VER >= 15 // __BS_CHANGING_ENVIR) j1 a. O5 ]2 y# D. \ M; }. O1 X( b& _
if( g_pPlayer )8 C% `- [0 M' u
HookUpdateLight( pLight ); ) `* _; u; U5 G4 E
#endif: I- N* l3 |+ o3 X) E8 ^
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
& m, Y& C( Q9 f/ q7 n! C
7 s5 T% U0 {4 Q#ifdef __YENV- J* W4 Q/ m4 R
pLight->Diffuse.r *= 1.1f;
$ K$ G6 l% I5 j# h4 m% S. ]6 \ pLight->Diffuse.g *= 1.1f;
3 p1 X) ^8 |& s) R+ l1 X8 P! q pLight->Diffuse.b *= 1.1f;
; v6 }7 ]" U& _* R7 k4 s, \2 X // oˉè* ??à?
7 T7 e. t( B9 S# }& M9 q pLight->Specular.r = 2.0f;
: N2 Q2 t7 J$ G pLight->Specular.g = 2.0f;- U/ |( b- x( k& A. {& ]
pLight->Specular.b = 2.0f;
2 D& G1 _5 S1 T, l3 g // á?oˉ
4 f0 r# g! p2 z0 D- @! B pLight->Ambient.r *= 1.0f;
: X3 ]' Z. C; s) z1 [, ?, T0 u. w pLight->Ambient.g *= 1.0f;# c+ O% b) z" U( Y/ T( N% j
pLight->Ambient.b *= 1.0f;' X, ]6 B* ~9 S G- F. Z
#else //__YENV
; f5 d: \' o" R" Y1 i1 n pLight->Diffuse.r *= 1.1f;( }* L9 e& E P) F# ?
pLight->Diffuse.g *= 1.1f;
; v+ p9 @7 u. f% ~1 {' z pLight->Diffuse.b *= 1.1f;
6 R- H' M* E' y* p // oˉè* ??à?
! a( G: U [' d7 j# |$ [ pLight->Specular.r = 2.0f;6 S2 W$ R2 N, I* }, w$ Q
pLight->Specular.g = 2.0f;9 ]: m J, M9 B( x6 N- }# d
pLight->Specular.b = 2.0f;
: L) D! a- t+ B) e( c- O // á?oˉ
8 ~$ C. c# W1 h& W pLight->Ambient.r *= 0.9f;
! m" P# ~8 f/ G pLight->Ambient.g *= 0.9f;
( w4 }% q, u$ N pLight->Ambient.b *= 0.9f;! [6 r& g. h8 d6 _
#endif //__YENV
* L0 T4 ~# ]/ {6 U! b
e4 X4 D6 c, c- Z memcpy( &m_light, pLight, sizeof( m_light ) );; k _) f# i2 ]# K0 i) e$ w) d
0 ^" ^, q1 @. g/ \
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);' x6 k @5 [- i3 d' ?+ \) p
D3DXMATRIX matTemp;
. e0 J& }0 `3 f9 L/ \1 K static const float CONS_VAL = 3.1415926f / 180.f;! n% e. j+ [; J' `$ k
/ j |) T, K+ Q D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);; o3 r8 ?& w9 h8 w/ u& N
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
# a$ }2 |. Z6 b, S: ]4 m pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
% ?- `7 p) Y8 N) Q pLight->Appear( m_pd3dDevice, TRUE );5 T; B8 M+ g9 w& a2 M2 T
9 s/ c7 i( E* l9 B+ g
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& m) d6 j7 Q' C! i8 n8 {
// D3DXVec3Normalize(&(vecSun),&(vecSun));
9 N0 i, y" `! c6 Q6 G% U // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. i! f4 S4 l( V) T$ F: t2 h& n x; H
$ H( I- c5 v. R5 H* t1 M3 ^ DWORD dwR, dwG, dwB;
; R" T7 r8 ~# U* D dwR = (DWORD)( pLight->Ambient.r * 255 );
$ _: z* c* @7 W7 V( u v+ O$ f' Z& o dwG = (DWORD)( pLight->Ambient.g * 255 ); s* ~4 }- Z+ @! r% Z2 O, O7 O d
dwB = (DWORD)( pLight->Ambient.b * 255 );
9 M: c6 A, o% p# ~ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( k# p) p3 s( p; @6 ^1 Y+ a }
8 |$ t+ G0 T+ h2 o$ I/ j& L- N }
" L' |* p. w1 `" O
) G: N! |. Z) W m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
+ n& s5 {% S& q, n+ q- [* G$ X 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) );% r9 s2 J2 t8 Y
::SetLight( bLight );
( ^' ~$ f8 c1 e) Q7 v/ h: d6 Y( q7 ^" J5 ^
// ±ao? ?D?í???ó á¤à? , V5 Y# Z' w& K7 J0 E
m_pd3dDevice->SetMaterial( &m_baseMaterial );; g" M! ^4 {! Q+ m5 |+ L
h$ C' s2 D+ D( m0 p#endif // not WORLDSERVER
0 R& E4 u7 D6 i R/ U}+ b6 E2 w& N. V, R$ o
并更换
7 C* l& }& b, f7 R* O9 I, `Code:; u h. ]5 h8 `" @4 Q
__FLYFF_INITPAGE_EXT6 E+ W2 {5 J5 Y
定义4 Q# C- e) i! O, B9 V) K
3 C+ A% _3 u7 R; W7 Y
" |4 c0 \& ~( T* ]5 }
8 S* r" J0 Q& N$ d/ W' y# J( \2 ?
. ~! U/ c! E; @4 n, a6 P; w
现在终于删除我的狗屁加速...
9 Q* |! V5 E7 ?7 L c- S$ k2 J1 w- U. l
( t) B1 |1 u, x/ {. I; ?( e8 k5 h
, C, I6 K5 o. c# x( B j
|
|