|
|
食品车:
$ ^; a/ e% H7 |: j. I5 d尾翼:1 O. S, a- R, e' Q" N, T% v# L, Y
; b, s1 l% ?4 S
代码:
- X! n! E$ v4 G$ V' V7 H1 YCWndAutoFood::CWndAutoFood()6 W! b; h @7 S
{& W6 c+ I9 V: S- g8 Z2 b
m_pItemElem = NULL;2 m0 K' F* r" n6 [0 P3 I5 s* _ I
m_pTexture = NULL;
! ~% E* A7 N" ?3 [3 h. q2 n bStart = FALSE;5 B- }: C% {2 a7 |
}
; c2 q) S+ O: a
- ?3 Z6 A3 j9 x q: }) ACWndAutoFood::~CWndAutoFood()
0 @" I8 C, N' e# `{$ @. G7 p+ }% p" I
AfxMessageBox( "AutoFood ist gestorben " );. \. v |: F' L- B
}' x% C0 W- m: @5 I/ |0 S+ K
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
' w3 s- ~: q, A7 i: n{9 Y. B: d" }$ U5 X" o
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) h- S! }3 j+ V2 ~1 f2 _
}( Q0 D- v. _/ T6 D5 ]7 b- D
" z3 g) P: S V* g$ c* [' M
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )" D% q# Y* n) f
{2 s7 [$ n5 H: w' J( V' ]
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
5 s f1 b, n" t/ o }. [0 C9 u+ i CRect rect = pWndCtrl->rect;
3 \* h0 ]: q0 W$ t) j' V if( rect && rect.PtInRect( point ) )
/ D. m Q5 ?6 U" @/ s( _5 f {
4 }7 x) Z1 U7 r+ } CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );" J. n8 Z/ [/ Y; z* @
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ). I& S' _ X- w0 ]6 b- G: P
{& w: F* n6 `3 K2 \) q. B1 o. W
if( m_pItemElem )
5 D& H+ R- _+ J {
; V2 C7 X8 b, y' b m_pItemElem = NULL;4 x7 g. o# k! m: q- L9 R
}
6 Y8 K/ \3 m2 ?9 X) Y m_pItemElem = pItemElem;
: \4 G* j2 |! r4 o2 J m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 t* p& H! h* W: K* S8 X: d1 Y3 p0 [" u }else{
9 s, X0 B! I9 w) q$ q6 D+ O z SetForbid( TRUE );
$ [8 h: V. ?9 Q4 W }
4 |/ {4 B C& q7 k7 r7 H1 Q }else{
) B3 Z0 P4 o3 Q) l SetForbid( TRUE );8 Y, m0 @0 E5 @, }; t( ^
}
; U- y* b& f+ V% ^% V- |0 s return TRUE;
# `1 X7 p S7 G7 c, O8 ~# T1 L; V}
! Q2 m( C3 l: X- h9 f5 {
3 e& v) c- T/ v. R' m) GBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )5 d+ |" V% A8 S3 q; X B; ~
{* ?: E! v u$ r
switch( nID )0 T( [, T* T5 ~# M& K
{: [$ r0 b6 k2 O
case WIDC_BUTTON3:0 i0 C6 C- C, G9 h$ L& C
{/ X& Z" @: o# f, l1 b8 J! E" i
bStart = TRUE;! w$ L: _/ j3 q4 r
break;
9 V: d3 m7 @/ e/ T9 _7 H# { }
9 t" \7 h& R4 @7 s/ J' E0 q% H$ k case WIDC_BUTTON4:0 d4 k1 {% r- @- S
{1 o) B A, e d! j- \. h
bStart = FALSE;' v7 B7 y2 m9 x4 |2 S
break;* w& T- w3 V8 v: a, g
}) x. a+ m4 q, `) m8 `
}8 ?6 A$ J3 L0 M$ I: D
return CWndNeuz::OnChildNotify( message, nID, pLResult );5 ^* H( `# j( }8 \5 _+ D6 u1 ^ d% \
} 5 @. Z0 y' V" a( ^
void CWndAutoFood::OnDraw( C2DRender* p2DRender )2 m. b, R# P* @' S, A
{
2 v; w# O. d1 ]( q" ^ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
) F) Y& {4 ?" r if( bStart || !m_pItemElem )$ t' V Q" |# V8 _+ X
{
$ ~3 H0 Y5 a8 u) I" j pBtn->EnableWindow( FALSE );, }) b% X$ s m2 [8 P1 I: s
}else% o. n0 A, z. ^& t5 T7 X8 W
pBtn->EnableWindow( TRUE );
& }' J% ^. K$ ~/ E+ Y2 _+ c% w if( m_pTexture )
. ]) b$ v2 B/ y5 z8 c" U& o {
3 O. W: G2 e- F: n ? LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' ~' q' R" u( k& V9 n0 m if( wndCtrl && wndCtrl->rect )4 z4 j8 }& Y! k+ H" P" z) L
{
1 w$ j- T! ?3 L. e1 N8 _; b! o& m m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );- C) o% H2 I/ V+ U
}5 Z' @# m& P7 d: f; R" K+ j
}
9 w) B4 A* D# H2 G* E) i7 m) |4 I}. \# T; b2 n( L, U/ s# T4 l* {# c
7 B3 w, @6 r1 S/ F: q0 Q4 XBOOL CWndAutoFood: rocess()
) H- i! d. ?* O3 L# P{
& M2 S8 |4 V5 S3 I6 O if( bStart )7 M8 f8 X' d, a
{
* ^ N+ H7 o8 P) X1 I! s- H if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ), ~8 l- ^/ M# X9 P" y; g0 e
{* z0 y0 F! H" c) d- W
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
6 W% Z0 @6 |. Q0 W g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );" u) a5 M( `! r$ J q% N9 Q6 a
}else{; R }' L$ W- W$ @
bStart = FALSE;
8 }7 u3 ^& X' K. k: o8 [ m_pItemElem = NULL;+ H% E) p) u& k6 G1 _7 h6 |% a' n
}3 g+ a6 [1 y) i( I
}4 b; T D& ?4 h- b7 c% I0 N6 }
return TRUE;1 I3 R+ x! S3 w: [6 }6 |9 v* A4 T
}
- [# [0 l2 V: s: B6 G a6 ^- p% C7 E0 L. u% K$ h! k$ R( J+ e6 R
登录视频废话:
, R- r% W% }; Y* ]尾翼:
' @2 {) d! R( G3 v4 b. G& ?; _; D
代码:
9 V" k! a& E/ I5 V4 e
$ }4 k+ K( ~. Uvoid CWorld::SetLight( BOOL bLight )
2 i6 j4 C Z# e7 v, e* O, \' P! I& Ldurch
* ~5 v" ?. o( x$ y6 F4 U7 y9 k/ SCode:9 K& | a' d1 M4 |0 G+ i" b0 c
void CWorld::SetLight( BOOL bLight )
& y2 K- |5 j }# b' K& Q1 u- M8 c{
! }2 g l. N5 h4 j( I$ _: Q //ACE("SetLight %d \n", bLight);
" n$ d* K) z$ k* S4 C. Z 9 O( j) g0 ^9 x! z: V0 W" R, X2 N2 y
#ifndef __WORLDSERVER
$ O9 w! t$ R0 J+ r" o1 `+ {7 J DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);6 h' H1 s* d/ t \( w1 p2 Z. p+ i
CLight* pLight = NULL;
/ n. ^ N+ b2 L" Y G+ X5 j, C, S# \9 m; w( _$ S; }) h
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
, @, l6 h$ A4 n! `! a( [5 V3 d" p
4 x5 }3 u4 t! } pLight = GetLight( "direction" );
6 p1 I8 s% p" L6 ~" w4 R1 ^ ^1 c/ Z) {
#if __VER >= 15 // __BS_CHANGING_ENVIR$ o5 k' g4 d/ K4 ^+ F
if( g_pPlayer ){7 ~( j0 g( @. `5 \# L
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );* m7 |" C' i4 P8 }0 H2 n" i
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
( } A. Z8 H/ r5 R" b" X {* F' z' Z: l3 {1 [
if( pLight )2 I! `. {! f5 A3 c( Y+ x* A% R
{0 h, A0 @8 ~5 q& o2 @4 c
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];, D5 i4 ^" C& x
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];2 d7 E U( u$ t! f4 A! D5 k
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];1 h b# A3 i' T# ]0 n1 L: e& M
+ K( s0 I4 d8 f4 D pLight->Specular.r = 2.0f;
$ f7 Y& l( T1 e) |$ Q& H pLight->Specular.g = 2.0f;
5 `4 d/ a! P9 S$ } pLight->Specular.b = 2.0f;# g. p, y, ~! ~
# Q' m* q3 [6 b
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];3 P' M4 c l h3 Q/ B1 B, T O
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
: z6 c' }% y& h* D3 m pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];6 ~( g. X, c4 e: }# t' M
K3 n g$ r/ W% i$ ?1 F# c HookUpdateLight( pLight );
6 i- l0 C b+ P) f0 w% J' g5 z# { u! E; r
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 h" N# j0 V3 ]- f6 `8 Y 3 N+ r0 y% N# a7 B2 M- f
pLight->Diffuse.r *= 1.2f;
% }6 E0 I" v, _7 k pLight->Diffuse.g *= 1.2f;
: G; R8 [2 z& S/ c a pLight->Diffuse.b *= 1.2f;3 \ K# F0 D6 B7 r8 n
5 a& n$ [& M; j2 I' V+ s" x: r5 c/ A
pLight->Ambient.r *= 0.8f;1 q) }. V& _$ {3 M" x
pLight->Ambient.g *= 0.8f;' \# }/ B) G# H6 G2 F, _
pLight->Ambient.b *= 0.8f;
1 f% u. P( H3 I ; p: O' M: i; {3 s& P
memcpy( &m_light, pLight, sizeof( m_light ) );' w* j$ P/ w f8 e/ U! K7 O; e
* P% q8 B, T& m5 m+ S. V
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 [: {" h) e% L9 u# J5 h
D3DXVec3Normalize(&(vecSun),&(vecSun));+ t; A. r8 _* Q2 ? l9 Y. E! ]; g
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); $ P+ M* b+ T5 l. T
pLight->Appear( m_pd3dDevice, TRUE );+ R; a" e- M* N4 r0 u, V; D' t! w
. V% B. s) R/ K! G0 b$ E DWORD dwR, dwG, dwB;& ?5 ?. W8 g9 N: n1 x" N
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 G; e8 j8 f$ R: K2 x/ U7 J+ _) x dwG = (DWORD)( pLight->Ambient.g * 255 );2 g1 N* L% u3 S8 o) }2 |
dwB = (DWORD)( pLight->Ambient.b * 255 );
' X: b& v1 k; G dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& ~% G6 z# g' M7 l* q) F5 R
}
& }/ c: }+ y7 G! S* m }- i* a" d! r7 J$ j% w5 V& [
}
& z- X8 b* N$ d else0 M1 P7 `0 E# o4 T d. w4 C; W6 [
#endif
# j- l+ D" K; j% o' r$ B p# E0 r; Y& V0 }9 p
if( m_bIsIndoor )6 z, u1 \/ b+ s- f! h* @6 I
{9 P( [& f# l l+ e9 ~+ A
if( pLight )* a, Q; M( h! ^9 }2 X6 C& I- H- o' ^
{ % g# B) s" n1 B& j7 C& A/ R
// à??μ oˉè*
% ^$ V) y4 D1 d% | pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;7 X* O! ?* ?4 u7 _; k
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
+ Q6 L" ^* D+ w( c/ {9 d8 c; L pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
' W3 i) w5 w4 E, V- R9 f; x% e1 v* j) f1 B( m5 g
// oˉè* ??à?
0 `* H4 ~) d2 |: D$ ]$ c' w pLight->Specular.r = 1.0f;
/ T: a( q) u3 Q# m# t pLight->Specular.g = 1.0f;
, Q1 t9 ^3 u: W. u" o pLight->Specular.b = 1.0f;' b) ^, o8 {7 P' [- F8 E) I# X% b
// àü?? oˉè*
$ r0 P, U8 ^+ F) R pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
( }- o* j& X0 i" d: D$ F1 J pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;2 d7 F% |' p# {
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;0 B9 _ f, y7 |( j' M" S9 p, y+ N" s
8 h# u6 b% `/ d0 \7 l1 K& e if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
/ w W8 S# I1 l( A! `! D/ ? {; R" k* N8 K3 p: l6 f
pLight->Diffuse.r *= 0.6f;8 `% J) D; S# S3 S/ ]0 S
pLight->Diffuse.g *= 0.6f;
2 h: g1 l6 l6 S pLight->Diffuse.b *= 0.6f;
4 R$ u, F" a7 j: \( E# r, b6 ?& h pLight->Ambient.r *= 0.7f;
8 Q4 A& y( Z; @; Y2 S' c* J" M pLight->Ambient.g *= 0.7f;! ?3 x; i( t* o6 C& c
pLight->Ambient.b *= 0.7f;
! S! f8 c+ v8 v3 W1 X+ z }
, N% \6 s* J% R0 P: U7 n
6 _* G. y( S& D7 g4 t#if __VER >= 15 // __BS_CHANGING_ENVIR; V& w( f: t$ o& J3 n
if( g_pPlayer )
4 I+ j/ w+ E: ]7 K/ I2 X HookUpdateLight( pLight );
9 w6 W3 ~4 @: `: D#endif( i& @. C# b1 q" D4 T
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: e% i# _+ a$ s) K0 O( b$ f: {" ]& P6 w% b, @, Z
pLight->Diffuse.r += 0.1f;
! a8 R/ d# C$ T4 m9 `5 }6 o7 ? d pLight->Diffuse.g += 0.1f;+ S& r0 e! o7 F1 o3 e
pLight->Diffuse.b += 0.1f;3 N% u2 n/ L; i n! S, j. R
// oˉè* ??à?
, o* g2 k, [+ T3 A4 n pLight->Specular.r = 2.0f;
& z' f6 W" H4 S pLight->Specular.g = 2.0f;
& z' o1 J( I; H! _5 n" c pLight->Specular.b = 2.0f;
" z+ u* }# U0 A( y7 d- k! x0 b- N // á?oˉ , x9 o; P/ \ f) s& D, C" \, ]) K
pLight->Ambient.r *= 0.9f;
; N* B7 _ U7 M; s7 h- _ pLight->Ambient.g *= 0.9f;! j( \9 P0 x; z. C# z% I2 t5 J
pLight->Ambient.b *= 0.9f;
7 p! n. X) a; `% J' ~2 A) G
7 |0 N1 Z+ [ ]6 { memcpy( &m_light, pLight, sizeof( m_light ) );* e; r& M+ v2 h6 j' Z/ s6 l6 k
+ T2 h4 |% y6 U0 O pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
: E+ \' m E X pLight->Appear( m_pd3dDevice, TRUE );7 t; O+ b7 G, m/ \
7 U8 X) T' z4 Q, e
DWORD dwR, dwG, dwB;
( c& Z+ i2 |1 T6 ? dwR = (DWORD)( pLight->Ambient.r * 255 );2 _* N7 y5 w: e, f9 m0 Q
dwG = (DWORD)( pLight->Ambient.g * 255 );% I m5 F( w- | y9 v
dwB = (DWORD)( pLight->Ambient.b * 255 );
* w2 \) e% ?0 o+ q0 R dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ N2 t& v# x3 e% [2 u( m
}
& h0 {3 {: a7 n- v- P }4 O' Y( n c( H7 H
else) d; j) Q+ _- t- r* a! O
{
5 K$ O& K+ P. }, c if( pLight )/ V# }6 Z: A1 w( |8 @) V
{# m) d% i$ X7 U Y2 P9 z
+ G; N5 x. _6 \! P1 E3 s int nHour = 8, nMin = 0;
) G, Z V* F. ^! ]7 t #ifdef __CLIENT5 R" P' o' Z) Z+ M) f+ h% _$ ~$ v, s
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. + f- o/ S% J* a* g v
nHour = g_GameTimer.m_nHour;1 T/ X8 I: D! b- }* w7 P
nMin = g_GameTimer.m_nMin ;: j+ F0 x) P* {: Z7 W
#else1 I; K; z% n$ p" V: o9 s
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
) ^+ I4 R* P. v5 Q, K) @2 g/ Q if( m_nLightType == 1 )
+ `, K( L K3 _" U/ Y nHour = m_nLightHour;- w% L; M K+ ]2 ~1 v, b$ M
#endif, U0 O1 b# R |: D+ d, O0 ~
nHour--;
7 \% c0 P- o1 r if( nHour < 0 ) nHour = 0;9 r: |/ m2 L9 _3 o" u3 R5 v8 `7 I
if( nHour > 23 ) nHour = 23;# ]. `& ]8 U: b4 j
8 M1 H% m: a: M2 g* i
//if( m_bFixedHour )
$ x6 m+ v* Q# x0 n8 r A2 p // nHour = m_nFixedHour, nMin = 0;- I& u$ s/ Y! @
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
, E4 b( t$ I) g$ G# d2 c2 z: e LIGHTCOLOR lightColor = m_k24Light[ nHour ];
k) C' ~+ b# k! y( M* M! Z/ L0 e/ }0 D6 s8 B( f
//m_lightColor = lightColorPrv;$ ^" Z# C7 g% Y/ q$ m0 X2 Z9 a! n
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;6 I, B- m- ?1 I2 P Y0 R$ B* o; y
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
9 z0 }' S/ N8 L% D lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
$ U3 D* s J- z6 r t; {" p lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
; ^! H* a/ [1 b7 y) J lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;1 `1 K% [. N3 }- N1 m
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;7 [1 _* [; i' }$ @4 w3 B
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)9 W+ V5 l2 X! B; U
6 c" M/ h" i3 b7 J // à??μ oˉè* ' u- w- q" G6 _2 N) t
pLight->Diffuse.r = lightColorPrv.r1;
7 { S; s0 @1 }' }! [, F* k pLight->Diffuse.g = lightColorPrv.g1;
3 {' P( N) g: F pLight->Diffuse.b = lightColorPrv.b1;) h0 M! @+ ?$ k6 A
// oˉè* ??à? 4 J1 w0 a8 ]0 R0 Y& t% h- ]. |
pLight->Specular.r = 1.0f;. N3 i& _- S% B9 k# b# e3 G
pLight->Specular.g = 1.0f;- v, V9 ^: x+ W. [' J1 ?- F
pLight->Specular.b = 1.0f;! |; {9 k1 e/ `0 E+ b. [' I" c
// àü?? oˉè* 0 r- g: m6 g0 N. ^8 e
pLight->Ambient.r = lightColorPrv.r2;& E' Y+ G2 V2 x' G( M
pLight->Ambient.g = lightColorPrv.g2;
3 f4 `; j0 ?: J5 v: F) S2 g* W/ v pLight->Ambient.b = lightColorPrv.b2;
; z% h$ v0 s* ]$ K$ a6 Z( p$ g
8 V; d' q: M0 ^- S+ Y8 P# f if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 V1 f8 L9 i: f' d, U' t/ g, c2 z {
J2 F5 X! D' X R4 m5 H8 D ]1 U pLight->Diffuse.r *= 0.6f;
% [- U4 ?0 }7 J9 u: ~; n0 X pLight->Diffuse.g *= 0.6f;& l! c7 r0 _! ^# { G7 q" y
pLight->Diffuse.b *= 0.6f;$ w5 m5 F" i- J% {0 a- t
pLight->Ambient.r *= 0.7f;
+ m8 O' l! k2 ? pLight->Ambient.g *= 0.7f;
O& ?& j5 z# j- y3 r2 @ pLight->Ambient.b *= 0.7f;
& }: K& }! @- | }
0 A% A; l: j& d5 h) H$ o3 |/ Q 5 H9 J8 e$ c# W' s% Q l
#if __VER >= 15 // __BS_CHANGING_ENVIR1 U* q( M5 U+ u3 X8 B5 S
if( g_pPlayer )
% H6 [( k6 N/ }1 Y7 Y* f8 h( p1 U HookUpdateLight( pLight ); + I+ E6 ?" p1 \9 c+ X( K
#endif# f$ \" ]' H& `
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 V) \4 X( d7 w0 `, p
- y1 J5 c7 K; V- \/ x7 S+ k#ifdef __YENV7 }: ]/ N/ [* U n7 L4 o3 A6 Y! _
pLight->Diffuse.r *= 1.1f;3 H8 @4 \4 f# a2 `2 }+ Q4 p
pLight->Diffuse.g *= 1.1f;. B& p% n' }" {' Z! z/ C
pLight->Diffuse.b *= 1.1f;$ t5 y7 k4 o+ z/ r5 y5 T
// oˉè* ??à? % e5 s: B$ b" E& s) [. `% N
pLight->Specular.r = 2.0f;9 H- H4 Y: u3 x- T7 k$ q" v3 A
pLight->Specular.g = 2.0f;
8 J& D1 A6 v% D pLight->Specular.b = 2.0f;
* n' r/ o2 A" V* n( Z- t // á?oˉ ; D5 {, g8 Y; @
pLight->Ambient.r *= 1.0f;
( F& B- [/ B: h+ A) |& ^: A pLight->Ambient.g *= 1.0f;
. j/ {; n; ?$ l8 Y3 F3 E. B6 { _" ] pLight->Ambient.b *= 1.0f;
! A2 m+ x/ g" t4 Z" C#else //__YENV$ y2 E2 K. B) l& X8 H5 S
pLight->Diffuse.r *= 1.1f;
5 o V. S/ ~6 I# A pLight->Diffuse.g *= 1.1f;; e3 }, K7 e: ~) Z Q! B+ K& R
pLight->Diffuse.b *= 1.1f;5 H }9 g+ E6 p5 L, q6 ?, {" p
// oˉè* ??à? & V2 w' V m$ n+ V- J
pLight->Specular.r = 2.0f;
) u* `1 u! P7 a/ G pLight->Specular.g = 2.0f;
8 H9 }2 t W. ^# f% U pLight->Specular.b = 2.0f;9 E H0 o* W( p; d
// á?oˉ
/ O" ]) z8 X5 V1 H pLight->Ambient.r *= 0.9f;; ~; U& l* h! l/ g8 }
pLight->Ambient.g *= 0.9f;
0 G: y* n, l, m# ] pLight->Ambient.b *= 0.9f;
% R, v& ]" E% C# ~ G% l#endif //__YENV
w2 z. `4 ~; g5 l . A- T, e# V: t5 N% G
memcpy( &m_light, pLight, sizeof( m_light ) );
7 s) f) k) _' }( ~* p5 C8 a * _: U& V9 u) c
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);, ]2 y7 N6 x, C( m# |6 J
D3DXMATRIX matTemp;- s' O8 s9 t5 b
static const float CONS_VAL = 3.1415926f / 180.f;
! c% g- w& c: v6 J" b. ?9 L6 ~1 l2 C; c0 }0 L, T' T5 x$ u; |
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);5 X: x; y' m' I5 a/ V1 c
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);/ k; a! ?5 ]( E; w
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
) R& k) |5 c7 n pLight->Appear( m_pd3dDevice, TRUE );
& u8 P5 Y9 Y. O5 k0 G7 g+ H' V9 O. I) y* W- M2 ?- h( s
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ N6 S c$ I8 @, z7 J7 R, d* t1 b // D3DXVec3Normalize(&(vecSun),&(vecSun));4 N" {, A( x. u* |2 h. E
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ( \0 u5 q) L9 m
" O$ J2 |! S' d2 X! P DWORD dwR, dwG, dwB;
5 J4 R1 j$ x$ u8 n6 b: @$ S0 T3 l dwR = (DWORD)( pLight->Ambient.r * 255 );
! u8 n3 z$ ^* |, q8 G) i' ? dwG = (DWORD)( pLight->Ambient.g * 255 );
2 a3 R3 D5 P- r' j" x1 n dwB = (DWORD)( pLight->Ambient.b * 255 );8 y: j2 l+ a0 t' Y
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( N8 B# a3 G' p! ~* M( g4 x! X }
' G9 l9 \" I- B }
3 S: _# b5 e6 W1 c1 g; ~+ }7 m5 l( K# L
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );6 A. z1 \* 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) );0 S# `8 e E- E5 S" k& J
::SetLight( bLight );
( z6 ]$ T4 Z" L% p+ U2 o r
5 x1 @5 N9 `' B% _& A8 V2 y // ±ao? ?D?í???ó á¤à?
; Q2 ]& ~/ q; S0 D0 F y% l m_pd3dDevice->SetMaterial( &m_baseMaterial );
8 l- v2 W5 q8 w. `( | 7 N7 N) g8 [" i# g! z# H
#endif // not WORLDSERVER
" K) O! V W+ V) j) W}
2 }; ^4 f: n6 D' |3 {并更换$ M: y% N5 ^2 T# V, z% L/ E
Code:
1 y# c" V$ T3 T4 K# Z/ p__FLYFF_INITPAGE_EXT& R* c {9 G# N4 Q% x( e `
定义) d" d7 f7 V% p9 U. ~, W9 `
0 l6 v1 L$ ^. H; R- o; ^; g4 ^5 G5 p. I2 u
+ h0 ?3 \: J) R( R6 V4 @( _ T( ~9 ]7 J+ p6 }
现在终于删除我的狗屁加速...# |9 S# t3 @- q
* l6 A; B/ ^, A0 E# P
2 H- u# I; Z2 w; @# }. _* z/ M. L- w: F% u
|
|