|
|
食品车:
9 R/ l* `- v: }& G1 ]尾翼:
2 v) ?3 W* j& }# Y- u- k; `; y4 m" U+ e; E6 h- f; [7 O
代码:
4 f @4 b, L% h" lCWndAutoFood::CWndAutoFood()
! L+ t$ k2 s, K6 ^ C% U{1 ~" x) E/ M, n% H( V3 k) X
m_pItemElem = NULL;2 x- v u/ ]& \ d
m_pTexture = NULL;8 z8 b1 n4 D9 c6 { w9 j. j' ]
bStart = FALSE;4 @( ?0 b! ]; a6 }
}0 o P, U( ?2 ?4 P% v
! O: Q. P& m: e* yCWndAutoFood::~CWndAutoFood(). }9 ]5 }, N) w
{8 ?. Q" u4 Z3 J E0 C1 e( j5 g0 L% J
AfxMessageBox( "AutoFood ist gestorben " );$ H7 Y( w) Y0 k; ~) e
}0 z, [8 Z6 j& A6 S# N9 U
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
8 |4 {/ H' O0 ^+ A' ^{
; T8 ^* i6 @! y return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );" {% S, O! `/ d4 |- H2 k
}
$ d5 j( }; [, |, h. z8 A3 s+ e0 D1 w5 J
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
' R! q m2 O) ]{
! t* [. ] [6 p LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );" |- Q$ e8 q9 {9 J# S y
CRect rect = pWndCtrl->rect;" a" w2 Z( ]- l
if( rect && rect.PtInRect( point ) )+ s! O4 v- ?# ^# J$ e# ?
{$ t* C: o! ~2 ]* b/ c4 W5 M
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );; v/ |) D" _5 Q% r0 g
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
. f, V" _; n8 J {2 W0 D, k, f( Q1 S5 [4 m1 z* u6 l
if( m_pItemElem )2 N. j; l, w) T( J( a
{
9 D" i) o0 c, O) g m_pItemElem = NULL;4 T; { v' c+ Q% {" a% B
}
3 [: ^ N' B6 u# V5 h9 t m_pItemElem = pItemElem;( p7 r% h- B) h; d' L' K
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );$ E" {7 l. ~" ?3 ]. ^' {( K
}else{
6 w) k( H8 L2 B# C0 a SetForbid( TRUE );9 I7 Z' V' g1 ~! M/ W0 t; U
}
: J$ i, D1 s$ ]; J }else{
4 X5 _$ N3 I& f- a- t# j5 Z! k4 } SetForbid( TRUE );5 {& r D/ C# J/ P; w) I* ]8 S& \
}, e, P O' ~" }& ~$ o+ z) a8 ^4 s
return TRUE;
8 C* S1 J3 d6 ^}9 G2 l! a2 q9 H( n
% y0 i+ H" ]3 QBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )9 A3 H+ P0 p4 e1 O5 X* b
{* M& [" P' @: U0 s$ {1 l) Q
switch( nID )& v: o7 G. l1 L! J
{$ e$ u; U' f- C; v' G r& r
case WIDC_BUTTON3:& m. W" H7 m' b4 v* s- u3 A$ W. {
{
" |, r9 F0 v. Q: a, h4 ?2 D" | bStart = TRUE;, H" Z0 y& Q6 ?
break;
( |- c0 h4 p$ C+ {) c( u }5 f4 }1 j: i- |+ ?! [: d
case WIDC_BUTTON4:/ u. l( U0 ` f3 E/ M
{
* c2 [$ L0 d: Y& `# D3 H, V bStart = FALSE;1 z! `. T0 D- S* F+ m8 R
break;
/ L/ U6 j o" S |& c0 i) L8 Y }' X& R o4 X2 L% t' f7 W; k
}
' Q5 z. b" z1 X0 l M; y5 w return CWndNeuz::OnChildNotify( message, nID, pLResult );
$ q5 Q$ }3 A4 Z, T}
. i$ f9 A" m( ^" p9 v& \; ], {! J& Cvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
. x( ~. z, }- N) k{
% S3 D4 U9 Q' j+ k8 }* m3 D CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );% e3 H2 N0 Z1 }/ v7 c. g* B
if( bStart || !m_pItemElem )
7 M3 l, \6 c5 H9 ?9 o {1 l7 `. t1 `7 G; f
pBtn->EnableWindow( FALSE );0 [4 B; G, u" N& O% K
}else
+ c* {8 j8 E; I pBtn->EnableWindow( TRUE );
! K+ S+ X8 C- \/ X if( m_pTexture )
. h {1 }4 X; [- j! q- G {, O% r0 n; L$ j; X2 v K
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
) O- z7 d: y( D/ d! M0 r5 [ if( wndCtrl && wndCtrl->rect )
& [3 y9 X' |- h: E8 | {
, B# l, }0 R u' j* A m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );, Y7 R* s1 s8 M, x" ^/ d4 K3 F
}) D! E( ?7 C2 d! f5 o
}
* Q" e$ n3 y( J; M7 Q. J6 X}) G7 w) G/ _3 k
, I) e P/ s1 `. V+ v5 T' `, S
BOOL CWndAutoFood: rocess(). i% `) ]+ j3 z, V. ^. e
{7 I6 g1 ^7 v h. `) v ?
if( bStart )6 G" z+ H1 h1 F3 ?
{
K. L7 Q& n, D2 Q- z if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )( _' O- t- N* Y) @ y6 {8 \+ }
{( r# A) R; ?: i9 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() )
$ r/ d) P+ C7 [! Z g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
: Z2 _2 H- x0 f( m3 \; J( T }else{' c4 c! p" ]7 L: j: |9 Y; T& V0 R
bStart = FALSE;
( X: a6 d! h3 }6 b m_pItemElem = NULL;3 V0 i$ N* P) i: @. H- E0 {1 k
}6 Z9 ?" ?% V* a, i( P
}' I4 v) P+ I+ h% H7 t
return TRUE;3 R$ _7 Q6 G: x5 y) S$ \
}# X @6 c. S8 b+ H r5 `: R
' N+ V4 t# X, H, _
登录视频废话:
* c1 {' G9 b. A- E尾翼:' J' a& H' z8 {9 j4 f
) J2 O9 D- j, o! a$ R |
代码:
/ [$ O j3 u1 A3 t( D
. [. {. N$ B5 S# q9 avoid CWorld::SetLight( BOOL bLight )+ M$ {9 `1 S. Q5 |# K
durch
# M. E' m' [( ?Code: N8 D$ [2 j& n3 [9 G
void CWorld::SetLight( BOOL bLight )
( p9 K+ T" t! {6 U; l3 K{
t' M5 f/ ^0 e3 b //ACE("SetLight %d \n", bLight);
`% T" F! `9 d$ v- B, K; d) } 6 c/ Z9 z. Y# s& F
#ifndef __WORLDSERVER
3 \6 ]: p) Z: b: | x O3 [ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
2 `# T- `5 W: w3 ]# L CLight* pLight = NULL;
! \9 [; X- x5 J8 o/ f! p
4 t9 j6 r* l7 A% r8 d D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );/ c% U: C0 {- \ y
; i, f* B( S5 w0 D) G' j
pLight = GetLight( "direction" );
* I3 r; s' i! E# ?8 S- }- e
7 X5 y7 U8 Q# |" J& x( f#if __VER >= 15 // __BS_CHANGING_ENVIR
- s4 f) W2 M6 G if( g_pPlayer ){
. \+ q0 c* ^$ A3 T& h ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );9 _! f) r3 b2 o( b" M2 y7 v
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 I$ w- H/ b- K- p3 l- y {- ?. ^8 ? z9 P X
if( pLight )
1 }3 L, x: U ~- q9 g$ J" _! L {- n; i9 i- s3 h7 w# q
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];0 i, \$ J, K6 [/ r0 G
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
- X" r9 `9 J W1 q6 f+ W! D# X' J! ] pLight->Ambient.b = pInfo->_fAmbient[ 2 ];, K5 F2 j2 E3 {4 H6 d, _0 j% j
9 V" o$ r9 D% ^; n7 r, a
pLight->Specular.r = 2.0f;3 a" |0 z J4 J4 n$ l( k6 [
pLight->Specular.g = 2.0f;( ^& q/ N# L' y& Z; n1 s9 r- A
pLight->Specular.b = 2.0f;+ }' }/ S8 \" K
/ V. V1 E2 A# ?7 E0 g
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];' G* ~, R8 l8 |, ~' G0 z: T
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];' G+ g2 L Y- {0 C4 w6 i
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
8 K4 \; p8 [0 e: _ 3 R T' q) t5 x
HookUpdateLight( pLight ); 7 }/ {% _5 R7 W
$ S! j5 ~; U$ _7 ~, n& [3 c" V memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: v3 j/ y7 X+ L8 V8 L( p& w
8 J- t8 ]" A$ n
pLight->Diffuse.r *= 1.2f;$ G* D( Y2 _, G* F, ^
pLight->Diffuse.g *= 1.2f;& I8 A- _7 x9 N0 v
pLight->Diffuse.b *= 1.2f;1 N8 d% C d' K: O- t- ]& d
. c# q3 l( x0 u0 x& t pLight->Ambient.r *= 0.8f; a5 u# W+ r' s" k/ H: }
pLight->Ambient.g *= 0.8f;
4 P# K) P5 i! _+ ?7 X) B9 I+ Z pLight->Ambient.b *= 0.8f;9 H; K9 O% s6 c' k
1 ]( [1 p; s7 H# x! @& M4 l memcpy( &m_light, pLight, sizeof( m_light ) );
3 K5 r! {. h, f# i
5 x. \# @5 ]! S; J+ ?) g. B1 T o D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
' m! K I% t9 n1 O2 u' \: Y, F: u D3DXVec3Normalize(&(vecSun),&(vecSun));$ [8 M9 p. I5 ^0 b
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' B% [( u/ n+ R6 K6 I& f
pLight->Appear( m_pd3dDevice, TRUE );8 y F f% N6 u; M( ?
8 I3 m3 I5 L. \3 d* a: [: z
DWORD dwR, dwG, dwB;
0 e1 {( g% K) ~ dwR = (DWORD)( pLight->Ambient.r * 255 );
( {6 I6 }; v% b$ N1 t5 } t$ O/ e! a dwG = (DWORD)( pLight->Ambient.g * 255 );* @: @4 h, E$ y T7 B* ]
dwB = (DWORD)( pLight->Ambient.b * 255 );
5 o0 ]8 I2 j* h3 P dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 V- c( c+ D5 R. l* l( P q; ^
}0 g( I6 l" G- V) D/ t
}
* `" ?8 n4 e* @) J. M( e3 {9 t }. j0 w5 f; }$ C2 Q+ x F
else8 X. ]9 o- U; C; g
#endif ; O" L7 ~6 ], m- d
- m" E2 d) \( E# P3 c. Q* j5 t if( m_bIsIndoor )& C% G0 [( t& P: r
{
- t* K' `# c( E6 B* H4 j if( pLight )
! r' f& o# o6 t7 T$ B8 B( B" u/ ^/ f {
- R& P9 b' {: Z4 Q // à??μ oˉè*
! D6 N8 M' m4 e! T$ f$ M pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
6 ^6 s( f% N; ?( } pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
; X3 b3 v! s2 I0 L5 J3 T: g$ o pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;3 l1 B7 r3 z, `+ t4 H) h$ L$ t+ U1 {
7 e5 Y$ A% G0 i
// oˉè* ??à?
' B8 @) j4 t' v1 ?' ] pLight->Specular.r = 1.0f;
/ @3 ]' p% m0 ?+ j _" ? pLight->Specular.g = 1.0f;8 K( P6 k) {6 I
pLight->Specular.b = 1.0f;
7 a* d) W: g a7 W; o& s // àü?? oˉè* . V) U1 e3 L- D P" w: U6 a
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
7 M1 |" ?; Q. H u) [% Y pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;' a8 [% ^2 `" C/ {* N1 m# H; M4 |6 J8 }6 U
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 B8 j1 t( p! F' v$ W4 L! R2 W) V3 B
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- R t9 }# A0 s; k
{3 [ A4 g/ h: ?8 O& y7 T
pLight->Diffuse.r *= 0.6f;
4 P E( H' f, V7 s9 ?$ F, |% x pLight->Diffuse.g *= 0.6f;
/ `2 c* r5 F: N6 n- Y* }% D2 f pLight->Diffuse.b *= 0.6f;
7 ]7 T# ^6 G; `- y pLight->Ambient.r *= 0.7f;' \& j# v3 J* A) B! d" J/ b" F! e
pLight->Ambient.g *= 0.7f;
; l* Q/ R5 @5 W, M( y pLight->Ambient.b *= 0.7f;
0 Z- X. p; C/ y. l6 s }) t3 d! X6 W. i
1 r+ O" e4 s* G
#if __VER >= 15 // __BS_CHANGING_ENVIR: V! H1 ?3 U) O3 u# ~7 C5 z
if( g_pPlayer )
- u8 E6 Y3 }9 d& Q# d6 F4 W: X! \- O, ? HookUpdateLight( pLight );# A1 R6 ^: E: J" @1 x
#endif
8 K7 ]1 o1 Q& L I7 ^0 t) x# C memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
2 ]! J# Q/ j& ^- r; \( P$ L3 P& |9 H& W. s8 g* r- a% ^
pLight->Diffuse.r += 0.1f;2 L$ e: {: f1 h& o( ~( j7 Q4 c
pLight->Diffuse.g += 0.1f;
0 k7 m( W% R* _: y; N# Z" R pLight->Diffuse.b += 0.1f;
( [% b# n- _; ? // oˉè* ??à? " y) C! e. T7 R* B0 y% o# E5 I
pLight->Specular.r = 2.0f;, Q. d) E! ^( x; B9 o# {% q) W
pLight->Specular.g = 2.0f;0 J& x! e! i. E# k
pLight->Specular.b = 2.0f;3 T p1 ]2 Q( G- d
// á?oˉ 3 \+ n/ z S9 q- \7 R; O i
pLight->Ambient.r *= 0.9f;
& v* P) l6 K8 J. t3 `, x+ u4 x pLight->Ambient.g *= 0.9f;
9 t; ]2 t' d, ~& G% o& M pLight->Ambient.b *= 0.9f;
; Z9 F0 {$ O k1 a% W. U+ D
, E; o2 u$ p: R' H* P8 R5 Y memcpy( &m_light, pLight, sizeof( m_light ) );, Z5 f+ x" z- t3 Y" [5 h2 L: T' |" _; P
. B" ?2 k" Y$ j5 _7 u4 W pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );9 S4 k m& o" |5 @2 V: a5 X7 Y9 h
pLight->Appear( m_pd3dDevice, TRUE );1 \" |( _3 D5 L+ |1 v$ W9 x
" s7 {& ]" M! j, t8 v9 ?! ~0 \ DWORD dwR, dwG, dwB;
: F) `8 V( m- |) u+ g: B dwR = (DWORD)( pLight->Ambient.r * 255 );& r l& e, {) p; [" O8 H
dwG = (DWORD)( pLight->Ambient.g * 255 );
& h3 M# Q7 ~* s dwB = (DWORD)( pLight->Ambient.b * 255 );- P- h) j0 H3 B3 p* k
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );: Y+ c6 ^7 u; K" w" j
}4 n4 f; y. J$ O/ Y l
}( ~4 j3 i1 T* z& d. j, {, M% f
else% Z" G+ q0 i2 B; g& a/ e
{
/ a, M) N( B! R if( pLight )2 H3 k3 d# S# F' J/ e4 o. r
{
) n0 U: |* ?9 F1 q4 ~- ?7 q
' d; G B# i* a1 X) | int nHour = 8, nMin = 0;
- o8 p3 s0 O6 s+ T; s2 N #ifdef __CLIENT# Y4 Q' \' h( W; W; j% U
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. / v. N8 Y% K% t
nHour = g_GameTimer.m_nHour;& b' B9 F0 @2 }" h! P1 H7 u
nMin = g_GameTimer.m_nMin ;) K# \+ |, L8 d- a1 _
#else& |1 t- a9 I) r$ v/ M9 O: V
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
; c3 d! Z' g: F: Q% R* u% t if( m_nLightType == 1 )! z4 g- f# _, x! V- a. W
nHour = m_nLightHour;' Z+ W# b; ~6 Z0 b* O' u( U
#endif, u$ T* n, X& V# ~3 z1 b
nHour--;
2 [' V, U+ x: q0 N7 ? if( nHour < 0 ) nHour = 0;; G1 e2 f: {6 L* y6 {+ a
if( nHour > 23 ) nHour = 23;
/ |7 m. Y1 A5 y+ E0 c
( k# o5 `! h. M# X* s; f7 \: n //if( m_bFixedHour )
# t# P- z. _% A6 C* t# }3 g* ? V // nHour = m_nFixedHour, nMin = 0;
/ M* `( x' G+ m8 _/ `" q, s4 c LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
! X( [( L# U: q% [# ~$ i {& q LIGHTCOLOR lightColor = m_k24Light[ nHour ];5 ?0 v6 @$ C3 X, ?5 u- G
) J. K3 J* Z2 ?' Q //m_lightColor = lightColorPrv;
/ J* H3 J: e; @( X5 `* ~ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
+ V9 z! S3 Z& \1 N lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;& o3 z, k* A4 j4 p' s6 | z6 A
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60; h, }! k# q6 H; d* @( o/ f: l% k
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;4 D8 l0 z# ^+ R) \) @8 {8 @ i
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
9 ]- t3 `: V2 j# ^5 K lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
. P2 \7 _ v4 F6 t // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
9 P' ~- J# e2 H- E: ]2 n" S$ m, W! c+ { N, X/ ^ G+ u# R* b
// à??μ oˉè*
5 D# \% V; ?4 }7 _+ g5 a+ N pLight->Diffuse.r = lightColorPrv.r1;
/ L; X2 }, W# `9 }0 W1 u, Y/ m pLight->Diffuse.g = lightColorPrv.g1;
B* b/ D0 \ E2 q pLight->Diffuse.b = lightColorPrv.b1;2 J/ @ c6 t1 j2 u( y$ X5 A3 B
// oˉè* ??à? ) s0 n. R: U8 @6 Y: \, z
pLight->Specular.r = 1.0f;% A/ G: C. K; D$ s4 _
pLight->Specular.g = 1.0f;5 g$ d6 g- H& W* P
pLight->Specular.b = 1.0f;
^! }" P( D7 h1 b // àü?? oˉè* 8 d8 L8 ~7 I/ s" R3 n
pLight->Ambient.r = lightColorPrv.r2;
9 V/ x! W& W [$ M' f pLight->Ambient.g = lightColorPrv.g2;
1 O" x6 P% |" f* c: l& n pLight->Ambient.b = lightColorPrv.b2;! w A* z9 x) Z5 H& X- o5 F
7 [ D8 y7 [: } a! H
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, _; O6 C/ W7 A1 N \* g* p {
8 X1 s7 \: }; r6 y' j8 Q% F' z pLight->Diffuse.r *= 0.6f;
9 N+ ^8 p' l ^' \ pLight->Diffuse.g *= 0.6f;
5 p4 L4 |# N2 K. x5 M" h R pLight->Diffuse.b *= 0.6f;
3 y+ ^. c) L% x A x pLight->Ambient.r *= 0.7f;0 z8 @7 P* j9 P( i6 A- x
pLight->Ambient.g *= 0.7f;
! T; [) Z7 m/ l7 M/ H W pLight->Ambient.b *= 0.7f;' c" o2 w2 A+ J
}
6 P% l! L# P: b, M ( I! V9 V% r& e
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 J# u* [ e5 h* h4 R9 S: y if( g_pPlayer ) y0 P C7 W* g w9 }3 l
HookUpdateLight( pLight );
# |, q/ Z4 E9 v9 C) L, D# w' }#endif
" g; O% z- F0 n% | O5 Y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ }- V5 _4 O; U% K8 F% _0 a5 B) ^1 ?. v
#ifdef __YENV
( I! N4 q9 }. a5 P1 i, T/ X/ ] pLight->Diffuse.r *= 1.1f;
# a) T3 h! Z0 \! @. U; b pLight->Diffuse.g *= 1.1f;
4 J/ z3 T, J. H& j) G, l2 `# {8 q pLight->Diffuse.b *= 1.1f;" i J" H1 L( y8 _, y& |& ^$ g# M
// oˉè* ??à? Q5 X! X, z4 T4 ?% t( v, b8 f
pLight->Specular.r = 2.0f;" T8 s) [8 y0 @
pLight->Specular.g = 2.0f;, }1 @8 u a/ T( F7 l; ^
pLight->Specular.b = 2.0f;
+ ?" r$ j) \. |+ R/ m // á?oˉ
& K7 x0 l0 s1 a6 X4 Q7 X( d9 z/ C pLight->Ambient.r *= 1.0f;
$ t# x9 i" q- y; c* D pLight->Ambient.g *= 1.0f;0 n# h) L* h# y+ T: l
pLight->Ambient.b *= 1.0f;! F$ _2 n6 j; B" z& |( t
#else //__YENV
, _% r6 J0 v% p0 G. w$ s z pLight->Diffuse.r *= 1.1f; z! o6 c1 b, r9 B0 ?
pLight->Diffuse.g *= 1.1f;1 a0 S' B$ h" J5 e( E& e" m
pLight->Diffuse.b *= 1.1f;5 B% p4 M* H6 ^8 p. Y1 O* N
// oˉè* ??à? ; Z% A; _+ s3 w' R
pLight->Specular.r = 2.0f;
E+ l$ q" F% q5 M8 q' s pLight->Specular.g = 2.0f;
e0 c3 r) [4 @" ] pLight->Specular.b = 2.0f;7 R0 z& I8 I1 h1 D& F6 U7 ^. |+ A
// á?oˉ 8 N9 v0 B' ?( J* \; [
pLight->Ambient.r *= 0.9f;
" n* f {5 J& y [- b5 \ pLight->Ambient.g *= 0.9f;- l* _0 p# G" A5 a4 G3 U( |
pLight->Ambient.b *= 0.9f;7 V" z9 S; U9 B! h. `* j
#endif //__YENV # O. W9 a: j9 u( [2 ]
: i4 E* E" |: w
memcpy( &m_light, pLight, sizeof( m_light ) );$ q4 o6 K# e! z9 e% ?- O# d
. V9 F0 _6 ~- C! i" @8 k D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
/ @2 f0 r3 t6 b D3DXMATRIX matTemp;+ o7 F& o8 \) N' G s% a8 R' h
static const float CONS_VAL = 3.1415926f / 180.f;7 f; i9 a" f6 X' B3 `7 K
1 c& n1 G3 z# m7 C
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
% z4 X; o J3 ^( ^ D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);5 X5 f! y0 h7 c6 C7 y
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 O& f, o9 y' Q/ j! B pLight->Appear( m_pd3dDevice, TRUE );* h5 L1 U0 w, G
- Q# e- s2 m7 S6 Y
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" x, H( r/ o2 U* |/ G' P& F
// D3DXVec3Normalize(&(vecSun),&(vecSun));3 \2 _. |0 _( \3 O$ B- q- T
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' j" t) ^0 D, X
- b; V* O9 l0 B. x5 Y+ K# B: ~' L
DWORD dwR, dwG, dwB;
/ ?6 @* ?- _. {6 |# F8 u dwR = (DWORD)( pLight->Ambient.r * 255 );* t- p+ O e U5 ]
dwG = (DWORD)( pLight->Ambient.g * 255 );
# X h i% V4 g- s dwB = (DWORD)( pLight->Ambient.b * 255 );2 `5 |# v; o" f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. T7 S s4 F" c7 S. D. \ }2 p7 v6 a- ~, V/ K( p, a" b
}
' R# m' ~8 p2 ^4 A
3 P4 W6 p* U% h. [ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
/ X: O& W0 o1 u( }, A# O 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) );* E$ R; [* |+ H! S% g
::SetLight( bLight );1 S$ w& ]) x9 r2 P: q' s0 e+ Y
) C8 t" q b7 r2 y // ±ao? ?D?í???ó á¤à? " X3 s4 O! c) E, P
m_pd3dDevice->SetMaterial( &m_baseMaterial );
6 y: i: m% c7 K& j
1 Y% ~* q" b: I* _9 ]8 y#endif // not WORLDSERVER
: Z* s' {0 `1 x; r( L}6 a! _2 a0 N/ T( j _
并更换7 }* H6 {/ |5 _/ Z+ W: B5 O
Code:. q: e7 y' c' K4 Z; w0 V
__FLYFF_INITPAGE_EXT
4 ~: _! n5 R: U( n9 d定义7 l5 f5 t( u- T: {7 a: _. Y8 b
6 n) k0 a5 d$ j/ t, a* S! z: y u3 U3 w3 |7 v3 U) H5 L# i# h8 a, J
+ i. w9 _+ S7 L: H: C/ N7 b5 }
2 ^* J$ @& h6 h4 p现在终于删除我的狗屁加速...
4 [/ R7 }2 Y u- `; K- Q5 v: a$ l1 N% n! x' U- w
. s" n! K/ k2 ?" D+ x
' Y; w4 @. e7 g; w( o+ x |
|