|
|
食品车:
+ B" J* D+ h F. d, t尾翼:7 i: l2 h. L6 p) T; E j4 E/ |/ S4 I
) `( y# ]2 {5 |' q7 `
代码:
2 r. F' M6 V! f, v* |/ ZCWndAutoFood::CWndAutoFood()
2 z7 T; S0 |% y r5 V& A{
+ U" Z" H* B% X( O/ C% N! @ m_pItemElem = NULL;
, G3 U' q8 ~4 H9 V m_pTexture = NULL;* h5 Y9 E8 _$ i4 L- s+ @0 ~
bStart = FALSE;
# I' g/ g! {* V6 \& D}! a# k0 C. |* O; T
; C3 ^9 `7 T- r! h
CWndAutoFood::~CWndAutoFood()) `! e" O1 s) `: ~1 _7 q- z" L9 t
{
$ F! v. N2 {: ~9 S AfxMessageBox( "AutoFood ist gestorben " );8 B* m4 N% t( Y# E7 h) K
}0 C8 Y8 j% D( I5 {' o' k$ Y
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
- K8 g/ k3 t3 A) ^& m1 W{
6 I: s" l- `) ~5 b! e, ^& [ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
' N& a5 }! l/ T}/ B5 z" Q8 C3 F9 `: `1 p8 s9 c
# F; t. R0 O; J3 B9 S5 Y% q
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )' C* {. H7 d. F. \" }; w% s; {7 }
{
/ |; {$ m4 s6 a1 X7 B# R LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );- h3 P) n! Q# B6 c! Q5 T
CRect rect = pWndCtrl->rect;5 @1 U. x, j1 l, {: A+ a
if( rect && rect.PtInRect( point ) )
/ ~0 A/ |2 t }4 j {7 x2 e9 y% _/ x s
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );1 ~& \" b) A* L$ H, Y$ R* T
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
6 x/ i- ?( e; Y. x5 {+ M* F {
( j0 M1 M; ?' R# \& W6 n- s if( m_pItemElem )
9 b# k4 \) f- J {
( p3 R7 f; x: ^' Y1 m/ }! D& Q m_pItemElem = NULL;* l' ^4 r0 H9 ~6 j) ~
}: J! }- V1 n4 {3 g; F; K
m_pItemElem = pItemElem;; R B( U! ]( @, ~ T. I: t6 a
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
0 D; j1 ~6 Y& l) D$ ~4 d) L3 f }else{
7 U. O3 j- ^: N r8 n [6 Y5 T2 z+ ]( e SetForbid( TRUE );6 e! @& ]4 T+ L7 c6 ]
}' K1 `. I3 i8 Y+ \
}else{
3 P4 P& m/ |" x8 a3 T, P SetForbid( TRUE );: ~9 t7 g, H6 U5 [; K2 |9 y( b
}
* m- I/ X, F7 u; a return TRUE;" E. a' d7 ]6 R- q/ m0 i; F% v
}
$ T2 h2 G/ ~5 a2 L- ^6 s2 m
% X& D. D$ R2 l: x+ @6 V% TBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); f0 _% u; a c5 M9 v0 j; _9 |
{
0 a/ I' W* {/ w switch( nID )
, d; G h: W) B9 {. l; k {# l! u) M( ?% P
case WIDC_BUTTON3:
: v% {# t! X, m- d: X# D- N" c9 P {
4 E1 c/ t2 |! x# N$ z bStart = TRUE;# t/ y5 I& F4 Z7 o- ?& j, `+ K& U: f
break;8 s8 _: y2 t- e4 U" |9 |7 P. C! a
}
{9 J/ Y6 R7 q1 r: Y+ }+ F$ E case WIDC_BUTTON4:5 M1 L" s7 G1 o( y+ O& Y7 X
{
% T6 K3 b, H8 p- N4 J bStart = FALSE;4 \% T! X0 G% B. j/ e5 m j4 k" c
break;
' v7 B- b2 n. d3 K- n; S `$ {/ n }
( t f+ l' H8 w9 K }/ f2 T3 {# i9 i1 }
return CWndNeuz::OnChildNotify( message, nID, pLResult );
9 s' `2 L7 d) j7 W% a# N1 X" y}
6 Q9 n1 H* S- M; |# c- Pvoid CWndAutoFood::OnDraw( C2DRender* p2DRender ), j/ \8 L, x+ {: f( }" H
{
2 G, J1 ~- R8 b0 E' J+ O CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
( @; W0 i* J9 A6 j _/ v: l. O if( bStart || !m_pItemElem )$ [# C' p: _; M' b4 q' s
{. c( N2 K6 b8 p% ^2 r1 X7 R
pBtn->EnableWindow( FALSE );5 o x: R/ Z( m6 h e" ]
}else! C" m/ S8 C/ Q1 x2 [& E6 C
pBtn->EnableWindow( TRUE );4 |/ C1 ~( {6 }: v/ J0 Y
if( m_pTexture )
6 X+ S4 a0 Z+ i/ Y. v' u0 g/ z {
n# u2 e0 R% G. F LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& {6 t& @1 J4 x- h' _/ ] if( wndCtrl && wndCtrl->rect )
1 o# x5 {: _9 V {
: G9 p% y7 ^" E: v" x y5 Z5 X% z m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );' S7 z4 {' Y, X: F, k7 H# O/ z! c4 ^
}: r: g% N& U, b1 \
}' |; |- E: n: x X! R. E0 {2 e. }
}8 c6 r% }* o; C) U& P
" E- N% ?! ]. ^' f0 t5 |
BOOL CWndAutoFood: rocess()) D, @ v/ q2 Y; i; R( B) X7 s
{
# d$ d5 h! {" E3 s if( bStart )# k4 I/ V6 `8 l/ L5 `% s# c
{
: T& P* l7 K+ D% b! @1 I5 | if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
" K, _5 B0 C8 ]. _ {
% O: U1 r4 u' |. B3 [6 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() )! V. N4 ?2 u" N! V2 d
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
9 @& v$ U; ~3 m+ B$ N }else{( D" `+ `; o6 C: a7 l
bStart = FALSE;
# j9 q! }7 k; } m_pItemElem = NULL;
1 s) f4 D2 e9 |! ?2 ^ }; j W! s2 ^9 j6 F
}8 S: I$ S4 d& t8 l) V
return TRUE;( j$ L% ~6 Q( X3 @6 C- f3 A: r8 ~
}
, H0 G- [% C, j6 Z& h5 ]8 k
4 r- A$ A. i, R [8 p登录视频废话:! n7 k& X. J# ?! w, H0 H$ y
尾翼:4 k/ D f' W9 Z/ N! _3 f: ?9 p/ C( T! F
! `+ L; M" w, [ Y
代码:* y* ]9 U( w$ `/ a! l2 N
3 }- u/ O( S. Z- S
void CWorld::SetLight( BOOL bLight ). a7 y- e, h/ H6 g
durch N7 [, M& ]2 O' h
Code:
4 N+ }/ M1 i" S) w9 G0 Qvoid CWorld::SetLight( BOOL bLight )
) c _- ~6 Y3 D* G6 [) I{& F2 @ L+ ?7 b" U, j
//ACE("SetLight %d \n", bLight);- J' k; b9 E3 V+ N% U
6 O* l2 R* x1 N" h2 u5 C4 W& h1 Q0 v7 ]
#ifndef __WORLDSERVER
5 ~4 P9 U+ }$ y: D+ z DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);+ a2 F b0 T% [) R3 F/ l
CLight* pLight = NULL;6 U* V: D8 Q$ t1 p
* r- S; ?4 i9 D ]9 ^: U D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );& u. Y4 w5 y* K
' c) p& H: m! B4 F4 u pLight = GetLight( "direction" );& d: g2 d; B4 f- |9 |& X( }7 C
$ g+ B! U \( H4 P
#if __VER >= 15 // __BS_CHANGING_ENVIR) s0 X' Q' C9 V1 y8 l7 C
if( g_pPlayer ){4 {* ~- Z! H2 o d- Y* O1 F+ M2 W; `
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) ); }8 n# j. w* V" N0 ?' f
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!/ S: X' m0 D# a5 Y b7 I
{3 G& u g) J0 `2 l0 s
if( pLight )
; g# N$ J( M7 T; X {
# ^" h* s: L- G* v( f; x# N& D pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) z _: i3 A3 ]! j$ O( b4 {
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
) \% q- f5 Z8 Q+ L pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
4 h' M3 @5 Q/ a, C# \7 q6 Y+ _) o
u- {; c9 i0 d& ^5 C/ {3 f pLight->Specular.r = 2.0f;
8 ~ {: \3 o* O2 X1 D) | `, F: c* h6 W! a pLight->Specular.g = 2.0f;/ C+ ?2 f0 A9 J% q, S
pLight->Specular.b = 2.0f;
5 u: o/ m1 T* M& i+ w # B& ]) }" R+ e+ j3 ?2 q" c4 L! G
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];) i) d+ ]: E9 V$ W& E0 g. X
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
) L( n z( v9 U3 t( ?3 s! p pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];7 M: H. s1 ]* i5 f/ J: V+ Y
6 ?+ O9 { z& |- A( c$ R' k
HookUpdateLight( pLight );
! I" I' g% w4 A( x! c+ A
1 T4 z9 B t8 e5 W. U memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 L1 G8 B# c6 X' k6 H9 P- z4 R* m
$ k6 [6 A+ @" a9 [ pLight->Diffuse.r *= 1.2f;
9 s% ^8 H& Y' v3 ~- M3 { pLight->Diffuse.g *= 1.2f;
, l- W: d" R% A pLight->Diffuse.b *= 1.2f;
" J6 s! y* h7 X% B, V% y$ l/ Z9 ^2 U- r$ F0 e4 a% r0 _2 p. c- a
pLight->Ambient.r *= 0.8f;
n1 w# b0 U/ Q. B& s pLight->Ambient.g *= 0.8f;+ J, W m' J" ], d& a
pLight->Ambient.b *= 0.8f;2 i7 F$ U+ k3 W+ ^& r/ N
/ g* f$ S) Z% \3 j+ M. x
memcpy( &m_light, pLight, sizeof( m_light ) );8 ~% m* o( g8 a7 c% t @
& N/ d/ u* g) v$ v+ c
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 C, y* J+ Q% u D3DXVec3Normalize(&(vecSun),&(vecSun));( M O9 P' X/ n3 x) c
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); . A( d! L( I2 u& }. \) Y) l' \# y
pLight->Appear( m_pd3dDevice, TRUE );
# ~! u2 Z4 {& s- {' E$ J
K9 J+ H1 m" h# h$ M0 e DWORD dwR, dwG, dwB;1 o6 i `) \# R2 Z
dwR = (DWORD)( pLight->Ambient.r * 255 );% ?. T. M0 s. F4 X
dwG = (DWORD)( pLight->Ambient.g * 255 );
" R6 l7 r) a1 `& g3 Q& r$ w dwB = (DWORD)( pLight->Ambient.b * 255 );
4 c! F! G; ]( X3 \ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! R% g7 t8 y3 ~' @- ], M
}
- N! j) E( {$ G( ?& j; d( l }
% _5 D+ e' k, s }9 X( B/ _2 M3 M9 i5 C
else" R1 ]0 w# a- b" v. i( p
#endif
3 L* k; O: G5 B7 z* u
! V% S' k& z: B' I6 a* Z* t if( m_bIsIndoor )2 T+ S$ y6 k9 g0 ?- B2 F
{
y6 M+ d) ^/ T$ e$ K' t if( pLight )2 y6 d* \, v3 ]& q0 Y+ Z$ l5 R- ~
{ . g; y* g/ b3 W$ |
// à??μ oˉè*
0 c1 c; u# x P pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
# Q% h1 ]; S# h P- R, k pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
" M1 I; ~6 f! F3 h pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
0 S" Y5 |2 S/ Q
4 R2 i2 |, B6 m // oˉè* ??à?
$ I2 Q- }0 b% y# }+ ` pLight->Specular.r = 1.0f;
! v1 I& W5 Z6 G1 ^9 j pLight->Specular.g = 1.0f;
5 L& W* P# _- Y/ e$ t pLight->Specular.b = 1.0f;
9 p/ n3 D# j' I' A/ Z // àü?? oˉè* 4 H& B* V& W9 L6 p: i9 n! y
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;& e: Y- | G. C" D( |' m' Q" F
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ U" q6 i6 V# U2 S: r
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;: K/ p4 X8 \# A" c% u
4 G8 P" D d* u# L if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# _5 n; G9 S4 b
{* U4 ?( @ q4 T1 H& z$ c5 Q
pLight->Diffuse.r *= 0.6f;0 s% Q3 e) }. s. h- }2 P! R
pLight->Diffuse.g *= 0.6f;- O( m6 \- m6 p4 [
pLight->Diffuse.b *= 0.6f;
& T) {; ^) X8 p+ A, H pLight->Ambient.r *= 0.7f;
) a+ d/ w. R3 j( N. `& @ pLight->Ambient.g *= 0.7f;# v# _& O( E, A5 v' {, F
pLight->Ambient.b *= 0.7f;7 t ^; @/ x! x/ T, L
}$ N V% N6 T, M K% W
$ A; O; s! y0 u3 d9 U1 z, ]#if __VER >= 15 // __BS_CHANGING_ENVIR
1 p( ~) M+ U( p if( g_pPlayer )
8 K: J7 d. W/ ?* x; ^2 m! f HookUpdateLight( pLight );
, ]1 G, B( C I# J% P% M% |8 P#endif
8 E$ L+ v& {) _0 Z8 y6 n memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' u4 Z5 E. @- @
+ D2 u! I; E: S9 C! V1 L4 G1 } pLight->Diffuse.r += 0.1f;3 ~ J1 R# o- ~, G- ^( W
pLight->Diffuse.g += 0.1f;
M$ O% v" i7 o) O pLight->Diffuse.b += 0.1f;+ _7 @$ E' \, x5 ]. g
// oˉè* ??à?
4 `5 d. h+ k: S0 T2 K4 s, o# Q+ a } pLight->Specular.r = 2.0f;
1 f% O8 L! V; \& @7 K; R4 ?1 v- I pLight->Specular.g = 2.0f;& S, ^7 N' Y' L+ y2 o+ L
pLight->Specular.b = 2.0f;
% a; f% [/ S* K( j // á?oˉ
" }. [5 L+ j( m( Y pLight->Ambient.r *= 0.9f;& b0 ?$ t1 h0 }' f$ L9 H$ K2 j
pLight->Ambient.g *= 0.9f;
* ^; ]# Y% Z, J# o$ R6 ? W pLight->Ambient.b *= 0.9f;; r2 b8 P9 M6 m2 U
% p4 G3 `* z8 v$ O+ v
memcpy( &m_light, pLight, sizeof( m_light ) );
p) q7 A8 R2 I `) H5 Q
% r4 L$ m1 G$ N6 j. z7 G7 I! g2 R2 u, D pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );- i9 [. }( O7 x9 ?# |
pLight->Appear( m_pd3dDevice, TRUE );- I2 D; F& B& H0 c0 Q3 J4 i
+ o- _ {6 j _9 I. V6 a3 t+ W
DWORD dwR, dwG, dwB;! b" U6 ? d7 Q" f) V5 y
dwR = (DWORD)( pLight->Ambient.r * 255 );
- n5 d) i0 U( ?% b C dwG = (DWORD)( pLight->Ambient.g * 255 );
! k( h( o6 V, ~/ o) s- M7 a dwB = (DWORD)( pLight->Ambient.b * 255 );
( X( b& ?5 M+ n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );( [. R- R5 l# l) q: l) w, ~) N" S
}0 g d& w( d. c
}
& E( A5 N) ]) H* X+ _7 r. P else
. p N0 W1 h% v* ^9 p {& b8 d. O& z% k; ?1 }5 E, s
if( pLight ). D& f' d7 o$ x. c8 p0 Q. j
{
/ w' V% c5 T/ I7 W 7 g5 k% i) I! e2 A" O+ H' h
int nHour = 8, nMin = 0; P- O: b! E, v# t
#ifdef __CLIENT
; p/ i g; c* ]0 H* e* h // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ! {1 X, K7 w" Z
nHour = g_GameTimer.m_nHour;) F: U3 M* U. i( J8 ?! N
nMin = g_GameTimer.m_nMin ;
0 o' J* _% R1 B #else; t- {$ |! s6 M7 ?! q) p
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
* p, X, a2 m0 w: t* _( ^ if( m_nLightType == 1 )% {/ @/ w0 ]/ R3 X" u" m# I
nHour = m_nLightHour;
O5 Z$ d( c5 P #endif: [% o `2 b/ ]) o
nHour--;+ z4 _ v& [- |) q! ~$ C
if( nHour < 0 ) nHour = 0;% q3 y0 `9 m/ Q& R. s: M
if( nHour > 23 ) nHour = 23;$ S. N0 I4 J' w2 r0 H; `& v
, w8 D) d( w& v, V$ ]$ e //if( m_bFixedHour )
7 m$ a+ L+ S, ]& [: X4 z" U# t" H1 `3 c // nHour = m_nFixedHour, nMin = 0;8 S) Q' E6 ^5 g! X3 s
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];2 y2 X4 q6 R' ~. m! j' |2 C7 T
LIGHTCOLOR lightColor = m_k24Light[ nHour ];. ^& d% }# j& B4 ?6 u6 `7 x" g
3 X, U e ^& E //m_lightColor = lightColorPrv; T( ~0 H1 q' ^+ ?; k$ c0 t
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;; D8 M: K- w5 _. r7 Z; A
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60; J- {* b @9 j# R# u0 S2 g
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
: o$ [. y9 H K2 Y+ v: I lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;. g. x" Q) Y S% T
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
- Z& Q$ T1 \) C& g lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60; g+ i3 A2 B2 P" Y) | m& L
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)3 a) {8 @' C3 O
0 ?, I* P' Z" C8 o) D // à??μ oˉè*
. M- ]# d% e( W# c pLight->Diffuse.r = lightColorPrv.r1;6 i: U8 M; R& p" J) n
pLight->Diffuse.g = lightColorPrv.g1;" u5 u: t. ~6 D& `
pLight->Diffuse.b = lightColorPrv.b1;
: P8 q. z }! [8 v // oˉè* ??à?
9 f9 ~2 d' C @ pLight->Specular.r = 1.0f;( N D8 O8 g2 b; a# q* D
pLight->Specular.g = 1.0f;
0 g# w9 Q8 }+ o6 c6 W3 c& a pLight->Specular.b = 1.0f;; q) v( i2 E( L9 i# v7 Q
// àü?? oˉè* ' D8 b/ H7 r5 z* G
pLight->Ambient.r = lightColorPrv.r2;
: n) Z4 T* k j8 t" e+ G' p& B, n pLight->Ambient.g = lightColorPrv.g2;! x$ F9 o! o, @) t
pLight->Ambient.b = lightColorPrv.b2;: L( _5 Y& c: n9 [1 H
" I6 ^5 L0 r) i( k1 M
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; r* r5 I/ [9 P+ f
{( X! C. h1 [( H! j: f9 W+ B, t) [3 d8 d
pLight->Diffuse.r *= 0.6f;
# @% [# E+ `$ f! X2 p, L pLight->Diffuse.g *= 0.6f;4 N8 ^0 x7 ^9 D# w" V
pLight->Diffuse.b *= 0.6f;9 d( f4 O" R, T: c4 y6 h
pLight->Ambient.r *= 0.7f;- j, [. j# C3 _! Z) _& {
pLight->Ambient.g *= 0.7f;
7 c1 w9 z3 Y8 V' D* y8 G, K$ p/ | pLight->Ambient.b *= 0.7f;
: Q( F: ?4 B! v* r5 J }4 _, H }: V% b& C H4 `! i1 K. k* S$ D2 ~
7 o- O' T# G0 U' z9 x" K# F6 T8 ^% [
#if __VER >= 15 // __BS_CHANGING_ENVIR3 Z/ w) j. f2 n" ?( a
if( g_pPlayer )/ a/ z3 ~/ v' ^/ ?
HookUpdateLight( pLight ); $ v6 t0 u' A5 [* @, e: A; z, Z
#endif2 e# Q* h" E6 O- b) Y1 z0 E
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. t( m: q, G, G- A1 a
& q3 k+ p, S5 V& \! w9 S) @
#ifdef __YENV2 }/ V. A; F! }3 W, [+ k; i
pLight->Diffuse.r *= 1.1f;, o: l+ ^+ t2 m& D; ^! {
pLight->Diffuse.g *= 1.1f;
2 ?1 p9 v: q9 W Z2 Z pLight->Diffuse.b *= 1.1f;# a. h+ S2 T3 ~. _( b
// oˉè* ??à?
# Z; A$ f) S6 W- f% ~ pLight->Specular.r = 2.0f;
1 K% j' m+ ~3 ]/ F0 e/ E: l* r C% i pLight->Specular.g = 2.0f;
) }2 J3 B* U+ m) ?# ]; @# n6 J; i2 u pLight->Specular.b = 2.0f;
# L Z6 L5 S; r8 N- ~% y9 C- } // á?oˉ : w$ X' a8 P, R u2 M2 D& b
pLight->Ambient.r *= 1.0f;! Z/ S. h2 r% {4 N% q
pLight->Ambient.g *= 1.0f;8 X+ Y- w0 }# H/ C: m3 F& d: c4 G
pLight->Ambient.b *= 1.0f;
/ _8 J2 [; E; J Q2 b/ x#else //__YENV# }5 y; c; l3 S9 {# g9 |
pLight->Diffuse.r *= 1.1f;
. I3 |' Z' x2 @3 W: G0 N0 O: E' P pLight->Diffuse.g *= 1.1f;6 K- ?1 M' e% I0 [
pLight->Diffuse.b *= 1.1f;
, o3 V' w& _" b/ s // oˉè* ??à? ; q3 S- m0 }; h# I3 x9 a5 L. i
pLight->Specular.r = 2.0f;1 J$ ]5 R2 Q8 O" I; `
pLight->Specular.g = 2.0f;
# R1 w0 \: z0 M7 f( T, k pLight->Specular.b = 2.0f;
; T0 K, a0 }" q' ^ // á?oˉ ' n. R9 q, P" `) \% o
pLight->Ambient.r *= 0.9f;
8 r8 Q1 |. A- @- F7 c pLight->Ambient.g *= 0.9f;
, n' R* P x8 O% Q K5 E- m6 q pLight->Ambient.b *= 0.9f;
* g9 E& }. T, H) A#endif //__YENV
3 t7 f& s [$ e% o( n) P- i8 t. U 4 B5 ^& ~+ \! }. h) b4 n: P2 y
memcpy( &m_light, pLight, sizeof( m_light ) );
2 K5 p! b2 v" L! p; ^ , X5 R' a( ~3 `
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
+ M W- S ~9 O1 M! M& I2 N2 N7 B- U D3DXMATRIX matTemp;; p* V4 o. l- i( R3 o6 v
static const float CONS_VAL = 3.1415926f / 180.f;
0 R. e5 Y/ M+ t K+ u% V/ Y0 [ u0 T2 ?! ~ u
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);3 f* @* _9 G4 F4 F
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
6 y7 R7 t; ~$ v/ \; ?% \ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
$ K, h: K8 C6 y7 |2 z pLight->Appear( m_pd3dDevice, TRUE );. K/ R# Y: X. L1 n( z8 S- }: ^
# F2 L" q5 I! I4 l# D4 V
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' e' ^7 l2 ^1 h
// D3DXVec3Normalize(&(vecSun),&(vecSun));
$ w( G# [; s3 a2 P% Z // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. |& X+ s# |5 N9 {
- t! h) Y5 X& A) v5 { DWORD dwR, dwG, dwB;, _: S4 v1 g+ b( D- g- w; z
dwR = (DWORD)( pLight->Ambient.r * 255 );6 ~! e. r' d5 W+ e# S* v" u. K
dwG = (DWORD)( pLight->Ambient.g * 255 );
! s4 S/ B. }+ c& s dwB = (DWORD)( pLight->Ambient.b * 255 );
% g! P" N2 k; V' Y& K dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( z; M C: K" D }0 Z+ {5 q7 T' e6 H0 [
}
9 L$ |& I M( Y# S5 {' L& F( w# q0 p1 a. A" z
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
: ]. g; V9 x$ g- z1 ~4 t 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) );. s3 s5 _: P( V% f( Y E' c
::SetLight( bLight );
3 S2 g, C% _. Q4 m, ~9 z
3 o: b5 V ~4 N3 u; M8 G$ Y // ±ao? ?D?í???ó á¤à?
; O8 B# O9 n* C o7 E9 G m_pd3dDevice->SetMaterial( &m_baseMaterial );
% g l$ y6 s' g! l3 g7 X
0 O& d+ f: O9 f; J+ y+ |6 V#endif // not WORLDSERVER
* y! k H3 c% }}
& _3 J: `- T" v+ R% s) a并更换
6 N3 b; V+ @; R% C) u/ ]! uCode:
$ j' W. Q" J8 u+ T__FLYFF_INITPAGE_EXT
+ J& a/ W7 }( t& ?. y2 I定义& X* S: R- ~1 u
- T2 M( S) X, }" W
& A) n3 ]" d \$ v4 r
0 }+ T7 Q& I* ], E2 g, \/ u
% G' T% H9 L2 e
现在终于删除我的狗屁加速...
5 @8 j. d1 c% E# L+ t$ S0 N& y# ~/ S
- a4 @0 h) N: ?9 |/ H# a7 `" s
, R8 y0 I) V6 Y8 T# j( S' ~* p
, P5 @# n% w) X( A9 D |
|