|
|
食品车:! i% E" X9 e. q& i2 i. c
尾翼:
! ~! ^6 U0 \' E2 }( n
, d& v: q% ~" a5 w代码:3 y z1 ^4 v8 C7 r1 q
CWndAutoFood::CWndAutoFood()- \2 d, v" n1 k2 k0 W/ S% W4 h0 K
{
( t9 k' ?5 O8 [4 q% z' ]5 t9 b m_pItemElem = NULL;
# }9 g+ n3 o: Z. B% ~! Q' l* x m_pTexture = NULL;
5 H' D" I, ]2 I- E bStart = FALSE; S% {' `7 p, }) K" q* N
}
/ J6 q" T n( d1 H/ s. c3 F4 [0 q3 u) x5 T0 x- L
CWndAutoFood::~CWndAutoFood()0 P# T! }/ A) @* Q* ^
{
6 u0 p# J0 w, I AfxMessageBox( "AutoFood ist gestorben " );
3 Z* f0 j. L; ~3 J4 T- t}; J6 G+ p) `# F& z5 ?% T3 e
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
6 l4 ?. C; \' R1 Z3 m$ Q{. p- w( v/ w# X6 s# O0 u. s c
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
+ S ?6 r0 ~* B. Y! F7 [1 c}
! [" f+ T$ S0 @) V0 S5 x0 T) L
% [2 F5 r0 u" U5 `, |6 ~& mBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )$ Z& A, x2 }9 x" j
{* S+ Y4 z, B: Q' n) q$ T# j
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& c ~: P! A ?" |8 ` CRect rect = pWndCtrl->rect;
1 o+ }5 R# b9 S: k* Y6 w1 r if( rect && rect.PtInRect( point ) )+ H4 f6 R7 h' x! ], k' W
{0 j* I* l* `- V6 T5 }
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 T: K+ B* r; x9 p! a; c+ j if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
- d* Z5 I3 @6 ~7 ?- @# R {
/ \& }+ \. Q( H: U6 H if( m_pItemElem )
, W: Z* G8 h6 e6 ` {- q4 B* D" Y* E X
m_pItemElem = NULL;. g& }8 H0 Z, F0 u5 D" ]4 X l; G
}
5 N! ^& [: K3 e9 ~; U6 p- Q m_pItemElem = pItemElem;% n, p- e2 D/ D4 U7 ~0 v7 ]
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
2 [- {' H! s& s }else{
- A# o% M" _! d- H3 E SetForbid( TRUE );# W, V& s! v$ m7 U0 D
}( G+ L# a4 |9 R2 d
}else{
2 a2 p$ r) o) |2 V, L SetForbid( TRUE );( h9 p0 V; f8 L7 Z; P
}: c0 B2 ]4 t0 [5 A3 H: d* T# ?
return TRUE;
* \8 f+ o' \" Q, Y/ u3 w, ~! u}9 D5 L0 R4 V5 S0 ~7 t( [; H
6 s; p' `& W1 K8 q! bBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )# k+ A. b% s: G- e, @7 s' R
{1 k9 k% |) w$ R
switch( nID )
0 @" ~7 h) ^0 a& Z {# O% t8 m2 D* m7 W, m \& H
case WIDC_BUTTON3:
+ {: V2 g' `+ b2 O# g" S: N ^ {# \7 V% o4 J% R0 `4 p$ b2 r
bStart = TRUE;
" g) ^' b8 ]5 D) [: P break; `( p2 v9 ]: w0 y) X3 z; P" o$ \' v
}
2 h7 \) G9 Y. E) R) Q8 w2 d% w( M, Q0 S0 w case WIDC_BUTTON4:. Z# x8 j6 z. n& b
{! A+ G! x) z) b0 G2 x
bStart = FALSE;' v6 K- w" z# c, I& T1 H
break;
, E; k6 H1 a- a }
; M: p# u* E/ Y( V' }. l5 O4 ^8 H }$ A+ ~# I4 _; @3 C& V7 A
return CWndNeuz::OnChildNotify( message, nID, pLResult );6 }2 m# S/ d1 c8 s+ n3 P" z' j9 }
}
# \6 b7 v; L. o7 mvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
; m: g% x9 l0 t0 R4 k! h{
% j+ k L$ T! B9 h* _$ {9 {% b2 F- V CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );" v7 v% g7 V# D- H8 G4 _1 s, m2 q) ]
if( bStart || !m_pItemElem )! E9 _. M$ m5 ~
{
5 z+ r& C, C+ e7 }+ e8 x pBtn->EnableWindow( FALSE );4 X7 ?0 H# v) F+ a% S# i# _! {
}else
% K. ^" c0 ?8 z u pBtn->EnableWindow( TRUE );
4 S$ x1 C& {2 A8 G$ f) U if( m_pTexture )
" h! c; O* G% p( |0 c8 ?2 G, n {
5 x$ o" P, q* C# j. p LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( Q5 r, O e% ^9 G" d8 \) d G" j( e: X if( wndCtrl && wndCtrl->rect )
1 f# a: O N# _% h7 ~" M {, S3 N& i/ e9 ~6 j- m% { E: q
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );- W* P; X; d# C
}
& M$ G4 O# U6 C- P" j }
$ L# H! @6 `2 G}( s- H9 I0 \$ T% i" c
& u2 ^# F8 @6 ]; y9 m" aBOOL CWndAutoFood: rocess()
! j# ?5 r4 m' U/ K$ W) n) w3 Q{
; j }3 |8 w! e! g2 e3 S, N if( bStart )
$ x, x# V% R! H, R {
' y S. x; z8 B y6 c: m; ^ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
# T' C4 u, h9 T1 t/ {$ H {7 {0 W! u' w2 x- v" N9 n
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
! {1 R. ?1 N) k7 N( T: P8 Q: i g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );2 k& |" J! s! a0 S% z
}else{
" O& R1 d- c2 I l( ~! U bStart = FALSE;# c/ ~: o& [7 {* g
m_pItemElem = NULL;( `' m% Y# Y- |
}; E/ v& e) Y4 g/ N
}3 c4 y5 Y6 l0 {) h$ X
return TRUE;# w( _* H; f4 m% X5 Q" S" k! Q
}
- \( B% P) G' c# x: i
4 `: V$ p( c3 U; S* l! W; t登录视频废话:
3 ~1 u( j* t. q& A0 L" C尾翼:
" ?9 a M; k8 ~1 V) s) p7 |6 y8 `! U8 h, ^2 o
代码:& r9 B+ Z* z* `$ c' i
& P) x! A3 D% W- f: o4 |
void CWorld::SetLight( BOOL bLight )
; Q, ^# c: G1 g7 _1 U4 U3 [$ odurch
/ ^( ]/ }1 v) ?Code:
( m8 C' q9 i8 ?7 I: g6 zvoid CWorld::SetLight( BOOL bLight )- \8 r* h& S5 h% j2 a8 H: q4 u
{
" J4 I* c% Y' g$ ^$ p //ACE("SetLight %d \n", bLight);
1 W! P, x5 L2 L- M+ a; U
m5 z# k+ K8 X! e' [#ifndef __WORLDSERVER
; m5 B# f: g3 g7 ^9 j) e DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);9 ]3 |* R7 T. @' v8 H
CLight* pLight = NULL;
; p; K$ t p5 R6 ?4 j
/ U% j; j: z; [0 a5 q D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );# x4 s* _+ [* _1 Z% @, N' h
6 G/ Y* Y' d/ | V, N pLight = GetLight( "direction" );
4 y6 U: C$ Y' u- {$ K/ I
! z8 y2 J4 Q2 Z- C3 F#if __VER >= 15 // __BS_CHANGING_ENVIR
( ^" a/ O7 q; L7 T$ D3 U if( g_pPlayer ){
' t5 ^ L9 t# g ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) ); |0 F/ Z$ m6 H1 Q
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
. r- I9 Y# d g0 {6 ^3 ? {) N5 h; g+ h% t; ^
if( pLight )
- @: M) r3 `8 O) f4 e4 ` {
, F3 o/ J# M9 F8 T' J5 R pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
3 c& e" ~8 S% k pLight->Ambient.g = pInfo->_fAmbient[ 1 ];& l8 ^. r# {* k# b. j6 b
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
1 g7 @7 V1 s' Y2 g2 p5 f. i- k: a Q! y+ }2 Z" q4 s
pLight->Specular.r = 2.0f;; l! f# k# N2 o% L' E! b& N; g
pLight->Specular.g = 2.0f;
5 {$ B) _3 D* g6 ` D8 v pLight->Specular.b = 2.0f;
" ~* Z% N' w/ t3 _$ K# k
" r. }7 c' \2 q- g/ f6 M pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
" R# v) |6 t' q7 \. M6 g! ] pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! g# E2 @( k. T9 R J
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ]; d R- J+ K2 E: b$ e6 `' g9 C
$ [6 O) Z6 O4 y5 P
HookUpdateLight( pLight ); % L8 [& {3 X! s5 m8 i! j' J
; h; K) a% [# E0 _ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: ?+ r, ~. G2 [2 |$ h6 Q: V
/ A' f- L- O/ B! F4 V, I% }1 l
pLight->Diffuse.r *= 1.2f;
* a* f3 v( u, P3 _! f pLight->Diffuse.g *= 1.2f;( \& f% r4 S) b7 L) c9 {
pLight->Diffuse.b *= 1.2f;; @/ b" G$ k0 I( Q
. K5 M/ ^- {2 m
pLight->Ambient.r *= 0.8f;
% {! M' F. U ~% r& b* r# b pLight->Ambient.g *= 0.8f;. E0 Y- M0 @2 @: @- ?
pLight->Ambient.b *= 0.8f;
4 W: ^& g' Y$ D3 l4 o8 P* ]/ R/ Q( H / b0 f4 N$ K' x% [: p
memcpy( &m_light, pLight, sizeof( m_light ) );
# G- F2 I0 t v
7 D- _6 ` J# B R D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: p. Q* `* a2 [* {( L+ [
D3DXVec3Normalize(&(vecSun),&(vecSun));
6 o# G4 v2 s. L pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ( ^, k" q+ R/ C+ l
pLight->Appear( m_pd3dDevice, TRUE );/ q8 f9 Q% o+ Y8 w9 J% k' W( o8 z
4 s& l. k& f5 X E$ v1 u
DWORD dwR, dwG, dwB;
8 I5 M% k: M9 _ H: ^ dwR = (DWORD)( pLight->Ambient.r * 255 );
& a# ^3 F- v6 u5 { dwG = (DWORD)( pLight->Ambient.g * 255 );
) w& J& j2 @0 y" h0 _; O) i dwB = (DWORD)( pLight->Ambient.b * 255 );
7 S( @0 x& F6 W% [( U/ j dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# U+ k2 J" }/ Z; D) r3 p8 Y8 k
}8 h6 J9 J3 M4 ^6 f8 X
}7 u- K& x1 t2 B/ @$ g
}! w# s, V! M6 J& R" W% l
else
3 D9 j) ]/ O1 \. B M8 v- v9 S#endif
6 H0 G3 @/ k' t: ~& i, W8 Y2 v/ x/ \. o5 C* S3 I a5 {
if( m_bIsIndoor )' J2 t1 j4 j! t* s/ n
{" q: N4 D* u6 o+ |7 L2 B
if( pLight )
/ I3 M* p$ j7 H { 2 \) J8 _3 Z( E# O
// à??μ oˉè*
" N: R/ X/ d7 b2 d pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;8 h6 o1 F# A6 o/ ^' }, f3 V8 p
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;1 s& X! E' O4 l {* h
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
/ X6 F% ~# Z3 ^" j) i' j
2 ~2 o$ a& S$ K1 m // oˉè* ??à?
- L' R9 j' ^' n5 K pLight->Specular.r = 1.0f;4 ]0 U! G; O6 [# f
pLight->Specular.g = 1.0f;8 T! O/ E0 n" t( l
pLight->Specular.b = 1.0f; }" D2 H2 r: B3 H4 C# k/ ?9 J
// àü?? oˉè* 8 K2 k" c( J6 Y2 y
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" v9 R) L4 v2 Z4 [, { pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ n3 G+ O: t2 T
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 t! |: {6 B& ?; V( r! M) {: b I8 m* J; c/ K
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 T& A7 p* x: j* ?6 f8 o! V {2 ]0 y' i" ?1 O
pLight->Diffuse.r *= 0.6f;( F! ^ D6 D5 b1 u$ G
pLight->Diffuse.g *= 0.6f;: _7 |: r) a) M
pLight->Diffuse.b *= 0.6f;
7 S/ o0 F& n7 v pLight->Ambient.r *= 0.7f;
' D# w* p6 ~5 z5 z2 g6 i pLight->Ambient.g *= 0.7f;
5 [2 v1 M4 E; \9 Z/ `" f" d& t pLight->Ambient.b *= 0.7f;
- N$ {' r! M0 [" P$ ^0 Y) D- J }
; O8 H) H2 X% k0 P! ?& @8 Y8 ?: x7 C* z2 R% s
#if __VER >= 15 // __BS_CHANGING_ENVIR
# I0 @# _2 n% C# ^" p J3 g if( g_pPlayer )
# [# [% R/ k' O9 j# E HookUpdateLight( pLight );- @/ f- f2 @# ]# ]2 `/ M
#endif
, Y2 E6 }5 g: M8 U memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 w; r( A4 \0 s2 Q+ K
]& h& `( L& B) U6 s pLight->Diffuse.r += 0.1f;! w; u5 o# V7 X0 U/ {& Y( ]
pLight->Diffuse.g += 0.1f;
3 o5 _+ r6 p5 k pLight->Diffuse.b += 0.1f;
% K7 _% h9 Q" o: V! ~ // oˉè* ??à?
& Y+ h. @- R3 {3 E% {6 L pLight->Specular.r = 2.0f;$ {% S+ N) u) L+ ?. ^* c
pLight->Specular.g = 2.0f;( A. U1 y9 K) g( F
pLight->Specular.b = 2.0f;
" U O8 X3 Y7 J8 j- \" s // á?oˉ
8 v$ y/ g' r! l8 D e+ j: C$ j pLight->Ambient.r *= 0.9f;
0 _" J% u' e- P' `" R! @6 j pLight->Ambient.g *= 0.9f;% K2 I" ~, z B6 H2 {0 ^$ |, e
pLight->Ambient.b *= 0.9f;
6 A- P8 r# G7 @$ r# y. W% p1 V- O
9 K* S) p, x6 v$ s. O) e memcpy( &m_light, pLight, sizeof( m_light ) );# x- z- u9 Y2 `+ ?5 v6 @' ^; b
* O' `2 e7 q* I- Z pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
1 c: q: F4 G; {- X9 K/ I pLight->Appear( m_pd3dDevice, TRUE );
$ j6 Q) w4 y+ E6 W5 f- ?
+ _, y, L1 c9 W. b8 Z DWORD dwR, dwG, dwB;. x7 `7 w# r) Z U! t
dwR = (DWORD)( pLight->Ambient.r * 255 );- J6 K8 M# I7 d- i$ @
dwG = (DWORD)( pLight->Ambient.g * 255 );
! o0 u1 k4 R" U! q' e dwB = (DWORD)( pLight->Ambient.b * 255 );
& J# A: D' g* g: Z* r dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 {7 S+ `0 W9 v) P( R" _
}
; {; ?* F" i* N, C" P, n* s }1 L; d" m- A4 c3 V# u
else+ m8 ~2 p! a: V4 i
{( \9 E+ x/ V1 D! p* A
if( pLight ). }- Y* H3 X% E0 P0 \, ?- w
{ P' U% k, ]6 ?# l2 a' O5 m- d
: U- f/ T7 {# y* G: }, T, g2 ?
int nHour = 8, nMin = 0;
7 b+ g6 B7 d9 A' p4 m #ifdef __CLIENT
, y+ R4 z" e4 A3 N: \ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
! E4 |# a/ {+ D* A5 X nHour = g_GameTimer.m_nHour;
2 t9 r3 V3 P5 j3 |) A nMin = g_GameTimer.m_nMin ;
6 r/ W# v2 N6 g #else
' u7 k2 q' A3 d& H) J( h // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.% l+ Q, n, x+ I! P) v; J: x) `
if( m_nLightType == 1 )
4 i0 S% D+ w! {7 f9 [0 C nHour = m_nLightHour;
/ y1 Z6 h$ z. O I& @ #endif
, S- m: w X7 H* @ B2 }5 @1 u nHour--;
& q' c% y# K: t( C9 ^ if( nHour < 0 ) nHour = 0;
. T- e1 I* _/ K if( nHour > 23 ) nHour = 23;' h* A) c2 e, ~: p; l# b2 A( J+ H
0 L- s- j1 @8 b( G ^ //if( m_bFixedHour )
8 ~7 F [& \/ K/ [/ K' m5 `8 i' c // nHour = m_nFixedHour, nMin = 0;
- G- `; D7 j2 r* b+ c2 k LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
$ e+ h3 ]" c, Q0 m$ @5 c LIGHTCOLOR lightColor = m_k24Light[ nHour ];7 ]: T6 ?9 c# N! ~8 o
1 w9 L: q) A K1 I$ U# P4 Q
//m_lightColor = lightColorPrv;1 Z$ ~+ q3 @. _4 j
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;2 k8 v" n9 ]9 z" y2 h& \1 F
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
, s; c6 l( [6 b- Z, [: ]! K. { lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;2 _9 _' Z8 f& g* O) d8 V* K- S
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
* g( |7 [4 Y/ H: t$ E, X lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
4 X" ^1 e% _: J" o: i/ ~ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
w+ ^* n# z# J, [+ I; I# D // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% D- o) `' W- A3 [: I
4 E; y1 s& N. y // à??μ oˉè* * Q2 q3 A3 r- G
pLight->Diffuse.r = lightColorPrv.r1;, @" S @0 v2 B( ]& ]) o4 m4 h6 o( ?1 U
pLight->Diffuse.g = lightColorPrv.g1;& D8 ]9 ^, L/ A
pLight->Diffuse.b = lightColorPrv.b1;
6 ~. x, G; `4 b% y1 Q/ Z: P# W( ?* | // oˉè* ??à? " e5 \& ]: ^2 w) M- K! u C
pLight->Specular.r = 1.0f;0 Z8 y r* L* v4 j9 F8 ~5 ]
pLight->Specular.g = 1.0f;1 _* |0 N Y! x2 P, V5 t2 W
pLight->Specular.b = 1.0f;
( C& i5 e) _6 P8 J // àü?? oˉè*
1 H1 @& m5 r! V5 v! q3 D6 J pLight->Ambient.r = lightColorPrv.r2;
) X; Y" p( u, x0 z pLight->Ambient.g = lightColorPrv.g2;2 w$ D" Y, t; s# B; z; N
pLight->Ambient.b = lightColorPrv.b2;
g& \/ k! x' Z* j W: r% y7 }
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., ^4 ~4 x- i5 o
{
, k* r/ Q; r1 E5 [2 c pLight->Diffuse.r *= 0.6f;& h' W V. v4 t- O
pLight->Diffuse.g *= 0.6f;0 a) B) G a1 p, i$ m" x
pLight->Diffuse.b *= 0.6f;
) T7 i/ R: i7 T, A) X7 R# s; v- K pLight->Ambient.r *= 0.7f;
' h1 {- k. x' w4 X. p% n pLight->Ambient.g *= 0.7f;: W; ~. o* p" n* r% y' t) y
pLight->Ambient.b *= 0.7f;
* k0 t# B v4 p' S8 v# L5 D8 v! W; X }
6 t& ]# `# v% U. S
' U4 ^2 z9 ?& f) L#if __VER >= 15 // __BS_CHANGING_ENVIR
& }7 |& w% M$ j* F2 o if( g_pPlayer )
! y7 ^0 Z* { P2 H4 l) R HookUpdateLight( pLight );
6 V4 X. g& t3 z+ A! m#endif# B, U" Q) |' |' _" L3 ~: A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );$ _! F9 r( T8 ~. x( b# U# |2 M
- j+ `6 F" J* h
#ifdef __YENV
1 G% s. p& H4 [& B6 D pLight->Diffuse.r *= 1.1f;
2 F$ [# f9 B. B. g pLight->Diffuse.g *= 1.1f;7 N: N6 k. s# k$ H9 G' H
pLight->Diffuse.b *= 1.1f;
4 {! j9 }$ ~: S4 | // oˉè* ??à?
/ H H8 _$ P) x: U pLight->Specular.r = 2.0f;
4 T7 d! [" T+ K2 h0 |# ^ pLight->Specular.g = 2.0f;! z" p6 R/ J+ S; Y3 H8 W
pLight->Specular.b = 2.0f;' k' [3 x# ^! \, J
// á?oˉ $ q4 [+ C6 G& ]/ _
pLight->Ambient.r *= 1.0f;& P4 K' R" c/ h
pLight->Ambient.g *= 1.0f;- ?7 A7 \+ h- b: N4 P
pLight->Ambient.b *= 1.0f;! B. V3 ~, x. ~
#else //__YENV, L+ k. E+ E* Y+ l7 g7 ^6 \
pLight->Diffuse.r *= 1.1f;! P( X' ?- k, @" y3 e" n
pLight->Diffuse.g *= 1.1f;" B$ t! y/ h! Q: z( B
pLight->Diffuse.b *= 1.1f;. s4 _$ a) s9 K0 P3 E
// oˉè* ??à? 6 O' B9 d4 q( f4 h5 ]
pLight->Specular.r = 2.0f;
7 u0 y& O( H0 Q pLight->Specular.g = 2.0f;. H0 B; {& h; B8 l5 N3 H
pLight->Specular.b = 2.0f;
7 c6 S" T* b! ~6 P" } // á?oˉ
$ x6 y: I/ v) G& R: Y pLight->Ambient.r *= 0.9f;6 g# f( Z9 _+ z
pLight->Ambient.g *= 0.9f;
- U. Q3 O$ n7 L$ @& v# F( b pLight->Ambient.b *= 0.9f;
# i$ B+ n0 [6 ^$ @6 c- Y#endif //__YENV " f6 B5 Z; N( r4 P/ ?0 h' Q f
& @% B7 }' Z+ p2 O# { memcpy( &m_light, pLight, sizeof( m_light ) );, B' i5 A7 j% N6 c4 U
) e% l9 }+ y: q- K* r D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
, D5 E* A' \5 O4 v0 ? D3DXMATRIX matTemp;
7 J' o% g9 ^$ {. w static const float CONS_VAL = 3.1415926f / 180.f;; ]2 h/ t, n$ b
1 M& ]# L0 Q m; Z3 t" g' P# P$ i) \
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
, f( F/ C. N$ d) I: y% D' D7 ? D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! j: C, `+ ~9 H
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
0 B% d; S8 I# G5 f pLight->Appear( m_pd3dDevice, TRUE );' ?1 t+ I r1 O2 d+ n8 I; d$ `
: @' z! ^& v( P7 m! \: ]& c3 C
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 Q3 [! k' f) ~+ S L0 O; q // D3DXVec3Normalize(&(vecSun),&(vecSun));
N( W. I: m: ?! B // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
3 m7 i) D$ ]4 R8 Y; i, X# j& [/ O4 {. E( l7 K
DWORD dwR, dwG, dwB;
# R e0 j" y7 d% k& C dwR = (DWORD)( pLight->Ambient.r * 255 );
& O& F8 G; I9 O0 u' ^# o9 g- c# t dwG = (DWORD)( pLight->Ambient.g * 255 );
( ?, V$ A# s9 g) N8 u* Q dwB = (DWORD)( pLight->Ambient.b * 255 );
4 Q/ {& G7 L" N" A* X+ A dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" ^; F+ T2 o) a1 m: O6 x } f: c% J6 m ?8 f. N2 H2 U
}% b4 ~! D$ {3 K1 v% X' E
" E5 |5 C0 D$ b& U5 ~( S, h m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );+ B1 r2 C5 Z( x2 p* }& c! P! s
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) );
v `9 l0 R. v ::SetLight( bLight );
, @' A( K5 `$ J/ D9 r( P/ R8 V. `" P0 n' ]8 y) S' [+ Y4 h
// ±ao? ?D?í???ó á¤à? " c7 W7 u& Q, g' i9 ?
m_pd3dDevice->SetMaterial( &m_baseMaterial );) `+ r1 o# i- S$ b& M7 C
3 N: [5 w( x/ R" a! ]/ a
#endif // not WORLDSERVER/ |( k! p `/ c v
}+ n, F/ `8 B! H9 o G& |5 l
并更换! \+ N, E p- h% z
Code:/ [% @, j* U4 V9 x9 S
__FLYFF_INITPAGE_EXT3 z: Q9 A" ~( `1 ^
定义
( C! l) r: _8 G* i" H" S8 R6 ~% b" ~; M6 b5 ]0 N
5 ]6 f+ A* t7 j$ @# Z2 [' U
7 Z5 x! l! N+ W8 _5 B5 q2 g3 s& e$ Q: s/ [2 y
现在终于删除我的狗屁加速...
" @( {+ j. S) k c" p# g, S) ~5 y) L: x* I: W9 b) N5 N
1 K) d3 a; X: _! z: W
) L+ S0 N3 k& O2 ~6 J |
|