|
|
食品车:
0 N& P1 }) J$ ?" S+ N尾翼:% J0 S, q8 w' S) ~
l' m1 h0 K9 v
代码:9 i* i8 Q- {$ J! G8 W9 v1 o
CWndAutoFood::CWndAutoFood()8 a: u: r& m3 o$ @% H
{
& }& s& G; s( [8 _) z m_pItemElem = NULL;
; x/ ], F7 v+ j7 x2 b, Z4 J% O m_pTexture = NULL;
$ b5 S4 D ^& }/ @) S1 q bStart = FALSE;' h; h6 A" y6 q
}
0 |. q9 o* |: o$ r) P8 i$ i0 J
$ [ f d; ^ n6 T( {CWndAutoFood::~CWndAutoFood()
% g7 R, k( O, v1 o; T, b" C% C{
8 d" {: h+ y7 `3 d5 |- w AfxMessageBox( "AutoFood ist gestorben " );
. `) I4 d/ z8 K1 S8 _}
# K5 k' t2 M; C- ? Q8 s+ N7 {" ABOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
% K. x. @1 w V# A' q{
& K v5 w! n( z' d4 V) g return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
! W+ g! s: w% e; `- e( _$ v e}& j: M' U9 O) \9 \4 ^
- b: v; B6 K5 |, v! D, J$ I
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
4 w8 h( z- u2 g% x* V{
' ^3 o" F( y. Q4 b) X4 S LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );8 K$ z( H: a: X' `5 x* ?( S9 w
CRect rect = pWndCtrl->rect;
- W% y' R, e1 N if( rect && rect.PtInRect( point ) )
0 d9 A- R3 q) x& A) z0 b+ l {
3 }. `" W* ?& f. e5 o" S% y CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );, }$ o! P1 W, J1 j
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
: }$ h+ `' Q9 E- s1 t, F$ q {. w; L8 o/ J4 F: V
if( m_pItemElem )& `+ H% V. D! z+ J- w
{
- _" q6 a8 Z( ^9 g0 r, h m_pItemElem = NULL;
7 o: s3 A9 i/ i; p: I% L }) a! ]- |6 j1 }, Q- @- U Z
m_pItemElem = pItemElem;: x6 r/ @# h6 a9 @8 {3 J& i
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );1 Y" M9 |5 x) D+ X3 T \3 f4 |
}else{1 C" C+ [6 `/ H' F" m; F) [6 o
SetForbid( TRUE );
0 w5 @( v5 _# r2 I' ^4 E/ K* c }
$ [ R2 H& Z2 D z% {+ T. \ }else{
) H j% M" h8 U$ a1 b; l! m SetForbid( TRUE );
& x$ a+ O: w* | }
; r2 z& v7 Q+ v5 w* \$ Y return TRUE;9 _9 W% D9 v8 f0 K7 L' Q& A) `
}
! Y9 I5 U& z5 O
. b1 F' _) y7 y4 W yBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
@- X- n) }, u{* X5 S& v0 h$ ]
switch( nID ): [8 z+ s* s5 q1 M' ?; H
{
* _+ @6 _& t8 O* V% ` case WIDC_BUTTON3:& [8 {) j1 I0 o! K$ ^+ s7 r
{6 e% f5 O$ U2 x7 P, ?6 B8 P
bStart = TRUE;
9 i/ R( c7 `6 J$ {) P# ? break;& B b# J0 x/ l
}3 V' e5 N X; w' ]
case WIDC_BUTTON4:* u( v, N& C7 Y+ [. w
{
' c+ N5 H3 F$ M bStart = FALSE;! f: M6 r- Q8 w! x
break;* R/ w7 V9 R2 N ~% ], M Y
}
7 ^- S7 `0 t! E }
S! ~" F( w" _' h: Z0 | return CWndNeuz::OnChildNotify( message, nID, pLResult );
J- s, f" S; l1 I} ! {" X8 m. T: g! _. ]' o) p
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
, |0 D7 f; f. k0 O{
; x3 M7 _' j9 G O CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
5 N, b1 b8 T+ S! ]9 i P3 i if( bStart || !m_pItemElem )
1 D+ W9 K' l( n( I {
7 H/ Q, V& u3 @5 v3 f5 G) c) A pBtn->EnableWindow( FALSE );+ R4 H' Q5 Y% H! L( P
}else
! g3 p# [3 B! C0 d' x4 R0 w pBtn->EnableWindow( TRUE );
6 ?5 ]: b1 z, k+ O0 h" |. r0 v if( m_pTexture )8 }4 u9 J+ I. l/ l- I
{2 C8 s' c9 S1 e2 z1 t
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
/ v X9 x6 B1 t5 y0 }1 I+ c. } if( wndCtrl && wndCtrl->rect ), `! V* w& u, A! m P4 k9 [
{# L5 Y L2 f+ d+ c: p& r
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
% R3 {8 F5 a0 Y K& `$ ? }
. s W0 F, o: D* A9 W* m2 t) e }
0 ?8 P& z) u, |7 p6 _/ _}0 n* W! ]$ r1 c: p/ R, }
) h" h- r- J( `1 ABOOL CWndAutoFood: rocess()) m: S* D+ z) a
{
7 `% l* k0 X/ l4 q if( bStart ) G& ~8 G4 V) }. ?3 G- `
{$ j& Q$ y! O" y E1 B# I! ~
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )7 n6 O( U5 c* p; W
{
0 o: q }) Q$ E( O7 Q if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
7 N# S( u0 g- n7 ~" Z8 U g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
- s Z9 P8 s3 Q5 }2 e' | }else{
7 X z# p. @& |2 ?/ @0 S( g! q1 j g1 A bStart = FALSE;
% O5 X% Z9 s1 g3 t% e! ` m_pItemElem = NULL;% }- \7 k3 F0 H3 o% H$ A
}
& n1 a3 h% T8 l5 ] }$ ~0 f0 M7 b$ k; g9 t3 r" a& @
return TRUE;
2 l6 \4 y! [* c- q/ ~0 d& }}
( p' m: `& Y- S. N+ V3 u' v& |# ]# m( p
登录视频废话:- w% s( @% |% o4 W7 r. Q3 E- Q
尾翼:4 I9 x8 d1 B( ?
! h6 g2 {, |' @: t) z0 |
代码:/ H; {% L! X# ?4 N2 S* V- ~
4 ]' ?6 H! W" U$ i- n; q. A) I
void CWorld::SetLight( BOOL bLight )
$ J4 [4 w5 Z2 [& Tdurch
# Y- g7 P: N0 }) Y! X0 D& oCode:; }* l7 s! A% x" ^9 i, W
void CWorld::SetLight( BOOL bLight )" f5 k- [/ t( D8 [: h% e5 F; O5 g' C
{
2 a2 }. d/ N# B9 q //ACE("SetLight %d \n", bLight);
4 ?( ]: n7 I: I z
; P3 r) t3 X( T6 ]0 E5 Q#ifndef __WORLDSERVER 3 o+ T3 n, H) q2 m. ^2 K0 m& L
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
$ w* x$ M: O: s0 J) K: h3 f! m CLight* pLight = NULL;0 w* U4 w$ X6 P* z
& L8 |. X: S" f8 K0 ?. H2 Q; J D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );$ Z' R5 g- P$ v/ c2 {$ b
6 c7 V* C3 V; s# P8 c& N Z# }0 y
pLight = GetLight( "direction" ); W0 k/ H- p& B+ w1 e, m: X
. C3 }3 k, a% [) |, B8 P- B
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 S( v' y" ?2 K if( g_pPlayer ){
9 p8 W1 [3 F; O: r6 o ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );6 ]" M$ i/ [! O- c4 o8 m( G& P% J5 m
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ h+ Q/ p; o. ]' J/ t V {* l0 }0 x0 C3 K7 s( T* a! c. j
if( pLight )
% @3 E) ?) K: ~6 q* z {/ C, I9 U1 f7 c3 N# z
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
9 R$ Y, V" ^; _% \ J: L& B P# n pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
. G A/ i# u$ K3 K( h) m& S! V pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
' ?: d1 @. u9 z" G
1 L- h# H0 i6 `# t pLight->Specular.r = 2.0f;
- C* k1 m. r/ U g8 \: p3 [ pLight->Specular.g = 2.0f;7 W: W. ^$ a4 e+ W. A
pLight->Specular.b = 2.0f;
: @4 |- [" o7 `; u; ~
' G# R' l4 a" ~$ ]! a* k pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
3 E$ S4 `* g9 y( i; f/ o+ v0 v pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
! M7 n$ v; B! R6 H7 i: k5 ^ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];3 w2 J( E, [* s C& ?) g
- P8 _7 M0 n, ~9 I! m/ G4 a
HookUpdateLight( pLight );
7 [! O: A% }/ b% [$ i. T& ^; I7 S4 T, p2 ~* Z, ^, m" u
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! O+ g+ ~0 {, E+ w4 o9 C * `! G2 l! ^$ B4 R% q' F
pLight->Diffuse.r *= 1.2f;
; o- ]1 Z9 V) u. w$ t( V pLight->Diffuse.g *= 1.2f;
) |) z* B, K4 |4 G. ^+ y pLight->Diffuse.b *= 1.2f;; m' U, H6 | W) s
4 |, c' t1 \" u# x1 |# G# E pLight->Ambient.r *= 0.8f;
! U6 r% V8 g' x# \/ X pLight->Ambient.g *= 0.8f;
& H( t' T8 q5 D% F9 i' h pLight->Ambient.b *= 0.8f;3 E K" j% {' F, \" d1 J
: w A; u0 C) S% q memcpy( &m_light, pLight, sizeof( m_light ) );
5 ^9 \2 ]: ?) p; Z7 F+ Q' D. c* E) c& E+ \8 \9 p
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 @+ I6 }, E7 L, W+ I
D3DXVec3Normalize(&(vecSun),&(vecSun));
( d# R& U4 B2 [* u pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- L( d# C. `7 b7 a7 z$ z* p$ I: f9 P pLight->Appear( m_pd3dDevice, TRUE );
; K+ A( l, g! g6 R8 W$ V 9 q( Q* h$ h& S; E2 H/ s h
DWORD dwR, dwG, dwB;2 s N4 Y: t3 I( @$ a) _
dwR = (DWORD)( pLight->Ambient.r * 255 );) F2 z- y4 L9 R; N; g1 g5 \3 [8 x
dwG = (DWORD)( pLight->Ambient.g * 255 );
' s3 G+ p& @3 e( D! o7 W dwB = (DWORD)( pLight->Ambient.b * 255 );
: l/ E2 W* Y( v2 F, K( [3 |" \ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- K$ N; M! a0 C$ s- Z8 H
}5 }$ p" w! d- D# U5 W4 \# h! p
}
# V0 [ t7 g8 T }- Y7 A5 M0 T& r+ |
else
* d" t, \6 \& N# S2 B" O#endif
* S; Y# f( X- o
' A( [3 X7 [" Q9 y) p" z if( m_bIsIndoor )
0 I1 M# o4 T- F1 d; }- M {7 _& u% H! U& ~1 b( j% F
if( pLight )
8 R I) a O+ y) t; D! { { 0 S& \7 Q# `; g" ^( m
// à??μ oˉè* 8 P2 t& o' z- L$ Y$ F4 |
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;7 k3 q9 ^1 z/ N( G5 P0 y
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
' i7 o6 P% T: w( v3 ~4 [ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;) o- M1 i( {- O9 M4 ]! M
: d2 k( U0 R- F. f; m" G/ d // oˉè* ??à?
; E2 Z7 D; @; e/ O* M5 ?( C/ w pLight->Specular.r = 1.0f;
7 M1 @ `: D, R4 W( `6 K pLight->Specular.g = 1.0f;1 g& ?/ @: T' ]) U& _+ v
pLight->Specular.b = 1.0f;4 i0 j9 D5 h) Y+ L* W, E( G
// àü?? oˉè* . Y' Z) J5 ?8 \" L8 C: m* Y
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;# n E' y$ C6 {% \- C0 _, s
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;) J$ ]1 y- _4 ~6 X8 o; m6 v1 X
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
0 [2 s' H" I |1 H1 ~- K
/ `* I, H4 M4 W# w if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 O' ~0 i* V) g ? D {8 a. a; S$ k/ O& s$ E
pLight->Diffuse.r *= 0.6f;+ }% b4 P" \$ A
pLight->Diffuse.g *= 0.6f;1 p X$ c1 m/ r! f4 i0 Y
pLight->Diffuse.b *= 0.6f;+ Z; Y( `; J% x% T9 a! y
pLight->Ambient.r *= 0.7f;
, f8 u( ] I+ s. l pLight->Ambient.g *= 0.7f;3 Z) L' i# A, |
pLight->Ambient.b *= 0.7f;$ U# F* }. V; A# Q
}
" }# D" q# P! O; x
* p* Z; ~' o2 w#if __VER >= 15 // __BS_CHANGING_ENVIR
& _1 G C- g; Y8 G if( g_pPlayer ); Y, l, q7 G' U* _, ?% T
HookUpdateLight( pLight );
' }: Q5 M. U: o. ]; V#endif/ K9 r; J7 D' z4 Y: {
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# T9 l2 z5 A1 g2 U4 v1 C. V# `4 ^
3 i3 V( T- o2 `9 N% P pLight->Diffuse.r += 0.1f;+ V# h+ Q8 |7 y6 B3 E6 B1 I( H
pLight->Diffuse.g += 0.1f;
# Z: P( N I4 d; {3 c( C6 c pLight->Diffuse.b += 0.1f;6 Y" A$ ]+ D2 U( ~% a5 S* ^! D$ \
// oˉè* ??à?
- j1 b% e5 [; |4 N0 y pLight->Specular.r = 2.0f;
" C& t9 Y R0 ?$ p) f pLight->Specular.g = 2.0f;3 S' T/ t7 B; v4 n) Z
pLight->Specular.b = 2.0f;1 [+ z4 m9 x* V0 y/ ]
// á?oˉ
5 m8 U" |2 A6 L: T pLight->Ambient.r *= 0.9f;
6 b' n h! U% e, ]+ E" r4 x, l3 y pLight->Ambient.g *= 0.9f;
8 S) x1 ?% P1 \& D pLight->Ambient.b *= 0.9f;
, M Q- X) m4 b' W7 c& n( W. q: {2 x" F( g0 b, d
memcpy( &m_light, pLight, sizeof( m_light ) );
2 R$ f+ _/ ^+ D+ ?6 j+ R/ Z
' Q. x+ ?) s0 i6 T w# L pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
( |' P+ B d$ }& ? pLight->Appear( m_pd3dDevice, TRUE );
) v/ K$ v) c4 X# }( ^) `# S
! [ U( l" U& e% n" S% N) [ DWORD dwR, dwG, dwB; k m7 ~3 m; Q2 b! O7 a
dwR = (DWORD)( pLight->Ambient.r * 255 );
: K, s' E5 u/ C! p" k* y' s dwG = (DWORD)( pLight->Ambient.g * 255 );
, E* s; O: } d dwB = (DWORD)( pLight->Ambient.b * 255 );. A' i k# h3 `4 U
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: E4 }+ B \: M3 ]$ N2 j }% v6 |1 p# w5 F
}( \7 \% Z3 M& D- Q* n
else. x) P$ P, T C
{
0 y7 W# @ H8 q$ f5 H% r if( pLight )
7 X, g/ O$ J6 l+ D. a& U4 e( l {- Q8 B0 T, I% h; u
/ h) J1 Q; W% @- Q/ Z; c! q int nHour = 8, nMin = 0;
6 ]/ S/ l+ p/ x; n. K7 U( g# y #ifdef __CLIENT
- X4 [9 p9 U& v // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & G+ X/ n; y) L/ j
nHour = g_GameTimer.m_nHour;( {+ j$ G7 B. W5 y B. k3 v
nMin = g_GameTimer.m_nMin ;* ^; {% y& s0 b( C
#else
2 u, Z6 w1 A6 X" V* O4 Y* O // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.( L" ?9 j- Y4 S, ~2 B' K8 j
if( m_nLightType == 1 )8 i" ]$ U% I- d* V: ~, Y
nHour = m_nLightHour;/ q. H) M' |! y+ l/ }
#endif) _2 x' p. D% `1 u& \4 l- r
nHour--;
; a1 V! u% c( U, ~ if( nHour < 0 ) nHour = 0;) L2 {4 @5 {$ X* V+ Q8 C
if( nHour > 23 ) nHour = 23;
% h v( @. b" ^- p
3 i* l% O, }1 p0 P" }/ Z$ B$ n1 E //if( m_bFixedHour )6 ` e+ q8 N# n8 p; h8 I
// nHour = m_nFixedHour, nMin = 0;
( F: n% l& q3 M' P4 h! H LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
2 Q4 H0 F0 W: |) D4 `% J LIGHTCOLOR lightColor = m_k24Light[ nHour ];
) m% C! U+ A1 R3 e
) z- e. n- D! s8 M0 L //m_lightColor = lightColorPrv;5 ~ a( ^4 T. M5 F: W
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
0 Q0 D; q7 R" x- \ H. n7 ` [ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
. f8 Y6 d" g7 y1 L) S+ P# S lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;% `2 ^5 e! D) R! E# S" L" o3 S v
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
, r; K' }6 f$ Q0 K& E0 j! b" _* `2 Q6 z lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
. s- A. b" D, x1 d! N, u$ @ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
+ v4 M t, R8 q# x0 q) n/ o // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol). V( t: S0 s! Z$ D u: n$ D$ j
. m$ o4 \' V& b, z* o5 @' y
// à??μ oˉè* . H+ J( A: `+ p7 w7 m+ W
pLight->Diffuse.r = lightColorPrv.r1;. x* }, ~) y' Q* s
pLight->Diffuse.g = lightColorPrv.g1;6 l& Q. V1 M- t( v, m$ }9 x5 H1 i
pLight->Diffuse.b = lightColorPrv.b1;
+ R2 b4 o E- f6 [9 w, U // oˉè* ??à?
& M' h; d. p7 `! _% H2 X% u pLight->Specular.r = 1.0f;% S+ \4 w" c6 A3 s
pLight->Specular.g = 1.0f;+ A" O+ v' J. D; |, S9 D4 i- e
pLight->Specular.b = 1.0f;7 O) W5 m( V' ]$ \" I0 M6 R
// àü?? oˉè*
/ U0 a' K& p: l pLight->Ambient.r = lightColorPrv.r2;, O. z, Q: I, A; ]2 s
pLight->Ambient.g = lightColorPrv.g2;
5 D6 ?/ q" u0 \ pLight->Ambient.b = lightColorPrv.b2;' j& o" M. G7 }& p
1 ?. x& g. Z# g" m if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
; k, a! _/ r, I; F( R( {: M& i {0 U2 q5 C. P* l' T# f* Z
pLight->Diffuse.r *= 0.6f;( Y7 i! R O( z/ A2 C
pLight->Diffuse.g *= 0.6f;
/ `, F) H$ b- [; D1 i pLight->Diffuse.b *= 0.6f;& V! S/ I0 q1 {# p# v4 r
pLight->Ambient.r *= 0.7f;5 n9 s \7 R6 v+ }
pLight->Ambient.g *= 0.7f; b; `1 y$ ?3 g; J: e1 d/ `1 X" D
pLight->Ambient.b *= 0.7f;0 B; O% s- J- Y) w, v
}) z/ n. A- W, Q& v5 f8 v& d8 s
: g7 Q; ~, _3 R1 v p6 a4 r
#if __VER >= 15 // __BS_CHANGING_ENVIR G: H( s _/ F% @- ^0 A. w& O" c* x
if( g_pPlayer )( x8 ?7 H& Z- C9 Z+ w% c
HookUpdateLight( pLight ); c, w7 V+ @" l" ~$ F8 h
#endif3 k. P" T* f n! y0 i7 c# ?% N+ z9 @$ L6 S
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. F1 {0 @0 t1 s! ?- L+ A6 H1 b+ {
; E% g) m' P5 J! t2 ?#ifdef __YENV) T7 h& S! b: B$ `5 k- j, N/ J
pLight->Diffuse.r *= 1.1f;
$ t0 T) m, W% r3 M- J- Z- I pLight->Diffuse.g *= 1.1f;: E" _2 m" _/ t4 _
pLight->Diffuse.b *= 1.1f;
$ M y. t, C0 }% {) ?9 a8 y9 f // oˉè* ??à? , ?# {; k1 ?/ Q; |5 C; E9 s
pLight->Specular.r = 2.0f;/ y9 M f: Z" m6 {7 V) Z
pLight->Specular.g = 2.0f;9 E3 c; i. e4 s3 } _4 m
pLight->Specular.b = 2.0f;) \1 J+ ^7 k- C) x2 F
// á?oˉ 0 v1 I$ r$ W* w- O
pLight->Ambient.r *= 1.0f;
; L# r0 f" K7 o( u pLight->Ambient.g *= 1.0f;! ?) s2 x5 D; D# N
pLight->Ambient.b *= 1.0f;
; x2 ]& p# Q `6 ~#else //__YENV/ o# M( F9 c/ Z$ P
pLight->Diffuse.r *= 1.1f;
) {# p9 E7 H+ [9 T pLight->Diffuse.g *= 1.1f;$ c+ i! H+ ` t5 t' w
pLight->Diffuse.b *= 1.1f;9 q% d. D5 R$ h
// oˉè* ??à? , w8 A; b$ U2 r5 C5 X
pLight->Specular.r = 2.0f;; i7 L1 Z; T5 ]! }. O
pLight->Specular.g = 2.0f;
7 \% p! f# O* `) ]% I pLight->Specular.b = 2.0f;
# \$ M3 ]) V. T9 { // á?oˉ
1 N9 W& G" B# Y) M M, [, x0 o pLight->Ambient.r *= 0.9f;! p& h9 Y& ^% ]* ?, Z( R
pLight->Ambient.g *= 0.9f;0 U: I1 s3 Q1 s8 b- R
pLight->Ambient.b *= 0.9f;: S5 Q6 d/ E: J: a
#endif //__YENV . s9 r' h2 _8 K; g4 f& C1 m) A7 i
6 m I9 C1 v! j6 u& Q7 o* |
memcpy( &m_light, pLight, sizeof( m_light ) );8 Q/ x3 J8 N$ C# D2 s/ o
; I( G7 ^0 h# |& Z D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
0 p0 R3 u$ u* ]1 _/ } D3DXMATRIX matTemp;
" d! ]# y- X+ f( S; {1 W static const float CONS_VAL = 3.1415926f / 180.f;9 G& }/ j' x3 r( R/ U
% d7 U, J4 `. B" V8 H/ i; _
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);- |# @% |5 _) P
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
: @ m M6 }0 _9 ~1 `" n0 I pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - L7 }6 W" C" p7 n3 ~1 p& \7 d
pLight->Appear( m_pd3dDevice, TRUE );
' e; I1 `" P C0 U
2 Q! b3 h0 Q/ n, Y% w( ^ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& G( `% o" f1 @( E // D3DXVec3Normalize(&(vecSun),&(vecSun));
: n# v) Y; @, G/ }, C$ g) l( m# d // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
# ?$ l9 t7 }3 ]9 C. Z; q' R7 i! j5 [5 n. _4 D9 E+ `
DWORD dwR, dwG, dwB;4 _8 V% Q, j' {% K* u/ Y R# v
dwR = (DWORD)( pLight->Ambient.r * 255 );
3 ]. Z0 `. [9 y. X dwG = (DWORD)( pLight->Ambient.g * 255 );' v$ q/ H+ M% K" f6 q' ~, e% ~
dwB = (DWORD)( pLight->Ambient.b * 255 );& Q* D: F& y6 o, m9 E$ B/ G9 I. s
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); + ^$ z/ H7 ]0 O% Q0 s
}
+ l3 Q% H7 Y- L) v( c y9 p4 Z: f' r }$ J8 H8 d7 u! j' J
, ^' R- Y" e5 T m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );* N' B: w0 Q( i" B. f- Y! v
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 c Z2 h8 V, t/ d6 B
::SetLight( bLight );
3 Q) b8 k8 m5 y3 A
1 r/ b+ q! h( d4 D/ T9 ~+ O5 f // ±ao? ?D?í???ó á¤à?
, I" m, B9 o. `1 ] m_pd3dDevice->SetMaterial( &m_baseMaterial );! z5 P( h8 p2 m& \; i, G. {
d7 e% y# S: [8 r$ i1 W3 n' `$ J1 ]#endif // not WORLDSERVER
; r8 P1 k5 E# i}2 |0 D2 D' f6 X- [2 ]$ o5 b
并更换
' k r; U$ M- }: \; LCode:
7 B4 g' b/ _3 S/ L" p6 Q__FLYFF_INITPAGE_EXT
, [2 q( c7 q( A7 H1 o. p* w定义
8 h3 F: o5 ]' P7 Q4 L0 N4 e* ?9 m9 S. S* o. {5 i9 Y
# f5 P0 N4 Q, j* F) ^% e7 r. s, X1 S! x8 w- R( h9 {5 J- S
& ?0 Q ~$ L- N9 W" U
现在终于删除我的狗屁加速...
6 J R/ l* f; T6 F S; S
# | V: p; ^' y% W p$ d
/ E! N" d3 U L& w* {& I, l) }; I
|
|