|
|
食品车:& i4 ^: u" m& E. v- Z P8 O) U
尾翼:7 Q' S* d7 b% J, K+ n, B
% h+ z1 f- H% u! G# m# [5 ~: [( u代码:
, { K r# `) n7 }( o1 i- HCWndAutoFood::CWndAutoFood()
7 k8 h! [4 t- u$ G{/ Y7 ?. K c0 m
m_pItemElem = NULL;
, A/ A1 \+ t7 v0 P m_pTexture = NULL;6 U8 h- J8 ~$ c0 d f% C
bStart = FALSE;
, d/ K! I9 O8 i5 I}
" c9 W- I: m3 u/ ~) \ X
8 t3 Q W! S1 `! L9 @9 `/ k& t( VCWndAutoFood::~CWndAutoFood()9 o7 n& x4 `2 u; X2 W
{
! {3 Y0 g! m) G3 c0 _7 t( o; X AfxMessageBox( "AutoFood ist gestorben " );; \$ J3 G8 X* |3 I I+ V$ P: p! |
}8 q7 v9 _0 B" [9 q. y: f
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
3 w: n. |/ ?7 c{
' S" i8 E* I: g8 P7 d: G6 b return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );7 {% W$ O* j% P7 F+ P
}
: Z7 N! Y2 _2 f1 D5 E2 \" Q% h$ }& F( ?) o1 Y+ y
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
1 E) F2 E4 z" y" b% U0 M{) H7 `' ?' }& X" @/ N0 A! J8 r
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, |+ w w0 d; ~9 G2 E9 y( |5 \6 X CRect rect = pWndCtrl->rect;
/ Y) O3 f' \4 I- I, M# c- k( j8 h if( rect && rect.PtInRect( point ) )4 a* z# [8 j9 @( e- f- Q6 z
{
* `( B/ n. T0 W1 j CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );+ O0 F \: S& ]0 _/ Y
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
0 n/ [- G1 Y( O! L" z+ n% Q {, g/ s- l* g7 V7 H( @; I
if( m_pItemElem )! x o$ B( I% [* p1 y6 c
{( ]0 V- t. I4 y. {, {2 X
m_pItemElem = NULL;
; r: I3 B7 v4 I2 A- s* a }
' r0 T8 ?' a. n X( \: X" \+ ]4 k3 S m_pItemElem = pItemElem;
3 ?5 P+ H7 e6 F% ^7 U$ `2 h$ x5 d m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
2 Q! [; Q* t8 Z& _4 y, o8 J( c* q( g }else{
# O4 Z3 r- \, E Q SetForbid( TRUE );+ x9 i% s, j0 g g
}, x! }2 X1 I M
}else{, o, ~9 K8 [( W, [) C7 f
SetForbid( TRUE );2 j7 T& s j" r3 x, T, ^
}
, \% I# n7 l0 @ return TRUE;3 N+ a1 X2 ?( {- L& Q3 c
}+ z2 x' Q$ ^ o, ?5 P; U6 C$ G
6 ~1 b v7 N3 q0 Y( \1 L+ X" G
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
& Q( P0 X% G: P0 v% K6 \{ a( A8 c' k' R/ J; x% v
switch( nID )
( Q ^& c; F, i, r' i3 |9 G {
5 t" V( B4 A! \2 p( N case WIDC_BUTTON3:
3 d9 J$ x7 F# B. }/ g {: u' {6 b4 x. R, [+ T2 Q
bStart = TRUE;& G0 \6 g% N& h8 q( Q5 q1 ^
break;% h7 T. ?& o5 a3 D
}3 y, k6 Y8 }% t- I# J
case WIDC_BUTTON4:
, _8 a" S, |' p% W {1 K$ n% R3 j& T& d5 @
bStart = FALSE;
* ? L& n# O4 m4 J0 H5 @ break;
6 @9 `- [0 _: w }& c; N* T7 N* {* ]
}) w( p+ f% M( v& k, ~1 G4 U
return CWndNeuz::OnChildNotify( message, nID, pLResult );
, q* D3 V2 c4 k F7 @% i} " N5 p' @: f+ ]5 g
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
7 H( z$ j. ^9 [- b# U" x6 R2 X: U{# |. c% m5 x5 L K1 p' |' W5 y( h+ k
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
' n$ u0 y# }: }2 `# N( f if( bStart || !m_pItemElem )* o( T5 [- U3 ]' R- R( p2 n) ?
{! t6 c7 o$ p- V: L# Q6 M
pBtn->EnableWindow( FALSE );
' J; k& m' o- f$ s i" M S4 z }else
6 J. u" |+ Y5 w8 Y' t/ K pBtn->EnableWindow( TRUE );) k% N- Z) @' c* E' R# `7 F
if( m_pTexture )4 C% p( {$ @5 @* i! |
{: @9 |' w: {2 F/ I" z @
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
) a& M2 J& o% R& X# s; \& X if( wndCtrl && wndCtrl->rect ): X' Q1 H. C% B' Q; \
{* R& f) o5 n$ Q' a- s' k' A
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );1 Y" n, R: L. X6 }, E6 p% O
}
# Y) k1 m$ y, u }
7 ]$ b7 ~/ f$ |3 }9 \6 g}* W7 b$ ]" W! w' \4 A K! N
, z; l1 R: M; J* K* tBOOL CWndAutoFood: rocess()
5 M7 m2 G9 E$ w4 v" R' c4 q{' y' B: I' f) E5 s$ r
if( bStart )
8 N" y4 a2 y4 w) ], v {5 h0 N2 b) @3 o' O% U! J0 A9 D0 \
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )& M4 p/ [3 ?+ I% c5 J
{
* l, N7 t/ h3 f! g- t if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
3 J W/ Y* L; u z! l g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );, s. ^% i- \8 ]0 `9 z6 V
}else{
7 ?$ A5 p6 L) ` bStart = FALSE;0 ~; r+ }8 v3 t7 e: M. Y9 ?4 w8 H) {3 G2 H
m_pItemElem = NULL;
' ]3 I3 [& F' Z& d7 N6 o }- v$ p" i8 y6 t
}
* e, j \0 B" K* {. Y return TRUE;
' X' P2 E6 N- o- J: C) l( Y" n- G}: P! ?2 C) `% E
$ @2 x2 z! Z* g- K( n+ N: e
登录视频废话:1 J( o0 o! Q, D" I& a
尾翼:7 m" D' O# T) n+ d
/ n( z. Q% z4 T/ n1 s
代码:' [% I) ^, A& [( H4 w/ y H
7 n S9 s; M/ I7 U6 k4 M: S( Pvoid CWorld::SetLight( BOOL bLight )
0 D( @, ]4 C/ u" A+ c& udurch
: A- R8 p; z7 rCode:
. u) B, m5 A+ v0 ?0 qvoid CWorld::SetLight( BOOL bLight )% S; L6 S/ d, G
{
* H: S( m) S7 k1 J3 \ //ACE("SetLight %d \n", bLight);+ [3 j0 w# _5 D# `
7 x& G$ C; ]% r! y- S#ifndef __WORLDSERVER
) s! t" V! [$ k DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);; S) R( D: I. e' d( r
CLight* pLight = NULL;# e7 h1 U) }5 x8 {. ^$ k7 M
; v4 w8 d2 S& j* I
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );; J3 L' q, z) w( V, T
W7 Q# |) }! X6 [% z2 |' J. S
pLight = GetLight( "direction" );
5 z) j @3 q. m! `( Z, y0 ]( Z+ R/ r8 S$ A3 \
#if __VER >= 15 // __BS_CHANGING_ENVIR9 O1 \0 b2 r v. r" ^" h! u
if( g_pPlayer ){
4 a2 u8 U( c4 ]( N ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );% j7 o1 T4 m$ w/ e7 L
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!! A* E7 l9 G3 x
{
5 k4 L* ~" k2 \( p1 O1 t \# M/ L if( pLight )9 g/ S. i0 B9 [5 z- a) l: N+ H
{3 S) p+ Q1 C/ P+ o D1 t# ?6 O
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];- z% m0 t5 e' g/ y2 w& f3 X( l
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];0 P2 H% ` x" Z% H/ G, {8 y
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
* ^* C+ M3 B2 b9 Q# R! e8 E+ U. G. ^3 p# I
pLight->Specular.r = 2.0f;
% V/ `1 ?) x, `0 k( S pLight->Specular.g = 2.0f;) y# ~2 U- ~0 S/ R; s5 A0 ~
pLight->Specular.b = 2.0f;
9 k/ x- T/ K0 H
9 a4 i* d# G$ n0 H% L pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
& q: K" t2 J* O& F6 a# j pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
# z9 b9 e3 S- j6 F( u pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];3 x% V, r% Q, b8 i4 ^
* z2 ]6 L5 v9 H9 ]9 Q
HookUpdateLight( pLight ); 8 l& ~2 h5 ~: t1 V8 l; u
0 q( H3 J& I5 R9 t. W% J memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 S* r1 X9 q. \7 u3 I6 i1 h
$ h L4 D2 o: B# f( n pLight->Diffuse.r *= 1.2f;
. O/ ?! S% M0 L! R; L9 {8 g2 W pLight->Diffuse.g *= 1.2f;1 V2 W! h% M3 x1 }! e. ~! |
pLight->Diffuse.b *= 1.2f;
! K& y; O% f# S
' F/ f4 P# G8 Q: u0 E pLight->Ambient.r *= 0.8f;
. j4 [' r* Q/ `& \! X2 R pLight->Ambient.g *= 0.8f;
1 ]& I! M/ h- `. S2 q. S1 I pLight->Ambient.b *= 0.8f;0 O# H5 y' j2 y/ d! |
& ?& J# f6 R l# D o9 ^
memcpy( &m_light, pLight, sizeof( m_light ) );/ M; b1 J% X! E. I& k8 E3 I
( W0 X: z5 o) {# p
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; z; l! C2 l5 c- }+ z% {$ t, ]5 q D3DXVec3Normalize(&(vecSun),&(vecSun));
2 f9 T+ r, O; e( T* ^2 m pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 ~4 r! Q* f* s7 q
pLight->Appear( m_pd3dDevice, TRUE );
6 w6 Z. k% B1 o. P$ Z' C1 }* l- C8 U 9 X3 b9 c0 Y' u' y$ n( Y, J0 o
DWORD dwR, dwG, dwB;
4 p9 t; M( T6 T7 Q! X& m# Y dwR = (DWORD)( pLight->Ambient.r * 255 ); e: a' R0 p3 ~8 ?! e, j2 d
dwG = (DWORD)( pLight->Ambient.g * 255 );1 @+ ]% }( o( g% P- @9 l7 M* e
dwB = (DWORD)( pLight->Ambient.b * 255 );' k3 |% J7 q9 B- f. a2 [: S N
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );. s5 q& I8 G( C* E$ `( b
}/ r: x7 T# y6 C5 t/ g# g, l1 ^6 L
}5 b& M7 t; V9 m! Y9 }, o W4 M
}
; [" O& _2 B/ [. O7 @; Y* Z else
) \3 h- e5 K2 D. V/ n" Z#endif : c* ]; @- J# h: l2 D8 D( h
! {! ` C; }3 w8 C$ \ if( m_bIsIndoor )
; r# |. u2 W+ @# L& ` {
$ B8 Q" G9 s) U) W if( pLight )8 K" _+ R' j" p, Z+ S
{ 6 s7 R4 i, m7 A8 D3 J" ]
// à??μ oˉè*
: ?2 r. Y4 B2 G' d& n( T, J pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;+ J8 ^4 C/ C3 f+ o1 D7 J; M/ V0 ~
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;6 G- m& h n$ y7 s
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f; `6 U+ H* |4 |9 ?
) w0 O4 o x% d+ ^! t
// oˉè* ??à? ( g. a' X; _4 \+ s, P
pLight->Specular.r = 1.0f;
Y4 m) h" Q* m+ \; ]) w3 P7 _6 L pLight->Specular.g = 1.0f;( y2 Z8 I! U" x) B; w' f1 K' }( E. w
pLight->Specular.b = 1.0f;) |$ s7 }% c* R1 P: g- D
// àü?? oˉè* 2 u/ k. w7 V- ~, O& G0 S, A5 e( I* F" R
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
( j: U0 J8 U- l. I p! V pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
9 F, H8 ? j" B" t ` pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;( w2 s' ?, N# X" \/ y8 ~; q0 w& A
- X& S8 U; L* k5 u @# J# T
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.' C5 V" {; n" ]" V- a
{
& l+ p9 I- v9 Y. f* D9 {: a pLight->Diffuse.r *= 0.6f;
, T; n, d8 _- s) r; d1 u2 z8 h pLight->Diffuse.g *= 0.6f;
- P1 c: R( \9 P* O/ h( \5 z6 Y pLight->Diffuse.b *= 0.6f;
" K+ N- l& P3 l' D, j) l0 P pLight->Ambient.r *= 0.7f;
) v2 e8 q; k! ^ pLight->Ambient.g *= 0.7f;+ G* F: @. X; `; S4 J9 u2 t' b, [
pLight->Ambient.b *= 0.7f;
3 O7 f2 h+ _+ C8 ?* q8 ` }/ x6 h- k9 x( Y8 m; ]( h) c5 n
) U1 b5 q1 M) L; G#if __VER >= 15 // __BS_CHANGING_ENVIR
" N& `* R/ t' X5 X: A if( g_pPlayer )% s2 V6 r9 L: u% m; z7 o- t
HookUpdateLight( pLight );
$ v0 t7 w$ |1 {! D5 Q z8 d#endif
9 ^* Q$ _6 ^0 |5 P) H, H! W: d9 C memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; `" R' x+ h5 e& F7 f
! g) X0 r4 s: K* Q8 T: }' r pLight->Diffuse.r += 0.1f;; d- x; V4 a7 l: N/ T p3 }
pLight->Diffuse.g += 0.1f;" v+ M4 M6 z& T. f6 k) y* `+ g& T
pLight->Diffuse.b += 0.1f;" i; P/ s0 ^, X$ D" g m2 N+ k( r
// oˉè* ??à? / h' e0 c0 `0 g4 O( T4 T
pLight->Specular.r = 2.0f;
: P9 H) Y( Z' A1 q$ u9 J4 C' u; M pLight->Specular.g = 2.0f;9 F+ y- z+ Y9 {% Z
pLight->Specular.b = 2.0f;
! C |$ e# V* g. x9 L) t* K // á?oˉ ; k2 o/ F: t4 K# d, _
pLight->Ambient.r *= 0.9f;) y2 Z6 d: E m- e9 M7 t! K
pLight->Ambient.g *= 0.9f;* S, L& ]+ Q: T5 V( d9 D
pLight->Ambient.b *= 0.9f;
. d2 x: T7 E# |" @. I9 K3 g7 u) a+ r9 Z1 X9 ?0 S# {% {: ]+ w c
memcpy( &m_light, pLight, sizeof( m_light ) );8 s7 \6 W* I& u8 U
. U! s7 ]( G: f+ Y v( Q5 X) |+ ` pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z ); l4 s& g4 N; p3 j
pLight->Appear( m_pd3dDevice, TRUE );8 j/ x9 H2 r: ~- t( Z5 X# Z
6 A1 r6 s, L0 n- a
DWORD dwR, dwG, dwB; f3 {- D5 u$ F8 {0 r8 r8 V
dwR = (DWORD)( pLight->Ambient.r * 255 );* R: n! z6 g; z
dwG = (DWORD)( pLight->Ambient.g * 255 );' T! R; D3 H$ e2 X2 `1 ~
dwB = (DWORD)( pLight->Ambient.b * 255 );
% L+ H" n1 Q2 F) s9 P. A3 x. q: h9 N dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% t$ g: w" ]" R+ w
}; c& {" q/ G$ p4 e% N4 ?) I. u1 c
}
/ ?% I1 R% V9 `+ R4 r else: G5 `) P, K8 V I" @
{
5 ?( F, W- @3 n$ m) |/ t# [ if( pLight )+ K) @9 J' o6 O; @5 ]9 v
{0 a# q3 Y+ j* l$ R* i
/ L3 m( u0 E6 p. S _& l8 X: ^
int nHour = 8, nMin = 0;$ A( \0 p6 H$ M/ C) `' Q
#ifdef __CLIENT" O' P- f7 m; I! I
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 4 t9 B! t" y) B
nHour = g_GameTimer.m_nHour;3 y$ {7 w6 s: l+ m
nMin = g_GameTimer.m_nMin ;
$ z, F+ s6 e/ `+ b1 z7 W5 t5 T. q #else; x7 y- e- Y9 t3 e D) ~
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
% E9 E2 {: ~ T# j8 n2 w: F if( m_nLightType == 1 )2 W8 X+ }' q+ l
nHour = m_nLightHour;
; E1 I, E0 t/ t+ o6 E; a7 T' V #endif$ b A- Y6 A- b* e# a/ Q1 W
nHour--;
7 N* X: Z' n$ y* N: L) @2 x if( nHour < 0 ) nHour = 0;
* @0 D, I2 x$ @* ] if( nHour > 23 ) nHour = 23;1 D2 h- M7 B; x0 {* u" {% s
4 L" t& X0 L1 i3 M) s //if( m_bFixedHour )
/ o0 u4 D* }4 L5 o }6 o // nHour = m_nFixedHour, nMin = 0;
" T: s7 q- r v& B LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
* c, a/ D0 G9 `/ g0 X LIGHTCOLOR lightColor = m_k24Light[ nHour ];8 r4 J5 T- r5 y% l
& z4 s4 J! ]5 j2 S //m_lightColor = lightColorPrv;
6 J A0 X5 j/ H8 q lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;* _2 E R: P' f- o1 ~* A2 j
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;) u# E$ ~, M0 w: A
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
& Q" n" T, q3 J1 ^# T1 v lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
: h# l8 d% `+ N0 J lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;7 Z' \; T s- A% T
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;& D4 X$ _7 d4 r7 z! X; q2 }
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
3 k: O1 f$ G) \1 h* B: a& Q: R1 x0 A8 L# e
// à??μ oˉè*
- D, e1 P6 R" p9 r pLight->Diffuse.r = lightColorPrv.r1;" f9 U" I, _+ ^/ K6 R
pLight->Diffuse.g = lightColorPrv.g1;
7 ]8 i" W" k2 o pLight->Diffuse.b = lightColorPrv.b1;
1 n7 i: O2 G- Y4 r6 g9 o0 e // oˉè* ??à? ( u+ b! z$ u) L/ u. E5 R7 _
pLight->Specular.r = 1.0f;* U7 K3 U$ L! M% t; `" [0 L$ t
pLight->Specular.g = 1.0f;
8 ^" E, d8 P; j& K. G( C pLight->Specular.b = 1.0f;1 x7 ~0 N6 y0 R8 T/ O3 w
// àü?? oˉè* 0 U# Z; H7 m* D6 j& c5 m4 p; N
pLight->Ambient.r = lightColorPrv.r2;% G( a8 W" N8 j8 k9 e4 T
pLight->Ambient.g = lightColorPrv.g2;
( `* |, B3 l4 M t pLight->Ambient.b = lightColorPrv.b2;/ c# t( |6 O9 Q& N- i
K3 ~8 _ [" ?2 A& X- e7 A
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
. ?; U& y+ [4 h7 V k7 y0 b {
5 ^; q) k" G" }% e9 a5 P pLight->Diffuse.r *= 0.6f;
; U; O5 a. l. o8 b" { pLight->Diffuse.g *= 0.6f;3 _- T; y: I9 ^$ ^7 Q* }
pLight->Diffuse.b *= 0.6f;
, X3 b; o+ l2 Y pLight->Ambient.r *= 0.7f;+ O- |4 ]# v' B5 D- q1 d7 I% j# X
pLight->Ambient.g *= 0.7f;; K# Q8 v, ~, J" |2 R( u
pLight->Ambient.b *= 0.7f;/ t) Y0 f- @' |9 ]. T) g
}! l& ~8 D5 B9 v5 H
$ e- f# W: ?( z- b: [#if __VER >= 15 // __BS_CHANGING_ENVIR% a; [6 B3 L$ \4 l6 N
if( g_pPlayer )
) F) I2 O& e# x/ H HookUpdateLight( pLight ); * w( ]1 |; j2 _% q: [
#endif
& W( x" P+ y1 @" _' N" [ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* L, }" {: X, S6 s, T" D$ g7 n
- Q% p7 \! B9 M#ifdef __YENV
. W6 `6 c) n" @ pLight->Diffuse.r *= 1.1f;
+ D) T7 r4 q @1 B8 {6 ~ pLight->Diffuse.g *= 1.1f;6 g( f5 F( A2 M, L, J
pLight->Diffuse.b *= 1.1f;
* f" R M* g, w. R // oˉè* ??à? ; {$ G, g O4 w+ a
pLight->Specular.r = 2.0f;: a# X, B8 j; O5 `
pLight->Specular.g = 2.0f;
D* M4 y1 p) z9 x; Y* i pLight->Specular.b = 2.0f;- C5 V3 u! ]! L. v8 M
// á?oˉ
% f2 ]2 [7 r. o0 E4 s) T pLight->Ambient.r *= 1.0f;8 u1 Q3 v/ ?: E/ O) y
pLight->Ambient.g *= 1.0f;, y/ R: {( d3 b+ g1 [$ F l
pLight->Ambient.b *= 1.0f;
6 `; y2 ]3 A+ ]" n( z#else //__YENV, Z+ p/ b. F9 D1 n; A! a
pLight->Diffuse.r *= 1.1f;
0 }; E3 `' W, E8 o. B: X( a: D pLight->Diffuse.g *= 1.1f;0 {: U' ^2 ?* U$ t- B/ ^
pLight->Diffuse.b *= 1.1f;
0 E0 O9 @1 u' X& S- S // oˉè* ??à? 6 ?( i7 i: n$ D% a' O
pLight->Specular.r = 2.0f;
( E1 r1 \% X& {: a% k pLight->Specular.g = 2.0f;
2 x7 x. v4 [5 N pLight->Specular.b = 2.0f;
& ?2 |) |4 F" G( c // á?oˉ
, y v) p7 n" ?7 x* C9 s. O pLight->Ambient.r *= 0.9f;; r+ V/ M5 m$ o3 g& E" s7 d" y
pLight->Ambient.g *= 0.9f;6 m- t+ u4 v' `, U7 j
pLight->Ambient.b *= 0.9f;
0 E# V- Q/ D. A0 Q+ r7 ?#endif //__YENV
' ?1 }2 _, }# v$ M+ @
2 N9 w' D6 ?8 n3 t0 D( X0 D memcpy( &m_light, pLight, sizeof( m_light ) );& ^7 U- i; X. ]; } p, ?
/ _* l7 M: O8 |" E D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);% } J+ @% f* K0 U
D3DXMATRIX matTemp;' m6 z' _5 d: f. ^0 D5 V% O m# [: w
static const float CONS_VAL = 3.1415926f / 180.f;' A, Q4 p" L; Y
/ A2 O( ^/ O W( Y& b# K D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);$ b1 L+ c, [. z; L6 T* ~0 d/ f4 ?$ ?
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);, g; M5 j& d" T2 s1 a- V3 K( x. ^
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 9 u( \) |: c1 t; |0 p" q
pLight->Appear( m_pd3dDevice, TRUE );% z. H! J, M/ b- E0 h, ]; u1 b8 z
" |3 l* Q9 I; [. r8 k* |( |# }
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 V" J0 t, A0 u! e4 I& S9 ?( `& y4 C // D3DXVec3Normalize(&(vecSun),&(vecSun));# Y% D. _9 {8 ? o$ F/ P0 Z
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' J8 v- o* c# t# _6 h
6 j; y K3 ~2 `5 r4 K$ [) n DWORD dwR, dwG, dwB;- U) {7 u! E+ H( m5 m
dwR = (DWORD)( pLight->Ambient.r * 255 );
- L+ |: R- X3 r2 z3 I% {8 c" [0 M dwG = (DWORD)( pLight->Ambient.g * 255 );
& O7 U1 p; X0 z6 j dwB = (DWORD)( pLight->Ambient.b * 255 );8 d' A; F, _! i8 r% t5 }
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; o7 \! ?* ~; A7 |3 \' V3 d }8 n( u2 U; U' S* D; u+ T6 O
}" U5 m* V. _/ T# {
$ |1 `* `* A( I1 ~+ |3 G3 x m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );; x1 ?" q% W$ c+ m- F# \
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 @6 w2 K$ Z, N! c$ T5 N ::SetLight( bLight );8 S! T* C9 w/ j9 e& t' i! L
* |' u1 G. H* W# j+ Y3 I3 L8 y! C // ±ao? ?D?í???ó á¤à?
; Z/ Q! W+ n. o4 s! {0 u L" W4 U m_pd3dDevice->SetMaterial( &m_baseMaterial );( p% ^$ @: a _' @( q
( f* X3 d3 c G3 U- @ {
#endif // not WORLDSERVER
* f$ Z8 G3 y7 L: `" { ]: R A, \. L}
! N& n! o$ P: ~- ?( H4 H/ G并更换2 {* D1 B" h- P |5 p+ V" j' n
Code:
9 ~6 f6 Y2 A4 ]* |' D__FLYFF_INITPAGE_EXT
4 \/ ~3 Z# |% N2 p( P定义4 v) [# L+ p2 P
( w) {9 Z1 \) W( V# d- z
0 G- E2 J9 @' e I
8 p) _. Y8 m, u% i# k+ K( m- N0 H% d$ u) c7 E
现在终于删除我的狗屁加速...6 T% o7 }- n+ V& _$ A
* I1 o8 a4 W1 E+ ]' z
3 }5 n. ]- g- c- K5 J. b8 J- `
6 ]& [1 n0 s: R' Q9 M* e |
|