|
|
食品车:1 j! `4 g3 B& [# C' z
尾翼:
; Z2 I6 I; |, @# D$ ?
5 j: R' U7 j- a' L- z代码:' l, `5 @6 W) \$ {+ |9 ?
CWndAutoFood::CWndAutoFood()( W; \5 G7 d9 c X) V, {/ O& K
{
& K6 L" C# b/ Y) @# c% F) @* l m_pItemElem = NULL;; u; e3 |, M# ~: ^0 b7 i7 S4 g& P
m_pTexture = NULL;) ]' w! R+ O5 i9 D0 v* L
bStart = FALSE;) X+ ~' S& N8 M+ a
}3 r3 h) O. m! ~7 P3 s
6 C+ R; I, D' A4 O% l4 zCWndAutoFood::~CWndAutoFood()- L8 z0 \! v0 S
{
8 P2 E* P" m9 R, c1 N. m AfxMessageBox( "AutoFood ist gestorben " );7 @" q5 ~; ^: _: i9 x @5 Q% G5 A
}+ x' Z. C" Y) e9 E5 n: k0 j7 W6 B
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
& O# k; _2 c7 Q; U" V{! J( {# @3 Q2 `+ B
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
$ R- p) N3 S% b6 P7 T2 {& w6 D}
3 b7 s$ f# k1 d- z# T
# K7 Q& [: K! e9 DBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ): e2 E" y; n9 f4 I5 n
{
" h7 u2 R! t6 | LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ {$ y! `+ m9 ^* H1 m, j
CRect rect = pWndCtrl->rect;
6 y3 x, s1 Q# L; c% ?) \/ X( ?9 e if( rect && rect.PtInRect( point ) )
( O; x- R( l& U0 Z" D" e4 X; I6 z4 M& ?' J { `5 ?0 U. I( W$ A" _' M
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );) A3 D1 p! M H% K, `( K9 }8 x" C$ s
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
7 k; Q% p% b1 Q0 y {
$ U2 }8 l$ V6 |, p if( m_pItemElem )
+ j( J. A# u8 o# w9 @% r. U' k( P {! `! u4 V T* K3 s# I' o
m_pItemElem = NULL;- I- V1 i/ M$ T, P" v$ h! l& _
}
! B6 f5 w9 X; j" i8 q: [0 ^ m_pItemElem = pItemElem;
4 S6 |- d8 P9 }* r: q: E/ [ m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );; P1 [9 {. A6 ?( E
}else{
1 c3 j& n$ E9 m7 }6 X ] SetForbid( TRUE );
- b5 X, o& C# P2 h S }. P( H( G4 e2 m" z
}else{
* K% z+ A) ]$ Q; K; a! @ SetForbid( TRUE );
% C9 _8 k, d: p, V8 G0 j }
& s# h" G0 T# }; b( ~; f7 g return TRUE;
3 U( j, x) X2 {. a+ b' Y}
7 x/ e6 Z; j* v% l$ M- F, y" w- ?/ b | L
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )1 [, C0 ^/ G) p
{
# P# A. M* s" [ switch( nID )
( Y+ U. z/ V, U3 t; r) H# E {; e6 d) [4 d; F% l) R
case WIDC_BUTTON3:# k n+ d- [2 ~# o7 T' \
{
2 L6 _" R+ ?( ^ C$ y' }+ A bStart = TRUE;
3 D. p* D3 K; v; e break;
1 @% G; a7 P! }) l; d3 ~ }
3 }6 {: B5 B; ^9 Q( m7 [ case WIDC_BUTTON4:
2 ^) i8 I6 n$ | {
0 g/ b0 {3 w8 r; F1 o9 O& c bStart = FALSE;" X/ j" ~7 l6 q5 s$ A" J- Q
break;% s$ J& U9 ~6 k6 d4 {; J4 u$ D
}3 |- z0 O/ M9 A5 Z
}
8 K9 P: t- e9 F% l return CWndNeuz::OnChildNotify( message, nID, pLResult );. b" L' W Z# P- T+ f
} * H6 p/ {( _/ v) s
void CWndAutoFood::OnDraw( C2DRender* p2DRender )( R' v4 |: {1 P9 q8 N5 D
{
- ~, l P( ^4 e9 G5 ] CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );$ U' s8 \1 @) G8 Y; T! \
if( bStart || !m_pItemElem )+ @( L) ]5 _1 N1 R6 P; S3 q! \5 h9 V
{3 _ X: p3 [/ U/ B4 f9 V3 N. Y2 c! D' Q
pBtn->EnableWindow( FALSE );/ D5 s& k4 M# E# Y
}else
7 T; D2 ^0 H1 N8 k( S( h) ~# E pBtn->EnableWindow( TRUE );
4 V5 D9 W }& h4 T" i/ m if( m_pTexture )
9 A8 c. P4 J) ]) G {# G( t; l3 q* M% Q, O
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
$ c1 a# [2 ^: a; E( f% H; G if( wndCtrl && wndCtrl->rect )
$ k( P$ d4 D! N. W# h3 O2 l {
- d f* J% @) f8 A- c$ x m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );9 t6 F+ o# S; L
}' H3 y+ o) w# e) k
}
& W& E; Q6 g' M1 c}* Y) P8 @3 `5 ^) d* m/ b1 L" t
& p0 a, q: D$ f
BOOL CWndAutoFood: rocess()
) i) z" ]7 G R+ K$ }& b# }{+ C! y: D4 N- ]. ^" E
if( bStart )2 r, e) \' g u& ^
{1 ~; _( i. T* K4 q1 \9 T! ]
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
, o5 R4 _% w% a8 _6 q- t* }0 j {
7 X# [% B, l* ~ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )5 @2 I$ d. @: D, m9 V% H, q
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );, O6 K# a6 i; f
}else{6 i" O4 T4 @- d$ a/ d
bStart = FALSE;
' b' u, M% n7 P m_pItemElem = NULL;3 v3 R8 H8 A# d5 t5 t/ n
}
1 s2 ^& K1 [& \: w' Y }4 Q' B8 t! O7 J5 W+ Y
return TRUE;
5 M: R1 S) \2 Z* R7 t* N}
2 p) ?" E& b! l, V; S7 F$ |* U* o( T1 M9 ]" n, Z1 Y
登录视频废话:+ z2 ?" X# f" C/ J* Z# ]
尾翼:
! K1 f! T% S9 J' ~. x6 d. O% Y2 H0 o4 K: B/ L; H( R
代码:
; Y1 T: C0 e" Q* l9 ?6 R: _' A. R$ o# w& S! x+ W' N1 q5 V0 C2 j3 o( q
void CWorld::SetLight( BOOL bLight )- {+ i: [8 X% C5 D, `. `3 i( A
durch0 b9 \) R5 u! ^ p1 _9 D" ]
Code:
. S5 E/ G6 i. H- Yvoid CWorld::SetLight( BOOL bLight ): J b3 X% o+ }9 o; u
{
! G3 ?% v$ P$ O( P //ACE("SetLight %d \n", bLight);
/ N: A. K+ q& ?* @2 ^' V
6 n& }; l# l; W#ifndef __WORLDSERVER
( Y0 ]8 d% [+ r" L2 d5 Q DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
/ G& h& m/ F6 o( ]& n CLight* pLight = NULL;% G$ Y$ b1 L7 ]# O& j$ t0 O
% S# t$ M( y5 o2 b0 c! w& ~# n7 d9 i
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
! ~5 T$ f' {5 s( j9 U8 X; O+ g! P& f# ^4 u, C2 T
pLight = GetLight( "direction" );. V9 L+ t& B) i9 B) f# t6 v
2 E) N$ j! q2 P4 G#if __VER >= 15 // __BS_CHANGING_ENVIR
& U, K: o1 |& _" ?, C if( g_pPlayer ){
/ I. N( \6 ]0 g& `% x( e ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );# N5 A+ F8 m# l. D7 W5 \7 L# `/ n
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
; L) S7 E1 r; q7 @- d: n {7 P# ~* f% J$ z0 [( f( X" q$ m
if( pLight )
- p/ k. K* r s: E) Q' I {
! p+ u5 {; m! ]3 R pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
% C% D' W) v. e- G pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
! m; f- d1 } p! D- Z6 w pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
8 I% C- G0 e$ j9 ?$ p* d3 i4 ?
pLight->Specular.r = 2.0f;$ U) a% O6 C. j0 e+ R0 v
pLight->Specular.g = 2.0f;/ o/ H! o4 T7 T) C- Q
pLight->Specular.b = 2.0f;. b, [1 |/ ~& W3 X; m8 g
% ?: v' O) a3 E+ ?. q/ x
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];3 r5 S& M' |; d& e" x
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
; g0 y3 c3 f: R) Z pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];& O9 |/ C8 f8 \6 Z- h$ X) v
1 h' L5 u. n0 S# x+ @
HookUpdateLight( pLight );
1 L/ Q9 _5 r' v
/ g% T0 n( i4 C- w* X memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
7 C' D. p" L( y* [ E 2 }- h: N2 t3 {# \1 b+ H/ w: p
pLight->Diffuse.r *= 1.2f;; U! ~ I4 d& t! p, D6 u2 j" |3 a
pLight->Diffuse.g *= 1.2f;
5 X$ J* {% C7 ]. a. e, r pLight->Diffuse.b *= 1.2f;: `7 {& B* U$ z: D4 K
& H0 U' B+ z1 H
pLight->Ambient.r *= 0.8f;
& s, N" a5 p# j/ n2 F8 p2 {1 _0 u pLight->Ambient.g *= 0.8f;
' E# P- a8 P6 _( H9 ^" p; y pLight->Ambient.b *= 0.8f;
/ y) C j8 E) u4 X" m0 k0 w " V, {4 W* W7 v* O; E, f' M3 k
memcpy( &m_light, pLight, sizeof( m_light ) );; @& Z. l) ~. q: F+ N; p
' l' _, R- h! X4 e" @ D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 g/ m- P- A+ e
D3DXVec3Normalize(&(vecSun),&(vecSun)); a) z* ~0 @! M, C S5 W/ B( L
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
& W3 H8 ^* _7 p# H: U( U9 s% { pLight->Appear( m_pd3dDevice, TRUE );) [7 I3 |* x, m) P% U
* }% c! o7 p9 ^! H DWORD dwR, dwG, dwB;3 Q' R/ h; ], N h) ]3 g
dwR = (DWORD)( pLight->Ambient.r * 255 );( I: k! Q* `: c7 P% _+ {/ P P
dwG = (DWORD)( pLight->Ambient.g * 255 );% D5 I, V# R1 @, f7 f
dwB = (DWORD)( pLight->Ambient.b * 255 );
$ ]1 w2 u7 r- l! k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! q3 ]% q6 {, P% s2 b. N6 u+ | }
* h7 r6 X3 @; Q# l6 W8 |3 I# I } T/ Q7 R5 W L. N, M& e
}- T; V2 W, P4 T$ ~& l
else0 d- [1 y6 [. C# H; E7 z' z
#endif
, r' r1 B- T. j$ v: \8 H& I6 ?3 E
R' q5 l0 C# ?! X4 V {/ ]& Q if( m_bIsIndoor )) z2 O% Q, P* i2 \8 X& K9 `
{6 f. k! z- m! `
if( pLight )
. m$ L# G+ C0 Z' l/ {0 y { $ j; G# j$ q8 S
// à??μ oˉè* 4 F# h& C8 Y* {
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;9 Q2 s0 t, e; G- } D) v
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;' G* j% U8 e8 O- a+ O( ~; ~# l
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
; v- Q% g6 h1 P
* V E/ m# @5 g4 T% D7 y$ w // oˉè* ??à? " M% |7 V3 N7 U9 G% K4 y
pLight->Specular.r = 1.0f;. o2 C* d% _+ x( S
pLight->Specular.g = 1.0f;8 i8 ^4 s. B' G: S1 _: V
pLight->Specular.b = 1.0f;
$ ^" ^+ Z1 t1 h- I4 o. _" o; a // àü?? oˉè*
' D7 C) @( }$ M1 K& M/ W* r1 z pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
! Z2 l/ G' ]! r4 m+ g pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;2 f) @# Y5 h7 `- s# X' h7 }- B
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
. E5 H" { l- M+ V& I. W( `; C
; p* E, D, J. B5 b8 A if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
+ P9 I' `. P; b' C1 | {
: n2 N+ Q: a/ N# a3 c pLight->Diffuse.r *= 0.6f;7 ]2 F' M9 i8 x/ J
pLight->Diffuse.g *= 0.6f;
" t7 f" W* y. ~7 | pLight->Diffuse.b *= 0.6f;( Q1 }# g, F' s4 u' }) E3 e2 q* D
pLight->Ambient.r *= 0.7f;
4 c& b- `7 A1 L7 m' \& s pLight->Ambient.g *= 0.7f;
$ B$ \8 i, C6 p* N' s& o1 t pLight->Ambient.b *= 0.7f;
+ s, R% p7 z* w0 q1 R- w }9 }5 F! H( {; }3 A$ Z% R3 j: N
; x4 }5 |; A+ h1 h% { L) H- B#if __VER >= 15 // __BS_CHANGING_ENVIR: A, j3 ?: C, k1 g/ ]2 i% M6 c
if( g_pPlayer )
6 F, V" @ @: K HookUpdateLight( pLight );
5 }! q* ?0 L: S) O& [' V+ z; N#endif; i" t2 `6 G0 s* r; Y
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; \; _$ F7 q1 A
3 `6 J& d# E# ?7 \! A/ I3 @/ W pLight->Diffuse.r += 0.1f;* }+ g. d) I) o3 p$ Q7 I
pLight->Diffuse.g += 0.1f;
% Q: N$ Y& L6 D g5 ^6 Q) q pLight->Diffuse.b += 0.1f;2 s6 K! D* r, A w
// oˉè* ??à?
: B* K/ v* g1 Y- w: ?% G. G$ N3 C pLight->Specular.r = 2.0f;
. U) B+ b0 U& f7 d; [% x9 V# v+ i pLight->Specular.g = 2.0f;
1 b, l& C; D+ d pLight->Specular.b = 2.0f;. ]6 u8 c0 j7 E' g" \, v
// á?oˉ
9 Y" V, Y7 K. h, d pLight->Ambient.r *= 0.9f;- S' @: E/ k6 |: C* B( q3 d
pLight->Ambient.g *= 0.9f;+ U) D3 n9 p+ q( n+ _9 b
pLight->Ambient.b *= 0.9f;
4 D) N8 J# y5 M3 x$ l" H! Y! N0 k. H& Q5 h# d
memcpy( &m_light, pLight, sizeof( m_light ) );4 N' u+ c( T g/ ~
+ Y& L+ E- d: d$ m' d- s0 U& D
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 c6 {1 s8 E# z, v
pLight->Appear( m_pd3dDevice, TRUE );1 z; Q7 a# E; r, D/ c& @6 H
$ K3 k4 y/ ~# U
DWORD dwR, dwG, dwB;% v: ^7 k5 k P8 E. Y
dwR = (DWORD)( pLight->Ambient.r * 255 );/ \2 r) f' M/ t" H: _# B
dwG = (DWORD)( pLight->Ambient.g * 255 );
4 Y# A/ i$ x1 e% @* e6 y dwB = (DWORD)( pLight->Ambient.b * 255 );
- N" ?# e7 F$ `1 k* p dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 ~, M% H. l9 R7 B! l H
}
- I. z/ T4 U6 x# k* V }6 M1 {/ |8 d2 O7 E0 m1 X! l
else
& G/ g8 P/ N* e- L9 g: q" x {* b: B% O' @, G/ u, m5 U, ^
if( pLight )# C- b8 f6 v1 w# Q
{
6 l+ h0 |( Q+ j2 D' L' [
c$ n' A8 @( w5 K$ ? int nHour = 8, nMin = 0;4 a5 ~# D. Z4 p3 J8 s2 K: J- z
#ifdef __CLIENT
5 ?& Q, T3 l; N- n2 M- M5 n // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
6 n9 m ?; @& }" @ nHour = g_GameTimer.m_nHour;2 |$ ^/ \" ^0 ~
nMin = g_GameTimer.m_nMin ;
5 P8 Y& a* M; j4 R) ^ #else2 w6 \' m: e6 S0 j& B& h$ z
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.( W- O% U: X: n) n
if( m_nLightType == 1 )
" A7 E, t( K& J4 [- ] nHour = m_nLightHour;
' @- e: _. m$ J8 E #endif
8 ?+ n# }' u/ Z0 L5 v; A nHour--;( ?" p" A# s5 y
if( nHour < 0 ) nHour = 0;
) f- O, o9 B; r: ` if( nHour > 23 ) nHour = 23;
$ r4 ~- U& q' R, N$ n0 M' c0 w/ @4 m# B3 m, Q$ {, B9 C* P1 ]
//if( m_bFixedHour )0 ` f8 t) `0 ^5 S9 s0 q
// nHour = m_nFixedHour, nMin = 0;
$ \$ l% J1 M' b4 E5 ]: e; T! N$ n LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];# U) }, e' N! H& U- n. `. n
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
" O" ^$ _5 y& C) r( V# p2 m" a% I/ u2 W8 g! \8 c0 {, Y1 r
//m_lightColor = lightColorPrv;
: i0 J- _1 i. I& C- ^. t. k lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;5 a& m! H& l& v) |; k) `7 n8 P
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% Z2 f8 ^$ v8 F lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
/ v% r9 B F. r' w$ u' }: Y0 @ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
& V* Z# p: s; v5 E9 E' H8 s3 { lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
( H6 h5 N; t: O- p1 l# h$ s3 n lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
+ \! F, d V1 a4 N- Q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)" y8 Z9 @4 |! i( i0 p( G$ I
% _$ k7 ?" P7 ^ \6 c8 m. g& @, o; E& |# U
// à??μ oˉè* - b' C7 I% o3 V h0 [
pLight->Diffuse.r = lightColorPrv.r1;
5 p. m8 D. P, r7 e3 e% C6 e pLight->Diffuse.g = lightColorPrv.g1;3 z- F' ~5 E0 F6 K# T0 u
pLight->Diffuse.b = lightColorPrv.b1;, x2 K5 \# I r! T1 E
// oˉè* ??à? 0 A: E! v8 \8 O. e. ]# J
pLight->Specular.r = 1.0f;) o5 C! [, W! B B/ o5 |* t
pLight->Specular.g = 1.0f;8 N& Q3 y z. I; Z! {( ` U
pLight->Specular.b = 1.0f;
3 K. e) S7 P, V- h% o& J // àü?? oˉè*
9 a Z% v/ x% j {0 V$ ` pLight->Ambient.r = lightColorPrv.r2;! o+ y8 r# z' G9 Y0 t$ D& H7 H
pLight->Ambient.g = lightColorPrv.g2;
' Q6 y( [3 ]# ?8 @ pLight->Ambient.b = lightColorPrv.b2;2 H. U7 h& _; ]3 n
! @' Q; r& D% N! r) V
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 T% Z4 t b3 B; w* n {* c7 b8 \, j/ h3 k; ?' l
pLight->Diffuse.r *= 0.6f;5 _& q9 L$ b! }% H
pLight->Diffuse.g *= 0.6f;
0 _5 ^, q! w+ z/ N pLight->Diffuse.b *= 0.6f;. _% K6 c- [5 R/ Y* C( ]$ R
pLight->Ambient.r *= 0.7f;- Y$ M! R* }5 J( K
pLight->Ambient.g *= 0.7f;
4 h8 `2 o, w: f& E z pLight->Ambient.b *= 0.7f;; l2 j1 N: L+ Y6 Q
}, Z( m7 e- o' {5 _/ W
; I/ Q8 N) ?# n+ H#if __VER >= 15 // __BS_CHANGING_ENVIR
* y0 v( e+ u5 E# M7 Q! s4 U if( g_pPlayer )
9 F; _! U7 p# Y9 Q) x8 F HookUpdateLight( pLight );
% [5 m4 ?7 a* c9 ~0 {#endif) |/ `! J R# c* g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' P' g* C% ]: S! _& f* b( {9 x$ {$ F5 y7 W( ~
#ifdef __YENV
! m3 I2 x) X' v d pLight->Diffuse.r *= 1.1f;6 r& d3 p, h, m% X) s
pLight->Diffuse.g *= 1.1f;. @% u1 P' d! u
pLight->Diffuse.b *= 1.1f;* m+ O: ?, [7 ^4 B* c( N4 B
// oˉè* ??à? + I6 s5 _4 `- a2 u
pLight->Specular.r = 2.0f;
0 y0 \) E& ?5 m1 {8 O7 L. w# x' m pLight->Specular.g = 2.0f;1 \% f% l# L0 i# Z h" s
pLight->Specular.b = 2.0f;
* ?) Y ~! y' z( U) K, j // á?oˉ
+ R. B5 {" ?, u7 X( W; F0 q pLight->Ambient.r *= 1.0f;% a% {9 C2 H2 V9 K7 D4 n/ J" I
pLight->Ambient.g *= 1.0f;
; j( l& K6 c4 b; q' |- T pLight->Ambient.b *= 1.0f;; a- I5 l8 G8 j, _2 K$ P; f W
#else //__YENV# @ c: `8 t! e2 J
pLight->Diffuse.r *= 1.1f;
: r& J' P* y: ]9 v( B, w# ] pLight->Diffuse.g *= 1.1f;( k: ?5 I( z: ~
pLight->Diffuse.b *= 1.1f;2 A: t4 j/ g4 j% ]+ a1 `; E
// oˉè* ??à? " _" S8 j8 J p0 V3 Y
pLight->Specular.r = 2.0f; x- Q" K* ` z( o; _* }
pLight->Specular.g = 2.0f;2 k4 `- Z7 N9 h0 }
pLight->Specular.b = 2.0f;
" s! @2 p1 Y, E' _7 T1 W8 v // á?oˉ : H2 O3 g2 U G3 p' A" `3 l
pLight->Ambient.r *= 0.9f;1 y- Q% Q- ~- S; N8 u, T
pLight->Ambient.g *= 0.9f;
3 }: `; C1 [- t pLight->Ambient.b *= 0.9f;
0 `- }6 m7 f/ i& C2 ]#endif //__YENV 5 r X: p+ b* @
! e5 ]8 G$ h. I
memcpy( &m_light, pLight, sizeof( m_light ) );: D* V) c" i4 v7 E; [' M
. T; f: n! j: D# ~ X- @" ~5 B D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);! v0 B4 {6 D* M i+ e
D3DXMATRIX matTemp;
% V$ C* M; y( d Y; h& m static const float CONS_VAL = 3.1415926f / 180.f;. h( n/ _ S. P. I4 E3 B! z
$ Y) p& [$ `2 Y/ _' t* d4 b D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);1 o2 B8 z4 G! q8 u/ v' P+ U
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);/ `% W8 g9 @" V- N* U5 F
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 4 U0 s$ i5 b; T* M, |* J# [7 i% l1 A
pLight->Appear( m_pd3dDevice, TRUE );
# M' h# n' ~0 j5 V1 T+ I, [& w8 f X' f, @! n" t
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);% x5 B9 D) G# s6 k. _
// D3DXVec3Normalize(&(vecSun),&(vecSun));
z& f# M2 l0 t" g8 w+ w // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, a/ k$ q6 j- ]$ L! z
! t: n! ~7 S9 ? DWORD dwR, dwG, dwB;
4 |5 q+ ?3 u( y dwR = (DWORD)( pLight->Ambient.r * 255 );
& k. @( ?7 w, a' `4 g dwG = (DWORD)( pLight->Ambient.g * 255 );
6 L/ O5 H% X9 x1 z; J+ ? dwB = (DWORD)( pLight->Ambient.b * 255 );" w! }4 _4 A w5 @& Q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) f+ O0 r0 e4 t }
! g# r! z) r$ X, b$ q6 L }$ ^ C" }% o. u) Z+ H4 X
5 t9 Q2 B$ Q/ F8 o5 y m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
& d/ o9 a9 z7 b3 ^* I 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) );
3 w5 H1 z0 k) K3 i ::SetLight( bLight );
: U8 X* o, ~: H
" S9 u) b, @; `+ L' i // ±ao? ?D?í???ó á¤à?
: h. s, w5 n# `/ q, a% G: x m_pd3dDevice->SetMaterial( &m_baseMaterial );
" |! [% S( N4 Z; q3 P/ d6 w- @( {
. m3 j8 I6 X- u: S+ ^#endif // not WORLDSERVER' \. W* M4 F" S! g" M, v/ S
}% }& t4 ?2 _3 O% X
并更换0 Z* F4 b( r/ d$ q# d2 f) T
Code:- A% z8 S8 q5 ~( Z1 V2 Q9 |
__FLYFF_INITPAGE_EXT
0 U4 J- e" z+ g3 {定义
! R' y2 w* Z5 [( c5 Y& g0 r( ]3 Y& G/ a; E" t5 A
3 T( [* `9 e- f8 H7 t. W4 t* F g1 H+ d1 h7 W* J) s7 e: X4 s
, w& s7 Z; m3 a0 G ]) I
现在终于删除我的狗屁加速...
" K z A+ B; X0 h9 `- n; |8 p/ V
1 t, _* p7 j- P) P( ]: X/ r5 }5 K$ ?4 @; n
1 H4 \' s. D+ i" X% S q# z
|
|