|
|
食品车:
( a' J1 A( V. e( ^5 [+ {0 m尾翼:
4 I& O7 @4 }# X7 M! [$ T: x8 G( o
+ G7 Q: D( Z9 X) P: N代码:
8 K- e* Y N. j5 V" qCWndAutoFood::CWndAutoFood()7 s$ l1 j0 g: }. g$ e6 S% z3 l5 b
{: b' T+ f& h( s2 K
m_pItemElem = NULL;7 n6 G% Z3 a/ t2 M
m_pTexture = NULL;
2 i6 Y! r# ]$ x; `- O% d6 C bStart = FALSE;# D3 K6 g! L. M
}3 x) }9 y- y: V% D9 l8 c
0 Q! o" W7 Q' MCWndAutoFood::~CWndAutoFood()* d! r& O0 w+ n( [: w
{) g$ E, L! u2 u! n9 E
AfxMessageBox( "AutoFood ist gestorben " );
8 ]/ m6 m: ?7 ?1 X' e}
- C) c0 t! W) U& b, m; RBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
4 h) n# l9 ` N) O# M{
# {- o/ }- z% Q: v# A/ s' ] D6 P return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
: B2 u; [/ Y: n6 m* T}$ W/ X; t5 {. r6 n- X6 ?% n, ]
& O. K" c& `8 n3 k) f S b! VBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
" V; h# i- T- o2 R5 f# a{" o5 T* Z, |. E: Y4 I0 w+ O
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
# [. c: M: s' ]2 ~3 c6 W5 J2 s) w CRect rect = pWndCtrl->rect;, t- }* D2 X* d( i+ k
if( rect && rect.PtInRect( point ) )$ f5 T" l/ |# a! v7 _/ _
{0 k% E/ s4 u% u" `' Y! t
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );& u" ~" o; Q) d( V6 y' j! n
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )* r, C/ e; [3 N# r# |* d5 J. p1 c
{
1 g4 j" o1 N) @' w if( m_pItemElem )
0 P2 b8 U5 |1 r {
. L# ? C" n4 y+ g m_pItemElem = NULL;- B. W" M1 t& [4 E2 c
}
! ~8 x7 I: @4 _, M T0 j! T m_pItemElem = pItemElem;
4 C5 E5 |9 ?5 _! | m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );) ^; M1 M# i) o5 A! o* Q
}else{% _! y- T! k* j8 G
SetForbid( TRUE );
" S; H- D6 m9 A2 U: o9 p }3 \. u% P6 K7 |/ D: Y' x
}else{
. \( J; I3 @) ], o4 W4 @! g1 o! d SetForbid( TRUE );: _' r6 |/ Y. |4 |
}; {' v! u9 L5 Y- C! F3 D
return TRUE;- p* E2 z: o+ }7 y% ?4 Q' s8 H9 |; R7 m
}
1 o6 t4 V# f7 R' T' R N
. f. Z, ]3 a% eBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
! s* s6 |( B+ z2 Y+ U{
; S+ g- { z3 `% e switch( nID )7 E0 @6 P; {! u& A
{6 Y- y$ ?; }2 U" `& J- S6 o9 F
case WIDC_BUTTON3:
7 }! ^! S* l/ O+ |7 ^: I {& X7 T4 U- I7 C# }- A0 l( e) b( \
bStart = TRUE;
% D" p* g0 O8 M% T break;2 E# j5 u$ M x E
}" \& o( l/ T' k$ M9 r
case WIDC_BUTTON4:
; q4 Y4 \+ g/ ~1 H$ H3 C {
2 _. H; i% b5 R bStart = FALSE;# C% i- G/ y' L( s% g' h
break;
; L% ?/ i# n$ ?6 s }
$ [) w( H. D [/ a }; |2 U, `1 Y! Z7 w- @6 {
return CWndNeuz::OnChildNotify( message, nID, pLResult );
8 ~) p; }$ E0 H6 r: O- o1 K! k F} . _1 j7 K5 P1 T& N$ H* h( i& U4 \6 C
void CWndAutoFood::OnDraw( C2DRender* p2DRender )5 i' }: S: d4 P: f
{' H/ R( ]3 C+ _1 ^* I1 s6 |
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
1 L. Z% O, x1 J4 o! k if( bStart || !m_pItemElem )
- s8 N7 g4 a! h/ L {
0 _& v, o! @$ v; V/ D pBtn->EnableWindow( FALSE );! q- _1 t1 x& o+ \+ r2 @ T
}else" q5 _) F+ i0 A! Y9 ]; a
pBtn->EnableWindow( TRUE );) ^; b+ o7 N* b% {4 G" Y
if( m_pTexture )
% d. g) I' H( I# N: |4 r) C, [ {
~8 F; v: I# a/ H9 o- i0 ] LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( D- @' e, |2 W# _& L0 m if( wndCtrl && wndCtrl->rect )) b3 x- x+ g: X
{
( i' }* j) E) I, V8 B" d m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
3 L. }4 K. i0 O! {( m }1 r7 X# w6 ` M; b ~+ S, A
} @4 m/ |4 O: r% r- z- ~! q
}
; [0 X3 Q" g/ }! y2 W/ y; L) H O1 Y6 `* Z
BOOL CWndAutoFood: rocess()* y! r& e0 A w+ Z- d
{2 x; e& {7 \! q' N
if( bStart )
1 ~" u6 V8 {1 K8 V, I" D {) a a0 @8 s) O" u% P
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )# b+ u% I; E0 \1 V; x4 O
{
3 S# I5 I9 h% A z; N7 `" b! i if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
+ R) G9 X, A$ ]6 |1 j g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );3 G; J4 D' _2 k' V4 c2 p* P# D
}else{1 x! ]2 k/ f( N7 |
bStart = FALSE;
+ ^3 O8 k9 h, F) v% t3 ^( _1 p9 w m_pItemElem = NULL;8 H; Y/ q) K% z4 w+ X5 L9 t
}
5 O9 r' B- J% m, F8 ? }8 i& O2 |0 n7 G0 R0 C
return TRUE;. G# Y+ G$ H7 }3 R- e, i& F
}
4 W. x/ R9 A. y) a2 z3 Q
, z! v3 _2 F1 I6 X5 `4 X4 ?登录视频废话:
, \+ h& m( Z* Z C; H2 ]- s1 j尾翼:
& n* ~( ~+ a; S+ `/ Y" \' }3 G- b" t7 _. ^* @
代码:: W. |' L6 K( K+ _6 r
! y# ?6 o i: ]- c* _4 Zvoid CWorld::SetLight( BOOL bLight )
" k& Z, V% P I* K$ Z. Kdurch
0 [- o7 h( a' v e0 C9 |Code:
( A4 y4 C4 U- vvoid CWorld::SetLight( BOOL bLight )7 j" q. o" Z5 i* b' m& s
{4 ? k, {" p$ W: [) F' H b
//ACE("SetLight %d \n", bLight);# q, e7 h- q6 ]$ a0 w1 B1 p0 G r, \
: @- g, ?7 d5 J+ s2 ~ e
#ifndef __WORLDSERVER 9 b# ^+ Y: J; ?$ u
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
R1 C8 x( ?$ e& E+ H0 g CLight* pLight = NULL;
. y: Z H5 ^1 W/ O X8 x! P
/ e8 a/ _* ~; w0 o/ O4 L6 i& r D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
- h" O! z% N# p% ~& J4 v
4 ]; O- x! }( d3 N, T pLight = GetLight( "direction" );% O/ K- Z* K; B7 y0 v6 W' G$ r
7 y. Z- ~$ P0 v1 k: \( N1 a) P* c
#if __VER >= 15 // __BS_CHANGING_ENVIR
) r S P( b! Q if( g_pPlayer ){# d1 A- C# h" J+ N
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
, ]7 q! f$ V: _ if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
+ N4 l D: k, B, o4 r4 C3 ~$ d+ d {
/ P. f$ \8 E1 Y$ a: l3 } if( pLight ), O; ?4 U' H/ A4 L& ^% \, Y& A
{+ ~) f% w2 c2 |. b
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];, @5 `0 p5 _4 X0 g' a& S- E
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 E& D S5 c$ r! I
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];+ c ]% o7 o C+ ~- q* K4 O
. v f8 w x- x6 X
pLight->Specular.r = 2.0f;
" u/ j3 R, c% `2 K pLight->Specular.g = 2.0f;' a, S& f- e1 v7 M
pLight->Specular.b = 2.0f;
* ~' W |5 A& Z , Z% G1 f" @, Y
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
; L% m0 ~3 c- {% `4 { w pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
" A! s% n% R5 \1 z5 K/ `1 j pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
. C8 F1 h7 c- N& v* A7 i
5 m4 Y5 x' C( y' N7 k( n HookUpdateLight( pLight );
A1 l6 H7 w: I* ^: C5 D5 x6 h( j2 f8 A! g, D" V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );" q# f J- `: f1 K8 C6 q1 U ^, g
" B1 R" O! P6 Y
pLight->Diffuse.r *= 1.2f;
8 W9 l, u- R% Z) j& p pLight->Diffuse.g *= 1.2f;
) d" S( a* |- x, V4 U& c pLight->Diffuse.b *= 1.2f;
8 f; J/ f; i& H* Z3 b/ b) x3 ~) _" ]! i9 B
pLight->Ambient.r *= 0.8f;1 ^! G4 k. `/ I% A5 a' d+ r5 d% r
pLight->Ambient.g *= 0.8f;0 e0 u* Y" Q4 z' i) u
pLight->Ambient.b *= 0.8f;
! V* X: X% z: C1 g! }8 D- ^
% @$ ? ?) l; o: |, h- E) F memcpy( &m_light, pLight, sizeof( m_light ) );
- u: `" S/ P9 E4 N. w
+ A! ^$ b# V$ U& f4 T2 d) a& g D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, F5 O, y. l* \8 b O( g D3DXVec3Normalize(&(vecSun),&(vecSun));+ O3 |! `1 c/ i: q* ~, b- i
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 \* l- N4 c, S, m7 e pLight->Appear( m_pd3dDevice, TRUE );
) }2 C- O5 E0 V* {9 a 2 b0 ?7 ^5 a1 E
DWORD dwR, dwG, dwB;* ~' R3 H6 w+ M3 a8 I- P
dwR = (DWORD)( pLight->Ambient.r * 255 );
3 x4 [! I% G5 i% T& R& w dwG = (DWORD)( pLight->Ambient.g * 255 );$ B1 Z4 T- b8 {- g& N& `) j: @- v1 X
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 Y; k" X4 y1 u1 @ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );3 \$ _8 B/ c {+ _0 w
}
% P: I, X5 l# S3 T @ D& X& G: f }( j6 H9 i! g* e% ?" t3 Y
}. u4 M0 _2 u* W0 c7 \
else
* @% r9 f# b- V0 `' F8 T5 U! t#endif
9 }+ G, ^! G9 @1 X4 l) i
9 D! l- {9 S! |( J4 K4 U if( m_bIsIndoor )
! g2 M1 T/ w( d. y, h& V/ C( R {
6 f8 D$ ?0 Q; j1 `3 k j8 Z if( pLight )# h9 c2 V" _0 M
{ # W# V/ S W# l) j5 ~: o0 I
// à??μ oˉè*
+ N/ o4 ?4 a( X+ f. u pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;8 R& [6 F$ P* S* n% o" q
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 q# }# v7 c I( R3 p pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
; D9 c5 s+ t4 ] N5 s' [5 g2 U: D T1 R' o4 J$ S
// oˉè* ??à? & I* x/ w" d8 W6 M( x0 _
pLight->Specular.r = 1.0f;1 [& S* b' \. X( v X5 G
pLight->Specular.g = 1.0f;
! H) V% e. e3 ~- Y! i- U pLight->Specular.b = 1.0f;
4 s& S v% S# Q // àü?? oˉè*
, N( E/ s l3 a: z( P! a: w. p1 |# e Y pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 F' j. `& S* ?1 b0 L6 b
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
# b# _2 N6 j5 T/ T* Q/ ] pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 k0 @* q$ ^* _% T) o2 F' {
2 o7 U+ t# ?1 v" L0 q2 d% _
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
& `( R& K, _# Q+ v! h; T; k {; t. b- X; J" X
pLight->Diffuse.r *= 0.6f;1 |3 P7 ~! ^7 H7 u, ?" u) K
pLight->Diffuse.g *= 0.6f;% o/ s# m# H4 G' @8 ~" f
pLight->Diffuse.b *= 0.6f;8 _3 g ]4 L( _% B2 d
pLight->Ambient.r *= 0.7f;/ {& k+ C9 K2 K. y
pLight->Ambient.g *= 0.7f;
. [! f8 b0 U' t# f9 ]4 E( k pLight->Ambient.b *= 0.7f;. A8 A7 c. C7 [" `, H3 E! ]. [
}
. j/ D3 `, W3 T, j( ]( f7 _. n. t% v, @+ g! Q- f3 H( d0 U
#if __VER >= 15 // __BS_CHANGING_ENVIR
! a- \' {9 R0 _" y$ {) f if( g_pPlayer )
$ S: U6 {2 P9 i HookUpdateLight( pLight );# x- @9 F: h4 G
#endif: T/ [# k" Z I$ k* b- |( r
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! ^; e1 m: e1 A9 v9 P
4 S! Z+ c% N* ~2 U
pLight->Diffuse.r += 0.1f;
+ l4 @2 b. L5 ~- w pLight->Diffuse.g += 0.1f;. r# ^% ~) H2 U( c% P* H4 u, |' ?
pLight->Diffuse.b += 0.1f;
; V. ]1 ?8 M( a9 H$ U // oˉè* ??à? + @/ a* T' U/ o% V1 b; I* z& c
pLight->Specular.r = 2.0f;
" l/ @& y) d5 C, [& z0 N pLight->Specular.g = 2.0f;# H3 T. s& l5 k, l8 [
pLight->Specular.b = 2.0f;* d0 |, S* {( y& u: B% f: u( R) m+ N
// á?oˉ / O) n8 j9 c& Y* F# o9 T
pLight->Ambient.r *= 0.9f;
( g0 P- E; R3 F# [4 _3 R8 c: L pLight->Ambient.g *= 0.9f;
4 j, q& e; d/ `; R0 s- K pLight->Ambient.b *= 0.9f;
6 U7 M% X( i$ `4 \( o5 O* j$ t& i9 _! p, j, b: I. `
memcpy( &m_light, pLight, sizeof( m_light ) );
6 ~$ ^ y E0 x M0 m& A & a2 w0 L2 R9 M# _0 ]2 B# H
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
' T- i, ~$ d1 i# m' ` pLight->Appear( m_pd3dDevice, TRUE );3 E8 C! W' g3 Q7 { U. \
B& ^* w: O5 x7 F X/ C1 a7 i, \/ C$ C
DWORD dwR, dwG, dwB;; S! m) i% E6 l9 s: C$ j
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 V( a* G6 P3 C" M! w+ z dwG = (DWORD)( pLight->Ambient.g * 255 );' N. ]" y% p! ~# o2 A
dwB = (DWORD)( pLight->Ambient.b * 255 );
; S* |3 f5 X8 @( {# ?- [6 M& l dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" [1 `9 u8 T( `( u( v }
0 ^! a% o' U1 u3 N# x) d }9 I- x& m4 ^6 [- M8 M4 y- m
else+ b: d: k) X) b: T$ B9 R
{4 R! L5 x6 S. f' i. z: F% [ s
if( pLight )7 R/ l9 o+ }4 [$ ^
{
! @4 G1 g, A" Q7 C R; h u
8 D1 f( Y2 G4 Z9 m! ?1 f. l1 } int nHour = 8, nMin = 0;! n* n3 v* v# z7 g9 v
#ifdef __CLIENT6 n, T" J& E2 ` `7 y* `
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
# K" q. G. ~9 @3 T0 }) L nHour = g_GameTimer.m_nHour;
: ~) Z- ]! y, o0 {, N$ N nMin = g_GameTimer.m_nMin ;
4 r4 l" V" _8 R9 r7 l; u- u5 G #else: {3 [* K0 Q) f7 w2 M
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù./ F6 e6 M: S7 i
if( m_nLightType == 1 )- A2 f9 @1 Y9 N* |$ ?
nHour = m_nLightHour;
( r7 a' ~. e3 K& x/ u" ~ e% |" s& I; V #endif/ f' S2 M1 f: U
nHour--;
\* l4 U7 \* p+ h- p if( nHour < 0 ) nHour = 0;7 r+ |( ?0 E# P
if( nHour > 23 ) nHour = 23;) U r* i) Y$ P7 Z
9 P5 F( ~+ U: c S, l
//if( m_bFixedHour )
) }+ q5 z' P! \8 i0 A1 E4 C // nHour = m_nFixedHour, nMin = 0;
1 J& d; |2 L$ R7 p LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 R/ ~# O( I6 q
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
7 C' s. b; @! P& ?- O. N3 u0 Z$ f1 m, x! t+ J( G
//m_lightColor = lightColorPrv;
3 G3 u" ]- t1 z& [ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;# s. L3 N' w- S& e* m' Y6 \' H
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
0 }9 |2 F; x# C/ P- Q* a/ @2 n2 p lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;8 g# F; s! K7 t9 T( m
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- J1 u9 s, B: L( u. h lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
% q2 [5 t# b. c: B( t8 }- ] lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60; T2 ]# R5 J! ]1 X4 P) P% g
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
' [0 w6 y3 G% Z$ X# Q& ^0 e m: v K- Y3 a" \* J9 v
// à??μ oˉè*
' }2 w- B4 F( Q- m) i/ k. D pLight->Diffuse.r = lightColorPrv.r1;
$ Q' l- C" D( L4 s0 Y pLight->Diffuse.g = lightColorPrv.g1;
( Q( n- @5 ?, g$ Q5 D pLight->Diffuse.b = lightColorPrv.b1;( g2 R" I8 Z1 U( O
// oˉè* ??à?
9 E3 k6 N& X; C3 J pLight->Specular.r = 1.0f;+ ]! l- K+ d" A# [9 `) ]2 o
pLight->Specular.g = 1.0f;
5 [" D- f8 u+ x4 F7 X0 q/ ]% | pLight->Specular.b = 1.0f;( }9 n5 s: s2 K2 P( Y' G, _3 t
// àü?? oˉè* 4 f# j1 h# l. M! ^7 C% p
pLight->Ambient.r = lightColorPrv.r2;. E6 B6 ]% O1 J8 S7 G
pLight->Ambient.g = lightColorPrv.g2;* k/ `5 Q4 t! R( t/ G
pLight->Ambient.b = lightColorPrv.b2;& H, y6 i1 J. |8 K* h* n
7 W; G9 v. M5 Y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 v2 M, V y7 J. V5 Q' P& Y: B# H& d
{
- l6 Y8 i$ R) n; l4 V& o pLight->Diffuse.r *= 0.6f;
" v) y7 R7 G# p0 T: x, F, j pLight->Diffuse.g *= 0.6f;
! ^% |0 Y& E# z; l pLight->Diffuse.b *= 0.6f;9 \! y+ m! Y: M5 d5 C
pLight->Ambient.r *= 0.7f;
* z2 e' W- K( ^: |0 X& M6 X8 M( _$ F pLight->Ambient.g *= 0.7f;4 L8 Q- N' o2 e4 C/ q# G
pLight->Ambient.b *= 0.7f;. n c9 m0 |( Q0 x6 u) D
}" D$ Q1 {2 _6 \3 c; O& h
3 \+ G! M4 T; t: A: r# T6 L#if __VER >= 15 // __BS_CHANGING_ENVIR
* \( K9 t# {' I @7 E! L+ r8 h if( g_pPlayer )
0 C) U8 O5 Z4 u; y9 K Y' P HookUpdateLight( pLight ); J8 h6 p M0 E4 B, C& f) x
#endif
! j) H% @6 a% q$ w; o J1 s- K6 m memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( x" t! T1 {. V2 t" S( d/ |( l: |
- m2 J7 v1 A6 p8 G" Y
#ifdef __YENV, W% L- ^& U4 q7 C' q! j" H5 M
pLight->Diffuse.r *= 1.1f;
& k5 M" E: T3 @ pLight->Diffuse.g *= 1.1f;
* U. a, K1 g6 R- T9 j0 s* u" Q pLight->Diffuse.b *= 1.1f;
+ K2 s. n$ S# @: |9 c w // oˉè* ??à? 4 P' \2 }. N% @% j; Q$ @6 F8 q _
pLight->Specular.r = 2.0f; U% \: {+ q" U6 c7 |% Q. U v
pLight->Specular.g = 2.0f;
0 c3 Z& H+ t k2 [# U! r pLight->Specular.b = 2.0f;
6 Y1 E( q0 @( i- O. f1 ? // á?oˉ
# O# ~$ W: H( ~0 d: a; { pLight->Ambient.r *= 1.0f;/ m% `6 W7 T( @, Z5 K$ {. E, W
pLight->Ambient.g *= 1.0f;
3 `3 U& [$ V) Q k pLight->Ambient.b *= 1.0f;
0 n# ]1 i" b0 z+ ^) H#else //__YENV$ A3 [; _2 w$ W+ R
pLight->Diffuse.r *= 1.1f;
6 R1 s6 j R! r5 `, u0 S pLight->Diffuse.g *= 1.1f;, i# h3 e" D6 [8 w6 g, O) U
pLight->Diffuse.b *= 1.1f;
1 D# f0 n6 D: a5 o6 W8 _ // oˉè* ??à?
6 H+ f& B! e4 \! { pLight->Specular.r = 2.0f;. q9 h( b* |! Y- Y4 m8 b: Q
pLight->Specular.g = 2.0f;: i% ^ n" C+ {
pLight->Specular.b = 2.0f;. i- G r3 p( p, |) J2 {7 r
// á?oˉ / V. a5 O* O, L) t
pLight->Ambient.r *= 0.9f;8 }1 x0 b0 ]) f6 \4 o
pLight->Ambient.g *= 0.9f;0 @1 [2 s3 b) M0 s$ A/ k# }
pLight->Ambient.b *= 0.9f;( k2 r5 h( D: Q/ h1 @: a
#endif //__YENV 1 t; ]2 |4 j- n8 V) H- {
) X) ^7 `4 D" z& u) f) {; F memcpy( &m_light, pLight, sizeof( m_light ) );) h1 q+ O, o. M g! x+ v; ^
. k( H2 j: }( l% Z D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);! M e& e+ t+ e" Y& H1 I
D3DXMATRIX matTemp;. k6 E# }' k) E9 }
static const float CONS_VAL = 3.1415926f / 180.f; l2 O9 D' a0 t8 s
' |- X$ ^( b7 z: X2 p, i1 U4 ^
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
; F! }; O3 Q7 Q3 j/ R8 C! a7 [3 X D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);. j/ {8 W) p* S' l
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
, b9 J/ Z, f3 P( f pLight->Appear( m_pd3dDevice, TRUE );
9 ] j* W; O! W1 [& L4 Z2 c: v( u6 f" [
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 f* {) z3 \+ _! b
// D3DXVec3Normalize(&(vecSun),&(vecSun));3 R/ X# {4 R: @) L' H6 k3 ?
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 z' H) O s% b9 ~& Q) U0 e! Q v# D7 p. q" N/ [2 f! c
DWORD dwR, dwG, dwB;) h. a1 x( G/ F* l, Y0 l
dwR = (DWORD)( pLight->Ambient.r * 255 );" @' v9 n1 n2 [ S8 a4 a+ [
dwG = (DWORD)( pLight->Ambient.g * 255 ); K/ J4 Z) C2 K8 \4 U$ B9 x5 q
dwB = (DWORD)( pLight->Ambient.b * 255 );
! I$ ]) E0 a5 b( b" w- V4 ]& n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); : a' d3 Y' S4 C5 i( m
}: \' R* n& \! B7 d& ]. F. s
}8 _( ~ s6 @5 j0 E7 I
/ g6 H8 D$ a9 f3 U. g& x m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
+ W& @: I! r9 P/ C/ O5 U3 { 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* `: B7 Z2 t0 U( s$ m: ~8 K
::SetLight( bLight );% R! L" u6 D& w) f* c: g
; I; U# {. L% E( D
// ±ao? ?D?í???ó á¤à?
4 `, Y/ r7 Q$ } Z w8 U7 P m_pd3dDevice->SetMaterial( &m_baseMaterial );) L2 Z# G5 [% M4 p, O$ Y9 y5 w
) S4 |( s0 G8 o: `& j& n% N$ @5 l#endif // not WORLDSERVER
( j; r, f7 P0 ^( P* Z" R% ]}
# |1 F, i3 P% X. @( q# P并更换5 g, B6 C4 }( k: H8 Q2 w$ I
Code:
; `7 |& o' p# C+ B! J__FLYFF_INITPAGE_EXT
6 [; Y+ i$ b) X/ p* B3 K9 l6 B& b% x定义
4 Q5 V3 b! j0 W8 l. r5 o8 ?
- E+ y/ \( p6 B8 @" p. x
6 O: d! I$ g; S, C. v" P8 P9 Y
4 s( @7 D' ^/ [% S4 |$ U( z5 @5 e) r, I Y1 q
现在终于删除我的狗屁加速.... v' D" j+ N, b5 g1 d
( t8 J! w; t% m- @1 }
- I( O" H$ l7 M. G% l
' w- u& N# w. t |
|