|
|
食品车:
# ?3 X' D% `% ~; k: Z) z! }9 i4 |1 y尾翼:' F+ E/ d% k- R2 L# U: o8 R6 n
, K% M, F6 T5 |; I) ?
代码:& W& c, p( V& m; W0 w
CWndAutoFood::CWndAutoFood()
8 s" ~1 n" s4 d{
/ a* O- t' }% }; S+ B3 w m_pItemElem = NULL;! V# G" R C- t6 U! p/ ~
m_pTexture = NULL;
; p |$ f& v7 s; `+ N1 N' @ bStart = FALSE;
+ ^+ g- S' r, ]}
+ W, {2 H( O$ Z: k; S' b
: R% @2 ~3 q0 c- ^# cCWndAutoFood::~CWndAutoFood()
/ \. `0 Z5 S9 D4 D8 q4 S{
# l6 u% |6 `- J; m9 o6 [- | AfxMessageBox( "AutoFood ist gestorben " );. n) B6 p7 I( \+ `" s' y$ X
}
( Z! g; n5 E: {0 C: S0 ABOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )9 n2 n0 k6 }+ b( j
{2 U1 v( C; D7 l1 A$ k! `8 H
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
" \: |" z! o& p, X}" @/ y1 Z# O0 z( m5 f9 y6 J% g
% R' v$ e, q+ i
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
; L" P4 O/ ^# N6 N! J: x{6 g; i1 a9 i! E. I5 }
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 I! h1 x- w) W6 E+ |5 m, _: Q CRect rect = pWndCtrl->rect;
7 k2 h# r: C1 G' s3 b' d/ E4 [. f0 K if( rect && rect.PtInRect( point ) )$ n5 N0 C& e6 M" r3 g8 r) y# K" X
{
, x# x6 n' f/ ~ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );( n1 A! \. p% A$ i
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
5 y+ V/ x/ `( ^4 A @ {$ G9 q7 g2 p0 `
if( m_pItemElem )8 O8 p$ k4 x& f* n2 y
{
, t8 B- N0 E- p" N. y3 c3 w/ M, l5 O m_pItemElem = NULL;- U5 B) `% } L7 d4 G( }3 B
}1 I' b( w+ B' {5 K6 F
m_pItemElem = pItemElem;! S, q* Y' ^2 i4 m6 ^
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );& A! W$ }- f$ k& u5 v4 o1 w
}else{3 B. _1 N4 Y) o; c; E5 s5 A+ B5 U
SetForbid( TRUE );! [/ E% q5 d0 _# P4 K' S8 Y+ U2 v
}5 Z' E1 M+ O$ H, p+ d/ k
}else{+ M# }& }. y0 R1 k! f/ Y! T
SetForbid( TRUE );4 e! m2 `! i4 b D, K
}
9 k/ m% L+ |/ x6 b return TRUE;- |" B% u% Q/ I4 N* _1 C
}
' s1 G7 H7 r$ B) X7 f$ U: K7 N6 v- h
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )- K6 P0 }3 _6 w" S/ Z
{4 M6 v L7 @- j9 D
switch( nID )' d9 i. o! K' P
{
, K7 }3 t! h O case WIDC_BUTTON3:9 x! m& p1 N# t' S9 b
{
K. ^' I/ H. Q" e6 A, O' M5 p bStart = TRUE;
! n/ v9 w4 K: T break;5 L, ^( y: i9 T4 ~: A# ?) Y/ W. A
}
+ ]% _& g( p5 L: z- z f case WIDC_BUTTON4:1 n. Q# Y! t1 D' o/ n" b
{
$ { W N, z/ v: L) @$ v& I- r bStart = FALSE;
/ u; P$ |* d. m8 H break;/ T9 p% H! | }, e3 M9 M
}0 O0 b% T/ T7 i: \; G
}- ]0 J; l- O3 }) r: d
return CWndNeuz::OnChildNotify( message, nID, pLResult );3 l; U' `" s( _
} |% ]3 H4 ?& V3 ~, j# r' F
void CWndAutoFood::OnDraw( C2DRender* p2DRender )' y% u* A, q, N5 I# k' \* y
{
3 T4 |/ J! J- O; { CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );/ J% S5 `6 K" }
if( bStart || !m_pItemElem )! s# Z7 i5 W; g% H: i$ A# Q# k8 P
{
( V; M8 I* i5 `3 R pBtn->EnableWindow( FALSE );% @, l" Y8 [, r: E9 \8 S6 b5 j" X" N
}else' n3 l% c! r9 {! ?- g2 ^# j
pBtn->EnableWindow( TRUE );
: R# U; d" p, r' ~, t7 O4 Z if( m_pTexture )
7 |) Y5 [" v5 N {
0 B% d9 B: i5 U+ t y, s LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; j' X+ Q2 s! J { if( wndCtrl && wndCtrl->rect )
; T0 l" O' ^5 a U2 c, s; r8 D) F {
( g9 @$ D) Y8 t: R8 {9 T. Q m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
1 }7 `1 o- Z. j! h0 t! R }
$ U- f! R4 t6 J }
0 b8 `7 E+ n, F- c$ Z% b- ? r}5 ^) J( m5 h! k% d2 ]) v
" \+ T1 |6 \7 S! r5 X& a
BOOL CWndAutoFood: rocess()
3 f6 [* _* C( }/ U+ d- m, r" L{$ j: C* u+ N* \% v2 r, b& A% `
if( bStart )% p/ G8 h Z0 c$ j$ w& j
{
1 I% Z- [; L7 |+ n0 u: }* K if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. @4 A6 ^" `6 r8 f% B% P$ M {* z1 G9 T; E+ S/ [- q' |
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )# D8 i' m7 w, J5 ~
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
: a/ l" O# i( f3 r& R5 c6 h }else{
( B# C2 m. i8 A bStart = FALSE;
! d, d$ ^ \+ S8 S% y% d m_pItemElem = NULL;
6 {: ]" N, e( z. F, Z* }$ j6 q/ w }
5 G i$ H* |2 Q" o! c! X }
0 A2 n( {) W8 K! p0 Z) z% C1 P return TRUE;
+ x; g8 n) C5 z: q6 u8 U2 ]}) T( w2 U( G0 ]% g1 p! g# b. D4 l
) q* Y' e& L8 e登录视频废话:% i6 O0 l* Q; @+ e
尾翼:
e0 a3 d9 E6 m) a
4 t" T& z3 s( g) v% ^代码:
0 `+ O" l+ I; I! E' g
9 ~/ Y- ^# B6 o- `5 bvoid CWorld::SetLight( BOOL bLight )
8 d# \* p6 y* Mdurch8 `4 @' r, Z l# g p1 _1 U8 I
Code:* k A- V$ C/ ?; l0 {/ U+ g
void CWorld::SetLight( BOOL bLight )
# i* X+ u3 w G" `" T! a{
7 @7 F+ [- ?: f ^. ] T& ~ //ACE("SetLight %d \n", bLight);! { t I: n& p; Y" d( h
) Z+ [ r" D8 a0 t& I5 h$ i5 r#ifndef __WORLDSERVER $ C: l* ?. o+ R) ]$ I1 X0 _. ]1 V
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
. b( K e7 D2 K$ E/ g CLight* pLight = NULL;* q, |0 }8 h' s: D ~* ]7 l3 {
7 P7 E0 N6 |) Q. c+ @+ }
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
3 h, u: e# [0 ?
) l* n+ p' W9 g8 k" S5 L0 f pLight = GetLight( "direction" );3 w' f6 Z' ~' B5 C
1 l, [ ^8 k1 ]#if __VER >= 15 // __BS_CHANGING_ENVIR# ]" m C8 x' y4 \& b4 Y1 U/ f v
if( g_pPlayer ){
1 c* j- i$ \# K$ ~; O. ] ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
9 L: b0 I( v& P0 \: ] if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 S0 R% W% q2 w4 | r1 B {* t) E: v0 V4 n% q7 x* R d8 S
if( pLight )
& W3 x3 V' } H+ b% }7 I* T {
3 S) F. g% S2 A* \ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
/ W5 Q) e1 Z0 _/ K' f# x' [" h pLight->Ambient.g = pInfo->_fAmbient[ 1 ];' N9 ~7 ^5 s" p. J8 v6 V7 j$ H
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];4 D9 Q" R3 @+ q E' Z
6 O, c) @/ d) I* R0 c l pLight->Specular.r = 2.0f;/ i/ `" ~) S* ]9 k6 N: C
pLight->Specular.g = 2.0f;
4 b0 d7 u: Q: f pLight->Specular.b = 2.0f;& j1 E( m0 @9 y' S2 l& |
4 ~5 z6 ^$ v! ^; _" b3 U2 t/ y% y pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
9 l* S% C, u& u' r- B! ?$ M l pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
: w8 ]! y1 a+ Z* l. d pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
' \+ H2 k4 k1 r5 Z% T. e9 K2 [
8 e3 I6 P$ [, i1 j% [ n" Z/ s HookUpdateLight( pLight ); % z6 }5 M6 r6 N$ m) W
; a; Q) c2 `& O0 S) V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ _0 W; \4 F5 R3 }, p & f# M8 P2 X$ A3 p
pLight->Diffuse.r *= 1.2f;
8 O7 r1 y2 Q. I. K7 S pLight->Diffuse.g *= 1.2f;4 ]+ m |1 K' ~7 J! q& F
pLight->Diffuse.b *= 1.2f;
/ p X( Y; k8 i/ Z( |: ?5 k
' ^$ j5 o8 \2 ]3 y6 W- h- f pLight->Ambient.r *= 0.8f;
6 a; L- W$ c6 o; w5 O3 G5 ]: G pLight->Ambient.g *= 0.8f;& v# Z# n" M0 e! v- {
pLight->Ambient.b *= 0.8f;5 s* ]6 X. E2 ?6 v2 y% i/ O
& @ \- g& q- Y" V d- ^) e B: z memcpy( &m_light, pLight, sizeof( m_light ) );
! E, m! S0 w% d+ h- d+ K9 _6 @5 L+ G5 X& ~ e+ s5 d
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; x) W* e( M3 Q0 m2 }
D3DXVec3Normalize(&(vecSun),&(vecSun));7 c7 L' B7 t; a. Z+ j" }2 p
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' P, u, X3 ]) a& K {- [; @/ O pLight->Appear( m_pd3dDevice, TRUE );
$ i. L9 ^, Q) C$ L$ ] [8 y" v7 W/ w. ?. B; S! f
DWORD dwR, dwG, dwB;
% ~" h6 k2 p B& `4 R% R dwR = (DWORD)( pLight->Ambient.r * 255 );6 d. B; X7 l. A, Z4 b
dwG = (DWORD)( pLight->Ambient.g * 255 );
- k5 x; X, ^; r% y! m9 |& l f dwB = (DWORD)( pLight->Ambient.b * 255 );! q$ w/ X3 _/ o4 X
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( H7 p, G8 h$ B' X7 p }
2 j0 c9 u8 Z0 X! k t }
8 _; k# H" X6 ?% E y }: P, P( W3 X, H/ G, e/ ~
else8 Z0 ]$ K3 [5 `( h0 a
#endif 0 A2 s% ~, m& c) x3 {6 D5 Y5 v1 }
. E! g7 s) i( v' q
if( m_bIsIndoor )
! W1 y+ r3 u* C' y2 e {
5 t1 c- A* X# T' _6 r+ T7 I2 w. e if( pLight )
: c% P4 e5 z% Q3 L4 B { 4 o' t3 s2 l. X
// à??μ oˉè* ' q: J6 m/ l- l( E+ v
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
. f0 Y1 c1 x' F5 j- d' l pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;6 J/ G1 e) I% c2 b. ~
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;/ T- J8 B9 R k6 l$ ?$ e
! d( z) i- f6 x: s0 s: M
// oˉè* ??à? ' }" e. |2 E0 T0 o& @- A# \
pLight->Specular.r = 1.0f;7 i: u! [: J# l. B5 d# g
pLight->Specular.g = 1.0f;; s3 G3 F% \1 k
pLight->Specular.b = 1.0f;# m$ \8 w2 H* d5 M( F6 {
// àü?? oˉè* U7 V9 z; N) q; j! R3 S
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
. e+ ?8 g7 {) w pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;, ^% }2 b7 R) s5 s, ?1 P
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;( `/ W) ]+ ~% q+ \% d/ i; m
+ j' X; ^: t) D% h7 \" r
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
+ O5 Y n" z P6 L {$ z) D0 }% S& L0 ^
pLight->Diffuse.r *= 0.6f;
: p4 z- o0 e/ C3 e4 ^# C6 S pLight->Diffuse.g *= 0.6f;" ?, I7 c! u5 V/ `$ n6 e* _
pLight->Diffuse.b *= 0.6f;! j; {8 V5 K# Z% b+ N* X0 o9 ~
pLight->Ambient.r *= 0.7f;
. j3 J' y+ l8 }6 N+ I8 Y& S3 c( O pLight->Ambient.g *= 0.7f;
! q: v: b; k5 J" G pLight->Ambient.b *= 0.7f;7 H# x( M+ H0 G1 X% S( S4 X" l _
}
6 G7 p7 L4 e5 Q$ S( z7 G
! r' t5 o0 R$ g5 [#if __VER >= 15 // __BS_CHANGING_ENVIR* ~2 { i9 x# z$ ?
if( g_pPlayer )
9 V/ G1 r6 O+ ` HookUpdateLight( pLight );
! j. p' q5 Z; S8 P+ p) l#endif
! e+ E, W2 `9 K: r) H. R memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); Q- T U G% Z! Q! g) a& f+ z
4 J& t$ r# |# D) |2 q4 c
pLight->Diffuse.r += 0.1f;- D9 E1 B, Q2 S3 r1 t4 }
pLight->Diffuse.g += 0.1f;9 c" n3 U- d* { _" _& k9 {$ L
pLight->Diffuse.b += 0.1f;
9 n5 @9 h5 U: J% O; o8 }5 K. o // oˉè* ??à? 4 z; C' V$ _3 \8 K
pLight->Specular.r = 2.0f;
1 Q1 u* y3 X' f2 x$ Y+ I pLight->Specular.g = 2.0f;
. b6 Z! d+ c5 h' k; n6 r pLight->Specular.b = 2.0f;
6 [: J8 h! x& C$ C // á?oˉ 0 k2 N+ H' c. H3 _* b
pLight->Ambient.r *= 0.9f;
6 ?$ a$ q3 P+ d3 @$ a7 T; N0 Q; n pLight->Ambient.g *= 0.9f;
* E" e) g* n; ^- n, Z6 B, v pLight->Ambient.b *= 0.9f;6 U! l4 |) M: @! R8 k
3 Q) b ]9 [7 T1 ^) A. X memcpy( &m_light, pLight, sizeof( m_light ) );! d" W N4 j: d$ J4 I
" B& R ?! _9 V" }: f% Z pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
8 U( M# [; A0 { pLight->Appear( m_pd3dDevice, TRUE );7 \. J. _* L4 c* S+ `9 |
: ^+ v! M H4 J1 w
DWORD dwR, dwG, dwB;
( u/ g4 a4 N0 f/ L* M dwR = (DWORD)( pLight->Ambient.r * 255 );4 [* t, _. N* h' d/ ^
dwG = (DWORD)( pLight->Ambient.g * 255 );$ w r4 O* Q t5 H) J
dwB = (DWORD)( pLight->Ambient.b * 255 );
q( s' ]" m0 t dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ X- K. R- m' E$ T2 h' M
}
) v7 n+ L/ f' V0 u }
' Q) d$ B8 n8 m; {2 E else
! m5 l/ n. M) T$ U' @6 O {
* h: E8 q, W, H/ }0 R' c if( pLight )% G) i/ n+ J4 k f
{
6 \0 T' k) J. o# k) |8 n
; X& ]& |. A* x v D int nHour = 8, nMin = 0;
, e5 U! |( M* _( i6 m. o Z, ` #ifdef __CLIENT2 Y/ S' f0 Y1 |) L* F
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
) B6 ^3 B+ Q7 H5 g( `' ` nHour = g_GameTimer.m_nHour;
1 ~( Q/ x* c( o& p nMin = g_GameTimer.m_nMin ;
4 x8 {' O+ i* t2 M( i #else
* ~/ U. d) B, a0 s5 L* c // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
1 x) }5 p% v* w' { if( m_nLightType == 1 )4 L8 m: o* ?' |
nHour = m_nLightHour;
& }7 s; a/ ?* b; h, G/ Y* p #endif
C& l- |$ M% o! a% E! h nHour--;
, g: L# I6 O. P- m8 l# ~9 X if( nHour < 0 ) nHour = 0;
@; x- z9 R+ S6 \* l0 O if( nHour > 23 ) nHour = 23;
3 `7 r- Y( w$ V- E
' a% E! S9 x% v6 H4 h! \8 p' f //if( m_bFixedHour )
0 }; \: [2 p- R3 ` // nHour = m_nFixedHour, nMin = 0;
; |1 ~# W/ }) } i' K# V LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
4 L' S* ^3 F% o" n2 x LIGHTCOLOR lightColor = m_k24Light[ nHour ];
a# Y9 z2 @- S- e
( I/ j% i- M* t //m_lightColor = lightColorPrv;
4 R6 O! S" `$ Q; T" B lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;- y" M+ t$ F7 u8 T& t8 q4 L
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
$ ]& m3 @! C. \. c" o1 O `0 _ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
% E) j0 b) Q' x4 X lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;' }/ t4 h- J" b: @' B9 O" [6 U% r$ }
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;8 m0 Q+ x+ ?+ N9 X8 c3 o* [- r
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;# X$ r4 E3 w8 r6 O% b9 S/ J
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
; c5 R" S# Q/ Y( Z: m4 ?% ^
1 X4 n" b( Q% }- O: J6 W: m // à??μ oˉè*
9 _ a; ]7 n& A1 Q pLight->Diffuse.r = lightColorPrv.r1;5 [; M6 M! p* L& y+ U6 \
pLight->Diffuse.g = lightColorPrv.g1; R; W7 |' |8 n+ ?& X" i
pLight->Diffuse.b = lightColorPrv.b1;# O$ V# g5 C6 |. ?$ [$ S: e
// oˉè* ??à? 7 w4 g2 K6 m7 s% x+ x5 y( {- E: w
pLight->Specular.r = 1.0f;
L, P2 Q4 ^# O3 N! C/ w7 W# n pLight->Specular.g = 1.0f;
; C% J( [! x' W0 c, h pLight->Specular.b = 1.0f;& e% R' s* G: X( Z2 X6 N% ]9 Y5 q
// àü?? oˉè* / m: S% g# }* z* B
pLight->Ambient.r = lightColorPrv.r2;, h& q5 a( z1 d0 @3 j$ `
pLight->Ambient.g = lightColorPrv.g2;
! x7 y3 d& S1 U" |7 L pLight->Ambient.b = lightColorPrv.b2;
) x( d( Y5 c0 y/ d! s1 j5 Y$ ~! M* q
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
! f; k& w6 Z3 q: K/ f {
/ ]$ c" J$ v' U: v pLight->Diffuse.r *= 0.6f;
- V1 Z) n% e* a% ~1 V m pLight->Diffuse.g *= 0.6f;$ _: b6 O8 a( i$ T. K% n$ Y- d N- s
pLight->Diffuse.b *= 0.6f;
3 F" Y+ r8 f1 o$ F4 u pLight->Ambient.r *= 0.7f;) ^$ I8 G8 \$ C: }1 T
pLight->Ambient.g *= 0.7f;
% b0 Q1 S, o. h- R7 {; N pLight->Ambient.b *= 0.7f;, ?2 u; ]0 s D1 @ X1 \0 y) @
}
s0 o8 ]$ \" Q- I3 T f) ]3 `+ v/ ~. N! S
#if __VER >= 15 // __BS_CHANGING_ENVIR* X$ a1 A0 P" H6 E
if( g_pPlayer )5 g+ p5 g W0 C1 i; B. m
HookUpdateLight( pLight );
0 C* Q9 q0 s* O7 T) ~1 E#endif/ `) A6 V9 V/ t) d: T
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! k' R8 p5 X9 P* D: }0 z0 Z
* [ G' I, D5 d* g& l# A* V#ifdef __YENV
; u" v/ `# Z! }3 O' w! j; q# E pLight->Diffuse.r *= 1.1f;$ J/ B/ F5 V0 C. M( B* d. c; t) X
pLight->Diffuse.g *= 1.1f;
m s! D4 ]: [ n* n* M I pLight->Diffuse.b *= 1.1f;$ C! H* x' H' l7 w( \- J6 E
// oˉè* ??à? # }6 x. r! k9 G6 s# i
pLight->Specular.r = 2.0f;
5 x) Q$ c: |# \1 f, L: k" \+ P6 }9 H& \ pLight->Specular.g = 2.0f;( w; x1 A% F3 e* C. M, j0 g# X) u
pLight->Specular.b = 2.0f;
: r' O( y' I* I5 D; A // á?oˉ R# j* o/ O# H- \- R7 W" n
pLight->Ambient.r *= 1.0f;% C& j: N. U" r! V% l; N& d
pLight->Ambient.g *= 1.0f;" A3 }' Y: d( r0 u5 D6 G
pLight->Ambient.b *= 1.0f;7 \: Y( x9 n7 D
#else //__YENV
" U: P0 k' z% \8 V pLight->Diffuse.r *= 1.1f;
9 G) R$ q9 p, o, G pLight->Diffuse.g *= 1.1f;- U+ W( N4 D2 ~* @
pLight->Diffuse.b *= 1.1f;
, r) |7 a- q5 z3 @* } // oˉè* ??à?
6 [, y2 g" \; O$ k0 y- {3 F2 z$ u pLight->Specular.r = 2.0f;- r% V9 x1 F2 I3 c* x
pLight->Specular.g = 2.0f;
5 K6 F# ]! h+ Y% s L7 T% H pLight->Specular.b = 2.0f;
) B: n# v# L4 K C- V/ h // á?oˉ
1 d6 w! U3 b( }4 C) z pLight->Ambient.r *= 0.9f;" j! K5 }! C D* u+ l* i
pLight->Ambient.g *= 0.9f;. W) q) _4 Y3 i" D. z: B
pLight->Ambient.b *= 0.9f;
8 _0 T! N' o8 o$ G M( \+ f* k. \#endif //__YENV # Y1 t v& X+ ?7 l# K c/ ]. @
& ~7 i# l0 f& S3 {# k1 J+ O
memcpy( &m_light, pLight, sizeof( m_light ) );* X/ a" k$ Z+ ~8 B0 l: Z+ t/ o0 a6 d
% y: x& j$ N6 {1 R" x6 }5 z D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);8 `/ W2 J/ E- N% N- t* y' S- q! Z
D3DXMATRIX matTemp;
3 k+ K" }6 ?. N3 {2 j7 P& l+ n static const float CONS_VAL = 3.1415926f / 180.f;. v |8 }6 {+ b' j
( D3 `0 A/ ~) `/ k D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
\6 f6 g% \' T2 F/ Z0 @8 b D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
: a5 H9 l9 x$ I D1 f pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); " A, w) ^6 G* M" u# h6 L% O
pLight->Appear( m_pd3dDevice, TRUE );
$ d8 A" M- e. A1 v1 i
2 m+ A% r0 g! L( K8 d // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& i7 n Y" k/ F
// D3DXVec3Normalize(&(vecSun),&(vecSun));
: f# P' U0 D9 T8 ?% j: b- A // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* ~4 W& @; ?3 A, x9 A6 X$ `9 L* {2 ?
DWORD dwR, dwG, dwB;' ~ s C) r2 k# D. O
dwR = (DWORD)( pLight->Ambient.r * 255 ); S- H- F! l7 F1 n, z; ?7 v$ L
dwG = (DWORD)( pLight->Ambient.g * 255 );6 Y5 l( t! ^2 T& D$ J; }3 N% O
dwB = (DWORD)( pLight->Ambient.b * 255 );- x h6 ^5 b! d; x# N
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); * P$ I8 Z% p# D' I8 D
}' g; x9 w A3 R/ s7 y
}" o8 G0 B0 Y6 m* c, P8 s% i, H4 n
0 S* [; l7 I, a! I) Y+ O
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
4 u' n: X+ i5 q$ n; r& B$ P 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) );1 c; W& n4 T7 D
::SetLight( bLight );: X5 O+ x6 } H
2 }+ O' r' P x/ x# P: n
// ±ao? ?D?í???ó á¤à? " I" f u. b% x# Z
m_pd3dDevice->SetMaterial( &m_baseMaterial );
( d# x1 \" j2 Y
* w2 E! O1 L, p _1 Y9 u#endif // not WORLDSERVER
+ `1 M$ r# |# H% {6 g9 G; e}3 J, k( b" l: ? w
并更换% T4 }: M/ [8 }/ v4 H
Code:0 r o8 }) I* x- }
__FLYFF_INITPAGE_EXT/ B. E& S# }: w
定义! F4 @: q" z/ z# M" j( E
( A& ^$ c; l/ n/ y5 J0 z
# e! _5 j2 `6 L
- x% ]( N+ p+ k, P3 y: k# J. l: E* q5 _! N! l
现在终于删除我的狗屁加速...( Y% f3 @" X% Y, V
. ?5 J; `# Q2 k3 D- W( ]0 B, _" p/ \& o; b- a
5 g8 b t, {7 B( A0 l5 X( Q" n2 Z4 g% f |
|