|
|
食品车:, a5 u0 c3 X, e
尾翼:
" H/ s" g# M8 b# Z" f. A _9 S' q; R6 p( E1 R/ W
代码:2 }/ G' W, R) s- c# h4 P
CWndAutoFood::CWndAutoFood()
, }4 ]5 K0 q' i Z) v{
s) a3 p2 z0 w3 u m_pItemElem = NULL;
4 e. a& Z: G6 W5 g m_pTexture = NULL;
5 k5 _% J% K" ^3 ~ bStart = FALSE;
, H v; B) X U}8 G+ a8 j1 V9 Z# s. ?7 _
$ r' Q$ B" {3 f+ M% ~+ i7 w( wCWndAutoFood::~CWndAutoFood()
5 [2 x* C8 k* p5 h$ a! E4 t{
- A0 q) H# R- a* ` AfxMessageBox( "AutoFood ist gestorben " );+ ^* C/ P2 e; l9 p c4 ~% p
}) ] g; K6 r1 w1 L
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
! ^( I$ b1 _9 Z{
% o4 s. a, v/ i) V( ~+ x return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
7 A9 d' P; P8 @# E8 k}
* K: J! U( H+ w2 V& {6 e2 N8 K
* _6 H# S! k' D O6 S. J$ \BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
4 S3 Y, K2 K1 x3 _) j! P4 O{
& V5 K2 e( y/ J# H- B- V LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );' d# O) }% k! t f1 k% W
CRect rect = pWndCtrl->rect;
4 \( K. M% u; i8 \# } if( rect && rect.PtInRect( point ) )
% J: [8 ]- R5 b {5 M, g7 _5 ~6 n% t: v u
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );$ i8 g% W7 X1 C/ f
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
m( }$ A- s; z5 W3 m3 w k {* v% A7 O5 I. j* _: I, }7 J
if( m_pItemElem )
0 q" f- j" A9 S( j' C2 x4 _ {2 d& i$ P! d: c) A5 P: a& i
m_pItemElem = NULL;6 _& j* H% F7 \* z- h2 t
}
! Y' Y- U) h2 b# |. D# I m_pItemElem = pItemElem;
7 N( A: r: I& _2 w" K m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
5 }' D1 _ l s }else{+ ^4 Q: K6 @) Y. R# E
SetForbid( TRUE );7 Z6 g6 e! O, U. {
}
9 I, K& P( }5 H1 h: M$ v8 K$ n }else{' @0 u& J R5 ?, ?& h, T4 c6 g; n) q
SetForbid( TRUE );
. P2 _7 n6 ^4 i- M. J0 _ }3 [% F0 k2 n; T
return TRUE;
9 I; a! m. r$ n2 Z/ A}
. M6 [0 ^0 t- x/ g8 J- ?# d( K& g9 Y; ^! u# ]3 O
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 N, B, u- Z. c6 {
{
: c: q& R1 B7 V7 s% f0 p: Q7 Y switch( nID )( Z1 g3 f. ~* x
{- L+ D- H8 e5 ]
case WIDC_BUTTON3:
0 |) `$ ^& l! g5 ?; }" k$ F3 a {. P! N* D) V, Y! U
bStart = TRUE;9 E8 Y# w! G- e2 D* z
break;
* R4 t1 A+ `2 ^$ D5 t" R" { }
R! l( }) M& y5 E: g5 i case WIDC_BUTTON4:5 t, H6 u0 Z$ E$ e0 H+ ?2 U: \ c0 E
{
1 a, {% j n' ~7 @& U bStart = FALSE;8 E9 K7 X# H, a0 T: t/ |! g: H& x( ]
break;
+ K- E2 E+ P! `) l }
5 A4 ~' E. w* ^. G5 r R }2 y1 U' W' o6 P- X( \& _
return CWndNeuz::OnChildNotify( message, nID, pLResult );# ?" |0 v. \( p
}
; q1 o9 ^" A* v& t$ H5 }void CWndAutoFood::OnDraw( C2DRender* p2DRender )
% V7 B9 x' E+ U7 u4 ]{6 Z2 D: v) H# A+ q/ v5 d* M
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );, N* @" p" g8 s8 P2 i8 y
if( bStart || !m_pItemElem )8 b0 e2 @1 O% ~$ ~6 \4 X7 {
{! R( o$ \/ V* d# n3 F, b- ?( l
pBtn->EnableWindow( FALSE );
. K3 F m; z% j" P5 ]2 \ }else, o; M1 }3 p, Q k" D
pBtn->EnableWindow( TRUE );* g* M7 ^7 I+ n: y8 V" ~9 Y; x0 [0 j
if( m_pTexture )
! x6 d, u+ o1 M/ R {7 T7 u( u/ ^# L
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
/ Q3 I8 W9 Z, }- [' G3 N, H% g" r if( wndCtrl && wndCtrl->rect )
k$ q2 ~ D8 e3 _% [ {" }% }9 p, n8 h' M
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
0 w$ p/ I3 Z4 S/ [* b, ~* ~ \ }( s1 \* x- W' i3 j0 a7 f6 o8 F
}8 b+ N4 z! ?! }6 D6 @' s$ }1 m
}* M) C/ t2 b) @4 Q1 _: s, }: g7 B; X
7 M- J7 F$ _0 I6 | e+ F6 o D
BOOL CWndAutoFood: rocess()( E9 w& _& G; i* d" s/ F0 b
{
4 f* W3 z# ]$ O; t if( bStart )# S- Q% Z" w( W4 M9 `& L
{
8 t4 |7 u9 A0 O) t/ a9 q if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )1 J8 q6 _. r$ z9 P( A q3 t
{' C: L6 m' [! M8 l a$ F8 {* z4 u1 B2 {
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
( ?: y# i9 n, S/ R. m: e; e g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );4 h1 N+ o _4 T9 P$ T: \5 X. Y5 p9 f
}else{+ s! q5 m; b( |1 g2 r0 ]
bStart = FALSE;
" H; M- h0 e0 {4 G0 Q# h w2 a6 r m_pItemElem = NULL;' Q: u; z e6 t
}, e- {1 q* |& @7 `! i$ b: K
}
& d3 e1 r- y4 @ return TRUE;
4 @4 Y+ N4 K; O}
$ y4 | d) ~. c( `" p+ g; Z4 t
6 I) M3 C$ b4 U) r6 Q: t5 e3 a登录视频废话:
9 V+ h! [% o4 m/ E" E+ R( u尾翼:2 d# x1 ^0 x i% m
0 e' E1 P- b" b! G
代码:
7 q2 F/ x. M6 j" K6 Y
5 ^& j) N6 v% R0 y% {& w/ w) N- evoid CWorld::SetLight( BOOL bLight )
1 G g! ?( A7 |. n1 f$ adurch$ f% D+ T2 \$ T4 g5 N. R& {
Code:8 Z. Q1 Q3 y3 L( O3 ]% ~3 Y5 D7 {
void CWorld::SetLight( BOOL bLight )
9 @! }/ O' W6 L- C: ~% }{' W/ T: \/ K" H" k
//ACE("SetLight %d \n", bLight);
# s" d6 Y3 N) x) N& G. d4 | - v! P& \, n+ s8 e- d0 }- ?3 I
#ifndef __WORLDSERVER
$ A4 z% G% |5 H- ]! X DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
9 i9 Z) N1 K9 h; E CLight* pLight = NULL;
% w$ y3 x# y+ K0 _, C# |! ~
: B) m( [; K6 {" N4 d: D9 y D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );* X: d+ M3 _# D& m
4 I% W; x# p9 \7 O6 l pLight = GetLight( "direction" );
: S! Z8 l3 R1 E( z
7 e1 n% n( |! w. m, C#if __VER >= 15 // __BS_CHANGING_ENVIR
0 ^4 c5 h0 Z/ v0 G! f if( g_pPlayer ){, C: W# j8 K7 l6 a% T' m- x' A# n
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );. |( o# y+ b# x
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!! T3 r$ N8 @3 d. i$ ^; R# A
{
. [0 W, E w" j3 r p# C( ]" g: y if( pLight )
2 ]+ F3 m! {% I8 o8 H {
$ R) R% d* a- x" r# ~ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];1 U" r, ?! K+ t1 m. G& S. b4 l
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
, \( z0 i1 x7 O) L0 f; \+ _ ^ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];' F% O: ~) F, _: J
8 B+ ]0 A0 N, f9 A pLight->Specular.r = 2.0f;
, i# i; S. ?2 z# ~. d: m pLight->Specular.g = 2.0f;% W4 h0 [% d3 Y6 n0 _; x
pLight->Specular.b = 2.0f;% h/ H# c7 M5 o9 m0 F
( S% S2 x' k r, i' \
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];' i; z9 p" y3 l
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
- o( {$ l: z, Q+ E2 J pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];9 c% ?3 B0 C3 ^+ N; i- i* L
3 w ?2 w( f* I. k
HookUpdateLight( pLight );
+ I9 c! r( S1 N& v! {- ~/ I0 X& [# ?' h i/ h
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ f3 I4 H) W4 m* Y0 ~+ h
, C$ I n3 i9 [5 G8 J" H* V pLight->Diffuse.r *= 1.2f;, G& v) C4 n4 q& z0 G
pLight->Diffuse.g *= 1.2f;% |, m0 |( O7 p
pLight->Diffuse.b *= 1.2f;7 ]* Z* Y/ b- y8 k
" J) E+ E6 ?2 t# o: K pLight->Ambient.r *= 0.8f;
' c& m+ B( f0 c2 k+ X pLight->Ambient.g *= 0.8f;
& e$ h$ d" L/ \ pLight->Ambient.b *= 0.8f;
" U" _4 ?- D2 {8 A/ q
5 i% U6 s6 M( y* G% o memcpy( &m_light, pLight, sizeof( m_light ) );0 U2 i7 ~" f9 \7 R
" d+ m) f1 K1 s, k& ^3 E v: H
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
* z: D! p6 e6 q D3DXVec3Normalize(&(vecSun),&(vecSun));2 o0 u$ M) X% `7 O) d/ j: u6 V
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( l, A, j5 Q1 j0 [/ _0 Z& x pLight->Appear( m_pd3dDevice, TRUE );
2 C0 G2 \. ^# v0 O1 `6 T 1 |2 t& q7 K0 N
DWORD dwR, dwG, dwB;
4 L* \- Y, ~: _! {' [1 t dwR = (DWORD)( pLight->Ambient.r * 255 );
5 O, ^9 ^# @ f Z4 m# [% U dwG = (DWORD)( pLight->Ambient.g * 255 );: T |# \ Q! g9 H+ M6 |
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 y( n+ |+ J! x* c) j, w: q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); Q/ i" y% Y* _8 [+ |7 L4 y0 k9 h% g
}6 @6 D4 i/ B' j5 v9 l4 q$ x0 ]
}' ~3 |! f2 h& t2 }# `+ N8 X0 |
}! e" f/ @5 l; p% c# \# r
else
! c* f9 x# L5 E& `1 E/ h4 _#endif
& K1 o9 ?; i" z
# O/ P+ p5 L) T/ d" B if( m_bIsIndoor )
+ e2 H' W! _/ A, Q$ L {& ?+ }9 ^+ H5 D# g
if( pLight )3 ?1 s3 P# p7 \. S0 b
{
2 m- r4 \; f$ A2 O8 d2 i! ~ // à??μ oˉè* % P+ a6 o1 s7 S+ X1 @
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
& @- ~; m# n0 _2 u- ? pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
' L4 ?4 b9 N7 k; K$ v5 r pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;+ Q0 ` s3 k/ Q% B. `7 |+ R
/ w0 _; C2 I, B G
// oˉè* ??à? B3 r# \/ f. U7 t4 h) a
pLight->Specular.r = 1.0f;
$ A, l5 {) {: G0 D a j4 P7 K! T, f pLight->Specular.g = 1.0f;
% M) C% j( N4 Y' W& T7 T: h6 t, N pLight->Specular.b = 1.0f;4 Q! R6 H4 B8 X4 ~% M* p8 z) L
// àü?? oˉè* ! ~8 B! @+ |3 r) |, h
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
* b) ?( {0 v) h$ [. d. Z4 A, K- f pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f; z! \- J( v, M3 p/ U* Y. ~% D, t
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;! Q- G% P1 J o' z6 x& l
( A e' a4 f8 x7 Z# ]& V: _
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
+ r- {" i/ ^9 ]5 |# M: d1 M {- F& y) V H* I& Y9 j5 R
pLight->Diffuse.r *= 0.6f;
' E3 D9 N8 m9 L9 x2 r5 | pLight->Diffuse.g *= 0.6f;* a; x* l# H* m- {* _
pLight->Diffuse.b *= 0.6f;6 y0 K- {6 A, y9 j8 n6 z
pLight->Ambient.r *= 0.7f;
3 s" H; g/ U$ M3 \9 n pLight->Ambient.g *= 0.7f;
/ P- L+ n$ L& v1 A7 {# i pLight->Ambient.b *= 0.7f;; Q7 @8 J( ^! v
}/ {, O4 A- @2 K8 A& o
$ W( o: }, Y2 ~- D& p! H#if __VER >= 15 // __BS_CHANGING_ENVIR# D& I. L& T* N# v1 e. |- u
if( g_pPlayer )
- }4 B+ s0 j1 i5 s- J8 [1 p2 Z HookUpdateLight( pLight );
2 x/ I1 m7 a1 ^8 q; l3 A/ L- n3 F/ R#endif
6 t' ?, W7 a. ? J: ~5 B9 c2 w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 I D7 ?# S- E# ?+ s
+ S3 }& d& v% m7 z pLight->Diffuse.r += 0.1f;
9 q* n/ J, N+ L4 t1 z pLight->Diffuse.g += 0.1f;
2 p o7 [7 Y6 O% Q: ^4 v/ l6 c pLight->Diffuse.b += 0.1f;
; U& t4 ^5 A( I9 U( S+ P0 V# d' n // oˉè* ??à? . w: S2 }9 ]4 P( b
pLight->Specular.r = 2.0f;3 M# `* b$ D! ^) i Y/ z
pLight->Specular.g = 2.0f;
! K+ E& X9 R/ {+ i pLight->Specular.b = 2.0f;
# G# ^; ?1 X: r- z // á?oˉ : M0 f: q/ R! F9 d3 ~8 r; h- n0 c+ \
pLight->Ambient.r *= 0.9f;
2 m9 c, d" X3 K+ i _& L8 l pLight->Ambient.g *= 0.9f;
' r9 I. F; K+ X2 ]6 s* k8 o pLight->Ambient.b *= 0.9f;) g( d, X- z$ c+ ?5 k
- @& I2 C& Y7 f- H4 S
memcpy( &m_light, pLight, sizeof( m_light ) );
( s! x! m; @9 j0 M# f
* a2 Z, J5 a6 u* Q) Z8 T pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );" o6 {: }8 C2 D- h+ I
pLight->Appear( m_pd3dDevice, TRUE );
: |) k7 I9 D4 D9 E" C8 b9 L
; {# D( R+ S) A" T DWORD dwR, dwG, dwB;* j! l9 n6 O2 m- x: P
dwR = (DWORD)( pLight->Ambient.r * 255 );
( p- p1 k: D# x4 ^ dwG = (DWORD)( pLight->Ambient.g * 255 );4 `( d4 J& R/ w8 T& S+ }0 J
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 P* C, c" b3 H a! b/ F, x dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" ?/ e, }1 l: M. l8 o6 J1 j
}$ m% c: Y7 ^$ c3 n, N, X/ f' e
}
" N: k8 w8 G- k+ ^% D* A/ ` else- D p' t: g. q0 j8 o
{+ V$ K5 C! I( s }% R
if( pLight )
3 s" E+ B5 N0 V5 O {6 J5 i/ i1 M+ p& p C! |6 a
( |2 g- d" H" ~( o
int nHour = 8, nMin = 0;
& o/ e* E5 N! j$ M #ifdef __CLIENT
3 q) b$ o9 }( n* O$ x" }# w // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
0 d9 {8 w" B/ |, x. U nHour = g_GameTimer.m_nHour;
9 m; l# I% M! o6 T" @ nMin = g_GameTimer.m_nMin ;
( t% T) e- X0 m* L- P/ I #else2 @. R1 c" a8 y
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
( Q) F2 C) P" r if( m_nLightType == 1 ); F# Z9 z7 Z; l4 p8 }9 D0 V
nHour = m_nLightHour;
* Y+ T7 H3 C2 I' m #endif) G# Q0 t! I% o8 A8 I/ B0 k6 M
nHour--;% G# B2 [( D7 @2 K3 I
if( nHour < 0 ) nHour = 0;
* F6 \+ x; u- x& Q$ f/ g if( nHour > 23 ) nHour = 23;$ g8 o. l* d, d. x3 H. R. r
+ \9 R" {$ {# M( N& M/ i //if( m_bFixedHour ) b: E/ I g1 R' o
// nHour = m_nFixedHour, nMin = 0;4 T1 b& d* M3 g
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
* Y2 b4 t/ B% n: G1 d7 n LIGHTCOLOR lightColor = m_k24Light[ nHour ];
6 k$ V/ y7 L* j: F
- v; q$ Q# F- C6 a+ R, r! D7 o //m_lightColor = lightColorPrv;! _2 S$ n( `. F$ i5 r5 z: X3 p1 `
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
" z2 X1 q, a( M3 g lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
/ }# K( o- k5 g$ y( v+ x lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;6 q; B q2 A* E
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
" L: y2 @5 ]% E% {3 I( _5 U& v8 w* X( o lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60; o: F& I6 n$ f1 @* `
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
# q% L$ ^+ s5 h+ m0 ]' G5 |7 U // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)' ^6 C) `9 F/ [$ M# u0 H a W* u
0 O/ U5 T6 D- ^6 x3 g V // à??μ oˉè* " b t$ G% j4 p2 S
pLight->Diffuse.r = lightColorPrv.r1;9 S2 M! K! F. g0 \6 ^# [" r' }
pLight->Diffuse.g = lightColorPrv.g1;+ g7 |+ M% Z4 P/ L/ m" O9 ~% O
pLight->Diffuse.b = lightColorPrv.b1;) D: [+ M$ B* L* a: _# V1 m2 _
// oˉè* ??à? - m |& c) G" T. F8 I
pLight->Specular.r = 1.0f;
6 |0 y. I D ]/ c pLight->Specular.g = 1.0f;3 }2 E9 L. O% c4 `) F
pLight->Specular.b = 1.0f;! R9 D& _) m( X. j! {
// àü?? oˉè* 8 s( r6 a. ^1 x# `3 R5 Y" @3 g* R$ M
pLight->Ambient.r = lightColorPrv.r2;
; B- ?$ c- U# v$ c+ K. k( B0 q pLight->Ambient.g = lightColorPrv.g2;+ o+ U# W: P \- a/ G5 y. \4 y9 ?
pLight->Ambient.b = lightColorPrv.b2;
- D H/ J/ V+ v0 V& {# X) S
n$ D1 P" q% d) e) c" z if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 C- C/ R8 _4 n* U, o
{/ B" B/ @: m& P( o$ F" H
pLight->Diffuse.r *= 0.6f;- g" a9 r* v3 ]% W6 ~/ f
pLight->Diffuse.g *= 0.6f;
; I* V" k ^3 L' ?/ u pLight->Diffuse.b *= 0.6f;/ I. m( U9 s8 G6 f
pLight->Ambient.r *= 0.7f;/ C Y8 W0 j9 ~7 F# R
pLight->Ambient.g *= 0.7f;
1 r' C5 o$ n. R pLight->Ambient.b *= 0.7f;4 O5 M/ b9 e9 ]0 b8 A
}. H. c4 ]0 D7 _* h
! y# H3 Y' Z" S9 l9 j6 }. m
#if __VER >= 15 // __BS_CHANGING_ENVIR' d5 S9 H5 q2 s9 @; r/ t
if( g_pPlayer )
5 m/ {, l1 B- T1 [ HookUpdateLight( pLight );
' \# t3 L3 B5 B/ m& u: D' u( z; Z" Y3 u& T#endif
% v! P) Y {; O+ x4 L4 T& k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 F9 u, w' p; h, d) P
7 w3 f" s7 g6 A; i#ifdef __YENV) V {* J6 O! F% u$ Y9 w0 \! O: v: |5 L
pLight->Diffuse.r *= 1.1f;
Q) q4 h" d+ B3 B8 \ pLight->Diffuse.g *= 1.1f;
( g! X7 I# x8 O pLight->Diffuse.b *= 1.1f;' a; E0 r) X; R0 w1 G4 h) e" M/ O
// oˉè* ??à?
( \: T% L# S! T! k* { pLight->Specular.r = 2.0f;
8 ^( ^! }3 B$ A! ^' q& n/ J- H pLight->Specular.g = 2.0f;
6 x- p1 E- z0 V8 T/ o4 ~ pLight->Specular.b = 2.0f;- z0 a: T/ r0 y5 u2 l3 w
// á?oˉ ( C$ r3 |6 N$ n! O1 \; o$ M5 k% u# l
pLight->Ambient.r *= 1.0f;+ D6 @ R8 p2 f# ^0 p
pLight->Ambient.g *= 1.0f;
- d# `- Q- F1 B9 Z& F0 w/ ] pLight->Ambient.b *= 1.0f;
3 R) ~! F1 u* k9 a4 s2 F#else //__YENV
2 c+ n) x9 S) ?) r& G0 c* w pLight->Diffuse.r *= 1.1f;
0 C* z9 Y9 _/ e0 \$ l& [( E5 Q0 Q pLight->Diffuse.g *= 1.1f;
0 I2 N& F: s- t e# N pLight->Diffuse.b *= 1.1f;
, d# V: z1 k+ U, {1 Q4 [ // oˉè* ??à?
) e! R/ ^9 B( j6 Y0 F5 O pLight->Specular.r = 2.0f;: Q' w L* a" N& X
pLight->Specular.g = 2.0f;
! b; X7 c0 j* N! I6 w pLight->Specular.b = 2.0f;$ ?3 Z! Q5 U1 v8 J( t. Q0 D, W
// á?oˉ " U0 T; J5 h, _1 f9 @! a
pLight->Ambient.r *= 0.9f;/ T% p/ K; A) T) y- Y+ m
pLight->Ambient.g *= 0.9f;7 @; V2 j6 p0 E) k( I" L w$ Q
pLight->Ambient.b *= 0.9f;# A# c ^5 s' D; U
#endif //__YENV
, O2 l, x6 \$ i3 [6 r2 L
. M1 }9 k& U# U memcpy( &m_light, pLight, sizeof( m_light ) );
/ q( a5 ?& d6 p. y3 c5 L
Z6 p! z5 p* R D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);( G: S u/ H( U' K6 u" d
D3DXMATRIX matTemp;6 Q1 X( f3 P3 j
static const float CONS_VAL = 3.1415926f / 180.f;
6 j0 |+ Z: F( ^6 O8 x- I
, [: M6 X" g; X" S- }8 i D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
" f2 C9 P6 B3 X8 v+ X D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);4 T; F. w7 |6 _
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); # v$ S4 ?3 f2 J% J
pLight->Appear( m_pd3dDevice, TRUE );
) s2 s. Z. p. l4 l( h1 U$ F- r& B, I% _
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! ?. B; i. q% }" N2 c
// D3DXVec3Normalize(&(vecSun),&(vecSun));
; [" R* E! x+ q& g- o' z" d // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- ~$ t0 s: i" h# I5 g3 C" F/ n% @ E7 \% q% e! o
DWORD dwR, dwG, dwB;
. B* W" K, Y9 ~! X6 W5 L7 h# t9 M5 G8 M% \ dwR = (DWORD)( pLight->Ambient.r * 255 );% q n6 N6 i ^ z
dwG = (DWORD)( pLight->Ambient.g * 255 );0 _4 }* _9 |' x7 {' E: B h
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 n2 q, d; W$ N7 Z1 v dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! s# Y" B6 n/ J* l! k* w0 r }
$ n/ w* D7 j! W }
/ O2 H% r) w& w" e/ e" R* |3 M0 F9 W1 a
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );2 t+ [" s% e( A8 Y
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 _8 l6 ~) _- n6 D. S w ::SetLight( bLight );" Y1 @5 x+ ~6 W$ v& _
. c1 L5 w, S! n, H3 L+ K! }" G1 }/ v
// ±ao? ?D?í???ó á¤à? - O5 l7 e; Y/ a
m_pd3dDevice->SetMaterial( &m_baseMaterial );. w- L, t2 a: H
0 H' s% r5 Z _3 ]7 Q2 u
#endif // not WORLDSERVER
% t: F: X. Y( J}2 Y8 [" N) d' L k+ {
并更换2 I$ c# Z; Y p
Code:
+ i6 B% w) ?, b/ S4 j( |- ^__FLYFF_INITPAGE_EXT
/ l! v9 s+ _5 O" b定义
- ?" J0 J. m6 p6 {0 y# Z8 w L
, R9 L3 z2 R+ [$ b; B5 n) b8 |$ u; k/ x
+ x% b- G1 ]0 p) `. ?' s
7 r4 s' Q& }& K6 ^3 N3 ]7 C$ I
现在终于删除我的狗屁加速...* |0 m; e$ f) y/ [+ Z8 H
! V8 F" X) x! g! J; X# p' m
' r+ z- p: t' k6 G' H$ G, E
4 r6 Z n) R4 `. U7 \( w0 d- P
|
|