|
食品车:- Q7 v3 t2 `3 U8 T4 s2 _9 C) ?! j; u
尾翼:$ I( |9 r1 ^7 P2 y) n, W
9 K ?( A2 l7 T
代码:0 J$ C; a; f+ o/ N& h& l
CWndAutoFood::CWndAutoFood()7 K+ ?8 \- D1 K4 E: m) Q
{3 {% U7 Y' ~# E. f
m_pItemElem = NULL;
& P7 k3 H2 n, Y4 @% W m_pTexture = NULL;
# s. z4 d# x. X- O# I. q& a bStart = FALSE;
+ P+ B9 h; H0 C, @ j) B3 z}
$ P* O# \7 x) q, f, O& b- A
$ p# t* a! Q* w6 }7 z! I4 JCWndAutoFood::~CWndAutoFood()
* o" S/ C/ g! S! |0 M{+ a% g; g( O' J8 g( q5 A
AfxMessageBox( "AutoFood ist gestorben " );
+ V, ?( _! O9 d}
9 Z) T& x& n; y6 [8 T, yBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )) |0 P7 [0 ]7 N' Z
{
: U! Q4 a' t% y( X. h1 U return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
; P6 E& P$ s0 B( w4 e# ]}+ `7 }$ b, T3 c, B
% k! i% g* P0 a4 k& B
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ). S( R$ ]! x8 u
{
! g% P3 c# l3 o" R% Z# p LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 x, k# n: N- b& Q! o# B' M. ?( n* G
CRect rect = pWndCtrl->rect;! g9 e0 \% h; q, F
if( rect && rect.PtInRect( point ) )$ o; r2 X* ~ p# ^
{
: Q. E; h% ~1 P, \6 I/ _ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
$ w. l5 C0 D+ a* J/ G if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )4 D ^+ |' g: p9 M
{$ u: C8 V" }+ K2 X8 u2 G2 ?
if( m_pItemElem ). Z+ G3 n1 Z! a8 o$ M+ \
{/ W8 s, Y% O2 b# p: z7 w% g- D$ a
m_pItemElem = NULL;3 G! B% W+ u" V
}( e9 o# b+ e; t+ w2 U+ |) T
m_pItemElem = pItemElem;
+ p- z, p1 h9 y: O3 @+ Q m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
2 `. w1 j% \* k0 Q; D3 \! u+ W }else{
L; _' V% T8 {5 B1 l SetForbid( TRUE );
2 ?/ Q$ q( e$ F/ k% x9 Y: ]: h }
7 U1 n2 O5 O8 V" T5 U. S8 j }else{* ~4 S8 E# Z2 B* A" N% k8 p
SetForbid( TRUE );
* W% p1 y$ E' t- u v }% L( r0 N6 }. C/ d' T8 v1 b
return TRUE;1 U& E) f7 l0 Q( I% H) X
}
8 a! [' }) L) Z$ ^
- f- p* t1 M: d5 j6 @: |BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
0 H7 o& J' H0 E/ ?2 e3 Y{
# S; }$ {0 l( ~" x9 n switch( nID )7 d& H, V0 h- s% [* I1 j
{1 Y! V8 \. c+ ^$ F
case WIDC_BUTTON3:5 O4 e- Q z2 ^- q7 V, m
{
# P$ e3 A* A4 H9 B+ K5 N% g bStart = TRUE;
: v: B" h3 Q5 z: ^) E" q* T break;
! R E4 g! x g) [" X. T }9 ~1 R0 T0 W/ ?2 i+ l& I2 [& A
case WIDC_BUTTON4:* X* V# V! X/ u" @2 |/ X: N' o
{* a/ B- p' X; O, O8 T1 w* I- w2 G0 s
bStart = FALSE;
7 [3 j G; m! V break;0 E5 |* U2 l3 \1 l: L
}# L) g+ M0 [2 S0 v
}/ x+ i2 X$ Q! u; _3 e
return CWndNeuz::OnChildNotify( message, nID, pLResult );6 V$ p# F- y, n2 o5 ?/ _) v$ n. Q
}
3 u# \+ j- c7 `% h& X! [! \void CWndAutoFood::OnDraw( C2DRender* p2DRender )
: I" `) K! d* B$ q2 n1 {{/ w0 X' K+ H8 k1 e, e
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );- n2 i3 H/ `1 l) N. F+ Y
if( bStart || !m_pItemElem ): @$ m( G$ n. f6 x8 b7 \
{" w$ \) J; W' w+ V5 F5 Z, Y
pBtn->EnableWindow( FALSE );
% L- \+ A# h. b4 ?- ? }else" p/ j6 R7 t$ [0 ]
pBtn->EnableWindow( TRUE );
# q. e# ^; y/ x! |: B9 G2 y$ u if( m_pTexture )# a. ?+ Z7 W6 k6 ^7 u% P8 r
{+ n0 l+ R# I9 k" x0 ?) p" @% Y+ K7 S7 K
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& P1 F+ Z0 X: \! G9 I& |7 T if( wndCtrl && wndCtrl->rect ), y$ ?$ T1 N1 m1 u
{
0 [: A& O) k4 Z. n- h, l. [. D8 x m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );# J4 V( Z* G) B% a' b& o* o
}2 E) s, ]: G7 a& N
}
7 S N- K* Y$ V! Z8 b}/ |) r% C- _2 R% ^. e. S: l9 `
; X( @" O4 ~- I7 {) [' p0 f5 y7 PBOOL CWndAutoFood: rocess()
: {, p8 `' w i- i2 p4 R{" s- M5 q3 W3 n: |3 V
if( bStart )( a0 T6 R/ `+ o7 v' I' I
{
% A1 g) O, C C if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
8 h* C& _6 ] \; k |! Z {8 A) S! p" n, N' N
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
$ Z. J0 z9 ~) t g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
6 B/ H) k; Q6 D8 q6 X g. F3 Q% f }else{
. Z$ S/ H2 l/ n i bStart = FALSE;
* N8 R6 {' i" F' m5 e, n m_pItemElem = NULL;
" m' Z9 F) k: J; B }
, H. q5 ?1 s* w. \: z B% ]. k }
( G) P; t& X5 Y' L( ^7 d( U return TRUE;. A4 `1 N$ r/ C' q7 V2 D0 S
}7 J# R) i2 b% E- K$ x7 `( }
1 m( Y7 J/ o- A" v# h9 _登录视频废话:- D% W4 V$ j% m" u
尾翼:
* l) U/ U7 d( N( G/ {; t, S
' P9 c( ]% M3 N/ _8 N代码:- i# G: T9 o7 O/ y* d( B) X- t
3 Q" g! r2 X! d! i5 ~void CWorld::SetLight( BOOL bLight )
8 C9 _6 U1 f8 O* K4 Ldurch4 M) s: r3 D& l" M! a$ Q# Q
Code:
% G/ F1 D1 o4 ^6 Q5 ~void CWorld::SetLight( BOOL bLight )
. Y6 S7 L5 b% Y! h) V{" f8 G) j: V9 c. [ B* T
//ACE("SetLight %d \n", bLight);
- g4 N9 {5 U+ ~ 9 a- R; s. q3 X1 j
#ifndef __WORLDSERVER p, Q$ s+ ~3 e$ S
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);' u$ L9 m8 b9 \! C: `. T
CLight* pLight = NULL;
0 o7 ?1 j% I. G1 D% ?7 C1 t) w1 m x
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );+ _% j7 \4 O- P* G
; C4 J# }! E, |* W6 g6 i pLight = GetLight( "direction" );
5 B) t* W, M( v1 z, A4 O; w
% j4 T; H% F5 r; }! J#if __VER >= 15 // __BS_CHANGING_ENVIR% M$ W+ z# g! W# ?
if( g_pPlayer ){4 x) d8 W' Q/ H( t% V& Y; E
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
* g% s: k; [8 T if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ e# x1 O, H2 }- I5 A. n3 L { ~( b9 z( f8 A! B. _. E' O
if( pLight )
; S, ^: U# ?6 T( L {
# F4 f( q) W: g: l# z# L5 O) { pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
1 k2 Y: R$ E6 B; p v; }3 C; ?9 M pLight->Ambient.g = pInfo->_fAmbient[ 1 ];: x) F% Y0 l: W, @
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
$ a/ g- x2 n3 l' s/ @5 d3 U' Z+ Z+ L( V7 V/ h" N6 _; ^5 A
pLight->Specular.r = 2.0f;" V2 }4 \- f5 ~, F' z) U2 {9 n
pLight->Specular.g = 2.0f;
& H. _2 E5 u4 O; Y, G pLight->Specular.b = 2.0f;
$ y4 f5 z' P, L. I8 ] 3 }+ v9 C& A* U+ o0 s
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];. X: o0 s2 {$ U
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];7 x f: ?0 r/ a2 y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
6 c7 Q, i) g) z) F1 g
9 Q E( T/ o8 s2 x7 T' ? HookUpdateLight( pLight ); 5 s! N! T, p) c# g( n) n1 r
/ A$ N/ Y$ _( `+ ^; e* W0 h. l4 d t; W memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 D2 l) A$ d7 ~2 u! n! E) S* `
`8 e2 e1 X4 c- x+ E! w: e3 ` pLight->Diffuse.r *= 1.2f;1 N/ i+ B# d$ c$ @' P
pLight->Diffuse.g *= 1.2f;" V s) U2 y2 u2 q) ?; ^) f4 i
pLight->Diffuse.b *= 1.2f;6 X7 c( v# ]9 f3 I
8 e5 v( K$ ~ G
pLight->Ambient.r *= 0.8f;: F- F! r: P: {
pLight->Ambient.g *= 0.8f;
- |1 s/ M7 C# c: r1 M9 L b pLight->Ambient.b *= 0.8f;& z' q' Q6 K2 F( u7 I
3 h; e! u/ E) ]7 \ W
memcpy( &m_light, pLight, sizeof( m_light ) );/ l! H- F/ y4 x% U# ?
: n0 X; M+ G' W# A' e* B- z" f D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: F6 F/ H/ ~; r2 J# L5 r0 J2 d
D3DXVec3Normalize(&(vecSun),&(vecSun));. g+ X* t p% h! E' R
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; s6 J& k3 _* _" Y# Q/ \* ~ pLight->Appear( m_pd3dDevice, TRUE );
H6 P, `6 ~+ L. O 4 F1 K& J2 p" K9 f4 N
DWORD dwR, dwG, dwB;
# c8 W( Q0 j" n" x6 h6 C" J5 Q dwR = (DWORD)( pLight->Ambient.r * 255 );6 Q" W# j. {; o. Y; Y2 V7 P* D
dwG = (DWORD)( pLight->Ambient.g * 255 );
: ~4 J S+ j/ A- \ dwB = (DWORD)( pLight->Ambient.b * 255 );7 W" z; a- e& [8 v, W2 k
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );5 U: w) f# \, [& @
}
8 w# S/ }' x1 k/ {. d* A }
1 j4 v* v3 z* L- Y }: \7 O$ h V8 } R2 p
else( ~ C$ l/ u+ N6 U( e( U" ~2 K9 [2 `
#endif
K$ f( P+ A2 m* U1 Q* W) I5 S0 z% f8 V# f" y7 H
if( m_bIsIndoor )* l9 j" y9 G$ z: c+ o
{, W* S8 P. g' B1 e% a3 [
if( pLight )
0 x$ ^4 g: C8 D: P. r& W6 M { $ u5 x: F& W: @* g$ D, e
// à??μ oˉè* / j: e' W: r0 D9 X2 F
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;! U% b3 U: u- U7 r3 t( S6 s0 X
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;6 X6 m1 ^! `! X+ p" a0 X
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;3 ^: q0 Q+ b6 Q( G& t
. }* X3 e" V: s! K8 x& B# I0 _9 C6 i
// oˉè* ??à?
- u0 K, F: E; v! ]7 O pLight->Specular.r = 1.0f;8 {4 r w8 f& ]. ~/ P% s; Z
pLight->Specular.g = 1.0f;
! v, P5 U. s3 l. n; P) y4 S pLight->Specular.b = 1.0f;8 E0 l; ^- f2 t8 z6 Q
// àü?? oˉè* / f; Y' Y ?* B7 V: F$ s# m
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;: n% `0 i8 f, G4 i$ V; y& i: l
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
( o2 @, Q9 ]7 j/ x2 e3 P ^, s pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;8 z7 B+ v0 Q7 y5 R
& z, B. `! y& m2 V5 U* u- B$ U; } if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 g- c$ e# n e0 s+ l% s( {
{2 I# M7 Z8 C1 a0 K5 B
pLight->Diffuse.r *= 0.6f;0 g3 S2 _) ?. E! F
pLight->Diffuse.g *= 0.6f;1 p* t9 B4 @' S4 P+ c
pLight->Diffuse.b *= 0.6f;, q3 @2 O0 h; k2 f' v( e& E( q) w
pLight->Ambient.r *= 0.7f;
K4 G3 D$ d. c/ ]; T pLight->Ambient.g *= 0.7f;
) w! L0 X0 M; U( F& P. F pLight->Ambient.b *= 0.7f;( w6 W+ t* ~" q$ N/ S1 s5 L
}6 t, b$ C1 D2 y) `" R% l* }) g
! w/ i+ Y1 X* a9 x6 j) J3 [
#if __VER >= 15 // __BS_CHANGING_ENVIR8 `# j8 }# Q! L1 L* }% y) C
if( g_pPlayer )2 L' `: U p4 m4 X' k
HookUpdateLight( pLight );# z4 |4 w1 P$ [9 u7 l: P; ~: _, H
#endif- E5 r7 Q) l. s5 ?
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& u' u: u; j8 e& ^+ R/ k( D
' z! ]' D5 _+ h; _. V7 u4 F pLight->Diffuse.r += 0.1f;
1 Q2 p9 Y7 B! Z# Z pLight->Diffuse.g += 0.1f;
% T; k, x9 J2 s/ V; p0 c pLight->Diffuse.b += 0.1f;
9 R g- Q& t$ s; c7 @ // oˉè* ??à? $ n- r* T( W( R, n9 A8 M( {
pLight->Specular.r = 2.0f;
0 y+ I% j) l8 h1 [5 ~ pLight->Specular.g = 2.0f;
- H/ c4 D1 u/ b6 b% X2 T) e3 d pLight->Specular.b = 2.0f;2 b3 R. i2 j; r" K
// á?oˉ
2 h0 M. e' P) [3 U. H: a8 J- ]; V! J pLight->Ambient.r *= 0.9f;# @0 R3 S% Q) E0 Q% M
pLight->Ambient.g *= 0.9f;' c7 R" |( b% e. U
pLight->Ambient.b *= 0.9f;
y+ ?8 j9 P* m g
5 ~4 {( y, t* u. o4 i" |( I memcpy( &m_light, pLight, sizeof( m_light ) );
- G9 j) R! s8 ^2 q1 q# @
}. F4 T) q' Z, b. G5 @ s. a$ z pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
+ |' {/ A. Z! G. y' j pLight->Appear( m_pd3dDevice, TRUE );- h8 L4 j; x& p# c1 a6 ~
& j' ~* e8 q" A DWORD dwR, dwG, dwB;3 r0 @' w9 x9 H
dwR = (DWORD)( pLight->Ambient.r * 255 );
) G' P; B U$ c dwG = (DWORD)( pLight->Ambient.g * 255 );; {$ _$ k7 {7 b. ?
dwB = (DWORD)( pLight->Ambient.b * 255 );
* c( g- X3 k$ r4 S* K- {+ U, r; b [ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 f. V8 K5 |4 a7 v/ m& s5 p9 a
}4 u' x {6 b' {$ @& i
}& j+ ~# W3 k& l
else J6 [4 R7 n1 d5 d
{
1 k) V0 m+ y9 S9 \ if( pLight )
+ X/ k* E% h& D7 b3 m {( M0 G0 Z3 J; n2 n
: g, f5 s7 W9 u
int nHour = 8, nMin = 0;0 D/ g$ z4 a/ m- _; j) l
#ifdef __CLIENT6 W; v- X, V8 B/ {
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
$ G- m3 B( @1 v0 T8 K( h nHour = g_GameTimer.m_nHour;' T5 t; N" P# B, j6 ]6 ?% E5 ?
nMin = g_GameTimer.m_nMin ;
. |; x d8 H! s #else# B% h+ k$ J& C4 r- Q
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.- P0 i8 v7 c& ?% y
if( m_nLightType == 1 )
5 u7 C8 y5 ^( s nHour = m_nLightHour;
9 g7 x: d7 O3 U' B1 f- \5 H #endif; f: j$ G8 B# X- o$ u
nHour--;
8 U5 N6 {5 }5 {. e if( nHour < 0 ) nHour = 0;' _9 c" r' y* z# x1 N) w t
if( nHour > 23 ) nHour = 23;3 a5 X* \0 Y1 n) ^7 N
$ z$ |! o( K& p0 l r( e
//if( m_bFixedHour )
! B& D4 U3 z- V. A8 T! J1 T& T) J // nHour = m_nFixedHour, nMin = 0;" U2 K0 J5 p* l) q3 z" Z1 q2 @
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
3 W. u1 b9 e4 n0 X M LIGHTCOLOR lightColor = m_k24Light[ nHour ];$ r7 R& X* C( e6 q% d0 ~
- R: I$ I( H; X9 c0 l6 ]6 Q: G% n //m_lightColor = lightColorPrv;2 @9 X/ m( d8 K6 b) v
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
) V5 F3 d2 {9 M lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
1 \! U) ~( f! ]; i; s. R lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
, n# y; a3 h" B1 o7 @0 H* w3 W8 s lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
6 S `" r7 P$ L# s1 S, L lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;( F' `/ \9 A8 w6 t( h
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;; I* T5 S2 v, f7 S) ^
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
, d( A4 R7 E6 \- B- i; O; l" E5 y5 r1 Q- F! L( L
// à??μ oˉè*
6 [! i( |( O, d# S pLight->Diffuse.r = lightColorPrv.r1;6 l6 _; b# I) Z5 `. z$ |6 t- A
pLight->Diffuse.g = lightColorPrv.g1;! v4 D# Z1 J7 I3 V6 e% B# M- j/ _
pLight->Diffuse.b = lightColorPrv.b1;
5 Y& z! h0 K' _! V; H // oˉè* ??à?
4 \$ q9 q, X2 g- F; J0 A) e pLight->Specular.r = 1.0f;" G9 }1 H, x4 |( V/ o
pLight->Specular.g = 1.0f;2 y' D& u, g3 {* d3 x- S
pLight->Specular.b = 1.0f;' y# j0 {, e# }* U7 j$ v
// àü?? oˉè* : X6 }$ ?6 |+ k( U" B, w- n( p
pLight->Ambient.r = lightColorPrv.r2;
) h$ G' I) x& F pLight->Ambient.g = lightColorPrv.g2;) l, p7 {9 E9 V) T1 w% F
pLight->Ambient.b = lightColorPrv.b2;9 b' q; b! o+ |% P/ {. _5 m+ N, n
; y! @: }3 R$ ` if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ I1 R/ U, a A6 J! C4 M. }1 m- a
{
: q1 r% M9 x& n3 c) `" d$ ?/ B pLight->Diffuse.r *= 0.6f;
! e( ^* }7 M# y4 s4 W! v pLight->Diffuse.g *= 0.6f;0 b5 x! y( W3 d
pLight->Diffuse.b *= 0.6f;+ v2 ^* K8 X4 }/ g% \0 ?2 j' }
pLight->Ambient.r *= 0.7f;
/ p$ d( Z- A) \/ v pLight->Ambient.g *= 0.7f;0 T i) B4 X( n/ R
pLight->Ambient.b *= 0.7f;+ L/ q6 K) B6 H1 g, r
}
$ v5 @8 a/ m/ T2 N9 m
, s% o# `3 x. n# U# H#if __VER >= 15 // __BS_CHANGING_ENVIR# b9 P. u4 G, I8 m# Q, z' ~& t' Q
if( g_pPlayer )- a4 ?8 S* D7 A( k9 r4 t
HookUpdateLight( pLight ); # n: F# e" y O, L* m% {# y$ J4 O5 E' \
#endif& T2 r" d" g/ h o3 H/ N6 X! L, T. U
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: w( A" Z/ |) X( ?
" x/ u# _9 P! T2 R( w0 A#ifdef __YENV( y6 [0 |3 Y# }/ `- N$ K
pLight->Diffuse.r *= 1.1f;
% |' Y$ \! c. P" L3 ~" K+ q6 c& r pLight->Diffuse.g *= 1.1f;' K) w+ E) a/ N$ ~+ i
pLight->Diffuse.b *= 1.1f;
% ?* n( s( g$ D: {/ Z4 N& L // oˉè* ??à? ! Z/ c* l% x: S
pLight->Specular.r = 2.0f;
. [! ]2 H* S8 [1 @) a# J/ b$ H& g8 p pLight->Specular.g = 2.0f;
9 f% C) `& L d6 j pLight->Specular.b = 2.0f;6 [8 E, U- `8 G' h S- J1 W
// á?oˉ ! p1 y' U4 X! a" K$ |4 k
pLight->Ambient.r *= 1.0f;% Q- h Q& E$ |: y
pLight->Ambient.g *= 1.0f;" F; v( l! y9 e( {. M
pLight->Ambient.b *= 1.0f;
: ^, [) Z& V" C) Z5 ]- K1 M! l#else //__YENV, i6 L& V$ F6 R7 V6 c8 |3 V
pLight->Diffuse.r *= 1.1f;
) I2 ?; ^! ?+ d$ u" m pLight->Diffuse.g *= 1.1f;3 v5 l! ? _ [* K4 e/ D5 V* b$ Z
pLight->Diffuse.b *= 1.1f;, o% H9 e% ]5 W) p/ W. x9 r
// oˉè* ??à?
# s. Y, P. g( n' {; p pLight->Specular.r = 2.0f;6 _+ c( J- }+ D
pLight->Specular.g = 2.0f;
; y7 M7 h! _: l: M; b pLight->Specular.b = 2.0f;( G+ V: p0 U% }7 v, _; a3 m
// á?oˉ . [; y3 W" a; ?9 F" z9 K
pLight->Ambient.r *= 0.9f;
! B9 \7 H7 [) G9 B pLight->Ambient.g *= 0.9f;9 w$ c1 ^5 q$ Z/ C) {
pLight->Ambient.b *= 0.9f;( {6 ~2 L0 D( n z
#endif //__YENV
: ?5 f$ Z6 R" g4 g% Q 6 p0 h4 }- g+ I- f
memcpy( &m_light, pLight, sizeof( m_light ) );
( @- Q. P0 d$ {/ N& S 7 `) n+ w/ X8 w9 G7 A
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
1 Z v# }6 u& R; Y. y D3DXMATRIX matTemp;! x" Q. F* D5 ]. S
static const float CONS_VAL = 3.1415926f / 180.f;
* z# `3 Q% U1 Z$ i# n7 X J1 b* h. L0 O
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);' l& A" x9 \% B2 \3 N( l) \: l
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! D' X$ ?: z9 q7 s; d- i% `6 `2 |
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 4 f1 m; I4 s1 n, Y. \6 S9 T& p
pLight->Appear( m_pd3dDevice, TRUE );
+ Y: X4 M. ^9 D$ m7 x* d
) ~+ ]! s6 c. b2 w& q // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 _1 h) ~" q' P. |+ x // D3DXVec3Normalize(&(vecSun),&(vecSun));
* v* i' }$ |8 Q8 L8 { // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( o/ x; o% [& I* b7 ^7 i' I* E
) O- n" y' m$ l DWORD dwR, dwG, dwB;& C' D- C. z+ _2 S$ f' e$ W
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 W( R B. \/ M3 Q) o dwG = (DWORD)( pLight->Ambient.g * 255 );
/ M; g+ i4 j1 O2 c: N$ G3 \% f dwB = (DWORD)( pLight->Ambient.b * 255 );
$ Y. ^5 U; P! T# E, M0 { dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) u# n! N7 G4 w' T
}
/ k5 \6 J, d4 e/ X }1 j6 @# l. K c4 g3 w4 E% x
8 [$ ?: J2 [7 V$ n* J) @+ E& d m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
1 B5 Z4 L0 f. Y) D 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: D8 ?, v M" x0 Q ::SetLight( bLight );
9 w9 h i: o( _ A6 L
$ Z" G# R" e" v/ x( E' I S* C // ±ao? ?D?í???ó á¤à? " Y1 J* p, {5 e& t7 s' ^7 ?- s
m_pd3dDevice->SetMaterial( &m_baseMaterial );" g1 y5 v1 g6 k) _( C" ~4 Q
' \ U$ v& u9 J, J
#endif // not WORLDSERVER
+ x" s& u/ ?& O$ q}
% I# X* p9 D# x" C6 h i, i2 ^并更换, l0 K+ }% \, T4 [6 @5 O+ B0 K; ~
Code:
* c& X* v v/ k9 r& ~+ B__FLYFF_INITPAGE_EXT# L( d) Q% D; {1 j" q/ E4 @' Q
定义# f# y+ c, W( T- ~. Q% o$ f
2 p2 u% L) r/ v( ]4 h
- B* j$ x- U7 o" K
# K# B; c! P! C
0 [* ?4 x# w/ l现在终于删除我的狗屁加速...- P' {7 Y" m& L9 L0 T, W6 A9 J
6 @! G2 `& G/ F* p. u o% B$ R5 K% u& K' T8 x# I7 J- \% c( J
; z8 Q1 A) L* B2 }7 _9 }, Y
|
|