|
|
食品车:% @3 J' G2 M" m9 T5 j
尾翼:8 d2 k; e1 m u3 r7 E
8 V* B' m: C" E* c2 A4 Q代码:. j3 }! Q0 c4 P
CWndAutoFood::CWndAutoFood()
8 m( C1 m9 @& ~- a& ]- I4 ~{/ Q6 z" B/ w* H) b. q0 U+ e
m_pItemElem = NULL;# x: ]8 A0 o- h/ Z0 @3 D9 B) N! Z
m_pTexture = NULL;# T, H. V p* H
bStart = FALSE;4 n' M% V$ R, [2 p6 t# \
}
, B+ J4 _* k" }
% D$ h& D# r2 {, g( GCWndAutoFood::~CWndAutoFood()
0 l2 o9 O1 J2 v0 i6 n% r/ n( {{
: j0 O# j3 u+ v- S! I# \ AfxMessageBox( "AutoFood ist gestorben " );2 ^; Y f$ S: t7 U+ ?
}# O+ u: t+ V# @. }' z
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
% {: A6 p t' j5 n{6 m( P1 Y( b+ N9 Y: y
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );( w5 i' t- j# A! L) N& C/ d" Y
}+ L$ W) J) }$ S3 Q/ m; i9 Q
0 p: Z0 X9 x8 R( z. C
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
6 g0 R" T4 X _3 C% l{% s$ L$ s" k' |( c. b! V
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% W0 P7 I; P) ]7 p9 p* i8 \4 g, P CRect rect = pWndCtrl->rect;2 L" l4 t! p' O: R+ |( x
if( rect && rect.PtInRect( point ) )# P6 j" q6 l5 r3 _/ E0 M2 p3 u
{% g& O7 b, s6 X5 a6 q2 U+ Q
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );. L. G0 J. L' p! y, ~
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
9 Y" R. i' e: h$ J) Y+ r z {
+ ^% ^. O y/ Q if( m_pItemElem )
" e# ~; ?0 f& }+ Z$ m& Q0 K {. j4 A0 s7 H2 R" }
m_pItemElem = NULL;
9 v6 S7 |' A. \ M( L: I& P* P5 ] }
& q/ Z- _# T' C8 x$ ~$ w2 x m_pItemElem = pItemElem;
$ q; Y' Q( S0 X: {2 Y: y" d m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
. W0 E: ~9 ], W2 v( n }else{
: f" |1 {' \. ~$ h7 r1 g, u SetForbid( TRUE );# g9 s% e0 F/ d; Q7 J
}
! m2 k5 s: ?$ {# e/ T% v4 l }else{
# j8 U/ M9 z$ V- e) l SetForbid( TRUE );3 \2 w$ _3 e5 F5 L
}" o% v: h5 [& n/ D0 s% ~
return TRUE;
: f2 T" y* ^- N}- s/ g- ]( |5 }0 `* t
3 y% z0 D/ Q% f, wBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
; D; H. z5 w0 [4 J8 j; ~{* x3 h4 |3 K9 d$ |( @; H5 x7 t
switch( nID )
5 L) U2 \" m' e4 ]: Y {8 e* k U" ?1 A8 {) L. L5 n
case WIDC_BUTTON3:# y2 K. E0 P9 e I! K
{4 H3 }9 M K1 L+ v+ g/ f- _
bStart = TRUE;) G$ l9 u& O* t( Z9 e8 ?
break;+ e" K5 p- h- A! V/ \* D
}
( M, O# Y3 \, ?0 ^ case WIDC_BUTTON4:/ a8 I5 n8 d8 [. I8 B
{
9 }! j% M8 v' x4 |& ~0 [ bStart = FALSE;* u$ I4 B4 K9 l0 j# p/ ?
break;
5 I' G5 ?* W$ o/ ~, D5 B" ?) N" @3 b }9 A! Y. j# E6 Q# T
}
& t5 J! }' f% S2 g return CWndNeuz::OnChildNotify( message, nID, pLResult );' z, z L1 @) [6 Z( a" A$ ]% p
}
{% W) L7 e8 t+ i% ?# Dvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
9 T- \: N( q' H x8 W; z{1 G/ r d9 ^ r% R: |% w
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );! S D2 q9 A9 [2 H
if( bStart || !m_pItemElem )
' h6 j1 o/ O4 A8 a { y$ e8 |: j0 [+ D" J8 g% C
pBtn->EnableWindow( FALSE );5 N2 G7 f# V; D: o. h
}else
# r5 y. ]) @+ s pBtn->EnableWindow( TRUE );9 ?5 a/ Z2 r0 h/ q- T
if( m_pTexture )
- {3 f" ~( @8 A2 `& V* |7 u, T, z, Q {
% _' n/ C7 g+ H& H5 i, w1 ]: H LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; h! D7 @; T, h% z% q& e if( wndCtrl && wndCtrl->rect )/ d4 @) W# l$ {) x! h$ _* q0 m1 H
{
7 c* S9 A5 Y$ w+ K! C m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
3 {! p4 q" g9 p }
4 D9 G* P0 m, E3 m1 x8 i' p }
8 e7 i! q& Q0 v8 n$ s1 @" w1 T}
! i, q, I3 R: S+ }1 s6 m. z$ f/ @% w: U# U/ E! T) m
BOOL CWndAutoFood: rocess()
6 V* O# j. C% u{" K: K# h8 a# z/ B$ P2 B$ Q+ Z- O
if( bStart )( k) M6 B! [+ a* Q7 z( e
{3 C! U* B1 z9 T
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )1 a9 }3 m" p5 W5 i
{
$ ~" W o! E% k" _6 \ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
+ S9 }% Y! H- x) C+ o% S g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
& [! i; t3 s; s9 v+ S ` }else{, I9 Z" G4 P; t4 a* O5 u
bStart = FALSE;
- O8 }. R0 o+ c8 m m_pItemElem = NULL;
) o' x2 x! q: P }
! M$ u+ ^# n& H1 D1 b$ ?% x4 L/ C }( O) S @4 d1 B: R/ | w3 k p
return TRUE;2 m9 Y [* `( Q$ ]$ |
}
5 G$ s' j) j* p( O- e& |$ d) x, V8 ?- H2 X
登录视频废话:% d: N. d" `* M {, ~
尾翼:
0 \! \) X8 [: u4 n& @2 A
$ E/ F. w2 m5 Z5 W8 |5 d代码:
8 o) K: |# O/ y+ O: z4 R' i" E! m& j( U1 F- R
void CWorld::SetLight( BOOL bLight )9 j7 u& S( \; J) C2 w+ k
durch
8 ]2 H: z4 c& w8 ZCode:; S+ I( i' ]) u/ Q7 X# I7 F
void CWorld::SetLight( BOOL bLight )0 G$ W# y) ] E
{4 M. K6 v0 g6 f6 `7 _- I" e# R' z
//ACE("SetLight %d \n", bLight);1 R2 L3 ^' H$ F6 \( w' e
9 c3 z2 P2 w( K9 ^- r% Z
#ifndef __WORLDSERVER
0 w* u* p9 T: N: Q$ z& E DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);/ k/ L0 e$ e7 q$ I
CLight* pLight = NULL;) @0 W3 V0 z! O0 }0 C
; i6 H( X( a7 I; S0 |- F8 Q8 z+ c D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 h; g' Y" }# d( N2 }0 O& ^: N6 |/ x+ L: `
pLight = GetLight( "direction" );8 Z* X+ G1 J# [9 x1 s1 Y/ h
7 g, h7 o0 d1 I% U+ j# T
#if __VER >= 15 // __BS_CHANGING_ENVIR! D* Y2 n; m7 X" l4 t+ \- q2 z3 u# J( x
if( g_pPlayer ){
Y6 l4 Y! q4 I/ p ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
( m6 d' D! u: z. x0 f& C if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!" U6 A; c3 @- D2 O
{
3 u% _( n% ~8 b if( pLight )
4 @4 w5 ~: l9 h5 B2 w G$ F: }7 u8 | {3 i) N4 B6 v! M1 N |) p4 Q; I
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];+ n( l+ F; o. C z3 @3 o
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];' V3 }( Z V% Z
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
" ], D5 V5 |& a
; g0 Z! a9 c3 S5 L. @ pLight->Specular.r = 2.0f;0 ^4 G5 n! j% C$ S
pLight->Specular.g = 2.0f;
* o, J k8 m) v4 y2 l pLight->Specular.b = 2.0f;0 \2 S. ?' O z( J2 T4 z* P
" @, D4 V$ X# L pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
( @5 c* D; Y. u" w' {. E$ l( g pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
1 R6 @) J0 R3 w( D* Y' ~9 ? pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
3 z/ o8 l) K0 H, Q . h+ X# P0 C" R5 F+ V9 Z
HookUpdateLight( pLight );
# W; e6 V5 K3 p
+ o( V7 R% u& X" L* t memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ l$ b/ \7 m u& f! z* v2 i4 P
, w% |# K; [1 P6 ?4 P6 { pLight->Diffuse.r *= 1.2f;% D+ @4 n6 @5 M4 {
pLight->Diffuse.g *= 1.2f;: r+ ]4 K& \% h1 k: R
pLight->Diffuse.b *= 1.2f;
0 Q0 ~8 F+ ^5 ]; Y( s) I
$ {+ ] M/ V5 V4 k% o pLight->Ambient.r *= 0.8f;
+ `: S; D. f# F% q0 L2 p, Q7 _ pLight->Ambient.g *= 0.8f;
! |# {- g, u; j5 ? pLight->Ambient.b *= 0.8f;' t% r$ P5 ^# z+ N9 p9 [
7 j) b# h' A, m3 g" Y+ a/ t6 W3 g( J memcpy( &m_light, pLight, sizeof( m_light ) );9 i$ w* H4 Z3 v! O* y9 q
9 N( H8 l( O/ R: _1 k. Z9 _9 s
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
5 f, Q. Z2 F) q5 u- ? D3DXVec3Normalize(&(vecSun),&(vecSun));
/ ]5 _# x3 U4 u: P pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, b8 A9 N8 r- S$ _) m pLight->Appear( m_pd3dDevice, TRUE );
0 `7 v: p- ^7 h& d
- q" K; m) |' v$ w) h DWORD dwR, dwG, dwB;
$ T9 t# }2 u% }+ m J \' z dwR = (DWORD)( pLight->Ambient.r * 255 );/ V5 w ]5 N+ A, f8 W
dwG = (DWORD)( pLight->Ambient.g * 255 );
_/ b; x+ O- P- v7 ~ dwB = (DWORD)( pLight->Ambient.b * 255 );
/ r1 O# ~& B' l& [, E1 ^% ?$ { dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) @) p4 \. k0 i' B }, x4 p- N) u/ ]+ ]7 A! L
}7 V- P- ]7 N1 V% A! @) V2 \
}
0 y9 P1 ]9 v" i6 `5 } else
; T9 w5 |/ ~+ c4 `#endif - E! z: R7 X/ ^; c, ^$ K
" ]' F. l& H4 | v% T if( m_bIsIndoor )
4 F1 b: p7 p$ ?/ Z* J9 E" S( d {
9 u. r. k, W1 A/ h" T( S if( pLight )6 y9 A( X! z1 r: u) w; N9 \: l
{ " t' } f! F+ |: y# ?- {
// à??μ oˉè*
7 |, N$ j8 v) m# x* m pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;7 Q8 O0 i) N. }) z
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
+ S Y, f+ C; S: f pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;) I6 J* V% X, L* P+ G
. t- A, z9 E8 A" O // oˉè* ??à? ) K( K, z+ g u
pLight->Specular.r = 1.0f;
1 ^4 P( n8 N( r' B1 ?2 @ pLight->Specular.g = 1.0f;
) ^& l% ]' Z) [! ]7 A5 } pLight->Specular.b = 1.0f;! p% b. ]# m. C7 Q) M; ]* C9 D
// àü?? oˉè* ' s' T R+ Y6 R" N3 n9 q+ ~7 y# x4 ?
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
/ x' b, v2 l d" n% W- m5 Z4 I$ r3 O3 P pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
: d& Q' m0 L- f$ c" C8 G7 z7 ] pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;# K! H9 y- C1 }, V5 U* t
8 T# U' K1 p4 u4 { if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
0 O9 V$ E% T2 _ {
9 n6 {( c# ~% M$ s8 f1 f pLight->Diffuse.r *= 0.6f;' s2 t. O7 m/ |+ Y$ X9 n
pLight->Diffuse.g *= 0.6f;
" M5 F; W& m L$ B0 F2 b3 B, A- | pLight->Diffuse.b *= 0.6f;
- @; x+ Z, h( |, n8 Q% c; n; ? pLight->Ambient.r *= 0.7f;
4 ~2 V( S1 o& R pLight->Ambient.g *= 0.7f;- A) G6 D' v+ U
pLight->Ambient.b *= 0.7f;- S( S8 g: I$ _2 o9 X& W( b
}7 s7 z) }- ~7 {) }7 {3 T
0 R+ B% e1 A% K+ L( b8 T4 i#if __VER >= 15 // __BS_CHANGING_ENVIR1 E V) [1 E% U6 q
if( g_pPlayer )
! j; e% R" k. r5 b HookUpdateLight( pLight );
7 a( S& l* U1 s. I, J% S#endif' R( S ?5 M) c6 G, i* T! y
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% l4 R* ]3 U) Z0 h* M8 ]& A& P, p0 o2 Z9 X: _8 J
pLight->Diffuse.r += 0.1f;
3 R& C7 B1 }) n4 @3 Q, g g pLight->Diffuse.g += 0.1f;
. c" B2 }; M: P8 V, c" E" F8 v pLight->Diffuse.b += 0.1f;
* z/ V+ ?0 y+ L! x0 l" R // oˉè* ??à? 5 Y4 ]4 T) \ @
pLight->Specular.r = 2.0f;
/ p/ X( ^. \% C7 t( Y) b pLight->Specular.g = 2.0f;
& W( f) g2 L* @. V' P( [ pLight->Specular.b = 2.0f;
! ` Y2 T( s/ u* p# ~ // á?oˉ ' j( x- ~. h, r/ i0 S
pLight->Ambient.r *= 0.9f;
4 ~3 M$ g) m5 ^$ w, p% r, n pLight->Ambient.g *= 0.9f;% e0 S6 r( b* g& k( T
pLight->Ambient.b *= 0.9f;
8 f3 z( _ ~! p5 |4 Z) H( q4 ~4 D( R
/ a* E; w" H; V3 Z6 P' b0 O memcpy( &m_light, pLight, sizeof( m_light ) );( h6 ?6 V F8 ~& {% }5 I! V0 h
0 l1 h/ g" h# [4 A4 k: C; l! f; }
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
" u+ r6 K ^- [. N pLight->Appear( m_pd3dDevice, TRUE );
1 F/ M* [1 m7 W1 w
$ `& U) m+ O0 _/ u) ]) t3 [- f9 C$ n DWORD dwR, dwG, dwB;
- t/ |9 l# T0 C3 v dwR = (DWORD)( pLight->Ambient.r * 255 );
% u9 k& F0 w4 n% w }8 y dwG = (DWORD)( pLight->Ambient.g * 255 );
. g. y. _$ _$ v6 z) V! r dwB = (DWORD)( pLight->Ambient.b * 255 );, ~" z1 M' L' R+ H: Z, ?
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 r- A5 i, M8 l# B8 G }4 ?3 v; @% R4 Y# T! I
} b0 \: ^9 Y. o6 i6 b, F
else+ q6 J& K( g8 z! t x5 ?# `2 z
{
1 F/ W; {) X' Q if( pLight )
( c% @. w( h) w8 L0 P& P/ u! ` {
' F& _. m( W, s4 [5 l" E9 A8 G- j # U8 v1 _6 s% b" J
int nHour = 8, nMin = 0;4 N( u( c1 @4 F( K$ T
#ifdef __CLIENT
9 ]1 X7 f* ~7 d$ n# [+ H: Q( f // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
" J2 \, s, N2 g% u nHour = g_GameTimer.m_nHour;
- Z& e" D) {4 X. |) [& j; _/ S nMin = g_GameTimer.m_nMin ;
$ v) t' ]& K# g8 h/ c% j# i0 \ #else2 C4 _* t0 I5 K' P
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
& g* e, _1 Y, S( H0 E; @ if( m_nLightType == 1 )! {, S v( `8 o) ~& T
nHour = m_nLightHour;
: q# _, y8 E0 C1 n$ d #endif
% f( Z# S1 S! b4 k nHour--;
2 _# u# s- D! \/ W; u" E& Y; k if( nHour < 0 ) nHour = 0;! o O- G! u6 X3 w. l$ w* e+ X! R
if( nHour > 23 ) nHour = 23;2 R" M9 g4 ^' n% E
/ J' u) h9 P C& l6 I. I& x //if( m_bFixedHour )
- R: S9 g2 ^/ }8 d9 m# F' q V; d% t // nHour = m_nFixedHour, nMin = 0;
- `% I: E! L- x LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];2 A0 Y( k! ~$ T% D% v7 E
LIGHTCOLOR lightColor = m_k24Light[ nHour ];+ a. X S7 l2 f* J) T
3 g# G4 f% D7 ]6 m1 e, s5 E //m_lightColor = lightColorPrv;
2 x5 v! u: q1 `& R lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
& _1 [* [6 ^7 y2 a9 i7 n3 `/ h5 z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 [& v7 H' W5 I% S3 W lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;9 ?" \9 d. w, Y
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
S8 q5 H! c B0 g/ I) f4 u1 C, [ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;% \# f& m" ?9 D8 G: W8 g, s
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
% }& E# ?$ }' v1 m4 ?* t // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)4 \6 o& F) M" W$ T
5 A0 j% z7 N; Q, Z" O+ c5 c7 V // à??μ oˉè* 0 q9 a8 ]+ O! I- A! j7 t3 a
pLight->Diffuse.r = lightColorPrv.r1;: X Y4 z: O- c' a& |2 K
pLight->Diffuse.g = lightColorPrv.g1;9 P6 Y8 P7 b d& l2 C: [7 B
pLight->Diffuse.b = lightColorPrv.b1;
. C2 f- M! S% i, R // oˉè* ??à? : _. k8 ~% ~) D+ @% Q$ e
pLight->Specular.r = 1.0f;3 v# e2 T' C4 M( z/ u/ ^; ]
pLight->Specular.g = 1.0f;0 \7 U6 ^$ e; Q; g7 P
pLight->Specular.b = 1.0f;" \" n9 E1 l4 I. {
// àü?? oˉè*
2 ~, c0 p! M6 | ?/ _# s pLight->Ambient.r = lightColorPrv.r2;
5 C) Y' y7 i/ E pLight->Ambient.g = lightColorPrv.g2;
1 p6 x! _& F. i, b" e# v0 m pLight->Ambient.b = lightColorPrv.b2;) a# i" s' W K7 a4 S# z
& B$ y6 F- L, V: i0 W7 \6 x0 A if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ d! B* H U% n
{
6 G7 j: p: k* E0 ?& m4 v, u! }( \ pLight->Diffuse.r *= 0.6f;
+ y$ ?& m( ^7 o. m3 Y2 @0 J$ C pLight->Diffuse.g *= 0.6f;! g3 j' z8 q! E& Y. y2 j
pLight->Diffuse.b *= 0.6f;
# \+ S5 y# L+ |# _ pLight->Ambient.r *= 0.7f;
& c' R0 c0 T5 L) s+ G pLight->Ambient.g *= 0.7f;, c B! A# q# y7 N
pLight->Ambient.b *= 0.7f;6 S: s8 T' Q% C6 {+ i, M; i
}# h) }8 ]' O4 F6 x" O e Q, z
6 j7 N8 x& j+ r7 O7 w0 J" E( t2 C) } `
#if __VER >= 15 // __BS_CHANGING_ENVIR. F n% ~2 y: r2 Q! K5 u1 K' i
if( g_pPlayer )
, ~/ K% H# O$ i. V HookUpdateLight( pLight ); 0 R' a0 Q* r. v( Z( j/ c: t
#endif
% y# r- S b# ]2 c6 ]* S5 L memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); N2 t% L4 ?9 w; F+ D
+ z' Y9 y% y+ F#ifdef __YENV h/ y+ z4 M6 Z; c' V9 n
pLight->Diffuse.r *= 1.1f;( X0 K! S# F! j; p
pLight->Diffuse.g *= 1.1f;: t' @' z4 E& o1 \" T5 x
pLight->Diffuse.b *= 1.1f;9 n9 D P4 ?% D% H0 {% I
// oˉè* ??à?
9 E" |! n) G8 g" I! ?1 I; ?3 b k: Y pLight->Specular.r = 2.0f;8 O+ c# s3 i& g5 M2 U
pLight->Specular.g = 2.0f;7 f5 L, M7 W# n+ X
pLight->Specular.b = 2.0f;
2 P, @6 h/ f3 Y7 v" }* e // á?oˉ 5 L' {6 y+ C; G2 q; A. H5 S0 l
pLight->Ambient.r *= 1.0f;8 h4 e6 G7 z6 L$ ]/ R
pLight->Ambient.g *= 1.0f;! P/ p; l, Z) \/ b; ^; |
pLight->Ambient.b *= 1.0f;; j& E* l. d' L1 n. p3 l
#else //__YENV
1 [2 ^; G8 e* s: y$ v pLight->Diffuse.r *= 1.1f;
; R& v; J5 ^! g5 }+ ]* K# Y3 ` pLight->Diffuse.g *= 1.1f;
6 {# e9 j0 u8 G4 k; S' Y2 k pLight->Diffuse.b *= 1.1f;& `( B1 H7 m/ C5 @7 }: Y; R
// oˉè* ??à? ' X: n$ Y$ ? |: L! ]
pLight->Specular.r = 2.0f;
+ @6 K: e9 W- [$ ]( g pLight->Specular.g = 2.0f;$ K4 @5 p2 v* K: H/ l
pLight->Specular.b = 2.0f;
2 M# c/ o# D: d1 n // á?oˉ . u1 j8 p& v. @( @2 e9 ?4 j
pLight->Ambient.r *= 0.9f;
+ o! |& A0 \7 T- X: s$ p0 e0 V pLight->Ambient.g *= 0.9f;
2 P, c3 h9 g9 l0 w0 t0 m pLight->Ambient.b *= 0.9f;# i" \; o4 b4 e+ g" b0 g5 V% I
#endif //__YENV
\1 n& M( D4 U4 G2 H
. d& G, o! e7 h( J memcpy( &m_light, pLight, sizeof( m_light ) );
2 j. Q8 y5 ^2 W) y, G 2 c1 P2 }0 _/ H6 b; R& [% E
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);- E" F. S/ D0 S; Q: q
D3DXMATRIX matTemp;
( I: x, g) L, W6 ] static const float CONS_VAL = 3.1415926f / 180.f;
" L8 O @& |: s+ l% ~. {- _5 S/ L* D1 l$ _) _! b
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);" D7 i5 B& ^5 f7 P. q4 a
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);$ d( P! D3 w9 X/ L
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
7 @( x0 P4 Q4 t0 `. r+ e4 \9 o pLight->Appear( m_pd3dDevice, TRUE );! l4 ]: ]8 _2 P! A1 f
3 m! `8 M' v9 b1 W. G" g
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
3 ]+ t @) ?- \6 o: b3 J% f7 E, C* ] // D3DXVec3Normalize(&(vecSun),&(vecSun));/ d# L. E5 y/ b6 @& s' Q
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); * @1 A. K; N! H
1 _+ A8 h( ?; B5 `
DWORD dwR, dwG, dwB;+ T! ?3 D$ v9 G$ p6 o) q
dwR = (DWORD)( pLight->Ambient.r * 255 );, Y8 J5 z/ P u; f7 q
dwG = (DWORD)( pLight->Ambient.g * 255 );! r( m) k) T' T" R- J z! |; N
dwB = (DWORD)( pLight->Ambient.b * 255 );
- D+ t& j7 a! A& L5 A; M+ E dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; Y, l* z8 f/ w. } }
+ c% k, G+ C6 f1 ^6 j }
% Q; z2 ?% | W* `
! x4 \: ~6 P5 }8 p' u m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );) q/ I6 |+ u$ p7 O0 k6 K4 @ v
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) );
; O. w. P1 Q* Q: t ::SetLight( bLight );+ s( E1 g- |; f) a! Z. H
" i$ @+ }- d; q; G
// ±ao? ?D?í???ó á¤à? 4 @6 o* _; ~2 ?
m_pd3dDevice->SetMaterial( &m_baseMaterial );
8 f- e6 {3 Z. E+ M% v; z/ G
0 t7 z/ H7 V1 y8 i8 K5 n' |#endif // not WORLDSERVER8 h4 y! f, w' n/ \5 s4 C9 k
}. _# Y; M" _: p# V
并更换
+ y( R1 x( j" A% n- x- a5 i4 pCode:
8 W/ z! d! m. K9 O% u__FLYFF_INITPAGE_EXT
8 M% p; Y, U: C" Z6 f+ u定义! v, N, Y! J" y* L, m. J3 g
/ l: Q8 D- m$ N" ^/ H9 O c) b
/ b/ ~& j( V2 F" p* k" U% y
: s+ j/ ?& J7 X) j' c/ E
3 K+ Z" m* m+ L! K. \3 P现在终于删除我的狗屁加速...
5 b& c- p) D( L& H) F4 |3 g5 _6 Z1 H0 B9 R v( o4 }
$ q1 k! @: _& K! n5 P6 y/ w/ W6 X+ ~' n9 u; _
|
|