|
|
食品车:, b, V3 \0 V2 C
尾翼:) L* m$ ]' y E/ ^1 O( o
1 k6 P/ K3 U2 J; a0 d- U
代码:
0 }) M: I, N! B+ C0 GCWndAutoFood::CWndAutoFood()
' B8 H- z5 s8 u8 e" k& R: }$ e{
2 D6 F+ C( c/ u; t1 H( ` m_pItemElem = NULL;: O0 g2 Z" X$ J) z$ V" S8 y3 a
m_pTexture = NULL;
}+ M0 R8 @4 ? bStart = FALSE;
& y7 \3 V* Z; }' |( ~/ D}
% U2 Y* F( y1 C1 u
& U3 Q+ b. W, Z' @$ dCWndAutoFood::~CWndAutoFood()) \) s7 Y5 u# J6 _ p4 ?
{4 g5 e+ g9 C! ]7 n' j+ m/ D
AfxMessageBox( "AutoFood ist gestorben " );$ }; F+ C! x. |2 E9 C$ z% e, {
}% A. L8 k0 [' J! f) ^1 t$ g7 J( R
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
- B. ^; c3 N0 z& [6 ^! @$ O, l8 ~{( c+ O! ~5 q' q" k p
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );+ q9 f4 H+ p0 {9 ^ A
}
+ i p4 H. E, p
6 j! z. K0 L4 F: h: Q# D' C! O! nBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
$ ~% i3 a. F- @0 s7 \% S/ H{0 X" y6 L( X6 i8 l5 c' s0 a
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, n0 O8 T. s( Z C- T8 U CRect rect = pWndCtrl->rect;
; T+ O6 j. s K0 R# L if( rect && rect.PtInRect( point ) )
. f. k( P. E0 o {
! R2 K$ v$ u3 u; l; g3 p CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
% v( `$ C! H- p7 W8 Y8 o& _ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 U- z( e0 N: M2 m1 |
{
4 l& l1 Q0 m" [8 K8 ~ if( m_pItemElem )( o! k+ S+ p/ i) P* F: b' p: N
{
0 e4 N6 Q8 C. n j m_pItemElem = NULL;" _$ O8 z% `3 D, s1 O: d
}
9 P7 g" L+ r( z+ T m_pItemElem = pItemElem;: b" ^2 g, C ]0 k3 m. e6 w
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
5 L4 Q5 C; N, X6 \6 m, p- z }else{0 x! }5 y1 M/ z w8 k" q+ c* C
SetForbid( TRUE );
+ O8 a4 [# z( q! e# [! @- @ }7 S3 w' B- V6 E1 D- n. W% o
}else{5 \* l7 q( w/ A9 s6 T% P8 R. b; V4 V0 G, L
SetForbid( TRUE );; u" ?/ e J* \0 Q) }2 |. r, K
}) H4 z/ R5 Q0 H: w
return TRUE;
8 b' W7 v: m# y% `& ?: ?}9 |! `# v8 ~, t. B
) A4 I9 N& @; `- K0 dBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )- o# B/ J+ V7 C! p) t Z. m& _7 m
{
6 Y8 \0 h# \. o. c0 d switch( nID )
5 l) O+ t: U- U) G! h4 c( T; P {3 n x" v1 N8 ~* e$ s
case WIDC_BUTTON3:
0 E2 r Y- }* y; w: y5 G {1 A! O1 C0 o& \; X1 k
bStart = TRUE;
l+ K( d/ I# Q" |. b break;
0 h" z$ h$ j/ R4 |% _ }- v4 g- \% @8 e9 ~4 @0 a
case WIDC_BUTTON4:7 t% v% I4 I% X* A4 @$ o' B
{
% M% `& y1 z. _+ V s" @ bStart = FALSE; [) E+ P6 k c _% m
break;! g2 F/ S, `1 U' n# b8 E4 z
}
+ |0 _2 G' E& B1 b# M: }+ s3 M; N }
8 R# W5 H2 y! [ J4 [0 f2 Z return CWndNeuz::OnChildNotify( message, nID, pLResult );
& Y) n# E9 D R5 O3 \. u}
! ^5 D, f( ~5 g, i6 ^; l! p8 Bvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )) n" } q* @! Y: Z
{3 a; n1 ?* s( }/ I* q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
. E0 I% m2 Y' t S4 N' Y if( bStart || !m_pItemElem )! h5 j' m, N9 B! F7 B
{
% I$ s7 r) r6 F pBtn->EnableWindow( FALSE );) A* `3 k" v5 e+ h
}else6 ~4 @& N4 |# {0 ~/ g" F4 m
pBtn->EnableWindow( TRUE );3 `$ X/ E: l2 A8 j D+ G
if( m_pTexture )3 c1 i# z) N+ f" Q; `) ^
{- ` ?0 Y5 l8 U0 k( c4 B5 U
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& l4 ], p$ p! a3 C if( wndCtrl && wndCtrl->rect ); }& N4 a+ j3 F/ O/ I' ?: J
{7 l6 X% {+ T0 X
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );& J6 M/ O, R1 P4 a, c
}# O+ h8 G8 N# T+ b' i
}: A `4 t) e s6 L& h6 v, W
}( D6 e& m4 r( [6 ]
3 N# {) B6 O+ a* k+ F& ]- Q$ l
BOOL CWndAutoFood: rocess()/ i0 i( e$ F) b7 I
{! |3 L& R# m& S% }. C& g) U
if( bStart )
$ X& ] _. {4 o( d# ] {# l* h: L5 G$ \9 y3 o, D
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )( I& b3 i. U8 T8 S/ j5 D
{
0 [' h8 z0 N- J5 ?7 S$ {+ ] if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
& J4 S0 ^( O; r4 f, n7 Q; ^ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );$ Q2 B& g6 T& M+ X R
}else{
& P; ?5 `% X2 @# ? n# B2 c bStart = FALSE;
, r2 z- v# F* A* ~0 \ m_pItemElem = NULL;
$ l$ Y$ b1 ]2 Y7 m# `# Y }
6 W5 p, t% m& H }
! s6 e' i0 P0 e5 W0 k return TRUE;! t: P1 Z, G {$ _1 r6 Y3 e) }
}9 X7 G! ^5 {" Z% {: R
/ L) Q# z. s2 L# f6 B! f登录视频废话:* C5 V4 N" ?) u- o9 \9 V5 m- C$ w
尾翼:* ]* E8 u4 v3 X' \8 B
1 c7 b4 z, S) N1 \ v- z2 o
代码:
. H8 z, D4 X4 d( n/ _& [# `# n6 C, f3 e- B
void CWorld::SetLight( BOOL bLight )
% h- Y; f- U$ Z7 Fdurch I( F$ m' u, N$ _
Code:
- L& c c9 ~* P* i8 R3 \! C7 h3 Ivoid CWorld::SetLight( BOOL bLight )* E6 ^* o1 u0 ~; ~* K- z. b
{, V3 ^" h/ _6 K7 D" p
//ACE("SetLight %d \n", bLight);
( e- Z U6 H8 u6 U
. m; A9 Y& R) |. V( A, x7 r#ifndef __WORLDSERVER + B" k6 E1 ?$ q5 _6 t$ P6 N
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0); a, V5 R5 A8 N8 }2 n
CLight* pLight = NULL;5 o' F( O9 v9 c" L6 L; v, q0 \
( n$ { B# B1 ~' h. p s, r1 f p D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );# d, m7 L, H: n$ d* H
2 ^ u/ o" C& V; `& I7 @& U5 Q0 k pLight = GetLight( "direction" );
' i: E$ j5 ?+ L( G! h z4 e0 ^+ R V0 _% ] h! c, M( T4 K5 g
#if __VER >= 15 // __BS_CHANGING_ENVIR& X4 J& d4 l4 c! N+ u
if( g_pPlayer ){ W0 O7 [; x& L4 O& G: \
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );" R- L% h$ N' r: C8 \; |
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
& p7 ^6 T& q# V9 H/ ` {6 @. [2 s8 T2 ~+ N2 J; P u( N
if( pLight )
* _% M$ o" L! @% s {
; a0 n5 J4 e8 K4 K6 w- Y4 l; C pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
1 b8 i! h2 G w4 I4 q2 s% X pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
$ M* \% z1 i3 b0 \5 I6 J3 t4 W pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 I( o8 j* O: A. T+ Q- r+ [" d
% Z" _; f( _) d( P pLight->Specular.r = 2.0f;" j) |- Q& a" v- ~1 j1 o8 C0 O
pLight->Specular.g = 2.0f;- q" P+ r0 p2 w
pLight->Specular.b = 2.0f;0 A. V/ k1 [7 x: S2 O7 O& @$ X( k5 n3 w
: L8 V& T R' A1 s& Q9 P: Y# a
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ s& C8 a( T! L& c pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];- s- B* F6 U4 s/ r6 ^
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
' E' Z6 S3 e5 N( p5 K. u * l6 ^& j! E. A; A( T( ~
HookUpdateLight( pLight ); ! Q+ J7 u+ k. w( A) B9 a4 [
& I# Z: j5 b( b' f. S
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* m; O4 T6 x- h& ? E! \8 [ + u+ q% N* ^7 r u0 C5 Z: n' n3 _
pLight->Diffuse.r *= 1.2f;
& F! p L/ _0 e4 N2 v8 Q: M pLight->Diffuse.g *= 1.2f;2 e+ l) R! x" |3 n
pLight->Diffuse.b *= 1.2f;7 [7 L* `& _5 [2 p0 Y: ^
9 o; o4 h8 h8 C1 c
pLight->Ambient.r *= 0.8f;" h/ `1 Y; [7 a' z
pLight->Ambient.g *= 0.8f;
) Z# u/ N4 E9 G6 J pLight->Ambient.b *= 0.8f;
, R$ ?( {, a: z+ n6 k
* A; W6 F# g8 c. k memcpy( &m_light, pLight, sizeof( m_light ) );
' z/ w1 r( U8 m2 U m, U' ]0 `
6 w/ Y) g7 d8 }9 |% k7 e) p! E$ P D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" T2 ~( ]/ V- r7 O2 H
D3DXVec3Normalize(&(vecSun),&(vecSun));
% g1 @& J M- H2 z: ]- s7 x2 E pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 S2 q$ z2 _8 H
pLight->Appear( m_pd3dDevice, TRUE );& R w& y! e( D: k D2 Z
4 P$ r6 }5 ~' g" L DWORD dwR, dwG, dwB;
0 F5 f/ l4 I C# T dwR = (DWORD)( pLight->Ambient.r * 255 );& M2 a$ r0 }1 s! ~) ^# [ h2 c& u" q4 y
dwG = (DWORD)( pLight->Ambient.g * 255 );
+ r% M: j# [! Z2 A0 {3 J dwB = (DWORD)( pLight->Ambient.b * 255 );6 z6 n, A8 @, Q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );1 s+ l1 |5 \* h+ w) h
}
$ [4 h% `! h6 G2 a3 l3 x }
* w3 |9 S! Y. n }) M1 T: x" P r
else) \- F( r! x8 g) s" T Q7 G
#endif
8 A% N: o1 }6 q2 |, i% ~9 A; G* J, i. X4 t
if( m_bIsIndoor )7 ^: u1 z, j4 |/ Q( k
{# U+ W% @8 K: P/ Z# Q* B
if( pLight )
0 `2 A3 m2 i3 @7 u# _ {
; f! o1 }4 W" k9 h4 h6 w/ K // à??μ oˉè* & V" E, A- r0 n9 y7 v5 F3 ~
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
- N- v. q* W0 _2 o0 s+ k5 k, u pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
, Y R% f% `& l1 E8 J1 H/ T pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;5 Q8 G/ w. V- W0 p( g# m# u( f
' }5 i3 _7 O' T2 F1 k3 q0 g
// oˉè* ??à? / T# _7 A5 h. j; X/ i/ Q6 B
pLight->Specular.r = 1.0f;) @7 M% ]/ ^, Q- w* }! b
pLight->Specular.g = 1.0f;
+ ^3 i$ \% c5 z `/ f' k" f pLight->Specular.b = 1.0f;
" A5 Y6 ^2 v9 ?4 H' x // àü?? oˉè* 3 H% r/ \7 \! F; P7 E
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
; @# D& i9 Q- \/ L1 T4 i8 S1 P/ o pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
, w9 _) n1 U9 Y, U# n" q! w pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;0 l G. h$ K- s, n9 w! r
7 j! f% t! n: k8 e2 E if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 G: E% w) x# o! t6 x {- ~. F6 u1 G3 z+ w2 W; f
pLight->Diffuse.r *= 0.6f;
( G' v- X2 _" t( {, Y$ K) t pLight->Diffuse.g *= 0.6f;, v7 e; T7 ]" b, {6 ~# o( a$ B5 B1 M
pLight->Diffuse.b *= 0.6f;
. y% Z$ g% z% Y7 x pLight->Ambient.r *= 0.7f;
1 M: _ P7 ^ E) \# g9 s pLight->Ambient.g *= 0.7f;# `8 _1 y; \4 ?1 `; `% K, T
pLight->Ambient.b *= 0.7f;
F# m# r3 \0 W }
' D0 ^$ O$ x6 j% r
: u( s9 n1 C5 v7 E* q#if __VER >= 15 // __BS_CHANGING_ENVIR
9 n4 {0 d7 l" E5 d$ V; v if( g_pPlayer )
- _% b, j& H; z- a6 L) U HookUpdateLight( pLight );
% ]# x+ O0 v+ K2 f" P#endif5 H/ \; Q, e0 R4 q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 ]5 F. r: ]; g8 W. F! S, @
, i; R3 Y8 t' v3 E$ ~
pLight->Diffuse.r += 0.1f;
, ~0 a2 D0 C _" F1 g4 [% _2 \( q, x pLight->Diffuse.g += 0.1f;
/ Q O( e3 i: _- E+ Y pLight->Diffuse.b += 0.1f;
G }: O: i9 c) r r // oˉè* ??à?
\- o( C+ d2 c1 d) k pLight->Specular.r = 2.0f;& F9 e& H f8 y9 ^5 p
pLight->Specular.g = 2.0f;* Q f) t# y: q
pLight->Specular.b = 2.0f; L2 x+ Y% o+ C+ k
// á?oˉ + ?5 w( [3 Z7 J8 ^) R( o- A
pLight->Ambient.r *= 0.9f;( z- U! W& z8 \& V/ ~3 O% ~
pLight->Ambient.g *= 0.9f;! v7 C9 D4 J. y( Q
pLight->Ambient.b *= 0.9f;8 X3 U& H4 |5 Z
$ `" g# d2 {; E
memcpy( &m_light, pLight, sizeof( m_light ) ); B, \5 I: K+ E. w) P# |
2 l5 M8 W9 x. K: A pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
7 B3 F' ?0 a6 O( j* F% e pLight->Appear( m_pd3dDevice, TRUE );
8 E& r# X3 Y0 w
# k, _5 _- X9 D/ _, D& U9 e6 ]- a DWORD dwR, dwG, dwB;
# C+ ?9 m7 c B g y; |6 L e dwR = (DWORD)( pLight->Ambient.r * 255 );3 L0 _' t4 G& m0 |2 o% s9 j
dwG = (DWORD)( pLight->Ambient.g * 255 );
# B! a; V) F; F6 q! D, Q4 ^ dwB = (DWORD)( pLight->Ambient.b * 255 );
0 ?, q' D1 r7 q C0 w dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# f$ K6 R8 V( g
}! R1 E6 Y/ i$ P! S- k2 {) W' h7 l
}# z. I7 }. y) P) q/ ?3 Q
else2 u! A' T* H4 L# |4 H; s( t: d' j2 [
{
& G3 ~1 ? V! g if( pLight )
Q. J; _* W+ @9 M- K4 r: w {
& k" s6 p9 K! a* K
, R# W) J) Z; \ F( a int nHour = 8, nMin = 0;
7 V+ m$ x" f8 i #ifdef __CLIENT2 g& w0 P$ T7 c) R5 ^# z
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
" ~* w8 T% Z! |! L nHour = g_GameTimer.m_nHour;
$ Z+ J' f0 q1 f3 U2 _* G nMin = g_GameTimer.m_nMin ;
3 \6 |% b! @8 B# r5 _ #else0 c! {3 q \* F5 e* W& u- I
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
, E' B- t% ^4 D [' N5 P- G/ m0 b if( m_nLightType == 1 )
1 {. \8 A; @& h nHour = m_nLightHour;' w k% _9 }3 d1 X7 d
#endif
: V, S6 J* T1 {2 y& Q6 M nHour--;$ k z8 W9 T n" B) y7 S* a
if( nHour < 0 ) nHour = 0;
! Z, @8 w1 E: u3 K if( nHour > 23 ) nHour = 23;
; L' t, j" h. ~2 D4 H# Z% ]5 R4 z3 \ i3 O: @1 K8 L! |; G
//if( m_bFixedHour )0 e9 h G. M+ ? r8 Z
// nHour = m_nFixedHour, nMin = 0;8 {9 ^) [1 [6 ~, _% k; Q
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
" u6 A) ?5 a4 u, r LIGHTCOLOR lightColor = m_k24Light[ nHour ];
: t2 t$ ~, [4 ^# h- W1 u0 y, s0 o2 l# K5 {
//m_lightColor = lightColorPrv;. g/ b# a# M8 D8 I9 h. b
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60; ] Q! E, y" y& j
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
, X$ I0 t- O2 c( \ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
9 I% _# n* q: x+ g" F0 I lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- K( d; f" R( a/ D7 [ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
/ H/ H) Y3 l" a, } lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' v5 y& O) I& ]8 _; l7 e$ @' X5 D
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% o& d) X% V; _$ u
; [0 m% M7 P3 e- { // à??μ oˉè* 8 U$ y: O0 Q. w. a6 {
pLight->Diffuse.r = lightColorPrv.r1;; `% X* h; J* m6 m- b
pLight->Diffuse.g = lightColorPrv.g1;5 ^& ]; t0 u, P- e8 O) Q1 f- Y
pLight->Diffuse.b = lightColorPrv.b1;
5 s) r) [. X3 F+ d // oˉè* ??à? , D0 L) H) a1 O2 p- }! y) ?0 a1 j
pLight->Specular.r = 1.0f;
3 q% ]+ Z. ^0 |% n pLight->Specular.g = 1.0f;
8 z! B a6 F; s* l3 \- t& ? pLight->Specular.b = 1.0f;
# \' F* K( P+ z6 a2 ]+ F1 F: Y // àü?? oˉè*
5 l8 q, i6 U' T) E5 c* \ pLight->Ambient.r = lightColorPrv.r2;
" C( u) v4 M+ P! ?9 B pLight->Ambient.g = lightColorPrv.g2;
* d9 J% l# ]% h2 t, W8 i* V pLight->Ambient.b = lightColorPrv.b2;+ \" B, b! _& A0 G4 ^% l& ^0 q, ?
; A& l; G1 N/ u0 a3 Z
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
; ?3 o& j2 z$ E {
, G5 }+ B/ _# ]: E7 c4 E8 F: a- h pLight->Diffuse.r *= 0.6f;5 g6 c: W) N/ S$ C! e/ q! l
pLight->Diffuse.g *= 0.6f;
' j% H6 b( L9 X4 V pLight->Diffuse.b *= 0.6f;1 c; T* A7 G& j
pLight->Ambient.r *= 0.7f;
, |* D+ w% Z8 A7 E pLight->Ambient.g *= 0.7f; f! \9 W' p6 r2 I
pLight->Ambient.b *= 0.7f;
3 A$ ~9 C( L8 V: b; { }
: m% G- G4 L( N& d# D3 F
0 p: _' x/ M8 _! d; k% G& I$ I, z f: h#if __VER >= 15 // __BS_CHANGING_ENVIR
& T3 t5 a# J- f* ~4 [: q8 Q: s if( g_pPlayer )8 n" p$ W" S" Z9 z
HookUpdateLight( pLight );
# ]8 x5 ?4 e! ]* U$ |: c#endif% O5 t u+ D3 _2 r7 t
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 D% p: K# ^, ~% Q2 f! ^+ E
4 {5 B Z2 J! ^2 T) w5 w# K
#ifdef __YENV4 E y7 V7 I% O' a
pLight->Diffuse.r *= 1.1f;" d# m7 J0 e/ t! H% m
pLight->Diffuse.g *= 1.1f;5 h6 F- L _4 x' ^5 b. L3 L
pLight->Diffuse.b *= 1.1f;- s) t, e3 |0 B& P. `- G }
// oˉè* ??à?
! s# ^( z6 x* I pLight->Specular.r = 2.0f;
( n3 D8 \1 a1 h: a! ^( A pLight->Specular.g = 2.0f;9 Y# \6 @* ]! A' }/ ~ A5 H
pLight->Specular.b = 2.0f;) J. T; V+ |8 S# l: l& v$ N1 ^
// á?oˉ $ z! N7 n6 `+ j1 Y Q- y0 v$ a) R6 E
pLight->Ambient.r *= 1.0f;
9 i0 p7 T' U. i O* f% S+ }2 f! C pLight->Ambient.g *= 1.0f;. {0 J( u/ C5 `& z/ G/ y3 q
pLight->Ambient.b *= 1.0f;
( G+ B" w* \$ B* s1 l; c! P#else //__YENV {, C: {7 j O2 {. M* ~
pLight->Diffuse.r *= 1.1f;8 M: W' k! Q H' P- Q
pLight->Diffuse.g *= 1.1f;
9 r! \ Y% k) l# b+ W! y* T pLight->Diffuse.b *= 1.1f;
* C, p) E5 z$ r; b) T6 l; Z // oˉè* ??à?
: F& M0 @% G8 l6 q8 q) j9 n pLight->Specular.r = 2.0f;
" r% s) m; F8 P, i4 l* A% t' K pLight->Specular.g = 2.0f;
& W6 N$ F- y% e+ r8 V9 k pLight->Specular.b = 2.0f;6 F2 Y5 A# t+ T8 u! t* U. N; u
// á?oˉ
% l/ z6 `' t ?, V8 e0 {8 { pLight->Ambient.r *= 0.9f; N' w' a9 j6 D4 @2 m* m
pLight->Ambient.g *= 0.9f;% {5 @: J1 H4 |0 A4 G3 @& e
pLight->Ambient.b *= 0.9f;# I/ S- U+ \' } b* K
#endif //__YENV & O) A2 ]3 J2 t
4 B4 B; K7 d+ n/ y memcpy( &m_light, pLight, sizeof( m_light ) );
4 S1 V3 Y4 w3 j) W) y9 G 3 A7 h. _ ~ S
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
* Q/ W* g" m4 C7 p v& N D3DXMATRIX matTemp;$ i6 R) P* f, W, H/ E" b
static const float CONS_VAL = 3.1415926f / 180.f;; R/ G0 F/ a& \$ V, M: M
% [- [: R0 f! }$ Y4 w D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);: `2 g3 X' s% }- ] o' O! b
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
! I$ q9 L; O1 y4 @/ [) V+ N7 @- B+ F pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); % p0 D+ T; P- T- u1 j) A' t% D
pLight->Appear( m_pd3dDevice, TRUE );
0 N+ |& [2 S6 C4 t
7 l6 h( T* k8 V7 ^) d( k( ^ T // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
$ a0 l. ^8 y. M& h+ c( ~& n( k4 r" | // D3DXVec3Normalize(&(vecSun),&(vecSun));1 @' T' p0 n$ [4 y! q1 n& b
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: W& R# n; I5 o5 o# L+ d4 s2 n" t" f7 d% J9 U2 q5 m
DWORD dwR, dwG, dwB;; [% F+ T, a3 a n! p J
dwR = (DWORD)( pLight->Ambient.r * 255 );
- o3 n6 }3 c. V! ?' y) \) l5 H dwG = (DWORD)( pLight->Ambient.g * 255 );4 r1 C8 h" D6 a
dwB = (DWORD)( pLight->Ambient.b * 255 );% x; n; m) w: T
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
J( ^8 P/ i/ n$ r- H; d5 }+ I }* ]0 P9 @, t2 ^
}$ t, [" j0 B, K
1 D z* i) Y* s* E" c g" K% A m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );; J, z* V$ B: j: w# R
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) );
- b7 ^" l0 ~3 r, ~ o ::SetLight( bLight );# [' T# a# V! l2 Q1 Q
- Z3 r" P' _2 c) ]
// ±ao? ?D?í???ó á¤à? 6 `( M" y6 z T# L3 V
m_pd3dDevice->SetMaterial( &m_baseMaterial ); p6 {5 W9 _0 b) A2 }
6 [" J0 q* k9 s Q
#endif // not WORLDSERVER+ V. A6 X- x3 R7 g4 o5 ^+ t
}8 o+ F7 @4 Z9 S- \6 Y6 _% U/ J$ T0 {
并更换) B1 O; y0 c3 u) i6 w5 Z
Code:9 [$ N1 E4 E# U3 \) @& T# h
__FLYFF_INITPAGE_EXT0 d5 |/ s" K9 O* T, t
定义! o/ W* s) v: u" a; ?" z+ p
' w/ \$ Y: |7 N8 d4 h1 G I: J7 d( T- i2 W- g# g
" q; X( a+ H4 y$ s) ~
" v/ O; }% }3 c. n& R P0 @现在终于删除我的狗屁加速...
' M4 d9 M! U* }5 G2 \$ I' i5 d) s7 K. E9 a4 m% _
0 [! B! g4 A) t+ k1 {5 |6 ^$ |
3 E* k7 h- z2 ? |
|