|
|
食品车:
& u2 |2 S1 z1 ~ e" X( a0 g尾翼:
+ n5 Z$ f" B- V, t1 e( Z3 N' i* {9 i$ Q! D
代码:$ {& K6 a$ n" X4 m: @6 k* B
CWndAutoFood::CWndAutoFood()6 Q7 Y7 Z& e- U
{
) H5 Z" f+ R% M' Q1 w2 E m_pItemElem = NULL;
1 I4 Y' U5 x' P$ t9 l+ A m_pTexture = NULL;! ?& E+ J( x: d# E' |
bStart = FALSE;
8 F5 `) B2 K: H* L}
- \ l2 S, ^0 @: }, v! n* U6 d' C9 D$ q& h: S1 C
CWndAutoFood::~CWndAutoFood()% u% s: D- z O" m9 |) V
{0 M- Q( C, a1 ^) ?- R; l
AfxMessageBox( "AutoFood ist gestorben " );: o$ P2 g; q3 M" H1 W$ j
}
2 Q5 k8 u5 D8 n1 M, S3 x" T' QBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )3 Z: `5 o+ M5 I2 k
{
- L! q; L7 _5 z) i: R6 j% F return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );" s- x# o. _$ f. F, L
}
y/ l" g0 y+ r5 f3 Z- _
/ O) E5 [! D7 J6 v( t# L n+ [ xBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
% \ G( V y* q* f: u5 @{8 U! k$ q3 @' c2 K, E# h
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; n c2 e2 X# G$ h CRect rect = pWndCtrl->rect;/ }8 ~5 T9 I( a$ N' R( L0 t" |
if( rect && rect.PtInRect( point ) ), W- R) k& [7 P# }
{4 R0 t+ |* w0 o4 Q! Z& z
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
- R7 Q% ?; f- J if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )9 Z5 k0 D7 r! ]% q
{
+ b2 D) {, T/ a0 u X: k: o if( m_pItemElem )
" e- x7 X, Z) J R: U {* l) d- g2 E& ~, H# }: z
m_pItemElem = NULL;
; F$ m2 A+ s% W3 s$ _: K }3 W* y7 D: M8 [+ h, u
m_pItemElem = pItemElem;
5 A) ?+ e6 Z& o. E$ z; w( l m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
5 i1 g4 X5 M N5 y( S( B$ F7 F! s }else{
. [) x/ J9 ^" D0 P; B" R0 p% D" B SetForbid( TRUE );
& n. D! G9 b- j, a G }; f- Z- F3 k: w5 J8 i
}else{: ^4 [3 z+ s6 E: t
SetForbid( TRUE );! T) |( w) H, O7 p; i, r
}. x3 }8 s1 X( z$ K0 V* P
return TRUE;& b4 E: g; e! y, b
}
0 n2 I0 x. }9 z
' g( u! J4 N: a5 z; {7 H; yBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )- f% B' b7 B% J$ R+ @
{9 z" w; y# E" r0 V0 w4 i' {7 ~8 `% g
switch( nID )4 N0 q6 ?- m3 M5 w- [/ [- _
{
% M4 r; y, a4 D I2 _0 v case WIDC_BUTTON3:+ x" `2 v. o7 u$ N
{$ P8 ~ v/ h3 W6 _1 N7 Q
bStart = TRUE;
) w7 Q" @- E" Q) j# q% E break;0 o$ C/ f. ?5 ]& r+ {
}6 }5 F" \3 ]; u1 d3 O$ y3 P
case WIDC_BUTTON4:# |3 O" {, t% {7 G4 ~9 x- i! P
{
% ` E" \1 G! A4 I1 l" Y bStart = FALSE;
8 G' X+ d1 m8 ]0 H7 @ break;, ]' j- M+ v5 f& ]! q/ O
}. s" @$ B! d& v' d" f z& W
}
% Y0 c- t9 `0 C4 v# C1 ^0 F return CWndNeuz::OnChildNotify( message, nID, pLResult );
5 Q5 p/ t, [( b- V}
$ U7 i6 U! L; B {& S2 G Vvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )% c- K& w% a4 u; w: o
{
. w8 O2 n5 l: @, q" v, R* B9 X CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
; @2 q0 M! }5 m: j1 C if( bStart || !m_pItemElem )
7 L. a z* q* }0 n$ T {+ W6 c( `5 Z8 S% _
pBtn->EnableWindow( FALSE );
# H9 _. a7 m- m, J8 B2 } }else) `0 z$ b8 X/ M7 n
pBtn->EnableWindow( TRUE );
4 B& Y; t1 n6 x1 j3 ? if( m_pTexture )
3 `1 F6 D5 B0 F& ]( @$ Q# J) N8 ^$ n0 P {% V+ j. d8 v, Q X9 \* K
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ @: r' v& c- x& D9 P! e4 S' T/ M
if( wndCtrl && wndCtrl->rect )& @' V( ?# f( e
{: p# L4 w6 [: P7 y' m( y
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );: k) w0 X5 E4 d9 G* L1 h
}
2 }. P& M: _: ~& E9 D( q) z/ U+ i1 D }
, I1 s& Z: A* w } ?3 O, C9 l}
( Z5 h" D% @8 J8 V: f: Q7 N& r3 c/ x( ~" B/ L2 V8 p8 p
BOOL CWndAutoFood: rocess()
- ~2 e F$ K: m) G) s) r8 q{
^. V# C/ x5 l/ `9 z, C/ e if( bStart )
! M5 o' r ]4 h' Y2 K' M {
9 o. U; i/ Z8 c; [# k1 B& R if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
6 X4 ]3 h3 a! B' T {
' h+ _' n( Y7 j7 E3 C if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
4 n: @& S. ~2 T g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
0 [0 O) u1 n. s# B' E# v }else{
, i, a6 I4 c) h3 u8 _+ G$ H8 i bStart = FALSE;3 n# I9 m) g* {, s [& [; K
m_pItemElem = NULL;+ E& e# z4 m: ?* v
}3 H) n4 G2 v! q1 H- z
}
0 M2 n) Q9 Q8 P! ]4 I return TRUE;
7 a l+ u) q: I3 L5 s6 C}
6 T+ Z- _! [1 M; c) {1 a+ ?8 {2 g" j2 B4 B( n* u6 t& I
登录视频废话:* m9 s" l5 n1 p1 ~ Y: A
尾翼:
9 \. J% O& q5 P9 u3 Q/ m3 c! S* ]) l& X; I
代码: \( {0 }. k; T# M: D- u
& Q' P6 a! \, _- P$ l
void CWorld::SetLight( BOOL bLight )
; g5 y0 f, B( Z/ Y6 D1 ddurch
: \7 @0 a% W; F z0 V( QCode:5 \; X {# S/ G) @$ g! W( s7 o; {
void CWorld::SetLight( BOOL bLight )
' x% I% ~- z, u* L8 [ |/ R4 ]) B( o{
# S& A6 O/ ^( ~9 B2 m! J4 ]* F% p //ACE("SetLight %d \n", bLight);
) e& b* u+ z6 q$ [% x* M
* Y( {; F$ e {3 o& w: ~2 U0 C! `#ifndef __WORLDSERVER 4 K! X# l6 ^; T( w3 J! D; ?* l) i2 }# V
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
2 k7 J1 B7 `! L CLight* pLight = NULL;1 I9 O& A; J$ @; G& b
# E6 x! o' r$ J D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
" V( @: ]5 O h: O- t4 {" r3 Z4 n
/ Z9 J9 V7 X' P% S pLight = GetLight( "direction" );
; c9 P. p2 F! q# y3 x
2 e- ?( O3 F6 ^#if __VER >= 15 // __BS_CHANGING_ENVIR9 Q& T. T9 Q; s4 O1 w
if( g_pPlayer ){
5 n5 A1 B* T% b* k& L0 @5 V- ~1 W ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );4 h) G* `6 A8 e6 M7 ~, }5 x. F: [
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!" J9 q. D% B1 h, e$ `7 W: v" _
{
0 Z4 d$ \) y" e( F if( pLight ) C) W7 q9 m! z3 ~
{# Z, G: ]9 t/ ^6 Y! y7 C
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
( n5 A1 t& l1 h5 I% o' L- R/ _ pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
$ }, R! _3 R* u$ O2 e7 r pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
7 `6 h6 d( K$ b! ?% V& x, \$ t3 s
; i7 i q; S6 v u- E2 z pLight->Specular.r = 2.0f;5 D) A S( N! x0 b4 n( {) B0 c
pLight->Specular.g = 2.0f;& V% P; S$ J. Y& |* r' K
pLight->Specular.b = 2.0f;
7 o6 |" @" ]/ w2 w 6 C$ @7 r* W5 j4 d8 }* Y
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];# y& _% `- M# o2 {
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
4 G& B1 m4 z# u! L k pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
; k+ [& X3 M2 P( `4 I
* K0 `3 o; V" G7 S# n+ n* A0 J( s HookUpdateLight( pLight ); ' ~ b4 l4 _$ i; W
0 ?) X1 i+ R- ]3 w6 a. k* U
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) @: d/ Q/ {9 d# U, D' ]6 x
0 N( f, f* D: `: g0 P1 \) c3 F7 P
pLight->Diffuse.r *= 1.2f;6 ]8 Y+ n% F0 c% O) I4 v
pLight->Diffuse.g *= 1.2f;! I& j' _: N2 V% O; _
pLight->Diffuse.b *= 1.2f;
+ [4 D3 {% p6 u$ @& P
5 ]- \2 V+ z# o" ~" S pLight->Ambient.r *= 0.8f;
M$ |. c& m% @: V" U pLight->Ambient.g *= 0.8f;; j) }$ }& I3 B6 y+ _, c4 A
pLight->Ambient.b *= 0.8f;" l( p! \7 C+ ?. ~ M0 ^' ?
, W( c0 \* x1 v% R% g) b6 P- M5 `
memcpy( &m_light, pLight, sizeof( m_light ) ); }% T. I4 z( w* W8 N, F
' C# Y$ p% i! S! V$ O5 A D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ Z/ q/ o ]+ m
D3DXVec3Normalize(&(vecSun),&(vecSun));
8 T) n, r; g* }/ J pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / {# F' o3 w/ V
pLight->Appear( m_pd3dDevice, TRUE );
! C2 k$ Q) r# a! G; x/ o' C & f0 R& K& t9 K9 ?& e
DWORD dwR, dwG, dwB;- v6 s2 D @7 \8 B
dwR = (DWORD)( pLight->Ambient.r * 255 );
# f+ N6 E3 a. U! J5 m1 S dwG = (DWORD)( pLight->Ambient.g * 255 );+ P/ y7 R; y5 c8 W& P D
dwB = (DWORD)( pLight->Ambient.b * 255 );
, F9 L4 b- C0 o" P) @ r dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" L# O/ U: i8 D; v
}" F5 @! c2 N" S( ~2 q5 @3 \0 B2 R5 C
}
, R& @3 q" ^. P; V# ? }7 J# O/ Y, T: ~0 W* B) C3 a' D
else
$ k2 h& a0 y! e/ E; M5 r8 L#endif T8 {5 _" i! f" s! R0 C
7 N/ v% p. L0 q0 p6 A! `( w5 q
if( m_bIsIndoor )
$ S, W+ x1 o* u. V4 g/ n {
V0 Z# ~& v( v: l$ }" |. N if( pLight )& {+ O) F+ P( R7 d0 o) |8 Z
{ * F2 C; |8 D2 d; A/ V$ C- N
// à??μ oˉè*
7 W' {# R) Y( `4 a" k9 B pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;. W$ f9 B0 v3 C) H3 e! \
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
8 p$ Y4 r- P' l3 Q5 y G pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;4 R. e; X0 n9 m
+ j7 o/ o; _- M. e8 @$ n // oˉè* ??à? , n; _# A O+ g
pLight->Specular.r = 1.0f;/ [5 x0 M& g/ c& A$ t+ E
pLight->Specular.g = 1.0f;
( J. L0 Q0 q# Q; O pLight->Specular.b = 1.0f;4 w) s4 i5 b$ |/ p3 [3 A
// àü?? oˉè* 9 M! L# J; b# C1 ]# A
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" x9 C" N% t7 D1 U* ` pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;- u" Y8 [+ `* z
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 [% D7 n' C3 q3 p( ^# ]+ b+ x
4 f( T& e% p+ R if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: {0 \; v$ W; b! z5 Q+ ^9 m {* }/ v _3 X9 D. \' s
pLight->Diffuse.r *= 0.6f;) C0 a+ b4 c" k* k5 a
pLight->Diffuse.g *= 0.6f;/ [" d4 P9 h$ w/ P( a
pLight->Diffuse.b *= 0.6f;% r1 Z7 C4 V! K; V0 t- t0 H1 K
pLight->Ambient.r *= 0.7f;
* p% o) e) H- J% I' I9 a pLight->Ambient.g *= 0.7f;
5 W. H# a5 Q+ R \5 Y* l3 r+ ] pLight->Ambient.b *= 0.7f;8 B0 J+ r. d! L# m& E0 ?7 L
}' n; L8 i4 \6 T' F& ]; O
$ {# x/ T, \3 d0 z
#if __VER >= 15 // __BS_CHANGING_ENVIR
. z* F0 \; n) ^8 I) }2 [ if( g_pPlayer )5 M$ L9 z- p, w5 e* j# P. G
HookUpdateLight( pLight );1 k f6 `, ~$ |% v- h
#endif
+ J( ?: o; [ k$ i- [8 ]# Y$ d memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 W, ]6 n4 G% L/ y
# J! N3 o1 L1 x# i0 X5 X pLight->Diffuse.r += 0.1f;0 l! {! H# k8 ?3 f: H( q
pLight->Diffuse.g += 0.1f;
. D3 C( k- y! Z) u6 E pLight->Diffuse.b += 0.1f;
- N' |7 Z1 Z. c/ x( d // oˉè* ??à?
/ K( a- y4 @' W6 W pLight->Specular.r = 2.0f;$ G% b; n* L) W/ ?
pLight->Specular.g = 2.0f;# \, ]4 r2 S) L2 a6 S" P
pLight->Specular.b = 2.0f;
# G5 t3 e7 Q, T0 @' s // á?oˉ 3 m+ _6 W( d. `+ Z6 `4 g0 D. R
pLight->Ambient.r *= 0.9f;
2 s" k0 ~! x9 h# P pLight->Ambient.g *= 0.9f;
2 _( z) ]4 G; Z. G) \& i- q pLight->Ambient.b *= 0.9f;6 ~3 @9 c- {% Z0 e% @+ b* V
! O0 A, f x4 E( Y& d memcpy( &m_light, pLight, sizeof( m_light ) );
) c% e0 s# T* o- U' Z! u8 r
4 H8 d: d5 ~/ y! V a pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );) ?, q: K1 G8 v% W
pLight->Appear( m_pd3dDevice, TRUE );
4 ^, F& k' j4 i: C0 r2 Q 9 w: s) m2 t5 F
DWORD dwR, dwG, dwB;7 S9 W1 [6 K: g _ M3 O8 F/ O! v
dwR = (DWORD)( pLight->Ambient.r * 255 );
/ E; F9 Y( A: j. ?1 T* i dwG = (DWORD)( pLight->Ambient.g * 255 );
O0 p5 V& J9 C( K1 K9 W dwB = (DWORD)( pLight->Ambient.b * 255 );
% B0 v4 l7 W9 m. O6 f" n" A dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); Y! I( K/ o" P. E
}
# v6 `$ W& |) K9 P, Q; [4 O) I }) l, s' }' ^5 Q7 I9 r* i
else2 C4 e( U0 Z$ i) j# \; H+ E
{/ d' ` S0 l$ s3 f2 a& M
if( pLight )
0 } K, U7 G2 d& U( e# L* Z/ r {" Q& Z7 @+ |6 z+ c1 I- C( q
, n, c% l* K( a4 l' d4 Z4 }9 H2 p) R" M int nHour = 8, nMin = 0;$ ^5 C1 u+ E% k I) g
#ifdef __CLIENT
+ g k/ e6 a; ^+ T) t1 W& \2 F // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
5 I) X. p0 M7 B9 l% c nHour = g_GameTimer.m_nHour;1 t2 b) g7 L" O+ h6 }
nMin = g_GameTimer.m_nMin ;
+ k* O5 C8 Y/ V: L3 t7 H+ N+ h9 X, | #else
# _9 b# p; D5 ]% U, G" r5 | // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.! { w( R3 s. I9 U9 v
if( m_nLightType == 1 ) B4 |; Q' g0 X' d* m+ u! B% L
nHour = m_nLightHour;
9 k: F' U$ I$ t0 L& {4 e7 I# p4 N #endif
8 P" k5 ] i: C! b; [ nHour--;
5 Q5 b2 ~8 f. I# V if( nHour < 0 ) nHour = 0;
5 L3 \4 S* b" Z" j5 N if( nHour > 23 ) nHour = 23;5 X; |! G0 u2 L2 i* S2 g% N
9 n5 V* a! A7 \7 R" _7 m; _
//if( m_bFixedHour )0 u h3 h% F& r' ]6 G% ]
// nHour = m_nFixedHour, nMin = 0;
k _: v. ? f6 P8 Z. t& m LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];- |0 q5 D6 g6 P, R0 ~4 V
LIGHTCOLOR lightColor = m_k24Light[ nHour ];6 m2 Y7 Y# r4 w
7 J4 n: Z5 b' c9 A0 [
//m_lightColor = lightColorPrv;
5 a# `% W( I/ Q+ n9 f* N lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
- d; h1 U/ e7 M$ {8 W lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
9 A, V! M, Z* s lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;* O* T g6 q+ I+ n
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
2 N7 q. d. L0 ]; b5 \3 n lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
1 X( \* ?+ P" _) [) s2 l0 p lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
( s) Y/ H0 S& Z3 l; T# @& n8 _/ | // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)+ Y5 P0 j- Y/ O4 t9 f
2 J! z$ L: l/ Q+ L; a // à??μ oˉè*
: |5 \5 Q! K1 p pLight->Diffuse.r = lightColorPrv.r1;
: r. n7 A& b4 w* C+ \% G1 u" }6 @ pLight->Diffuse.g = lightColorPrv.g1;
" i. t4 P8 P" x8 } pLight->Diffuse.b = lightColorPrv.b1;
7 h6 v% s: W1 h& G // oˉè* ??à? 2 p3 ^8 U: x/ J
pLight->Specular.r = 1.0f;6 c/ D1 P/ \; P( X1 F7 F" I$ b& J/ c
pLight->Specular.g = 1.0f;5 z5 o' x0 J8 d3 ]* t) S) s
pLight->Specular.b = 1.0f;
; e( u9 g6 S. R // àü?? oˉè* ' J* T, }2 ?# v8 M' f9 q
pLight->Ambient.r = lightColorPrv.r2;( g/ S# W0 i& _% P% S
pLight->Ambient.g = lightColorPrv.g2;
8 K- O7 j$ C m8 [- R$ H% ?- K6 Y pLight->Ambient.b = lightColorPrv.b2;
$ B8 S9 M3 R. I' _
+ E( i5 J1 L) K0 [3 E* } if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 }( |% L7 [% ~$ C$ W {
" Z2 t" H: [2 l( j pLight->Diffuse.r *= 0.6f;% L8 _. {" t3 W* ?- Y8 {
pLight->Diffuse.g *= 0.6f;0 f; b% g6 \3 j! v0 K
pLight->Diffuse.b *= 0.6f;
5 a: d# L9 y1 b8 q6 }+ _% ^1 R pLight->Ambient.r *= 0.7f;
5 H) Y2 |- G! S, E" n7 G/ { pLight->Ambient.g *= 0.7f;4 _, ?% D; J, ]4 `- n& o
pLight->Ambient.b *= 0.7f;+ r8 b t/ T) }1 f7 h' Z6 D8 B* Q
}
( u' {1 s; t/ X 5 A- N- Z( N- W+ {+ a
#if __VER >= 15 // __BS_CHANGING_ENVIR
4 { Y/ S: [' m/ t if( g_pPlayer )2 g# f* Y; B$ J5 R2 w
HookUpdateLight( pLight );
% v" t, W: \% c4 l# j: w( _9 S+ J% o#endif
' h' n: d) M) Y4 v: G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, h6 U% S: L' C7 s
" `, Y1 W% h+ Z' f" w4 q#ifdef __YENV* {6 T1 F6 U. ]6 m7 J
pLight->Diffuse.r *= 1.1f;; H+ c1 D% }/ x" B0 r$ Z* d
pLight->Diffuse.g *= 1.1f;8 w7 ^5 o( k- U' o8 }1 M
pLight->Diffuse.b *= 1.1f;
# J* s; a; d: w& H1 o) M // oˉè* ??à?
; y: l6 @1 I9 h; ` pLight->Specular.r = 2.0f;
: ~% `& J2 ~. W- z% C pLight->Specular.g = 2.0f;
8 |" a7 B( P1 @3 w* |! r# X8 c pLight->Specular.b = 2.0f;6 `% k' E8 V* s) ^/ t* l) I9 K
// á?oˉ
' }' i+ h, i( J2 E* X pLight->Ambient.r *= 1.0f;& P9 u9 A9 L2 \9 Q2 W% F* A( N
pLight->Ambient.g *= 1.0f;
/ ` |7 s* [8 j; m% h- w- R4 K% Q. g pLight->Ambient.b *= 1.0f;3 R, K: `4 Y2 O7 c0 k8 S2 P: n
#else //__YENV2 o |5 q3 q T8 K
pLight->Diffuse.r *= 1.1f;
0 T# }7 C: I! @. L8 }- s9 ` pLight->Diffuse.g *= 1.1f;% @+ a4 w" F+ i4 y- X7 J+ J. O) t
pLight->Diffuse.b *= 1.1f;, I& P/ Z) Y8 [' z( t6 y
// oˉè* ??à?
. p S @& I* E0 y pLight->Specular.r = 2.0f;
) R4 Y. ]$ K1 Y1 r! T/ G pLight->Specular.g = 2.0f;
) y1 [+ _! x/ w pLight->Specular.b = 2.0f;- G- S8 `8 {3 e
// á?oˉ
4 w! [4 W! {0 Z; u pLight->Ambient.r *= 0.9f;
+ \: M1 I# @$ C) u pLight->Ambient.g *= 0.9f;
% w3 ~2 L3 t* N& }6 a( M8 @ pLight->Ambient.b *= 0.9f;
$ k0 E; b% }. x1 ]#endif //__YENV # p% _! x+ I+ R/ k- \) f2 P4 s
2 s/ i, R9 P. M& F. m$ W7 {* ]& j$ s3 e* F
memcpy( &m_light, pLight, sizeof( m_light ) );7 F0 f1 q y- Z/ H
- _8 u4 G0 W. @
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
3 o0 {: h- b' j$ v: G D3DXMATRIX matTemp;! ]4 ?$ ^2 I# C& W- B
static const float CONS_VAL = 3.1415926f / 180.f; b Z" h! l4 @/ \) j
- p# Y& x m8 g: @2 g
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! p2 K( V: Y9 e7 Y* c# }! m D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);; `/ W. Q K$ Z
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 2 h: J W# l( ~1 a5 A( {: Y
pLight->Appear( m_pd3dDevice, TRUE );) K" r. e! a5 S# H# ?8 k- M
9 P: P, N* L" V8 m! n8 c7 l6 Z
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
9 ?+ q! ~5 u( y // D3DXVec3Normalize(&(vecSun),&(vecSun));9 m/ O* H/ U. e
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
Y" f9 M% _, Q, S: ]4 B0 `. Z8 c6 d* G$ ~. n# V& X, i& ~
DWORD dwR, dwG, dwB;
+ W( X" z. I( H6 z4 S3 M$ t dwR = (DWORD)( pLight->Ambient.r * 255 );% v) e$ n( F( G7 U7 U
dwG = (DWORD)( pLight->Ambient.g * 255 );
8 b& o# N: e, H0 Q0 l* j5 _% t dwB = (DWORD)( pLight->Ambient.b * 255 );
, ^* m2 ^7 H' ~ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ' k$ G H1 `, n K0 `6 U) E# H; E
}
& s. y- H8 y( M5 S) Z% O }
/ n' |3 a. h6 a! y' _! b7 s, r8 F" l. Q' Q
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
3 ]5 H! F$ q9 U! ` 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) );
/ h. v0 g1 T+ X& b7 W5 g8 e8 ]4 b ::SetLight( bLight );
+ G: F* h2 U( [6 N0 m3 [
0 ^: E: _& l- ?6 ?0 D s/ Z // ±ao? ?D?í???ó á¤à?
: X9 P8 t* V# k, ?) g m_pd3dDevice->SetMaterial( &m_baseMaterial );4 b% N3 l* o$ W& J* R G# m. I5 O
- g$ M3 M, s- R) u o4 V0 c#endif // not WORLDSERVER
& B! b+ z. R" L* v+ p p}
3 X* j( r4 G. \9 _5 ]$ Y并更换
2 g2 r0 T" S$ r6 A' @Code:- [, D$ F& j' P) b5 S6 v/ z# R% a# j
__FLYFF_INITPAGE_EXT
; F, |9 R1 W3 s& q$ W7 e" ?; G定义
& a- M) j. n1 [
( H4 b) n) b6 Q4 \/ q( u2 m5 E# E
- M" z: }9 P: I( r) g
3 Q6 P. u- d2 M) O3 p% G# a- v$ z6 m; t$ W6 ?7 l7 W8 t1 i5 b
现在终于删除我的狗屁加速...5 Z5 k" H* [4 e+ W0 A; E
; `* h4 _9 s# S f! ]* o% S
7 V' j0 X5 k: E" T9 m% ~% i/ \
" x5 s$ N1 c/ K' E% |* h |
|