|
|
食品车:2 K( f$ p( K6 K/ ^3 C" [5 J3 ?5 |
尾翼:
+ H" S$ Z/ `2 B3 s* N: l B$ l/ p* C- t# [# `
代码:& v. A4 ?0 t+ m2 T4 _' i
CWndAutoFood::CWndAutoFood()
8 [) l7 {# S2 O: F& t{
- ~4 y( s# G% o9 X% ~! u! _ m_pItemElem = NULL;
% ~. i2 u; y6 t3 w1 @) h m_pTexture = NULL;
) ~+ H. O- f$ T8 K8 C bStart = FALSE;% Q$ V5 O0 }, J4 O
}- C' v- `, l$ Q" [
/ ~9 X- [/ w5 p) C' m2 r# [& @CWndAutoFood::~CWndAutoFood()
: n3 m: v7 F+ p- C8 @{1 L9 k! N- Q* C5 ~5 A3 N
AfxMessageBox( "AutoFood ist gestorben " );- W. U+ r- y( m: f
}
5 j' k0 X% u7 }3 j6 ABOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
$ u2 J& J6 f; R- e{
, _; f6 i: A6 K5 r* I* @% Y/ K( W return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
8 e" P. c1 V. ]2 a}
X+ O7 O) h8 G1 Y/ d
0 e" D- S U: N' lBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
! V. m' f& R; x! B( T, s, [! ~{1 q9 l7 ~! k" K# n/ W `6 o: W' x
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: y; B1 ?1 D9 D( x
CRect rect = pWndCtrl->rect;
! r2 G7 q5 {& ]1 b if( rect && rect.PtInRect( point ) )+ P' Y& U ]: e% z/ n* V9 a% |$ C
{
& D. \$ f1 `" }- b3 s( g- | CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );, P2 ^6 u8 x0 T8 v. O- O
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )( H5 A9 v1 @3 d5 v2 ^2 N
{2 t9 P) x7 k( M- Y; A, p
if( m_pItemElem )
" `: V J8 s/ t, J; y {7 W3 r# O, j i( h$ b1 ~
m_pItemElem = NULL;: m* v5 u: S1 A5 v5 k0 Z
}
Q1 T. z! \. o# o+ d7 M m_pItemElem = pItemElem;
5 G" d, k- P) i$ u, D3 F4 S m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 D8 `2 P7 ^! d4 l }else{
( A$ v1 b5 @3 t2 J6 c SetForbid( TRUE );
0 Y; Y4 f7 o* _ c F, Y }' `& n$ Y* p) ]' ^
}else{
" V3 k2 L- R; W5 n SetForbid( TRUE ); R/ P3 q+ [ V2 N' o8 @
}
, E! s6 ]- b! G$ H$ S8 R return TRUE;" o$ `# ]$ v3 ^! P
}
2 @/ K9 j$ G: ?; t) e
" a( c. K; f; Q) |BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )' h `' G8 ]# u# p
{
! `# [/ V! A; C& G& M+ _ switch( nID )
# n( `6 H: D x {4 v% i1 d# h# j- O4 [+ S
case WIDC_BUTTON3:3 A, @6 ~. V6 z
{9 X9 i" D( P; n( S
bStart = TRUE;1 m0 P; I- W7 k- J* y: h1 C, e0 \) z
break;
4 p- j" l( {5 _5 P& E }
8 v e( X3 P2 c$ Z case WIDC_BUTTON4:
1 f) o2 O- s9 k; V$ Z- @ {6 X4 g9 m$ w3 \- P
bStart = FALSE;
2 |' j* j) w. U$ P break;
, O- m* n3 h9 f% [# ] }
; d* w, x7 I$ D& r! ?+ m& D) | }# R {6 x" T4 @9 ]% F& z
return CWndNeuz::OnChildNotify( message, nID, pLResult );
% i( [$ U' f, R( S+ P} ; {' `$ C4 V' T2 p3 @
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
; G M9 q* [) j5 R{
4 X" m: z8 Y6 L! I& U O9 v CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
1 s; J4 v- Y; t% b% g/ Q if( bStart || !m_pItemElem )& K j8 ]7 ]# r# R; K
{0 L" q% x0 y* K6 }
pBtn->EnableWindow( FALSE );* \% ]1 D- l: h0 K, j
}else; E; E4 C! j( F0 O
pBtn->EnableWindow( TRUE );( U: G+ D5 Z7 M% ]' Y4 `/ \6 G0 L6 o% T+ J$ z
if( m_pTexture )3 t: L$ H/ q: ?# M. \; O
{& L2 k; [& ]2 J& b1 E. q" B- s! n B
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& z y! a1 u N* D1 s4 F if( wndCtrl && wndCtrl->rect )
5 n6 K0 P4 |* e, H {
+ g+ q; @+ G# e: D m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
/ ~! g3 F: i; S }
/ b( l% w- ]# j; U; b0 e }
2 P7 p/ c. i7 @8 c2 R; k}
* S, m2 D- C7 t
; h0 K8 i9 s- c: z, x( ?* CBOOL CWndAutoFood: rocess()4 L. L' {# O# L" j9 |0 r
{" N: S9 B3 [: m. K, q
if( bStart )
; x0 P1 j! o& a' I% j) j {
+ ]2 e6 U! |8 Y/ d3 r; s if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
5 I% u/ T0 m, P {
: ^' E% t. s. {9 y 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 I) C3 E5 A- ~ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
" \4 g3 B6 S% z; G9 W* n' y; l }else{: m$ E8 }) {; v4 n
bStart = FALSE;
" g( P/ h3 H* N: y! l9 D m_pItemElem = NULL;
' n4 k+ Q# t- ` }) i2 F+ h! a, t2 @- m f# {3 j) H* c
}
" B/ R) U6 @. G8 c: y7 \: D! k6 o# V return TRUE;* q( h0 Q! G8 U) p" N
}
& N7 ^. } c# ^* M( x, R% F; z+ @: W/ z; m% j$ {& `7 u. \
登录视频废话:
! K# T0 O7 A0 n尾翼:5 U1 _; k; |) z$ Z* h
y$ g5 r' Z/ E" l3 T% e代码:
9 ~+ z* I+ W- J6 ~5 v! i" D5 S! x! `2 w$ P+ {: Q `+ g0 C
void CWorld::SetLight( BOOL bLight )
# i, c$ ?9 m+ a5 q, Z( odurch
. a6 y- D9 D. B& w! s4 LCode:
' M# ^3 m# w+ c" R% xvoid CWorld::SetLight( BOOL bLight )
/ C9 c; M/ @, I/ Q5 O$ L9 ~. n{
7 j, Z1 b6 j% K5 m: x+ h8 m //ACE("SetLight %d \n", bLight);# Q0 g7 o$ t0 ~- t2 ^2 Q/ _9 B
$ W6 M& N/ k/ m* F& u#ifndef __WORLDSERVER ; P6 l* Z5 O/ h6 j# @- ^
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* N E+ D8 H& h4 k/ I, x. G CLight* pLight = NULL;
/ W) `! ]) D; m: w6 \( _5 C' Q" C& l
; F. X8 S! M: Z( B3 ~$ g1 W$ F$ x D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );* W E& C( H4 D5 B; n
5 z+ h" G4 \' v) G m1 v pLight = GetLight( "direction" );
+ y) i# w% a; u8 p& j3 W8 ]6 K4 K
; P1 I- @ i. }9 s, f2 @#if __VER >= 15 // __BS_CHANGING_ENVIR
, L! D1 a) z4 \7 m9 B2 e if( g_pPlayer ){
3 N3 T" f' I" x$ i ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
4 l# G$ C- [% g- b/ s7 y! T if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!' n0 g$ I, b6 P# Z# }* Y6 _
{
5 }/ \& U8 d$ X$ p/ r if( pLight )! i0 h0 g2 d' z
{
5 Z3 t7 O1 K; B6 h# b pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
* U3 D7 [( f' d( c8 Y pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
# }# H0 y6 C, _( {1 [7 n/ w6 } pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
/ l( ]+ G/ J: X$ s$ K# C9 O' @7 [0 K# }/ o
pLight->Specular.r = 2.0f;
6 O# J% M8 O* E( ]& b, H' @ pLight->Specular.g = 2.0f;
# W3 g' [: j r( {) M8 x pLight->Specular.b = 2.0f;
$ v" q8 H$ c- H# m1 ] $ s r- C( ~. V+ [
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
. j$ c0 l K0 t3 O pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];2 s" u! C6 c7 Q" {: i: y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
2 W! O. i9 K6 K3 o. ^
( Z$ K' a7 p5 d3 e( f6 ]) o HookUpdateLight( pLight );
6 n9 ]! W6 W/ R4 E7 d- K; x5 h' z y. u0 h' @7 q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); G8 z3 J' S) K; k2 j$ x
$ |4 L4 `# U4 L) Y' w6 O' ^& P/ O
pLight->Diffuse.r *= 1.2f;
- | ], s: H: d pLight->Diffuse.g *= 1.2f;# F4 X" k( z6 a( s/ B: F
pLight->Diffuse.b *= 1.2f;: _. A4 @0 Y) I! e9 z' D! e
+ J& I+ [) a7 a9 K$ D
pLight->Ambient.r *= 0.8f;/ S. q9 a' p; R
pLight->Ambient.g *= 0.8f;
% ~$ N8 \1 b# C, I( g pLight->Ambient.b *= 0.8f;
, \3 J- @. w- k m6 F
2 f6 h" e) G' d( n" P% z$ F memcpy( &m_light, pLight, sizeof( m_light ) );4 F ?9 u4 v$ k
. @/ y1 Y8 J. X$ s) @
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ x, c0 }6 p4 s6 E0 Q5 Y D3DXVec3Normalize(&(vecSun),&(vecSun));
] ^1 W0 B) G$ e2 [ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* ~% V, i8 k. P4 q! C pLight->Appear( m_pd3dDevice, TRUE );$ ?& D* R, r0 C, O
% w8 |& X; A" a, w" o
DWORD dwR, dwG, dwB;
9 ^( b' g6 T0 i dwR = (DWORD)( pLight->Ambient.r * 255 );$ X1 v$ ^6 g1 J0 I# @# @
dwG = (DWORD)( pLight->Ambient.g * 255 );
* w( t( z, q3 C% Z7 x! K dwB = (DWORD)( pLight->Ambient.b * 255 );7 N5 g S6 M/ w; E
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );* r+ }0 \; w7 Y; K1 L* V# ~
}' F5 |8 N8 H8 G" z* T
}
) D: ]/ L3 Z3 d( k/ Z* c }
$ `9 `% O+ B, D3 f0 @% J5 {# ? else+ }( f. }' z# S7 ?4 S' H5 n
#endif
0 T( G1 b) m3 W# S; N A/ @$ M, [* B, `. ?/ t
if( m_bIsIndoor )6 Z: \5 N! i$ L: w. m# b, b8 A! F
{/ [3 X m. B( G" v4 ^
if( pLight )
# N: O: |, l2 V: U" K% v. _3 e { ! b& D/ M! [7 C
// à??μ oˉè* ' ?3 ]# O; m! W* ^! V4 W
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;2 z4 A: p8 g2 d" ]
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
2 \" P7 z K$ I8 T( A pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 v5 ^7 Q. U# w6 l5 P0 K1 }6 |. ?
" H) y6 w6 A4 \
// oˉè* ??à?
# x6 z& u4 z% _' { pLight->Specular.r = 1.0f;
0 D" ?( x4 m6 o: d2 Z4 k: H pLight->Specular.g = 1.0f;
: F! c8 r5 Q/ H7 V5 b pLight->Specular.b = 1.0f;
* r7 K( n5 N5 f8 H) Z7 J' b // àü?? oˉè*
* ~3 d W {# L5 N pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;* P" O4 b- O5 D4 w& \# y' T9 e; |
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
4 a( f6 j* m0 C4 [2 `3 s- m pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
4 X. v' I2 X: }. G' i$ b, S, j! {
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.1 {' r- v. u0 N! R9 O
{
- B# K6 r: a1 g7 ?8 b pLight->Diffuse.r *= 0.6f;
8 R, W' e1 y h$ R# W1 m$ ]6 e pLight->Diffuse.g *= 0.6f;
$ L4 d/ l5 V6 h5 y) x# A1 y6 T pLight->Diffuse.b *= 0.6f;8 d# G5 |' O, E- r
pLight->Ambient.r *= 0.7f;: ?2 e& D6 _: J0 t# W2 c' C6 ^% X
pLight->Ambient.g *= 0.7f;4 r/ _7 g7 B8 I( U j
pLight->Ambient.b *= 0.7f;
7 E8 y' N% s6 d. Z }# u* ~( N9 q J/ m" ~/ Y6 s9 t0 G
% N" z$ Y. m3 U* x0 B
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 C3 M$ x2 P& H! v* _) V0 o if( g_pPlayer )5 ?3 w3 h. E8 [; q3 v( b+ d, y
HookUpdateLight( pLight );; u5 W/ [! Y+ r9 m' ]( E, p
#endif1 x% C. e- W% g$ p! l
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 _8 C" ~0 {- b8 F- g
9 d2 m4 ~4 o- P/ D4 m: |$ d pLight->Diffuse.r += 0.1f;- s b7 Y& Y: x5 b6 I
pLight->Diffuse.g += 0.1f;2 ^; M7 Q# R( Q7 I+ j" n3 v- I
pLight->Diffuse.b += 0.1f;2 [/ o7 y/ C3 ]5 @% q
// oˉè* ??à? 6 h: F0 n2 O; l
pLight->Specular.r = 2.0f;# Z$ i {0 b) Q
pLight->Specular.g = 2.0f;
* [' M% U6 s2 w5 y+ X' M pLight->Specular.b = 2.0f;
9 C' t) J" h. p, g# n* c1 @9 Q# W // á?oˉ
! B! I' x$ E/ H% V- q pLight->Ambient.r *= 0.9f;
* w3 q: f2 K% J1 Z/ H* R7 a$ F pLight->Ambient.g *= 0.9f;* S0 T' \) o+ Z7 o3 a" Q4 h
pLight->Ambient.b *= 0.9f;
) Q5 c& n, Q' b' `' j4 S0 A6 C$ W4 B) Y) t$ `! b# m. j1 L
memcpy( &m_light, pLight, sizeof( m_light ) );% n! e3 L* ~' r! g
9 @) b- J/ D1 A1 Z7 m
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
2 u4 I6 o1 V: b+ U pLight->Appear( m_pd3dDevice, TRUE );
& L, p+ W7 p( D
* m( i. V) ?# y/ V DWORD dwR, dwG, dwB;) f; e7 q g: Z. f
dwR = (DWORD)( pLight->Ambient.r * 255 );
% K2 S+ x9 X+ C5 {2 s dwG = (DWORD)( pLight->Ambient.g * 255 );
$ h+ `. X2 \: Z2 U& ^4 @2 g' W dwB = (DWORD)( pLight->Ambient.b * 255 );$ ?2 i* L' v) v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 ]( b0 Q$ I/ ~' W" T; R: G o }
. l5 e2 a! z2 X2 j3 t* X( `) z }
, J; X: U$ h0 ^, d else
; Z4 f7 b4 p" w5 ^' i8 Q {
) P7 w5 a* H: e5 e' H if( pLight )5 z; ?1 U; f4 a [6 J* i5 t7 E! W0 \
{3 r2 [2 c2 z; ^# y+ r1 y0 A
5 b: O9 p+ {- U9 r! h
int nHour = 8, nMin = 0;
% R9 l" g" t/ z3 q' {% [0 \ #ifdef __CLIENT
9 l+ Q3 t9 v. H' K& M2 g // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. , M% a3 O5 t( c
nHour = g_GameTimer.m_nHour;
9 z2 N1 z4 }) b! Z nMin = g_GameTimer.m_nMin ;
], \) \8 ~8 N. g0 d #else
+ M* Z+ m0 z: |$ E // o??o??′? ??°£à? m_nLightHour???* °?á???′ù. S" E8 f- s: b! i
if( m_nLightType == 1 )+ G. X) t' m' ]8 B: r1 |, T
nHour = m_nLightHour;
2 ? L) d5 }% ^8 u- C #endif
7 R Y' c+ z, i( Z, r! j e nHour--;
3 |9 c( ]1 ~8 H4 l8 V/ g _- o if( nHour < 0 ) nHour = 0;
! w: Q" E; q- ^4 j/ Z, ~ if( nHour > 23 ) nHour = 23;" I" N9 n2 d) c3 H4 F3 e9 A$ O$ O
0 W+ S* Y2 s% \; \5 H
//if( m_bFixedHour ) Q( y% f1 O+ s3 Q
// nHour = m_nFixedHour, nMin = 0;
* T+ P' O1 B5 {* P6 u' @3 j LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
9 h2 T1 K: V. E, T) Y, ^# N, ` LIGHTCOLOR lightColor = m_k24Light[ nHour ];
2 Y' H" }% K, @8 K$ Q; b* a U* n. Y; y
8 X. N: O" U+ B, K //m_lightColor = lightColorPrv;
" s5 A/ y$ j9 k4 J5 ]! { lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
- f/ F' |" ?" E* u# S" A G lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;# L8 ^% W a" c1 b" t
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
* K! U, d8 `! `; R# _ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
+ Q5 R; f! Y& H% i0 M* S# n lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
9 K; I& Z1 U7 E lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;! t1 n. _3 n8 d4 k l# w7 S$ S- v
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)) s( h. g6 I2 R7 J `$ C
. k/ o0 J1 ~. \7 e1 l8 P
// à??μ oˉè* ( X( T9 i$ U+ I5 H" [7 h
pLight->Diffuse.r = lightColorPrv.r1;
2 h" N! \& k* _$ Y4 e* I/ W w, w pLight->Diffuse.g = lightColorPrv.g1;) n( J! G; k2 u. r, K
pLight->Diffuse.b = lightColorPrv.b1;
3 O2 S" Q! ~5 t( L+ s- j // oˉè* ??à? * Y2 ~0 s" j% l' d! M c# a
pLight->Specular.r = 1.0f;
7 m% s) d& j8 D/ _% w! O pLight->Specular.g = 1.0f;& d( B5 x' G) ~& W9 T! n3 `( J
pLight->Specular.b = 1.0f;* a* ]9 a6 h7 K3 ~' C
// àü?? oˉè*
5 r( M: d7 o3 W8 f1 z- T: e) R pLight->Ambient.r = lightColorPrv.r2;5 t$ r' j* c; k7 _4 L1 f
pLight->Ambient.g = lightColorPrv.g2;
% f9 t: [% c! b- e* v% G% G5 n pLight->Ambient.b = lightColorPrv.b2;4 E" H+ L0 R6 t# ]0 f9 E. ~
% P- d3 e5 k, j! X& a6 Q. B; U if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.2 {! V2 ?) h- Q, O+ O& t
{
. `# x4 w( k6 ~# h pLight->Diffuse.r *= 0.6f;
% s- f e' W4 x2 f" v# L7 u" M pLight->Diffuse.g *= 0.6f;
/ q: X; ]4 @* d; J+ R& M1 M pLight->Diffuse.b *= 0.6f;
+ E7 l# m# w/ n7 s pLight->Ambient.r *= 0.7f;% y! h" H3 D6 B3 ]1 C' a0 S
pLight->Ambient.g *= 0.7f;2 M- q8 ^6 ]7 H3 U4 b
pLight->Ambient.b *= 0.7f;' F. Y0 i7 \; T$ _" f( Z# _
}
. {9 K8 X3 F8 d" @7 v. O ]5 t8 M, |# \2 c( h) R+ e' C: K! n
#if __VER >= 15 // __BS_CHANGING_ENVIR
! C0 Q, Q1 v5 G) Q; l if( g_pPlayer )
- a3 C4 _* U6 W3 ? HookUpdateLight( pLight ); 6 d6 d8 g) z3 G( l
#endif: \# U! x7 {: n, n; _/ M2 r; Z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( g- ?4 e0 u8 Z' G# X5 _# ]
' D, S: u+ b- F! R
#ifdef __YENV# ?1 c" E$ l! d7 T: g
pLight->Diffuse.r *= 1.1f;
+ r0 N. D5 \! T' _ pLight->Diffuse.g *= 1.1f;8 L; I& T G! `% \0 X/ I _
pLight->Diffuse.b *= 1.1f;! m9 ]) d0 m. O9 `
// oˉè* ??à? 7 r! |: Y, `; Q
pLight->Specular.r = 2.0f;
3 R# _' L- j9 p3 v& v pLight->Specular.g = 2.0f;
0 Z4 e+ t" L9 ^& N) e8 }" t d# V' { pLight->Specular.b = 2.0f;
. w5 k% e5 T4 H2 M& z3 V& W% O // á?oˉ ) | x6 q4 I% P/ J0 b" n3 i' E" c
pLight->Ambient.r *= 1.0f;: k* d0 G/ V1 y: h0 m
pLight->Ambient.g *= 1.0f;
6 `' l- g. k' v, t pLight->Ambient.b *= 1.0f;% M1 h- r/ J1 g
#else //__YENV2 B1 z; @$ @9 f, s3 `
pLight->Diffuse.r *= 1.1f;. _5 E: j+ B9 E- O+ Y4 j+ [
pLight->Diffuse.g *= 1.1f;
u( ?; Z: R' m2 i) n% X0 `; B pLight->Diffuse.b *= 1.1f;2 D$ K' ^! u* D+ i; Z
// oˉè* ??à?
: c' d' I5 U; i: C8 b( f pLight->Specular.r = 2.0f;* w/ t$ t, n+ K* e( G
pLight->Specular.g = 2.0f;
. W% {$ H: ~4 F2 D pLight->Specular.b = 2.0f;7 G' e+ @7 S1 ]. _+ y& K
// á?oˉ
8 S% @( A1 }: T! s7 I1 l pLight->Ambient.r *= 0.9f;' `. N# f1 k; r8 Z* M
pLight->Ambient.g *= 0.9f;& s) B. ^! r9 \$ d8 `# D5 m
pLight->Ambient.b *= 0.9f;8 b7 y- h$ O+ R7 }( c6 e8 u/ m
#endif //__YENV
. L" @! U" z, \+ ^7 c& s
~! E9 d6 y- S5 L memcpy( &m_light, pLight, sizeof( m_light ) );
/ k4 I U% ]( a+ C" L3 y * h+ e0 ]+ N& j
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);0 g) r5 ^1 r5 b$ ?/ {/ G- c* o$ {
D3DXMATRIX matTemp;, r# f. e! V( _$ Z7 Z
static const float CONS_VAL = 3.1415926f / 180.f;5 m [5 I6 B9 `3 N
7 c+ y5 S& I, b0 p9 ` j6 P
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);: N3 v y+ k& |
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);1 ^8 v) F' v% v- C0 W; G- f
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
3 u. C9 `: c, Q. m' |7 c! {4 u pLight->Appear( m_pd3dDevice, TRUE );5 S5 e- ?$ u& t+ k7 ^8 Y
0 _( i! W: I W // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);( K( s& ^ {0 u$ P t$ L( F
// D3DXVec3Normalize(&(vecSun),&(vecSun));
- l: @. \9 S: O1 r" S. D // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / w. ^- @( F1 y
, t' v/ A8 Z9 A$ M3 R3 a
DWORD dwR, dwG, dwB;
/ ]3 |# R4 |6 `4 r2 Q dwR = (DWORD)( pLight->Ambient.r * 255 );. Y A Y/ \, H8 |2 y
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 i4 p/ g8 l% N dwB = (DWORD)( pLight->Ambient.b * 255 );2 Q' i3 b9 u$ ^8 a
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- n1 o; u S6 D* l9 `! I5 y }/ P! T. R1 ^' q8 \
}: T2 ?" y0 C: [
) S7 T. B2 }' y3 t) s
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );) D% l- I) g6 {3 k' B, e
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) );1 ]2 k7 ~+ C. W. l/ C' K2 H- M7 n8 E' u
::SetLight( bLight );& v1 [$ {( }% k) u
* }2 k2 w! J5 h
// ±ao? ?D?í???ó á¤à?
4 ~; q1 D& t' l- ]! v m_pd3dDevice->SetMaterial( &m_baseMaterial );
; K: `; i7 @+ T. C, a " H0 Q; }: v! c" [
#endif // not WORLDSERVER, k" m0 M" N3 M/ w
}8 i( Y7 B G4 l$ f9 ]0 q7 T8 _
并更换
! I" H! s+ T" l* z+ c( T$ oCode:& W4 T3 o7 p9 X9 D9 T
__FLYFF_INITPAGE_EXT
; C" d2 U3 s" e7 Y- U定义
, z" k3 p6 k, U* r5 U: N$ [, S
. i8 k+ `4 ?* Y/ M8 Z' X
9 @8 w: `, { l! z) }0 F; e* i3 X( n! T* g
) e0 i+ q* G* _6 J6 Z
现在终于删除我的狗屁加速...
, U2 {" v5 a1 R: j5 u/ P
1 Q) R, ~" A$ X9 z! B
I. F0 s% _- y5 E( j5 }# z/ {3 j0 ` }( L
|
|