|
|
食品车:) N8 M g. M9 z7 S/ U/ k+ w
尾翼:9 F2 h# k8 m7 `4 [1 i
& t) a2 A+ }9 J% ]6 Q4 J, E
代码:
3 J) d% P E, ]CWndAutoFood::CWndAutoFood() V& B: z' t9 ~' @3 \4 i
{, ~. C: U* a( W. c4 P4 Z, _: ~2 H3 p6 w/ Y
m_pItemElem = NULL;
+ n; P( T! U0 c' h0 `- R m_pTexture = NULL;$ b: x+ n) _/ V" i' H
bStart = FALSE;) s8 b3 ]; j9 U# l0 r
}& B. p! t' U" V R+ z
2 ?9 a) R* @9 G6 r' f
CWndAutoFood::~CWndAutoFood(): m; \+ R6 a7 ~. x
{
( W2 Q A$ F6 m* I' t AfxMessageBox( "AutoFood ist gestorben " );
% W" O1 F: o# B- L9 l}
+ [! h2 c0 y7 G9 nBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
% \7 i2 [1 g6 @- {3 b{
. p# _$ B) b+ Q8 U& y* V return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
" [' G: F" F2 A}
1 H. Q3 ]7 E' P/ c/ ]
7 Y) z" F) t$ T/ _$ r5 c0 ?BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
$ h1 ]! m. T2 x# n{! y+ z5 z- l8 b$ @
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% S, D# {# S) S" a
CRect rect = pWndCtrl->rect;
, {% d! g( Z, o a$ c if( rect && rect.PtInRect( point ) )8 ]& J: f4 n" H6 I0 g
{
9 M6 L) m1 G5 @* [! c- U CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
1 H+ a+ m/ p7 t, ~! s/ M if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
" F5 y" o' W' @+ t! U8 S* l7 ` {
* ]" @0 x2 n# t if( m_pItemElem )
2 W! V3 l* {' x* j- ~- }" E {
2 ] p0 {/ F: p9 i m_pItemElem = NULL;
) J |% y" ?9 v& `# C0 | }. R2 L6 l7 f- ]9 Y) D
m_pItemElem = pItemElem;9 {/ Q+ s, b _' X- p8 P- ]! q
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
' R% O% p4 n& C }else{) k' |. r) v5 l d2 ~
SetForbid( TRUE );
# d" Q" }6 M7 F) X5 y) v7 ` }! K2 m3 G& i' r1 z- l+ U4 q
}else{
8 W `6 f7 f3 {4 ^% ?! [+ f SetForbid( TRUE );4 W. e+ X# g4 y A* h3 N
}
" b# Q% U0 p9 E( F( M8 ` return TRUE;" G% L, u" G8 z6 n; a
}' R3 U; A/ Z, d4 v1 |2 ?
y: v: l9 ~* R0 Q% }BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 V* h4 w. l$ j( e0 [- W$ r; w/ @
{
6 J1 F# a& A7 F g W switch( nID )) B/ U4 v$ _7 ~& H7 J
{, z' e, C; j( N. s" @% ?" n
case WIDC_BUTTON3:, Y% H4 K5 o' s6 |
{, `2 f* Q8 I% x& j2 R
bStart = TRUE;& C7 V. Y- @4 ~2 T' M( K
break;
4 f7 H/ h& A" `5 Z; g, p# |4 X }
3 {7 V$ W# g& _" G case WIDC_BUTTON4:1 ~( i1 _; S9 r) r+ p
{" y8 k; ?! R4 C' K( l$ j l1 D
bStart = FALSE;
+ ^5 X. E$ ^3 Y( K; t) T break;
" K5 u$ z; Q7 b0 K) ? R }
K5 }% _; M0 o: h }" Y4 Z) W% `# p1 S
return CWndNeuz::OnChildNotify( message, nID, pLResult );! h# Z P: o8 n% Z. |! v
} / J3 x }" A& x) J8 u
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
4 g( q) B" |' q8 i+ I0 ^) B9 N{
7 D4 }1 I9 w8 E6 Y CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );% f7 @5 S7 p; u Z6 F( J
if( bStart || !m_pItemElem )
: d% m6 Y Z* f3 l {/ ^+ i2 R3 j6 G& u
pBtn->EnableWindow( FALSE );7 T1 J" }) r+ E+ D2 o
}else0 T8 O0 U0 P- n4 e2 E3 o) m
pBtn->EnableWindow( TRUE );
2 t2 l' [2 }- V& t2 n if( m_pTexture )
J1 H' n! U! {) Q r0 z {/ l( G& J" I' ~, [4 s) l/ G
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' B# k# X1 u- t1 \! Z+ S if( wndCtrl && wndCtrl->rect )# P1 G6 n% I8 p
{
7 a4 _# X K" I1 S% _ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );# A0 y# Q. W0 B7 Z' i
}: h M+ l. i a8 Z6 |5 x8 |; M
}+ H- t9 B: N8 @& m: T2 I
}
& o* b% i; g8 z1 ?
, ~# C7 S( O* ^/ w* l& xBOOL CWndAutoFood: rocess()
2 O0 D* l# W& V, ^{* T! s6 _& v9 {( T
if( bStart )
, E! I6 d* `( E6 j1 H; T {, m( x6 Q& H: m# |
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; k( c; Q0 E7 i9 H$ W {
, c7 n1 q6 D" Y" A+ k# ~+ ]/ R if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
$ O. N, {) i# s4 ^0 }4 @1 ~ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );) o- A2 d- s9 ?+ b1 [6 w
}else{& G5 w6 |8 N6 U0 ~2 A# h
bStart = FALSE;
9 |3 p8 [6 C( @9 J m_pItemElem = NULL;
. h+ V' J, h9 A+ F* [5 R5 a0 [) z6 Q }
0 n) N1 N3 ]' ^$ s. Q }
1 C3 e5 ^# h% x) p3 x; [! Z, e return TRUE;
3 C+ ?* F8 I' n7 v* t( @6 U* G}! c f1 t2 j: |
# p! D! u9 c: g7 H登录视频废话:
2 l5 Y# r8 }1 `" i, D; v尾翼:
. t0 T& s4 b8 f' X* e: [ H7 z; V, Z0 W6 T% i& B
代码:
3 M$ @! O" V6 f. y9 Z
+ Q% L5 R. Z% f0 {7 vvoid CWorld::SetLight( BOOL bLight )( y+ F% t: N D/ A
durch
) ^0 ?! z2 t P# r% G9 cCode:) g+ p. r" y. H T
void CWorld::SetLight( BOOL bLight )5 `" v9 H% X+ V% S8 R
{
, S2 i, Y3 I! E' ?4 @+ p/ z' i //ACE("SetLight %d \n", bLight);
( @4 C0 |; H7 |+ T. W8 D& B
& d- M9 R, Z9 W# |4 F+ d#ifndef __WORLDSERVER 0 ]+ e) u/ V3 C) e2 Y, k
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
# k& v8 j8 C$ b: v) J% V& f, U CLight* pLight = NULL;
; \1 F6 u# a4 u& r! _
. O4 ?! v; N8 m: F, B1 S+ j D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );- G! r( b7 j9 C. @* f/ o# k
3 y. ^7 K5 m) J4 p0 | pLight = GetLight( "direction" );$ I& U. e7 ?: G
/ `2 ~5 h" r4 @; U/ l& z#if __VER >= 15 // __BS_CHANGING_ENVIR! k' R3 c& [, |
if( g_pPlayer ){" w9 }! I1 \+ H! |& l9 \) v4 b
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );4 U7 F$ K* U3 T
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
( B5 d1 z: x9 w& s/ x! [ {
1 S- j& |2 x& S5 C9 g& P& t$ J if( pLight )+ k% R5 V, N; t2 g }. c3 b4 [, H
{
$ G! H4 |" A3 X pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
5 B/ S% M: w" h4 r pLight->Ambient.g = pInfo->_fAmbient[ 1 ];7 ^- ]9 t6 ^7 \" K
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
j/ q' [0 X4 d( Z& k* a+ W
- S9 q# B1 h2 U0 e$ `6 r9 l6 R pLight->Specular.r = 2.0f;
: i0 J8 _) }% {. L pLight->Specular.g = 2.0f;+ P) g+ {- R+ [) {2 z8 M2 P
pLight->Specular.b = 2.0f;. t9 \7 x, [( i$ I* g: A6 X
% A/ f1 s( U5 K# }* q4 L; U% x
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
' F7 c* F2 Q* d& f7 d( P pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
( F( C% I4 H$ S# k; A, J1 A2 B) f pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
: O; ?0 \* j0 N ! u# E; M* B1 Z. F+ H( Y% s
HookUpdateLight( pLight );
" z8 w0 N# y5 E, B0 R9 w, S$ \ s4 j8 g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 A$ h$ a5 i1 r: B% z5 O1 X+ X/ B0 g
& b/ W& R' j5 ]4 |. x
pLight->Diffuse.r *= 1.2f;
0 R5 s8 ]: X4 X0 j pLight->Diffuse.g *= 1.2f;2 q1 g d6 _- w4 K
pLight->Diffuse.b *= 1.2f;
4 r: K5 ?9 h* h4 m
% K; Z6 U4 I8 P( _1 g pLight->Ambient.r *= 0.8f;
; @- x7 o3 V; z; [: f3 r1 b pLight->Ambient.g *= 0.8f;. `4 _* B s+ D2 t; c5 I2 t
pLight->Ambient.b *= 0.8f;
" S8 M! N# H& ]0 M& u$ ? - p m) m5 K$ f5 X5 \8 \' c: Y, x
memcpy( &m_light, pLight, sizeof( m_light ) );
. U7 `+ ~2 A( {2 D7 c* n; s6 e# ~* t5 g, i
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
$ ^7 s& f) `" @# l D3DXVec3Normalize(&(vecSun),&(vecSun));5 h/ e W( K4 v j$ _1 |# [
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); + R& F3 s' Y& Z4 L
pLight->Appear( m_pd3dDevice, TRUE );
9 e( D G! X0 E/ @7 ^
0 u- ]; ?! p% _3 b! ~- ?! ? DWORD dwR, dwG, dwB;
5 O/ X! l) z/ o; a: m) m* u% s% { dwR = (DWORD)( pLight->Ambient.r * 255 );
& E+ d, U0 I) c0 ~ dwG = (DWORD)( pLight->Ambient.g * 255 );1 I# o, O% c8 b9 A( x- }8 f5 P9 b
dwB = (DWORD)( pLight->Ambient.b * 255 );
! ?; {* |" I* _' q" ] dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" ^6 W; [% i4 ?- U T# N
}: y3 s8 j. O( [ x1 t: H% M" \
}* O6 M" y+ g- y- K" l
}
0 U$ V+ K2 Y0 T j else
- H" d a7 M% m" G5 ^#endif ! R/ U* {# ?: J, k
/ h0 | H+ v! ^( Z$ v if( m_bIsIndoor )4 V% c0 T1 X! U; w& q6 ?9 \
{
6 F7 m6 V1 ~# O% Y" d0 C2 O if( pLight )2 |, r" n0 I7 w$ G }% |
{
" ?5 ]/ O" i; z) A5 L // à??μ oˉè*
. W, S5 f9 k9 A( A5 ?( T5 C pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;& Z7 t7 o, ?7 x4 R" n m5 L. L
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
6 H9 o. V3 |% S3 j pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;# S; T- m, a9 T5 e* S
& K4 ]% y' w F! ] b# A
// oˉè* ??à? ! d8 X- d! C1 e( S' ~. M* d& U
pLight->Specular.r = 1.0f;& y0 ~7 m' X- J# m5 v/ _* r7 M/ a
pLight->Specular.g = 1.0f;
7 I) o# h& s9 P# z1 T1 W& S! Y pLight->Specular.b = 1.0f;
) j* J( c1 N; i H7 L6 I2 E // àü?? oˉè*
8 I9 ~7 u& T% t( ^" r8 T1 z pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;6 Y9 }' @3 b" y) C# ?/ v$ S
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
! f6 \3 }# @. a* g; r/ o+ M pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
# l/ z) j" a* g" J- d: }
7 q6 w% h) T9 Y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 |5 x( L$ Y- p
{
) T5 Q; `) w, I: S pLight->Diffuse.r *= 0.6f;; q9 b4 ~1 l& N1 \+ r+ g$ z" I6 L
pLight->Diffuse.g *= 0.6f; |3 n9 L7 e0 e. {
pLight->Diffuse.b *= 0.6f;/ Z: v) E! L5 e8 f! z$ d% r5 [" g. {
pLight->Ambient.r *= 0.7f;
1 N. M P8 o5 R8 M' @+ v pLight->Ambient.g *= 0.7f;8 V" F3 i" u" ?
pLight->Ambient.b *= 0.7f;
" e) y8 {7 i4 R0 K. l, y2 t }, I# K) o9 v: {% ?# u
8 c1 B6 q4 [' c6 s2 v6 K. F
#if __VER >= 15 // __BS_CHANGING_ENVIR
, _4 `+ K6 H4 F% L* V if( g_pPlayer )) r6 c- U9 w0 X4 S8 R
HookUpdateLight( pLight );
8 s* f) v2 Q4 \/ p, _#endif
- d4 e2 H/ `) |3 }& M8 ^. W memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 [0 r1 C* M* y# b% x
+ q# o! S* ?5 c pLight->Diffuse.r += 0.1f;' { X% \3 X, k
pLight->Diffuse.g += 0.1f;
6 n, a" {7 l. z pLight->Diffuse.b += 0.1f;
! i) t3 L9 E. ^% ^! q* F% n$ w // oˉè* ??à?
% e; f6 t6 } N pLight->Specular.r = 2.0f;6 m4 L# ^# s' z% F# {" {
pLight->Specular.g = 2.0f;8 w+ C) |5 U8 n
pLight->Specular.b = 2.0f;# `5 O- h; k$ e; M! _! E. O$ Z! h6 ]
// á?oˉ
( z, q- R2 @: t. V) e# j4 o, m pLight->Ambient.r *= 0.9f;
1 m) v* ]' V5 |$ F7 N pLight->Ambient.g *= 0.9f;
% f# `# |, t- O Q pLight->Ambient.b *= 0.9f;
* Q& r4 s( @- e3 n0 j( M4 u6 n
7 p5 ^7 q. H6 x9 B; u ] memcpy( &m_light, pLight, sizeof( m_light ) );6 K3 z- s2 P6 i2 X* m2 Z
1 f6 w$ u# _; \4 w$ H/ p
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
& z( j" p0 |/ V0 i' h* J pLight->Appear( m_pd3dDevice, TRUE );6 x/ u, d2 @6 g K0 J8 r
( J6 Y- B) V- z. r+ U9 @" e/ n DWORD dwR, dwG, dwB;
4 y- }- e5 k2 H% y dwR = (DWORD)( pLight->Ambient.r * 255 );
% G( _& Z, G j! M0 X+ r ]( b dwG = (DWORD)( pLight->Ambient.g * 255 );" O6 A3 E0 n- ?- x9 ~2 J
dwB = (DWORD)( pLight->Ambient.b * 255 );3 ]0 s3 o1 k; P( c7 o
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 r+ [3 E5 {1 b% d# P0 |6 W
}
; |/ p, i3 m* v& F' Z }. C$ e% u8 ~$ H: s# n8 i
else5 R) r; K$ j7 f' @( E7 o8 W1 N
{4 r" j' T! d5 j4 u3 {$ K; C
if( pLight )
( n4 S9 F; }# d$ h1 A, r- O( O" ^ {
! C7 Y8 x$ X9 C& y. B
: z5 s U# x4 G) d6 g1 z int nHour = 8, nMin = 0;. C2 F2 W g9 }0 T# u5 N
#ifdef __CLIENT
' n# S8 \6 c$ O: M // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. % Q2 R. _8 A1 _& v, D3 l
nHour = g_GameTimer.m_nHour;
& ?* ^9 ~) o: t/ `, ~$ V nMin = g_GameTimer.m_nMin ;
. i! q: \6 s! F* Z0 e, ~- E #else
" x# q5 m0 @) }; l3 N0 R) l // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
6 ^. J d" n3 m: M; S6 t! ~$ g if( m_nLightType == 1 )
, A/ B a. s7 p% x6 y( H nHour = m_nLightHour;4 @. L- D6 m( ?
#endif
, Z& ^! b u( _2 B nHour--;
* j2 E3 | O/ r H' j; C; ^, C if( nHour < 0 ) nHour = 0;7 I! M4 p( H* G0 ?# i
if( nHour > 23 ) nHour = 23;
( ]$ b7 F, e( I8 k: f8 ~7 x- A8 ^: y' @1 s+ t- Z& e ?, D# J: I
//if( m_bFixedHour )
, }7 X u4 d. z5 L8 t; }; L/ Y: p // nHour = m_nFixedHour, nMin = 0;
0 R1 C4 [) s+ h7 w LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ z* h4 y! b# p4 _& o) P, `
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
7 l' O( m6 a2 S# I. t4 A+ x, Y; Y0 A+ e; p! @
//m_lightColor = lightColorPrv;
' \/ h% T0 M, W$ Q' S' Y- v! F lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" I, Y$ z- K( {# a
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 X( A4 J# `3 f: G- B: n1 H lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
5 G" K! k! d6 L) Q1 h/ o/ r: i lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- x& Y4 X" d, N$ _ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;! \4 Y* z$ E3 g0 L' N+ h: k" x9 j' p
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;: D; V4 Y1 {4 }6 \9 ?% L. S
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)4 Y9 U$ i3 P" F" W3 M3 ?
4 w/ q6 R* u0 A2 m. _
// à??μ oˉè* 6 a* O6 E3 p: w( m& H
pLight->Diffuse.r = lightColorPrv.r1;
0 T" z8 @, t' U, z) h. a pLight->Diffuse.g = lightColorPrv.g1;
& G. L! ]5 o7 J. s& ^* r pLight->Diffuse.b = lightColorPrv.b1;. z$ x2 N# ]- |7 ]& y; W
// oˉè* ??à?
1 m! w4 n6 m$ \ pLight->Specular.r = 1.0f;
8 s P+ y7 J5 ?% P. _ pLight->Specular.g = 1.0f;
U! @8 O0 x0 e" N6 U$ C+ i. ^ pLight->Specular.b = 1.0f;
+ E# V2 \' ?) F" ]6 A& T4 V // àü?? oˉè* 3 i- [+ w8 ^2 }/ N
pLight->Ambient.r = lightColorPrv.r2;: r/ A4 p1 i& Z1 ?/ T
pLight->Ambient.g = lightColorPrv.g2;
6 I0 A0 V# P) q+ ~& P pLight->Ambient.b = lightColorPrv.b2; G9 U- t/ x& G# G9 h0 g* s' |* J
. W1 [6 c: N3 J/ D+ B) Z! v if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 t4 R- K9 g9 A8 n% K" t# D- K
{2 O: o7 [0 W' T# J/ M$ H
pLight->Diffuse.r *= 0.6f;2 u8 A( Z c6 Y/ F' q; @/ f# R+ _
pLight->Diffuse.g *= 0.6f;
7 t! r: u4 p# G$ Q! q pLight->Diffuse.b *= 0.6f;
' m, P( p Q. T S pLight->Ambient.r *= 0.7f;% w2 T6 H( }7 j2 o1 d& V
pLight->Ambient.g *= 0.7f;
& W" ]( o9 u+ F/ Z& N/ t9 k pLight->Ambient.b *= 0.7f;
4 p& d: M0 ?6 h7 Z }
; C2 \. z) T4 D' e p, I: I( \ 3 }. I q8 b! S) c
#if __VER >= 15 // __BS_CHANGING_ENVIR5 Q8 G' F8 T1 g% _* r- x
if( g_pPlayer )1 @5 I {' s% _. q7 |! g
HookUpdateLight( pLight );
# A# E8 C$ V1 P5 t#endif
) L1 i7 E$ f, A, A memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: j! z: D( x' q# R8 ~) |! f& h. N
' `" w; |# e! W0 I. Q" S9 ~6 E#ifdef __YENV9 e: ^. z1 x/ K" U, F7 W* ?
pLight->Diffuse.r *= 1.1f;
1 _& m6 {3 g2 d( I pLight->Diffuse.g *= 1.1f;
; G) ?, F+ f4 Y# J: ]& F pLight->Diffuse.b *= 1.1f;
6 j8 N0 }8 c; }( v; q // oˉè* ??à? 8 z/ a8 ^ X! G
pLight->Specular.r = 2.0f;
* Z6 L$ j* N* n' [& D$ s, G& y pLight->Specular.g = 2.0f;
6 M% E+ J; F! C5 s pLight->Specular.b = 2.0f;( h: i' X& J' B
// á?oˉ
% [" |4 j% K' F# J pLight->Ambient.r *= 1.0f;
% p- Y: P" z4 @& X pLight->Ambient.g *= 1.0f;1 D: V# A+ f4 ]0 w
pLight->Ambient.b *= 1.0f;2 P2 g9 }. i$ F g% t8 |- f
#else //__YENV+ m9 o0 z" Y6 C' F9 m
pLight->Diffuse.r *= 1.1f;
$ }4 }3 z$ h) L$ e' @: n pLight->Diffuse.g *= 1.1f;. m$ @4 `* Z" e/ I" ?5 U* Q( X; G
pLight->Diffuse.b *= 1.1f;4 U9 X4 r* h* ~$ e0 J6 x
// oˉè* ??à?
/ l) ]9 J1 M5 q& ?( f' B, ` pLight->Specular.r = 2.0f;4 B5 p% p$ e' y/ C( D3 b
pLight->Specular.g = 2.0f;
/ J# S% N$ Y3 N K; U pLight->Specular.b = 2.0f;: g+ q. m- b) C% k
// á?oˉ 6 N; O1 q+ R: F' y
pLight->Ambient.r *= 0.9f;2 Y. }( O8 q4 i9 O4 I, I
pLight->Ambient.g *= 0.9f;
$ q e* D& b3 }+ e. }4 y9 ` pLight->Ambient.b *= 0.9f;
' S/ p/ X7 A4 \- x8 l, e& K0 |) o#endif //__YENV
3 a/ E/ j* v6 D3 Q8 z, A& M " e p: x$ M) b' n
memcpy( &m_light, pLight, sizeof( m_light ) );2 {3 H# Z. B" M0 q9 i8 x6 [
5 [. @7 y% e0 f: Q4 `+ G1 _2 i9 ~ D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);2 k$ J1 D4 q Q) Z' L" N
D3DXMATRIX matTemp;% N; @9 V$ X; t
static const float CONS_VAL = 3.1415926f / 180.f;
1 Y7 J. d- t0 q. R# H# R& t' Y; u' q1 b, Q
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
" Q4 r; C8 A& [0 o6 h. s D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
* k, ]+ n' w7 u& j, {) z pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
: U( F: _, H8 }' \$ Z' K" m pLight->Appear( m_pd3dDevice, TRUE );* e, p$ ~. R9 ^2 Q8 G% L7 E$ _; Z
8 e6 @0 G# ~! E2 [# ~
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
5 w5 @. ~: U% L; @+ F6 {- K // D3DXVec3Normalize(&(vecSun),&(vecSun));% S @* h# Z2 t% S
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); - P' K' h& B4 a# W, ^3 |
2 p3 E; k5 j5 K' ^: o8 N# C
DWORD dwR, dwG, dwB;
) K' U) O& Y3 Z7 J) R# r' R dwR = (DWORD)( pLight->Ambient.r * 255 );* J5 z/ z+ f6 R9 |1 W6 a
dwG = (DWORD)( pLight->Ambient.g * 255 );" \4 |0 o% y, F
dwB = (DWORD)( pLight->Ambient.b * 255 );
& d7 ~. j6 D" P" P dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ' F0 z$ z4 ~' H: [2 t& C
}9 B7 I$ G/ H) X# v6 ]
}" H( \, }+ Y' E/ [" Q2 p
( c' a& ` {& x% a$ W5 }6 X6 T* D
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );. T/ \8 K( P; t2 v. k$ d' k3 ^1 {
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) );
; ~) B! l' m7 ?& N K ::SetLight( bLight );
; _) o; d" I; F6 @) y. }9 m
/ `; S4 r) y4 U0 `- t4 y: m- ?( ~, W // ±ao? ?D?í???ó á¤à? % T- m2 ~+ G& s2 K, n, W2 }
m_pd3dDevice->SetMaterial( &m_baseMaterial );( p" t9 f% `8 e$ L
1 I0 P1 q- U& R) R* h' }#endif // not WORLDSERVER3 |; j1 T7 X& j5 z' N, l: }
}
) O. q0 I; l3 I并更换
) q6 G$ f0 G& p8 @! r) |8 D" PCode:
# I3 c+ E2 ]8 A' M9 q__FLYFF_INITPAGE_EXT
; [4 X. m. D* a定义' }, X7 I6 N0 E$ ~/ c1 f$ b8 E
. G* n, P8 K* U) O4 _
6 b; N4 c6 O. e% T4 P5 \; H( L6 L/ U
* B& O4 E Y" d
现在终于删除我的狗屁加速...
3 L# f/ b( k: z$ j) p, G# y
9 d) G% T' u* b' ~: k5 E5 X5 y5 O! L4 P: @( D1 e6 G4 m+ v
I% _& c( U, b6 R' b6 h7 Q
|
|