|
食品车:: d) M" z5 F: M# W
尾翼:2 ?8 B6 v9 U6 o* s
0 |% i% S' X( ^1 e0 i; U
代码:2 q7 B5 v1 }# j, M1 S, ^5 k
CWndAutoFood::CWndAutoFood()$ f' K) `) }: _" Z" W' @' x2 v
{
+ m4 x% S# `8 k- t- r/ n0 D m_pItemElem = NULL;
5 [; n) W' u& e3 h4 ?9 s6 t m_pTexture = NULL;4 J+ X$ ?% Z) w6 W
bStart = FALSE;6 w+ w; o5 F9 q0 Y
}/ s9 ]9 Z$ l. o8 C/ e0 {& p w
8 Q, f" Z- i6 R, |) W9 s: Z6 u- H
CWndAutoFood::~CWndAutoFood()
, p( H9 S1 _& F6 e{- z A- H8 ]8 d: k6 ?
AfxMessageBox( "AutoFood ist gestorben " );
* q4 O, z: ?" J1 s" c B e}! ?9 [- {$ o9 o" g
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )2 V1 g/ u+ g* H% K# |& d2 Y
{3 U% Q2 R. e3 R
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );& m1 d: g u* X) j& \0 H! J
}$ d' D/ h$ b6 i& {' P
1 [; k d; z+ O! qBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ). D, D, D) |, _+ H" M, i7 g0 W
{! {- v3 X3 {, {9 v o& r" j
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( V8 a; b$ V+ D- y CRect rect = pWndCtrl->rect;
! A; t- x7 c! ]" u6 Z if( rect && rect.PtInRect( point ) )
9 _. h: q: n, y, M- r, y; u {
( n g0 V8 \0 z CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );6 Y7 \6 K% v$ V4 X6 i
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
. [" f8 r* r: m. o4 Y$ ` {0 l6 N. [$ C) F; ~8 B% C6 C
if( m_pItemElem )/ s v! Q9 G: M! R9 }
{
* W! z7 n" E2 L m_pItemElem = NULL;
4 b' X* V! j# w }
# t4 d7 ]. ~* F" I$ [ m_pItemElem = pItemElem;. x- Y- d' \4 k/ Q: T; G* ]
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 b/ }3 g( j: W: g) c; U t" F9 X t/ H
}else{
: u- b$ b% q7 |2 a, G. O2 Q SetForbid( TRUE );( u7 H) V/ c- n( _: |2 |! D+ h
}
3 c0 A3 \) K1 @0 |" j9 F }else{
3 p0 N; V, B1 D SetForbid( TRUE );) ?0 `+ \0 p7 T: v) b' Y+ x6 G
}
- h9 j, w6 e4 R0 f( M! d! { return TRUE;: u( y+ p9 o- o, O2 w9 ]
}
, j* n1 p0 z+ R
4 s9 N9 M. }( i9 ?6 KBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )2 i( ?; I8 b& i# A& w' L
{
1 q, _0 h+ I( C- d8 A8 J switch( nID )
% E# ~1 A- s+ b% ] {
4 O" Y; j) M) S" a# x case WIDC_BUTTON3:
' c# @, d0 x3 S {" O! f, e# C0 r7 _3 w5 X
bStart = TRUE;
+ j0 Q; K. g9 {. A* t8 W break;8 X$ e: T* C0 ]" Z+ E6 ?
}
A1 R" w, l7 d8 @1 y& h case WIDC_BUTTON4:8 }- I, L; u* c
{
" s/ g6 B) @7 H+ M6 L& r5 ]. O, t bStart = FALSE;
* b- \. l$ x# C8 N3 ~ break;/ S! i; d4 Q5 z4 p0 c5 m d
}
$ Z0 R, j, m) H, Q9 ]* Z }/ c* Q, v% K: Z! ]% j& G2 B
return CWndNeuz::OnChildNotify( message, nID, pLResult );
2 N6 h2 {' I3 ]- y, Z% [' W} * f! N3 Y |% Q+ ^0 j# s: ~) ^8 s
void CWndAutoFood::OnDraw( C2DRender* p2DRender )+ s3 {" v9 ?1 K6 M" C h# m
{% b! {4 P/ U( F; |( t: K# e h+ l
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
* S( X7 P: _1 \4 Z if( bStart || !m_pItemElem )" L% a3 q9 H( q( r+ Z: {# R: Y
{
- N8 N3 ?9 J; M pBtn->EnableWindow( FALSE ); o- ^: n3 L% p e* T
}else
* C9 E' t- D. {+ S- E* v" t pBtn->EnableWindow( TRUE );: K% G5 z8 V9 X3 u) {% W
if( m_pTexture )
% v8 d* U9 }/ ?' U. y {2 O3 j# X" f$ P& g2 Y
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );# g, H1 l! p) I% b" i- A7 T# w
if( wndCtrl && wndCtrl->rect )
M2 C: v6 }0 S {" b3 T0 K% { O
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );0 e4 T' a$ k% b( @" Y9 P: o
}
, J, E3 E/ Q" T- H+ X8 B }% B: M6 A; i% K: H! Q# @
}( z2 Y5 S: q& o5 `! Z- e
) U M* T' _1 J6 [
BOOL CWndAutoFood: rocess()
7 H! S+ N. l. I! @{
8 Q P7 t" `+ j5 v6 F% n' C if( bStart )7 G* k4 L: H7 O3 ?* a1 ~
{1 s: }. U( v! A. A% q* i
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; `5 q; B' x# V4 n$ Z {& t1 i) F5 ]0 D% s) u. L- o
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
# z, {$ T1 m5 A# C* J9 D* H- N z g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
$ }- {" l, R, u+ y1 |% d1 X; ~7 k }else{
: W& l1 `+ O: r& s bStart = FALSE;0 r$ w! A! j! B/ i; {6 O- q# |
m_pItemElem = NULL;
3 m4 x! k( F$ T5 o$ y }
& L4 s! c: Z; C9 {$ C }* Z& J5 B0 J+ o8 J
return TRUE;
: E' y" i9 H O3 {}
2 F: B5 ~+ N5 E. ]! v
' o3 R* d" _7 I/ b登录视频废话:
2 I3 V: v7 a" C5 p! v4 G尾翼: z) B4 C, m* F6 y
% X/ y/ w% i; H
代码:9 p' B; Q( S/ i+ n6 K
/ L( g5 I1 }3 @/ D. p2 }
void CWorld::SetLight( BOOL bLight )9 |5 c o; s* B6 l- i4 L
durch# X/ H7 H$ v1 `# ?' I
Code:
/ \ W$ c E: b( r2 |7 V! r; y mvoid CWorld::SetLight( BOOL bLight )
. A* N/ f. C$ q1 V0 K5 o" A4 r{; i- b0 ~4 k6 @6 A% I1 u8 J+ r1 r1 c+ |
//ACE("SetLight %d \n", bLight);2 _) y& _2 `. q" Y
; g, X/ p2 Q& r; V
#ifndef __WORLDSERVER
$ l! G P( f7 C2 A DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
0 W" j+ P M; H# C: i% Y# X CLight* pLight = NULL;! g. S& G0 h+ h
0 _1 a$ @$ t/ b, s
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
" \/ |% C8 j9 Y# j
- U+ o* P+ s. Z6 J6 J* J3 h pLight = GetLight( "direction" );
( a- {& c6 H ?) F8 i
) T! I2 ?9 a' [, x% [& y5 B#if __VER >= 15 // __BS_CHANGING_ENVIR$ o+ h, Y0 U; f8 U2 T" k
if( g_pPlayer ){
- P: X s4 A6 p9 o$ U ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );+ W$ j0 i6 n) `* v% [( r2 w
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 q: l( A0 @ A8 ^( Q {
) O+ i( q# `% U! M5 i; R7 j) e) Q if( pLight )* a* y. G# o7 D5 b# T* t
{
$ }# G; T: X: g+ {: c1 @# Z pLight->Ambient.r = pInfo->_fAmbient[ 0 ];0 |: ~ f2 V" I3 J& P2 V6 y( q
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
8 |8 x( W1 W# t8 T5 H8 Q ^ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
) V' ~& V8 ?. u* b, V9 [. n8 r
( w; l- t4 P9 b8 \' X pLight->Specular.r = 2.0f;* G. P0 s: O) i3 i# Y4 W
pLight->Specular.g = 2.0f;
: f9 u3 o$ @) Z$ T1 e. E$ A pLight->Specular.b = 2.0f;% r& p1 X9 ~9 R( v
5 \3 n( f U5 q+ u% C* p3 c& ] pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
: [, q6 |" @& }4 l/ ~ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];6 Y4 {* g( J/ D7 V9 H8 F
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
3 w# `: @: k5 ]+ }- Y7 j ( b4 t8 j* p. i# E8 w0 r
HookUpdateLight( pLight ); |7 n% H: m% E S- ^/ G
3 s4 v0 B: {/ m) W- M5 M0 `+ ? memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( ]4 Q" \! Y2 H6 e! G1 F( @
# Y8 z8 B8 Z, K' d) J pLight->Diffuse.r *= 1.2f;
; i! D+ [1 z9 @3 P3 [& |- k& B. e pLight->Diffuse.g *= 1.2f;8 P' l2 f3 J$ X
pLight->Diffuse.b *= 1.2f;
& N; ?% E; x( K( E; S6 h1 N: ?5 h( c$ t4 I H
pLight->Ambient.r *= 0.8f;
9 b, a6 a4 P3 v pLight->Ambient.g *= 0.8f;
) p- C. s1 q% @& Q* [ pLight->Ambient.b *= 0.8f;
/ J" Q0 d r: y+ k# J9 E8 T
3 H# |6 l p/ o$ b& L& k memcpy( &m_light, pLight, sizeof( m_light ) );; U& D: i4 t; l3 p, s1 e1 z. x
1 Q2 H2 Q, L1 o6 \, A& h D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);0 b6 U2 `$ _) u# y z9 ^; w* ~
D3DXVec3Normalize(&(vecSun),&(vecSun));) ^* K6 c' B# H+ B& M- r. U h
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); $ s/ p. o3 z! q
pLight->Appear( m_pd3dDevice, TRUE );8 ^. q* E a% m3 K) o6 w% |6 J
5 D1 T- |3 t3 t. C" Z8 ~( c% _2 \5 y& x DWORD dwR, dwG, dwB;
/ f+ v3 p/ m: Y3 l2 U dwR = (DWORD)( pLight->Ambient.r * 255 );- x1 w, S# H+ O! h6 m
dwG = (DWORD)( pLight->Ambient.g * 255 );6 T7 F% z" \4 E5 o
dwB = (DWORD)( pLight->Ambient.b * 255 );5 W6 ^# D2 G6 r
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );5 m- X+ j& H" w' z' `# i% `5 Q
}: r+ z, B! {* z# I4 n5 g
}
+ ]( {, h! D+ a# k2 Z }
3 S. {2 K: ~) x; N2 F. b else
% }: }/ H) C0 |+ o#endif
/ V# J; `0 T; s3 C: e& d" S( p7 l3 p+ N! ~- y, Y
if( m_bIsIndoor )% G, B! @+ M, W( k8 K
{# M4 z% w+ A: c, ~3 k" I) Q2 F
if( pLight )
" ?( |, d% R2 z {
1 _- e; }7 ~3 p# L9 g$ A // à??μ oˉè* ' T$ P2 ]* y+ x* b ?7 m) Q
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;# H6 h2 j& Z- f* a
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;! U& }# j9 P% {5 F0 Q* P3 h, N% E
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
! @8 t% Z1 ~ r! ^# Z2 T3 y$ z% v! C, {# k; l% \' ^. g9 V
// oˉè* ??à?
6 m3 ?. D0 b. ]; c pLight->Specular.r = 1.0f;
( K }. n/ z) n pLight->Specular.g = 1.0f;4 x$ j2 Z- b7 \
pLight->Specular.b = 1.0f;3 m; k4 y3 O0 v* v, T* G: `
// àü?? oˉè*
' j; \ [8 Y* A2 x$ O. q2 @- t pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
6 f7 J8 m) u# s pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;6 C1 V. u4 a6 d* ]# l; \
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
; z+ o" [7 k3 I+ Q& @& ?# k1 @/ u( z' v6 @0 M
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
4 O5 M6 k& D: y5 J$ o+ I9 ` {
% K$ K1 M: W5 f! B pLight->Diffuse.r *= 0.6f;, y K) V9 _/ C$ ~
pLight->Diffuse.g *= 0.6f;$ ^" B; }( N% \! Y) x7 v
pLight->Diffuse.b *= 0.6f;
* }. v/ k! e* W! G pLight->Ambient.r *= 0.7f;
3 L" b( V/ v% D$ G; S& U pLight->Ambient.g *= 0.7f;
2 j1 _7 x( I0 ~+ F pLight->Ambient.b *= 0.7f;
g+ E% [' B! ]- m* e }; w9 ]/ L' Z% W( S+ c) _0 Q3 a, F9 j
1 D1 l* m% a! H5 n' W- t! v! [
#if __VER >= 15 // __BS_CHANGING_ENVIR# [1 f+ `8 z$ ]8 l
if( g_pPlayer )
! G/ f+ J- R V0 R5 y HookUpdateLight( pLight );$ a9 B w8 o% \7 [5 g; M0 @
#endif
( [* {* H$ T2 D m! [ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 o: V$ p3 R; x
/ Y; o! b( j- i' ~% c( D% ^ pLight->Diffuse.r += 0.1f;; b/ P$ n9 Q+ B0 }5 k1 x/ ?
pLight->Diffuse.g += 0.1f;: A* K3 M# g/ ~+ ~! e/ F) R
pLight->Diffuse.b += 0.1f;
- d% {; Y3 U. ~4 t3 d" e$ h3 W // oˉè* ??à?
9 M5 `9 t w* C# y' G pLight->Specular.r = 2.0f;
$ ~6 T8 i) ^4 ~( S( Z- x7 f# X( j pLight->Specular.g = 2.0f;
# y( L# [0 N: c) p, ?8 x; b: L pLight->Specular.b = 2.0f;4 i/ n5 U' R2 ]9 \
// á?oˉ 5 g# s& I, L* P' V" Q
pLight->Ambient.r *= 0.9f;" O/ h" v4 q5 [) R, b
pLight->Ambient.g *= 0.9f;# [- K) h+ d3 u; K* R0 K* e
pLight->Ambient.b *= 0.9f;
( V* q# E8 v, ^8 v' k ^7 z! f0 ?* W$ a8 w, L4 z% N% T/ x1 [+ I& q
memcpy( &m_light, pLight, sizeof( m_light ) );3 {$ H) J- J( Q3 v" o: h& o
% v$ Q( U% r) y1 W# q: ?
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; Y" G9 ^9 B% A. F$ S9 ~( ^
pLight->Appear( m_pd3dDevice, TRUE );5 b! w) G( K. y3 `
) W m7 E, v1 Q% C
DWORD dwR, dwG, dwB;
5 W: T7 J/ d2 F/ e9 E- I dwR = (DWORD)( pLight->Ambient.r * 255 );
5 D1 u# X. }+ X6 q9 { dwG = (DWORD)( pLight->Ambient.g * 255 );
+ G, E7 z/ {/ v& ^+ i- l2 T/ ? dwB = (DWORD)( pLight->Ambient.b * 255 );
9 _- u, `8 B1 `% w8 V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% ~: b l/ D/ Z! p4 ~. \& ]$ ~
}3 j- f6 g) g# n3 B& t6 h, a
}
& V9 f: C5 u: } else
; Z$ M3 ]( I0 J% R( U/ B1 O {
: z8 Z- Y2 p. u8 M6 |& v$ q& s4 ^ if( pLight )
! M8 H- q. p1 K8 l& @: e& h {: d9 J/ B. R4 D" R9 |
% q9 n+ O( y# H int nHour = 8, nMin = 0; J1 f9 [" n S) r* e7 \, y
#ifdef __CLIENT/ k0 C+ L; E3 I) V& ^: G, j
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
4 l$ r' k! s! d7 N# ?. r {) ~ nHour = g_GameTimer.m_nHour;
, C: _" D6 |, R- t4 [7 ? nMin = g_GameTimer.m_nMin ;' p+ h- x; Z- E% J* v5 s. {
#else
+ A3 q C2 t6 n) x" N" e6 n; b // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
+ \) I6 Q4 m( d$ N4 H if( m_nLightType == 1 )
. l2 P9 }& f5 h5 \( Y- W nHour = m_nLightHour;
" a' C# _" g- b$ Y; j #endif
3 }; L; i; z' k0 ~. h nHour--;3 T3 E3 q. i% b) e
if( nHour < 0 ) nHour = 0;
$ O0 v) ^+ ^% ^# G, c4 H if( nHour > 23 ) nHour = 23;
# ^- u; _2 c2 D8 N3 K3 }/ \1 F4 B: B$ F+ C- x$ J! Z/ u6 V
//if( m_bFixedHour )
) \0 {% I4 O1 C7 @. w9 E: X( c // nHour = m_nFixedHour, nMin = 0;
( b' B, H: G) ?2 u0 H" H6 H$ S LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
* p) W9 G8 Y% K+ f LIGHTCOLOR lightColor = m_k24Light[ nHour ];
4 B0 k+ T; M9 L! M& _3 S8 { u2 e
//m_lightColor = lightColorPrv;0 F$ w& L( q' J' U$ A4 [. ]4 G
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;' |9 w5 y: a6 ?7 T# P
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
5 x$ u, `4 v5 W) i lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
' q! O& ^" y o6 `3 A8 `# o lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;$ k8 z8 A1 r, _ j. _4 i1 \0 m
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
7 U& l, A' a: c lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' l9 T8 I6 q) [+ p% c- U# l( b8 h
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)3 x0 E' d; i1 V; _: X
+ c- m6 ^/ g3 y. ` // à??μ oˉè*
; z7 e( b, v+ G s7 R pLight->Diffuse.r = lightColorPrv.r1;
1 c) r3 e% n; E. B1 j+ { pLight->Diffuse.g = lightColorPrv.g1;8 u; T3 g8 Q; g8 Y+ T
pLight->Diffuse.b = lightColorPrv.b1;- }( L5 J6 q9 M, S2 X
// oˉè* ??à? / L u. L, ~; g* }: d: a9 w& s
pLight->Specular.r = 1.0f;
! i( L0 ~( V- W0 I; o4 r; j pLight->Specular.g = 1.0f;
8 f$ [4 J5 ?4 y S2 p# A5 m6 d pLight->Specular.b = 1.0f;
+ ?3 n, F4 r( I; L) g3 y2 i // àü?? oˉè*
; N6 X+ }1 H+ h6 ? \+ a8 [ pLight->Ambient.r = lightColorPrv.r2;
1 F E3 M. P" u _' H pLight->Ambient.g = lightColorPrv.g2;, h+ V3 l4 z" F3 [. @+ w
pLight->Ambient.b = lightColorPrv.b2;
/ H- Q$ b7 J) ]) o- u
9 ^8 S% o3 u. G/ y, C2 b if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 _3 U- z" C0 m5 c
{6 y; |: q" K, ]/ Q# x& t
pLight->Diffuse.r *= 0.6f;# j! _. r5 o! V$ a
pLight->Diffuse.g *= 0.6f;* Q: g7 o9 ]4 |
pLight->Diffuse.b *= 0.6f;
' |( L9 _! C6 T3 { pLight->Ambient.r *= 0.7f;
" u+ w8 K4 j5 i! v/ G% J. t( h pLight->Ambient.g *= 0.7f;( n" s$ o+ U% x4 `# c
pLight->Ambient.b *= 0.7f;
* C- B: y( H9 {* I4 s6 b }' U6 u; n2 {' t; [2 z3 L! m% L
+ I. F% Y+ `% t) c' x
#if __VER >= 15 // __BS_CHANGING_ENVIR X6 ^* l+ i. g c
if( g_pPlayer )+ j4 h5 n8 F' M. s, P
HookUpdateLight( pLight );
, Y- n9 F9 w, p1 F: T#endif
3 O$ G6 H3 J- G0 f memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 ]8 |1 ]" Z, ?8 S( m3 t
' H R# W" j# P9 m% ]! b+ M6 \& M#ifdef __YENV( Q- q" ~; w( Y* F4 C- d
pLight->Diffuse.r *= 1.1f;
" Y. U% U+ a t; C! x Q pLight->Diffuse.g *= 1.1f;- \, z0 C( B* v1 F) _- V1 {1 @6 v
pLight->Diffuse.b *= 1.1f;
" d5 R- X, k& F8 ?% W // oˉè* ??à? 4 S5 G8 E$ Z2 ?& E, J* M
pLight->Specular.r = 2.0f;
' g, u, E) M+ }8 P4 Z pLight->Specular.g = 2.0f;( W! b7 `0 t" s& p& l* P
pLight->Specular.b = 2.0f;
: D6 _# J% |2 ], G // á?oˉ
5 }; i3 ]: H) r2 B3 K2 z$ C pLight->Ambient.r *= 1.0f;9 Z, v. f) h' z; m2 S+ ]
pLight->Ambient.g *= 1.0f;" [# @2 A1 A) _& R$ m: T
pLight->Ambient.b *= 1.0f;$ t! P, ~" K; a- R$ y& O- b
#else //__YENV
0 q0 m; R- _* @7 I. O; n: I2 ~ pLight->Diffuse.r *= 1.1f;- l/ j) _8 P0 Q# I" R, m
pLight->Diffuse.g *= 1.1f;3 i: T" k, ^2 `2 E
pLight->Diffuse.b *= 1.1f;
* v" ^# s3 R& y! A% o // oˉè* ??à?
% Z; l' b) e+ w5 I7 c, U/ _ pLight->Specular.r = 2.0f;
% @6 f2 a) s8 _$ d5 d pLight->Specular.g = 2.0f;
0 k/ D4 _$ `4 L- H; _ pLight->Specular.b = 2.0f;
. [4 p; K8 t/ A. ? // á?oˉ
. y; O/ l( o- s7 }* C, h pLight->Ambient.r *= 0.9f;
5 \% W6 E, Z0 G$ M pLight->Ambient.g *= 0.9f;
# G. g; {* `3 U pLight->Ambient.b *= 0.9f; O, l, w l- d/ G
#endif //__YENV & q+ }6 M3 _ G! Z# O2 ?
4 J- E/ t( c9 y9 L- [! q- J memcpy( &m_light, pLight, sizeof( m_light ) );+ @' a& W% o2 t( l9 p* W" i4 R
) s4 g6 x1 Z* ^/ E D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);0 ?1 e+ s( Y8 Y N! ^7 {: ^+ }
D3DXMATRIX matTemp;* r Z& m& h% K
static const float CONS_VAL = 3.1415926f / 180.f;
4 R: v8 h. A* m0 t. m& n
3 M# y, U9 c8 B# p* B; K D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);' G; J: w0 O! D$ x4 M, `' h& p
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
9 \# x! c/ {) _1 Q. f/ F pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
: M. ]* H; p" @9 ?3 S pLight->Appear( m_pd3dDevice, TRUE );
1 _' _& ?8 \0 ]" \! B+ i4 ?- S) W& G# V8 y- P7 Q; R
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);# e4 o4 t% ^! k+ \
// D3DXVec3Normalize(&(vecSun),&(vecSun));1 T! g9 I! g6 A* @
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 c5 C, p" }4 R. W% }
( C6 E1 M5 x( j; U9 t DWORD dwR, dwG, dwB;
2 k# f+ Y- A1 p; Z* N/ e" Q dwR = (DWORD)( pLight->Ambient.r * 255 );
" r* h+ E$ ^& T dwG = (DWORD)( pLight->Ambient.g * 255 );1 U9 W! s8 h- M- d( I
dwB = (DWORD)( pLight->Ambient.b * 255 );7 K5 M& X0 y S }
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 8 y O7 J2 m. A( p
}
7 s: A, z5 [7 k. O0 {& k8 @$ v }
) f' g' |. ]+ E! e/ p( P! O4 U$ e
, x9 I: I3 S# Y2 U m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );6 d" K& I9 L0 y/ B
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) );
: W/ F4 @4 g6 T+ C ::SetLight( bLight );
% E( H% q+ O2 }. m1 |3 o& S& _. q' k; a2 t2 E6 l6 F
// ±ao? ?D?í???ó á¤à?
4 b C( B" m/ }$ w* U m_pd3dDevice->SetMaterial( &m_baseMaterial );4 W3 C& t" f3 R6 l( e' }+ D, D; i
+ V' L- x. u9 I3 U$ b#endif // not WORLDSERVER* ?5 x, ?. Z1 U- e9 p8 T/ R7 c4 H" m
}0 K) }2 z, k5 B- \
并更换
% S! f3 E- S9 Q: pCode:
. {' y2 ?. @+ U6 h__FLYFF_INITPAGE_EXT. l* L3 L! W+ y; t. p, X
定义
3 v! X* F0 S- X k ]4 F6 x1 r- p9 c r# ~8 @" R
$ h. n9 K& X4 ]6 G( u7 f
3 V. U1 E3 x7 k( y- W
) N" e1 ?: l$ C
现在终于删除我的狗屁加速...
. w- K0 S2 k8 F" h& p9 ]- |
2 s) G( a" s; r9 T# U$ X: e5 n
0 x) Z# W) L, V% e s! J5 \: e0 z/ U7 y* F7 I
* j5 Y5 ^! U8 I# v% t7 R- z" s |
|