|
|
食品车:
; y Y) ^: f0 d( ~尾翼:
4 W( m! i5 {$ N( x j( x$ S' i8 f# ^4 x" }
代码:
( A3 l' T- ]3 ~$ F8 CCWndAutoFood::CWndAutoFood(), c; v) q0 F. _! t7 u; D5 F- t
{
/ C U4 {4 t/ \ m_pItemElem = NULL;
4 d1 W3 L! r% T8 @5 i m_pTexture = NULL;9 i- T* u& a, ^4 t3 W, r$ E
bStart = FALSE;7 T7 r9 A4 K! e0 U0 J- x% ~
}& i3 J! c) N+ n& L# V/ I
. L: @) }! X0 Y! M3 R$ aCWndAutoFood::~CWndAutoFood()7 b' ?7 @$ R# f* U7 e' N9 L
{
( R% @$ i4 T) z! N' i8 f AfxMessageBox( "AutoFood ist gestorben " );
6 M- z4 \0 n9 i- M' n- s/ r}, W X+ p* d# T# P, Q
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
# [* t0 J }" ~+ K{
5 x9 U" X+ V5 f. E$ F0 M$ z# X return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
4 n; a# k0 F9 v" P}
^, H1 p+ P0 S& v' G# a! r) M3 Q# K7 a
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )9 g% @9 w* a- o, f2 t
{
; P2 f0 t4 `: A5 I LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% l( e4 i( u3 m7 Z( i. v( ]- k CRect rect = pWndCtrl->rect;5 d" ], n! q0 g" h8 Y' O
if( rect && rect.PtInRect( point ) ); ]9 ?0 D& E Z; _8 m0 ?+ Z
{9 y& A6 @" v9 ]) `* T9 B
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );$ J3 p6 M W( d) t" v: J# }( N
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
( K' Q( v% ^1 [7 N: _6 p2 ? {
( V& F* M( H. i* p" L0 H if( m_pItemElem )
6 R+ f. h6 {8 |2 a {
+ I' _8 ^! y$ M0 l/ l% F7 ~2 h m_pItemElem = NULL;0 L- _9 l- l& H w. R
}) k. B2 ~) z: C. q0 I1 g. P( T2 v2 P1 r
m_pItemElem = pItemElem;$ r3 Q8 P7 I! ^3 l
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );% _, M& X" e; P) u1 Q0 ~
}else{
& S+ p& Y. _- v; J4 G SetForbid( TRUE );' Z/ b; T; q0 q
}
. e6 z0 {/ a6 b E! ~ }else{
" p! ~3 |" W+ n+ g: C+ ] SetForbid( TRUE );
1 X. ?1 J5 Q8 b+ I& N2 {% G+ ]& S h }3 e, k) C0 k6 M, `8 ^6 l5 ]
return TRUE;& f/ ^1 o, s Q
}
, J w- _) p8 G3 D5 ] p3 Y8 k4 b6 t8 {* k7 L3 T0 t
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )+ D8 X0 D6 @5 Q* w! H) P8 X3 p
{' q( M. v% x/ `+ u7 E
switch( nID )
, U/ M1 m' `) ?5 I {
; p7 N S, u, F( i) l case WIDC_BUTTON3:
' d. A& }8 @* o# p, J) u {
4 R% K; [ m$ a' [ bStart = TRUE;. f _' j% p2 a" d" _3 \( X
break;
3 h; Z* R2 p% k9 k I2 M- o& u0 y }6 X; |: C. N1 g* {
case WIDC_BUTTON4:
0 _& U% U5 h3 l4 @# V" s {; b3 x' b: A8 h$ s x- t
bStart = FALSE;
% q$ K$ J2 `# [; W$ y9 w4 V# J break;/ ^, h) L0 p9 Y; Y
}5 t2 a$ e. R- @ U
}$ R9 p/ N7 f( v( u5 A
return CWndNeuz::OnChildNotify( message, nID, pLResult );
- }# |- K; t# S( _} 1 b# U# Y6 [2 }7 e
void CWndAutoFood::OnDraw( C2DRender* p2DRender ). r* [ \' K2 I4 H
{
& Y" D, B6 j: K, E! t p CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
3 @) k- v: O! t% l( G& y* O if( bStart || !m_pItemElem )
3 t: e# R1 S5 j* @4 q, @ {0 T$ h1 f, T5 Q4 f- Q$ n1 D
pBtn->EnableWindow( FALSE );1 J- j8 h! r3 T. v0 w; X9 K
}else
( y# a& e7 T( ^- t( x- w1 n9 k! ] pBtn->EnableWindow( TRUE );
! u ~3 `3 V W% [% U4 q! I if( m_pTexture )7 G/ \3 E p# s# {9 e+ \
{
8 w3 {" U/ c2 ]! b; \4 y; [" r LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );5 U i) T, @9 k7 B
if( wndCtrl && wndCtrl->rect )
" Z. T* }# k* G; N. w {
! F9 w0 a- t5 r" i; Y# ~, J6 E m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
. O' \" o6 k# ^ } x/ k z7 ~* s* h8 D
} S! P" t$ x" }" X( v
}
' w5 m: ~+ X$ E& f0 j" E9 g. c. C# ^7 V0 ~( |5 [1 a. x
BOOL CWndAutoFood: rocess()- R/ n; v9 P# u
{2 q2 d' d5 Q8 u8 }* a1 r# F
if( bStart )# k6 Z( `; R) I9 x |3 c
{
# s7 I4 n5 J/ y9 s( M if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
/ e3 \1 d! u/ b# c. F' Q! ] {
( j( P& b4 T7 J2 ^, n9 ^9 |" ?" 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() )
$ S0 |) }5 O0 I' Y g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
) w: z- \" j% W9 N }else{2 j! Y" H) X* x
bStart = FALSE;+ c, Q. T6 ^* w0 q- G; \9 l% T
m_pItemElem = NULL;
) W4 r" D7 h# x. X" |5 \ }( y' j9 X# R7 ]7 s* a4 n( A
}- l+ I2 \8 S) j
return TRUE;! y1 C- }6 ^, j0 ~, `7 p3 I
}
* [: o8 Q1 k; g0 x( T
: ?, e7 h: h6 W6 i登录视频废话:
$ X6 I1 ] a& ] |2 ` v$ k尾翼:
. o1 [/ b* y F) D7 N' I7 D! r7 {2 b1 P
代码:
: x% _' H, Q D7 O5 T! v# J" M P; U+ F0 h
void CWorld::SetLight( BOOL bLight )
& A7 u* s* q0 E' ~* vdurch! R1 s" L/ ~) ]/ F
Code:
K( h# D; L% ?5 @. Y1 [' Gvoid CWorld::SetLight( BOOL bLight ). O6 S% A$ r1 s5 w# H) J
{
[( e( ?$ ? i6 M3 j1 d3 C& c //ACE("SetLight %d \n", bLight);4 ?8 ?' v( B- n/ h
: \. m1 Y6 T: n#ifndef __WORLDSERVER 2 M1 P: \: z+ u
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);) r1 F/ }' K# v) s3 o
CLight* pLight = NULL;
: \( t% w. O) v! p" ~8 n& {8 |
" }1 k7 O; p; i6 S) T3 m D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
3 t) X4 O8 c# h0 m( L* A% N' W4 h* q. m4 T. e1 |2 ]! Y
pLight = GetLight( "direction" );
( V) d) X; i- u0 l
/ o0 l% W( C0 K- M0 _#if __VER >= 15 // __BS_CHANGING_ENVIR
' X# K9 K2 }7 Q, O, p! X( C8 o if( g_pPlayer ){& ^! i6 O5 H, z, z9 P9 m
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
F" I& z! U$ r if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
5 t; r" L3 t# W) _& {' n% H2 G$ Q {
7 b# I- l- \: E" F( {3 | if( pLight )
- O& y3 t& S3 x' |8 n! L" J {, \( l; j- e$ }
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
4 Q3 B- L, U2 r& N+ y pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
7 `6 W( m1 u3 \2 `3 \ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
8 g( d! d% t* J( K& j3 S0 \- U, f& R9 F# T8 {* W3 U
pLight->Specular.r = 2.0f;
- E& s' Z# X2 P. U6 X1 J pLight->Specular.g = 2.0f;2 T0 n- W9 V; k9 W) X
pLight->Specular.b = 2.0f;
8 X; K+ ]+ H4 m& ~+ A, o* Y % r2 D! E ?$ U- K
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];' B0 I) Z" y# O0 X% c$ Z
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
! I( V- A1 d& s" |' M pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
+ w& c9 W) E! l2 Y# L ( i, {+ {! L& }) c4 w+ d
HookUpdateLight( pLight );
/ _$ D; x+ l2 B8 r& M# z! ]' F8 H# o/ ^- w' m- P
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: M+ W8 c* f3 ?3 X6 l4 ^, u+ T $ P9 N% K* I& a' j9 s
pLight->Diffuse.r *= 1.2f;9 [# q/ J; R$ g3 U
pLight->Diffuse.g *= 1.2f;1 n5 a+ J/ F0 c j' R
pLight->Diffuse.b *= 1.2f;
% w R/ |% X v- A8 i6 I6 _9 G
$ V2 K: U4 z v$ c' g pLight->Ambient.r *= 0.8f;# u# s* ^$ a. R3 N0 p, v3 C
pLight->Ambient.g *= 0.8f;+ k/ x2 q' b8 ]" w5 ]( q& r! \
pLight->Ambient.b *= 0.8f;
, w. {; X8 n V ' q0 `% b1 Z# v. j& ^: F, ~" B
memcpy( &m_light, pLight, sizeof( m_light ) );8 ^% ]: p- }( q' ^. l0 J$ o
2 N3 ` w6 y- d! s" k5 H$ Y+ N
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 C' m' y* O3 b, n9 s4 P. P
D3DXVec3Normalize(&(vecSun),&(vecSun));6 T( Q0 z7 `8 g1 w |+ Q
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); $ p& H {5 r: ]# e( T
pLight->Appear( m_pd3dDevice, TRUE );
7 U, a, [9 S0 c, c/ M # U' m( f! @+ B. b, L! S+ V
DWORD dwR, dwG, dwB;7 ~0 ?( @& U; B
dwR = (DWORD)( pLight->Ambient.r * 255 );
+ t( g/ K- k& `- X dwG = (DWORD)( pLight->Ambient.g * 255 );
! `8 a( b. o4 O Y6 b dwB = (DWORD)( pLight->Ambient.b * 255 );' [* Z% s& g" v7 t5 _7 o: ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! |' |5 o+ [0 X# g$ f
}
( \0 g; S: g$ |3 | }' o+ [( l4 `* G4 I6 N& R: g
}
4 m% V7 }/ @2 c& @. G else
- T [' @" s; V! U#endif & O, z: M8 w8 c+ n: x! h+ L
% J1 F! D" t( I0 Y; J if( m_bIsIndoor )4 q) x8 t% A4 M) t" l8 K3 J
{
) [0 b2 ]0 S6 r. X* t% S( e9 U if( pLight )
2 }# U" D" @/ Q {
" ^9 ]) Z5 X7 l; B // à??μ oˉè*
& r' x; d& f3 F3 `% I pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
4 i4 L7 q* B% `3 I# N$ g S7 A pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
4 {, l* b8 L( A pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& ?1 }* h- }" h: q
7 Y7 z) k: w& ]3 v, J9 L // oˉè* ??à?
/ D3 W' @6 ?& N3 X9 k4 } pLight->Specular.r = 1.0f;
1 I4 Z [8 r! O5 y' _+ o( D' T. G pLight->Specular.g = 1.0f;
$ O) W8 z9 A( ]. e& k* s pLight->Specular.b = 1.0f;
( T: d/ Q o2 t, [" H // àü?? oˉè*
+ v+ M) O* y1 R' K* J pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;2 ?% g8 ?7 c6 Z7 \6 E& b
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;" t$ X0 \5 c3 T9 r: v
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
# k8 y) ]" |. R
t/ k! L' |7 L# I4 p if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- A" q3 G/ @ `8 n2 y' m" B {. K, O2 \" U, P4 h6 M- ~
pLight->Diffuse.r *= 0.6f;
$ J( B5 ]8 d! s) |+ \4 }$ U. u) [ pLight->Diffuse.g *= 0.6f;+ _; [- i1 x; ?; T. @$ |9 r
pLight->Diffuse.b *= 0.6f;( H1 c, p. P2 U* k
pLight->Ambient.r *= 0.7f;4 n6 H8 U* K" F- r0 P' X8 y
pLight->Ambient.g *= 0.7f;
' m7 E0 g# v: U' j* D/ F* w pLight->Ambient.b *= 0.7f;+ D9 Y/ e _/ [# _* f2 j6 x3 u
}4 Z4 M7 O& O8 y; P1 g
2 n, x' H9 `1 M#if __VER >= 15 // __BS_CHANGING_ENVIR
6 ` g+ L2 K! T( E, m- z6 l' R. m if( g_pPlayer )( V+ n! h; T3 d! q; E) `) e
HookUpdateLight( pLight );3 K6 B- j& Z7 j& D0 ]$ E$ S
#endif) m; B( b8 I: [! b$ |
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ t6 V: d |5 g: {
# |0 l+ b: g/ Y$ @9 H0 h
pLight->Diffuse.r += 0.1f;
5 o/ a2 b9 J/ Z8 k8 p pLight->Diffuse.g += 0.1f;
9 t- _0 q! g8 N( ^ ^ pLight->Diffuse.b += 0.1f;
* U4 ]& @8 \) C* z. b9 d: s // oˉè* ??à? ; K- y: s$ W3 w8 n6 z0 |8 I8 x
pLight->Specular.r = 2.0f;
8 C- \3 ]7 C4 P9 k$ _2 x3 J pLight->Specular.g = 2.0f;1 Q" _* [9 @# F0 @% i" P% W
pLight->Specular.b = 2.0f;, f' n8 ?0 W! z4 q, P9 S
// á?oˉ + T5 {( p9 x+ g( q2 |! n
pLight->Ambient.r *= 0.9f;" o( n$ L: I3 o- \+ ]+ a# O
pLight->Ambient.g *= 0.9f;' E+ U8 y. j3 s2 S+ K9 l
pLight->Ambient.b *= 0.9f;. K# V, j8 a" \* o3 Q4 w
& W7 m% P7 [2 l, W. }: u; p% l
memcpy( &m_light, pLight, sizeof( m_light ) );, U& K' a7 g. F8 n9 _ r* N
( v" F) r6 i# U) p pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z ); z! L) U$ a5 e5 g5 T
pLight->Appear( m_pd3dDevice, TRUE );: X9 j3 n; g8 x |% J' O' \6 H8 _( D' H
# S2 u8 m3 Q( g& |3 [( \* \
DWORD dwR, dwG, dwB;: b2 F* N: |2 h! V
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 H9 G) [0 w3 i# Y# }3 T dwG = (DWORD)( pLight->Ambient.g * 255 );) z! [) B5 o R/ ^8 \% q7 k! |$ P' H
dwB = (DWORD)( pLight->Ambient.b * 255 );. }2 j: f3 J9 `( Q ^" {+ X
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& z5 d! Y6 C$ {/ ]& ?/ x3 @ }5 ?* p: K& w% Q% G; j) P5 {' R4 J7 _
}
$ ] t; b2 H/ q else, U" }% `. Y% _0 h+ R
{
2 n- u# J1 Z0 o6 R5 G3 S6 ? if( pLight )2 L: ~: l- j% U3 S" p0 q
{, e6 ]8 P' G! R! S
" o. |1 x5 C3 t( I( G int nHour = 8, nMin = 0;
- [; }+ `* _3 I0 j+ p* B% F1 P #ifdef __CLIENT
3 p7 G. B6 b2 g, a // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
: P3 i! f" F/ g+ ]2 @ nHour = g_GameTimer.m_nHour;* ]3 R! M7 j3 R) G l2 X3 }. D( G
nMin = g_GameTimer.m_nMin ;
4 A0 H2 N2 Y$ v% U+ A/ `) L #else
* u' s$ d5 E8 ~! v- X // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.8 }) h. z& \: t% r9 _# J5 }
if( m_nLightType == 1 )1 q, B, u, N; F% K1 v! e2 T* ~: }
nHour = m_nLightHour;
. x. c8 a2 a7 e) Y #endif
, v8 Y& _0 m2 g _" D! D nHour--;
1 _9 [3 O; F5 [+ v. N* d if( nHour < 0 ) nHour = 0;( h4 \) @/ @4 i) u* _0 q! e& |
if( nHour > 23 ) nHour = 23;/ ?1 b# J3 ^5 z# y; ^! X
& D6 v, Q& E2 I4 U //if( m_bFixedHour )
( Y. q$ S0 E0 w/ E) k' d; O/ `& ^ // nHour = m_nFixedHour, nMin = 0;
. N+ _) ? [* b8 w# s! ^4 v LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];# \4 N% R+ a/ Z8 i* z1 ^& p
LIGHTCOLOR lightColor = m_k24Light[ nHour ];- w0 P1 l# Z# Y4 E* }& G% e' V
9 K2 k! ?0 K! I$ b6 X //m_lightColor = lightColorPrv;0 f! x" j/ x5 M$ U( M, j* m7 p5 q" Z
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
& ^- Z( T$ D, H lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;3 i3 d; n! X1 ]/ B
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;, P+ J7 i6 G) M( E- ?! @' E
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;7 k3 \3 X: `$ T5 I! r; O
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
5 u2 b( L4 {" P, I. E lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
* u2 F1 y/ ]. c // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)/ r6 Q) u! L9 A1 s/ n: S
2 { }& k: {5 i
// à??μ oˉè* / F9 F, l$ h8 q o1 s3 F! h" {
pLight->Diffuse.r = lightColorPrv.r1;
* w' s4 [, M' E. O- x pLight->Diffuse.g = lightColorPrv.g1;) i4 D9 F1 |7 _4 Q# u9 D
pLight->Diffuse.b = lightColorPrv.b1;% }# d/ t7 `- p' d0 f8 J3 I
// oˉè* ??à? 8 e ^( a: [: n
pLight->Specular.r = 1.0f;0 ?0 }- P; j: f0 v( p R
pLight->Specular.g = 1.0f;8 [6 \3 K0 G; I# S! W8 c
pLight->Specular.b = 1.0f;
! Y0 s/ k: ^% O0 Q0 |, D" ?0 U // àü?? oˉè* 1 d( ]) I- S2 H% _3 n) k# j
pLight->Ambient.r = lightColorPrv.r2;
" x6 p) |' ^/ N$ K; k5 c3 W- b6 ^" e% } pLight->Ambient.g = lightColorPrv.g2;
1 `, a/ H) @4 V3 o; A( Q pLight->Ambient.b = lightColorPrv.b2;
" d* V4 g* B$ \: K& E) G) y; P- D& @( D6 V& p
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 r% J# x6 [8 b' M
{! G; c* s& k- Q4 I' A: x
pLight->Diffuse.r *= 0.6f;3 a; q+ x3 F: r; |5 z+ ~( {
pLight->Diffuse.g *= 0.6f;
4 ?1 I6 p# s9 n( s: W8 _! g3 V pLight->Diffuse.b *= 0.6f;
/ C2 I- I( }& ]1 m pLight->Ambient.r *= 0.7f;9 Y9 g5 I( S* n! l) H* X6 U! j, M
pLight->Ambient.g *= 0.7f;
3 e% a3 |5 A4 l6 M' a0 P# J7 i- T pLight->Ambient.b *= 0.7f;+ t S7 A( M" N5 O
}
- t' U, u5 w: e$ O
$ J& _0 z. z* A) B& I#if __VER >= 15 // __BS_CHANGING_ENVIR3 q! x. ^$ \2 [" [+ Q
if( g_pPlayer )
! J, _$ d; u% N5 i HookUpdateLight( pLight );
$ ?: p P4 ]: v#endif5 V% ^/ H3 Y# e7 J4 a
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
2 I, n4 K0 m1 n+ n: B5 T) k
?" f, S" x, k4 ^3 c f% T; B#ifdef __YENV
; u4 A" R1 l: |7 S1 C pLight->Diffuse.r *= 1.1f;
4 K4 S y. J* D/ e! N! y pLight->Diffuse.g *= 1.1f;. A( j1 J" E2 V1 L7 Z' M' r0 A$ |
pLight->Diffuse.b *= 1.1f;
' q8 u0 x/ b& i4 ?6 i. i // oˉè* ??à? ( f4 p6 r# U5 {1 j& L0 x
pLight->Specular.r = 2.0f;) r7 W! e$ u- z4 _5 j3 y
pLight->Specular.g = 2.0f;
0 d; h1 S% R# W0 m% A) b9 }1 ^ pLight->Specular.b = 2.0f;6 Z' n( ]# e5 X( E: ?: v% q3 q
// á?oˉ X& B4 ], p( E( f3 Z
pLight->Ambient.r *= 1.0f;
; G& D, _- O" k9 @1 s9 M9 n pLight->Ambient.g *= 1.0f;
% {) g; u' g; @) K/ `& k9 t pLight->Ambient.b *= 1.0f;
. n( X$ f8 \8 _* ~, v#else //__YENV4 W1 H, o/ y/ _6 W# u8 i$ D
pLight->Diffuse.r *= 1.1f;
0 |/ P2 _3 K. i2 e" {1 C( r$ e I pLight->Diffuse.g *= 1.1f;8 D5 t- [8 `# X( ~. ]# z6 M* E( Z
pLight->Diffuse.b *= 1.1f;" g& O% _/ h. _. ]" a) w
// oˉè* ??à? 6 s/ l1 D: w9 P* [" X1 B: s
pLight->Specular.r = 2.0f;
' E6 b! _. G* M* k. d pLight->Specular.g = 2.0f;
( Z" F! |2 y. ^! r pLight->Specular.b = 2.0f; \. s1 j7 C+ `
// á?oˉ
* [4 g* g: e5 H2 F) `2 } pLight->Ambient.r *= 0.9f;) e$ Z7 ?# ` a& u. f; F
pLight->Ambient.g *= 0.9f;) N: f9 W T, \& i2 d
pLight->Ambient.b *= 0.9f;
d- N0 w1 ?7 Z3 a2 D' B& j#endif //__YENV ' l! o w% e m$ g; N
! z0 f& ~( F4 W8 E. X, Y memcpy( &m_light, pLight, sizeof( m_light ) );
3 m- `; O7 E% `! T( G* b. @( n
3 j6 g% M( q4 t8 H1 R" Z5 A D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);3 @9 _+ J' Q G% A; A {+ C
D3DXMATRIX matTemp;! U/ c: _ Y1 z9 O) ?
static const float CONS_VAL = 3.1415926f / 180.f;
7 U; \' t3 [- @; z: z5 l6 g, z# K# e$ P4 F* e Q4 h) U: T: R
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);5 A" P" H) I7 G5 z/ I9 M
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
$ V# B# y- b* t! {' C pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 2 n6 z' m- h* O% O6 S& t' Z, \; M- q
pLight->Appear( m_pd3dDevice, TRUE );3 w( g, n) ]: `9 c: c! S0 P: ~
3 Y$ V0 w1 L; y5 T! b7 e // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);% q# O- i2 }3 \0 m, Q: Z5 P1 v t
// D3DXVec3Normalize(&(vecSun),&(vecSun));8 p' z3 Y0 j( [! O7 l
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
" ]# G# s. x& {
; _# g f4 N( Z) j, k: ^* p- U DWORD dwR, dwG, dwB;3 i' y$ M* i9 v9 m) ~. T' c/ I
dwR = (DWORD)( pLight->Ambient.r * 255 );* J) y; _9 C2 \
dwG = (DWORD)( pLight->Ambient.g * 255 );
7 U2 ]- o/ r+ q dwB = (DWORD)( pLight->Ambient.b * 255 );
( x. m" G9 G4 F% P" O dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); " s; e8 V' d. r: _" k' r- p7 ]
}
7 ^' ^. }, q( j1 { }6 c6 i3 {$ l1 k' r- y
W- i5 _7 t8 T( @ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );+ } O7 ?2 I; L' i6 v8 D. g
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) );) x9 b* H: c+ e& ]
::SetLight( bLight );+ ?6 Z" I O/ |% Z T! `: K8 _! Q8 _
5 D( S$ u2 Q. T: ]8 R // ±ao? ?D?í???ó á¤à? 7 |0 C/ o: z! M6 X
m_pd3dDevice->SetMaterial( &m_baseMaterial );
6 }8 n8 z$ @' l
. `, z) }8 {4 I' I" K4 P#endif // not WORLDSERVER
1 N k4 p1 L' S; a}; p0 n% q0 D# V8 |1 I) K
并更换8 w5 M/ ~0 A* c, |# F2 p+ e1 C/ e
Code:* A) p0 \% D: l2 N6 X1 M
__FLYFF_INITPAGE_EXT* Y7 \7 t' w2 J9 P+ G8 R( Q, {) d6 D
定义
2 m G# K( u1 F q
, B/ R( O# u. n- d/ w" v1 s) x% x2 C. k" b5 N
5 X. N( v) I6 U, M5 A! G A
* `3 |4 \9 F1 v4 H* y, o1 S
现在终于删除我的狗屁加速...
& J* L1 Q6 `, |5 H7 K; j% ~9 I8 o" f
; B- K4 O& k3 X' H& G' p, @0 |! a8 @) P# V
6 r9 C/ E+ S+ I, u1 g, C) d
|
|