|
|
食品车:# r( O0 l R$ r9 w
尾翼:
; {$ o0 _% z, M3 R3 ?5 Z( |
2 z0 Z3 z. ~' k. D& u代码:% Z, l" H8 w- z$ ?7 Z7 ?0 e' ^
CWndAutoFood::CWndAutoFood()
" ?9 x Z% T1 g( l{
6 ^: W- w( i5 h m_pItemElem = NULL;
/ c6 ~' O7 C4 `0 `6 }) g5 \9 W' y m_pTexture = NULL;+ m, L8 f$ d J
bStart = FALSE;4 X3 O# D- T4 i! u/ c+ B
}- V, u/ u) @3 U8 o0 \
" I G( l, m N2 t+ P4 l
CWndAutoFood::~CWndAutoFood()7 v8 W7 D8 B- b) V: e7 A
{
T" O' _) O! P# f+ T AfxMessageBox( "AutoFood ist gestorben " );6 U: f5 P; K! Z: F4 h4 B" o
} c$ y# \, E. Z% \3 ]. ?5 B# ]
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )2 N+ T; a6 o' O+ f
{1 U1 F$ U/ C4 Q* {# l) E" y1 l. p
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
3 Q7 v, Z6 X" I: F}
1 H8 g6 s8 ^- H' {: _
$ b% s3 y- L3 u& f1 i2 XBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
9 u; g3 M8 ~4 S4 j6 \( G{
( A2 y( {" } L LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
+ n; E; V, n" S0 b$ u: x y CRect rect = pWndCtrl->rect;
6 K& g6 d1 z% X; J, T# R$ q if( rect && rect.PtInRect( point ) )
6 M0 @8 |( c: a9 i+ W& g {
/ O3 m" y7 s' m# R8 J4 C8 [ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
5 [1 `1 h4 \( a/ O* _ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
3 m7 j# W; k \. V- ^" k3 } {
3 K4 d/ n( T( f" S6 t/ v& c if( m_pItemElem )
% |% X: o, Q$ S; r Q. e8 ^/ R, ~ {
* T5 Y8 G8 F; d( S- E+ O( I m_pItemElem = NULL;9 M# t& w8 J, F
}
& F7 y: }" q- o8 |, \2 O m_pItemElem = pItemElem;& d1 w6 I% q/ t( N+ `
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );' ^, V6 F9 m, y5 n2 B6 w; J( s
}else{
; D. T# f- O% G* B8 l( q SetForbid( TRUE );
' ^4 C7 Y5 {! B( w- \ }
' L2 a6 V, [" M }else{
. T* A6 v" m1 f6 R" t SetForbid( TRUE );; h4 u2 B7 p$ w- j4 [* h W
}$ f; d0 h" _; G4 S1 c+ G
return TRUE;' e7 C! H: p7 V9 U4 d7 ^7 T4 y
}
0 g5 D! c* [4 |, l; r5 l
4 [0 B; X2 X& n. m+ I. `BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
% T, p2 S/ A6 S, P0 _( q# k2 M{3 @% i. q$ h) T: [
switch( nID )
8 |1 e+ A& n2 o; T, L {7 y; R$ L- Z B" z) h9 p5 Z
case WIDC_BUTTON3:
7 t$ ?, W) ~4 y s, ?* i {
- i/ X. o/ |( Z+ p6 K9 d. N4 ?, y bStart = TRUE;
8 _$ k7 |, k' s" }$ R break;* v/ _$ ?0 @0 m, C \) }: L5 r
}" @ Y' n# u2 Z2 a6 P+ U! @
case WIDC_BUTTON4:8 Y6 ]# m! H8 E
{( A2 `, H5 Q; g, D4 r
bStart = FALSE;
7 F! Q( b$ l! \ break;
/ n% K1 P' Y/ E) ]( y* E4 O& j. C- i }7 @6 b$ N6 h' E" i
}
; U+ @/ ^8 e- B% ?; { v$ F return CWndNeuz::OnChildNotify( message, nID, pLResult );
G% V4 N7 H; w& G8 w}
; P; [0 K, R' y- `, z) r( F. ~void CWndAutoFood::OnDraw( C2DRender* p2DRender )- u3 b& U( h) C0 D/ i
{5 n: U8 W0 j0 b
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );- p! }$ B( S, n/ J9 }. Z, q
if( bStart || !m_pItemElem )
8 A8 H+ ~' k9 s; z% D8 ?) y' E5 a6 [ {
/ C. V! |) I3 D# q pBtn->EnableWindow( FALSE );& k4 L% d+ c4 q& r
}else
: |7 l. {5 Y8 z/ O( g0 M pBtn->EnableWindow( TRUE ); ?& |3 \, D) i" ^
if( m_pTexture )
! y6 ^6 M7 f3 e {
, ~/ V! x. _0 S5 R! W- | LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 [) x1 Q3 U! h% V+ g& {. ?' e
if( wndCtrl && wndCtrl->rect )
9 Z) x% T: K7 n# a {
/ m4 i; } }: x" C) { m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
3 K* K9 T! b( r( Q1 { }
# c) u' J/ Q( ?) d1 F K7 I }' Z6 J2 G( ?2 v: [% k/ R
}
+ I$ j3 r* Y" g
( X; A3 S# W% [0 K3 y8 bBOOL CWndAutoFood: rocess()) ^* e- Z) u4 G# N0 a7 P
{! p+ @, j& i' z j9 s% p
if( bStart )
( p. u r' o: v% i: ~* w P {
" z/ @( e2 N! w8 ?& s5 } if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )/ D( z+ C6 ]6 h2 h0 o( s0 A
{
+ l) R% @* p+ I2 c6 N' ^ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )! h# S- c/ O7 ^5 M
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
/ R' g6 A1 F6 x+ H$ Z5 @5 r7 H }else{6 I+ i! P; f/ @' m; r) N; j
bStart = FALSE;5 z) J8 l7 b2 n8 f
m_pItemElem = NULL;; ]" c8 x. t) {
}
3 i P5 @. y5 y' C9 l }8 R7 d' _+ Y/ x) I( u6 d0 M" R
return TRUE;4 k3 B' I% Y1 m2 }! W% i4 I0 \ y2 ^
}! J0 L* R2 A% G s9 Z
) a+ V/ D1 \* I C登录视频废话:
: N5 q E" _! I/ d& k: Q z6 p尾翼:7 I$ |. }% o4 g0 Q- d
% ~, N, i& w& U7 O: l: _3 G' Y3 i% a
代码:
9 `7 Z$ B5 _: r- X) m$ X- ~
6 D7 U8 w: h0 q" S. nvoid CWorld::SetLight( BOOL bLight )
8 @) [ _4 X1 p, sdurch2 a% h1 j# u/ w, J
Code:
9 V+ F+ D0 Y- G) avoid CWorld::SetLight( BOOL bLight )! e% p, T* t/ K9 |; O* v1 c
{1 I* q6 z: @& X) Y J
//ACE("SetLight %d \n", bLight);
% C- S& y2 }# x' F* h+ R! V$ F9 x, W9 F
' ~' o( `: R! A7 T, n#ifndef __WORLDSERVER ) z# n$ T# E+ W
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);* u% \% _. t m8 P9 M5 q
CLight* pLight = NULL;" u+ ~. R0 Z; Q/ l+ Q2 T- e. E8 D
4 u% r U; A+ T" r( `' [! x% K" P" O D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );& k) W" @4 t; p4 ~( U( X
& t/ r0 s, J1 M6 ?$ }6 e: y
pLight = GetLight( "direction" );1 H6 l- Z) |0 Y( O: y5 O
1 I! X! s% S" R2 v5 p, a, K- r, ]& {
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 l, ^# y6 }5 j( u s6 E D if( g_pPlayer ){# ~) C3 W. D9 U( z8 v
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );: @. v' n$ o1 _/ u+ }
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 K; g8 M* W: a& S8 _$ c
{% U2 O* a# U3 z; f, l/ ]" R
if( pLight ) u7 W) u J4 y( l0 O5 @
{. x6 _# R/ C2 ~
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];4 C- P: y [9 t) x5 m: N y
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];% v" p) o) g& t, M# ]
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( ^1 G% v& i' i7 X, a n1 e( d% T
6 G; x" u3 l6 V2 c- f pLight->Specular.r = 2.0f;: i. S2 v/ p- N" ?1 A/ l/ C
pLight->Specular.g = 2.0f;& a) [) q9 R' s
pLight->Specular.b = 2.0f;
+ w' E; e n( ]" y# g
: T; L, a, {6 ^; R( o: d$ c% j pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
" S7 ] ]* v( z* G+ @3 e. V+ a pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];1 h$ E# J8 j6 j* D" A! f
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];' [* Y, h* u; `1 _( I
9 Z0 S9 k$ j- `5 z4 }' J HookUpdateLight( pLight ); 6 Q+ |9 d3 h$ d+ M2 ^3 P
. i+ [8 G7 A3 P; Y
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 S8 v3 ]6 b' U9 ^" f! \
- p9 T& D9 a: w$ d
pLight->Diffuse.r *= 1.2f;5 {( p& z4 v( {7 J& e" f
pLight->Diffuse.g *= 1.2f;
' B* y' n: [, O' } pLight->Diffuse.b *= 1.2f;
3 P) O6 P$ |1 v# p! t; F
3 J5 c P! L8 [$ t+ P2 V% t pLight->Ambient.r *= 0.8f;/ x( x R8 z, t
pLight->Ambient.g *= 0.8f;3 Y9 u; p6 z. H, b Z6 Q
pLight->Ambient.b *= 0.8f;: P' R! p, A1 o" h
" }; a. M" `6 \, [0 a# n/ l& f
memcpy( &m_light, pLight, sizeof( m_light ) );: t& J) ?' l& L( c6 c4 }
% c; }* p9 a$ i8 b. K( w) D0 b6 @1 a D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! B! Q$ K3 y! D, P! L @
D3DXVec3Normalize(&(vecSun),&(vecSun));. y0 x1 p" [/ p) Y
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); & i9 O4 e1 `) Q: D
pLight->Appear( m_pd3dDevice, TRUE );; n8 l' G2 R( V/ l; c* O
, L6 X7 f: k* q" k DWORD dwR, dwG, dwB;) x T; F3 f: U( g% ^
dwR = (DWORD)( pLight->Ambient.r * 255 );2 G+ g2 C6 C, ^
dwG = (DWORD)( pLight->Ambient.g * 255 );9 ?6 d+ S; @, c3 } u: ^. L* f
dwB = (DWORD)( pLight->Ambient.b * 255 );
. [4 S7 _: }' x8 s$ p0 t+ w* d. N dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 U- e# g) v& ^- s& w2 v }
1 o! Y9 K2 b3 ~$ e# I S1 `: I, @ }# P( {+ A; l& ?, e
}5 ^" x: @5 R' z' ^# N
else
) H2 I! ^# V3 F5 v) h& i) y#endif , o& K' c6 j6 j/ }
7 u6 Q) K$ @2 J3 v; w4 G
if( m_bIsIndoor )$ m- R$ A% ~& r6 R/ G: e+ ^
{
n# r) r0 j. [, b1 v if( pLight )
C: d. Y( O6 p' e0 m2 `! K% r. w { ) v2 U9 J: o, r4 ^6 E1 T
// à??μ oˉè* : a, T' z5 p' R7 e7 H( ^
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;$ U U% A1 o1 F3 x
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;" N. z( o. u$ l8 t0 _9 _, {; L9 ^
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;% @% o x Y' `# u7 ]
- ]/ b# U2 ?+ _% l // oˉè* ??à?
2 K! C/ o8 W" f6 r8 D6 K pLight->Specular.r = 1.0f;! ~5 f: ]* P, @( v
pLight->Specular.g = 1.0f;. ?0 }/ z$ k1 h- [3 w
pLight->Specular.b = 1.0f;
1 Y/ V0 q6 E0 s# X6 D* { // àü?? oˉè* . a. j; a9 j! ^& D! K
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;* h, B/ ~5 O$ z2 w/ B8 G
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;+ W( f! y0 B. z5 X& s K( {
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;& j+ m, i' p6 H; J8 a
; I6 V" ^# Z) g8 o. a
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 O1 Z1 P3 @ ^ {
2 o( d/ j3 F2 b5 `6 }/ r2 V' f pLight->Diffuse.r *= 0.6f;
0 K D& ~) u6 U/ A: n pLight->Diffuse.g *= 0.6f;/ \7 @* P9 D* s/ P/ D+ S6 |; k
pLight->Diffuse.b *= 0.6f;
, @. ]) G! p4 r4 y" L" x pLight->Ambient.r *= 0.7f;
$ n6 O* p) W) w- O/ l pLight->Ambient.g *= 0.7f;
, A% F( H% b- n8 A2 N( x! V pLight->Ambient.b *= 0.7f;
) T+ D, ~' h/ I& U8 l1 r }
+ ` a& |; c2 ~
+ ^# u& R& w2 b0 t2 x! W#if __VER >= 15 // __BS_CHANGING_ENVIR
3 e, O$ ]/ X$ x if( g_pPlayer )
6 c2 S, J# o3 Z! L7 M HookUpdateLight( pLight );& E- S; J1 }. S! W
#endif
" n0 F/ z0 X p( w2 v# E; w$ E memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 z2 z! E2 X5 T* }& ^% H$ m1 H
: M7 y x# X' ]+ m pLight->Diffuse.r += 0.1f;9 F% C6 v6 R" H: L, L; A
pLight->Diffuse.g += 0.1f;: k9 V- K; }/ F) V- Z; c9 H3 ~% `$ Y
pLight->Diffuse.b += 0.1f;! t. u9 ^1 f/ |4 J( p
// oˉè* ??à? $ @. }8 L/ @$ M3 ] R! X+ a% Q. Q- Y
pLight->Specular.r = 2.0f;
* x+ Z* {2 O" U6 U( X( ~( X' D4 T6 L pLight->Specular.g = 2.0f;2 Z7 C5 I& A( `+ t) b% B* o
pLight->Specular.b = 2.0f;
' n4 i) B" r- K2 V // á?oˉ ( u( [0 v. s& P1 Q
pLight->Ambient.r *= 0.9f;
8 n% d6 E2 d, F$ W) ~ f( p pLight->Ambient.g *= 0.9f;0 K* Q4 }8 f( W! i2 J9 _2 ]
pLight->Ambient.b *= 0.9f;
1 i' u. O1 ^' p$ Q, Y
% u2 ~0 V/ u! F8 O: w; r5 w# J3 E memcpy( &m_light, pLight, sizeof( m_light ) );" y e$ F& E0 D% D; w1 O; I
3 j) p; ^* q1 ?% K. h2 X( I/ o
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );( |& S4 h3 K3 s% b" x/ P
pLight->Appear( m_pd3dDevice, TRUE );" w$ ^+ C2 T, K% x) I# Y. R
, W" h6 D2 X& _4 S DWORD dwR, dwG, dwB;
; a7 r/ q& u( X5 A$ A& T! w dwR = (DWORD)( pLight->Ambient.r * 255 );
, j; m/ ]0 ^( M- K dwG = (DWORD)( pLight->Ambient.g * 255 );
- R X) O: d$ l* j+ b# x# @/ _6 ~ dwB = (DWORD)( pLight->Ambient.b * 255 );. G7 X# t! L+ \, c
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: S; B+ @0 S* k; O }
7 E3 w, f7 `" m+ c }7 @7 w. l9 E/ [8 P
else
0 g' G7 x5 o- x {) o& X% v; L4 S( U( C1 t2 Q
if( pLight )
7 Q; E0 {( K! H/ D7 P6 K& D {+ g4 _: G+ z6 Q1 D& N3 I
" n2 ?; k8 w) o5 Y int nHour = 8, nMin = 0;
$ U: I5 c. F% J& {3 }; F s& t #ifdef __CLIENT6 y' p; D' Z" X! [6 C
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
# A. `3 A6 x' D1 L5 a# N' C nHour = g_GameTimer.m_nHour;
8 V/ [ v! N' A! q- d nMin = g_GameTimer.m_nMin ;" ~' j/ O, `, q s5 `
#else
" z; }) v! v+ W( K: r // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
! u5 z) l) F6 X8 x$ Y4 a5 T. y8 ~ if( m_nLightType == 1 )
. M2 a& I+ J; M. z nHour = m_nLightHour;
\% O- v- h2 t u) F& q #endif' k7 F$ z1 Q+ l5 |5 j
nHour--;# n6 x4 C, \; }) z1 g3 m& T
if( nHour < 0 ) nHour = 0;
2 ]! J, J; w- e4 f( Z# \6 @+ d if( nHour > 23 ) nHour = 23;
) @+ g S% [8 {( a% w# s: i7 B% f3 C, c1 R( o3 m/ P2 D/ I3 Y0 j3 F' L/ x7 W- }
//if( m_bFixedHour )* I- K Z4 U/ X" T4 Z* g7 \
// nHour = m_nFixedHour, nMin = 0;: c2 A5 W! V0 `6 l
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
* h/ S7 p0 e0 e7 F' x" r LIGHTCOLOR lightColor = m_k24Light[ nHour ];
, u9 u9 `' f/ ^ c# k, Y4 }- ^ P {3 T* o3 f
//m_lightColor = lightColorPrv;4 I/ S( ^. Q7 p( a7 d' E, _
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;. F8 c( n$ }9 f
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;7 R# O2 b. ]3 a2 D) f4 f
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
0 D! G' I+ O- r2 t2 l2 p lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;5 @4 C0 ~! a# r, n1 b
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60; |# \- k9 S3 u0 w$ C2 K( S. e
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;2 r; w( n: S/ a5 h- B
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
6 [8 \! r/ t% s! |3 r0 U$ y9 c" J) T8 {+ C$ Z& P) S$ H U
// à??μ oˉè*
0 A, ?6 A3 \+ i% } pLight->Diffuse.r = lightColorPrv.r1;% a: y& N ^# Q6 ~: r, R6 t
pLight->Diffuse.g = lightColorPrv.g1;1 k- z& t# N4 a2 T5 S
pLight->Diffuse.b = lightColorPrv.b1;: q, `# o7 U8 A" V. n0 {7 U0 j% X
// oˉè* ??à?
* n d: J+ O' T. W* f5 P2 H" q pLight->Specular.r = 1.0f;
0 x! a, h$ l; F* m) A6 K4 p$ Z pLight->Specular.g = 1.0f;
& |" @$ Q$ D: t: f! O/ A' G+ g pLight->Specular.b = 1.0f;/ ^( J+ }& Y7 W5 q4 Q
// àü?? oˉè* 5 ^7 P' _( ]" E; u W- U
pLight->Ambient.r = lightColorPrv.r2;
( u! n4 s) I/ `) A8 j1 o1 D0 ~ pLight->Ambient.g = lightColorPrv.g2;
8 w! l4 v- ]8 Y; H( X pLight->Ambient.b = lightColorPrv.b2;9 X% w2 _, ~- l7 ^0 k! v' i
; s! i& a7 o2 k v0 d5 P- ~: e
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.. B/ q$ m T& |) O
{
( K" N# N; S) F$ [+ \/ q7 V3 r/ n* u pLight->Diffuse.r *= 0.6f;9 @. w( o) @9 R7 L) V P( W
pLight->Diffuse.g *= 0.6f;% Y/ O7 d4 H; n1 l2 s" ?
pLight->Diffuse.b *= 0.6f;
/ _9 l; ^ t/ s4 E, E0 T- Y8 r pLight->Ambient.r *= 0.7f;
6 J# v# i" z6 K2 H' B0 D pLight->Ambient.g *= 0.7f;
* a- z5 c6 x7 l+ Q- v$ ? pLight->Ambient.b *= 0.7f;# Z- ~2 [( w g+ c
}( z) x% b7 R# i$ K
" S/ _9 n: u( j1 z' q5 |
#if __VER >= 15 // __BS_CHANGING_ENVIR+ R3 M7 L/ g% Q
if( g_pPlayer )
: _, L9 f1 l* _% Z% _0 o HookUpdateLight( pLight );
5 y9 B) w4 [1 q$ F- U7 @' X#endif
2 I* `# X3 f _% Y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 v$ M6 `7 H, _9 p" D) V1 X5 r
3 k9 @+ F& u8 `#ifdef __YENV8 u* w: P2 F6 v' T) u
pLight->Diffuse.r *= 1.1f;
" D" G1 \7 v9 W9 V pLight->Diffuse.g *= 1.1f;0 Z+ W7 T: k" R7 {) E6 ?* T
pLight->Diffuse.b *= 1.1f;
+ w9 n3 j0 x0 [/ G7 c, J // oˉè* ??à?
4 t5 |8 A4 e5 E" k pLight->Specular.r = 2.0f;
. B2 W' v* r8 f" X# u- b- N# G, g pLight->Specular.g = 2.0f;0 H0 O D/ ]7 z2 ~" |, q" r
pLight->Specular.b = 2.0f;) t7 n% E$ ?5 F( s! Z! {
// á?oˉ
{. A& P% R$ y F8 S pLight->Ambient.r *= 1.0f;. n* k: U! [1 v) N8 K& B3 ?/ ~0 _- a
pLight->Ambient.g *= 1.0f;
/ |$ U/ J0 A* c4 }7 |& r pLight->Ambient.b *= 1.0f;
% s: Z0 e9 D& \ I9 d#else //__YENV4 I* J- H; Z/ K. k
pLight->Diffuse.r *= 1.1f;5 S' V6 D6 R& y4 Z- D
pLight->Diffuse.g *= 1.1f;" r/ i* X9 {0 ~) ~* ]2 ?
pLight->Diffuse.b *= 1.1f;
$ t4 {9 j3 \! u$ Y // oˉè* ??à?
0 R+ n2 B5 B* t( f% R7 `: H7 Z% U6 i- J pLight->Specular.r = 2.0f;
6 f: H! d+ C" ^1 M0 \ G pLight->Specular.g = 2.0f;) ]/ C0 v+ _% S2 G5 V5 |
pLight->Specular.b = 2.0f;/ ]8 g- I" \3 M+ }$ a
// á?oˉ
3 J7 X3 s& A1 i e! M I+ r pLight->Ambient.r *= 0.9f;
0 [! m! @% m2 y) J pLight->Ambient.g *= 0.9f;/ F0 a6 O' O9 ?; H) y( }1 U1 o, f
pLight->Ambient.b *= 0.9f;
$ Q. y! B' }" R9 ]3 d/ H. g0 w8 {#endif //__YENV 6 G; M } h- G/ H
5 a) t/ D! G5 Q, w memcpy( &m_light, pLight, sizeof( m_light ) );
2 V, V& J* C/ Z
5 E5 G8 j0 h* R D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
+ {: _5 G' r+ u# p D3DXMATRIX matTemp;
8 d0 O7 g$ y6 K, o static const float CONS_VAL = 3.1415926f / 180.f;% z; y. g$ T7 X* @% b- s
3 _8 p1 f9 d: {" p( C, N1 n
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
; z: J" L4 Q2 ?* l5 I$ v* J; Z6 k D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);7 {# S9 n# V8 d$ i+ q( E" ^# v
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ( l( }/ S: a" s3 P0 T* s0 o. E* Z
pLight->Appear( m_pd3dDevice, TRUE );1 w4 w! Q2 v+ ^# K( c3 P0 U
7 b+ B. x2 N/ n. h- e9 A5 W8 U // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' W) q6 E" H/ J) C0 ~/ u q6 G! ] E2 K
// D3DXVec3Normalize(&(vecSun),&(vecSun));
) U* I2 K- u: i7 R // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 4 Y% G6 N) H6 t: L' Y* o/ x8 f) O
1 _9 S" ~2 m1 n& r5 h
DWORD dwR, dwG, dwB;
# K$ C! V' w* b, [/ Z dwR = (DWORD)( pLight->Ambient.r * 255 );, H3 K8 Z# I) V: t- q# s
dwG = (DWORD)( pLight->Ambient.g * 255 );
$ n, t/ k0 `" M2 k; i8 U* _ dwB = (DWORD)( pLight->Ambient.b * 255 );
7 B( j; M( x) u dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* h! p% P. I! {' \' G0 I }5 |. ^% d- W1 Y0 Q7 k) W' X
}! O* {5 A+ r u9 Y3 Z# f0 e
, r; K' c, g* ]5 U
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
' b m; i5 t( R! L 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 e" O" s* U; ]7 ~3 N
::SetLight( bLight );# Y, n/ \7 C- O J" g4 _3 e
, N' ]$ }% c8 ^' f // ±ao? ?D?í???ó á¤à? 0 u! @! w: G3 j8 L7 E
m_pd3dDevice->SetMaterial( &m_baseMaterial );) I. o I( b- t) b' r0 s! b( u
0 ~4 O5 K2 A, `! b. N8 ~2 v# i2 }
#endif // not WORLDSERVER% s4 z# u/ T! |
}4 Y3 H1 [, {8 _$ O* @6 z
并更换
7 q8 w6 b6 \3 T5 O' N0 ?' mCode:
4 @ C( |# N7 ]/ c' {8 f__FLYFF_INITPAGE_EXT. g1 B; R( x3 J4 u
定义1 n) O9 K; c% j: h8 G$ J1 Y% O
' W8 x6 I# [: w/ _3 P J& {! X8 y0 `" \ N$ X: i
1 t* G) z( E$ R5 x9 w, n B
3 v0 F" E- S2 S. x* N- M现在终于删除我的狗屁加速...
$ c) F6 o0 [1 E$ r; N$ B1 h l) e8 p+ l8 O8 G4 h
+ ^) @) H4 c, e& F9 w# z
! f: u; \$ B+ @8 X5 D9 V9 N9 A |
|