|
|
食品车:2 Q: H* S# O5 X- A2 J$ s* w5 y
尾翼:7 A1 m9 G1 K' l, p4 E- S- D
* K h1 V! V; X i
代码:
: o6 A8 ]- V8 h) rCWndAutoFood::CWndAutoFood()8 K! R: ]! L9 A8 Q
{; E0 f2 O9 k% g
m_pItemElem = NULL;
# g: L" _7 P2 E+ b m_pTexture = NULL;6 E, u7 ^" o: ^0 a; X5 \1 U" X$ p
bStart = FALSE;8 ^' L+ r1 {6 G4 v1 O; W
}
) Z& O2 f1 f% }$ `& W# ?$ i6 R/ H7 u& {9 r
/ }7 z. g$ r! u1 h+ ?5 R# ]CWndAutoFood::~CWndAutoFood()/ h: r3 o* ]% ?, A
{
5 t" `9 G- g/ @+ A0 l AfxMessageBox( "AutoFood ist gestorben " );' T2 z6 T& O) s6 m
}
% @2 f$ Y- d5 GBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
. Z5 i5 j( y0 L4 B. D. b{
/ z( [' r" a* T0 M% |5 K/ n return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
1 m) h0 W. f3 I9 b}, y- W6 r' c% C, b, r
4 o1 G9 a# Y, T$ ]BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
) P, ~) D, l& S{
, l x2 D/ p ~$ @' Q/ s; u$ R; j LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 M+ C+ [- {, ^) I( y0 F CRect rect = pWndCtrl->rect;
! u5 J* F/ F: p9 T; `% A/ | if( rect && rect.PtInRect( point ) )
$ \8 {# Z n: D3 }7 N/ W% r5 p; c {
/ b( j: q) \7 ^9 [2 B$ R9 s1 e! g- ? CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 ]% |3 t! H9 l) y1 } if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )' y" P: l* p3 Z2 ?/ ~
{% y7 F: U/ u# B! d9 d+ W6 H
if( m_pItemElem )$ w% `+ [3 u3 Y4 q7 B$ P. p( ^
{4 y& K; ^3 s: ]; n% R1 k, |+ S
m_pItemElem = NULL;5 l# e7 d: }6 H9 N
}1 d& t s& x. r: h
m_pItemElem = pItemElem;
+ f' X- y& M+ M1 x/ ^, d m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! L+ B! k; L6 o, M }else{6 |4 e1 F; | h5 Z: l$ t
SetForbid( TRUE );' G' J) P( r! ~8 z0 U; S
}6 r. s1 z. m. i/ R1 {: D
}else{; s. V) i& o. g! {, V& r
SetForbid( TRUE );2 ~( {/ B- C1 h
}
& ~4 q6 u) h6 p5 {$ m& c return TRUE;: l) ?4 D& j8 y5 i
}
$ s/ P7 t ]9 c
z1 L" b. ?/ v9 E! D$ T& e2 [BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )6 M. c `8 t8 o( e- ?# _
{
- q9 |7 B; J# E. n) l4 A& ` switch( nID )
: G& N6 H' i+ W% j6 p {2 M# I d; m. z5 q- Q
case WIDC_BUTTON3:9 b) n0 E. c" n* m+ q
{3 o$ r; _ c7 L7 b/ H4 t: m
bStart = TRUE;: A7 _* |# L! g* ?$ X0 I4 Q5 l
break;8 k5 s) _8 b( N' J7 S) p
}7 g# I. Q: ?/ ~/ i1 m
case WIDC_BUTTON4:
1 K0 s @- x M" E. N- C* [ { p0 O4 B) E2 k) q t" W
bStart = FALSE;
0 g% T7 B( X! Q9 ^# I! f8 k break;% B5 b( t0 L. g) p0 s4 D
}
5 `& q9 M8 Z! l6 w }
) L, t; y2 ?5 _# N$ ]+ u7 b return CWndNeuz::OnChildNotify( message, nID, pLResult );
7 [( w! q# b! o4 O* @4 U}
4 q U& O0 R L/ r& Hvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
! V. g! b x: ]; r{& W$ A$ Z) B" c! W- g- T
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );, e5 v; B8 e; v8 \
if( bStart || !m_pItemElem )
. F% {* ^3 h/ O" c) [" j) X {( `, P) X! T6 q* E; Q8 q+ s
pBtn->EnableWindow( FALSE );
" M1 k3 P) p. C4 R6 ^7 } }else
% C+ B' K4 c& |( S+ H pBtn->EnableWindow( TRUE );
/ n" i$ j& s: Q1 E8 e* D% H if( m_pTexture )5 c9 C) b7 g( \! j# O. X( N2 K
{$ p# D& l7 [4 G: p- V1 I) A
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
M7 B9 s2 E. _4 O! o3 _2 m: r if( wndCtrl && wndCtrl->rect )
9 T( y9 }/ E% y2 ]2 f {: z8 n# |6 P' X" u9 p
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );* W0 y7 {, Y3 C; v: V
}
- E) r: N& ?+ H g$ T }
6 ~% M9 b+ ?: _}
5 {' ^2 ~5 i# R: `# \1 h4 o- v
BOOL CWndAutoFood: rocess()! ]% D( K$ Y# t* x8 o9 `
{
$ L/ C7 B8 u" a1 \0 O) H% E0 ` if( bStart )# o. ]# o- X0 X k- R5 H
{" a% _) b4 V2 \$ F" L0 ^) s
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ), O Y; u! U' t: p' F
{
6 [6 U- S8 \% D 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. Y8 i: o. H3 @8 i# m
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
) {1 I! U" W+ S: d7 y) C+ T9 Z }else{' u, c# Y, F Q" _# T$ D
bStart = FALSE;8 }" u) h7 T" P7 ~6 q
m_pItemElem = NULL;
$ `( R |; @/ c- M }
/ s$ Q7 i2 T- e }% s$ v3 w$ T* C3 e2 w
return TRUE;8 p, K9 N1 n6 K$ O/ {- t% }
}
& [4 f l3 i5 d) M% Z9 _+ O$ `
2 u- ~: [5 z; v6 H5 e7 v/ z8 X登录视频废话:
+ i1 g: h& S) q5 r& e尾翼:
' Y+ _2 `1 l4 y) }
5 {4 a/ ~7 n6 F% V8 ^' l代码:
0 {7 }% Z' B# u) E
# h `+ O1 k' _1 {9 |void CWorld::SetLight( BOOL bLight )
3 d2 \. ~) c9 c+ Zdurch/ B7 T6 d V# {. M. m
Code:4 q8 z9 J1 t7 W3 w
void CWorld::SetLight( BOOL bLight )5 \! v0 |1 u& Y" }- Y
{( S0 P1 w8 ^+ `
//ACE("SetLight %d \n", bLight);4 X8 q& b9 X& }3 o: \9 z9 P5 T" p
2 c8 q% R! j% W" s1 k; E( x* u- N
#ifndef __WORLDSERVER
3 u4 `6 g1 F* K$ x0 v$ ]: ?# |% a DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);- v: |; s5 k/ ~) H; Z- }- e; I
CLight* pLight = NULL;: k. \$ f/ w' n% |( e4 q- \" f
. l i! x* o- b9 L. J$ F
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );; M7 m1 R$ _0 \) Z) U: j& Y
+ H/ A9 R. q: e+ K
pLight = GetLight( "direction" );4 U! E$ d. D6 i
' V: @; W' f4 }8 q" m#if __VER >= 15 // __BS_CHANGING_ENVIR* m$ z: S/ o+ x% G' Y
if( g_pPlayer ){$ L0 A+ \! ?# J$ c* x
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );; d. l* ]! [: v3 Y
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
% a, N! b7 w7 f3 U, l0 [0 t) z {) F# P- D, ^+ I1 x$ T0 b
if( pLight )
0 X9 s4 X( U# a- y. F* n8 u {: g, J4 Y' |" B; B; Y
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
1 J) V9 Z3 C9 i pLight->Ambient.g = pInfo->_fAmbient[ 1 ];5 w, G* e; c: T* Z( d | \" a
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];9 O8 C( q$ X6 g0 U; w5 h
( E/ M7 K& L% d; l6 ?0 J pLight->Specular.r = 2.0f;& F: E+ a7 S% `2 `
pLight->Specular.g = 2.0f;8 s) v6 R, P8 e, r. M
pLight->Specular.b = 2.0f;) G0 a6 n6 |5 v/ A- ~& V' U
$ \- D7 \3 i A I& I0 q. e/ [
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
4 c0 ]) w7 z a! O" Y2 l pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
+ C' O. b1 ? v% k! S5 Q/ ] pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ]; N! Y4 w$ I v. H. q* X
: c$ h: D! N3 h/ e( L
HookUpdateLight( pLight );
! w$ y: y2 @6 H, L- N$ W1 x b# B
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 I1 W% U( ^; A7 m4 {# v& I+ v
0 Y6 f& p9 g) T3 r9 u
pLight->Diffuse.r *= 1.2f;+ P5 ~: B3 B* f
pLight->Diffuse.g *= 1.2f;
9 M6 a# v- O1 \, W! k0 q7 c" x pLight->Diffuse.b *= 1.2f;# S* n1 l& |) p/ a4 z, |
5 z/ A6 ], [+ c9 ~5 T+ O8 g pLight->Ambient.r *= 0.8f;
! \( n- y2 S0 j5 S( a' L pLight->Ambient.g *= 0.8f;% w9 |: Z7 c3 X- ^& z
pLight->Ambient.b *= 0.8f;
% l& f4 Z8 }7 a8 v- n; h) a8 v / v2 S- J+ z3 K3 s5 m+ M; [+ z
memcpy( &m_light, pLight, sizeof( m_light ) );
# ?* N9 v+ T! } Z b% T( b. J1 g0 j4 X) j$ h" z
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);* M* v3 Y$ [0 Y$ l3 j( ?8 p
D3DXVec3Normalize(&(vecSun),&(vecSun));% d: M% ~( H( x( C! a
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- o1 T7 @3 Q& E3 Y3 z6 ~3 c pLight->Appear( m_pd3dDevice, TRUE );6 @4 |$ U9 Q& H7 Y d1 f9 ^5 ^8 Y
7 n" n, ?+ v8 C% L. h" ?% ` DWORD dwR, dwG, dwB;
! Y6 d$ U9 k7 `( K& N dwR = (DWORD)( pLight->Ambient.r * 255 );& y: i: V. |2 N/ V
dwG = (DWORD)( pLight->Ambient.g * 255 );
7 d# T5 ^% s* Y3 o3 T6 K dwB = (DWORD)( pLight->Ambient.b * 255 );! }# i* R! v- c; a1 W
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 |- ~; g& B9 P: I
}
! P1 \0 k2 @" i' p$ `1 I }
4 a. I' W# a& @ q5 v$ U }
( a; g, {2 X! c: {2 [- i3 ? else
+ z" g5 R1 b: |: T; ]; ?#endif 3 M6 `" C6 |/ d* w. m# W0 ?# N
$ m! D* U) O& L. L& J- P: o
if( m_bIsIndoor ); b* W \5 L T3 p9 C' V
{
0 V2 t, ^6 ]* x if( pLight )* X; f/ V9 c5 r7 T( W' N0 @7 q+ j0 c
{ 1 H& X1 w. G$ R4 ?
// à??μ oˉè* " z5 l( Q$ k! L" [( q, k3 Z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;, _/ z) X3 G4 L) y( A
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;: E' K) y% _/ U# g. W$ A
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;9 E1 M) d X) \" \- v0 j
9 l( T. q: L8 C X7 g // oˉè* ??à? 4 ^, b. w# h! B7 W% d5 [: s5 o
pLight->Specular.r = 1.0f;. z% H* U' f' X8 h
pLight->Specular.g = 1.0f;. t8 P6 g+ ]8 d% Q
pLight->Specular.b = 1.0f;0 I& b3 F& Z- _ w3 t
// àü?? oˉè*
& f0 ~4 I% Y2 @) w9 ^7 E& D" s& J1 B pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;+ K1 Y9 p7 [/ e9 B
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
( `: z& [$ I7 |/ R( { pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
; Z# x; i7 R+ K0 l2 `0 s. ]2 q4 u- @+ u ?
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% d9 y% p- O" D
{
+ q5 s$ n. K; X; n& T) Z, w pLight->Diffuse.r *= 0.6f;+ C- g$ ^( ^! s9 A
pLight->Diffuse.g *= 0.6f;9 q- f* T& X( @2 _
pLight->Diffuse.b *= 0.6f;
4 n! n$ p; m% y pLight->Ambient.r *= 0.7f;7 q' |- N" }) K( K- w
pLight->Ambient.g *= 0.7f;7 O& _ X0 i; K' w! r
pLight->Ambient.b *= 0.7f;
' \4 T% P8 J/ Z' ?( X }/ z3 I. J! j0 ~. x5 e' j
) b6 f" u( a& R1 G( @5 }
#if __VER >= 15 // __BS_CHANGING_ENVIR
, }* \0 u8 ]5 s: |! [# c if( g_pPlayer )( Z8 k' \7 f, d! T3 p z: i8 y
HookUpdateLight( pLight );
' C0 ~* o& e2 ~% k+ e" Q6 r#endif6 _: Z( N6 L( y6 o U( m3 {: R
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 x1 G# b/ a: x7 t8 N" n& p& V
' S, B$ H r. f m pLight->Diffuse.r += 0.1f;2 h" n1 `4 S7 U! t; {0 b
pLight->Diffuse.g += 0.1f;, b- j; B0 h! l8 x, t# G4 t2 k$ z
pLight->Diffuse.b += 0.1f;
- r7 K z- u0 d( | // oˉè* ??à? * L5 K' z% ?% y) u( Y/ U9 b
pLight->Specular.r = 2.0f;
! a4 f- L0 R% W! T- A( A pLight->Specular.g = 2.0f;
4 D0 ]$ G" V! ]3 o5 X; j+ N8 { pLight->Specular.b = 2.0f;
/ p4 t8 d8 r1 [$ M7 h6 f) i( W // á?oˉ
9 e6 }2 b7 k8 k pLight->Ambient.r *= 0.9f;- u! r. z+ @+ ]0 Z% O2 G: ^/ F
pLight->Ambient.g *= 0.9f;
4 p# @7 s6 w# ?" {; V pLight->Ambient.b *= 0.9f;
: v3 o& P) f: e% \1 N: a' ?
4 e- S% f0 D* ]. t memcpy( &m_light, pLight, sizeof( m_light ) );; p/ C0 _% [* e( l, c" {
+ t( S, ~% Y e" w7 P. f: q" P pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );8 h; F% _. u4 ]) X* r
pLight->Appear( m_pd3dDevice, TRUE );+ c$ M' I1 z: I3 s" ^4 Q
: y/ S- W n& a6 F
DWORD dwR, dwG, dwB;9 S. `* R) V) x7 {
dwR = (DWORD)( pLight->Ambient.r * 255 );
, c2 K% M, a+ C1 g dwG = (DWORD)( pLight->Ambient.g * 255 );* c/ E0 P Z) K
dwB = (DWORD)( pLight->Ambient.b * 255 );' v4 ]- f" h7 }( i! P- O$ x, F2 f0 [
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ o3 j$ M8 l8 G" t% b' S
}
# Z" F( G3 ^: t( t& x$ F }7 Z6 }4 n# R% t% @( s" A/ [
else
( V: s: M. T! x' |2 z {
8 Z. e3 E1 |. `9 Q if( pLight )) Q1 W; X2 W% X) |4 q+ k: [
{
5 k6 O$ x: n) h( B + E6 p1 W- E" k5 W+ q
int nHour = 8, nMin = 0;
" P% a. O& h$ P1 Z$ y- H8 ~ #ifdef __CLIENT8 s" G: D v. `; _- t+ E
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 4 W5 u2 k% Y& g$ h0 R( o) W
nHour = g_GameTimer.m_nHour;
% Z u& s& Z+ `3 a2 B$ E; R/ t0 Q nMin = g_GameTimer.m_nMin ;; Q; q: A8 b2 E2 L" n) u7 X
#else
# T' t& V: j' x& i // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
3 o6 r- Z5 \# z9 ? if( m_nLightType == 1 )1 \" l4 j3 R2 Z- O1 r% v: V+ P
nHour = m_nLightHour;$ c9 w. f `4 T; z3 ] H
#endif
* y- F7 B0 `5 D9 Q nHour--;
) T" H: `" Z2 n" L+ _# n3 Q" F if( nHour < 0 ) nHour = 0;, M# f! z7 D) {2 f
if( nHour > 23 ) nHour = 23;
& @+ d& `3 C+ r; M [$ h
# n; j. a. z5 \% E //if( m_bFixedHour )
2 v- J, w2 C; l8 C3 p4 C! ` // nHour = m_nFixedHour, nMin = 0;
) m8 \; Q5 X+ f LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' v: G' H6 k- i: @! I- o; `2 v LIGHTCOLOR lightColor = m_k24Light[ nHour ];
; r! ]; Z2 a# L5 X/ L
4 K \' A9 Y3 O+ l3 f% D/ @6 ^8 `" i //m_lightColor = lightColorPrv;7 y) m( M' B5 a+ P( c1 D+ D
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
# l! l( E- t5 `* C lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;+ ?) i6 e7 K8 t" Q' B$ L
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
2 X( G. C9 m x1 }# {1 d lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;8 Q, g2 M+ H6 a2 f* f
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
. i u& Q; H, R# O: u* k lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
# W0 g! ?- \' v; i // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
+ F9 v& D% u* t* [1 d6 b- u( H) t4 n. i+ k
// à??μ oˉè* * E/ H+ \3 a* t: `8 @, J) j
pLight->Diffuse.r = lightColorPrv.r1;
* D% Z: h. S% `4 r' ]7 P pLight->Diffuse.g = lightColorPrv.g1;
# n+ n9 F q" b( _ S pLight->Diffuse.b = lightColorPrv.b1;
+ n' t; \. B, k* b% G- } // oˉè* ??à?
4 i: y; B) W0 g pLight->Specular.r = 1.0f;: I3 X) S% V% t0 b
pLight->Specular.g = 1.0f;
: i- u4 V9 t/ ?8 ?; | pLight->Specular.b = 1.0f;
/ T) y6 A. N* C, v) y // àü?? oˉè* 1 C% k% Z0 ?, w7 m" y
pLight->Ambient.r = lightColorPrv.r2;+ Q( z" n8 c0 I, b- @/ A
pLight->Ambient.g = lightColorPrv.g2;
% w- k: }( ?0 X- L0 a3 T' y pLight->Ambient.b = lightColorPrv.b2;) R: f2 d+ r1 z0 w
/ W5 i$ y) L$ @6 T8 I4 O' |! M if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??." {( ?5 u8 b, a& y c
{
! c5 j/ T( m7 y6 J' l- s pLight->Diffuse.r *= 0.6f;( j# S) H2 F8 N3 ^
pLight->Diffuse.g *= 0.6f;
9 E4 |. w% A x' w pLight->Diffuse.b *= 0.6f;! j# r( ^3 x) q& _
pLight->Ambient.r *= 0.7f;5 `6 v4 C% C/ \" k8 m/ N
pLight->Ambient.g *= 0.7f;
! P4 c: u1 W- |: x6 k7 l- L# U pLight->Ambient.b *= 0.7f;
4 C5 ?+ Y8 q9 Q2 ?3 v! W }
; ], E8 _$ Z: c. ?
0 @# Q8 x* c# @* j( e* v6 O0 |8 r. ^#if __VER >= 15 // __BS_CHANGING_ENVIR
: k% N9 D+ u7 Z) z9 d( G" K3 e1 } if( g_pPlayer )0 I3 p+ [ {+ `" s+ Q6 i
HookUpdateLight( pLight ); 7 F5 P( I" O' m/ u! Q
#endif
' L1 w0 v8 N* `7 y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 V* E9 g) L" B; w; X" [( A
: b+ h3 N9 m' w! E7 \4 ^#ifdef __YENV. e' c4 u9 J: v! @4 U: I
pLight->Diffuse.r *= 1.1f;
1 ~1 Z# Z# t# K! o0 c& f: o pLight->Diffuse.g *= 1.1f;4 k& e4 h& {0 e' z& ?0 S
pLight->Diffuse.b *= 1.1f;: k7 x3 k3 J U
// oˉè* ??à? * I: k" U0 m0 r0 g
pLight->Specular.r = 2.0f;
6 }- _' D+ s8 z ]2 [0 K p% ~ pLight->Specular.g = 2.0f;
0 A r7 h& U! Q# n& M5 b2 U4 C! r pLight->Specular.b = 2.0f;' L6 v* `( P" I- `; p
// á?oˉ # p" d/ P- w( g. u3 {" E- l: \
pLight->Ambient.r *= 1.0f;
# X/ G! q5 N* V1 T8 B" N+ V7 f pLight->Ambient.g *= 1.0f;% v; y7 F% w; h6 U- g) Z7 q
pLight->Ambient.b *= 1.0f;5 q3 U! m0 P3 X; G
#else //__YENV; F/ `6 {3 B% Q l9 z
pLight->Diffuse.r *= 1.1f;
, {3 d0 c$ ?2 p( O8 b pLight->Diffuse.g *= 1.1f;3 O- c+ I# L' ~
pLight->Diffuse.b *= 1.1f;+ y4 M) {8 i+ K+ N, Q/ E
// oˉè* ??à? 2 k3 L2 N1 g% _ B1 ] m
pLight->Specular.r = 2.0f;
3 k3 X* d1 Z. p- |5 c2 m7 _: F pLight->Specular.g = 2.0f;
5 T4 k. E t1 Z pLight->Specular.b = 2.0f;/ |3 D6 P8 l+ r# {/ A F
// á?oˉ 1 p+ S8 m9 [) K0 T0 E6 Y8 _
pLight->Ambient.r *= 0.9f;
2 ~7 D& @ m: }4 K pLight->Ambient.g *= 0.9f;$ I& n6 C* E1 s
pLight->Ambient.b *= 0.9f;1 q0 o$ B. B9 X% r1 y! w( L) j
#endif //__YENV
( w2 _0 ~3 ?; N5 E: Z- H$ G: d: x ) _1 F; b5 ]& m: x; n8 V" M
memcpy( &m_light, pLight, sizeof( m_light ) );/ s$ ]# z+ {( o. l3 k# p5 g& k
. l; x' p& ?! a8 J4 H
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
7 d4 H6 s; X& \( j D3DXMATRIX matTemp;/ K8 {" Q2 G F
static const float CONS_VAL = 3.1415926f / 180.f;4 M9 A: M: G2 q+ I9 u
8 i. X( o6 J, V( l8 k
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
( [* \6 h ?; z3 | D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
) w' u) J. t# M1 v, q pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ) ]1 `! K. I( L6 r l
pLight->Appear( m_pd3dDevice, TRUE );$ o$ M' O* U/ ~8 r2 C' g e
g2 c0 H' g5 y+ b: b; q# Q // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
8 T+ W! L7 o8 i, @# z // D3DXVec3Normalize(&(vecSun),&(vecSun));( {* _6 T$ z$ b* g3 J/ c
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 l r6 w g6 i. _ @. B' M4 u& p5 `$ K, |, [
DWORD dwR, dwG, dwB;* W: p" G7 y# `- M
dwR = (DWORD)( pLight->Ambient.r * 255 );
. W/ n8 t4 l' w/ a' C dwG = (DWORD)( pLight->Ambient.g * 255 );: C2 R6 @, Q: c4 T
dwB = (DWORD)( pLight->Ambient.b * 255 );1 w( W) H' P% X& Z$ k Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); $ u0 Z% @5 G5 ], d
}
, M( {% Q- i. `& w0 R/ T" F6 V }
# l% @, o3 L( R( g" J0 r1 X2 l" P
: P8 `8 G. U6 j" D* s! N7 t m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
2 Z5 ]9 {; E/ _$ i2 g% z2 h4 p# C 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) );
: U& o1 _4 C" e ::SetLight( bLight );
; n" g" j* a3 i% v) M. M! m6 X( H7 C+ s3 }
// ±ao? ?D?í???ó á¤à?
+ A! b. W, S! U' X- X2 i m_pd3dDevice->SetMaterial( &m_baseMaterial );1 ~$ J9 p9 I$ S& j1 M2 r* g
/ [# c$ W9 {3 I' q" E#endif // not WORLDSERVER
7 G' c: B$ y2 z}0 B/ M3 v P7 X1 n. V
并更换
$ H4 Q% l3 Q; l3 D7 FCode:
3 ?9 P |, z" |__FLYFF_INITPAGE_EXT) @; i' Y) _+ Q) ^ P
定义
1 \! j/ Y* M' _/ W: N5 T
+ W$ D- R& j. T7 W9 R8 @) @$ r
0 m1 w! _: _* {# W
# x B2 p7 r9 p" L* T
0 F; X$ s; S$ }: d" c7 D* {: V现在终于删除我的狗屁加速...
* \- F- e5 F3 x3 [2 Y6 X! F- h
% x! n, @* N1 B6 e* G$ |. N1 H" M& a9 ?/ ]; n( p7 k
! I! h' V& G1 P3 l7 \$ F% } |
|