|
食品车:
( M$ c# G9 s! S# J- _尾翼:. g" R) f9 d/ L' g# {/ a
# C( A. \! w& o8 y) x% k1 u1 l2 `' x
代码:
* `4 ?% g+ b# C; sCWndAutoFood::CWndAutoFood()
; ~( ]) { F% j+ B$ ^7 j% [{
- |8 x' c& q( X; o( K9 o m_pItemElem = NULL;
* |! k- f `; H0 F, Z, ~# ^ m_pTexture = NULL;
+ H7 S' _5 a3 M: r. R5 X, }4 N9 R2 P bStart = FALSE;2 x8 r7 |( X' r! A
}
* i9 Z& {+ N' u+ Y5 h& B: J A/ e$ P; c$ \
CWndAutoFood::~CWndAutoFood()- j- j; i8 Y j8 |5 t0 F o) h
{
' ~* ^9 C6 @8 A4 P! h# W AfxMessageBox( "AutoFood ist gestorben " ); k8 N8 f; ]$ |
}
$ d: p% g t* wBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )! o) |) D" D! w1 R- H; Q$ S9 P
{# [" ?( J5 z% A) P; K
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
1 a9 N7 C* `6 Y0 }. u* h}" Z1 K( H. p* U6 T# J6 I+ n
) Z- g! w' f0 u: c' oBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
O Q: N2 u4 T- v, [: u{8 k/ n, G R* a! A( V
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, K; |: Y% g! y o' ]" p1 z q CRect rect = pWndCtrl->rect;
* n0 i& E, T% g& \5 q if( rect && rect.PtInRect( point ) )$ b" ~- V" V9 y/ s9 Y0 v
{
: G* ~* X% a) u CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
3 f& O2 \- ~+ ~+ w4 ~ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )) E4 L4 ~, D1 |& {4 P, y& d8 ^
{
9 x Y5 H; Q# @/ G" y if( m_pItemElem )
3 n' z( X6 K' c$ s1 r" c {
- z4 x1 J. q% j0 `/ _ m_pItemElem = NULL;
4 M# V$ L `; L, e1 a }
5 Q, J7 I' N' G* s( }8 s m_pItemElem = pItemElem;3 [; F8 L9 [, Y# Z4 U5 L
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 x% G$ g& y: L7 ?
}else{- y3 a7 r* d- {* b
SetForbid( TRUE );9 w3 `* O+ _. ] [
}
9 B. r, d _ C2 y7 i1 O }else{
' A1 I, q5 \+ ^) V! M SetForbid( TRUE );/ e7 T3 }# k6 d$ ~8 j% M
}
( f* V$ q. W# G+ v6 r; R return TRUE;& w0 U. p9 b, G# K. Q @
}; A1 u: R6 L# m# L
. ?& d m5 R( B+ JBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )1 ~9 m* y5 e) v0 B$ e, B3 N
{
" c3 f" {8 ^7 Z* l2 c7 E switch( nID )5 k6 B6 j1 K- W h. x/ w; o, C
{
- z0 K( x" E! {: L2 \, u5 y case WIDC_BUTTON3:
; @% f5 W G0 Q7 U5 Z" Y {
" X( ^8 r, L2 i" V bStart = TRUE;5 b) t9 k% W' b! P& N- N q+ a
break;
$ j# P$ q. U3 `0 U( A* q: f }9 o- n$ |! K$ _/ g; U3 z
case WIDC_BUTTON4:
4 o8 z# X2 @8 L' M/ H2 k$ D {
% ?3 X9 p5 s& @* [ bStart = FALSE;1 A9 Y0 Z4 W1 V- S
break;: L* { K% h. p
}
& W5 w, m% r1 o$ M; N }
& Q9 {: C- h. J: ?# l, _) ]+ I return CWndNeuz::OnChildNotify( message, nID, pLResult );
4 h$ K6 b1 u9 v7 X4 W3 A( V} ! v6 C1 |; Q; |& N) ~
void CWndAutoFood::OnDraw( C2DRender* p2DRender )8 N; h2 t6 h; o; ?
{' G* s, o, e; u- D' M& G# P+ e
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
) n F$ w. s5 G" P7 Y1 ? if( bStart || !m_pItemElem )5 z& F, D. r7 }/ q: ?* S
{' X9 M% J) P/ L; n
pBtn->EnableWindow( FALSE );
( r+ T- m0 x/ L T, @5 y; z8 K }else; y$ R6 E' j+ r1 ?# F+ @
pBtn->EnableWindow( TRUE );
! y' v, q! I" r! B1 f! g0 R if( m_pTexture )
7 K) T( q- J4 n3 z" | {
, T/ u' q2 M& q; Z6 W LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 Z. i) n3 H1 r+ N: D
if( wndCtrl && wndCtrl->rect )
3 n8 O$ N0 y0 Y {% a9 ]+ | I3 p/ e0 O4 N
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
1 o( A+ @4 l6 ~5 v. v& \ }# g K0 [1 b. l$ x% s7 l! K/ R
}
3 ^1 o6 \% S! i0 a- v. e) R! \" c}$ j& n8 s- V3 e
3 s$ s9 F8 E8 X3 Z
BOOL CWndAutoFood: rocess()% |, L' W e( a! s! G
{- Q: ]- k& \6 [: \
if( bStart )
, v- @0 k4 r* _' h4 p7 S& j { J7 ~- C! m. F& C8 N; J6 ~- U& X
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
7 _, n* d2 c! P! g: o' p# T" {: I& x {( n, u$ b. z# Z) M
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
7 O3 Y# ^' J3 P' Q8 b g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );2 {1 a3 w: O( u( {
}else{, O8 U1 O4 \$ J+ q- I1 f
bStart = FALSE;
7 n/ O6 ^6 E. N- O m_pItemElem = NULL;
# A+ T/ X/ R$ {2 K3 L } |- G5 a7 S6 T) O2 `$ Z( w+ n6 m, G
}
" L2 P, F* n+ Z6 U9 k3 J' V return TRUE;
% s9 w6 D4 D0 u! k9 P}7 \' u8 R) N0 w/ G! m, E, q1 e
, G& m3 A. H' t% ]3 l+ e6 _/ l登录视频废话:
! A F# g7 N1 X' k. p0 J! w尾翼:; t* P) W( _- \9 Q; `- R
0 [7 J" B# o6 n代码: w v2 s$ D% Y" a( G, e
* p3 @3 o# h% ~5 |& C- X3 i0 C1 uvoid CWorld::SetLight( BOOL bLight )0 ] Z+ z5 }. ^- a. U/ g& A
durch- I+ s+ @* Q6 F/ s
Code:
- P( K6 f ]) Hvoid CWorld::SetLight( BOOL bLight )
. R3 v1 ?, P j{3 k# m# e8 A0 Y( `7 A" n4 e
//ACE("SetLight %d \n", bLight);; z4 I) m6 @$ c& k. T3 z D
1 u# h) N6 \, Q. V4 J. K+ X
#ifndef __WORLDSERVER ( h- E% D; w- ~+ ^
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);2 X0 l& {$ E2 q1 B) X
CLight* pLight = NULL;
. v" m: Y; I) H5 N6 r j, [) c6 j: D9 E! m
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );$ |0 B+ K) f' G- t" T. K
& Q! s# \3 S6 L6 @$ z
pLight = GetLight( "direction" );) @* E3 M' g3 l+ S) Y( T" a
3 L) f/ _1 i, Y0 O2 t/ @
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 D( l1 ?* V& l8 M* e if( g_pPlayer ){, \5 G8 H. y: v- Q4 {3 L" F b- h1 k/ u
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
2 g6 d, |' T M5 h0 N) |, y1 l/ [/ u if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
% }9 x; Z" h0 J5 S {7 q' E% \7 M6 j* J. |- d
if( pLight )
" [4 B7 p0 a3 _: G- P; w {
1 g1 q2 E) t& S* R pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) S/ e# I7 C. H, H, L1 l8 r
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];: R% J0 C; C7 {( g7 {8 n
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
. [( \. E9 O! @! e- R/ Z* O9 ^0 O
1 ~) O* t$ N! [$ E/ D& i& N pLight->Specular.r = 2.0f;
+ P& H% I: W0 P8 E pLight->Specular.g = 2.0f;
& v) |0 Y7 i, l/ a1 C pLight->Specular.b = 2.0f;
$ r, ]+ y0 v' s. b! H) u F : V( V3 d/ p* q7 z7 M7 m
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
R( `! \1 E+ s- I( U7 d% S$ m: | pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];9 J1 \9 i) X: e8 c. A9 _8 q) I
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];- v# T, R* N- w. }6 F. Z* `
~$ c' s% Y; l8 u [( |2 @+ M+ O
HookUpdateLight( pLight ); ) Q; V6 T. P( W' L% o
" b2 R# m4 a W3 l/ T& |# j memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% R1 a8 W0 n2 s Q3 P2 |' a- M
" {8 J' a% j: L2 X. [$ u. P% M pLight->Diffuse.r *= 1.2f;. `) y: G* g4 o' Q
pLight->Diffuse.g *= 1.2f;
" N O V" D, H3 i. u pLight->Diffuse.b *= 1.2f;
$ o) ?# P- `& K5 ]1 X% ~. @8 M% k' h7 q3 w$ e! Q
pLight->Ambient.r *= 0.8f;# Z+ H! u, M3 A U7 M* a. Q
pLight->Ambient.g *= 0.8f;, `! S5 {1 L$ C% W5 n
pLight->Ambient.b *= 0.8f;
$ r3 y, U/ ~* ~; w% _. E8 F 1 r' _. ^1 I& A; Y
memcpy( &m_light, pLight, sizeof( m_light ) );$ g$ c7 `: M8 o$ o' z" d4 j
/ e7 ~% m1 ^) h$ Q- C/ o D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 X. l! I4 F% N$ o: J6 q D3DXVec3Normalize(&(vecSun),&(vecSun));
& O h2 l9 m! h. I t- R! Q pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 u, ~( R. I" W9 q( |* X# ]
pLight->Appear( m_pd3dDevice, TRUE );
6 n/ B" F+ j" I" i4 s/ @, d1 U ; j+ W$ F: t4 m3 K. U0 G: u
DWORD dwR, dwG, dwB;
3 M* y- K7 I$ Z2 U) H% H! W$ S- w dwR = (DWORD)( pLight->Ambient.r * 255 );" P, Z6 E4 W8 }8 C1 G5 z
dwG = (DWORD)( pLight->Ambient.g * 255 );/ H! A0 { b& j! k' S
dwB = (DWORD)( pLight->Ambient.b * 255 );3 z6 R; I7 j/ @- V! E$ _, y
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 p6 t; X- [4 j# G }5 Y4 h/ V7 ^- f% T2 n# ?7 _
}. E( V" i2 K1 f9 T1 G
}1 x. d {+ }' a; o; ~0 w, a
else
) L7 m& D$ z' v7 G8 x: A% i' a#endif
! g% R% D- X6 P1 L
( k9 {3 ~6 r% B! Y) y if( m_bIsIndoor )+ W: k6 W1 L: w( b$ |
{
7 Y2 H# v" b* i4 u; @2 v if( pLight )8 b0 F; [$ j( o" t5 m
{
( F6 C$ L" q( k& B0 x [6 K3 W# J // à??μ oˉè* 6 d2 k, V0 p a z" ]
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;% h# j8 Y( I; y& X* |
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 d. @7 ]0 Y; c( f, p2 | pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
# ~9 N1 @! ?0 R* s
, l- z5 l) w- ^& I( q // oˉè* ??à?
a( t' z- H: Z pLight->Specular.r = 1.0f;
% J) |! ]& |* \ pLight->Specular.g = 1.0f;
; @! U' z2 r n" G' g pLight->Specular.b = 1.0f;
- {, v; K0 e8 a, o // àü?? oˉè*
3 Z, Q7 |& m' u! ^9 O, c: m pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;/ V& A! K3 |( a$ F$ @! H; D
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
5 C! _& [! d$ a* f3 j4 z pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
! \9 ?9 M+ L' ~2 {5 [8 Y7 F* Z G! x- {1 `) I
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# o/ k* M4 H+ I- d7 w
{
9 l& ?. V; f5 c% h) _ pLight->Diffuse.r *= 0.6f;/ a; ]; b; u$ g% ~5 A
pLight->Diffuse.g *= 0.6f;% f x8 a' @3 O5 F' z( d; X
pLight->Diffuse.b *= 0.6f;
) c5 A3 W# U, p4 \4 g. D# ? pLight->Ambient.r *= 0.7f;; N1 V2 o! O# H- Q3 d" R
pLight->Ambient.g *= 0.7f;# b5 b; Y; ^& T$ d, D: `
pLight->Ambient.b *= 0.7f;! Z. f& c& E$ [- J( B
}
: ?! m2 ]% {" z5 i4 L4 e9 @* l% x9 F6 e3 v5 M
#if __VER >= 15 // __BS_CHANGING_ENVIR
$ I6 F0 ^6 N, {, N1 s* p if( g_pPlayer )1 O% O: M4 Q L- c* j# G
HookUpdateLight( pLight );
1 K# C% r7 E$ j! [& b#endif
; G5 \3 n! s$ m% g/ N memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
& ?; x& W, m* I) H5 o9 s2 u B! K* X \* _! C+ `/ ?2 e
pLight->Diffuse.r += 0.1f;, B, a5 S3 r/ Z( K% Q9 J/ o2 T
pLight->Diffuse.g += 0.1f;
U( z+ U# S- w pLight->Diffuse.b += 0.1f;
7 g: t9 z) o1 g9 ^- q. A) } [4 {6 Q // oˉè* ??à?
, S; D# T; `6 v+ n/ [7 K pLight->Specular.r = 2.0f;" @# L' Y/ l8 F6 r' M
pLight->Specular.g = 2.0f;
* e: l& E$ E8 H) X* f- b pLight->Specular.b = 2.0f;* Z( K9 u, B: b; l* F
// á?oˉ d5 C( @/ s g$ t
pLight->Ambient.r *= 0.9f;
t2 _. L% W* f pLight->Ambient.g *= 0.9f;
& b1 }) ]4 W5 R: s* M0 p9 _ pLight->Ambient.b *= 0.9f;
7 |+ b, W* Z5 U( U3 S& {- t
! u5 e [, k$ T/ } memcpy( &m_light, pLight, sizeof( m_light ) );
$ c: ]! z: J, ]' A; \1 D
* m& `# F0 ~8 h" E) S pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
- C( L$ D5 c* t5 z9 a! k pLight->Appear( m_pd3dDevice, TRUE );
# ?4 r7 B, m" C
3 ~; U. R- ^3 J$ E/ o5 J4 ~1 l5 i DWORD dwR, dwG, dwB;
3 H9 @4 P. ?; M+ z/ F/ k+ U dwR = (DWORD)( pLight->Ambient.r * 255 );
5 w6 O- |8 W# }) r2 w dwG = (DWORD)( pLight->Ambient.g * 255 );9 G3 l3 [0 Z2 x! ~& \) A( `5 l
dwB = (DWORD)( pLight->Ambient.b * 255 );
4 u' X) }1 @/ g S* q. u dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 c+ p: \8 g4 L
}7 J* x% X" t0 F9 m4 N2 G
}5 X" H0 p/ U1 g& n8 o
else
( S0 W, a; ] { A! |4 K& m {
7 C/ y# J# Z+ m. t, U4 q/ g' w if( pLight )& y; k1 Z# N( S, t$ D
{$ g' B# ^# ?4 i, x( V' W- i
/ T8 p% D: Y- p& v% J* W
int nHour = 8, nMin = 0;
' \0 y- F' K$ |& i #ifdef __CLIENT, G+ T+ [2 a; ^6 ?- W9 x
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
: a: S0 A' l1 j nHour = g_GameTimer.m_nHour;
i! X. A4 d& P n! u9 g nMin = g_GameTimer.m_nMin ;
" o/ K' F7 \8 p #else
# w q2 ^; `7 { // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
r7 w- ^; X D$ _6 o" j* c* o if( m_nLightType == 1 )- Z# N3 j* t/ H. n! s
nHour = m_nLightHour;
$ ~( N+ W7 o5 B. ?$ u: J( r4 \6 T #endif0 K X" g9 O( Y: W: [. L$ Z) ~4 L6 F
nHour--;& a- I; V+ P, q
if( nHour < 0 ) nHour = 0;
' U2 h# H7 c4 l. A3 t. S3 ~5 G if( nHour > 23 ) nHour = 23;
. L: ^7 S/ u) G& K- i4 p% ~
' x" e1 Y3 L; i$ e: k# x: c, C/ E( T1 w //if( m_bFixedHour )& q( M. ?+ g7 ~; l. K+ R
// nHour = m_nFixedHour, nMin = 0;
& r' Q0 D, N) K% C$ j. I4 P LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];* Y! {9 ^9 b/ |/ u: C
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
+ I" p1 a/ |# S* B% ~6 t6 @/ V
- H8 A& [2 w# F; s0 ]" B& j //m_lightColor = lightColorPrv;
7 S! P; P0 l- [. C" o lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! M$ H0 y5 {* O lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;6 s! {0 c8 @9 [& t9 |
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;, u+ k& V0 m2 d. m9 ^
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
+ ^( K {( e# T' w7 S4 { lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
( a- h* _, M3 a c: n lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
1 S2 E" O F, w w! ^8 d // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)5 Q, v# d8 R5 w+ }# }2 M( D* H/ [
# a7 E$ h ~! L2 q7 m; d // à??μ oˉè*
B2 n. G1 _! s# N pLight->Diffuse.r = lightColorPrv.r1;
( {/ { N3 Y% S pLight->Diffuse.g = lightColorPrv.g1;2 W8 T5 Z8 x7 x: X0 |, C
pLight->Diffuse.b = lightColorPrv.b1;, w: s5 j6 e( c
// oˉè* ??à?
: F2 ?+ F* o2 [8 W6 ^ pLight->Specular.r = 1.0f;1 U! }+ ]+ ^$ ?5 k; n$ Y
pLight->Specular.g = 1.0f; u9 \+ O3 V& g- k' j
pLight->Specular.b = 1.0f;
I( J" R, k$ e! [) P7 j. [8 q // àü?? oˉè*
; p. g" ~. U" v' D7 \ pLight->Ambient.r = lightColorPrv.r2;& z0 R) ^8 S$ o" w/ R$ p+ a
pLight->Ambient.g = lightColorPrv.g2; w5 j L/ a& T* T& G* o2 [
pLight->Ambient.b = lightColorPrv.b2;$ Z8 X8 B+ E5 {. {& @( v
4 m9 i7 i, e: e6 G' l if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 r9 V1 r6 E0 @1 U4 w; Y1 e {
6 `, f( v2 V& A" \, K' C4 K pLight->Diffuse.r *= 0.6f;
$ V9 d/ N0 x9 q$ _1 r4 i% o6 S pLight->Diffuse.g *= 0.6f;3 W7 b8 h7 C0 C3 A- N7 c* J. {
pLight->Diffuse.b *= 0.6f;$ v7 G& ]( K) C9 g
pLight->Ambient.r *= 0.7f;* g G8 u0 ~: u
pLight->Ambient.g *= 0.7f;
$ ^8 r: l# D/ J2 Q6 @+ b; J+ P1 K pLight->Ambient.b *= 0.7f;
: s7 G2 `# f T# q& l& ]8 p }
9 T4 Y# d# `) i% Q9 W# L' ]; [ " S) K+ F: E+ ?2 S( w8 A0 v: b
#if __VER >= 15 // __BS_CHANGING_ENVIR, P: q; A; s) K% n$ [' \3 ^, s
if( g_pPlayer )$ v, [0 y3 E1 w" z, d, l
HookUpdateLight( pLight ); b/ x* B. C+ ]" t6 {, m
#endif
' z, H0 d* c2 d3 } memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! }7 ~5 A4 j, t1 o: m+ T( z/ E4 G
1 {4 g$ G$ x/ Q4 E#ifdef __YENV
5 v" }5 h9 M) [7 d/ g( [: A3 M$ i pLight->Diffuse.r *= 1.1f;
6 _/ r& X2 H+ i. ^- [ w- n pLight->Diffuse.g *= 1.1f;
* Y S/ ~' D9 ~: j+ v pLight->Diffuse.b *= 1.1f;" p7 F: j" R' _2 a g, Z
// oˉè* ??à?
+ @0 {2 o9 m2 x) j( @$ }: ^ pLight->Specular.r = 2.0f;
( o) L: ]9 h) m5 E* N$ U pLight->Specular.g = 2.0f;" `4 z3 y& _ Q" {- F7 ]
pLight->Specular.b = 2.0f;" t N4 E, B4 g# ~: k
// á?oˉ . |: [1 o& S' ~ b* a# Q
pLight->Ambient.r *= 1.0f;$ a5 z5 C! M! _4 d
pLight->Ambient.g *= 1.0f;0 _7 E7 P' f$ t/ d6 f
pLight->Ambient.b *= 1.0f;+ M- a3 }- \7 |4 l* z
#else //__YENV% d# }# v7 i# Y; z6 Z3 C
pLight->Diffuse.r *= 1.1f;
: P# F, @# S' K* J$ E& }, x# [: ` pLight->Diffuse.g *= 1.1f;. i& P7 F \; \4 x$ q
pLight->Diffuse.b *= 1.1f;
% P4 l* X# C- ^# S // oˉè* ??à?
( @# t' ~$ p9 a$ S! t/ G pLight->Specular.r = 2.0f;
; F0 Y* S: p# z" S- t3 A2 ]; u pLight->Specular.g = 2.0f;7 q3 |3 r6 M' d0 L4 w! H: ~+ d
pLight->Specular.b = 2.0f;
& Z" l2 D3 C' z6 W. `: n: F X // á?oˉ
N% {( y6 Z" M. k, q( ] pLight->Ambient.r *= 0.9f;, C: V( n8 g( P1 n7 ?% J
pLight->Ambient.g *= 0.9f;* n3 A( W+ P, k5 ]% E
pLight->Ambient.b *= 0.9f;( }2 n" c, @; A% o8 n# n. U
#endif //__YENV
3 o& t2 n5 @; f. ^/ ^; Z5 x V 6 q" J- D- V0 ?) _
memcpy( &m_light, pLight, sizeof( m_light ) );. J9 ~. C9 X! d O
4 @' n: n9 @& e. m; d6 k D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);9 N6 |/ K3 Y8 t0 s5 ?
D3DXMATRIX matTemp;
5 H$ N( J/ M# U" z3 P static const float CONS_VAL = 3.1415926f / 180.f;
" ~5 E! a( z% v0 m' E+ C
% b q* t# w, z6 @* L D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);6 M) B$ A9 J: ~; M
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
( |2 A; ?* i# K1 z+ X pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); & `2 i1 ^0 d4 H2 P1 {4 \
pLight->Appear( m_pd3dDevice, TRUE );' T$ m6 x A2 ?# ?- u
, W2 |8 w* p* i$ a5 D0 n, U$ ^2 b // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 d0 z; t: l- o& k- S5 U# F
// D3DXVec3Normalize(&(vecSun),&(vecSun));
3 t, I) Q; @; o, p // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); - n' S6 C2 ?0 @9 P% ?: r2 C" u
" Y7 z9 t* } L! Y* R8 |: m+ @
DWORD dwR, dwG, dwB;
& [. k& R" E6 h9 [* |: ?, s dwR = (DWORD)( pLight->Ambient.r * 255 );
$ ?$ r# q$ D! X/ `$ b dwG = (DWORD)( pLight->Ambient.g * 255 );0 Y3 I/ E+ @2 i' G: ?
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 P" D) p% [% q7 O" @ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ; x2 F+ ^( z: X
}5 `8 B" N: O# t
}8 F, D4 y: Y. M" m' V
4 ]8 h' G9 n+ U) H2 o
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
& e) z* B* `& w' g- L 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) );
* E$ I7 v' @$ q' \$ h; d ::SetLight( bLight );
7 ]4 {; [" R7 d: m! t. K; S( R: s3 _1 z' e; q
// ±ao? ?D?í???ó á¤à? 3 j' k( d2 J6 _$ K: Y
m_pd3dDevice->SetMaterial( &m_baseMaterial );
+ A* s% a3 c+ _) y$ p
4 n+ g3 {7 {( t& |8 A#endif // not WORLDSERVER
8 Q; e# v6 p4 E9 O: F$ {}
- D: c( g4 t- G, m' o2 y: f# I( K( x并更换* z y9 g' E9 W4 o, s* y1 M! `
Code:
' t* p V2 F. C z3 p) |" R__FLYFF_INITPAGE_EXT: M* y1 n! y: K
定义
: F! _# y8 I; L' V# n% ~$ K. t: @2 ?7 i* \8 ?. B* `) Z
4 x6 t4 b5 T- D& K2 V3 G! t) k3 B
/ R- M5 A/ Y2 V8 H9 b% D% E9 j
现在终于删除我的狗屁加速...# ^% m2 g- H7 B! _+ t
$ x/ [% R7 r' V
" r$ l5 ^8 w( j7 u& M% h
' ^& D4 C# [. ?. C$ u" b' K |
|