|
食品车:
& E( d# [8 I2 A尾翼:
( ]7 b' Y7 L% g6 k* U ^3 M# |- k) d! u7 |& N- a( v1 d
代码:
* ?$ [+ L# |1 X7 x" tCWndAutoFood::CWndAutoFood()1 S; }: I [& j9 }% e) A' h; C
{3 X. V$ v$ l: u3 ?2 N5 L
m_pItemElem = NULL;
; ~4 w/ ^6 `! [ m_pTexture = NULL;2 c2 r9 q6 }5 L* J/ n1 W" a
bStart = FALSE;1 P/ g% S9 ], c; U2 d& N- \
}5 ~4 a& S' P' j% h9 C5 h9 x
1 w0 h4 J" f2 r3 e/ pCWndAutoFood::~CWndAutoFood()
4 e3 x2 b- k0 w! {: i0 I$ ?! F" i{
: T: u8 n' [- |1 y AfxMessageBox( "AutoFood ist gestorben " );1 V7 X- K2 V' }* Z5 o' i
}# A$ k0 Y5 S% q
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
, z2 P7 m( W6 r# y7 A: M* P{
1 W, b5 ?2 u* a3 f/ f3 Z, z# V8 \ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
$ Z" H9 Q! H6 ^6 Y7 M6 w}$ N8 X+ J/ _5 g7 f
+ u8 B, T# b2 J" k( [5 d
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
' H9 c: z$ R1 ~{
+ o1 w) x8 n4 |% f5 `: u LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 L( b6 p# y2 b0 R CRect rect = pWndCtrl->rect;# k7 n! ?3 [; a6 I, K8 u! A6 \4 e
if( rect && rect.PtInRect( point ) )
9 @( k1 b( D9 }! ]( C( P& U {
; o% b; W( m' g* n1 E: | CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
! }% ]( r! _' e( h9 {) x if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )! Y7 v: s0 k* I
{
+ H" A ~6 V" T if( m_pItemElem )
: N! k* C. H' N9 G# e- t {
" r: A6 g3 I6 c# J m_pItemElem = NULL;
- x6 B2 k4 A5 F, H6 {2 g }
5 C' |/ _6 @8 b: b" ]# a3 |/ h3 _ m_pItemElem = pItemElem;) _7 Y) \1 b I/ u' Y- `8 v6 b
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );' B2 Q3 o" s/ L4 M1 A. J% G& t
}else{4 B- h+ Y; k+ s# ?3 `# B) O
SetForbid( TRUE );. }; h6 `: d0 W, l
}! ]7 d2 p) f4 z p6 g! q- j
}else{. I5 `3 i: X( a% t* q/ X: q1 [
SetForbid( TRUE );9 O- r6 \, f6 K- O3 k2 x
}
6 C2 }- }* e6 t, X5 `; g3 i return TRUE;
1 o$ G" Z( K% l" |* `# l}
1 l! G! T% Y3 Y
: x d% B' _- g( U3 I) c% ]. \9 bBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
# B* G+ \, p/ |8 v6 x0 ?{
: ]1 `: a: G- g- o5 f6 | switch( nID )# g1 o/ @% E' l. h
{
q' [7 K" V }) C2 c case WIDC_BUTTON3:
; E7 O9 f% s" Y: r2 } {
) W' C) V9 n- A3 ?+ d bStart = TRUE;) Z2 |- [' z. H) W4 @! j/ P
break;/ f0 [; ^3 {5 U% B& I& f
}6 B2 F# P; [6 I [+ V# V; Q
case WIDC_BUTTON4:2 u3 H) f# l( w. E; W8 W1 L
{5 c0 W, m. M$ B. t8 V0 H3 J W. x
bStart = FALSE;
% e* r1 K6 P/ B) j% c0 d% X# S break;
- \( o: ?7 e' M: p2 z }
9 j! v4 k0 D# m7 S& @4 ~ }
3 g/ X% T) h: E0 d+ L7 K6 a, ^9 [- ] return CWndNeuz::OnChildNotify( message, nID, pLResult );& ^6 `- ~) d. a* w& H/ R, D) [
}
; }, a/ J! \! Y, S4 Kvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )0 h( I; K' o; R+ V$ A5 v8 r9 Z
{) L# M" I( f! x7 C6 P
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
" ?+ l( \ ~* K0 Q0 X if( bStart || !m_pItemElem )6 `: q) n/ [; ~2 s% W: S" x
{5 ?& m9 z# V' s' n% d0 S6 r0 ^
pBtn->EnableWindow( FALSE );
0 A& u& H& ]1 \7 Q }else n( K: |& Z) |: j, s
pBtn->EnableWindow( TRUE );- T i E: Y2 ~: |( i- K+ n- O% J
if( m_pTexture )" O, Y; h1 ]6 R6 X3 z* G' \' S2 E9 u
{
+ d- d2 l5 ?7 P. ~* X! ?9 V4 `4 j LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
8 C4 Y* ^( Z# i9 d d if( wndCtrl && wndCtrl->rect )4 H% @: u2 ?8 Z2 S! H8 R
{/ I( C, l! h8 a, f1 L5 t! i' K
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
! c' y: R3 P9 \; j/ v& h }% Q/ _! I# {' x) i
}
; X5 o ^- O% E}
1 ?& Z6 @) \3 r3 ~* h4 v9 I- d8 Z, O% ]$ ?, U
BOOL CWndAutoFood:rocess()
( ~2 Q0 |/ H+ Q{
- Z6 ^6 a4 w2 w0 i- t# } if( bStart )8 ]0 S; J& Q& |4 y
{
; \3 D# i) q( E0 h# p if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )2 }+ x* ~8 C6 K8 F4 F
{
( U' s5 g& r. c u$ L if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )2 Q- h% S9 l2 I
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
( O! m& V, y; V A& r5 _+ \ }else{
* q4 R' Z) n2 J6 m5 U& R bStart = FALSE;& E+ k, V$ V% {, y# r( N6 ^4 S( D
m_pItemElem = NULL;: I5 X4 f5 a4 c/ H; @
}6 u% D2 A" D) T$ D, u( L
}
8 M3 U' c3 H0 d2 T D' p return TRUE;( q! O8 Z V- @7 l
}
: K9 T* k) ~6 q' m/ q! z+ L( X$ ^: O4 h. U" C. j6 [, ~. \
登录视频废话:$ T& X2 I& D; P2 F! ~0 ]
尾翼:
9 a) }6 ]$ d, i+ x# U7 `1 r
8 `5 h; a/ u `# F代码:
8 `2 c2 ]$ o7 J! Q6 A" J" c9 m& `+ D: }# Q
void CWorld::SetLight( BOOL bLight )* H0 y: M' ?: h G9 G; ], R# [
durch3 K E) ?+ e3 f, m. c- Z$ R
Code:
m& t2 N) L# V1 f6 w$ A2 v) K" Fvoid CWorld::SetLight( BOOL bLight )
7 b! \5 w4 l% M5 }{) t# i/ C% R$ t8 s s
//ACE("SetLight %d \n", bLight);
- V8 _* E7 t; g 9 j' L6 @# }5 h* X. b
#ifndef __WORLDSERVER ! ~# e; e' @, R, C0 c) M: L: T! `
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);$ q/ O" t/ n% p5 T6 e7 n( N
CLight* pLight = NULL;7 u8 [' Q8 v6 \ u5 N' z! d
0 V0 p6 U3 a# _' d5 G( T D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
, J1 `. ]; |1 Z) x4 n Y! z) j2 e+ ?4 u
pLight = GetLight( "direction" );& _ T( }5 |6 T- D0 Z/ M8 x
$ h& q) s$ |9 q6 s
#if __VER >= 15 // __BS_CHANGING_ENVIR5 m5 r% U7 j- N6 B. Z1 p
if( g_pPlayer ){, i4 M" o$ K# C6 t
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );' D7 ]+ K6 n* W0 x. s! t# y* v
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
9 N9 u9 x- O# X3 C2 @6 { {
8 @! _# `# q7 G3 h+ x if( pLight )
, i8 w" R2 y4 s4 J7 h {
+ J9 D8 N" w! f7 t; N pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
9 s s3 @0 S9 D% N, D( N$ u9 E9 s pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
! [) k* x' L) k* Z, x2 u5 E pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( D+ k- C, d6 m! L
; b9 ~6 c# ]! B5 D+ E7 U6 o pLight->Specular.r = 2.0f;
' a( Y7 d- p) f8 | pLight->Specular.g = 2.0f;2 t1 F9 t4 {. _! R$ G' }
pLight->Specular.b = 2.0f;
2 v- w$ @ N3 r, e , G5 z6 w% R0 r+ V1 B/ A
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];0 ]9 n# i1 q a C7 G. d. {
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];4 z5 u* U6 s- |0 `3 Q) ^$ l
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];1 w; a: J' ]6 [
5 m+ ~6 a2 y6 U* @. V5 q
HookUpdateLight( pLight );
; N. M# ?" p. f$ u) p2 h
% A2 ~2 N) r9 G8 N1 m1 N memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); ^, M+ W" [9 |- @
$ W; {! m1 S, q; k n+ b# o
pLight->Diffuse.r *= 1.2f;
, s) U. U4 y- ] C7 C7 |# i pLight->Diffuse.g *= 1.2f;
: V0 `. \# w; v, q pLight->Diffuse.b *= 1.2f;
& s1 i$ u/ u3 J D9 q" K7 \6 b8 i$ n" U% R; F0 l
pLight->Ambient.r *= 0.8f;: o$ a3 _6 u5 Y! h: \1 }
pLight->Ambient.g *= 0.8f;
8 v% ^) J4 \- p pLight->Ambient.b *= 0.8f;7 z+ p) H- L- K
4 N7 N% Y' W0 p* J- D3 i K7 z
memcpy( &m_light, pLight, sizeof( m_light ) );2 l0 q) p! H* R* C
5 O3 [2 A! I% h. [. u' p: y
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 b, r3 u1 z3 F
D3DXVec3Normalize(&(vecSun),&(vecSun));9 A7 G7 }8 }3 E3 ]/ q
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 p5 ]3 Q$ h& `4 V0 R6 y" b3 I
pLight->Appear( m_pd3dDevice, TRUE );
' B, G0 ~; U& k9 A0 m/ i( n
8 e5 W3 w9 ]1 ?. n2 g DWORD dwR, dwG, dwB;; B- }! D: J, j' \
dwR = (DWORD)( pLight->Ambient.r * 255 );
$ U* Y( M- Z2 C( b0 g1 V: t dwG = (DWORD)( pLight->Ambient.g * 255 );( H0 y6 ?# F, F, T- [+ u" O5 @/ F' I
dwB = (DWORD)( pLight->Ambient.b * 255 );1 {. I/ a; H, }' K
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 Q$ Z' ~3 ^( q0 H }
3 h2 e, Y5 [6 j0 l }
+ n) P1 }7 e5 x- g2 o1 J: Z }3 X+ r$ {7 `) c3 Z( j+ h+ o
else* c8 u: `1 i6 ?, w% ]+ @( }7 R. A
#endif
2 O% v& R3 u5 d8 ~- T) u
9 `! D- h/ i6 r if( m_bIsIndoor )
& Q6 U. d6 \1 ~ {/ _, Z# l! _& A4 ]5 ?8 [) E
if( pLight )
9 {, z6 t2 E3 }# f4 |: q/ }. F { ( M3 `. s" Y8 l6 @( r4 b2 b
// à??μ oˉè* & s+ Y2 M, D& D: s$ }
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;2 Y: S4 m# Z& C1 T9 O
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;7 E0 s3 I7 {5 L/ [2 w, T& C- f% x. I6 V
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;$ {$ E G* q1 i* \1 H; o5 i9 {
3 h% R6 Q" h5 t5 S+ z" K
// oˉè* ??à? ( L* {- L, S+ C: l+ |* D* {& E
pLight->Specular.r = 1.0f;
8 e. I: h2 f' n( B- t pLight->Specular.g = 1.0f;6 y2 w: @% h1 w4 i$ S4 i, C0 z
pLight->Specular.b = 1.0f;1 X8 Q3 T F+ x0 N, Q. m
// àü?? oˉè* 3 D* V: s W- b1 g
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
7 }7 S. Q: T$ Y; b6 h" x pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
% {, N8 D6 S. z4 ] pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;! p m) {% V5 ~8 q- L
9 r- l- J+ x) G8 [
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* ]0 J. {5 W0 `9 H
{
0 F* O! T$ ]2 G* b6 s! a2 {% s' m pLight->Diffuse.r *= 0.6f;, @, q+ x) W# v
pLight->Diffuse.g *= 0.6f;/ ?7 X1 L% v/ M9 x1 o k+ S& Z3 c
pLight->Diffuse.b *= 0.6f;7 C, O0 ~. x5 C: E H, m3 ]
pLight->Ambient.r *= 0.7f;
1 Z8 g$ _* P& W s9 P" s pLight->Ambient.g *= 0.7f;. O$ ~) [/ X) b0 D- c* V
pLight->Ambient.b *= 0.7f;' P+ N' `4 [# h/ n
}7 ]5 p0 p8 g0 F j1 i f( I
9 P1 t* h* ~/ Z% `% d [- }; u#if __VER >= 15 // __BS_CHANGING_ENVIR) e% S5 c8 m3 f5 r% O
if( g_pPlayer )0 B+ T u I- J7 T5 b+ X1 d
HookUpdateLight( pLight );
* s# H Y$ I% g. }0 y; q8 Y#endif+ I4 c: g$ D' n% d" Z9 `9 h
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. R/ D+ P4 s$ B5 \9 W
( D) V4 v! v! P* { i pLight->Diffuse.r += 0.1f;, D6 ]# W, V4 Z9 f
pLight->Diffuse.g += 0.1f;
+ r) Z# Q0 ? X" j- C' C& r3 t pLight->Diffuse.b += 0.1f;% K4 F. [4 I2 Z* p( H. N# Q) }7 q% V, _
// oˉè* ??à? % d4 Q" z+ J! t
pLight->Specular.r = 2.0f;
8 v' N3 ?+ [, F pLight->Specular.g = 2.0f;% U B5 G1 D. U6 \. ~' T/ X& E5 K0 u
pLight->Specular.b = 2.0f;% [; @5 u! a5 j
// á?oˉ 7 Z: ~, R6 w& X# c
pLight->Ambient.r *= 0.9f;# H: K O7 c8 t
pLight->Ambient.g *= 0.9f;
' k3 i. Y& W9 j, Q; J B" c) K# z pLight->Ambient.b *= 0.9f;
. d9 P- |4 L' N3 x4 `' G, ]! G
9 C! [+ p$ w) b8 L" p memcpy( &m_light, pLight, sizeof( m_light ) );- i# h! R9 S5 ~1 R7 _
! H' Z) ]- o% a9 w$ h+ f
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
% D: \) e8 B: \! ~ pLight->Appear( m_pd3dDevice, TRUE );
: Z( t1 w G0 b
- g( B4 s- I8 d8 a( R0 F DWORD dwR, dwG, dwB;" Q' C$ c" i6 y) k
dwR = (DWORD)( pLight->Ambient.r * 255 );
* ^; M% U( u1 k* ?0 k% {& s dwG = (DWORD)( pLight->Ambient.g * 255 );" u- |. R: \$ g* [8 {/ l
dwB = (DWORD)( pLight->Ambient.b * 255 );: o- w5 [- V+ n& W/ g
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; d3 i5 V9 v& [ Q2 [ } t! T7 |& E$ C6 w
}
& |6 ~- K' r9 F Z3 w; j6 q else
( f+ [1 {' x; u0 I {; g: Q+ e. R. e) M5 {' B: P' ]& X
if( pLight )5 [2 I0 B$ Z p# U: E# f# c
{
. T' D9 w. ~) P9 X- f7 `
: L) K) T0 {4 O8 M# Z# S: M% T$ F int nHour = 8, nMin = 0;
. R6 `* `3 r0 r& d #ifdef __CLIENT# z) n8 K+ S0 O$ ^6 g
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. . N9 ]$ i0 w6 V& U2 R
nHour = g_GameTimer.m_nHour;/ ]1 M5 E- |/ F/ N8 J7 ~1 j
nMin = g_GameTimer.m_nMin ;- I1 j2 C( N$ g* R7 Q2 {' s, v
#else* r5 J2 r+ Q7 v, G5 l' X
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
/ B, \+ F0 U* M: [3 }2 A& x! P if( m_nLightType == 1 )
# F9 z5 q4 i/ K, k nHour = m_nLightHour; {9 K" A9 b0 N {* C
#endif' R; `3 d# A* ]. o
nHour--;
7 f) E6 _. d$ Y5 D) @ N# A, Y if( nHour < 0 ) nHour = 0;+ I$ t8 T5 A2 U. \5 W) K! v: ^; N
if( nHour > 23 ) nHour = 23;+ u( L) {* f. W" X" Z
# n% W5 K2 H/ r5 G" n
//if( m_bFixedHour ), e6 O7 D0 X; L1 E) M
// nHour = m_nFixedHour, nMin = 0;
2 P; Z7 ?% Q! ~# w( n! h: ` LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];" @! E1 E. o4 a- M
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
2 d) }" f {' }: s6 M! `1 _% U2 L- r' _
//m_lightColor = lightColorPrv;
5 u- t4 h6 Y: ~2 i' X lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;4 f, T& R P. \, @; H, U2 a
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
- D9 d0 s( U- \$ L lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
o# `2 G! |% A8 m' U lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
. S s3 I4 N7 F' A. X( ~: L2 T lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
! W# p8 v0 P( F4 t# s* u/ F* m3 s lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;# R2 E0 F9 w' [7 |8 [; r+ ~9 r F
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol): l+ |' t1 u% F6 N/ h
4 P: S0 f3 E5 V
// à??μ oˉè* . I( q# H* U3 ~+ s$ k
pLight->Diffuse.r = lightColorPrv.r1;/ k( K+ U8 ~9 y7 q" u! b' @
pLight->Diffuse.g = lightColorPrv.g1;
/ ^' e1 A- I0 ` |% I! Y/ ` pLight->Diffuse.b = lightColorPrv.b1;; U$ h$ Y3 R7 k- K/ o6 R4 D1 k
// oˉè* ??à? , A c8 p% _; [. R$ I% O' K
pLight->Specular.r = 1.0f;. a2 {- U5 X# l* D4 _# j
pLight->Specular.g = 1.0f;6 r: B U/ D' `/ p; ?% k
pLight->Specular.b = 1.0f;2 o5 R& _7 J3 q+ I2 Y) i
// àü?? oˉè*
9 f2 l" D5 \% G, j+ w! { pLight->Ambient.r = lightColorPrv.r2;
" u* x$ j7 ?6 r8 R pLight->Ambient.g = lightColorPrv.g2;
) O$ P) {) d$ p. y+ c/ U( A pLight->Ambient.b = lightColorPrv.b2;
8 r" Z* ^% {' P6 b2 Q1 L% B9 _4 `3 x/ n. G+ ?! ?
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) d9 R' W* c: C+ W! `$ g$ S
{+ F9 k9 \5 O5 l4 f3 ?
pLight->Diffuse.r *= 0.6f;
, {" w, T8 \" f" ] pLight->Diffuse.g *= 0.6f;" ? R' x$ {- s* t y# s
pLight->Diffuse.b *= 0.6f;7 F/ Q4 t% c" F7 F5 }1 a* U
pLight->Ambient.r *= 0.7f;
5 o% \2 S' x5 G/ J' e pLight->Ambient.g *= 0.7f;
$ e# W. B. B- _% k6 l S+ b. g pLight->Ambient.b *= 0.7f;1 J0 [2 V4 w, \
}; r4 R% X& y9 k( o% i+ P6 D$ |9 ]* z
) V6 [" G/ N/ `+ @% z3 h' K4 |#if __VER >= 15 // __BS_CHANGING_ENVIR& Y% F( h6 E3 O' }
if( g_pPlayer )
1 e j( A# Z$ [. w6 J3 R1 e6 [ HookUpdateLight( pLight ); : X+ q% ^7 O( ^2 B2 t/ z$ c/ T
#endif
! \+ ]+ m* q+ n2 I+ }0 L. h) M3 J memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 M; g, }$ \$ n0 W5 @% m
1 u0 }8 J# U$ y3 G& ^#ifdef __YENV
# O/ ?8 s& Q& M1 s$ x pLight->Diffuse.r *= 1.1f;
/ G3 [2 i( t% A2 S0 Q) s: ~ pLight->Diffuse.g *= 1.1f;( s0 b# x/ r$ d* U5 Z
pLight->Diffuse.b *= 1.1f;
4 i3 L& Y7 W9 V. o X1 m // oˉè* ??à? / h5 S- H" ]- M- Z3 _
pLight->Specular.r = 2.0f;
! k" o1 |% Z+ @9 B% u7 m" H+ w pLight->Specular.g = 2.0f;# y3 A1 `9 P: T( b
pLight->Specular.b = 2.0f;
# V8 O4 ]: n8 o" ~: X1 a0 o% u! ^ // á?oˉ # l4 a& I! \- C$ n6 ?
pLight->Ambient.r *= 1.0f;* M1 g1 r3 x" }3 u8 r
pLight->Ambient.g *= 1.0f;
1 J. k& N8 [4 q( G2 q1 n pLight->Ambient.b *= 1.0f;" H9 b3 }1 |4 @, _2 o
#else //__YENV# S, C8 Y- n6 L6 y
pLight->Diffuse.r *= 1.1f;
; I7 V, }% I1 Y2 G) N( l pLight->Diffuse.g *= 1.1f;& h- C; A9 }! l+ ~ I
pLight->Diffuse.b *= 1.1f;; j/ \. S g; }- G& q9 ?
// oˉè* ??à?
# t& k8 }7 a$ y' F pLight->Specular.r = 2.0f;* X. F* a+ Q4 I- e* J) B' {) @' t
pLight->Specular.g = 2.0f;
x+ l- a' s9 T7 `$ P k# { pLight->Specular.b = 2.0f;
% T2 [% y x8 l, r5 u // á?oˉ
" v; \7 ~3 v/ C( H$ m! A pLight->Ambient.r *= 0.9f;
$ K% W4 a( K* I! r1 [. n2 k& G pLight->Ambient.g *= 0.9f; P; s5 ^6 \4 h' p& l: _
pLight->Ambient.b *= 0.9f;
. N b P# {: l4 r! V#endif //__YENV
( H- W: B# h' A$ l7 K 7 x1 P# d; {5 l5 a* V) w
memcpy( &m_light, pLight, sizeof( m_light ) );- m+ g( j! N8 o3 K
1 f( }; v3 ~' L+ L/ c& t: Y2 Y, T, u D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);. X5 a* y! Q; a; w' \2 |. O A
D3DXMATRIX matTemp;
* g7 h( V& l8 B2 S) D s1 T* I static const float CONS_VAL = 3.1415926f / 180.f;
* x( K! \' Q! ?4 w5 U- |
9 ~% o" c3 `" k# Y7 B D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
j' L! I: |6 l2 _0 t D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);* r" O( r( M3 b& A! u3 g# P
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 6 N( V* q- ^5 G: {2 A6 K9 C
pLight->Appear( m_pd3dDevice, TRUE );
. Z* i/ @4 C- u* x
! C* B. |, X9 K. c // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: Q/ f- @! h, m- @0 E, ~8 Q: k, P
// D3DXVec3Normalize(&(vecSun),&(vecSun));
) H( c& _2 e, t4 u: Y; e2 t // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
_7 C5 ^# d0 `# I1 {9 M- v* ~7 ]) I r- P+ O/ z
DWORD dwR, dwG, dwB;: U. p" R. s2 a8 |7 O
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 @. ]4 _3 e1 I0 c0 \2 t% b dwG = (DWORD)( pLight->Ambient.g * 255 );
' l) Q0 y. M1 f+ K5 D3 s* U dwB = (DWORD)( pLight->Ambient.b * 255 );
' l0 R4 f: }, I9 _- A% k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 5 f3 ?, P6 ^ ?5 b
} s) ?0 L) G5 I9 n
}7 m* h" Y% ]. f9 c6 g1 j7 \7 z; h
: Y P+ [2 f# y8 N& u
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );/ ~) [$ ]1 z/ j: K6 u
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) );
# c! b9 ~+ { D) D ::SetLight( bLight );
0 {& G& ~8 @) d4 i! C4 y! {/ l5 ?8 Q/ ^( g
// ±ao? ?D?í???ó á¤à?
4 @& t7 J* C* o5 z7 A3 h) o m_pd3dDevice->SetMaterial( &m_baseMaterial );! _7 r$ G' M% `0 L6 P% X: y8 v
% n- s, v/ A E+ z5 x$ K( P
#endif // not WORLDSERVER: E3 N d3 T5 A( I
}, j1 U+ f+ [/ Q9 N% N% ~
并更换
0 n1 n6 O% ^% _) ]+ { o9 Z, W @) `- MCode:
3 e4 i! n5 t6 P0 e! I__FLYFF_INITPAGE_EXT9 l' ~- ^1 E0 C: h9 C
定义
$ K6 w% z0 s- @; ?$ Y" w4 e3 ]. }/ U: {2 i
* G. L3 g& G$ T' e
: {9 M" S4 r9 i9 J2 y! T4 G5 m( H& t7 g! R9 u/ {
现在终于删除我的狗屁加速...
2 A5 a; l3 @9 W# R* U, d; J4 k# p) _2 C% h2 @0 V5 O6 S4 k, e
' Y6 Y, z1 Q: h, N- Z4 V
( Z/ Z2 s7 `* x |
|