|
|
食品车:+ U2 C; y5 d+ r3 u) E
尾翼:
# D9 C9 B" j, b5 }
0 T/ w9 ?8 s/ O7 l代码:
: P4 T( k8 N' T8 H# M6 F2 `2 zCWndAutoFood::CWndAutoFood()8 \% @& Y" u7 ]
{! i6 W2 R0 F' {4 ^
m_pItemElem = NULL;" X; j% m, r$ j" e
m_pTexture = NULL;
5 v1 ~7 S; x, A" k bStart = FALSE;) Y) U0 {9 |# @3 h0 N5 A6 K- e
}+ M- g$ |! T G" G4 k; V
3 n- ]* t* Z# qCWndAutoFood::~CWndAutoFood()$ q) I5 R3 }8 z' \! J
{
; x, f! A! A6 j; z+ b! s AfxMessageBox( "AutoFood ist gestorben " );' I/ R2 T/ W1 Q0 }& K; M2 n c2 b6 z
}
+ \0 z6 p/ \$ Q& x* c. eBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )0 n! I- _0 K, h% g
{3 S# q' l; [; \" a8 ?/ t' l
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
2 R) Q: K3 m9 ]5 b0 p}
. `6 o# [- Z( c& J% Y
5 I( z6 z# W; G# w6 p# a' IBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
) C8 G, X6 g$ Q5 x$ ?4 C{" }( Q8 |, s6 j l5 W2 b% S& g8 T
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
9 m, y3 ~' G* Y$ C9 |' z CRect rect = pWndCtrl->rect;
9 W- i, p1 d- k2 [7 d& T if( rect && rect.PtInRect( point ) )
% ^3 Z! Q1 b7 A7 } {9 A0 ^. ~3 ~$ _- r/ P
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
5 C' M: G4 q- k2 w if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
4 D2 X- f% v1 ~7 z- z/ L: T7 o& G1 O/ a {' F" j" d" @" P, L' t
if( m_pItemElem )
K% M# Q/ q7 ?2 |; _ b {2 ^1 Z6 E8 ^! D3 l" {
m_pItemElem = NULL;
7 }0 b, [; f. |$ ^; R; r }( v! x2 \* q6 f! X
m_pItemElem = pItemElem;
D, o' P) S. Z: f, Y. K m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );8 z1 d; R! x/ x ] _" I
}else{
& d# x8 j. o' y" I1 K) @ g* { SetForbid( TRUE );
: i6 i6 I* Y3 D }
" F4 j3 x7 T8 ]/ @; y# Z, m }else{
5 G. Z) B7 g$ T# o SetForbid( TRUE );2 l' f/ l" W) M, G$ g( g
}2 @: {' H* l" v7 Y
return TRUE;/ J6 k* ]; ?+ h4 h5 I3 p
}
# O4 K2 W a+ J o* b" \$ j6 @! ~% _1 i+ H
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 H* B4 A3 H2 K9 H: {6 H7 ~/ q( A
{. Q9 `" E' N6 k" d( H5 m- i
switch( nID ): c' \$ ]( K" b' Y. z. P
{
9 ]# J1 H, r5 v& L7 W; z case WIDC_BUTTON3:4 `# Q/ O: K9 B# T
{
( Y% @+ h( _/ k. t- F bStart = TRUE;& S7 i. d ]4 A7 G+ ] w7 d5 Y& ^
break; h: r4 N2 A- @1 a# L0 n
}
/ w q! ~. I& `3 `! O# \6 Y case WIDC_BUTTON4:( ?, q6 P2 \0 `
{, m7 J# {( A7 w4 w9 e5 ~
bStart = FALSE;) J9 N. H" L2 D# Z5 e3 S
break;+ [/ `: h, P3 L( x' }& _* o% V
}) N X. c; W% O2 R! Q Q
}- j& j: J" y$ i# N9 _
return CWndNeuz::OnChildNotify( message, nID, pLResult );. w; d; `7 o: ~1 B* S+ L
} 3 D& V. H& u; I6 b1 B
void CWndAutoFood::OnDraw( C2DRender* p2DRender )) R6 ]& b2 L- U* s' Y% _
{
( @" j( D7 W5 t/ _: r0 _ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 ); A7 ?) H$ @$ f8 e5 B/ ^
if( bStart || !m_pItemElem )
- |" @5 ]* u( e$ b, n# J' h' e {( v( }" f. |9 M" i; m* A" d4 e) {
pBtn->EnableWindow( FALSE );
. A6 g: {4 O" L+ ` }else; X( ~ }) X% v, c: C" T
pBtn->EnableWindow( TRUE );
( _# F5 H2 M' r0 L if( m_pTexture )
. f' C0 N, t) [ {
! N& f# }; y; o# E' b, q6 ]1 Y1 a7 k LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
3 g2 i I# K! f/ E# J9 a! e8 h if( wndCtrl && wndCtrl->rect ): }4 Z% ^' f! ~ U6 e) W! s
{7 l: E! C! {& X* @
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
- H* q1 a' U. X! F. {5 O- O: p }
9 M; J) n# R$ K3 O0 `: \6 t0 I }, \. y& {. e( E1 [ _- [
}
, n7 W) X3 W) P8 T+ K! f8 i( H5 D" I# z- H) T @; s8 J
BOOL CWndAutoFood: rocess()/ V3 A$ k0 N# y& G. S& G3 ^6 z1 g
{
' o$ r' p) C: s7 u6 p if( bStart )) W0 E! D5 ]; R4 @3 e- [
{
+ v2 A: C! K) q if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
) c7 U G9 M7 i( f {: }3 K4 ]6 o% a5 I
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )$ x% P! u3 b3 V1 {, T
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. w$ o5 X' e& {' q4 t
}else{
2 d _2 d4 I, n& y9 U bStart = FALSE;
0 V& S/ I1 I. v6 R* H+ ?! O3 H# ]) s m_pItemElem = NULL;
" \, J7 ^: R6 V0 L }$ v0 u- e; E3 p- \/ \# X
}
; v% S$ O8 A$ S) W return TRUE;
3 T2 ?) ]. K+ M}
. @. k" D3 C" G! V) E5 V: p$ V8 r! K# c2 ?
登录视频废话:* M; B! k. V$ h+ P
尾翼:
& K1 g4 f, ^& F: X+ a1 \. W: U# h# D
代码:
4 A- r* n0 H1 q6 L$ |
: {" a4 R: N# }% g# c9 N6 O* [5 c1 Qvoid CWorld::SetLight( BOOL bLight )0 B, F9 E) Z, w" _+ f- A( M/ d2 Q
durch
0 L+ b8 S& i7 U) wCode:
2 e K) G5 l$ {+ }0 X) C1 j- ?void CWorld::SetLight( BOOL bLight )1 S/ }; F) y) }4 Z2 i
{
6 x P2 Z3 Y$ u //ACE("SetLight %d \n", bLight);- d* L) @& N" a
; T5 S7 n6 Z6 h$ x, @#ifndef __WORLDSERVER . ^& M8 r. @7 c# n3 `9 T; k
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
8 D) w; L+ S! c CLight* pLight = NULL;
9 x$ j% Z/ v% N/ `: r+ d7 A$ d1 ~' A U
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );- j& y$ P& L, p! c
! Q1 _8 B3 w* Y. o ~ pLight = GetLight( "direction" );! r6 s& F* |- k, j
* X( D' c3 J8 k8 Y- a#if __VER >= 15 // __BS_CHANGING_ENVIR
f/ ?$ ^8 r9 r) i/ G if( g_pPlayer ){. g7 n8 J" Y4 K$ T* s4 k
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );) c8 Y, U% h- f4 O$ v/ P5 n
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!) i6 x1 V% J5 J( d# [* R
{
, W! k& m! {! x1 h if( pLight )/ I' Q6 d7 i) T, E0 g
{
8 \% R: o; m+ P. w" a( a pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
$ k9 O; O0 ~5 b7 Y8 L6 w pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
$ {. s5 h" P, u pLight->Ambient.b = pInfo->_fAmbient[ 2 ];: B# |5 o6 z9 m: B3 O: m
; M# T+ x; U- J6 |+ z) z pLight->Specular.r = 2.0f;- \; U5 l$ P, }4 b( C& ~, C8 O( j, Y4 S
pLight->Specular.g = 2.0f;/ X$ W4 E- s( ^; f: v. f
pLight->Specular.b = 2.0f;
" }; J- ] V& ~; d: h ' ?: s W" Q+ `2 ?+ N `, Q# S5 I1 w
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
1 x% z. Q8 V; M% w+ U, X pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];# {& ~' y* W! A- H0 g0 g0 q
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
' f, F( F1 l" ?9 r4 o - q+ S, M- z- ?9 m
HookUpdateLight( pLight ); % l% L+ V6 I) ]0 ^
8 }. I7 }6 O( v+ K$ S/ h7 q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ z7 d8 g+ D$ g0 ?
4 i2 U8 J# Z( p+ m pLight->Diffuse.r *= 1.2f;. s: U7 j7 B, s1 ~" u+ ?8 j
pLight->Diffuse.g *= 1.2f;
- a X C9 r3 T* B; m, y pLight->Diffuse.b *= 1.2f;; }( n+ |. t! D# \# k3 o a. w
, V1 ?2 [; e4 D) v( B% q3 g pLight->Ambient.r *= 0.8f;
$ ~$ X) T5 Q/ z6 a9 j* X pLight->Ambient.g *= 0.8f;
" z/ r3 ^+ K8 E' b+ V4 { ^6 l pLight->Ambient.b *= 0.8f;' E! }' ^! R0 \! }- K1 O" w0 D
# y: ^7 w/ K2 }) a, \ memcpy( &m_light, pLight, sizeof( m_light ) );
/ L0 G: I- M. Q( R X& W1 G3 m2 I) b9 D
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);* z/ G4 C& ]3 P/ I, s2 I" X
D3DXVec3Normalize(&(vecSun),&(vecSun));0 ]- v5 }$ l0 L: q7 Z& @7 q
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* L" t1 k) m% a' h4 X7 _) ] pLight->Appear( m_pd3dDevice, TRUE );
# s; t. J3 Q+ M - a* P; t. l6 e
DWORD dwR, dwG, dwB;; l k! [' U# }5 @9 a6 L
dwR = (DWORD)( pLight->Ambient.r * 255 );
/ j; C) Q" c6 i2 c& h2 d4 e dwG = (DWORD)( pLight->Ambient.g * 255 );4 A; ?; m! ^& w, G+ W A. P% ?
dwB = (DWORD)( pLight->Ambient.b * 255 );' z" ^4 E2 g; {. g
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
1 b* p% b" g' |; f }
8 a- E& O3 ]6 }* p( [& n B }
+ t6 T* l5 q2 N$ _0 A }
/ z0 P3 i7 w6 h else: F, }/ {( Z7 J& U
#endif
, }9 y: C8 c+ Y# a
3 N7 G9 v, s6 Y" }9 O if( m_bIsIndoor )5 d3 F6 `& ]& Z; e# Y2 |- t
{
# b* A _4 f" S2 b$ @ if( pLight )
$ |4 p8 X0 u! z6 D$ M8 N% v2 y { : Q& X; m( Q- Y2 E" c& T
// à??μ oˉè*
, l8 V3 T2 s" [5 b3 y4 a1 x pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;# h0 s! f# f) p2 `4 l* A
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;& j& `4 Z) `6 R& H' m( z
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& a5 `. P" B, M `* e n
8 Z$ F* |5 r! C/ ^% P( N( i // oˉè* ??à?
! z) s9 k2 K8 ^" r, f3 b pLight->Specular.r = 1.0f;+ T( Y% X0 j$ r# h" m3 |$ {, y
pLight->Specular.g = 1.0f;7 I7 k/ F0 s- H1 b4 Y1 @% g( }
pLight->Specular.b = 1.0f;
0 D% @5 _+ K/ k! O2 J // àü?? oˉè*
! T C( ?& a* @: u pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
. i& p8 o' `9 }5 K7 D pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
) b# s0 y# L1 i f# r5 | pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
0 t$ B3 g. f6 D& [9 f: v
! E/ o9 D! H" [4 A8 n if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 f9 h% [6 X7 f0 @! H {# X& a, u6 u' d. T
pLight->Diffuse.r *= 0.6f;$ M6 @) s+ @* _) w& r
pLight->Diffuse.g *= 0.6f;5 E% O4 B2 {) d) j3 v
pLight->Diffuse.b *= 0.6f; q/ r1 J* X: ], n3 V
pLight->Ambient.r *= 0.7f;' K! a0 X+ {/ K. o5 Q& X
pLight->Ambient.g *= 0.7f;, q# c2 c" e9 ?) W* @- G
pLight->Ambient.b *= 0.7f;) ]( w- d% v0 {, ] g% [
}
) D2 N# X/ X( \
. h1 n+ O* ~- f* k W#if __VER >= 15 // __BS_CHANGING_ENVIR
2 s* i& n4 i' x# j' S0 K" U* I" G8 G if( g_pPlayer )
. B" f1 r D/ S7 y HookUpdateLight( pLight );4 J/ n& H' J; k# W" ?& V w! h
#endif8 H' s' \0 Q ]" e( _
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( F b$ O- D1 b( }* u
6 r# {# i( Z8 g5 b
pLight->Diffuse.r += 0.1f;
9 Y8 s i! r/ F) H pLight->Diffuse.g += 0.1f;
6 W2 U# s b7 D7 P+ _* _ pLight->Diffuse.b += 0.1f; ^- x8 \4 W. ^. P3 w: O- e, }, p" [" r
// oˉè* ??à?
3 p, r! X3 y3 j$ C$ n+ J1 u) @ pLight->Specular.r = 2.0f;! g B$ z! D! I6 ?! o* I) m
pLight->Specular.g = 2.0f;( z, B: }+ L+ b" u6 R7 n$ s( t
pLight->Specular.b = 2.0f;/ Z8 E! ^+ w% H
// á?oˉ % G+ [" q9 L3 W8 |& _! ~
pLight->Ambient.r *= 0.9f;* Z; x# ^7 U& [& I0 [
pLight->Ambient.g *= 0.9f;
8 i2 M$ X3 A% ~9 |3 {. V+ k. u pLight->Ambient.b *= 0.9f;
; S s1 |" j, l6 P0 c2 A f2 A& X- a) M. h
memcpy( &m_light, pLight, sizeof( m_light ) );/ l- g* P! T9 E7 M: ?9 t
4 X( W- o. O) [ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
1 R- r" i5 d1 D9 x! ] pLight->Appear( m_pd3dDevice, TRUE );
- m9 S6 S- V6 [$ S- q& j
# c* x, {- ~" f" ?5 j! T DWORD dwR, dwG, dwB;1 q! H) n& ~' f7 q' c
dwR = (DWORD)( pLight->Ambient.r * 255 );% |+ N G3 b4 W5 {3 c5 T
dwG = (DWORD)( pLight->Ambient.g * 255 );
* s5 G. r) l1 P+ s! S dwB = (DWORD)( pLight->Ambient.b * 255 );
% W9 r1 n# P3 I9 O2 e dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' i2 X8 ^. I' E/ M. k6 Q
}9 q* X+ {! F" y* b
}
7 z3 }' O$ P. n, \7 b else2 T" w' j$ D V- j/ m) r! z+ U
{3 F) K4 r. Y' ~6 v
if( pLight )
9 ^" Y* }+ p7 Z8 r/ Y {
9 \& |' \1 \" F ) T; O6 Y9 Y. b2 T+ L1 o2 s. w
int nHour = 8, nMin = 0;
' P n: O4 G1 |2 D7 W+ v8 {% A9 e #ifdef __CLIENT& h& D9 u6 B7 ]4 y( T8 H3 r# H+ W
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
1 S( F% Y7 C, y8 h; A nHour = g_GameTimer.m_nHour;+ R9 I0 z0 n( K- ^0 D: k- r
nMin = g_GameTimer.m_nMin ;
# c" M- X$ T; e6 Z! i& o1 v #else7 F( Y2 [- M9 N0 c
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
1 @& g3 D! b% v3 \1 m if( m_nLightType == 1 )* b6 a5 H4 G7 j. @' G
nHour = m_nLightHour;' X2 g& G% h" ~ P* z1 `" X
#endif3 ~ y4 X. S, e2 u! o* D
nHour--;4 M; E" C% ~( R/ }( q
if( nHour < 0 ) nHour = 0;
. s, [: M( m% b( T0 u3 o# } if( nHour > 23 ) nHour = 23;5 k, { x; Y& q2 u4 C- M
' M! T8 ? {0 { r: {
//if( m_bFixedHour )3 _7 c* O+ I" |8 J. e
// nHour = m_nFixedHour, nMin = 0;- j8 E" a7 d8 c K& i/ ~4 t
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];( B; T. V/ w$ e! a, i
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
. M9 f6 E% t- H W& l/ X% ]) ]4 o4 e) H; W1 v; G' v* _% u
//m_lightColor = lightColorPrv;+ @' N% e) J* v8 T8 ]- ^# I* |* w$ a
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;# t: ?/ u1 p; l* n) `
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;# ~; u6 a2 Z9 E/ x9 w4 ^
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
& W/ F I6 M4 U" G" {, b lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
& ~0 @2 I3 c/ l& u9 k% C lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;/ w3 L: a) i$ s/ Z- \: k$ p: b
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
3 _% o3 s7 H, {; t# s, L& F // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
9 Y( p* O: j @, {' t. @( c0 v
/ Q) L, m: `% W0 ^; s // à??μ oˉè* 9 f; b( ]6 H- q; F% Q. D
pLight->Diffuse.r = lightColorPrv.r1;1 }* d; J, [$ l3 F& T) m
pLight->Diffuse.g = lightColorPrv.g1;
* N7 Z- f6 O3 h" b; c" C pLight->Diffuse.b = lightColorPrv.b1;& D& k9 H( L, C" ^
// oˉè* ??à? & @) o% m8 d i F9 K g
pLight->Specular.r = 1.0f;
8 ~( g5 Q9 U. P) |: H+ b2 P: m2 U pLight->Specular.g = 1.0f;
$ N4 D3 N% I4 T, E- C pLight->Specular.b = 1.0f;3 g0 k- W' y8 Y" e8 d$ ~4 Y
// àü?? oˉè* 7 C- a# A+ l; _/ a; D
pLight->Ambient.r = lightColorPrv.r2;" {! q( l* n" E9 F2 I( C$ n
pLight->Ambient.g = lightColorPrv.g2;4 \; u% ?$ O# [! p) H
pLight->Ambient.b = lightColorPrv.b2;
4 Z) l7 Y- s# }& N. a0 H$ Q
\5 c5 p/ j! F! x& u/ A if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??. z1 t& o* `; n
{" `$ y8 M ~5 a! W+ b$ Y
pLight->Diffuse.r *= 0.6f;
9 W) M9 e7 X; M pLight->Diffuse.g *= 0.6f;
( e8 ?6 ~) d' h- Q3 k4 C pLight->Diffuse.b *= 0.6f;
4 o% Q% C6 i$ X( d! E" \6 o [& r pLight->Ambient.r *= 0.7f;
$ d I6 B5 W1 w pLight->Ambient.g *= 0.7f;
7 q, w& p: r9 X! |$ G9 Q K& } pLight->Ambient.b *= 0.7f;2 _" p* O. P3 h$ s1 w/ r
}- E7 V: H2 k7 ~
. n* m0 c( T6 [0 { J# ] ?
#if __VER >= 15 // __BS_CHANGING_ENVIR) z3 n0 C0 ~5 T7 m
if( g_pPlayer )& s4 T0 Y. W+ c4 w0 B' R# q1 J1 Y$ W" v
HookUpdateLight( pLight );
( z- p" u- v, Q: c E9 \6 {#endif3 i9 p' g- M A4 \- q% s
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& b+ [; B) W) u4 \2 ?' `9 t+ }: ~8 L. P
) e" d3 U( w# I E) F: D& |#ifdef __YENV* U9 L/ Z. y! j1 v: x
pLight->Diffuse.r *= 1.1f;; Q3 [+ w; M' G, M
pLight->Diffuse.g *= 1.1f;
# {: G: H( l/ K0 u1 J" B) ?9 k pLight->Diffuse.b *= 1.1f;3 {3 p! J+ K7 Z; S( A
// oˉè* ??à? ! |. P1 i( Z/ w3 ]- i; _* f8 n
pLight->Specular.r = 2.0f;' M4 B7 {/ H* k. K$ }- y+ M
pLight->Specular.g = 2.0f;
" Q! o5 F/ R' t4 q& H# R. @ pLight->Specular.b = 2.0f;4 x/ G4 p$ u) t/ y
// á?oˉ 5 X) T% O( @% }" `; [' ]& G) O! j& ]0 z
pLight->Ambient.r *= 1.0f;2 `, _5 b+ k7 U
pLight->Ambient.g *= 1.0f;8 j* R/ e" s: z6 V' D. h
pLight->Ambient.b *= 1.0f;
, t& F/ W( p0 Q/ U2 C# h6 W#else //__YENV o5 ~ C) t$ Z* l5 F. F- c4 d
pLight->Diffuse.r *= 1.1f;1 N' f2 \+ j. s& p" V" P2 \% M
pLight->Diffuse.g *= 1.1f;
5 C1 b8 o8 D" n. Q; f. D, H pLight->Diffuse.b *= 1.1f;, V/ ?3 O8 `- o: _% d* u9 B9 r
// oˉè* ??à? ; [2 \( ?/ M) ]7 Q0 P
pLight->Specular.r = 2.0f;% J* x% v( C$ Z. @# A
pLight->Specular.g = 2.0f;; C" x3 Y1 @9 A- o; \& y' @' o
pLight->Specular.b = 2.0f;8 p% Y% Q1 o0 ^0 Q2 g, g- L
// á?oˉ
, A2 o6 D- Y8 Q# s$ x pLight->Ambient.r *= 0.9f;5 @6 r2 c( ?6 v5 ]) h
pLight->Ambient.g *= 0.9f;
2 V. _4 n# M8 H* X3 `0 E; P pLight->Ambient.b *= 0.9f;
$ B# g0 w! Q2 ]#endif //__YENV
9 A& I8 a) l; o6 b9 f
/ g/ E% \- O4 Q( |/ t3 q, F memcpy( &m_light, pLight, sizeof( m_light ) );7 _. z6 b0 V: I: [. D
# r9 `# B9 {0 i- Y& O- n
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);6 t3 `# x, `) x% [1 }+ I. ]. M
D3DXMATRIX matTemp;
/ K( H0 i1 k+ @# A( M static const float CONS_VAL = 3.1415926f / 180.f;3 P D9 |7 W" m' W5 e9 m+ ?
1 z$ z1 @) ~5 X, D D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
8 p3 G. ], `& h9 g6 Q, l D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);- o9 Z6 w# `( `
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
7 s, c4 t. x: H9 L$ H1 p! M3 Q4 | pLight->Appear( m_pd3dDevice, TRUE );
2 }: y6 w, m7 q; [% u/ Z+ h
1 o* w& I# \. o, M9 V7 Q- S // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 O1 O) w7 J) P3 E# N3 ]1 ~ // D3DXVec3Normalize(&(vecSun),&(vecSun));
" |7 Y) j1 O" J9 f/ }0 Y! P- U w // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
g8 L4 m! g1 M% C/ B
, b3 E4 R4 G: |6 q0 `+ m" D l, n) w DWORD dwR, dwG, dwB;
P6 `" I* U2 w! t2 W/ a0 A% Y0 k dwR = (DWORD)( pLight->Ambient.r * 255 );( B7 ` t1 W$ c- s2 F4 r3 B0 L
dwG = (DWORD)( pLight->Ambient.g * 255 );
& l/ w- U- w! |" v" c dwB = (DWORD)( pLight->Ambient.b * 255 );3 N1 Q3 W, ^+ s/ v; V
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 4 x( l$ E* Z5 T h( `4 y3 ^. g0 h- k
}
0 }% ~/ G' [0 b) T' @0 u }
" G; @* j, x' N# K: P( f$ n1 b: o1 A
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );% ]; y# k) Z7 ^
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) );
6 ~3 r( N! q) M6 h- i! H ::SetLight( bLight );
9 ?) C5 h4 k$ M5 W$ j2 {" n/ R7 i6 |; x
// ±ao? ?D?í???ó á¤à?
0 U2 f% F# W/ w( z m_pd3dDevice->SetMaterial( &m_baseMaterial );' r' N5 ^! ~9 ?* d6 W
" @3 E5 X* R7 R f
#endif // not WORLDSERVER
5 m' O, W, g5 |1 n# G}$ l" n; a0 p8 ]; o8 l+ D/ _" _
并更换3 S4 T5 p: T8 ^; ~2 c# p% t
Code:
* r g& Z. x+ D4 M__FLYFF_INITPAGE_EXT( B$ y& Q2 p& P t1 r, X$ d9 P
定义
1 j/ V& W! D1 y7 G5 _8 d, B
; _! Q9 v6 y2 ?2 A
9 L) }1 k2 F& k) t3 [/ X9 K! s0 r/ l0 V
& [- k& c0 t1 ?8 \" O
现在终于删除我的狗屁加速...
& f# N2 o- I5 h+ k
/ C; }! b8 _! H& M0 O
& H: Z @ Z- a) c' w! V; _ h$ ~/ f3 Y V% V
|
|