|
|
食品车:
5 U7 `' p" ~: s* a5 @, Y尾翼:
) m. j1 ~5 H' N) z. m0 [0 U% t1 X: p0 [/ j4 }( z, S& o
代码:+ I9 t! ?9 S2 _
CWndAutoFood::CWndAutoFood()
( Z' G5 p) ?* r7 ]1 l' S2 C! r( t{* p. O8 j8 Q$ @2 p m3 X
m_pItemElem = NULL;
0 }8 w+ {$ M: N* R, d m_pTexture = NULL;6 d8 o. V* d0 J9 S' i
bStart = FALSE;
; ^; \4 K5 i) S( L}, K+ g+ A' }* g6 P t7 g, f ^
. S+ ]6 E8 {" qCWndAutoFood::~CWndAutoFood()
, Y; C: i; q7 ~* |3 ^: k9 B1 c3 ~{6 h+ ^ |+ |5 t
AfxMessageBox( "AutoFood ist gestorben " );: S- d* u9 G' F! }/ E$ ^/ h
}8 M8 K8 m) O! ~. x4 [( }
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )& ~) b, D" Z- z1 `& B6 `3 e
{
' z" S7 a; M1 ^& A return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
1 e: S" h: y( i6 S2 z K}
" \+ @+ b% c. H
9 L. s+ Z5 E: `/ l& Y' ]BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )9 H. z9 c0 I1 \# E# q4 c5 }
{0 a! {* y* u% m4 S' F, V n) k
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! \) J) c4 c, ]8 Z5 o7 r- { CRect rect = pWndCtrl->rect;, s2 j& z$ k) r# J5 e' Q5 h
if( rect && rect.PtInRect( point ) )
+ W1 N/ D2 M9 f1 h d {
9 k% z$ Q' \, l& E1 ] CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
" [+ ]+ }9 {8 J4 E$ h if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
: [( _& y- N( g5 k% O6 D {- |6 P& A# Q0 m1 y
if( m_pItemElem )
q- r% A$ ^5 p1 W {
$ U. n) L. U8 ^( j% E5 a m_pItemElem = NULL;+ T; I" W$ Q& J# H* {
}
) }0 P& w1 y7 P) E9 g9 J m_pItemElem = pItemElem;/ s* ~. ?5 G8 b" u- [% P
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
% n7 l- L1 U1 h# F/ B: C( ? }else{" }) f6 v2 E4 G+ Q( @9 Y% C
SetForbid( TRUE );* O% `5 \/ d! P2 W" S: I
}- @1 s8 p) v* t, M, r* O
}else{
. }" P2 F3 S* L# b SetForbid( TRUE );9 [3 G L0 @9 E" H
} O. X1 n, V2 ? s. l
return TRUE;
; L& d4 S- B8 ?/ M}
9 M* ]( ~3 Y3 x# C6 f* M2 p r* T3 D( t5 w/ c
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); e) g1 E/ ? d( t) O6 F% x) X
{1 l6 [5 G; p3 a2 h( A5 o7 Y i! S
switch( nID )
) |4 d, Q, ?+ o p1 E0 v$ F {- D. J% A* L4 Y4 o% Y* O
case WIDC_BUTTON3:
& Q: N! t% n, M. h {
6 M9 K, K- S. S( O& a/ H2 k bStart = TRUE;
_/ u% z) ~& D break;: o! E$ V' R1 X s7 a" v
}9 B4 _8 z% }) ?2 G7 Z
case WIDC_BUTTON4:2 h' l2 V" I: m* d8 W
{ R1 u. p0 [& r- O/ C K
bStart = FALSE;
, t2 x; y) I! d: j; W7 D break;
3 _8 ^- `2 j# T, |( R5 W; M% l }! ^, D1 @/ D, L+ N% O: \
}! L4 ?9 ]4 @( x1 ~6 Z
return CWndNeuz::OnChildNotify( message, nID, pLResult );
( A" w8 m+ z( l( i}
. O7 {* F& X: n6 O" P5 r& @void CWndAutoFood::OnDraw( C2DRender* p2DRender )
2 C% I. H, G5 u& l: d{5 j: p& q$ B0 e, Q/ {
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 ]/ ^# j; A8 Q4 K8 _5 A
if( bStart || !m_pItemElem )" _9 I' E2 ]* R- y/ r
{5 D6 |0 v; J, e8 q+ V' o4 X5 K
pBtn->EnableWindow( FALSE );5 S y6 h4 j4 x1 \. G
}else
# \. n- L% C7 d5 v pBtn->EnableWindow( TRUE );# I5 z) e! W5 P- M; t6 l
if( m_pTexture )
i. T4 @8 O, u" Z7 f {
/ E! B2 B) O0 b9 K6 p- J9 t3 N LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* V5 j; T& m. |2 O) v* \; p) b6 P
if( wndCtrl && wndCtrl->rect )
' V: \- X8 Q% l0 `, F6 k {$ p& _7 ]. e% \1 u$ R# N/ d
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );% I- J% x& Z& Y; c1 V" S# T. R3 ~
}
5 h- t+ `& Z/ F8 t }
1 v& K6 f7 K; X$ F. h}/ }' [( w9 T9 b2 h0 v6 B9 `; y
! N- C5 O& b' b5 H$ }- f
BOOL CWndAutoFood: rocess()% F _% `( K6 Z
{- V0 x A& R) o. }
if( bStart )
' x' V6 {1 i& s: ]! \ {0 ^8 p- t; B6 F; V3 x- N8 k' T0 Z
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
$ B' ^+ q# \5 n4 A9 V {
. k+ F! u1 [: d" F2 ?# {- _- ?( o5 U if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )0 I. d$ n- N( I* }4 B
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );; R' O7 j$ _2 B# D& w
}else{" B' {+ K. b5 w3 a! Z2 x% B, t, ?# U
bStart = FALSE;: M# x3 f/ I. F! n6 e" z
m_pItemElem = NULL;# r7 {+ N: d, Q
}- N3 `# p+ C3 y& G7 }- R; I5 T
}; X' E2 }' t& @6 @1 N
return TRUE;- I& b `; ~4 `
}$ e5 p! e- E5 x
* Z2 w+ c& ~6 s2 G9 k6 J- ?+ E登录视频废话: l+ p2 U" {$ a1 w' P8 F1 o
尾翼:0 \( o6 ~# Y4 S+ L
" E; T: |3 q' H# S& v( y
代码: L4 x6 Z3 w/ G G+ X; E. Q
7 n: p4 Z3 K. r: z1 m( b+ E" T8 C
void CWorld::SetLight( BOOL bLight )0 I1 }: J) `+ {; ^, M: q+ `$ `
durch0 D6 s4 w1 B( u" I- M8 c
Code:# [1 ?. x6 a$ v0 V! X. v7 T+ [( s6 J
void CWorld::SetLight( BOOL bLight )
7 T/ `# B$ A3 u! y" g9 ~{
& A: I% Z2 K+ l //ACE("SetLight %d \n", bLight);& L2 j2 s# f3 c1 d
+ T& V" y+ q; y
#ifndef __WORLDSERVER % Y, J9 [: X. u% v) y1 d% `
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
/ L9 Z( s/ ^; C `% u0 ~# P CLight* pLight = NULL;" p: @' I+ s0 D, T" z+ U$ j& b
, c6 N/ `2 \) c3 s. V D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
) J1 u8 z- l7 h, }- x
! G/ X. Y2 h3 u6 n: ~- J pLight = GetLight( "direction" );
; l, J( x( N- h' M' t$ z8 |7 g! t( M+ c, @0 |! c# s, V/ C
#if __VER >= 15 // __BS_CHANGING_ENVIR
% h! O% |" S5 D6 E# J. G if( g_pPlayer ){9 O2 g3 _" }) ~( [: y
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );/ W! V7 [4 h/ k" r) e& }
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!9 H+ b+ L$ N; U }
{. V9 u2 L4 N4 S: A
if( pLight )4 g8 u! C' i, Q8 L, q
{: U7 `. ?+ z9 T, t0 k E
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
- S/ C1 v5 m7 f8 X" O, ^, O pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
; F, y! W% n7 M pLight->Ambient.b = pInfo->_fAmbient[ 2 ];* a! v1 e ~+ C: _, \' T; h
- m9 X3 T" f8 z6 [/ G
pLight->Specular.r = 2.0f;
C8 m% e2 y/ K0 J# J1 ~ pLight->Specular.g = 2.0f;1 u& x" c% c5 x3 z8 K! W3 {6 P, M% R
pLight->Specular.b = 2.0f;, m5 b4 p# y" c2 R( M
' ~' x5 @! I o7 g" z; B/ e$ e pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
4 C8 `1 w: `% h: ]- |% Z2 Y pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
0 m) _6 ^/ v* i# ^* o pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];, _$ W" i* `) q* `. ~( N
& m; r L8 l3 W8 I
HookUpdateLight( pLight ); : v" o% ]) H( j+ S# M! n
9 y" r, ^. p1 z6 T1 W8 o* y
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 M+ l8 w3 I5 {
0 y4 m, i$ I8 c7 S1 H6 ?' A
pLight->Diffuse.r *= 1.2f;+ P/ V0 q* o! y+ ?& w# h6 p: K
pLight->Diffuse.g *= 1.2f;
% }$ H7 z- d0 s$ q& Y6 l0 x pLight->Diffuse.b *= 1.2f;
w* S. ]3 i. i6 }2 w8 ^, N0 g' H* c4 Y4 v8 W* m- A O
pLight->Ambient.r *= 0.8f;6 ~! n7 N, H8 M( I
pLight->Ambient.g *= 0.8f;# L3 y7 `& f: G, X# _* E
pLight->Ambient.b *= 0.8f;' j$ ` j, {$ |, ~ i
# f; o/ t Q/ Y1 Q memcpy( &m_light, pLight, sizeof( m_light ) );3 @. e8 ]) H8 i# y
5 }- W3 r2 p9 W) ]# y/ y G
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
9 o4 S: E& I: A* [7 |/ H D3DXVec3Normalize(&(vecSun),&(vecSun));0 P6 ]( C( U% N
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( K% L: _. J; }/ l pLight->Appear( m_pd3dDevice, TRUE );$ x5 l. \6 Z Y3 w* c
; Q! y9 Z1 ]- e2 U
DWORD dwR, dwG, dwB;' \( n6 L: c0 S8 L
dwR = (DWORD)( pLight->Ambient.r * 255 );6 y! q$ x- R: ]! X/ ~8 ^1 q
dwG = (DWORD)( pLight->Ambient.g * 255 );% h$ U2 E4 _5 |; C) u1 {4 Z
dwB = (DWORD)( pLight->Ambient.b * 255 );
* P6 c# y8 |- j( C dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# a5 \* W0 y/ o% P% f. H
}
! p# o, x- s5 R: ?& {4 r/ c) n" ? }
* M* J1 N1 ~) a: R }
( N* f5 ? \3 x: l0 d0 T( z else
( n0 i0 w7 m$ Z. i#endif ' ]7 n5 j: b6 g% `
$ F) p+ q+ t$ y5 }$ H: q! w, n
if( m_bIsIndoor )
0 H( B, e; @. C {! U: G4 K7 t/ y/ s
if( pLight )! V& v! o: ~, f R* ]5 Y0 v; E% U# D
{ / x7 ?( C2 D) ~/ ~
// à??μ oˉè*
2 Q# J4 ^& W3 v6 Q# e$ K! X, J pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;" _. u4 S4 }5 s9 F# |" t
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;: S, g }2 k- s1 c, ?! W0 L5 U9 S% W! b
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
, F. T" K' x/ ~ |* h9 b9 l
; D$ P5 R6 G) y5 Q; {- V // oˉè* ??à?
" k: E: _' X2 W6 c. ~/ o0 k d pLight->Specular.r = 1.0f;
1 D, q4 T4 {0 T: m- q2 y% j pLight->Specular.g = 1.0f;, t, ?. K1 k: ?1 N6 [1 b* ~- s
pLight->Specular.b = 1.0f;" U5 x M4 x0 [- ]% l) _8 B% J. ~6 ?
// àü?? oˉè* 9 r* i: Y- v! q! e
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
, z* c [- K) t& a* p pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
& q/ o% B/ ^! Q+ a9 o6 o pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;" R0 Z8 l( R4 e( A0 w
! @: A j* ^9 C, i* Y; v if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??./ O5 y j5 M3 Q) l/ }* U8 x
{
) d1 H/ f. i2 e" ` pLight->Diffuse.r *= 0.6f;
4 S4 U% F8 V0 V ?, t& g pLight->Diffuse.g *= 0.6f;
' n' ]2 @' t1 e( `! b pLight->Diffuse.b *= 0.6f;
- x7 S2 H6 ^6 z# X pLight->Ambient.r *= 0.7f;* x7 `0 @% G% P1 e! q. u
pLight->Ambient.g *= 0.7f;2 u1 c ?( c* Q K
pLight->Ambient.b *= 0.7f;) b+ I, u K2 ]2 T& X- ^
}
+ Z9 ?2 p0 F* z2 z, n7 g/ {! T* }' S6 g, u7 @7 d' v
#if __VER >= 15 // __BS_CHANGING_ENVIR4 X; |- y+ _$ V. d. V
if( g_pPlayer )' X$ X+ c" p* X& k8 }. |
HookUpdateLight( pLight );( V* ?5 X! m/ }0 P/ v
#endif9 c" Q! y# \2 ^! |/ Y4 _4 @% L" v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 K% ^- p8 `8 `, d3 ^
9 v2 T' w0 e4 @ pLight->Diffuse.r += 0.1f;
1 V) p! x* B* }) \, D3 p. w4 F pLight->Diffuse.g += 0.1f;/ \3 K. f6 _1 P3 u
pLight->Diffuse.b += 0.1f;1 Z/ A- j' Z/ @* I9 ~% s
// oˉè* ??à? , t* B; I- N4 W+ x- H4 p" R+ N8 p4 Q
pLight->Specular.r = 2.0f;
* R: p! w8 _! R' r# Y pLight->Specular.g = 2.0f;
# @+ w# K- b; u* M0 A! x0 T pLight->Specular.b = 2.0f;7 |+ h6 ?7 z: b2 q8 O
// á?oˉ ; z8 ~/ j1 t8 e5 j/ U: l* T
pLight->Ambient.r *= 0.9f;! B$ E* W8 V8 J' ~! W) g: x
pLight->Ambient.g *= 0.9f;
, p( O! l+ L2 P# p8 {( f pLight->Ambient.b *= 0.9f;
E4 }. m7 k2 o* _9 c- O; O; D* a/ U& j8 u
memcpy( &m_light, pLight, sizeof( m_light ) );
3 t1 ^& }0 \: r( F+ S
, @9 p( W4 g2 |. ?; g) s pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );6 d& k$ p% m w4 z& V
pLight->Appear( m_pd3dDevice, TRUE );3 z6 \/ t4 Z- f0 O6 q8 H- I
! Y' A, i2 `; _4 ]& ]- l DWORD dwR, dwG, dwB;
9 `- S2 r' B: G- w. ~ a( U$ K dwR = (DWORD)( pLight->Ambient.r * 255 );: d( O0 ]. A( J4 i. p" U/ M
dwG = (DWORD)( pLight->Ambient.g * 255 );
# b7 y: {5 h# M) f5 Q3 A2 ^- G dwB = (DWORD)( pLight->Ambient.b * 255 );8 f p4 d( n+ U/ [! J) j6 m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );, k3 g1 e! t# W. R3 |
}
' o* N1 M! ~" ]: j; B2 m4 Z }" u* L" Y' _" c: C
else9 a# N# h' P. C' x
{4 E- p& g7 C. U3 E
if( pLight ); Q" W: ^) L! F& j
{' F6 p. m" c( a, s
& h2 Q$ ~ G L
int nHour = 8, nMin = 0;
' E$ [; [, {3 `/ s) ]' y #ifdef __CLIENT
! z v- M6 b$ U p/ G6 i // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
U H2 G' u, G- Y: A5 Y, R nHour = g_GameTimer.m_nHour;& ]; E5 F) q5 `+ ]- E
nMin = g_GameTimer.m_nMin ;& E/ L; |) Z: S5 A
#else
% s! e5 t6 F% z* M# ^; C, ] // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
2 O; I3 \, ?1 p3 r if( m_nLightType == 1 )
- W! r0 ^( B: m. ^& p7 h4 ^+ ?% m nHour = m_nLightHour;; w! B4 N; @( n: p) M3 p
#endif8 U! f; Z) T) J9 K4 b5 {
nHour--;
1 b5 z1 C2 _; f; {: ` if( nHour < 0 ) nHour = 0;; [! ?9 f$ s( i+ C9 f8 [: W% \6 w
if( nHour > 23 ) nHour = 23;" e9 R9 g3 C; j0 g
( l! [2 c( S; P w% s. T //if( m_bFixedHour )
- z5 c4 c* a9 g. Y3 r. o // nHour = m_nFixedHour, nMin = 0;
4 \3 B6 D3 a" o! Q, [ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
8 k# F" e7 {5 u, J3 f5 x# r; s LIGHTCOLOR lightColor = m_k24Light[ nHour ];
% x c$ ?" a: Y! G+ H/ r0 G' M) ~6 f# w5 K
//m_lightColor = lightColorPrv;
. r% r, y' N# B# K! U6 X; `2 J lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
9 Z0 P* o9 \# m) I8 a lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
( a% z h% g f: o lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;/ ?8 o5 ?0 W1 I2 o$ q6 t& G
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;- g; ?) F6 _( @ V8 y2 N' N: x! e, J
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
$ c" A+ A3 z$ E lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
9 t J, N' w3 i8 i2 J. w/ H d // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)9 x6 Y( P5 ^" q% b& w3 J
! c7 K, n. ^3 h5 z) h
// à??μ oˉè*
( e3 }5 {' ~, A3 }8 P pLight->Diffuse.r = lightColorPrv.r1;
' Y' @ J1 L4 y9 X4 \' } pLight->Diffuse.g = lightColorPrv.g1;- Z. K" W7 l3 k5 L; n6 ]# q
pLight->Diffuse.b = lightColorPrv.b1;- K: ]! G" {+ k$ ?$ g
// oˉè* ??à?
6 Z* I1 e% H& i, Y( T3 K pLight->Specular.r = 1.0f;
) T2 C6 _6 F" S1 F, U pLight->Specular.g = 1.0f;
. j7 N$ T4 |" {# `- W) F pLight->Specular.b = 1.0f;7 ?0 {( I% }3 {+ J5 N
// àü?? oˉè* $ E f8 a( I) X+ l8 c5 l: w s
pLight->Ambient.r = lightColorPrv.r2;
" W/ Z6 q5 s0 S$ r7 B pLight->Ambient.g = lightColorPrv.g2;
4 ?0 R' z! L- ^4 k y- {) p3 v* C pLight->Ambient.b = lightColorPrv.b2;
. \# s+ X+ H5 t+ b/ l3 H0 }9 q
8 m: A( ^& N- z: |0 M) g$ t if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.4 n4 t3 f3 c; C# }! K I8 T% F! T
{' q* A0 O( \% J, l6 J9 I N
pLight->Diffuse.r *= 0.6f;
& E/ L! ^1 }4 V* ~ pLight->Diffuse.g *= 0.6f;
6 h' p- u3 G1 y& a# H7 ~ pLight->Diffuse.b *= 0.6f;4 ?' b% I* K4 }- Y
pLight->Ambient.r *= 0.7f;0 f0 o, ~. U( m3 x$ }
pLight->Ambient.g *= 0.7f;2 y7 }5 C+ g& Z; d7 X4 l# [
pLight->Ambient.b *= 0.7f;. Y0 Y+ U$ ?9 C# R1 W/ j# H+ L
}
8 `8 Z# f4 H0 ?4 F7 o5 p9 {
2 G d: ]% |6 V* y. P: |#if __VER >= 15 // __BS_CHANGING_ENVIR
5 R0 V1 d1 T; d if( g_pPlayer )
# d: e" G- u. f1 I% g HookUpdateLight( pLight );
- w( D/ S5 s8 _* m; H#endif
# H7 `; s- E$ a% p% J/ ? } memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 c% J* P: [2 e! j3 `
0 W& z5 K/ Q& T) ?3 k& y! D! G/ ~6 o
#ifdef __YENV6 A+ w* P7 `" k- l9 a
pLight->Diffuse.r *= 1.1f;# A, c) H) T M$ F& k
pLight->Diffuse.g *= 1.1f;( I6 V y! b3 t$ p8 z- @+ n
pLight->Diffuse.b *= 1.1f;$ [) B3 [/ x" T- d: _+ G3 ~
// oˉè* ??à? ) \& ], }; h1 k4 C0 M- r
pLight->Specular.r = 2.0f;
* N5 o2 J. R0 N7 |) f+ X pLight->Specular.g = 2.0f;
5 l) p$ K3 B* f5 \% Q! g pLight->Specular.b = 2.0f;
$ ?! L) n1 m2 |6 Z7 M; _ // á?oˉ
: D: `, G; j2 l m pLight->Ambient.r *= 1.0f;( o4 _8 Z' ^0 h% K8 d( F- j$ b/ V
pLight->Ambient.g *= 1.0f;
; u4 v3 Q1 x( k' n pLight->Ambient.b *= 1.0f;! f& k% f3 V% P1 b
#else //__YENV: Y* o _3 {; |0 r8 U7 }" \. y
pLight->Diffuse.r *= 1.1f;
( d2 i1 c$ A: h6 H- O# d, [ pLight->Diffuse.g *= 1.1f;. [% |, {9 a7 v& j) Z% M
pLight->Diffuse.b *= 1.1f;
' H; ^& q7 m0 ]2 u+ p7 n/ @% J% B // oˉè* ??à? 7 c8 t, j$ ~/ p5 J0 W) R5 }& m
pLight->Specular.r = 2.0f;' X# y: [4 L, S; l" V% ?, Z2 d- ]
pLight->Specular.g = 2.0f;
1 s- ^5 i! Q O5 A$ z5 E- G' J0 T pLight->Specular.b = 2.0f;$ o' x" E2 I4 n1 u- ?0 T+ F7 j
// á?oˉ
9 u. s4 G2 n" T2 K+ Y3 J pLight->Ambient.r *= 0.9f;; O. {5 T* Y0 G) o' Z$ l
pLight->Ambient.g *= 0.9f;
2 N: t" Z$ b0 C pLight->Ambient.b *= 0.9f;
* R3 ~/ D. S( r m6 Q/ W* @#endif //__YENV $ `! b, i% V" E& g! o& Y; q* K
' ^) S7 J$ t }3 x7 }& B. I memcpy( &m_light, pLight, sizeof( m_light ) );
. a# `5 L/ l: W 5 ~0 j' \3 `3 ] v' Z
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);/ K# n0 }+ ]+ A" w0 f
D3DXMATRIX matTemp;+ w* j- [: M' z' e& n* Q5 {" w
static const float CONS_VAL = 3.1415926f / 180.f;
# C4 ]0 e9 H7 W7 r. d2 |/ X% L2 b/ w' ]. t7 B4 q
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
{9 y2 j. w2 |. _3 B5 _3 |$ b$ S D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
8 x( W# r& j' ^; | pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ) e/ ?1 q0 \$ [* x2 Q/ c, f4 _
pLight->Appear( m_pd3dDevice, TRUE );
$ `8 ?6 r, W7 o' F9 c# c3 S4 m
& }6 u) ]9 G4 `# S$ J, W' G. f: W# C // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" c4 ?' N. k# |1 q# Z+ X
// D3DXVec3Normalize(&(vecSun),&(vecSun));
& d' X( v, R' `' L0 w) w2 i9 } // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : U2 e& A* [6 C$ X& g/ R2 [
2 a) s: y& `. n DWORD dwR, dwG, dwB;
. a3 g! @' D7 a' [" ?; v: @7 O dwR = (DWORD)( pLight->Ambient.r * 255 );/ N/ Z/ m" Q0 O
dwG = (DWORD)( pLight->Ambient.g * 255 );
1 f4 a8 S0 Z2 ?4 \( }# Y' l, K dwB = (DWORD)( pLight->Ambient.b * 255 );
1 V/ |+ X' h' g& `5 o0 M dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ W m I& Q6 s. d) i1 m4 Y# D }
# X; W5 x5 b& r. Y }- N2 c# ?! L3 r8 O: S
* \7 v& P5 ]; n7 N: `! K3 a
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
# W ]/ e" k4 E% G 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) );+ p* g: X- L1 M/ ? `
::SetLight( bLight );
; U& E# G5 U; q; W
! y, s/ M) ^0 q4 A // ±ao? ?D?í???ó á¤à? 3 z2 H7 P+ p9 {. m' ~2 I
m_pd3dDevice->SetMaterial( &m_baseMaterial );9 H* T; o, a' s7 j: n
3 s4 Z5 B& O, F; a# M7 M
#endif // not WORLDSERVER
) I3 s) F! i/ a! q}1 D, P! i" i3 H
并更换
3 ^* F4 U7 N- ?$ ` c2 `% ?/ M1 jCode:
8 _. _' d# U, U; U3 k1 V__FLYFF_INITPAGE_EXT
, z$ J4 Y% V1 ]6 N( Y定义 z$ Z0 r# t* D8 f
4 ^. d, d" E9 _, S4 Y/ v% z7 v
- n8 z1 g: Z. G; f, {8 a5 w) [ L" M' C$ @: W
: k: Y; p* ]. `. j$ _现在终于删除我的狗屁加速...) s2 c$ s% v8 l. J4 P
+ ]! [2 e8 Q# ~1 t: X- E4 p8 x* f* x+ t* T* i
( x- m- k6 u5 O. R- O
|
|