|
|
食品车:" J6 |) [ u5 d# d7 n& z
尾翼:* d. T, k7 Z% _! {
* F0 ^, J, z9 N. H/ W d: h
代码:# c6 o5 b- D4 `( [
CWndAutoFood::CWndAutoFood()
+ T6 `- `/ Z# L/ w{. D* z: ^+ J5 `+ `0 t7 R) u( I
m_pItemElem = NULL;
! B) E$ y4 C: n! o9 R m_pTexture = NULL;
% |* }6 G2 ^) \, u/ Q bStart = FALSE;9 m! b" y, B( g
}$ o/ v. V' B! K
3 n" h* _4 z; q$ U
CWndAutoFood::~CWndAutoFood(); V/ Y* @' V, i$ G9 ?3 C
{
! L) N! ^2 F0 O, G, U+ ]" j* O AfxMessageBox( "AutoFood ist gestorben " );( m2 w2 G& `& O4 ?4 i1 t7 g
}8 f: p5 @1 b" F7 l) R8 i
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
0 C: z) z" t0 R9 C9 A! M3 a S{9 i, N Q `6 X5 f, y6 q1 b4 q$ p- X
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );2 d: q( v f( k, k3 J; H2 }' R
}
6 |; h( L" N! K1 z/ S) X
6 K2 n4 j* s' k$ j/ BBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
3 T; j0 u7 f) Z! ^{
( M: S3 O6 K2 P9 j x: d" t LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );6 Z K/ y$ H( y; X0 f5 Q! C1 L
CRect rect = pWndCtrl->rect;
; W5 S7 A$ [9 N J. ?8 ?# p: G! H if( rect && rect.PtInRect( point ) )& }7 G& T0 ~: T/ A0 [
{
: r7 Z2 z% p* F$ `. {/ ^6 T CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
' K6 R7 V& K0 M6 } R" y# [" G if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )/ m1 t4 j, ~, z8 {$ l3 p
{; W2 `% X6 m! J' G+ V" g, g
if( m_pItemElem ) s; ?' l3 `0 G4 A4 U# [% U* |2 y
{. y+ @. w; t( E6 }$ F5 ~9 }
m_pItemElem = NULL;
6 X" t, T4 g7 @8 Q3 [ }
2 k4 E7 S7 B; @3 q m_pItemElem = pItemElem;
/ y4 U7 `0 m& t! E1 F9 w m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
0 L/ ~! J, q7 y8 P6 C$ s1 N }else{
( G- ?; s) B9 B( m' } SetForbid( TRUE );) s1 c! v$ d g& i
}2 H9 ^2 w+ E+ g2 }
}else{
* W& {/ j3 K r! M0 Q& n% _: } SetForbid( TRUE );2 m7 t* O+ w, n p+ Q
}) B+ Y' j( ^$ c) u' [' J
return TRUE;; C E* r; n# }/ Z% j
}5 D- q" y M' Y% a
* ~3 `' J. w/ {+ L" j/ XBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
J) V5 s% x5 x, Y/ n7 s! w* b{( N% b1 k) }* }6 k( h& t
switch( nID )
( b7 S2 \% K8 u' f( h {4 m3 R! v8 O8 |8 G
case WIDC_BUTTON3:3 v; d0 j, z4 |8 X$ T: H/ J: p
{
8 W4 S! C6 u6 _! W9 O0 S, M bStart = TRUE;4 b+ h6 [% C8 z# z+ n- g4 {
break;
) S- r; J& N) A5 g' [( v }
5 A" V/ `5 j e case WIDC_BUTTON4:- i( k/ r2 U* f @; ]1 j
{
+ o( l+ d' u# n bStart = FALSE;
$ [- ?7 Y7 D# ^- ~ break;$ M9 M, B$ ?3 C" i2 e
}
H! {- E: Y5 U& W }. v" t. I ^, u) W1 z) T; j! J. M; Q
return CWndNeuz::OnChildNotify( message, nID, pLResult );9 K4 i& h( T" b: Z# Z
} / [! O5 S9 |6 B& c7 ]5 C
void CWndAutoFood::OnDraw( C2DRender* p2DRender )4 P6 }: S0 n% ~1 D+ A3 }
{
9 |% y A) k3 [, W' g CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
% i2 Y( V6 W3 e& h) @ if( bStart || !m_pItemElem )! `2 R, J+ [" p$ J
{3 r/ i6 `, ^, h; K
pBtn->EnableWindow( FALSE );
% S1 i& c/ s7 V$ V }else: u1 Y* _+ y8 u9 ?) U4 `: s! E) y
pBtn->EnableWindow( TRUE );
7 p+ T& }# E* B. ~ if( m_pTexture )# N9 _2 F# e) T+ O# S" T4 d, ?% T3 m
{
& d( A( |- w8 G. P1 e LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 d3 i3 ~* X/ n! K% r
if( wndCtrl && wndCtrl->rect )0 X) x3 E+ X+ {4 `8 {
{: `- K! } a6 [9 q# g% q; m+ z
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );0 s: C* g0 J# q8 v
}/ r3 z$ \& k6 h+ m T4 T/ G
}! ?6 Y8 l' t0 b2 P. `
}
. `) V- t5 Q: X4 ?) f2 o8 a$ S4 ~' s& F0 I y' H$ k- o( s9 ?
BOOL CWndAutoFood: rocess()
8 P2 U0 z) t, F{/ x* O3 T" S5 m7 V7 J* K9 t
if( bStart )
* q2 _) y; m; r6 N* \0 M {* C7 D) ~ G8 t( o: w/ d" x+ H
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
) R1 O7 l* ]/ c6 L& a {; u( f$ O9 r5 M' `
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )% `' m" @" v7 \8 w$ Y6 X* z7 e# x" z
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );1 ^# R, ]9 \' E) H
}else{4 @+ [: v5 I4 D8 Q) Z
bStart = FALSE;2 `" @' Z- e1 K/ T
m_pItemElem = NULL;
+ H9 v. c5 L# m' ]8 l% a }
2 l1 p' N9 g4 E; _& T } A9 X6 I r$ \7 D1 L
return TRUE;
1 H& E3 a" D( S}
$ }( h: R2 I8 Z& z/ q P2 v3 R/ G8 I) x+ m/ V3 j* i5 C+ ?0 j. X
登录视频废话:
8 t5 f# F- t; S2 h- h+ \( {# ]' t尾翼:
* f8 X5 y, U1 c% |- g' K
: x2 Q: T D! f: H* P( b% a% l代码:
7 N" m2 c- Z1 u
) A! [& Y: l7 G) w3 U6 V$ kvoid CWorld::SetLight( BOOL bLight )
7 m+ r1 Y1 T% {0 U R4 adurch
' N; D: f: z# K3 w# pCode:1 P: i' a" k2 ^9 N# `& M8 P
void CWorld::SetLight( BOOL bLight )
3 Y( L9 |+ c; I: l& B* M9 z5 v{
4 M5 s% ^; N+ q+ b4 ]' c7 Y //ACE("SetLight %d \n", bLight);
% D' Y5 { h% E3 v' i" {8 m( A. E8 q & m9 X4 F' u+ Y( w# ]" x
#ifndef __WORLDSERVER
0 @- W" E7 D ^ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
& ~" |2 {( ?6 \4 J* w6 Y CLight* pLight = NULL;
) | ^- F2 W: ?( b
6 s! y( w* J3 @: c+ \1 H, B D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
& d' S. ?* w8 g" X7 ~7 z
3 |7 v3 K* H( Z: X% `6 ~7 q) b1 R1 I pLight = GetLight( "direction" );3 l7 C/ Y5 T% T2 E" U8 t
# u. [7 f6 N1 k0 n' ^5 Y3 l#if __VER >= 15 // __BS_CHANGING_ENVIR
5 A% k* n3 `" ~) o! c; V2 L if( g_pPlayer ){
$ j6 z( V1 Y7 g5 [7 H4 i ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );2 z, s" i7 b [* R5 W) g8 x
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!6 t2 T' h# t: ?( M% s
{
2 a' N2 P, L: m6 z9 I+ b I if( pLight )' v: r2 d8 E5 w5 A6 }1 m
{4 Z; g, x: u8 c. k6 y; ^
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
: G8 {& W8 L/ h& U2 s pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
5 T3 N& [- R; m9 B4 C pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
: K. @9 t+ D- H/ |8 S7 j, ]" s" \" {: L1 Q9 c
pLight->Specular.r = 2.0f;
0 y( I. U# i0 s" r3 C/ R$ u" Q pLight->Specular.g = 2.0f;# R. B* Z, `# \: N% ]
pLight->Specular.b = 2.0f;
* E$ H% Q1 X4 ?' d1 d 5 M0 z3 ~6 a8 J; Z& ^( X
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
# J) b2 u2 d3 ~7 G8 s pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
4 ~ `, ]" G+ Y; X! J- l# Z pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
! p7 T6 v- n/ Q. {- c2 ]
$ H& D% n3 _+ t HookUpdateLight( pLight );
3 Z0 v+ A9 f) r! `* r/ Q9 n" H- z; h2 `8 q$ o1 L
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( d! Z& h: f. ?* C2 C# n5 T
' p, c( |- @' i% f& h8 B
pLight->Diffuse.r *= 1.2f;
5 ]2 U: S3 D3 t6 D5 |- F pLight->Diffuse.g *= 1.2f;
8 d7 M3 U1 E3 L5 \ pLight->Diffuse.b *= 1.2f;+ i* m0 g# b. {0 ]
. M0 k9 n) r; A" E3 f; M- O3 n
pLight->Ambient.r *= 0.8f;) V4 W. r: V( D" R `( N
pLight->Ambient.g *= 0.8f;! o) N$ m) ~/ r% P* i* p# n- K' K
pLight->Ambient.b *= 0.8f;
1 L0 k7 }0 }3 S- K: W; s
6 f ~6 [) h9 }8 ^4 D8 K7 |+ L" d memcpy( &m_light, pLight, sizeof( m_light ) );7 U# i" X1 u0 C, q* q
( Y0 [- b2 }' c M+ V
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& G& w. \( P1 z3 [& V# Z( [5 N D3DXVec3Normalize(&(vecSun),&(vecSun));* r' u: M$ ^- Y. I
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 Y* s2 _# b5 n3 L' m pLight->Appear( m_pd3dDevice, TRUE );1 p# D+ K; G( T/ S; I) F5 }
6 g. l, r6 e5 W
DWORD dwR, dwG, dwB;
9 R% J% _2 x; A6 l( b) S/ ?1 J dwR = (DWORD)( pLight->Ambient.r * 255 ); P7 ]9 a6 `! ]1 P# H* S
dwG = (DWORD)( pLight->Ambient.g * 255 );6 f! O% i0 F6 C, J7 x" D4 b/ M
dwB = (DWORD)( pLight->Ambient.b * 255 );1 h* z7 q" h2 B
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ J+ A6 M, A0 k( Z% r3 X! u+ U) b }
! l; S, m# e. e7 M9 [% X. t }
4 d3 W) X9 D* v6 k& c$ W }) C! Z4 d* K( Z- p
else
) n& T( u4 X- _4 j# i0 |# `#endif
: D# I- ]9 i( `- c6 l
' G4 b" c# T& t7 q$ m W; r if( m_bIsIndoor )- V! j9 r! A) M7 s
{% c2 O* ^5 Q/ ]# m! w! [* m; m& F
if( pLight )
; S* X' |$ ^' K* A' e# ~8 L% V0 i { - u D( ~5 Q x
// à??μ oˉè* * L. A# @' ]. s$ x
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;' m! Y4 Y4 {* I
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;6 c4 ~3 [' m' U4 G4 I& N
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
- G8 \0 ^0 |; u
4 z6 ]3 [8 M$ ^) A, u/ Y5 p1 d // oˉè* ??à?
, q% T1 ^/ ^5 U9 h3 p4 ? pLight->Specular.r = 1.0f;4 r3 A! {$ K* I/ _8 P5 U
pLight->Specular.g = 1.0f;
1 _- h2 P7 p l* O& u pLight->Specular.b = 1.0f;
* n8 P; ?1 {5 r9 L% R. |. j // àü?? oˉè*
o5 M9 G5 U+ K, v& d pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
2 c# V8 E# p5 |! S3 \1 _- V pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;, W% J1 w: m0 a" s% ~
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 K) c7 G, c, s* `7 U
2 v, B2 A; h/ s! F if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 H" f( ?0 Q7 r2 M: b8 l6 X
{& x% i6 {, Y& S$ o/ D+ b
pLight->Diffuse.r *= 0.6f;
. Q1 P* `3 o- C9 ` pLight->Diffuse.g *= 0.6f;/ K* o: p. Q1 {0 p/ T* N5 U( d T
pLight->Diffuse.b *= 0.6f;) Z$ ~" ?4 [- {8 W4 m/ b7 F+ A5 H
pLight->Ambient.r *= 0.7f;; p% \9 t/ O" O9 m7 C
pLight->Ambient.g *= 0.7f;
S, U x6 D/ n* A% z+ Z pLight->Ambient.b *= 0.7f;
) o/ d' J3 `% ]( u# E }( i* F, ^( M; Q* r
( M* m8 X7 u! O; e
#if __VER >= 15 // __BS_CHANGING_ENVIR
! H' w9 b5 |7 y- W if( g_pPlayer )' h2 V6 P" ^# a9 ? `5 I7 M
HookUpdateLight( pLight );
* a+ J; _) v; l* t! _4 H#endif; `- C! M9 Y1 H' ]
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& l3 S* W! n, Y2 |% b6 H
7 n9 ]0 F1 M( ~; C
pLight->Diffuse.r += 0.1f;) ~+ k2 v+ _$ Q8 K$ B( H
pLight->Diffuse.g += 0.1f;
0 ~% `7 N/ L! X% d5 X% }9 K2 j pLight->Diffuse.b += 0.1f;
& p) |: G0 }: Y" U // oˉè* ??à?
1 H* o* g4 U; W) j/ J: U$ f) l pLight->Specular.r = 2.0f;' A& a; S$ K8 p. c* T; v
pLight->Specular.g = 2.0f; y" [6 ^! B9 q/ \" t' _4 S7 ^
pLight->Specular.b = 2.0f;
& L& l' b+ n8 W+ y // á?oˉ
, b( g; z- C; z8 j, c9 Z pLight->Ambient.r *= 0.9f;
! |8 X1 T0 G& m7 T5 |; U! z pLight->Ambient.g *= 0.9f;
7 j6 v+ \! j8 L9 i. V+ W4 I pLight->Ambient.b *= 0.9f;( v5 W7 Y( V7 h5 z, ^6 W1 X
2 U( F! t8 H; x" E/ D ]. k( a* e9 b- u memcpy( &m_light, pLight, sizeof( m_light ) );
+ ^1 K7 ]9 R% @4 F 0 Z% f3 n: y# B4 L, ?
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );7 I; C# L. |7 D0 A6 z
pLight->Appear( m_pd3dDevice, TRUE );
6 u/ v9 `8 c7 v$ t0 W ~
' ~5 P& ]5 h8 B+ K! [ DWORD dwR, dwG, dwB;
' S' B, ]) C0 q; m dwR = (DWORD)( pLight->Ambient.r * 255 );" ? a' F7 p2 P
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 {" ?4 e+ r# h dwB = (DWORD)( pLight->Ambient.b * 255 );% u6 B5 R i% R: Y" p$ M* Y# u6 E
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 P& k8 [' L( a- n; L$ {* u! b
}
/ F3 b: ]: A' n: t6 B1 W }0 W1 \& {# |7 X- B
else
% n: N; @" e0 J: z$ |4 g# e8 t0 | {# I9 a' i% c3 V% ~) k! U* ~- e* f
if( pLight )# D9 ?" l$ O% g M
{
0 M- ~$ B$ J" X
% r) \+ l9 V& X2 F4 c8 f. n) ] int nHour = 8, nMin = 0;* b' }0 K5 @2 |
#ifdef __CLIENT: W4 @- |9 E; H% P
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
4 B: m4 \8 {% U nHour = g_GameTimer.m_nHour;
4 E# Q$ Z4 s# v/ M$ ~. N nMin = g_GameTimer.m_nMin ;
, r6 {! m2 B, y #else
; |8 a( M% q. n! ~ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
% n7 u) l+ C9 |/ V1 C. H! G; S# x4 [ if( m_nLightType == 1 )% B/ x- \6 d$ a9 X5 v$ g
nHour = m_nLightHour;4 @# s: C: _! Q. E! m; C1 P$ V) _
#endif
( M1 L4 [4 M6 A' P8 ~( ]+ t nHour--;) i2 g' I# D: W' d
if( nHour < 0 ) nHour = 0;1 c9 k, u& V) A. ?$ G
if( nHour > 23 ) nHour = 23; @* m% p( j0 A# [
& M. F) _: \4 D" [* ?) T! L2 X* ]0 z
//if( m_bFixedHour )
: W: n( l! U/ N8 d2 H: T- f0 ^% G // nHour = m_nFixedHour, nMin = 0;$ k* {0 s' p# A. J7 Y5 O) O
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];5 N) b. {7 S2 s* y
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
# w; h" Y( v' `0 H3 e
3 n, n" B) c; `6 y, |! o //m_lightColor = lightColorPrv;7 @1 [) K- E% m
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;6 i" `4 {1 C9 k; n3 A
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
( P4 O! @1 Q9 Q; O+ k Q lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
% K3 Y; S+ m8 l( ^5 v$ x2 y: ?* T lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;( m8 H2 p, w0 b4 |$ r+ Z! _( s
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;" X( b) {# U1 N
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
7 W' ], M! u$ O" n9 E // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)7 Y* M3 u' o2 L) r" L6 N' }% s" H
! P$ v, y& W6 }6 Z- [+ d6 c // à??μ oˉè*
) |" V6 k: x) a ^$ V. j pLight->Diffuse.r = lightColorPrv.r1;
" s0 w( y2 G% Q$ d pLight->Diffuse.g = lightColorPrv.g1;
5 b- J, o; d+ y% _+ _0 E pLight->Diffuse.b = lightColorPrv.b1;' y4 o6 _! D+ ? n
// oˉè* ??à?
! d1 i6 D8 @0 t0 i8 i pLight->Specular.r = 1.0f;5 e! Q( p4 n5 `& h# V; _3 ~
pLight->Specular.g = 1.0f;! P! h, s3 ~. D* o: a
pLight->Specular.b = 1.0f; Y" ^8 j5 Z: Z0 v4 s' J7 c
// àü?? oˉè* , B) b" V3 i: ]: u% {3 X
pLight->Ambient.r = lightColorPrv.r2;5 q" w) o1 K' u5 U0 X$ [5 D/ p2 z
pLight->Ambient.g = lightColorPrv.g2;
5 V* k$ ^, k( I" _6 y3 M pLight->Ambient.b = lightColorPrv.b2;
9 g5 N0 c. _: w: m% s( x: B' j/ ^" ]6 l+ r4 O" O
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ W: M9 Y5 b" h0 x
{
% G) q3 S0 j3 ? h& u* s/ o" L pLight->Diffuse.r *= 0.6f;
: l( Z1 B [8 B4 y7 U d3 J' {& ^% x pLight->Diffuse.g *= 0.6f;
- B/ S, b) G w+ z/ b) x pLight->Diffuse.b *= 0.6f;4 p6 H% f! F0 y& \5 K2 E
pLight->Ambient.r *= 0.7f;: _- D" j& v0 ]1 W
pLight->Ambient.g *= 0.7f;9 {* B$ D( Z8 |/ I! H; g$ D- }! I
pLight->Ambient.b *= 0.7f;9 E( c5 s; o8 r) ~) ]1 L& i; F5 X+ a
}& g- i- D. H9 @7 o2 J
! z9 @6 ]! N! T% Q( v
#if __VER >= 15 // __BS_CHANGING_ENVIR/ f f2 P9 {* y: ?3 X( m; K
if( g_pPlayer )! b/ q" _6 `6 y$ i; K1 h5 `3 O
HookUpdateLight( pLight );
" N; S) E4 B3 V' R- n#endif1 s2 o7 i+ ?# n% y% p% ^
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% E5 j6 o2 r/ t
/ U: s" V4 G2 c& i! v
#ifdef __YENV
- o1 z* r8 E8 Z- [" L) N pLight->Diffuse.r *= 1.1f;
& S& Q" h _7 Y+ q& N% {) y# q( e- A pLight->Diffuse.g *= 1.1f;# _, u- ]" B# n6 ?
pLight->Diffuse.b *= 1.1f;
O4 B' v4 K9 `' {: Q% \+ `2 S$ c# s. J // oˉè* ??à?
' |6 t# ^4 O- z# s* `+ y% z @ pLight->Specular.r = 2.0f;
* q7 f& P, O: x- j! g pLight->Specular.g = 2.0f;9 w) Z. [. S/ E; A0 d ]0 g' [
pLight->Specular.b = 2.0f;
) B$ z7 q0 A- G) |0 g5 S4 E3 p& v+ P // á?oˉ % \2 t, j* T) T) n! x5 a6 T* l2 ]
pLight->Ambient.r *= 1.0f;- A/ @* P- S B) ]1 j R1 k3 h/ K
pLight->Ambient.g *= 1.0f;
4 `' p. k% L5 | pLight->Ambient.b *= 1.0f;
& s; t" x& a2 v& V; B- M2 P#else //__YENV2 C' Y+ j% ?0 T# Z4 D# ^: J
pLight->Diffuse.r *= 1.1f;
& P$ \0 T8 K3 J. w' m$ ` pLight->Diffuse.g *= 1.1f;+ R6 z8 i* R4 [* f4 {& g
pLight->Diffuse.b *= 1.1f;6 m8 V1 ?* X; `
// oˉè* ??à? % X( Q5 Q0 ^2 K6 p; |
pLight->Specular.r = 2.0f;3 d& q; P @$ k4 U1 N4 ]
pLight->Specular.g = 2.0f;
6 h$ g: N* f* i5 f pLight->Specular.b = 2.0f;
X/ a; A, l6 w) ? y1 b$ x1 d/ } // á?oˉ
^/ a2 k9 {# ~# U pLight->Ambient.r *= 0.9f;, ~ C+ D3 J" X7 x
pLight->Ambient.g *= 0.9f;0 I* k. N2 p" J) v' X# M
pLight->Ambient.b *= 0.9f;
$ m* g, t' @+ X: [4 {4 }#endif //__YENV ) s: a3 c6 W# B2 [- N
2 `' H4 F) \" T/ H9 q memcpy( &m_light, pLight, sizeof( m_light ) );; X' q$ y6 {6 k6 ]% m% ?
[. ]0 f( S. P% e4 K: { D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
# y. C: k9 b, e0 m D3DXMATRIX matTemp;+ v8 X, m0 S" y4 O* h0 k6 _
static const float CONS_VAL = 3.1415926f / 180.f;7 b' Q5 h, E4 H& U& n
& l" c" r: `" j( k
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);# m" n0 A6 \6 p) x; B
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);3 {4 ^: b* [$ Y8 F; v8 B; l. M6 x
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
- x! n) D( i, F* o7 c pLight->Appear( m_pd3dDevice, TRUE );
% @1 y/ Y4 D* y6 C
& d; A. q6 a w. t! O: Q5 X // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ P) T) d- E+ x // D3DXVec3Normalize(&(vecSun),&(vecSun)); E% p; @) R" r7 E3 m* T6 u) ~+ }
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " o$ l' V/ p+ e# H7 L; ~. ^0 k2 E, T
+ @7 w6 v7 X! U: ?( X* C. ~3 n6 b DWORD dwR, dwG, dwB;
3 m0 @4 [1 t' E$ C' D dwR = (DWORD)( pLight->Ambient.r * 255 );
' ~$ n' G8 @( ?* f, H dwG = (DWORD)( pLight->Ambient.g * 255 );
# E+ E3 i. T: c/ W/ o3 i3 }+ [ {% X dwB = (DWORD)( pLight->Ambient.b * 255 );
: ]8 o# Y0 a" l: d dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 ^1 ]) p& ]& K: V2 t0 L) G! c }
+ |4 `! s' ?0 q3 m8 L. k$ e }
" A( F% c: l2 z1 s1 o0 J+ Q5 e( V+ \0 s. \- k
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );9 x L+ \7 L5 ~# P9 E3 D( o0 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) );
( A; H7 h% d4 ^% D# I ::SetLight( bLight );! G& [; ^* ]) X& e& y5 W
3 Y a% ?/ W: }0 ]; m! w // ±ao? ?D?í???ó á¤à? / y: ~' s1 M9 Y1 P2 A
m_pd3dDevice->SetMaterial( &m_baseMaterial );* q" M0 F. E3 O' `- K, h
1 `6 a- V& M1 N& t2 N3 ]) m) L. j# L
#endif // not WORLDSERVER6 _4 Y0 p2 h9 c4 w; e: P4 W* r( T
}
) _' k' a0 u# V1 S并更换! x: ]4 G8 t- A5 j% k
Code:* I% W( `! \: T6 |
__FLYFF_INITPAGE_EXT
- e9 Q& O# s+ N" g定义3 o0 v! \1 E0 X5 K- T' e
1 ^! H# T& k, b: i$ _% A; G9 A v
5 W5 s# B, r! p M6 G. n
0 g5 l- N* y" i5 B: x$ @+ z/ Z3 \+ G- j; R4 f3 R! e
现在终于删除我的狗屁加速...
/ i2 [) x/ d6 q( N# E7 x6 A v
* ?3 a, j& c- h. L% @$ S& k) S
. P4 e* E/ i* V- ?; K1 Q& C& m2 @& E$ g, ^6 w0 V
|
|