|
|
食品车:+ E7 n- Z$ D, e) J% {0 J: V
尾翼:
0 R, R: g/ r; S3 l( E; m5 r1 K5 y/ A$ ]* u& \) q
代码:
4 H) a6 Q$ }4 C" U/ nCWndAutoFood::CWndAutoFood()# E' K9 M5 p7 b
{
5 c4 {5 P) B$ m) S9 N m_pItemElem = NULL;
* P/ ~1 ]' h) j5 p0 L6 E/ @ m_pTexture = NULL;
! c1 A- n* R' M& N bStart = FALSE;
% h5 z, m# {, p( V}4 i/ W. F" J0 Z! A# b4 N
2 C; k3 F& p# a1 W2 `. n
CWndAutoFood::~CWndAutoFood()8 S; \6 o. [6 B# c, n
{+ T1 e, J. n8 h9 b' K
AfxMessageBox( "AutoFood ist gestorben " );
' i6 t' T7 G6 |, B. { C}0 @5 p; i) H7 j' A
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ): L; _& Q# K* V; M
{+ v! m7 N* I$ G/ }) _) y
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); P V! B6 n G/ B
}
* a% I9 y6 {0 u; P! s
# H @$ ~7 |( N( z5 UBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
% V$ _6 o1 D5 r0 N! M{& c7 v! E9 h6 ]" g
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );6 Q; ^+ c" v) D. B, e, V
CRect rect = pWndCtrl->rect;! L; q$ A% ?% X/ O
if( rect && rect.PtInRect( point ) )
8 v0 o9 m$ o7 V& j" S {$ N" a" n9 ]4 k3 @- l
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );7 ?6 ] A3 w( G6 g7 ]4 {* @7 i; r
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )+ M# O& U, X3 a' U
{
( }. Y; G, I4 ] if( m_pItemElem )
$ N2 _$ I e7 r {
5 ?1 Q6 l6 p0 z m_pItemElem = NULL;; u; y& S3 G. H/ n3 ?
}
^/ o) b' I4 ]) t! R5 r3 n* ~ m_pItemElem = pItemElem;) W l! s' n/ H# s
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 A" S9 D1 N3 ]5 S% Z# C* x9 ^ }else{
9 c9 [8 [+ @; E/ n4 f: T# G& N SetForbid( TRUE );
/ h$ U. ^. u# e0 o! f2 j }
! y. W7 X( t2 M$ ? }else{" {* y! }/ [% ?. X7 a' E
SetForbid( TRUE );
) A2 H e8 |0 r8 ]% S$ h+ z }
: Y' O: `. h4 G8 \ return TRUE;; Y; N( o6 m! s9 K6 e; o
}
& a% K7 x O* ]
. P C' O0 r2 g' G TBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )9 W1 @* s ?/ X4 x$ ~$ O
{, {1 M6 ^# O% L/ ~9 `4 \5 h6 ~0 T
switch( nID )' r+ n5 a4 |( X
{
; f( j" S; p) o4 t4 V; p case WIDC_BUTTON3:
- l1 x3 L% x2 M* ~" u {' y+ h# [. m7 f5 k
bStart = TRUE;
& Y5 d- ^. x' L3 h0 Y: r7 u: R break;& ]$ D* H. q0 r- ~
}+ R" x8 r* |* X, H
case WIDC_BUTTON4:
# `, L) F5 Y; v$ r+ o6 ?# y) q {
n [9 a6 L/ {9 j0 j+ y bStart = FALSE;& V2 _) i e, X$ {
break;( L& q" g, `' P7 w
} j& Q: b8 y; ?, \( T
}7 Y# H' i- N7 |; q' A8 ]
return CWndNeuz::OnChildNotify( message, nID, pLResult );
' N G% b7 f& K- O}
L, i3 c4 z. ?& X* mvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )5 Q# r( s+ W$ r
{
6 q( [$ ]3 P5 L+ o& g" `( E& e CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
. X+ ~8 A: n7 T. l( k if( bStart || !m_pItemElem )% ] x! u: \! `* _# P
{1 U. z# l. L+ {' ~9 a$ H
pBtn->EnableWindow( FALSE );5 D( y/ J7 A( G$ R. n# k# k* d S
}else. ?: y7 X8 J% X. Z; G% X
pBtn->EnableWindow( TRUE );
9 }; Y$ A# A% |% r! l- m" U" U if( m_pTexture ), p: r; C2 |1 S# j* k7 O9 g
{, d' v' U) F! w6 ]
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; V* F9 w" K* n) v1 h if( wndCtrl && wndCtrl->rect )+ v7 z8 z( k: u
{) c7 e% c7 l7 w9 L
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); s; ~! N! D9 D5 c1 m2 I
}6 u9 C4 U4 a- i- ?- o$ s. G3 d% s: _
}
; {: K8 \$ q$ O0 T* N7 ^$ I b}4 y5 T; y. M) x) k7 l0 f
; _% T6 J4 g. c3 q
BOOL CWndAutoFood: rocess()+ f" w/ m( u- [& Q) O
{
1 _+ G/ ^6 o8 \0 \- P$ l if( bStart )
8 P/ T$ o* F( k6 _ p7 | {
y2 ]4 F( a. a5 ` if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )) i7 h3 J! T ~* [) M
{
6 B2 ]* ~& H* l: |8 p if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
. m% V6 u( e% z( G: T g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
; }" n& N4 J" x/ S }else{4 I3 U$ ?5 c2 l1 ~
bStart = FALSE;
% O1 G$ o" `3 U0 b# W$ T& X m_pItemElem = NULL;$ l7 i& [6 H- u
}, ]3 o9 d9 |4 x' q! U
}9 `" b. Y4 j/ s$ A( D
return TRUE;
( ^2 W: e6 z3 x* K7 S}6 e$ P% f1 J4 v
( {4 x! S7 y- P& Z" t, _: T- r
登录视频废话:
# [# C/ g# @ Z3 S' _9 U* P+ r5 A尾翼:
3 y3 L( l" e$ q8 Y! E, f
; V8 U" x1 \) G+ h1 Z% Q' D代码:) K8 t$ ] d9 d# [6 N- s$ e
, i- R- s+ o; X& A0 C6 E
void CWorld::SetLight( BOOL bLight )
. z5 T' a1 P4 ]/ h0 sdurch
! I4 K9 U6 b9 D! e, d+ lCode:
& G0 ]/ E% L& D% U+ Evoid CWorld::SetLight( BOOL bLight )/ r2 y* m& e" I9 P
{( N2 l `- Z% A5 A2 s0 h! |
//ACE("SetLight %d \n", bLight);
, ?% B6 q2 E8 Q* } K8 R 3 p* e4 y4 B" I0 r: n; n7 B
#ifndef __WORLDSERVER 9 d( S0 b Q6 f4 G
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);9 @; A# j7 y E2 L1 Q6 @
CLight* pLight = NULL;1 n, J, V2 |1 r, N! F3 E1 N& Y
- L: L; G+ C9 _9 ^+ W& ` M D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
' M, P3 _& ]* Q: x4 c7 e
' K; A5 b6 H" Y: _2 B! E pLight = GetLight( "direction" );
* U5 ^" S! s( x+ F% n4 f3 D& Q3 N# A; ^: K* C' r& j- V
#if __VER >= 15 // __BS_CHANGING_ENVIR+ l" P2 E) t: E; d- q
if( g_pPlayer ){
. V8 p) z' W2 i$ F7 S4 ? ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );+ o L4 k9 y2 s" c& U7 r
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
- m" I4 z. ~" l, Z) w$ ]' | {3 I5 ~3 ? y- M( \; O
if( pLight )
6 e, j$ x1 s. l% X( I* W0 t" N0 J( N* S1 g {' Q8 N- K2 S2 N6 `; t
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
6 \- d6 c6 Z" u2 q pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 G8 c! C& a) S; @; D! |
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];& ]. @7 H) S' r" \8 m* F
% g, f$ I1 T9 F$ A- f* B pLight->Specular.r = 2.0f;- y- f( v6 d. j
pLight->Specular.g = 2.0f;; e3 ]' N. h9 ? h: B. ?1 L! o
pLight->Specular.b = 2.0f;
6 s; U, }. }& W4 z. r! x. X @
+ t, o' T L8 K& B" Y( c3 _ pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
! X7 ]) R! t. ~( L. h pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];# \' `% k/ ^( X4 C' y1 @. ]
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];) t* i# s% i) K' Q) V Q _
1 }" B5 q: r5 _ HookUpdateLight( pLight ); ) {- J, {1 i; ~
) V7 } V( a& K# i" ~
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ x" H" k) d5 |' c$ @5 { + j( s0 K: c4 {: g3 N- l
pLight->Diffuse.r *= 1.2f;: @4 A' M1 ?: S
pLight->Diffuse.g *= 1.2f;
; c, t6 m. m6 b1 b4 D: x pLight->Diffuse.b *= 1.2f;1 p9 \# u4 @* l/ q# i5 Z& Q
9 j$ o" ]$ J4 \2 I; D8 U$ s) y- m6 p
pLight->Ambient.r *= 0.8f;" y' v9 X/ l7 f! U: X" V
pLight->Ambient.g *= 0.8f;2 E+ I! v4 W( c o; ?$ S
pLight->Ambient.b *= 0.8f;
! ?$ F% d& E6 I; j5 B# z7 F' c5 I) ]
! x( T3 T# ?7 }4 [. n& B, ? memcpy( &m_light, pLight, sizeof( m_light ) );
$ Q7 L' Q, }0 e, j" W* ?/ d7 ]: H1 |" o
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) m6 p. O! T. |) h D3DXVec3Normalize(&(vecSun),&(vecSun));
2 [, `5 ?# L+ C+ a6 p% C pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , J3 H1 F; E. K! u
pLight->Appear( m_pd3dDevice, TRUE );
5 B. e' F$ x: L9 h. d8 E. G: u' L
* ]8 F1 f# a0 X- H DWORD dwR, dwG, dwB;
) b* {$ e6 l L" k dwR = (DWORD)( pLight->Ambient.r * 255 );
# z1 r( |; d- k# Z" Z8 d2 n& Q+ g! I dwG = (DWORD)( pLight->Ambient.g * 255 );' b6 i& q d3 I- E; b, f7 S
dwB = (DWORD)( pLight->Ambient.b * 255 );7 v& q9 _3 p3 n& K
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );: X, e* S$ n5 Q/ ~6 K
}1 U, V5 d+ }; D
}9 X$ E. z) T: m n- U% K- u
}
8 S- r9 `! l: W8 S9 k9 |. a else9 F" P9 @% G& O$ i. \' h0 e8 K
#endif % R; e% h- l1 _, _! V
2 @5 `! G, }1 H: A8 i3 Q if( m_bIsIndoor )
2 m6 {1 m+ y' a0 Z {( [! H Q9 H* C9 b0 P. `
if( pLight )* R2 v3 F( t w6 F
{ 8 ^2 H3 W1 C5 n, h1 o. _6 |" F
// à??μ oˉè* . _+ }6 ^9 h5 H# B! x* j
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;0 c) D4 U! v0 Y1 Q2 a! Z
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
1 A' i8 Q3 K7 I7 A; A3 O) P: S$ w pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;. j% H7 |1 ~% h" t0 T
7 Q' o4 i% w& z) n- C) y // oˉè* ??à?
9 E1 i6 | W/ h' G% y pLight->Specular.r = 1.0f;2 |2 a( x0 E8 I9 T. u
pLight->Specular.g = 1.0f;
$ [; b5 u @5 m0 \4 e5 G F5 u+ z' r" a# a pLight->Specular.b = 1.0f;
* S0 H/ m# C+ O0 S. D9 u // àü?? oˉè* . f v, `3 G# b8 N. s+ t, a) c0 I
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
1 h& Z# |# ]) ^: W) O4 E pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
, k1 P) T7 H6 o3 s5 f+ s: M pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;, G+ b# m. P% e
: N" w( t* _; f/ `" n
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??./ x R: I' Y7 r+ I# O& S2 {
{
: m" K: Y, Y2 m pLight->Diffuse.r *= 0.6f;
* o t6 s/ V+ Q+ M% P pLight->Diffuse.g *= 0.6f;1 r& K8 {1 l" a) t% ]( ^) f/ Z/ ]
pLight->Diffuse.b *= 0.6f;$ z5 y8 z9 H! E: n; ^
pLight->Ambient.r *= 0.7f;! |+ b9 G6 q" i: R
pLight->Ambient.g *= 0.7f;
9 X2 G0 R6 k% W- ? G7 j* L2 ~ pLight->Ambient.b *= 0.7f;& {6 z g4 n1 K4 m4 M: s
}
* @& B* M5 z9 E: ]; @3 V6 ~; |' ]0 u8 n3 y
#if __VER >= 15 // __BS_CHANGING_ENVIR/ l) I* ]6 Z& H
if( g_pPlayer )
( L4 P2 k$ ]& g8 |: c! F6 ~ HookUpdateLight( pLight );
! _$ u' u3 o6 w4 p: [#endif
; w& l; K1 i M. C, ^ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# @# r5 I* I3 T! u. K2 ~' O5 r D( r, K+ ~8 c: E p
pLight->Diffuse.r += 0.1f;
3 T6 B ~3 Y5 }5 c8 z pLight->Diffuse.g += 0.1f; N/ H5 h6 {$ `/ _7 @- B
pLight->Diffuse.b += 0.1f;0 y; N) v% `8 y6 j6 |- x4 ^, q+ H
// oˉè* ??à? " j: J0 a8 `! a+ q; d I
pLight->Specular.r = 2.0f;
[* [6 l @. E# x pLight->Specular.g = 2.0f;
: \; \ Z, ~& J7 d7 y, A6 t pLight->Specular.b = 2.0f;9 K3 w V" |: X( ^% d
// á?oˉ
1 z5 [+ d- w4 a& Z: G: }) E pLight->Ambient.r *= 0.9f;
5 k' Y9 F' |; f pLight->Ambient.g *= 0.9f;
, Z( o% ?6 F" Q- T pLight->Ambient.b *= 0.9f;# q q! Q0 C, j! @" F K
2 x2 `5 o' p% @* P% |& B3 o memcpy( &m_light, pLight, sizeof( m_light ) );* T6 O& w: m7 W
$ h- S5 q! e$ k( @" f5 ?; ]
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );$ y% u5 W/ ~+ c% l# C O
pLight->Appear( m_pd3dDevice, TRUE );) F. x/ s4 t+ G* b. X9 y" I8 A
" Z! k$ ^9 ]/ o" i DWORD dwR, dwG, dwB;( S9 q( e: _8 O
dwR = (DWORD)( pLight->Ambient.r * 255 );
; v' W6 x K( ~8 S) v5 h( G dwG = (DWORD)( pLight->Ambient.g * 255 );
8 K& G, Y3 n7 s3 n+ L dwB = (DWORD)( pLight->Ambient.b * 255 );, }# {3 b6 l9 M/ i' l( j
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% \# l9 K! ?. T$ X
}
* c9 J6 ~& j+ Z* s( { }
( m+ a. ^: Q7 Q2 j3 Y else
; B: Z+ h8 ]3 n& L; _7 x4 d {9 d2 V/ f6 M1 N A
if( pLight )8 N/ A7 v( A+ t$ G/ b/ C% p" D3 y
{
3 V7 H6 F4 D: P, B5 h! N ! A! i4 d6 c5 P; G' G6 I
int nHour = 8, nMin = 0;
* D- C. x( m; Q" ~2 G" Z #ifdef __CLIENT3 `& d+ K! j$ G9 [& G
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. # y1 b5 I) s$ U z5 c
nHour = g_GameTimer.m_nHour;, f/ _. d. B8 l3 |% C, O# |
nMin = g_GameTimer.m_nMin ;- ^8 _' f" ~8 A' e8 d" L+ e
#else
' f8 [! D' x& D4 F8 O // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.2 j/ ], r; _' \& V3 E1 w7 C$ {. c
if( m_nLightType == 1 )
; X) @# ` a3 ?# ~, [ nHour = m_nLightHour;( I8 _/ U Q0 o3 j$ h
#endif
7 \" p$ ~1 W+ m0 v7 V nHour--;
0 w+ i0 k3 d* U2 ?1 n7 z- U' A if( nHour < 0 ) nHour = 0;- A, w7 Q# E2 W2 J
if( nHour > 23 ) nHour = 23;
i8 P7 n0 f. A" h6 H/ e5 i+ e' F1 x R# U3 R/ v
//if( m_bFixedHour )
8 f/ }( p% U5 J* {& H& V // nHour = m_nFixedHour, nMin = 0;* N& \- G: H; i+ H7 }& k g# K, h
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
3 Y$ ^4 n- {6 ]5 }+ I LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- x) \) U' f4 E/ q5 T0 y, g8 g6 } h, Q* n2 y
//m_lightColor = lightColorPrv;& E9 X( k- M S; o+ q' _" K) Q1 u
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;$ ^( C$ @! W* D
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% u& k5 s2 I0 m8 P lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;, w5 o5 w# a3 E6 z+ g# Z0 L" N+ X
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;$ V8 v; k8 M' b' E( D! V
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;% W: i. _/ ]! g9 `: C
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
# r0 h4 A" P/ d) |2 Q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)6 e- m3 c L4 X- W, R( P. [
: Z7 c* z: W# s. k
// à??μ oˉè*
$ ?5 x) N6 p: G# d: G pLight->Diffuse.r = lightColorPrv.r1;9 g6 y6 v8 O* _
pLight->Diffuse.g = lightColorPrv.g1;
% e: c8 R# X. k, D pLight->Diffuse.b = lightColorPrv.b1;
& l1 f0 D1 E& M( b$ H7 U3 n! ^ // oˉè* ??à?
# d( n6 b. R- O' g! U+ M7 [ pLight->Specular.r = 1.0f; I. ^* Q3 M7 u) X2 z# Z
pLight->Specular.g = 1.0f;8 Y: g$ j* ^6 E8 k% y9 j
pLight->Specular.b = 1.0f;
7 J, p1 |5 r" P4 s // àü?? oˉè* - G" E8 j/ p+ ~4 T2 Z7 {3 z( J
pLight->Ambient.r = lightColorPrv.r2;+ X$ J: I, G7 [# y: d9 e1 R
pLight->Ambient.g = lightColorPrv.g2;0 f( k6 w' T; P/ `* j }- {
pLight->Ambient.b = lightColorPrv.b2;
& O H" b" w: ?8 ^' V1 _8 H. I( u( J( u9 N5 N
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 o" ?) \6 m9 X2 E$ F3 g- c1 ?3 V
{0 a8 r$ f2 l& n( X8 d
pLight->Diffuse.r *= 0.6f;# ?, M* Z8 h; v# o3 B5 V3 q
pLight->Diffuse.g *= 0.6f;9 c, m7 a: e( ?& [/ g+ B8 _
pLight->Diffuse.b *= 0.6f;2 O0 _/ J; V" I. R+ t
pLight->Ambient.r *= 0.7f;
8 l! t% P! g( u pLight->Ambient.g *= 0.7f;+ w" T$ |: J. S, Z, }8 Q% b
pLight->Ambient.b *= 0.7f;
; I2 |8 U/ ^0 ?& s+ }/ l& i" v }2 ]5 r9 I7 z( x/ h' }
% ]6 x- L8 a' J1 I8 ^" l4 a
#if __VER >= 15 // __BS_CHANGING_ENVIR3 Z: C$ d, W5 p- m" h. S3 B8 m- o( Z
if( g_pPlayer )
+ `6 T8 L7 r. n7 q2 } HookUpdateLight( pLight ); 8 O G6 v# g9 o8 Q+ R
#endif6 U: Q% I2 B% o
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' v* t% D/ Z! f' f9 y# Q! |/ s& q5 t& G" C s4 {
#ifdef __YENV! h6 F2 O5 D+ j7 w3 O0 m
pLight->Diffuse.r *= 1.1f;/ J" H- O6 A7 u& c
pLight->Diffuse.g *= 1.1f;
@3 ?; I: O! g% J3 n pLight->Diffuse.b *= 1.1f;& V& V0 a9 h3 S* W/ l: L$ M; X
// oˉè* ??à?
9 j7 b3 G1 N1 B; `+ Q# D pLight->Specular.r = 2.0f;7 A6 _3 v2 X, M! R" U/ w1 [& |
pLight->Specular.g = 2.0f;- [4 h2 W: z- H9 \ A1 q
pLight->Specular.b = 2.0f;, m3 c3 g6 x- _. j/ t: r( P9 P% g( q; `
// á?oˉ
4 t" i1 q+ p6 m$ n, N pLight->Ambient.r *= 1.0f;
7 n& E2 q1 T' V pLight->Ambient.g *= 1.0f;
9 u# K/ F+ I; U$ Z pLight->Ambient.b *= 1.0f;% e Z3 w- B$ G1 T: V0 Z
#else //__YENV9 ]" w4 `+ g1 Q, y: B: w8 C8 b% D; B
pLight->Diffuse.r *= 1.1f;
: Y0 z) X/ O3 U0 e: ]- e3 M* L0 K! y pLight->Diffuse.g *= 1.1f;
8 O5 h! H5 u* t0 d# E$ J0 E pLight->Diffuse.b *= 1.1f;
# G- h$ U! L% r! S( v w // oˉè* ??à?
3 x- y0 ?) X8 r) t0 Z5 ] pLight->Specular.r = 2.0f;
1 u' \" V$ H- n0 Z V4 q pLight->Specular.g = 2.0f;
4 H6 `7 ]1 b: j6 n7 ]# @$ }0 o pLight->Specular.b = 2.0f;2 w7 ^: ?- A( _2 z! j, x9 b
// á?oˉ
6 u3 }( o( [1 H% @( L9 C7 Y pLight->Ambient.r *= 0.9f;3 T9 e: E) `2 G: C
pLight->Ambient.g *= 0.9f;. r" w' o& k7 I. b# r- a
pLight->Ambient.b *= 0.9f;) D3 V# ?3 h% v. e5 v
#endif //__YENV
0 ~+ k' ~* p$ d0 R
- h6 F- t( b$ {' F2 z" e) I- x$ S memcpy( &m_light, pLight, sizeof( m_light ) );
; C" x- k$ u/ C1 f1 K/ P
4 \- p' X+ u0 }; \2 @/ g D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);' M* ^0 ]% @ T5 U
D3DXMATRIX matTemp;
3 I+ l6 @# w+ R; {% m) Q; O4 j static const float CONS_VAL = 3.1415926f / 180.f;
8 t; d1 h' c0 V
& a! e3 S. g' m/ x D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! g* X5 \; b# N+ W D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);- u) p0 Z6 E/ [$ i L# G5 {" R
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
1 R% ~& h+ v- f0 k2 l( i pLight->Appear( m_pd3dDevice, TRUE );
! \3 e1 U- M) A% R! C7 [% ? b7 @' c U! Y$ |
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 Q9 I( J+ K/ B8 g
// D3DXVec3Normalize(&(vecSun),&(vecSun));
* Q5 t1 \% I$ T) Z' A D6 a3 l // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( K3 a1 `( m) e/ S* `1 D8 i- m! |6 M
( \& I" f) ]$ o/ x$ }- X; ?3 @ DWORD dwR, dwG, dwB;
# y, ?9 E' [# Z" Y, { dwR = (DWORD)( pLight->Ambient.r * 255 ); p* H6 W4 q' Y8 J( J" I; i
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 k* F4 Y, H$ F- V8 ]+ d) G$ B4 x dwB = (DWORD)( pLight->Ambient.b * 255 );
) w5 a/ `$ e' c, y+ e& G dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 3 F1 j4 N4 u4 h4 a. Y( T
}* W( K G( T! C( p8 K- }
}
$ v- J* T* `- J, |
7 R. n. B# X# y) {- \ F1 n9 L' g m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );! V( Z7 J/ f% Q
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) );
% _+ {* w. J( Q4 R6 B8 K ::SetLight( bLight );
$ A6 w; s4 R. j. H5 {
6 |, Y; c% \" o! a: e8 X // ±ao? ?D?í???ó á¤à? 1 ~- R/ f4 [, C' |" T/ p
m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 l8 \2 F9 t2 I! J, B( \
" I3 L6 O* h: r" s#endif // not WORLDSERVER
' | H8 p I) Q% u}
1 w2 R1 }% K+ g6 v并更换
7 w, i* Q; h, vCode:
4 ~0 d! @' {9 t8 G U5 h# }+ o) L__FLYFF_INITPAGE_EXT
6 y+ y z/ a- ?定义
7 \' Q6 l$ v3 \% Y; x2 P
3 K: q) e- d3 N8 \$ F) Q; Y3 {! d1 w! v* R* N2 [6 t
8 Q+ k6 V1 p) _4 Y9 d+ W
4 W; p3 [+ A4 [( D& q( t
现在终于删除我的狗屁加速...# F# F* b" h* Y8 e* L& C$ a
! U* ` w- ]+ M8 b9 s: \) |4 @$ x: o. y" e6 L
: H) H$ Z2 ?" f$ g/ X
|
|