|
|
食品车:
! W1 M8 f* e- |9 i6 J N' e/ N# l尾翼:
2 p9 V" ^2 F# @
- v/ B$ X3 a) a3 S2 S# L/ @代码:# }) ~: s( t* o8 O3 n) c
CWndAutoFood::CWndAutoFood()
5 {& x( C( j9 B& O" F{4 m: U9 d- z5 ^4 \9 o
m_pItemElem = NULL;- d N4 o$ ^+ V* `$ M# M$ `
m_pTexture = NULL;! m, S7 t; w! N# y+ R2 X* ]
bStart = FALSE;
c7 R" ?9 n4 I5 p7 S}
- Y {* c: ~# a0 V% C0 H+ d2 |& f; Z# r; `$ A4 l- I
CWndAutoFood::~CWndAutoFood()
/ Z2 f2 e. F( ]{, s% C% V7 c; i
AfxMessageBox( "AutoFood ist gestorben " );& _6 d! \) _: e! H/ l- x5 {! X
}" b- D U1 C* ?( U. ]4 S
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
9 v& M5 m2 i- y/ S% u{" X6 ]9 v1 O( \6 s2 R0 y3 d
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
6 T: G; P0 c; N a}2 h1 I6 f3 x1 |4 E
2 r9 V# ]: A3 |4 E! | z) t
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
5 _. C+ S* q, q{; ?# d' o) V% p3 R% V
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: `' r6 ?% ~: ?% t CRect rect = pWndCtrl->rect;' f, x p* B! {6 k# k, `
if( rect && rect.PtInRect( point ) )3 `! K$ H1 \. @; m0 Q
{: h7 D( n }# w$ ?0 I$ k7 r& L, G
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
; E, k+ v$ o% }9 R+ ^7 I G if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )% A9 z8 c+ b$ M4 F5 j
{
; _2 P9 O8 p) L6 m9 ` if( m_pItemElem )# [% m. J9 S. b6 k2 l3 p
{7 ^$ z7 ^2 N1 i4 ^" n
m_pItemElem = NULL;
1 f" h1 r; Z; I }# ]' }' J$ s& W7 g; U
m_pItemElem = pItemElem;0 Z N0 ^5 E% o4 ]
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! [, I2 ?% c+ S' v! M }else{
* t, p' b& j1 k9 x SetForbid( TRUE );
* Y8 b4 f) U) _5 p! X2 ~, ^; ~ }- [9 `( H; W& e1 g! O- V* w
}else{ D. g0 \9 _3 m/ T8 l8 c
SetForbid( TRUE );
, {' H) x/ m. j# y U }
9 s$ G" C2 t' n3 c/ z return TRUE;9 }# W- {% K2 f" |1 ? \# f
}0 [- Y% V: X2 k& w
! i @& _% B& W- [: i
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ), f9 q, v I- G$ g
{
) Q( z. G! E& @ switch( nID )& p* q# [3 H2 P% D' P: Z" [4 V2 }
{: p) ~( y+ D/ K' J' w! F* \
case WIDC_BUTTON3:# @ R9 Z+ t8 f
{" S/ S5 u" |( o- {: W5 l# y
bStart = TRUE;
" m& n4 |2 O! H: ` T* O, L break;
3 t2 b+ d7 z- C# E' ?; J }! T# \, R/ w# H. B* Q& J. d: Z
case WIDC_BUTTON4:( b7 m3 [- W3 _- \: F! Y
{
, l8 @5 Z% M. W bStart = FALSE;- y& i/ D# o" R l
break;; a. R2 | K3 \1 k
}
, B- j9 Y3 g: l: u { }) _+ Q; f! R; U
return CWndNeuz::OnChildNotify( message, nID, pLResult );0 |2 } |8 F9 V6 C l: _$ r
}
# D2 B0 R) @* e/ W) g) s" ivoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
) j0 k5 L8 Q9 b+ {{' O# V8 v: e9 ]1 q! |& n+ b
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 o. d8 Z/ d) K, B& g if( bStart || !m_pItemElem )
% I4 v/ R. A. P% V5 F& o) ^ {
5 @- G$ ]( U. A# m) g pBtn->EnableWindow( FALSE );
' Q: G5 s7 j- E$ y! { }else
1 T3 M' ?: o z" x pBtn->EnableWindow( TRUE );3 ^; z/ G+ D: r
if( m_pTexture )
* Y- X; j p9 R/ ^ {
+ J( {) |, |8 c% E- L3 B LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% N& l# L6 u' O) b9 Q7 X4 `
if( wndCtrl && wndCtrl->rect )
6 Y: x: ^ W& H* \& | {
! X1 F9 |8 k1 i( \, g m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );5 V2 r4 U( [% g
}
# a9 \" Z: L, O9 h' N }
8 x% `+ `2 ^! `* {6 a}
7 H2 A+ \( R5 k( |0 l- ]
) U* [: c. ]( T. m* {& |/ \BOOL CWndAutoFood: rocess()9 g+ v3 _7 E# N( G0 A
{
' P" _0 C; O2 \+ ~& } if( bStart )' @7 ^3 y% k2 [
{& N. Y7 ?9 j; r; J$ S$ v) T
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
0 V- n5 h2 o/ ]5 z- D$ Q- Q {
/ j, i0 W4 x$ h1 L: [$ w, D if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )" f# b, \" f* N/ `
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
" y& y7 l/ B( V, { }else{2 E; b( P) x% M! C( w$ ]9 t
bStart = FALSE;) h3 m1 e+ B ^9 R
m_pItemElem = NULL;3 y( B+ d- L/ P7 a* `9 P; Q
}' `% E+ S l$ G3 n
}2 C! c5 ~$ y$ I0 z
return TRUE;
|+ C- u( P8 N& g v- L% v}
5 {4 c. |2 ~$ E5 p. n
3 R% ^) r9 R) ~6 `5 B( x y* g* B C9 _登录视频废话:
3 v7 A% X8 y0 I尾翼:
F& m- R# V8 X7 ~- ?& }; k- s a( v8 n
代码:
& t" U+ v1 y* j, I
; P: t; v$ M# G# w# Y n5 H- T( wvoid CWorld::SetLight( BOOL bLight )
; @7 a" A+ x1 t2 kdurch3 G/ v5 b# Y$ [2 T5 I
Code:
, B; H8 {/ t. Bvoid CWorld::SetLight( BOOL bLight )
( ^4 s2 i/ q4 n7 q( [" ^{$ H4 M/ H) P- @! u9 [2 b8 J
//ACE("SetLight %d \n", bLight);
0 C& m+ w. J& M- ?2 p% n" [* d0 r
8 N. O8 c5 Y8 K#ifndef __WORLDSERVER
9 p. j2 J" j" p. J DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);+ B7 Y9 C7 H9 e' u5 Z
CLight* pLight = NULL;2 z3 \/ E& _2 X' W0 E2 x" I
7 D1 V+ F. {; P( | D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );4 w. z+ S" d r. N; X
) P) F! n9 @& K4 @7 N Y0 z% q$ K8 F' l
pLight = GetLight( "direction" );4 Q3 o+ R+ [. q
. A- {' k. D* e3 c5 W2 @
#if __VER >= 15 // __BS_CHANGING_ENVIR8 R! f( k: j1 J3 F
if( g_pPlayer ){
; Y3 Y) n% v- r/ [ W, j ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );5 R. _8 }4 B' b' U5 \2 f
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!' h: J: y% x( ^" S
{
# p) W E( V( M* A8 {2 h' x0 A& j if( pLight ); |3 t: h9 d* T' j1 [1 x
{5 h( w1 W& W0 n: F
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];" p: f" X; ^: h! q. a+ R
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
; I" }% p% @8 {# S& ` pLight->Ambient.b = pInfo->_fAmbient[ 2 ];# M) [' ^3 m D5 F: H1 P
5 x# C( R# U3 R. H& B) D6 A2 j) ?& R0 b
pLight->Specular.r = 2.0f;$ e' u L9 C& R' m! [' N4 j- Z1 r
pLight->Specular.g = 2.0f;
- k0 Q) R# ]" Q' e pLight->Specular.b = 2.0f;. P1 [: o+ l0 v) ?& Z+ c
9 z% V4 |. L0 w4 r$ z( W% } pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];; l/ n8 a$ X3 w* N$ g& d, z
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];: d) x) I' X$ ]$ u6 e
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
; o+ c9 B$ Q4 k7 X$ K 6 v* \! P$ T9 M/ Y& ^' b9 J' `
HookUpdateLight( pLight ); , [9 S* N1 P* ]3 F3 s/ O6 O4 u
: V7 H7 T' I; J# p, @
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 ?* H* [4 U. a. c 4 x e3 ]7 b% t& b* C# T1 I% ~ D
pLight->Diffuse.r *= 1.2f;
- r5 Q; U8 D8 j; B, E8 f pLight->Diffuse.g *= 1.2f;
& K- L- q, A6 _7 i1 K pLight->Diffuse.b *= 1.2f;
" R9 l8 s$ \9 q3 V5 f! }. w/ W8 _& C, \# c* u/ D& l
pLight->Ambient.r *= 0.8f;, H8 ]0 I8 B' J' U0 E
pLight->Ambient.g *= 0.8f;
& ?) Y5 @" b4 N- y8 { pLight->Ambient.b *= 0.8f;5 D, H: w$ E$ U& n5 L
) [# X4 Q% P" ~
memcpy( &m_light, pLight, sizeof( m_light ) );
* X. j( M# V& `) M+ c+ d2 K' u8 C4 A ]8 X& i) m- e4 F3 o1 c
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ ~+ f) T/ i! c5 j* C% H9 z, j
D3DXVec3Normalize(&(vecSun),&(vecSun));# v% y: X7 E) E/ b8 N
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
" w7 L. r! K$ G! ]& w pLight->Appear( m_pd3dDevice, TRUE );1 b" N( P* p4 N5 j# L9 T
& S$ X: C! j4 u+ C4 U% U0 X
DWORD dwR, dwG, dwB; K! N' b# m2 l
dwR = (DWORD)( pLight->Ambient.r * 255 );
, F0 |% J5 s1 T) @' I3 e dwG = (DWORD)( pLight->Ambient.g * 255 );0 Z, A3 j% o% K/ Q: k, t
dwB = (DWORD)( pLight->Ambient.b * 255 );
+ k) \/ |, R1 J1 b% M1 }8 N dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 T; j: [' F/ V$ F4 U }8 P: _! M- r% d" \# @9 b6 U! h
}
# ~# k7 d& Z0 d3 H! h2 j. F1 t }
, d' c% v$ h; r# w& m7 `5 b* [ else! m5 R% I3 T1 V! [& _* b
#endif
% G+ o6 b& T) |+ o0 P. M5 s
( [- Q- w: A" T ` X if( m_bIsIndoor )5 Q' M$ y; q$ c) u! B5 f' O
{& c4 H) N* j" k/ j% R
if( pLight )
1 [, V# d' _: X. X# { { ( u9 N$ J4 O& }: ~
// à??μ oˉè*
+ Z% q* r: \' ?% I+ r. Y; D6 N pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
$ c7 E6 f( q9 V2 ~3 B f# ^ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
$ u5 M" E- ]; p" l+ E% c pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
8 f& ~& _: ?: a1 |) C! P/ @2 Q5 N! F/ L' F# l% U
// oˉè* ??à? 9 ~& v& K8 I7 _3 l% h! I; e5 R" V
pLight->Specular.r = 1.0f;! R$ x8 ]2 |5 K* b* F+ q6 G- l
pLight->Specular.g = 1.0f;
. n$ q4 ]# j( x pLight->Specular.b = 1.0f;5 T5 x* |6 u4 `
// àü?? oˉè*
2 v7 G! f+ D0 t+ l& Y& h pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
u! D3 u5 c1 C/ g5 C5 s3 P pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
! a' o, |: Y+ y; z: J pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
/ `" H" L1 }; \/ x
$ R% [" H+ y1 `7 P" L$ q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.& A: l2 |/ X3 ~6 A' w/ e* m, @* B) B' K+ q
{
# j% e( q5 X d9 k+ B pLight->Diffuse.r *= 0.6f;& ?: T3 |& e( _8 y7 U7 r
pLight->Diffuse.g *= 0.6f;- c7 Z$ U2 q) _/ H x2 l
pLight->Diffuse.b *= 0.6f;
; {+ \/ [9 ^' I8 f% u7 p pLight->Ambient.r *= 0.7f;
; z+ G! ~! U. ^; z pLight->Ambient.g *= 0.7f;' u% a1 `$ b; A, p" M" |0 J
pLight->Ambient.b *= 0.7f;. Y* Q4 r: g7 H7 C
}
+ Y+ \1 W% Q8 l: ~& a
2 z. C# a' D {5 O$ t: f* x2 z#if __VER >= 15 // __BS_CHANGING_ENVIR
. ^" ?7 m3 m# G; p: [6 [. w. C4 I' w if( g_pPlayer )* u# ? _+ X1 X1 e$ T0 S; T+ G2 Y
HookUpdateLight( pLight );8 i0 z+ l9 C" ?; Y- }
#endif% g/ X/ s V. {" \! k" v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 J2 E* H" I& ~
* k2 N9 \4 T' _7 E- G
pLight->Diffuse.r += 0.1f;
0 ^% g: y$ d N, p4 n pLight->Diffuse.g += 0.1f;, i. B8 {2 ~" _# A
pLight->Diffuse.b += 0.1f;
2 d9 m; b$ f$ x // oˉè* ??à?
" U3 B5 O" F7 [7 I+ L8 R- T( ^; R0 m pLight->Specular.r = 2.0f;7 h& n. V: g* m) C2 \7 R
pLight->Specular.g = 2.0f;
9 r6 }, c( E7 A) J% l b$ D pLight->Specular.b = 2.0f;; G# \0 \7 B1 K1 w5 V$ ?
// á?oˉ / U" [% Y! l: H8 G: _# }$ E) b
pLight->Ambient.r *= 0.9f;
, s- [4 A2 s4 O4 m+ D pLight->Ambient.g *= 0.9f;5 S% o; h6 z0 s* n+ h+ X6 u# B
pLight->Ambient.b *= 0.9f;0 N5 j$ e) Y2 n5 W) v
4 l5 q. H# M% v
memcpy( &m_light, pLight, sizeof( m_light ) );, b+ G; i3 `0 J9 [: x! x
, i, {* g/ ?( p& a
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
8 y" |: u1 i. U pLight->Appear( m_pd3dDevice, TRUE );
3 }7 X; t7 h, t& V, K1 P ! I" g3 v5 z$ z3 O) k/ G8 H
DWORD dwR, dwG, dwB;
& L3 `/ V6 d' w1 ~9 t dwR = (DWORD)( pLight->Ambient.r * 255 );
1 o, p/ y/ Q2 u( |; x( A0 A' k. E dwG = (DWORD)( pLight->Ambient.g * 255 );! j0 b: f# g8 {6 A Q. p F# Z
dwB = (DWORD)( pLight->Ambient.b * 255 );8 C% P$ X% ]. O9 O- M/ {. r( i
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' s/ ^! n0 y1 x0 e& R) { c' |. f }
# k# D# ~( u" o1 v2 t) n }
; z7 Y7 i; D) p' [- b# k' f else9 U5 X* u5 }% {/ s d$ k
{
) O# s! B; b0 v1 L: N2 m if( pLight )
, Q$ U' x1 X. {8 L5 z1 G; M9 z$ X {
0 {) o+ w& [5 f 5 c4 y/ l- x d5 d! D; N J9 p1 ?
int nHour = 8, nMin = 0;
) t/ q. @2 p5 M9 ~ #ifdef __CLIENT! g$ |1 J" T0 p7 l9 k/ T" d: e) C
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
) r5 F5 Y$ b7 V2 C: b nHour = g_GameTimer.m_nHour;3 W' Y t1 O. F: V$ ~* Q! Y
nMin = g_GameTimer.m_nMin ;2 B% J, D9 l4 y+ j( u* `
#else
! [+ Q+ j/ ?+ O; g/ f: F: K // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
* b4 o- i- N, Q- }* C0 m if( m_nLightType == 1 )
" z! g! W z' F0 g6 T v; @ nHour = m_nLightHour;
+ E: S( f6 o9 K, i; B. t9 D, a #endif1 {' L" `* M, `$ _% x
nHour--;
0 a# d) \: G+ T3 J" c" G if( nHour < 0 ) nHour = 0;; M/ F L4 |6 Y, e: Z3 ]$ v) x ?
if( nHour > 23 ) nHour = 23;& t& |; A6 g. k; {
6 X( w8 U W: F" ^9 J7 u
//if( m_bFixedHour )2 W$ z8 \% ?/ x* _% G+ w
// nHour = m_nFixedHour, nMin = 0;
. j8 K. z; m( G/ l' [7 s LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];- y' @8 ^4 h" t% P9 ]: H
LIGHTCOLOR lightColor = m_k24Light[ nHour ];' j+ \7 x* R; L
% U1 k' V7 W/ S! O/ E# O" q: M //m_lightColor = lightColorPrv;) w0 G( t9 ?0 _. Q; ^" G9 e- W5 ~
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
( h9 @: b& ~: X" h, H, D7 _ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
5 B3 R3 B' F6 Y. L+ w9 O4 f lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
6 w% r% j# ~- h: ]6 P' I/ V0 X9 d lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
8 A2 j1 O% k; A5 n4 _* i* k( W lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;* p1 ]* `6 N' `2 f& f
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
, l0 U) p! {' u+ f+ Q; p4 Q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
8 [; z; G, \6 l" F8 q2 {8 j# q0 Z: D |, q
// à??μ oˉè*
; a$ e7 G' O8 G" E$ F% q* R pLight->Diffuse.r = lightColorPrv.r1;. E2 B+ f4 V/ j+ o/ b3 q
pLight->Diffuse.g = lightColorPrv.g1;5 C+ g% D. @6 ~. A, @6 A
pLight->Diffuse.b = lightColorPrv.b1;
: O' d( o& M: f: l( N // oˉè* ??à?
7 `* O1 |' K1 k9 g pLight->Specular.r = 1.0f;! }2 C' I* a3 ^7 z' k" g4 d6 X! B
pLight->Specular.g = 1.0f; Y+ h* f3 @* O/ T5 a
pLight->Specular.b = 1.0f;9 {9 P; D* c: x5 |. T7 R4 g
// àü?? oˉè*
. y- q& {% z4 Q' I* c o$ Q pLight->Ambient.r = lightColorPrv.r2;+ y/ S5 n! p- K
pLight->Ambient.g = lightColorPrv.g2;; |/ H/ ?, U8 X9 k- a: y
pLight->Ambient.b = lightColorPrv.b2;$ O+ v$ n* B) x! |( D
! [9 r4 v4 {2 o2 ?$ ~ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
# d) Y/ K/ d3 [1 I# Y3 v% r8 {; @ {
- V! z6 J& E% N6 V' D5 q pLight->Diffuse.r *= 0.6f;# Q Z4 r6 ]+ R4 b" Q
pLight->Diffuse.g *= 0.6f;0 k' N1 D, f) ]: t& {( ^, b, m
pLight->Diffuse.b *= 0.6f;: J: t( H D8 m C. m0 f
pLight->Ambient.r *= 0.7f;
& N+ x5 \( k) A/ K; ~) t- _7 J! U! ] pLight->Ambient.g *= 0.7f;
9 C" I3 [3 y- ^7 @: c pLight->Ambient.b *= 0.7f;
& t: i4 A& C9 p }
/ T4 Y1 y; s- ^3 O! U, b8 Y% d( X . @: x% e5 D, Q+ E1 k
#if __VER >= 15 // __BS_CHANGING_ENVIR
% g" b2 s! R5 h1 X) K if( g_pPlayer )
, f( L9 ?- G& A' {; |+ O) \4 L# c HookUpdateLight( pLight );
, M3 e2 B! }8 b#endif
& c2 Z" X# s' Q4 Z% q# l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 E* C4 e+ p/ }7 s& S! q- Q0 x; T2 Q1 h6 u
#ifdef __YENV
) M! z2 e0 ?: P0 |1 n. U' I. D% S pLight->Diffuse.r *= 1.1f;9 j+ h" O. g) m" v R( l5 Z
pLight->Diffuse.g *= 1.1f;
8 _( [! I+ w5 E. H" G) q pLight->Diffuse.b *= 1.1f;9 V+ q7 {1 ^. @. y1 Z8 B+ P% m
// oˉè* ??à? ' Q, K% r# x& V; Y! g9 d
pLight->Specular.r = 2.0f;$ ~2 w, N9 x* J, p
pLight->Specular.g = 2.0f;( _9 V) i2 V" z7 d/ C
pLight->Specular.b = 2.0f;" ?2 |9 f8 B8 o# N1 r ]5 `
// á?oˉ 6 `7 v$ f/ T9 s
pLight->Ambient.r *= 1.0f;1 W4 W7 D1 h7 `, V3 H `3 J6 C9 g
pLight->Ambient.g *= 1.0f;
1 Q+ E! O" m4 u, l$ n! t' { pLight->Ambient.b *= 1.0f;
- b j% d5 P7 v8 @#else //__YENV& ^9 L6 {+ y" u2 n2 {8 k
pLight->Diffuse.r *= 1.1f;
4 ^' Y& i" Z3 @8 w* K& |5 `- S pLight->Diffuse.g *= 1.1f;) i: d+ z% \7 ]2 N
pLight->Diffuse.b *= 1.1f;
7 G d; K% d4 }0 H8 U // oˉè* ??à?
2 D. [5 I: s. D- {1 H9 P1 a# v pLight->Specular.r = 2.0f;2 x* q5 ~8 P' R1 {
pLight->Specular.g = 2.0f;
; W% X$ G# K7 Y: i% D' O5 ` pLight->Specular.b = 2.0f;
9 I0 g/ q D2 Z0 q) _. j // á?oˉ 1 i( p- R9 ]3 @8 C: Y
pLight->Ambient.r *= 0.9f;
' R4 P8 ?9 S3 D8 s8 X& s pLight->Ambient.g *= 0.9f;
' L+ o( Z0 E) k" e7 G& \ pLight->Ambient.b *= 0.9f;
+ k/ c$ E# I, c#endif //__YENV
4 U8 y" q1 y! A' ~4 {; X! g : a- k5 O! l$ z+ M: X9 I
memcpy( &m_light, pLight, sizeof( m_light ) );
1 l. p; r) F a1 I0 z; \
* k; G2 G$ j2 A( m- K D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
5 |! T9 D: w5 W+ l1 S, \ D3DXMATRIX matTemp;* k9 j+ _# {4 M) w/ O
static const float CONS_VAL = 3.1415926f / 180.f;
/ y2 i- k0 f3 y' z8 G" I& b/ ^# {8 {. D8 J. V+ q, L
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);4 ^8 I& I+ y+ A0 K
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
$ R T1 o3 q. `& W# N pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); # S* F) b6 ]) W, a* H+ ]" @
pLight->Appear( m_pd3dDevice, TRUE );- \" W/ ?1 x# M1 K; n
) O2 \( I' b- N; A' J" j" I% u- `
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ n& v! Q' e( R6 l# z2 J# n6 Y0 O
// D3DXVec3Normalize(&(vecSun),&(vecSun));9 {- ?4 q: p: `, V1 E! m
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , V( |( L$ b' b# H. \' ?
& P) W/ x+ x/ A5 K
DWORD dwR, dwG, dwB;7 o* h7 j% C3 \2 x7 [
dwR = (DWORD)( pLight->Ambient.r * 255 );, W4 ~8 k1 ?9 ^6 F3 b
dwG = (DWORD)( pLight->Ambient.g * 255 );
C" ], ]7 I; p6 L' A/ B( `9 q dwB = (DWORD)( pLight->Ambient.b * 255 );; t; P. s w* j# d$ `$ A
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* l% P( D4 d7 `$ _7 s @ }
5 F* d% o' P8 t7 p }5 M1 V% S& O7 }0 o( U# Y" T7 Q$ f
9 y' A$ ?. M( f; ?: i
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
+ E/ {& m% z/ e- L- `3 @ 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) );
5 i3 H0 o8 ~. N$ D3 m ::SetLight( bLight );: N. g9 \, a6 ~
8 c# s3 D) k- E. a% W. y z8 j // ±ao? ?D?í???ó á¤à?
8 x6 u) \/ s+ \8 Y4 r; c8 d m_pd3dDevice->SetMaterial( &m_baseMaterial );$ u) W* k) d5 V) Q
* B) a* J4 w( d; Z- a6 n( ]- M
#endif // not WORLDSERVER, ^$ ?6 Y+ }" z" Z1 ~5 P, R
}
6 P4 w) p& z. m; I并更换
- l1 w3 H- R4 f9 vCode:7 L* H) h& E/ ?* J1 V% P
__FLYFF_INITPAGE_EXT. D, [ [2 f) _& h8 X
定义2 i5 H- j* S! i4 @* M( A. p" |
. N' l5 H% b/ d8 R; `
( U3 Q/ [' v% C7 Z- i; _- @+ Y. W8 O5 a4 S$ P( }+ P
0 [- w# K; s( ^& D0 q* a) X. g现在终于删除我的狗屁加速...
0 N0 [& h2 w$ L/ y# ?* J) q @9 k: _3 e s! P% z( u; O! a+ W9 A. m
U6 r% P3 ^" E# n& | A( e: y
" U; h3 f z+ a" N |
|