|
|
食品车:! w- g' ]% }1 E8 H* E! b
尾翼:
9 w" }% ~( E) G% L+ g! k( e, t) y( g* D. u$ z
代码:2 z6 w) I0 [0 K2 c/ H
CWndAutoFood::CWndAutoFood()
0 ?' W5 w2 ]* F{
, x* ]4 h r7 D7 Z0 a/ k8 [1 t- c2 i m_pItemElem = NULL;
; x5 Z' |8 y5 z* Q j m_pTexture = NULL;$ p% y' A: f" p9 j( B/ ?
bStart = FALSE;
9 R# N! \5 e1 w; q% b; N}6 u8 L5 W6 K. @* `) r# \
/ ` R6 F) G! p+ G* i# X6 c/ c
CWndAutoFood::~CWndAutoFood()! a* r2 T3 i. Z' M/ D9 G
{
- z. T6 \! P' h6 p AfxMessageBox( "AutoFood ist gestorben " );7 a( ^: m' g+ F, z
}6 Z5 h9 {0 v4 O- m$ E h1 |
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
# \) u. m$ o, l! i{
# K2 r7 m/ V5 K+ Y) X return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
+ p, C: A y. N! Y7 t}2 x3 ]; Z4 W8 ^$ O/ X& J
; {- Q! c' W. B+ T0 J& l, b8 FBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )7 x8 E3 \+ Z+ i) q- C4 {
{& p; M5 J. F% L# `7 [
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, }9 J; }2 R/ _/ ]$ b6 H. [4 o( U CRect rect = pWndCtrl->rect;% V4 I; w. T, ^% s- b, B
if( rect && rect.PtInRect( point ) )7 b) y5 E$ h# P
{
1 v* \8 D% H0 A$ \' ~2 E CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );( c; f- o4 e1 ?6 Q: y o
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
3 U, g0 n6 c0 n& {0 l" o3 m( V+ Z8 j {
* T9 l. {; ^; D9 i if( m_pItemElem )8 }' S* }8 Y/ e1 b+ H
{3 V: k; g' M+ ?& k0 J8 {6 c6 z8 J+ t; D
m_pItemElem = NULL;- ^. w4 a' U5 P9 ?. k5 k% [! Y
}4 W8 H! ]9 K% _: ]$ x
m_pItemElem = pItemElem;
[: J5 m; i& f2 T: @& K+ b m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );* A1 C2 w/ z$ i$ m" e% o
}else{6 `9 C5 v& L7 @! U
SetForbid( TRUE );4 U0 j; u9 d' M- a; R
}
w4 y, q' C2 D5 N& ~ }else{
; e6 p8 n& O; e9 B SetForbid( TRUE );
% X7 w u W2 v }4 [7 {9 V, F. k5 p ]# R; B
return TRUE;
' _$ X1 i' {7 o5 J}
: Z. A2 }9 d# `$ Z" }: X/ l. W$ s, n& e# w
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )( p Q2 F+ h- n! _7 O/ p2 g" G
{
$ e. Z2 z3 Y" X& u" T1 H3 B0 d, P switch( nID )
; ?! _! T Y8 Z6 T {
O& b, m" j8 O+ z$ E- l! g( Y case WIDC_BUTTON3:
7 Y; b* K6 J5 L3 @" N {1 j& T1 r0 G0 g8 m
bStart = TRUE;
: b2 W; Z% R6 \' u; ] break;" t5 m6 ]: U) E! [
}
& r, ~1 e) _, N0 A6 o* o3 G8 H case WIDC_BUTTON4:: @& m% _( j# N( W8 T2 K# i
{4 D6 O# T( P y! T. I) w0 i
bStart = FALSE;+ Q2 c$ i+ N; ^, t( W& Z8 C! g' x
break;; m9 C2 \( F: W# Z7 l" W
}
7 u2 y7 D, l/ c& `% g( ^2 X }
9 \! M7 Y9 Z0 @ return CWndNeuz::OnChildNotify( message, nID, pLResult );
V7 r! u3 z# ~$ I D}
/ u$ v5 p- W i1 m' M- wvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )! K' c8 Z( `- W' s
{7 o5 m/ X* \' h6 n
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );; U+ S6 T, g% G" H5 S7 C7 G
if( bStart || !m_pItemElem )
/ X) j/ c# [. m4 S4 f- g {
2 S) C! t2 r+ Q8 x: l pBtn->EnableWindow( FALSE );- Y# s9 S! c2 H- D& \# i
}else
/ m* N# @# T: y2 h6 [6 K/ y pBtn->EnableWindow( TRUE );
8 i9 ?0 g4 d/ c0 F j if( m_pTexture )/ y) g! A4 X' u$ J2 p0 L4 L
{2 f1 c9 Z) t5 k$ A. }( o. l; o
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
$ @7 m2 `- J# [) t6 L2 l if( wndCtrl && wndCtrl->rect )
0 {3 b3 g9 _* ~/ q; I* b, E {2 d# N" x$ H" r, Q7 p
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
$ z% E% K3 J7 P. P }
* C5 C" e9 X2 M* ?5 R }+ p. k/ f2 V+ g* [$ g, t9 Y2 Q
}* x, R" P3 x# V; r2 C/ _3 E
" l6 y7 t$ ~0 s( v5 o
BOOL CWndAutoFood: rocess()1 `5 a& c0 d; f( ~4 T
{
8 o A" [8 N0 | if( bStart )( n" X+ L; \ g. v. S: A
{# f! T$ @7 y, v
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )! K6 }" a2 U; @' ?4 K0 z$ j2 y- u0 A8 \" s
{
: P) k& `% ?' ~) Y+ m6 R# i5 t if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )( L4 Y9 y: I7 f
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
' t" [3 |% S* e1 n( S8 W! z$ H }else{
2 A8 X/ a; p2 k7 W, D; g4 x. a bStart = FALSE;7 ]# \9 \/ e2 e" E1 [$ _+ F+ j/ T
m_pItemElem = NULL;
, {$ y$ C7 u" m& x/ v _1 J, B' @ }
B) q( I" F7 T }
! k! X$ [% ]0 U2 S+ ]2 ~ return TRUE;
! S+ w; ? M, b: K9 Y}
1 S9 r8 ^$ ~' H5 S
) v; b+ R6 F) T6 z9 F! K登录视频废话:! x1 _6 V' S* N
尾翼:
' O3 e. T t; Y' C; Z" ?& k" H1 I' d! s9 K c7 i
代码:
. W, M+ A/ z$ i, R0 G; i8 n
8 }; A1 k( I4 L7 v# p3 |void CWorld::SetLight( BOOL bLight )
' h; v" c- p4 k" O: ?& @3 I6 Qdurch! J1 [" f2 N5 B
Code:6 O) v. r1 y$ |# x$ X$ I- I
void CWorld::SetLight( BOOL bLight )
/ z `& m/ k: }% c3 @9 ]{
- {) j# p1 t, H9 s+ D* }9 q# h //ACE("SetLight %d \n", bLight);
, f* g- |8 B5 U! e. z # h% P/ Z7 U- I; ^- c
#ifndef __WORLDSERVER ! @% }1 S5 H8 n8 E& s; D9 X
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
' ]0 |2 @# a8 j) U6 W/ D CLight* pLight = NULL;& r% R: m' h& C- o3 Y
! _8 l5 k' c! @! l) M D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
a: Q; K* [& y" X6 V$ X% a- M0 ?! l5 {: x7 T
pLight = GetLight( "direction" );
5 A7 q! I' ]. N. H P: Y' b, r# l$ Y
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 g) J; A' W- R' q! L if( g_pPlayer ){ B; J* l9 |5 J i( ]
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
4 j1 M$ T: R5 a: ~9 o: x if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!- J- s% _9 T4 S& w
{7 s" D, s+ n6 b/ x U [
if( pLight )
8 o9 D7 T* y& Q" x5 Q {
% u( h3 m! T# N1 F: E4 P pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
K2 X% B# I1 | pLight->Ambient.g = pInfo->_fAmbient[ 1 ];" k) _7 p$ E& [5 W4 c7 ^4 ^
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];, @# C2 f1 B& E- A% r* t
/ K3 t; m. I& A9 M$ p4 W pLight->Specular.r = 2.0f;" _5 T, G* I- J: q
pLight->Specular.g = 2.0f;$ M* {8 v: D8 f+ y* `
pLight->Specular.b = 2.0f;
" n s4 R. t& k. R4 x + c( S, Q8 L5 {" j: l# e1 V; W3 A
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];; n" e- K4 @( {1 K* [
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];1 |5 q* q. H) X/ C5 }
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
$ W& p' c( ^2 }$ P+ b: j - M8 @& n, n' b
HookUpdateLight( pLight );
3 I9 N4 Y8 G W/ r
% L( M4 o7 \' z: L9 F memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% p* S2 J- v6 S' h
% J+ `2 @$ z" X" P. V
pLight->Diffuse.r *= 1.2f;
. z' c1 r" g& L pLight->Diffuse.g *= 1.2f;
* x/ S% @ J: h7 h$ ~5 \ pLight->Diffuse.b *= 1.2f;5 A, R. }( P# `8 Y+ p
4 X0 [) K& h( b* a$ a
pLight->Ambient.r *= 0.8f;/ n. B+ i$ Q3 z4 t% P# y
pLight->Ambient.g *= 0.8f;
) w. ?2 ]$ D2 v$ r0 v6 E pLight->Ambient.b *= 0.8f;0 i- t1 v5 t- d Z( I
+ e' D% ]: q9 n memcpy( &m_light, pLight, sizeof( m_light ) );
4 `, h. A; V7 j" k7 k- M
/ ~$ @+ F4 S: m- o4 V v D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
1 s9 q' O( r. T4 J+ Z1 j D3DXVec3Normalize(&(vecSun),&(vecSun));
% S- G" K5 D; l+ b* V `$ f7 o pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / \- V x$ J5 j5 ~1 T3 T
pLight->Appear( m_pd3dDevice, TRUE );
" W% E: Q1 ~6 ~ W' y
7 W) i9 ]* W9 J: ]6 G' m) Q DWORD dwR, dwG, dwB;
7 q: d+ d- l2 Q! _$ f dwR = (DWORD)( pLight->Ambient.r * 255 );2 u4 D; `" c. Y2 V7 ]" y
dwG = (DWORD)( pLight->Ambient.g * 255 );2 }8 Y# m+ J7 s7 t1 S9 u
dwB = (DWORD)( pLight->Ambient.b * 255 );$ _1 y! U3 y# I
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ |0 r' v" `3 B: R
}
' K d j1 r5 S* e/ u }! V0 {( U5 m8 p6 [. o% X8 @+ x
}( C3 h r5 n; @8 B7 M6 k- l$ L
else! n9 J8 ]) R \4 s! {" U) o
#endif , E! G# {6 q0 N# a4 x A
3 j0 D% X! F! Y0 T5 R' R8 v if( m_bIsIndoor )
3 e( V) N0 k6 B* e+ G' O5 m+ S {
3 T3 a/ I7 }9 j' ?# M if( pLight )5 f+ u5 E; J- L6 R7 v
{ " [% z$ d, \( J
// à??μ oˉè*
: B: D& k! M0 m( T" V pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;! c: F' C- O G: i
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;8 i& J& t( W, G. A8 k0 f& D
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
4 e* Q4 U8 }& i' W6 R/ [
7 Y4 x+ y9 p" @. v, b( E7 h9 O // oˉè* ??à?
- J* D# M5 Q9 D& e, } pLight->Specular.r = 1.0f;9 K! j+ E. ]$ X+ \
pLight->Specular.g = 1.0f;
% d& M/ Q/ X$ V3 Z+ Q4 J; a% h* F4 ? pLight->Specular.b = 1.0f;
* Q! n& u. e9 y+ ^% n // àü?? oˉè* 8 {' M0 C; j' {9 H8 ~' L
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
+ t/ ]& H6 a( D# A& p8 u6 ]5 A0 ` pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
: D4 B8 N* F8 C4 Y pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;; V$ V3 m' v9 H. p( K( N
; U0 i) ~/ R3 T1 O# z) J: f$ P
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 q# ^/ }# J+ O {/ ^: u0 r/ u! @; M% B7 D
pLight->Diffuse.r *= 0.6f;
+ R+ M; t* W: B- q3 n* m" U( B pLight->Diffuse.g *= 0.6f;, Z$ M N# q% U: g3 C* n3 \
pLight->Diffuse.b *= 0.6f; u Z- b& ?- ]( T: b& z3 [
pLight->Ambient.r *= 0.7f;, u# u6 H, O) m: Y* d
pLight->Ambient.g *= 0.7f;: S" T4 M3 Z" S1 h, K
pLight->Ambient.b *= 0.7f;
, j: u) F; w/ b2 N9 C9 A }* S4 k+ h/ e4 e+ n# q) a' D
4 @3 P1 Q* C0 y% \. V, v$ C
#if __VER >= 15 // __BS_CHANGING_ENVIR& L+ Z [/ y" z' v
if( g_pPlayer )
0 \ t" O. D! J7 }! i: t+ | HookUpdateLight( pLight );
0 |% P+ U2 R% g3 b" R( G, X#endif$ r& m6 w3 _& a7 I/ _( s! S
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" r: u# O) W" ?7 H' b8 T% ?: W6 I+ Q. S& C# V( c
pLight->Diffuse.r += 0.1f;
; F- Z0 r5 X) h/ A0 C% T# t pLight->Diffuse.g += 0.1f;
( J% \7 o' u7 [ pLight->Diffuse.b += 0.1f;
9 [& O- o$ e! ~7 G4 y // oˉè* ??à? 3 `+ |+ U) N+ C0 t* y% ^5 ]
pLight->Specular.r = 2.0f;
3 E$ \1 T, m n* ^* [/ Y! H pLight->Specular.g = 2.0f;6 G1 B! `- K0 f a
pLight->Specular.b = 2.0f;6 R) n+ z: k( [! D+ T! s6 U7 [1 i ~3 s
// á?oˉ
# b2 s7 g: B7 L pLight->Ambient.r *= 0.9f;# [% `" G i- I5 v2 p
pLight->Ambient.g *= 0.9f;
$ C( t, E m( w7 H9 M& [3 o pLight->Ambient.b *= 0.9f;3 b" k) G. ~* u1 K
% S" K- y0 c* W; _' f9 g& b4 f3 q+ q memcpy( &m_light, pLight, sizeof( m_light ) );
1 y9 j6 u9 O! h- E+ u# a- U3 K
. r8 Y- B" A4 m7 `% M. u1 N& M pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );3 b3 ~* b% M2 x% U% Q
pLight->Appear( m_pd3dDevice, TRUE );$ N1 x1 V- Z. @5 N3 Y8 {8 m( V p
9 Z, z0 J \0 O+ d: L3 j DWORD dwR, dwG, dwB;
8 ?2 F6 J6 A# @5 A2 X/ {' ^ dwR = (DWORD)( pLight->Ambient.r * 255 );
) \5 p1 C- z" B8 g( E dwG = (DWORD)( pLight->Ambient.g * 255 );! f/ K" g# ~4 W, d4 H7 \0 d, E8 X
dwB = (DWORD)( pLight->Ambient.b * 255 );
+ Z/ R" I( ^! O: c9 v& |( v; s dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
1 I T' Q' {3 h }& j( n( s: A. ^' G/ G8 p
}
$ `" W$ |7 a4 Z4 {. m2 b; x else
& Q- n1 o0 d" V0 ~ {
: C( L; a/ O/ p [ K1 A if( pLight )
% F+ p% P) _) _, x& }9 ~( h {
! e* w) V' b7 `& @ * R& Z: S- ?# V3 e& a0 q$ t. O2 T
int nHour = 8, nMin = 0;5 X5 |2 P* }8 j! R0 J" n4 t6 [
#ifdef __CLIENT y5 F0 D3 S/ h" @+ p
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
/ w1 G6 e h8 b8 b nHour = g_GameTimer.m_nHour;
8 `: n9 x2 {9 r. C. H( N nMin = g_GameTimer.m_nMin ;: x4 q: ?# j% K( [! }2 ?. y+ p6 J( Z
#else" S0 @4 B" Z. t- P1 v
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.9 Q& L1 C. V9 Y3 B( L- U& s
if( m_nLightType == 1 )
/ Z( t7 c6 F$ _- R nHour = m_nLightHour;
: A3 W8 H# ~$ {' |, V2 F: l #endif. J# {9 N J6 }' I+ g: K
nHour--;
6 {" L1 I) j! M if( nHour < 0 ) nHour = 0;9 s$ l8 S" V# X8 j# A
if( nHour > 23 ) nHour = 23;
, z& G q/ J' O: S% B W: S" d3 F+ ?. l, a' f0 p* D N
//if( m_bFixedHour )6 e6 k! _6 o& W' V; {
// nHour = m_nFixedHour, nMin = 0;
, C5 e9 E' T( T' r5 {7 r LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];) v6 j3 x1 O1 @! b' s2 F3 V
LIGHTCOLOR lightColor = m_k24Light[ nHour ];( e0 n! s+ m* C' s, h
! Q& z9 J1 F4 t' @; }/ ?
//m_lightColor = lightColorPrv;( B) r" E* C. G
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! }9 N0 n/ x1 [( M* Q! Z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% l1 S; [* N5 E5 r9 t lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
& ^* J H4 K0 d0 i2 { lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;5 {! L/ |4 ^/ P) v
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
$ A1 X* H) ^* d r+ ?# F lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;1 J, E7 [( |# w
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
6 {- |: @9 v$ \8 B2 [
# [* @" n. Q# @ // à??μ oˉè*
' I5 V: ]9 [' P- p- ]5 k pLight->Diffuse.r = lightColorPrv.r1;1 `& s- D3 b4 x$ [
pLight->Diffuse.g = lightColorPrv.g1;
) P% u' k/ v7 T1 s* w& Q pLight->Diffuse.b = lightColorPrv.b1;; v( a% b; p) Q! Q, \! k/ }7 J
// oˉè* ??à? 0 O; k4 w6 G9 ^
pLight->Specular.r = 1.0f;
6 X" H, f/ B* O/ _ pLight->Specular.g = 1.0f;# O' B, y" U2 c/ ^! S. k3 d4 Q. O
pLight->Specular.b = 1.0f;0 |* a2 M6 ^. V {1 t
// àü?? oˉè*
@( S$ Y: X1 x; h+ P# t pLight->Ambient.r = lightColorPrv.r2;
8 E8 Y* C, L0 k+ q. h pLight->Ambient.g = lightColorPrv.g2;
( Q$ d: q" U; Z pLight->Ambient.b = lightColorPrv.b2;2 Y# b# b! w" o) a, a* `
9 G; s( _. ` R/ S4 S1 i8 t) h" z
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 u2 J8 Z" T- Q9 W: m
{
* q S4 j. r+ v# H# H9 j pLight->Diffuse.r *= 0.6f;! R" O7 H) a$ {7 U9 F. w! a
pLight->Diffuse.g *= 0.6f; k7 _6 G O9 L9 z% q8 e! P# O/ ]
pLight->Diffuse.b *= 0.6f;8 K9 R1 ?6 _7 i! }7 W4 H* @
pLight->Ambient.r *= 0.7f;
/ M S- c/ J$ Y N pLight->Ambient.g *= 0.7f;
. r7 |4 I( N& H7 r9 M pLight->Ambient.b *= 0.7f;
8 S3 x9 e9 M8 ?- t# o- S }/ l# q" A$ M8 `1 t1 Z: C# R
$ ?; Y, Q$ [* h- M- S* H#if __VER >= 15 // __BS_CHANGING_ENVIR1 r/ O& _7 Z _! P/ q' \' N
if( g_pPlayer )
. ]* d* r; V1 l3 j/ U0 g HookUpdateLight( pLight ); : A9 f7 [) \) V' X: q7 E
#endif; p2 p: f0 ]' s6 ^) V' q% O
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 {& X! H( ]* D2 }/ p7 B
) T+ k% C( q: T; O/ `#ifdef __YENV
; z+ @; f2 _2 [9 k/ x% B t6 Z2 X2 w pLight->Diffuse.r *= 1.1f;& g& W% [% j& S7 H8 G, R: y s
pLight->Diffuse.g *= 1.1f;5 x+ D: O% X+ a/ R- _) w' S
pLight->Diffuse.b *= 1.1f;4 M' T( k& `; b
// oˉè* ??à? 4 r. y' ?8 q( m9 H% E
pLight->Specular.r = 2.0f;
% _. E) q+ f& A" K pLight->Specular.g = 2.0f;2 R2 o) e8 O+ E: L7 H( [6 p
pLight->Specular.b = 2.0f;
0 M6 L& }8 C% `3 f) @ // á?oˉ
& Q$ |' i/ w8 r3 C: E pLight->Ambient.r *= 1.0f;; W/ I5 M' R+ ~$ W+ n/ ]/ q5 n
pLight->Ambient.g *= 1.0f;
/ F8 {4 p7 k2 a2 _6 n1 z1 ^ pLight->Ambient.b *= 1.0f;& H7 V) u* @ c9 t
#else //__YENV
0 @- v$ J+ s: s4 Z. \$ H) R# b+ L pLight->Diffuse.r *= 1.1f;& l. `2 h/ `2 ?6 ^& E% p# R6 p& G ~
pLight->Diffuse.g *= 1.1f;, C; e3 {7 f% j0 S: k. X/ \0 J
pLight->Diffuse.b *= 1.1f;4 ~! W& f! G' {6 j
// oˉè* ??à?
; I. }9 C0 P2 @6 [8 Q0 U pLight->Specular.r = 2.0f;
/ p; ?+ Z7 }7 M8 o! A pLight->Specular.g = 2.0f;0 q. J2 U( [) g
pLight->Specular.b = 2.0f;" m) B9 g- y. U$ j
// á?oˉ
N1 O+ L" }; l# k; ?( X pLight->Ambient.r *= 0.9f;
1 d1 M% J$ O( J \5 q0 J8 w2 M/ P pLight->Ambient.g *= 0.9f;( I. G4 C$ x7 d
pLight->Ambient.b *= 0.9f;& u4 g# w7 q1 m0 P1 l
#endif //__YENV ! W+ q8 {3 i1 E7 F E5 z
7 n, D2 q. r' I' R memcpy( &m_light, pLight, sizeof( m_light ) );, w9 p; s2 H/ `% ~% q. m' `
- M0 | ~5 R+ Z! { D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);! B$ p4 l: \( _2 o9 k
D3DXMATRIX matTemp;5 M |/ \$ i8 A7 }& `% F3 S
static const float CONS_VAL = 3.1415926f / 180.f;) \, Q' m% ^0 w) n0 ^
' U, q# ^0 K/ ^9 e( J D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);4 t2 x3 l* o+ ?3 [. V. f8 V
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
2 J9 D7 S8 h2 Y# ?- Q7 w pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); . h; ^( N0 U k! A' x4 E
pLight->Appear( m_pd3dDevice, TRUE );
& e/ |. s7 u# D$ L2 |$ r3 B; l% i: S5 I
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
8 ~7 h7 i$ x3 g0 a // D3DXVec3Normalize(&(vecSun),&(vecSun));% Y; ^! y- b m" D% _+ H+ [
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 1 p) ]3 Z7 G J5 r6 E; n1 C8 g
: @4 c7 K6 N. R3 S+ r/ L
DWORD dwR, dwG, dwB;
9 R, b) Z4 i5 E% B/ ~ \ dwR = (DWORD)( pLight->Ambient.r * 255 );, d$ {- p) ^1 c1 x# o( P, a; a
dwG = (DWORD)( pLight->Ambient.g * 255 );
8 ~( r: M# o6 { dwB = (DWORD)( pLight->Ambient.b * 255 );
+ V9 Z$ p, Q3 m0 p. g8 w' U dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 4 T0 [" a/ _- G9 j
}
8 o8 @- q# `& P0 j5 M1 q }8 X" u% ^' ^9 X4 A' k. ]: n
( C* h7 d" S$ Z1 u5 Z; ~: Y m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
z# k% Z0 ~5 g' 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) );
8 Y+ N8 d1 y, A# _. |2 B4 J# u; u ::SetLight( bLight );
& w/ G1 E) J# P0 J9 o6 c0 r
X% B& i$ h- u6 G* I- @; V // ±ao? ?D?í???ó á¤à?
7 B( n4 m O9 c1 `/ j8 d1 t R1 f% | m_pd3dDevice->SetMaterial( &m_baseMaterial );4 {' q2 e4 [& r0 i
( t/ N2 e7 r: r! @/ p#endif // not WORLDSERVER
! U7 H1 m) c: f* N& U4 ]4 U8 u}$ t/ I# b o" e9 X! j/ m7 k; F1 S- `
并更换
5 ~, C7 {- @" RCode:
9 R+ q7 K$ Z: _% g3 \__FLYFF_INITPAGE_EXT7 u7 y& V: K# W- D3 m" g
定义
5 _ o1 O7 N4 z$ F6 M: R, q/ G( g) z" ~! C0 p
4 f z& R9 r3 f3 N+ x. Z) Z( X0 t) r) f5 Q
% j- y9 R+ I! P8 X* w
现在终于删除我的狗屁加速...
+ {: A2 f; e `6 k
" @1 I2 P- F! r0 W0 v/ x
/ g6 a4 ?9 J4 a* }. n: ]8 O A9 P
% E. s* P$ ]+ T |
|