|
|
食品车:* J0 M1 V( E/ ?# T
尾翼:$ E$ G7 K1 T2 I0 Q
' m3 ^9 Z4 W* M7 D9 S7 z$ t代码:
e# k2 j' z2 Z; c" }) }. z" ~CWndAutoFood::CWndAutoFood()
4 I; G5 }* l8 E: n/ G U, T0 H4 t k{
" A$ Y4 n. C5 X m_pItemElem = NULL;0 K. b/ s) I! |# B3 b: E; e
m_pTexture = NULL;+ {. P( j% L! O2 {, X% g
bStart = FALSE;
. q2 Z+ w- ~9 V, r' c5 K0 T}
! ], U9 a6 u% v1 G
7 R1 k1 E! d. m" H5 e6 |6 rCWndAutoFood::~CWndAutoFood()! x# b0 F0 F' ^4 `! i0 \* |
{- P, j; \4 a3 Z g, v/ e; W) M0 ~
AfxMessageBox( "AutoFood ist gestorben " );
1 T) ?4 N) C. d8 H6 d}
# k. L6 f5 A! L2 U2 B/ FBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )) j# n9 l1 _6 d) W/ d8 p; ^
{
* A6 n G/ @) A( J9 U" F8 B$ @ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
( D0 K, M" T* Q6 X9 W9 h( N}. B: x; E3 n: @
$ f/ A: c8 k7 H$ gBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )3 H: A/ m r/ i' D; `( Z% v
{8 M/ A: C( W7 N1 |
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. D2 F6 ?. ?$ S8 ?& P8 H; W CRect rect = pWndCtrl->rect;1 |# Q4 A/ s# g: g0 b0 a" I# M
if( rect && rect.PtInRect( point ) )
8 R1 S. Y1 |4 M6 Q {
! v A( }6 {1 k, g4 ? CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );" c, s1 y, y5 N& w
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )' Z9 H! U" q, L+ H r* h8 g
{
3 q0 G& [' a; D6 V5 [4 U0 y. U if( m_pItemElem )
4 d+ R2 m5 Z$ ^' o b' _ R {3 D. N: Q$ B6 f" I+ [/ o$ U/ l
m_pItemElem = NULL;9 H) }" z* R7 [$ m- r+ p% V
}; q' \5 l/ r' F) a8 s
m_pItemElem = pItemElem;; \5 d8 N2 A+ @
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );- U/ c9 w1 H' r/ T8 r3 m$ f# F
}else{
: X$ r) m2 A ` SetForbid( TRUE );
* F z0 q6 L3 }) [; @ } Y) ~3 a# `& j6 F& y+ {, E9 }7 r
}else{
q4 q7 i! \& ?7 j SetForbid( TRUE );. \& F0 X& q4 p3 K; m, H
}8 c% X( X/ F0 V# V
return TRUE;
& n9 E' }. A V* F* E}
, N# l7 l. P+ C. `! I: U! D
! f: r" y: Y" r, zBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ). ?1 d; g h7 P9 x8 |1 k" M. h( ]
{' h' j5 \; x2 I% E* ] }
switch( nID )
$ K2 }) C/ n0 g {
, S; u d0 i8 k; u case WIDC_BUTTON3:
1 ^/ p$ ]4 P f# m/ t& h {6 E5 Y7 l0 a) K& q# Q6 X
bStart = TRUE;+ u6 U6 o; n+ \
break;3 h# k8 b R- N& l" n0 Z
}8 {3 N* G9 L2 Z- N9 N
case WIDC_BUTTON4:
. W1 Q5 S t2 J1 Q7 d# d% w" ~ {
" ~! U; _& K* o) W+ P bStart = FALSE;
/ x0 C/ @! M( t6 P& F break;
! C0 b) r1 N% ] }9 n9 z+ r6 m* D! f, l" h' m
}
8 }0 S8 _# [* F+ J& l5 | return CWndNeuz::OnChildNotify( message, nID, pLResult );/ b0 d* u, z* d0 ]9 D9 N
}
/ ^2 v0 @; \* Y; Fvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )4 J) K$ k$ L8 R7 P; s& {
{; l( |4 ?* Q- T9 o( y- x
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 ]# S4 o f h1 l: w* X& O3 f
if( bStart || !m_pItemElem )8 Y# d6 O3 i" w
{1 z, u/ m( P Y6 [8 }; }4 E% w$ @
pBtn->EnableWindow( FALSE );
" p9 O. G2 [+ P7 `( ^ x: g7 ?9 O }else E3 E4 i9 |; f+ m6 S+ a: R+ U
pBtn->EnableWindow( TRUE );
# @- d! r7 L3 z2 W$ F if( m_pTexture )! h! ^' j) E9 G8 v! \
{
% O( U( u+ d9 \1 D3 O; Y2 V LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
5 L+ I; h- L4 I+ | if( wndCtrl && wndCtrl->rect ) @5 D `9 c" C
{; U; F, d! [" Z+ C4 @+ c
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );: X- n6 H; i$ S0 `9 y
}
! U, ?, C0 {9 \! _9 y" w, T8 k' j6 Q }/ H& B( m F; B; i+ A* ]
}
! \3 ^3 X* t& E2 b( j$ q3 i" q. R4 j, S& T, f3 f/ K
BOOL CWndAutoFood: rocess()
; k- H& F9 N. S! q: }5 l% i# c- I{
' d5 u' M* L) e* o1 m if( bStart ) V L7 v: o( z" f
{2 u1 ]% N) n. P4 m9 m* R
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
' z. V% {2 K9 p! M4 A& { {$ f. R7 W6 y) L' X9 _
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )8 [ @; v: @# O2 e
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
8 k. {$ `& X) Z9 K1 A }else{8 u- G! S- c5 `
bStart = FALSE;
: N7 w! h. E- |9 v$ n( T' E m_pItemElem = NULL;7 V) q8 E, j0 o4 l t/ E h
}
7 e' H9 l. P: G) D1 s& O/ T }
" h! f8 Z. `$ g& t; i9 | return TRUE;
! Z9 \+ x$ O; x, s p}
- _3 u- k9 ?7 q: H
4 Z: w, g6 H( \- i' q登录视频废话:
7 i% L* U* }: a3 m4 k尾翼:
+ x+ \2 e8 m% X. w* S. g: I- Z7 i" l6 B9 M7 C# A* s0 b
代码:
, B7 v$ A6 I8 p+ k
8 J6 J/ K D# s& `$ a5 Y# y6 Avoid CWorld::SetLight( BOOL bLight )9 K. _* n) [9 L4 r2 ^! p% ]& ]
durch
5 P- C9 g s# b' Q( p7 RCode:* g5 v. P0 s3 H2 A1 a
void CWorld::SetLight( BOOL bLight )
1 K' ^: f. i$ h' u: r- i" K{
7 f5 o" G4 R$ O; R //ACE("SetLight %d \n", bLight);; L4 v* p' a$ ?0 x7 b$ \
+ S- N3 j* L" I& P: m( z# N4 y7 V- M8 H
#ifndef __WORLDSERVER + l0 J7 _ e: r3 |5 V
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
1 S7 A8 z2 V o CLight* pLight = NULL;
& S- D$ q/ k0 H6 N+ b
( f9 q2 e" p; V% R( u D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
. D6 w7 G& F4 k3 `1 k! M3 _0 o; U$ O C; |0 O4 J9 Z/ n
pLight = GetLight( "direction" );
/ Y+ t0 F9 F" L8 a
+ z5 {' u( H; b( |( K5 C3 y1 k+ Y0 f#if __VER >= 15 // __BS_CHANGING_ENVIR4 p3 P% I+ x' y2 w
if( g_pPlayer ){* I; c+ e1 p4 J7 G) R
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );4 W/ [* Y2 p0 ]
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!: z& g: ]" `! s5 k
{
) [3 |4 H: J) T8 k a* [/ k } if( pLight )
) ]" W) X$ F. P+ E% ~5 ] {
+ C+ o, O8 N- Z% [2 p9 N pLight->Ambient.r = pInfo->_fAmbient[ 0 ];0 ?, V6 \( d8 q
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];5 z1 V9 G% J& h7 n
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];0 T! e2 ~$ I0 c1 e$ Q
: }; Q3 y0 V( h+ T* j
pLight->Specular.r = 2.0f;
( z% B/ E/ G2 I1 _) k pLight->Specular.g = 2.0f;
& v8 K2 b. f$ P( s4 }* y pLight->Specular.b = 2.0f;
- m4 |# Y* z7 B& X L' n9 D3 s 9 `7 W) V! j g& N/ u
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];0 A- Q" X* V# Q% m: M) k
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];* f3 F! R9 l7 @0 c: U
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];+ C. [' C1 o/ _* \: h
. p" `6 q. n4 ~4 |
HookUpdateLight( pLight ); * {6 ^8 Z% e9 W* ]7 o
0 F {" R; O& v- S3 [9 \" v. s4 u memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* m K: [2 z7 Q- Y0 F. f
. J& T m; M ?0 R4 Q8 w/ g$ u* f/ | b pLight->Diffuse.r *= 1.2f;
J4 g' O- G& u% X7 X pLight->Diffuse.g *= 1.2f;
; X! J# G# u" a2 L pLight->Diffuse.b *= 1.2f;
2 c4 Z- z" [ n- i e- k% {# ^) Y. \* ]
pLight->Ambient.r *= 0.8f;
+ K( t* w( f1 W; ?6 t% R pLight->Ambient.g *= 0.8f;
2 r' S4 p [4 B; ]7 N/ h. } pLight->Ambient.b *= 0.8f;, [4 n8 c1 u( R! I9 d1 A
% V7 g. b2 v! o" [# w+ c& Q memcpy( &m_light, pLight, sizeof( m_light ) );6 E* h; @# d) }" u# d9 w
6 |% v$ W8 _; m7 y6 w/ E3 ]' x D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
8 ?) Y9 J4 L, | u D3DXVec3Normalize(&(vecSun),&(vecSun));+ ]2 \; c% ~$ o6 o7 Y" t' T
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 s0 s/ Y9 k4 g7 j pLight->Appear( m_pd3dDevice, TRUE );. N' I# c# d6 e9 ]
5 G% E7 O/ I+ y g DWORD dwR, dwG, dwB;
6 r: Z$ \; Y8 Y5 Q+ O; X9 C" B dwR = (DWORD)( pLight->Ambient.r * 255 );
1 Z+ T* `, p4 P9 p% M dwG = (DWORD)( pLight->Ambient.g * 255 );
2 L3 @$ i j; K/ X. i6 s; s dwB = (DWORD)( pLight->Ambient.b * 255 );3 A! h: b- Z$ ]; F7 E- t7 d3 G
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# ^0 ]( `; `" |
}& ~7 n# s3 \; V# W( `
}+ ~9 E- s6 V" N- L
}% R2 V* X1 t. a
else
( r5 r8 h# G1 Q7 ]1 h$ c#endif 8 y/ J7 @4 \( x$ ?& |/ Q: _
, R8 t/ Y a& t U" {5 i' d$ R4 A
if( m_bIsIndoor )
- p, Z0 ~; a( G) t& D. B8 m {
# o, M" u# d" s! X6 H7 ~- P if( pLight ). x( |4 L' }& e2 |; a: t; s. A4 C
{ % t8 G" |5 O: g, Y
// à??μ oˉè* 8 ~ @" d$ d! g: p2 ?0 d) `- i+ a
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
# ]0 }( x) C2 [ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 J$ D( G- L/ T) m! `: F pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
4 U0 m ? D: m: T Q4 C
6 i7 U2 x9 l3 h) m/ m // oˉè* ??à?
% H7 x$ G+ s8 J' x+ J& s pLight->Specular.r = 1.0f;2 ?3 V) I k$ ^/ K4 G5 e# [( Y
pLight->Specular.g = 1.0f;
2 ^4 g6 `) e6 @+ E( y; W" ^ pLight->Specular.b = 1.0f;* t* x: M9 o" }# j" d
// àü?? oˉè* 1 c+ H4 ], {5 _- K6 K& b0 x
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
7 P/ K+ J: F) L: l; r pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
* {6 w( R3 d2 H% p pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
% v3 h) R. I# h L S ]( S
# Y5 x/ }: J* |1 Y8 l/ J3 \0 ^ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
* ~$ `+ z8 a9 q$ D3 B {
, @: _3 ~2 x0 g8 {; S' ?. n6 v3 o pLight->Diffuse.r *= 0.6f; e2 U2 C$ M$ ~* T5 N9 v( C; _+ j
pLight->Diffuse.g *= 0.6f;
& k) H* ^/ o& ^: | pLight->Diffuse.b *= 0.6f;
4 J4 [; M% [! h2 z+ j; p pLight->Ambient.r *= 0.7f;5 H+ V6 Z1 h& E8 [# P
pLight->Ambient.g *= 0.7f;6 Z) M- B7 v$ l$ W& y
pLight->Ambient.b *= 0.7f;
+ X$ u5 b7 Z& V$ R8 y+ h; D4 i3 R }& J* C7 ?/ h! C L7 d# x# }
/ _: P6 A. C! ]# Q" {- {#if __VER >= 15 // __BS_CHANGING_ENVIR8 Y/ [# L$ L5 W: T7 V
if( g_pPlayer )2 ]5 D9 m9 v0 B9 Q* u5 l
HookUpdateLight( pLight );, G7 [" r6 v }. s t& _
#endif0 |! y' W5 a1 @/ t% O5 W5 q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 Y% ^" Y. D. k7 }9 G7 v8 N( d1 u* ?( I3 w4 u" }
pLight->Diffuse.r += 0.1f;: }; Y8 |- k J: |
pLight->Diffuse.g += 0.1f;
* J# w# m4 C& | pLight->Diffuse.b += 0.1f;9 q" H( ]# G0 i/ l: k/ \
// oˉè* ??à?
) S" o R2 ]4 _2 c* r pLight->Specular.r = 2.0f;4 e" `: Q' N9 e9 t0 g7 H
pLight->Specular.g = 2.0f;
$ C/ r |9 y1 Q9 Y% U1 s pLight->Specular.b = 2.0f;
- h! z5 z- A0 D8 c // á?oˉ
2 y6 W* [8 w8 G2 S% L5 X9 i- O pLight->Ambient.r *= 0.9f;
3 ?! g. a& [& }8 U/ J: B pLight->Ambient.g *= 0.9f;
+ U0 A* {, R. g g pLight->Ambient.b *= 0.9f;
4 b* @/ [. s7 `; s0 H; W# T: m/ a. l. S: U0 R* |
memcpy( &m_light, pLight, sizeof( m_light ) );
2 w* H' Y& `$ F- @/ C& e2 y# Y. x4 F . m: H4 I+ {7 \0 i
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
( V6 d9 T% D# `8 p' w: {/ ~) n7 ` pLight->Appear( m_pd3dDevice, TRUE );+ I7 F3 t7 U0 ]) E! k4 A" z
+ |3 ` ~& H+ E6 m0 F4 f
DWORD dwR, dwG, dwB;
- l# \5 X( f" I. ~8 _, |. X dwR = (DWORD)( pLight->Ambient.r * 255 );
/ Y; j$ G/ c, s0 w( Z dwG = (DWORD)( pLight->Ambient.g * 255 );# C: c; M' m4 n, ^8 {1 x
dwB = (DWORD)( pLight->Ambient.b * 255 );9 ]9 a8 |) z$ h! t6 l
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
% e! r7 L1 p/ E" E, |4 Y }+ R. u% |. g. U( `; K! p
}
8 f1 L9 y6 }# k5 [9 D/ V3 f" V$ c else- B! z' p* k5 N* X+ P
{: W& U6 Y1 j" ?) _
if( pLight )2 ]. Q: w3 v ^" o! D4 V! _
{
0 X) w) @9 J, ^& f1 g g( e( P+ E$ M
$ a5 {- K J" r3 o: b* D int nHour = 8, nMin = 0;
& [6 n; Y/ Z* T" t3 K: a+ v# @6 L #ifdef __CLIENT- c+ b5 A9 L0 S! X2 x' g
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 9 I9 @/ |9 f* p- t
nHour = g_GameTimer.m_nHour;9 }& L- E0 l8 T1 |$ Y
nMin = g_GameTimer.m_nMin ;
7 p! ~& |. c* t4 d #else
: ?) s. I2 ?0 N8 \4 Z // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
: h7 e A: H4 [* \; }1 y if( m_nLightType == 1 )" l( @3 S E; a6 E4 H+ X
nHour = m_nLightHour;8 g- h2 e9 h0 [* F) R% t: O; j
#endif
5 }5 o2 ]2 Q* S8 O nHour--;; b& E: l% z4 Y
if( nHour < 0 ) nHour = 0;! Z t' m( Y. `" l, w
if( nHour > 23 ) nHour = 23;
; M3 [4 L" l- q; ]/ E1 v4 q) ~+ x& e d* L4 _) }- G3 [, N
//if( m_bFixedHour )0 K- r* Q& Y8 w, W. v! f
// nHour = m_nFixedHour, nMin = 0;
$ s0 w( q4 I! {. Q0 S- t. | LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];& A/ I* Y7 E$ W
LIGHTCOLOR lightColor = m_k24Light[ nHour ];* H+ O* b: N0 J3 x" I! g" k
# s; S5 ?- _. ~- H3 l% J5 ]
//m_lightColor = lightColorPrv;
8 f( `( Z5 K% |2 S2 q0 t lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
# o) a, k+ B" G5 t3 t1 @& d6 a lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;& }3 b& q( U* a$ w
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
- v0 ~3 v+ E- T7 O: N3 v lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;# f- a) _* r' ~% d; J8 v
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
. o& t5 F: M C; z. M9 [1 c lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
- H0 D( P& y3 J6 F* F5 [ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
4 ^; t1 c+ a! [7 a
2 N! o7 _& S. ~6 y( B8 w. }* W7 m // à??μ oˉè*
5 ~" [" x0 x( N+ ?4 u. N: i) V( A pLight->Diffuse.r = lightColorPrv.r1;
2 q* R/ Q: [) \. y" s7 R pLight->Diffuse.g = lightColorPrv.g1;: x9 F; X0 }8 [5 {. G1 y
pLight->Diffuse.b = lightColorPrv.b1;: D4 _; C/ z7 Y
// oˉè* ??à?
8 j. E9 n) q1 y7 H- {2 C- F: D pLight->Specular.r = 1.0f;- U4 ]- [- Q* j
pLight->Specular.g = 1.0f;1 P# d6 l3 Y5 d7 L \
pLight->Specular.b = 1.0f;
. M1 y. b$ g+ j8 u" x0 m: { // àü?? oˉè* , G5 F! }. r( m& I9 q
pLight->Ambient.r = lightColorPrv.r2;
) `$ w* g6 i2 Y4 ] pLight->Ambient.g = lightColorPrv.g2;- L! G# p; g3 w3 p% ?; u
pLight->Ambient.b = lightColorPrv.b2;3 d' s+ ^2 u/ P" B1 e s8 m, Y' S
: o) i$ {' k' S7 ~ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
& D# S% q. ^' l D {
w+ d Q+ U9 n3 n7 B' O) x pLight->Diffuse.r *= 0.6f;* [ d4 G! r7 J
pLight->Diffuse.g *= 0.6f;
( |! q' @. [9 l0 G pLight->Diffuse.b *= 0.6f;) g0 O0 C' G, A
pLight->Ambient.r *= 0.7f;; L0 t3 f' D8 n% A. Y* y/ `# i" K
pLight->Ambient.g *= 0.7f;
O/ M% A6 \. G+ s1 a pLight->Ambient.b *= 0.7f;' y" t- t4 ]; I, O4 M: B
}
' l2 w: S$ |7 |% d' q 1 x0 ^! r+ @4 @: S
#if __VER >= 15 // __BS_CHANGING_ENVIR/ L2 s, {- k4 T# T* `7 s L
if( g_pPlayer )
! o6 f: z F) p7 E HookUpdateLight( pLight ); ! r6 N# v% W9 b1 L/ M- v
#endif2 q: Y8 h: A- O: S! P' X
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
R/ D$ M F8 [$ k/ R( `
& v) \- e$ M) m5 Z#ifdef __YENV
7 T+ c4 [$ ]" X" h pLight->Diffuse.r *= 1.1f;! B) t) k9 G W
pLight->Diffuse.g *= 1.1f;* d1 ]2 J! C: c" W; R
pLight->Diffuse.b *= 1.1f;1 f( c9 V7 T3 Y4 z( d+ f8 v3 _
// oˉè* ??à? + N/ P6 q. U* M. i% y& P# ?. S
pLight->Specular.r = 2.0f;% ]1 }2 F! Z; D# ], ]
pLight->Specular.g = 2.0f;
: r. n& `# k0 G& x pLight->Specular.b = 2.0f;
% Z+ ^$ R$ {' a // á?oˉ w* I6 I& ]5 f+ H* u
pLight->Ambient.r *= 1.0f;0 j6 Q( ?0 ~0 X( R) w7 z
pLight->Ambient.g *= 1.0f;
/ h( l# g' J: P, c" P- f$ c* e pLight->Ambient.b *= 1.0f;6 h- P% y+ `+ @4 p. P
#else //__YENV2 @* c9 k- c4 I$ p y5 q# r# k/ y* F
pLight->Diffuse.r *= 1.1f;; J2 Q4 ?, u! x9 q2 |7 m0 ~
pLight->Diffuse.g *= 1.1f;* _. t6 o1 m+ ~! Y% _
pLight->Diffuse.b *= 1.1f;8 U6 K1 @. x) h$ E6 f) ~! a; I
// oˉè* ??à?
' }& o+ f/ {+ g3 L- F/ w pLight->Specular.r = 2.0f;
5 q4 o. ~; C9 @$ ` pLight->Specular.g = 2.0f;1 v+ O4 V7 U6 z$ W
pLight->Specular.b = 2.0f;) q6 [# N$ [3 e p$ t+ P% v
// á?oˉ 7 H5 q) g, C. n
pLight->Ambient.r *= 0.9f;
+ u- I* S! C6 }8 V% }. q% f pLight->Ambient.g *= 0.9f;4 k s: `3 }) c' E" i# p
pLight->Ambient.b *= 0.9f; |+ o6 K( F' R/ G `
#endif //__YENV 8 P% M; R, F/ w3 u* I$ S! S
* V' h& i- w1 {0 F3 } memcpy( &m_light, pLight, sizeof( m_light ) );
, B4 q/ z, I% l$ H ; T" b! v& n* a& ~& {( z. y
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);$ Y# M9 B* a' S. q, V
D3DXMATRIX matTemp;
( \% Y N" S! a static const float CONS_VAL = 3.1415926f / 180.f; B/ Q) n+ U2 ~% F6 A( E" X
. d4 P7 K! z' `. q1 |9 N9 t1 | D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);5 a0 J* J) D. x; P) L5 b6 O6 ]2 o
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
/ }- O4 Q9 f! w V+ t pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); y8 Z l& x! m% V
pLight->Appear( m_pd3dDevice, TRUE );
: R( G/ ~' }( M8 f3 W
2 G6 i3 v' n9 n+ A4 T( T // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 k8 O. h2 X& t. r2 A) \# r: }0 v# B // D3DXVec3Normalize(&(vecSun),&(vecSun));* y9 [5 @& K) q- m
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ! k I& j' m& O' u+ p- K
1 u( ?5 I# S* l# Q1 r
DWORD dwR, dwG, dwB;
9 U* f. W: P% s7 ~4 Z9 F4 _ dwR = (DWORD)( pLight->Ambient.r * 255 );+ y/ k0 }9 ^' {5 w6 d7 _
dwG = (DWORD)( pLight->Ambient.g * 255 );) I2 s0 s. Q& t$ Z+ D" k: O
dwB = (DWORD)( pLight->Ambient.b * 255 );
0 X0 x+ f$ s, w1 G# l( u" J4 X dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 5 _1 z7 d5 Q" {
}' |; g/ G+ ?, E% [
}
8 N+ L; O: I& w+ O% o5 z
+ V3 Q7 w, D4 R2 G' I& H m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );/ J7 N8 P- V6 e/ M+ K2 y! e
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) );
$ X* B* z# H- X+ Z ::SetLight( bLight );! R( c7 U6 [' |, }: S- c- b
, R7 s5 j: u/ k P
// ±ao? ?D?í???ó á¤à? ) Z- R; F! k y$ X5 k o
m_pd3dDevice->SetMaterial( &m_baseMaterial );
' c+ u0 x3 r& F; O/ m 7 Y. G: y3 S- o8 G& |
#endif // not WORLDSERVER
' z# \/ \7 W% E# F0 K3 y0 o' J}
* U$ _4 Y% k" _" L并更换0 e" T$ a+ o1 S" E% U5 I
Code:" x" D9 c# O2 b$ I" @" i1 s
__FLYFF_INITPAGE_EXT1 e0 U7 o7 j9 b- w. K
定义0 e$ N) l; m4 V0 [, {
) F/ X2 G; m7 z i$ |: v) _- @/ w4 ?' x
. x# N, a! q" T' [# Q3 G$ ^8 W+ H3 `+ U
现在终于删除我的狗屁加速...
* J6 D. b! s% A( v; N6 b
+ i+ S0 N. F9 y- ~! c" H! m% x: Q8 k3 b3 I
3 H: j+ w A/ f% L5 ?( k |
|