|
|
食品车:
5 F2 C/ [! X# z( R# P6 y尾翼:( D) d: h, l; g1 r1 c0 Y, h
: d$ B0 Z0 |+ g. O代码:3 b4 O V1 C e4 s9 U3 |- {2 h! p: F
CWndAutoFood::CWndAutoFood()
& c% F8 L: e$ o% {{" s$ q* t( d* _& d
m_pItemElem = NULL;
* P; ?+ y( }/ n7 |' ] m_pTexture = NULL;
/ r n6 x7 G- r9 _ bStart = FALSE;
! A6 d& x) q: Y" Z* A}
& ^, Y9 a( h/ G+ e5 B% u
& b8 `, f/ T# R; j# M% q% ~CWndAutoFood::~CWndAutoFood()
& ~1 X/ s; m, V- M2 y k0 X' h{- m, Q4 A* z/ f+ v1 ?5 a
AfxMessageBox( "AutoFood ist gestorben " );- @; Z9 x' h$ v4 d
}- l6 q8 \! [$ V7 S3 J
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
! o3 ^7 G, T9 m8 p* x! Y' X2 Q9 N{% W6 {' t. B8 B3 ~- Z) B
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );5 F! ~- P# P/ S" g, |
}$ A; a# M3 c+ L2 s; d2 ~
% X$ L+ y4 @$ R$ N
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
8 E" Q% ~/ s7 \& f{
# ]! i# K7 X3 ?; Z' y LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
3 I) p& S4 C% N+ M0 Y# [ CRect rect = pWndCtrl->rect;4 c! o0 g8 D) p9 `. R% p# Y
if( rect && rect.PtInRect( point ) )
8 x6 q4 A* H, v: F6 x3 ]8 H; c {- a2 R1 q* [' z: E$ n; `# F
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );/ n1 y4 M) T; }" f$ x6 e
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
5 h4 d0 ]8 \6 G! q* ^% l7 X {: I ?7 G; [5 k# m! S% k. E E; N, u
if( m_pItemElem )0 d/ p. x0 |: j3 K; {
{
- k7 z( `; A& J, S! b" Q" N m_pItemElem = NULL;2 x# K& K9 b1 y }; [) w# L
}
% ?6 }2 {: T: n k m_pItemElem = pItemElem;
$ m9 R* _' v, z0 l" S m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! K$ J- v( f& a3 f4 Q" j) W }else{
|+ V* A9 P# n6 i* e3 } SetForbid( TRUE );
5 z! z0 i& e( ~. ^( j2 X }) _8 S" R H/ w
}else{, \3 u! T& _1 U9 K0 W/ K' [
SetForbid( TRUE );' L/ ]& k# H" I5 j# r& V
}( _, s; X7 P) n7 b
return TRUE;
4 A2 \. f" S+ C: E1 s$ _* N}
8 k, g1 z- Q2 w5 B/ e. f- S. h, R8 E& p) Z5 h! ^, V- _
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )6 P0 h- f9 ^' P
{7 m; \% G! Y) ?8 S, V! b
switch( nID )+ F# w: F1 A) d/ ` z: l( g& V
{
. T o+ d$ T, t5 T/ E+ ` case WIDC_BUTTON3:6 D3 b- ?! t( M3 V& z, }/ ^
{# l. U2 W% u% g l! C" C
bStart = TRUE;
( R _6 c- s; b1 b5 y9 K" ]6 @' t) e& v break;9 A1 A5 E% m; ], n) b" `" }6 O
}
. A- G( p/ n$ w5 ]/ U case WIDC_BUTTON4:
4 K( P0 ?' R" y% m9 P" w% L7 j {/ a; g _% y4 t3 L" J
bStart = FALSE;
) v% v; u1 P0 W8 F W2 B+ | break;
. @. z) j( S4 C }
& w$ f* ]% w2 y: a R }4 X; F: z. I/ X! C& Y) p4 e
return CWndNeuz::OnChildNotify( message, nID, pLResult );
+ A9 I8 Z9 g5 c7 S} # {5 c. K' @: ?3 ~' w: e
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
2 _" W w" _0 D, Y& H- y8 O+ Z{
# @5 r: i: q$ D- Z! ^ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );7 Q/ n; t5 h$ ~3 n: G( k1 a
if( bStart || !m_pItemElem )( T j6 X! B) n; b9 g( o* @0 [; A
{8 L" ~+ E( u' a3 I1 V" Y9 x0 ~" J
pBtn->EnableWindow( FALSE );6 N2 w) H5 x4 {2 D* V1 R3 Z! k
}else: c- A$ z, `: g7 n, q" J8 o
pBtn->EnableWindow( TRUE );
, ^/ |# N L& A1 F if( m_pTexture )
/ r6 e* v& N) ?! v( H- K- j {7 T+ j% V I% }& A# v
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: u6 \, N! S# y' ^
if( wndCtrl && wndCtrl->rect )
' q/ U3 { C$ ^* s {
6 n0 j7 g# A: q8 M, I9 i m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
8 N( K6 b4 g: C9 A7 \/ P. w H }( Q% x7 _% V2 k/ P) R' k+ J K
}& a8 @, @, ]+ F$ s1 l/ b5 e/ }, F
}; `' n% b/ T, p8 b. d
) [+ r6 ~1 b. o9 d4 p/ TBOOL CWndAutoFood: rocess()
2 c& A- k9 e3 E8 @5 _{
5 i2 e$ ?9 Z; c* q: a4 }2 l if( bStart )
2 @+ |* K _9 E) u) k" K {$ f, m. A6 k D
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )9 [7 l$ p5 I: z/ ?
{. b0 J) s9 |/ f! t
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )7 a- H" }5 j, R, I
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
4 F: Q" ^% G8 u. s* i1 Z }else{
2 u9 f9 N! c) m' D# F+ a* j; s bStart = FALSE;
- \: ^# F, i' |" O- p( B3 Y m_pItemElem = NULL;/ O. A. g$ V8 G' q* q
}" C# {9 ^* `; O S. t6 z
}4 u, N0 Z$ e2 x& U0 G! U) h% a
return TRUE;7 m# e& F7 l6 \, |# g& B
}& K5 o% J. L; v, o* i" |. ]1 L
5 S! ^! c' q M; n
登录视频废话:
: @. r, x& `+ T尾翼:* o$ P4 l" {8 c' _. G2 S! [: K# ]
) P% }5 t3 P3 ?0 \3 m _$ V% p代码:
# A- R4 E; B) h; E
2 P1 H' n/ N" l3 ^5 kvoid CWorld::SetLight( BOOL bLight )
" |* r1 ^8 r; Edurch& h% v6 O2 E2 O- A7 s. q5 f0 G
Code:) S) d1 d; m8 U( M2 }
void CWorld::SetLight( BOOL bLight )7 H [$ Z4 m# b1 H8 O" I7 e
{ m. u. m; r$ J6 E% }( S
//ACE("SetLight %d \n", bLight);1 t. L- O) \7 v5 T
2 f0 ]9 R! _, N+ o* g& R7 z
#ifndef __WORLDSERVER
- K F% {, l! `5 ]# l+ K# O DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);. D& f4 I7 B4 i' r. N
CLight* pLight = NULL;
0 [% o9 o/ ~$ y$ }# w6 L* n6 C% l1 D7 k4 ]7 D n) F1 {
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
+ V2 {2 H2 A) J R! E- [5 U& D9 g0 X
pLight = GetLight( "direction" );# K: U% A$ y0 S, z6 O" x* S9 I2 N4 w) q
( n6 _! u0 H; S6 N5 f% k
#if __VER >= 15 // __BS_CHANGING_ENVIR- Z6 u: p1 @6 b/ [. P$ K
if( g_pPlayer ){
% v; u, J7 Z% m4 o+ F" _ ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
; \$ D( B! S0 G3 O8 a0 t if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
2 b; s& L; a! K7 D9 H% Y { N2 B, J& O7 ~' @+ O# d3 f0 m) J
if( pLight )+ G% _& V2 l+ A- G! O% `* L" o
{
[! P7 R3 g' J. v4 t pLight->Ambient.r = pInfo->_fAmbient[ 0 ];, k% j6 s1 ?5 k2 L0 o
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
# S9 t8 L' ]$ D pLight->Ambient.b = pInfo->_fAmbient[ 2 ];1 S6 V2 R. R" X+ n, j( a1 R, G
+ S, ?$ j; Y! I% s& _: o' S pLight->Specular.r = 2.0f;+ m; j/ ~4 d: b- H0 C
pLight->Specular.g = 2.0f;
$ Y6 g1 S' i2 p9 ~! D0 \6 I: ] pLight->Specular.b = 2.0f;9 z- ? B. {5 A' o2 t0 G u
# }7 ?7 [( M4 c3 ]4 Q* m
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
: K! s2 k( ?0 a$ v2 Y4 A4 m8 S$ z pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
) ^4 H; |' L! G- A pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];# C) H6 N/ U( S, U) F
% U9 X/ A5 O4 `- q) F$ _8 R- y HookUpdateLight( pLight );
K$ m4 _; \1 a6 W
% P( g& r# T4 k6 A0 c+ Q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; i4 \) c- \& h5 Y6 l& h, m
2 s2 c( u- a! p; ]( C pLight->Diffuse.r *= 1.2f;, y( ?$ c- X1 m9 H8 u
pLight->Diffuse.g *= 1.2f;
5 u( @. t( c$ d5 Q$ ~ pLight->Diffuse.b *= 1.2f;3 _' L9 T; I* P& r
+ ]2 r* w; v5 t( z- j u6 F pLight->Ambient.r *= 0.8f;2 H s) X; q* Q& T: I" N$ U
pLight->Ambient.g *= 0.8f;1 m. v, e u( j$ v) C) y& K+ ^
pLight->Ambient.b *= 0.8f;
- L x6 n z' K' L9 j; u k5 ~. P& p" }0 P
memcpy( &m_light, pLight, sizeof( m_light ) );& T- R" ?% B9 h" g, R% e) _
: \3 C& j! o- F S D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ D+ H+ F* n/ v- P3 s1 B% o0 h: g D3DXVec3Normalize(&(vecSun),&(vecSun));
3 M# ^6 d3 X( _" H" @ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 X3 [0 U! \% ^! V( w pLight->Appear( m_pd3dDevice, TRUE );
/ x& j5 Z+ a2 X" @
, J9 }8 Y1 s% y: z r DWORD dwR, dwG, dwB;
+ U3 g4 e% N4 l. W, X dwR = (DWORD)( pLight->Ambient.r * 255 );
, U; W u- J# O8 f, f dwG = (DWORD)( pLight->Ambient.g * 255 );! ^5 K# \ n# ^! {8 j
dwB = (DWORD)( pLight->Ambient.b * 255 );2 P. Q: k. @8 r7 \8 G/ I
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );7 M4 n) {* g' [* d
}
; n8 @+ a% S' A5 |; r }
) T+ w5 l" f2 K1 o" ` }3 O* y5 I/ ?" ?7 J
else
3 [' G2 H; i( w+ i4 z8 D8 \, A# l#endif 1 A b V& a+ S V) ^
. E. z; K7 m- C if( m_bIsIndoor )
4 Y7 F: A( S$ I+ s$ Y% Q {
0 L4 J. b. G) [* \ if( pLight )
$ f( z. ?, o8 Q { " f0 ]3 j* W9 u( X3 K$ x1 O: O
// à??μ oˉè*
2 b# x1 n/ Z) n6 ]) w, N pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
5 |, C# Q3 G0 }) {' _* u% K& @ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;$ @( V) l9 [& X. Z8 u( b* M
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
/ N: _1 n+ E1 g* C) Z( u2 H% l3 h3 C( U1 V% o4 Q0 [
// oˉè* ??à?
5 e7 a) r8 u8 a! W. h2 D; e% c$ @ pLight->Specular.r = 1.0f;/ P3 v4 z- e) f
pLight->Specular.g = 1.0f;
9 R. s/ e8 E e7 c: F pLight->Specular.b = 1.0f;
1 U/ B% y0 S% `5 G' |( k2 N. p // àü?? oˉè* / e3 p J" m" c7 {7 ^! V
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;- ^4 H- o% X+ f: M# o
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
7 l" r' }0 F0 w( j4 t; K& `/ Q2 z pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
0 _; p+ T0 a/ G) z- Z: x2 X% |) ]8 D5 ?* v$ n, o2 q# y9 x/ B- F" r
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
$ Y+ K- {) L3 I1 v' ?) R: H5 H {
6 n5 R) [+ i3 }1 P% a4 ~) x d1 y pLight->Diffuse.r *= 0.6f;
9 [' y: t1 E3 G1 x: Q pLight->Diffuse.g *= 0.6f;
9 l9 U) K9 v, f. n0 D# ~ pLight->Diffuse.b *= 0.6f;
* u- i8 I7 d, A pLight->Ambient.r *= 0.7f;
6 l' u2 w! Z( v& @% |5 q pLight->Ambient.g *= 0.7f;" d: D2 u7 e% ]' R/ g+ Z n2 D/ U
pLight->Ambient.b *= 0.7f; {' y" E' U* a6 D5 R3 e) \9 L
}
3 J, V7 U R% X/ ?9 i
/ o4 R. n1 X7 \ h! y# X#if __VER >= 15 // __BS_CHANGING_ENVIR: p, c. O" S- G q
if( g_pPlayer )* U% N/ U' j" J. _* m, y
HookUpdateLight( pLight );
4 t7 x- m+ Z9 a' h4 l) f! U#endif2 t* ]$ e# g8 [# F3 m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. Q- H+ F; p9 h1 K2 @" \' R* U4 p
( \* Q+ p( |* k, N3 H- e6 u pLight->Diffuse.r += 0.1f;, @4 L" |4 x: P5 v. J
pLight->Diffuse.g += 0.1f;. B( r7 u8 s+ t, x" R
pLight->Diffuse.b += 0.1f;
2 x0 M: O, E( q2 w% p) |9 ~8 K1 I // oˉè* ??à? ' A: t$ @' e& x/ j" R$ y4 U
pLight->Specular.r = 2.0f;! {1 ^, K3 h. G2 z6 i# T. p0 Z
pLight->Specular.g = 2.0f;
) u9 q: f7 G. p. r+ F pLight->Specular.b = 2.0f;$ V. S6 `% g/ `% j
// á?oˉ , |4 x- {1 l3 |8 w0 ^* I% S
pLight->Ambient.r *= 0.9f;
+ e. k9 _" ~9 H, f pLight->Ambient.g *= 0.9f;
) L! f' x# u; c* J9 m# h! z pLight->Ambient.b *= 0.9f;" l" d4 h) n+ ?7 F
$ q6 q4 P3 d: |0 V
memcpy( &m_light, pLight, sizeof( m_light ) );
% F3 G4 j5 P( O 9 x" X, O3 L# ]- b
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );+ [% Q1 l4 f( q2 `4 X! t! X9 L
pLight->Appear( m_pd3dDevice, TRUE );' Y B4 O# x& p6 K! W0 f3 w
. H$ A! Q0 U* b$ z& v7 r DWORD dwR, dwG, dwB;
5 ^/ l- z" r3 ?* W( `! _3 H" R dwR = (DWORD)( pLight->Ambient.r * 255 );
* g1 s1 g! s8 G& _ dwG = (DWORD)( pLight->Ambient.g * 255 );6 O9 Q- m' C9 ?) z+ Z
dwB = (DWORD)( pLight->Ambient.b * 255 );. q! f& j/ ^$ Z" T+ w( k# p' i& J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
K8 V( ?$ ]& ~% w. C8 s6 B) ^- a }
+ y( `9 l ?. J$ ?& T& } }
2 _+ D6 f+ X; q, @ else
5 D/ l1 s' e' k' H {! n* U% x0 X7 _# e# U
if( pLight )
/ V6 J$ M4 M# ]! h {0 R& N2 D5 n E6 k- _% K
- G( @' E- G* {: D8 u, v
int nHour = 8, nMin = 0;5 _$ d1 H: ]1 l( y7 v5 y* T
#ifdef __CLIENT
, a' P7 d( X# Y$ } // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & g- X0 \& q( b \! T/ M# T
nHour = g_GameTimer.m_nHour;
8 x( {- p% ]; ~# ? nMin = g_GameTimer.m_nMin ;
8 l7 H1 L2 A9 s, U- u1 v* y #else
! ]2 K# M" u2 D // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.3 @' n" Q4 y5 w
if( m_nLightType == 1 )
1 ?' n( h9 E! W O! i. @$ a2 s1 w nHour = m_nLightHour;
! ~) [4 D6 Q" \" b& V& K #endif
# X! t9 T4 j: P) f3 t: g nHour--;0 X8 _ G) l7 y4 }% C3 A
if( nHour < 0 ) nHour = 0;3 f! _! Z: j" w9 I( k2 v4 [3 J
if( nHour > 23 ) nHour = 23;
& r2 ^. B6 A6 O' O& a7 K
% a3 t* U6 t- i/ j. `2 \4 E4 D //if( m_bFixedHour )
7 h' H* G( B" ` // nHour = m_nFixedHour, nMin = 0;3 f. b! Z- d- x0 D7 w1 M( C
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];3 u' _# p# [: H6 D; E% ?, X
LIGHTCOLOR lightColor = m_k24Light[ nHour ];9 V h8 O" B4 a8 _) E; H
( Z ]' C. D+ [; S; `- t% r5 g //m_lightColor = lightColorPrv;& c& @# v8 A9 o
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;$ k, ^6 Y0 K0 I( j/ Y
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;* o( R* Z& P2 e5 T& n
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
0 y- [" ~6 S: X! t7 V8 V lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
: Q- v( m4 ]2 O+ j! B; X& b lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
# G4 r- k1 A. N0 y3 i lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
Q* v% y' w' k% e$ ~9 S; e3 ^ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)( L) A' N" M+ V6 B4 D' o
. a9 S8 K$ j$ `2 E0 w: s: @. A
// à??μ oˉè* 6 Q7 F( N& ~" s$ f) a* `
pLight->Diffuse.r = lightColorPrv.r1;4 {( r; a' T+ H& L' ^
pLight->Diffuse.g = lightColorPrv.g1;( j0 m9 S: u2 z+ Q
pLight->Diffuse.b = lightColorPrv.b1;
. M: |: K4 l1 v& y& \' r3 Y // oˉè* ??à? 5 i/ H6 h3 s! z0 a. e4 _, ^
pLight->Specular.r = 1.0f;
: x! B' n6 e2 | pLight->Specular.g = 1.0f;
* @6 S- u. ^6 S+ K5 t pLight->Specular.b = 1.0f;8 q) B! i0 I6 f3 f) J8 x" \
// àü?? oˉè*
0 M' o# n9 _# c4 S( ~ pLight->Ambient.r = lightColorPrv.r2;
. B% k0 _* T$ Z6 E0 V pLight->Ambient.g = lightColorPrv.g2;
- Q6 H$ n% j% H pLight->Ambient.b = lightColorPrv.b2;2 e) [9 w0 k3 T( g
- p8 d/ I( q0 y7 D/ v
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
/ m- z- D1 H, V {
( g: [1 Z2 }+ ~) ]( X' x2 u% [ pLight->Diffuse.r *= 0.6f;
3 X; V1 Z6 F" u( J+ o pLight->Diffuse.g *= 0.6f;
+ C7 i+ r0 a6 e% H% w6 o& _' U pLight->Diffuse.b *= 0.6f;
9 Y+ s' k% R, ^$ C" \9 ? pLight->Ambient.r *= 0.7f;
, W( e9 P) S3 O# o7 ?+ H4 C" K pLight->Ambient.g *= 0.7f;# ]- @! ^, E8 ?" Z( W2 e
pLight->Ambient.b *= 0.7f;
3 [( F: R; X, A) `, J }
7 D" h, A4 Y% k' D/ K' a% y v+ q2 |7 X: n4 n- t
#if __VER >= 15 // __BS_CHANGING_ENVIR7 W9 {/ i, O5 b4 {0 y! @& F; D
if( g_pPlayer )
6 m* C0 [( H* q. F HookUpdateLight( pLight );
3 ~9 U% G) I3 X4 j#endif
! c7 D- N# S& A7 B4 | memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# u4 z, `' M! Z+ ^+ q# h
8 y0 x( N6 }) ]9 [- J* Y/ c
#ifdef __YENV ~4 k' |% l, g9 w5 l
pLight->Diffuse.r *= 1.1f;4 N5 s( J; b' i- g1 n a9 ]% L( K( j
pLight->Diffuse.g *= 1.1f;
& o8 C! E( t) G! V pLight->Diffuse.b *= 1.1f; [* y1 z0 G7 i' Q4 D8 L2 ?& u
// oˉè* ??à? 4 {; T2 y, o3 W0 O3 g: _. ^
pLight->Specular.r = 2.0f;7 s/ q4 a8 Q z/ h% w
pLight->Specular.g = 2.0f;
, H/ h' L* s2 |( T pLight->Specular.b = 2.0f;$ }6 ~) A& M4 v2 P5 Z1 ]& E
// á?oˉ / K9 v2 ` B/ p- z5 ]1 Q5 s+ ^
pLight->Ambient.r *= 1.0f;
- v0 y) o6 Z4 O7 q) N6 Z) | pLight->Ambient.g *= 1.0f;: a. q d' U* n7 A4 V$ b
pLight->Ambient.b *= 1.0f;8 u* W# ?8 w6 |& A1 B
#else //__YENV* m: g/ D( G* V2 N( L
pLight->Diffuse.r *= 1.1f;7 _: E0 H5 [4 {: E' H# c
pLight->Diffuse.g *= 1.1f;7 F! O" d# j6 j5 N
pLight->Diffuse.b *= 1.1f;" O) T$ ]8 S3 G1 R d# ]
// oˉè* ??à?
% d3 [# e7 d* A4 v pLight->Specular.r = 2.0f;" d* p7 T; r: p: W8 A
pLight->Specular.g = 2.0f;
2 e( g! }: |6 ]: h pLight->Specular.b = 2.0f;0 l: V0 y. G! u& P9 u5 ^+ j
// á?oˉ
& p6 X. U+ f% ^3 t6 n pLight->Ambient.r *= 0.9f;
) Y, A) j* v4 z0 R% L2 b% { pLight->Ambient.g *= 0.9f;4 c8 ^% k4 t3 b' R/ X% M+ A
pLight->Ambient.b *= 0.9f;
. D$ y7 j) h. E: O3 B#endif //__YENV 6 h2 U$ L3 d9 F4 x% y
. i6 B* {/ G; C+ l _1 R
memcpy( &m_light, pLight, sizeof( m_light ) );
$ x3 @# B8 J1 l0 O
- ]% ~! q U! G% y" H: N) F D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);7 |, h" e4 v$ e" A' w( i
D3DXMATRIX matTemp;+ E4 w" t# M8 L+ s( B
static const float CONS_VAL = 3.1415926f / 180.f;4 ^/ f; A% h8 q! y
9 e6 F" Q Z2 f% n D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
- r5 D1 v" U: A4 h1 C, b! ?7 Q1 |: Z D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);8 ?+ w7 W ~0 Y1 u) p
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
5 d( l1 E% x1 ` pLight->Appear( m_pd3dDevice, TRUE );
% ^" l6 M4 n1 X. B0 ?8 |
! U! _% `4 }6 ?! a! l$ u // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! L6 ~: E! ]8 L) Y- B6 d% }
// D3DXVec3Normalize(&(vecSun),&(vecSun));
( m; O+ M x/ e' p/ ?. R Q& Y2 Z // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 |" x; A* O% J, y- g5 g- |8 a; z' P$ e
DWORD dwR, dwG, dwB;
# }6 `- P3 _" e' X dwR = (DWORD)( pLight->Ambient.r * 255 );3 G/ p+ ^6 r2 i. Z) }% n, Y1 d7 O$ q
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 r8 y/ y* A' T* [' C+ X- U o: e dwB = (DWORD)( pLight->Ambient.b * 255 );4 q" _3 l$ {4 B* X/ r: `8 F( `
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 ^$ }6 E2 b8 R, u) R% S) @ }
+ r% a+ [% O& ^1 ~& l6 \ }
/ M' Q0 Q5 @2 I) d y4 U( S
$ ^ {& e1 l* W; x2 }' T3 P: b m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight ); T) N2 @; v \2 a* l0 A9 l4 R
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) );
: y- S1 {& _( P; U: { ::SetLight( bLight );
& \# g/ c7 D% t- p, B2 `: \; N3 @% ], K7 v+ [- X
// ±ao? ?D?í???ó á¤à?
, C% A& S5 n6 j; }/ B: f! c m_pd3dDevice->SetMaterial( &m_baseMaterial );
4 t9 M0 l7 X" x) X 2 n' `. Q# m7 Z$ I$ h, R' ^1 j
#endif // not WORLDSERVER6 |5 M' S6 H# ^- K: E/ ^8 ~+ P/ j) x
}
/ O* P6 m( |8 f0 x并更换
; H3 p7 U1 L g5 v9 i. Q5 i# l7 GCode:
! m: A- x" Q7 q__FLYFF_INITPAGE_EXT3 q3 Q( }* _( J
定义
% U, N5 c* \; b9 d
7 E6 S# x) J- X
0 _4 e) r* r. b& D
3 M4 }, u- R+ Y- N& t% m C8 F* |" l- t# q" E0 n: ]
现在终于删除我的狗屁加速...2 s; C' L. ]1 K1 ]( G
; m: ]" x/ B) P' t5 F7 n/ @6 C
% a6 j* y' L+ ~% o ~
' K& P, a( }4 M: L4 ]$ E |
|