|
|
食品车:0 a) M! N; i7 P- N, W
尾翼:
& }0 C- U7 g/ G0 ?: _6 }7 s
; ^3 u U0 L8 K# e代码:3 |* t' M5 `. z
CWndAutoFood::CWndAutoFood()
2 X! c. z- d' b" N! d3 w5 k1 U{. m* Y- m$ p. Q9 Q
m_pItemElem = NULL;, M' J" R [ Y, ^
m_pTexture = NULL;
. T5 ^' q5 {2 Y9 ?, x2 |" E; X8 [ bStart = FALSE;* H) M1 n, N+ ^1 R6 x
}
+ d4 n# O& h. S8 ^; L( Y- k* _7 K: B: P. o
CWndAutoFood::~CWndAutoFood()
d0 S1 _, E" e" C{1 m* s, {& C6 G: B5 l, p A0 M) K$ D
AfxMessageBox( "AutoFood ist gestorben " );
1 H0 @3 {1 p- A9 ^' U}
. O* Z: ]1 ~, l4 r/ X0 GBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
* T; Z9 c* @6 E" G( K{
* O/ Y& Y# ]( B- B return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );" W+ I9 m% ~+ Z# d' P
}% S5 K" Z5 w! \- J
9 Z( H3 A2 O& |! q& OBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )+ \+ V' E4 J% U6 J: ~- @/ d- t/ F
{
- b2 p6 K b. D" e5 U/ j LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' v+ s- a7 K1 s% a6 \$ H. b) ? CRect rect = pWndCtrl->rect;
2 E4 |% c" r' O' k/ Z' b/ T, N9 U if( rect && rect.PtInRect( point ) )
/ b9 z( t0 X$ K& [! ?, x {- A% G7 |0 Q; P: s( k0 @, p5 [5 h
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );, y0 L8 F1 b4 h1 W
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
8 C9 b) H. x0 s {6 F% q ^) T2 i* [' C: b
if( m_pItemElem )
2 X: F; L y Z8 H: j7 }5 y {
R- R4 h9 U$ n. ~& H m_pItemElem = NULL;
) b9 a2 o( D8 e; _ }
3 M# R) o2 T) C- l" ^( |+ z m_pItemElem = pItemElem;0 V/ }; P0 m: r8 E- A
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
0 u; u* f0 ?! k t7 e5 U z( F }else{
2 @; r) P8 @$ d' T/ [ SetForbid( TRUE );) }$ s' w1 ~! b" ^' l
}
2 w' k4 Q; w* }. @; t. w4 t }else{3 z1 h1 `) n% P, }
SetForbid( TRUE );
8 g$ E9 @$ B3 Z2 C0 B; u# }, k& l }
+ M# k0 u8 O8 O, z; `) T return TRUE;+ c% p% H" A- R8 f' i4 Y
}, c! l8 ~) Y( j0 y
/ R2 F/ U+ j& l' P% K
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
9 F/ ~8 i2 f+ l7 k! X{- t, h3 s+ D8 z2 h0 p
switch( nID )
4 C+ | w# {& l* e8 V {3 B! Z$ l9 g1 g1 ~9 G& D/ [+ W
case WIDC_BUTTON3:
, y) D2 E+ Z! E( A* |4 B5 u {
; g5 ? g; _$ z% A8 K" r bStart = TRUE;$ U+ l5 S) S4 ]; ~
break;
! h; U! Q: D) \ } X9 b& j0 B# G1 s8 D$ b
case WIDC_BUTTON4:' K; J; _: i& K, o, Q: ^; T
{
& O7 o: v* v/ ?# e( u; T bStart = FALSE;
2 @( | G" |+ |0 E, y! a9 D c break;
, Q4 a1 }; a, b; ^' P- Y }
# m5 O8 _$ ?; E$ {7 S# d K }4 W* y7 r8 ?- s0 ~' q& _) C
return CWndNeuz::OnChildNotify( message, nID, pLResult );9 i- y' c6 I3 S1 q1 h8 U' J# W
}
6 x9 d; W; p1 R8 o% mvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
- a7 B/ {+ d7 X: @$ @& s{
1 a6 U. ]9 z, n& p CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
4 F/ \5 f1 z$ s: p2 a if( bStart || !m_pItemElem )
( ]& J2 {# G2 ~% e {
0 q% R" T! p! X pBtn->EnableWindow( FALSE );
% ^; P/ H9 ]6 G- J4 Z6 i }else
& [2 c- z+ y0 `7 E# h pBtn->EnableWindow( TRUE );5 z& s( Y- G9 R% ?
if( m_pTexture )
( Y1 e8 f; T) J' u6 Z* C {
# H8 z9 P( X$ ?7 V# v" @ LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: W* y1 H0 V; D! a3 ]
if( wndCtrl && wndCtrl->rect )
. z: T4 B' g4 C% U* p" v' V {
( j+ d- S$ {9 c- n1 k! |" a" \1 c m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );* Y. y. S; p$ ~6 [0 H. k; d) u
}
+ k R; t2 i5 {9 e" E% U }
6 C; H4 J, @. z3 Q, i, [}' ] R4 w3 f+ J
L6 i) ?. ?5 O5 U- v
BOOL CWndAutoFood: rocess()1 Q4 t6 b' M/ j$ w: R
{8 \- ], {8 e, Q6 Z
if( bStart )0 q2 b. ^3 @; o4 {6 p& h0 n
{% z) y" N6 M3 o! ~5 M8 [: O4 E
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )* m d! d2 B% y6 f! L" H
{
+ T% x: ]' r: x. ~, w4 x if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )9 S5 K. T/ C4 k+ L3 |' X
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );/ ?5 N' B. g* ~3 x" {/ M# i n
}else{5 i N* ~# u0 E! N7 E
bStart = FALSE;
4 Z9 A1 \' T" ]8 e, ^ m_pItemElem = NULL;2 D# n6 B, ?5 }: u; y" z
}
3 m" w6 h+ H4 t1 u }/ |+ `1 ~0 {+ }, J4 k% k
return TRUE;
% t7 ^$ U1 ?$ e9 y}
: |; Y Z- ~$ C- g: h
5 l$ h' J9 S; @! H5 e登录视频废话:
! d- [9 [3 X: V/ m& z7 L尾翼:
- p1 w# K/ `$ c& g8 p# [( E3 ~0 \( g9 i- d( n! O$ E3 A
代码:
! z9 r/ Y& s. `! }+ d: C: x: H% N6 q; O0 g! X
void CWorld::SetLight( BOOL bLight ): J& N& Q5 |5 @! d$ q
durch+ r$ q, v) P$ |
Code:* `" u# [0 I/ H4 o& m& |% ^- j
void CWorld::SetLight( BOOL bLight )" U9 D! @4 M' A/ S3 i4 t6 x7 H6 c
{$ p% q* Z; O! T' r
//ACE("SetLight %d \n", bLight);: T$ O/ o7 U- p* z
4 d9 F( X* Y, |, _$ A! c#ifndef __WORLDSERVER $ n& ^6 M9 Y$ Z8 w% u& w: N
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);, X* c9 C% `$ W. @$ y' S2 ^
CLight* pLight = NULL;* M! S) V" @9 q$ D
6 f) R( I9 [9 Q. e% B' I' I/ ]
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
! x" T1 C1 H3 F5 U u6 \! d; l) e; W. `
pLight = GetLight( "direction" );4 }7 V5 P* g! H+ [7 m' p
* e- b. T4 R0 ]& C#if __VER >= 15 // __BS_CHANGING_ENVIR1 r5 @! O/ \; |% {1 r! N
if( g_pPlayer ){0 t5 m' A- l! [. y& F& E
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );" D% y# L" T) ]) P3 G
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 c* t( P* U- ]2 I8 r k8 W# q
{9 T1 O8 E/ `& Q
if( pLight )
! t3 c8 ~" C. I' l' m) u1 p, _3 a) L {
. D! T" @1 I! E( s pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
" B& a g D2 t9 ~6 P, {3 Y( i pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
; C- u+ {" r! X pLight->Ambient.b = pInfo->_fAmbient[ 2 ];$ Q5 C) n" f) ?* O1 A* V
- R1 W! P9 Y, I7 n' Q- _7 v7 N. E7 X
pLight->Specular.r = 2.0f;
# p4 t/ l3 v7 a m# O pLight->Specular.g = 2.0f;9 F8 ^ E, |- |# {7 {
pLight->Specular.b = 2.0f;# f% D3 f+ t% E* W
; j4 h+ N: x3 B7 I pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
! k! R2 D0 u4 z& S4 H0 d$ J pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
% A# m& ?2 i z% o+ l& n, b8 o pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
9 E* o; o. M" k+ v6 e" q, S
3 ]- e% l5 I. o$ d+ o# ^7 H" c HookUpdateLight( pLight );
% h6 |, m, y# T6 Z# ^: f6 s1 k T1 E, D; f4 B% r
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 r/ y: p8 o5 e# w d
0 |7 w7 v4 @3 n' r pLight->Diffuse.r *= 1.2f;
' J2 D: h2 Y r2 d! e7 M2 l pLight->Diffuse.g *= 1.2f;' w) r" ^& b1 C5 q' K. C
pLight->Diffuse.b *= 1.2f;
3 R6 H' o+ m- Y5 T7 ]* T: A4 _' x: \& O
pLight->Ambient.r *= 0.8f;: }0 z" x! m! w- H4 u$ j
pLight->Ambient.g *= 0.8f;" k& _! h, | m' e+ p% |6 t
pLight->Ambient.b *= 0.8f;
9 p$ b$ v( q9 f* _- q I/ _
+ {* h/ x0 g( |7 N) { memcpy( &m_light, pLight, sizeof( m_light ) );* u' b: t2 F; z/ d& P0 ?
* Q# ^2 p4 E1 G* e$ I D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 S1 ?- r9 s; G6 o D3DXVec3Normalize(&(vecSun),&(vecSun));
" `' k- r. k: e- [ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( m" `5 p5 S5 B6 c" i2 a4 s* l9 m pLight->Appear( m_pd3dDevice, TRUE );
$ S% P& s: e2 W 3 [+ S( C1 R1 z I# q: d" N
DWORD dwR, dwG, dwB;
+ K# L$ R- |9 G+ d dwR = (DWORD)( pLight->Ambient.r * 255 );
" I% Y5 [3 F, u dwG = (DWORD)( pLight->Ambient.g * 255 );
9 t. p; h7 L4 R' B. m: U dwB = (DWORD)( pLight->Ambient.b * 255 );3 @- h% C, F" y: C, R2 H5 r" k+ F
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 P% E4 u' u; {- Z. V, T. ^ e }
' ~! {3 j; E) q f4 ~ }5 X/ w3 x$ U6 m; P Q8 f
}
$ @3 k1 P/ e$ n else) S: J$ g8 Q) Z
#endif
; h; t( N9 e; ]" o) \- }" F7 m7 q' F7 j; M. b+ k8 Q
if( m_bIsIndoor ) C7 q3 K3 `5 a/ i: x4 y& n9 Q' y
{
o, }4 O/ }6 g) v if( pLight )- C+ Z$ k- s9 w0 ^4 {. U
{
- ~0 X- N& H+ i% F% J9 [" W // à??μ oˉè*
1 e) k. O, n7 o" m pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
! U! b' x J+ s! y: n2 i pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;* v0 s5 X9 `9 Y# l% e) H$ V5 u
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
- n5 U& m+ h4 r7 T- ~
5 ?8 r8 H) G$ E0 x9 Q5 e; ~* y // oˉè* ??à? G) K E/ C( _3 P
pLight->Specular.r = 1.0f;
! y. V- R* n$ L8 U+ K% E0 U2 S6 S pLight->Specular.g = 1.0f;( R2 n3 W1 u' y0 ~* a
pLight->Specular.b = 1.0f;/ b) r% g! |0 P* p: b
// àü?? oˉè*
$ e$ b; }. q+ d$ x8 G8 w7 |& J _ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
) N+ ?# o/ E6 K pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;; f6 g% {( c4 d3 `" O2 T D
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
- h4 E$ N3 y, V- [) c6 h" L. a) L* N3 p
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ F; z9 L- T+ n0 J0 L& P
{
: g! D' ] M7 X/ S) O6 J pLight->Diffuse.r *= 0.6f;8 T7 y1 r A) d9 K2 Z
pLight->Diffuse.g *= 0.6f;
! B, I( e9 b0 A( r pLight->Diffuse.b *= 0.6f;
3 s/ ]) o/ w) y; Y% J pLight->Ambient.r *= 0.7f;0 M5 v# s! K) i$ v
pLight->Ambient.g *= 0.7f;( A1 \/ S) H/ ~7 u' F. s2 r
pLight->Ambient.b *= 0.7f;2 }) g# h* V" U3 k
}
, L! t- r2 ?# t; C v
" X- P( E) b* q#if __VER >= 15 // __BS_CHANGING_ENVIR9 [' y P9 w9 Q+ f1 C
if( g_pPlayer ) j# _0 I" \* }; o- ~$ V6 A! O
HookUpdateLight( pLight );
0 H9 B0 w5 T' n5 x3 G+ w#endif( e0 D3 J# m# B7 r x" ^, _5 E/ W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; a; y$ i: c7 k$ S3 C0 T( h0 ~: `7 `7 R4 @8 I% d7 `
pLight->Diffuse.r += 0.1f;
3 K3 V; o. h, N3 z/ p; { B pLight->Diffuse.g += 0.1f;
' N: \# C+ a6 ^& R2 _6 e3 ^; E) s* q pLight->Diffuse.b += 0.1f;8 N* Y9 m8 ~% N7 V, C# }; c2 ^
// oˉè* ??à?
1 w/ I5 L8 {( r% H pLight->Specular.r = 2.0f;1 w, a5 V+ k1 Z! R1 ^
pLight->Specular.g = 2.0f;7 L) @: r; M& r
pLight->Specular.b = 2.0f;8 n w+ _0 l N0 [% L
// á?oˉ m0 R) J* H5 Z" `; k+ v" _4 h: l
pLight->Ambient.r *= 0.9f;
; x* V' F7 T! \& D# u pLight->Ambient.g *= 0.9f;+ T4 w" N- [, Y4 p/ W, n! B
pLight->Ambient.b *= 0.9f;' Q, n6 h/ j1 Z5 \! S1 g Z1 P
. Q, I0 [1 X7 }* {& k" V9 N
memcpy( &m_light, pLight, sizeof( m_light ) );4 L0 |7 ~. W2 p- R
! J" R$ i5 _0 l" ^0 x2 `0 k pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
6 q9 O5 j) z6 l5 c pLight->Appear( m_pd3dDevice, TRUE );- Y/ {2 @7 z0 r$ @1 @
* n# C6 ?/ A* J B1 l
DWORD dwR, dwG, dwB;$ H8 R `6 z/ L2 y5 v" ~
dwR = (DWORD)( pLight->Ambient.r * 255 );( Y! L( N# M+ \6 t7 d5 W. z; A
dwG = (DWORD)( pLight->Ambient.g * 255 );" A; `% J# s( o
dwB = (DWORD)( pLight->Ambient.b * 255 );( T1 l; c9 u. m) F! ^! l6 T
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );1 i. P6 b$ @ {! y
}8 i; y8 G: p }$ D6 M
}
; m q$ m$ @6 u2 M6 t. D else! m, o5 l0 Q0 c, q9 }, k" Q
{
5 m& H1 u0 s" U# d8 M if( pLight )
% s" r, N0 j7 o" i5 I* B {6 m D$ E! J: Z; D$ a1 z
0 [, ? x ~! z: D int nHour = 8, nMin = 0;5 a- h1 w! t1 d8 [+ l% i7 ]8 a
#ifdef __CLIENT3 v7 F% l- B, w/ y" g- Z
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ) {1 k( g" p# ~' q0 M' b" ^/ {0 S
nHour = g_GameTimer.m_nHour;0 ]$ f' z1 `, v5 S8 A9 n
nMin = g_GameTimer.m_nMin ;; h Y; E% m' p- _. x$ W/ d& s0 P
#else
. g# ?. C, R( [+ F( \+ I // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.8 U% q p- c [9 N4 `$ h/ o
if( m_nLightType == 1 )* F; k) x& V6 o Z% ~
nHour = m_nLightHour;
4 \8 W+ O" m# X+ n; ] j3 K #endif- @: L. n- U( R8 `2 s) t" k! ^
nHour--;
% B; C# c) p* k6 Q3 ? if( nHour < 0 ) nHour = 0;
( ^; _- v8 K9 ^7 }9 ]% R2 @ if( nHour > 23 ) nHour = 23;
9 \: o) T5 J. Y9 N% U: \; U6 B3 H& N) h% L# Z0 [' Z/ o
//if( m_bFixedHour )
4 \/ _' T: E. E; S // nHour = m_nFixedHour, nMin = 0;9 J `$ `" R0 y3 M2 g7 P+ E0 c
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];9 i( F( C u R: g0 ^( P; f
LIGHTCOLOR lightColor = m_k24Light[ nHour ];! w$ R/ ^+ S( W* v1 f9 A. L
; E; ]* @6 X, ?2 x! ]9 u
//m_lightColor = lightColorPrv;$ K$ B4 D, n1 ^! G' P; F" ?% g5 W
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;: H6 y3 O4 c2 P+ [
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;1 k) y9 k( m: M& [5 H" }
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;( d n1 @: H g7 l9 H% [
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;" [, V2 K& f/ x, V$ T* k
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;0 \% q% h5 a+ d$ r' `8 G0 i
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
( D7 q9 @7 |0 r // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% x- q) P- o- a/ J C5 ]
4 y6 E/ c) s* P% S/ c // à??μ oˉè* 6 z& ~6 n. |5 }0 `/ m6 n
pLight->Diffuse.r = lightColorPrv.r1;1 o- b" F1 h9 m8 J) S8 \+ `- B1 ]
pLight->Diffuse.g = lightColorPrv.g1;- N" d/ C( X. J$ M9 F2 y) o
pLight->Diffuse.b = lightColorPrv.b1;
1 H" E* W; [$ _' Q q // oˉè* ??à?
) j e1 P) i4 O# `9 o! O pLight->Specular.r = 1.0f;
" |- D- q& w5 I/ s pLight->Specular.g = 1.0f;) |% J$ V7 k$ P; H* N) g
pLight->Specular.b = 1.0f;! K ]& j S4 \. C# M8 E" E
// àü?? oˉè*
: y5 \3 I2 C4 o7 Z5 i pLight->Ambient.r = lightColorPrv.r2;& U9 k. ?3 G$ X" e$ B4 [* Q
pLight->Ambient.g = lightColorPrv.g2;, u. j0 m8 k1 v( P0 i
pLight->Ambient.b = lightColorPrv.b2;& \1 N# P4 K7 Q& T; ^0 Q
6 w( b2 L% t0 [5 B2 J if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., G Z7 ]% Y- Q. u i
{8 @/ _0 i, e/ P& L* g2 C5 [
pLight->Diffuse.r *= 0.6f;
$ C% K5 I' W1 O+ n7 v pLight->Diffuse.g *= 0.6f;0 ^5 ]4 k0 f$ F( d. ?! x6 `
pLight->Diffuse.b *= 0.6f;
* A8 w( T- a: V9 q2 M* Z2 E+ O t8 R- ] pLight->Ambient.r *= 0.7f;$ y" ~$ r$ ~4 f# O
pLight->Ambient.g *= 0.7f;: K2 Q' `: k7 T
pLight->Ambient.b *= 0.7f;
& Y7 t" `. L* @9 D# r }
# F6 d G( A4 |4 Z5 y
& T; |4 C Y3 M+ S* P#if __VER >= 15 // __BS_CHANGING_ENVIR
( \3 V! N# x0 {& ~/ l if( g_pPlayer )( N7 @6 Y" O( F' t
HookUpdateLight( pLight );
( F* ?# q% d! M Y3 \3 m#endif# }% r& t0 L6 ^" j1 A$ J( @9 @( z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );/ p R% _& I9 i
0 ^; j/ n: G3 A1 |( j. `
#ifdef __YENV
5 s4 ?8 \4 V9 g% Z" G pLight->Diffuse.r *= 1.1f;' W' V8 b4 m$ P6 v9 p0 f
pLight->Diffuse.g *= 1.1f;
" S9 h- [& B& r1 c9 ^, F1 N* r, x9 n pLight->Diffuse.b *= 1.1f;
0 B% X4 ^6 G4 r // oˉè* ??à? ; {. q6 h3 `8 O& K9 q
pLight->Specular.r = 2.0f;: ?9 V5 n$ `5 d6 B7 N
pLight->Specular.g = 2.0f;
$ `4 u% _+ v, H. G% k5 ~4 D9 \' p. c pLight->Specular.b = 2.0f;
2 X3 S2 w, x- v" h1 N // á?oˉ ( Y( n9 L0 l- [6 ?) X9 M& F
pLight->Ambient.r *= 1.0f;
9 g& v4 K. |; n: j+ @ pLight->Ambient.g *= 1.0f;8 M1 Q6 J) x" v
pLight->Ambient.b *= 1.0f;
9 |2 r9 e& f8 E#else //__YENV) }) _0 t; V! @0 j" g0 e
pLight->Diffuse.r *= 1.1f;3 k" }' H' N" R: P
pLight->Diffuse.g *= 1.1f;8 u6 B4 f2 j% x3 _6 |1 A
pLight->Diffuse.b *= 1.1f;/ ^6 d3 O/ N! m2 Q' l
// oˉè* ??à?
0 l* l/ P4 }* P- @+ ?8 G& N pLight->Specular.r = 2.0f;
6 C* L# ]; k" q6 A pLight->Specular.g = 2.0f;
) Q' M% `! Z0 t$ j, p( d pLight->Specular.b = 2.0f;' t% Z# f; h+ L( g; u6 O5 E/ l4 l
// á?oˉ 5 c, ?4 W, d, k' p' S! i' m+ Q
pLight->Ambient.r *= 0.9f;
# y$ _2 w9 `2 G pLight->Ambient.g *= 0.9f;6 W" J! W& h) F7 O- V
pLight->Ambient.b *= 0.9f;/ H0 |0 v# k7 u* d& [: S/ l
#endif //__YENV
2 U: u( @# s2 f# d 2 l& U0 S2 Z9 P1 h6 K1 h! t
memcpy( &m_light, pLight, sizeof( m_light ) );
+ E1 B# Y! G: u4 ]: v; [5 h o( }
F* l* Y5 g2 O% q D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);( B& A3 u; H, V$ \3 r& f
D3DXMATRIX matTemp;
. V- @ G e. e static const float CONS_VAL = 3.1415926f / 180.f;
4 V/ W$ p# V9 A$ x' U/ a1 B7 B& J) q+ a1 J1 b! e. v- h
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);, \( e3 S! g8 B
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);9 a3 U# B! Q, U6 B- s* `
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 A# s2 n. z( v5 h7 P pLight->Appear( m_pd3dDevice, TRUE );% t# c2 b8 z" m+ I, ^( t) F" O
% [3 c6 u& v# s9 c1 q) y
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ a6 v, b5 }- w# ~: }% C+ ~& L // D3DXVec3Normalize(&(vecSun),&(vecSun));! X: \8 j+ l6 Q# j' Q
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); & b& Y H1 H7 T( g* r
. M; M, [, b! _5 Y7 E$ C3 }# t y DWORD dwR, dwG, dwB;
# P3 s( H1 `3 t7 N# \ dwR = (DWORD)( pLight->Ambient.r * 255 );, b) z5 }' z& G7 V& ?
dwG = (DWORD)( pLight->Ambient.g * 255 );
/ x3 R, |; e, @- w8 ~ dwB = (DWORD)( pLight->Ambient.b * 255 );
2 n( X+ i" Y9 ^0 I# G dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 0 p f$ w; x# `9 ?; X- L9 R( N
}
. ^/ V) F y, P6 |/ ?) Y }
& Y T8 _7 ]8 l' u/ F
& e% }! }. M/ k" R7 H0 v0 N* a m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight ); t. y# ?* Q) c5 q
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) );$ K P. E( K) f' C) c7 f
::SetLight( bLight );
0 F' n v3 m1 Z3 E$ M
3 |, F% c7 ~ K' s // ±ao? ?D?í???ó á¤à?
s# ]+ C1 E1 t; X5 f( e4 n1 q m_pd3dDevice->SetMaterial( &m_baseMaterial );
) `! Q9 g3 |1 n* r# ?
# ]6 e9 Y# B @4 _) h5 h$ o7 M#endif // not WORLDSERVER
% C p& c& w) ^2 W; |0 D" i}
$ r1 U8 X$ x5 y# p7 g5 v并更换
* W- X- k2 ^2 Q7 c' R& {+ UCode:5 I1 Z: k6 G3 x- _3 s- l
__FLYFF_INITPAGE_EXT
' e8 Y8 j1 |' ?) i0 c+ p4 B定义% e+ K3 e$ o/ N. O
) A6 f) b) e5 f. q
, r. I# k& r- u' ~7 `" v
: ]5 J$ t4 r! G8 N9 \) p P! Z5 R7 z0 R4 I4 i$ W
现在终于删除我的狗屁加速...
" z+ a" p4 v1 r' X
7 \+ K, |% Q0 |4 ?( ^# o; W2 g+ |3 m- S& D& {- w$ X- p' ~ D: S
7 R# R& {! A$ r4 @! r) [ |
|