|
|
食品车:6 a1 ]7 _9 T$ `
尾翼:5 H( }! O8 t$ a
0 \! j7 `# v( K代码:! K: b B1 w. u
CWndAutoFood::CWndAutoFood()( t( {* J+ j" H) G2 U. D' Y/ B5 S, j
{/ @8 F9 _" f3 G- h+ R& y
m_pItemElem = NULL; S- j9 r$ O0 P* G q+ \2 \
m_pTexture = NULL;
$ }' n6 e8 t" w& \$ f: k bStart = FALSE;
6 ^+ D6 W. r" J}
% Z( W# @! B8 ]
% E; }/ m0 T5 \! YCWndAutoFood::~CWndAutoFood()
1 `# D$ j1 R n9 ~{( G; `4 O' |% z7 V Q) _$ l
AfxMessageBox( "AutoFood ist gestorben " );
( A+ b1 e& k& k9 k! N$ d' v% j}
, Z0 L% D& a" o- n$ w$ XBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
R( s4 M, k9 J' z3 x7 l/ e3 y1 _{
9 @, K. `$ D1 a8 i8 ^* n return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
' q" K: c+ D# a' i( Z% t}
% _. I& J9 W) ]& Y# R6 M0 K
8 `; [8 X* `- d( s$ ~BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )+ i' ?# u$ L& w/ |- B( g: j
{7 C! s& X3 `2 E, I5 E" w$ A
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% i% B7 c& N0 s/ x6 ?- ^% K CRect rect = pWndCtrl->rect;
' M3 I, i2 R0 x f# W' s if( rect && rect.PtInRect( point ) )
1 E6 u0 ]) y. O+ _2 m0 Y {. ]9 u( m( C) ^6 D# q
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
5 k; v5 e( }* h' _) ]+ Q g! g if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )+ Q5 Z. t4 p8 d# [( L: K% M+ C1 }+ |9 O
{# ]- v: O! B4 w( I% f: S! O' S
if( m_pItemElem )
, E0 x5 b! K5 r3 t, t {
+ ]; M: A$ ^9 h% y3 l m_pItemElem = NULL;
/ W* N, h- y8 v7 |0 M" F }
; t! }+ w( \8 F0 O m_pItemElem = pItemElem;
1 ?: k3 e0 B0 ^' I2 r5 h* f m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
8 p; ~; h3 ]$ t6 e8 p/ [: Q }else{
o# e4 v& t7 {" N0 O SetForbid( TRUE );, c3 `* a4 m% r
}8 @+ _4 v" R- L5 ]$ k
}else{" w: i7 t5 |$ [. ?
SetForbid( TRUE );/ @( k0 R' L& f* D' N
}
, ?! o( e T- c; j return TRUE;! m1 F5 l4 x/ c- `- J! g
}
; b) C# C8 i7 s( K# Z* C/ W# i' ^2 u5 _; D0 ~
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
+ A# q4 z/ w& l' m7 N0 R* c# }{0 ?& F% H# J F4 S$ \
switch( nID )
) z3 } { T4 W) {6 C9 o! b3 J: @ {
$ n. p' v7 T, ~8 m2 k; l+ H2 S } case WIDC_BUTTON3:
7 D; W% P: r5 v5 i, o. n1 T( C* I {
$ V. M) ?7 c. E2 z# M8 R; O; ] k bStart = TRUE;
3 z+ r3 V. n) M; c% G* R break;
! f7 K% ^+ F' }# _. ^. k6 S }' m- L G0 v/ a- C" D! x+ }
case WIDC_BUTTON4:8 o3 N6 @% ~6 i0 H8 ^# k
{) k$ ^9 X- z# G6 l2 ^
bStart = FALSE;
. ^$ Z# o% L' L( ~2 v% x break;
; q8 w) v. k4 E$ A, J5 U J) V }
- e* a6 h) w% R* n9 B }
5 U/ H7 Q/ y' u" Z7 V- R. { e/ j5 c return CWndNeuz::OnChildNotify( message, nID, pLResult );
) O6 w5 D/ v( G5 a. o} , O0 I1 [6 U5 V& ~! J2 v& ]( h
void CWndAutoFood::OnDraw( C2DRender* p2DRender )- t! j% \& H+ j+ t p" t
{
2 S& ]2 F1 q) Y) g CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );0 t4 t: b! P# q% `8 Q: h- C3 ?& f
if( bStart || !m_pItemElem )
" T c7 S3 ^; \6 Y1 s9 I" m {
, N; E F( y: G5 e# r) r pBtn->EnableWindow( FALSE );
+ v8 h) X2 h! o( o% Z1 r }else9 `9 ]" y2 `1 _3 f# G4 J' s
pBtn->EnableWindow( TRUE );
T" C$ v# n: j if( m_pTexture ); O$ w) s8 c( e; w& o
{
& V' r+ F1 V% w2 M3 ?- j LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
9 J9 A9 A: H* F! I) m if( wndCtrl && wndCtrl->rect )
0 ~" o9 K8 C; n/ s7 @+ P {: p$ ~- u; q! ?# h* A
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );( Z9 V3 u7 y2 Z2 S6 _* Z1 [
}
7 b) z( \. V) m6 t" ]8 W& a) J }
$ q' _6 Q' A( c1 V5 N3 H}
0 h: K5 Y* i( \. a+ r' L( `; t# a# ^& E# _
BOOL CWndAutoFood: rocess()
) ` S5 o( [$ s9 @& w1 {. I{9 K. ^7 O" d% Q; G8 G' [: ~
if( bStart )$ V/ Z+ K0 ]" H" m: R8 I
{ C- Y! c/ U9 ]- D$ C
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; ^0 _6 c' d: o2 P, \) _ {
# r+ l) a4 W9 n+ Q) f if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
$ u8 t7 B8 a/ {; g g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. S" N; e5 L$ p* D. R7 s- ~* J8 ^0 [
}else{- @) g6 c4 J; E- H
bStart = FALSE;
1 h. `: Z5 [' [5 p" j m_pItemElem = NULL;
7 E* W" o" w+ ^3 W4 I }
4 H6 q3 p! G' M- ^+ w$ ] }2 Q' Z9 v0 Y% c2 W& F l( r( s
return TRUE;) p/ l* g# N3 o, B$ j
}+ Z: E4 f/ `) T/ |; E$ S: ?/ Y: G
+ F% W$ V. C( G, N5 F/ O7 S
登录视频废话:
. v, \& \/ v m( K尾翼:$ A2 p+ c. v; c' y. N, x6 p" e
) r8 q4 a8 ]: m9 B6 w0 ]代码:( z* ?$ ]* y2 l; y: X1 c$ F0 E$ v9 v
" i$ E2 s" _; \; Yvoid CWorld::SetLight( BOOL bLight )
1 C+ o2 K& M* U- ^) B1 ]durch6 ^3 N& a. `/ A: g$ N& C
Code:& |% U* D/ a) Z1 I+ }# E& S
void CWorld::SetLight( BOOL bLight )# t; J" o. x2 O- V7 g! H( m# A: ^
{
8 C2 C5 V% r- h //ACE("SetLight %d \n", bLight);
+ C* n2 |4 F$ F) [ ) M- X8 }2 Y( Q: {) m9 j* X! i- Q2 `" w
#ifndef __WORLDSERVER
1 H0 r }# S& @3 N DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);0 z8 _3 B, j- J5 `9 @9 |( y( B
CLight* pLight = NULL;
R4 k1 O7 m) r# ^- |4 J+ Q- S# Y$ l0 k' z1 Y5 ]+ i J
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );& w1 Y5 ~4 T; }0 q
4 {5 s6 O' n& y$ w- L pLight = GetLight( "direction" );$ \0 J/ ?6 j2 d- M) ?/ R
8 f( ]2 T9 I( l# L) d#if __VER >= 15 // __BS_CHANGING_ENVIR: h% W( [- q# X" ?1 A2 j. ]
if( g_pPlayer ){
! C8 G3 a |5 `& A: V- f) W1 R' U ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );+ F4 z3 u$ x/ L
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 Y# e& {3 Y+ W7 |5 E {
& E/ `% `+ d/ s, E7 Y8 [ if( pLight ): V5 b+ N/ n- p$ G
{
" K) ~6 z& w8 v/ A, ~+ o( m9 _ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
3 \, M7 r. K0 m8 q& S& Z pLight->Ambient.g = pInfo->_fAmbient[ 1 ];0 L& a# Y% t7 ~+ q3 A
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( o$ y: S- ]& [- d# A* M' A( Y$ o% b7 Q' z! V8 C/ C
pLight->Specular.r = 2.0f;
( V- E' i8 q. x$ a2 S2 j1 Z( m, W6 T pLight->Specular.g = 2.0f;8 E/ m3 C. x4 Y* c0 m7 x8 J9 B
pLight->Specular.b = 2.0f;
( h' y8 I8 D- o3 c 5 S. A6 y/ E) ]5 d& Z/ E7 x
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];' R, k& K! E$ r! ^) Q
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];' z) V7 h% x+ ?- Z6 x, U' A1 G
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];( U$ f5 w. e, e
& t7 ~ }: U; D/ @' l# b
HookUpdateLight( pLight );
: o3 _/ O0 A r7 `; h
8 p3 ~- E. E5 O U' k7 S, m: O i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 |9 x( b. J( L8 h: t5 M& F
, i( \* {- e; f2 D2 O# I
pLight->Diffuse.r *= 1.2f;
5 i b; E" B9 w7 B5 S h pLight->Diffuse.g *= 1.2f;& ^: J4 j! W$ Z5 X9 f. ~, p
pLight->Diffuse.b *= 1.2f;
& k% ~! H7 j6 k& V% E0 A4 y' O) w/ e0 _: f% d0 h
pLight->Ambient.r *= 0.8f;
3 ^1 T( j8 Y; e pLight->Ambient.g *= 0.8f;- k, m$ x* t) M# F$ _
pLight->Ambient.b *= 0.8f;
3 X& M. i7 a9 I
/ U+ ~( ~% C( i3 E memcpy( &m_light, pLight, sizeof( m_light ) );' U# P9 h# T; s l& i2 D
. n; S& E0 C: Z6 I4 U
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 i/ o) k+ B9 x, }9 O4 J D3DXVec3Normalize(&(vecSun),&(vecSun));6 X& l% j/ U% L7 b( k
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : r5 q9 z5 Y$ Q5 M1 L" C- \
pLight->Appear( m_pd3dDevice, TRUE );. r4 ]# g4 s' ~8 M
1 p4 H/ X; G: T4 l- I4 a DWORD dwR, dwG, dwB;
" g& Y# U' c1 U dwR = (DWORD)( pLight->Ambient.r * 255 );: i. {- m4 o6 b
dwG = (DWORD)( pLight->Ambient.g * 255 );% x: z2 s9 o6 g
dwB = (DWORD)( pLight->Ambient.b * 255 );
. u6 n8 b% r2 k6 M5 e0 \8 z dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );8 }) G+ Y* m) g( o0 N0 m! F
}. U* b& b+ i# @8 O5 Y+ V1 K
}" w+ l& ^/ k: M; q6 p+ Z
}
# F8 Q! L* p% z. X0 R" R1 p) C5 ` else3 j4 E' a4 C8 `; f
#endif
8 `1 h" ?9 |8 M0 F/ s0 Z C9 b. w3 M- g
if( m_bIsIndoor )+ R5 M5 Z+ R! H- `: O
{
1 e, I o7 Z' `# L if( pLight )
, L! z# I% u t9 H0 p0 \. H { / l& |& b/ {; E8 `" ^
// à??μ oˉè* . {$ ]( b+ V' o, Z+ K, |- [
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
6 U! ?1 s' E5 j8 r6 R pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
# @5 f! n A/ U4 G7 ^3 L! d pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
* S- C- U; i( f3 ?, P
) |( |% \+ y) A8 d( b# b // oˉè* ??à?
; {+ O; [6 m! v, e$ B' D+ I pLight->Specular.r = 1.0f;
3 m) s/ w7 u0 i- y& X7 D/ i4 M pLight->Specular.g = 1.0f;
6 ?( ]4 U8 _) w, ` pLight->Specular.b = 1.0f;* @8 `- Q( S) C" ~- V' i
// àü?? oˉè*
" i \8 w* _% k: w! o, a* O pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;9 |, O1 d4 p- `; K* O" K% l: Y# w
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
3 |- x+ ~( c6 g8 W* p pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
) w- g" q. J F
' s3 e$ Q( }. v4 S: H if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
. J# \7 R6 Z6 u. R2 o3 `4 J2 T {6 ?( j0 L: H! g) K
pLight->Diffuse.r *= 0.6f;' R8 c* m* R5 V# ]9 j, Z# e
pLight->Diffuse.g *= 0.6f;
7 T1 F" V) {3 v4 I" V pLight->Diffuse.b *= 0.6f;8 q" P9 L% }% d9 q/ K6 C. R9 c
pLight->Ambient.r *= 0.7f;9 [( A2 r4 `, i
pLight->Ambient.g *= 0.7f;
( G- s7 y) Z9 _3 \# c pLight->Ambient.b *= 0.7f;/ T7 ], {7 d9 r8 u
}& M0 n/ \3 Q' W- l- s( M Q/ ?) I6 Y
. Y& F5 _0 w |$ M/ q0 }" p
#if __VER >= 15 // __BS_CHANGING_ENVIR
# s: _- O: ?: Y5 v3 N if( g_pPlayer )
! C9 G! N( b4 f9 E" a( @ HookUpdateLight( pLight );0 q# H' x) q S' J5 \3 q
#endif
/ v" E, w5 y0 {" W& |0 a memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* U: }0 S/ F v) o
. |: r* J4 [/ G2 \/ q
pLight->Diffuse.r += 0.1f;- a+ f) z: g7 z! b
pLight->Diffuse.g += 0.1f; R$ ]5 K% m* G$ J
pLight->Diffuse.b += 0.1f;
; t/ |2 z. X k$ {3 z // oˉè* ??à?
^. C) D3 C7 g, E" [6 e8 H+ |: ^5 r pLight->Specular.r = 2.0f;
3 D6 c6 s" E# l" g. |5 J pLight->Specular.g = 2.0f;& ~4 ?1 f7 Z- a8 I7 T" r9 S
pLight->Specular.b = 2.0f;8 N) ]. r" G X/ w6 H+ V
// á?oˉ 5 n/ s5 Z, z3 u
pLight->Ambient.r *= 0.9f;3 i5 k+ D/ `1 S! m# D9 V& R0 i
pLight->Ambient.g *= 0.9f;* z1 h4 ?( N. [( H4 C! U
pLight->Ambient.b *= 0.9f;
6 \8 }; w1 {! a
) A4 R# q. M1 R: N6 v" N, E4 g" N memcpy( &m_light, pLight, sizeof( m_light ) );& L/ E- {! O0 Q, \# J& _) O- F
' b, ~! {$ u8 d" @; E
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
( B$ z4 _% k* l7 z4 I$ I, K pLight->Appear( m_pd3dDevice, TRUE );
7 m; S; m8 y1 `; X" J
7 O; f8 j) H" A1 V; ~; Z DWORD dwR, dwG, dwB;2 @" W& a- N+ K& P* M5 _
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 {6 g$ H! x( W' V dwG = (DWORD)( pLight->Ambient.g * 255 );
$ n- |- N. V8 e6 ~. ^% ?$ P dwB = (DWORD)( pLight->Ambient.b * 255 );7 v) X; Z" o% P0 e! X: B. ?+ b( \
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 I# q& v* r3 T, R }- s! Q9 ], |/ \0 `" i+ M7 Z
}
/ P w" R: M# m& |7 k$ m! ] else; s0 p- E0 d3 z
{
* w4 @; G. t0 Y if( pLight )
[! G( C4 G/ ^- v7 O {' v) n, g" o, ?# ^* Y9 E# S
1 P7 ]. E x0 B) V# U* l \ int nHour = 8, nMin = 0;
3 w' q# m) Q \" P) N; ^ #ifdef __CLIENT
7 A) M, E5 J: M w // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. % i1 x5 c, c" a" k& Q# Y" v% M: U/ u. I
nHour = g_GameTimer.m_nHour;
7 T. P* E5 C1 w nMin = g_GameTimer.m_nMin ;
: W# E1 F4 e5 o; w" O4 I& z2 V #else1 D5 [+ O+ K6 P) I: K+ e% [- i
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
. M7 ?) d, e+ g6 ` if( m_nLightType == 1 )7 G; n+ r; a8 ~- P
nHour = m_nLightHour;
5 l& c/ s b* g7 [ #endif
0 D7 B/ C9 Y- o+ B( S$ [ nHour--;
0 O$ |$ O$ ?' E7 h9 t if( nHour < 0 ) nHour = 0;( k/ ~ T) _& A2 k
if( nHour > 23 ) nHour = 23;
4 @/ X5 _( Q; p, v c, r
% A. x9 x( d% l4 z, w0 }' B //if( m_bFixedHour )% }: r% w2 r1 d# h
// nHour = m_nFixedHour, nMin = 0;
. F- M* C" @6 ^( e% w8 o% M- y LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
- r2 ~ F5 x7 K) W LIGHTCOLOR lightColor = m_k24Light[ nHour ];5 P! m R- \4 U( {
# e$ ]0 O$ s. v. \, ~: o6 x //m_lightColor = lightColorPrv;
* A. F( Z: ~6 f0 {8 o5 E, G lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
$ Q0 D6 y0 _9 d% z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
9 C( z7 h R% R$ I6 ?- J lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
1 z& k/ I# [& g" r) t$ U lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
9 C$ T6 ^* ?& X9 |/ q7 _, I lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;, _. u/ Z+ }# K+ t; Q/ M
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;- J' c$ z4 o1 M8 X; f4 M. y
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
% f+ t5 f1 d" H3 v% F- p$ L* k& f; a. q" @/ G' x; M) |+ Z# `7 W$ o
// à??μ oˉè*
6 `3 Y2 _ P, k, f1 q pLight->Diffuse.r = lightColorPrv.r1;; Q: f3 K# r1 e' x
pLight->Diffuse.g = lightColorPrv.g1;( c1 J6 [: K/ ^) G7 @! r
pLight->Diffuse.b = lightColorPrv.b1;
9 D% j6 \7 ~( |5 Q" g1 d // oˉè* ??à? 9 n" b* o* D; p& t1 d8 w
pLight->Specular.r = 1.0f;
! L7 R- Q( C6 R) ?# g' H, \ pLight->Specular.g = 1.0f;
( m% {% L( L9 g1 S pLight->Specular.b = 1.0f;
/ d. J* s' }: F X // àü?? oˉè*
' o( r9 Z: B( Z9 i: x! ]8 k pLight->Ambient.r = lightColorPrv.r2;* u" y$ R3 Z/ d7 ]
pLight->Ambient.g = lightColorPrv.g2;
_, W+ f6 M3 ~3 L/ Z& \ o pLight->Ambient.b = lightColorPrv.b2;; d8 y4 r# |& _4 c& y
' l* B+ k l3 r if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
( F* H8 ]8 ]" H/ W5 ? H p {
+ N; L. y+ u0 A% n: X pLight->Diffuse.r *= 0.6f;; j0 R A+ ^( T. }+ h
pLight->Diffuse.g *= 0.6f;
% _6 r. P2 _- B' R1 l0 F pLight->Diffuse.b *= 0.6f;% S- i _ p( D, P
pLight->Ambient.r *= 0.7f;2 j4 `0 D( s- O
pLight->Ambient.g *= 0.7f;3 U1 R/ A/ l7 b! {; i
pLight->Ambient.b *= 0.7f;
+ z4 G/ X. M) y) q/ c }" g- M* e$ o0 B' X' X
8 v' K0 \, s: X, j1 b$ \7 J
#if __VER >= 15 // __BS_CHANGING_ENVIR5 G G, V" ^& ~
if( g_pPlayer ) [# c8 h5 w1 C) Q a
HookUpdateLight( pLight ); 6 ^# f) c, D1 ?
#endif
& d1 {1 B; M% I2 |0 e" H memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( c# R4 N% W! u# o# q
2 `+ D( n- `; \ j#ifdef __YENV
5 j6 }( A( u& g& b pLight->Diffuse.r *= 1.1f;
5 z; D3 C6 }& f2 k pLight->Diffuse.g *= 1.1f;
) F5 Q4 p8 q( K8 q* A pLight->Diffuse.b *= 1.1f;; m) C/ k' C/ y, v
// oˉè* ??à?
2 h' u+ S$ q5 ]% T+ ^! @+ P pLight->Specular.r = 2.0f;
1 S# ~4 S: g0 U& j pLight->Specular.g = 2.0f;
6 @& X9 c; D2 ^0 V pLight->Specular.b = 2.0f;6 t2 {/ P9 N9 b% z9 b1 B$ N
// á?oˉ
1 j; m0 m1 Z- D9 a. t pLight->Ambient.r *= 1.0f;6 x, Z- d. i; H5 q' Y( T
pLight->Ambient.g *= 1.0f;
6 [! O4 G+ [; Q( |1 D& ?# l pLight->Ambient.b *= 1.0f; x) n9 T0 ~/ S" U* F3 Y
#else //__YENV7 o4 q! y! z# i' T
pLight->Diffuse.r *= 1.1f;& E. m' j$ {/ a3 b
pLight->Diffuse.g *= 1.1f;. t6 f" G$ r7 u: L# E! ]9 Q, N) z
pLight->Diffuse.b *= 1.1f;
1 m" U7 W8 I$ b$ w: s // oˉè* ??à?
' T! Q/ ?* T- m: C1 m) G& q# X' x pLight->Specular.r = 2.0f;% z6 u* j) ~& p% ~( g% f
pLight->Specular.g = 2.0f;0 @3 E0 R* R& @2 K( w
pLight->Specular.b = 2.0f;
- V; C; [1 V5 G5 ? // á?oˉ
; `9 G- A, ^* m& m# e, y) o pLight->Ambient.r *= 0.9f;
3 ]( r- [' ]: | pLight->Ambient.g *= 0.9f;6 ?* ]. E5 e0 l, U/ q. n! W
pLight->Ambient.b *= 0.9f;8 a- h! Z2 @ R% z; R, G; v) h
#endif //__YENV
% H3 t+ `* u1 ^: m" e
& U1 F+ X. f- S, s" @1 b) p4 h& } memcpy( &m_light, pLight, sizeof( m_light ) );# X2 }$ m! M( B- I( z
8 I" T/ p" v6 F( h$ J2 O7 u
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);6 e8 N, ]5 k5 l8 F$ @) `% O
D3DXMATRIX matTemp;
4 R' w4 C. N+ T: P1 T static const float CONS_VAL = 3.1415926f / 180.f;, H6 g0 z7 |0 J P, A4 Z) j
. B: n4 s! Z6 z& {" w4 K, D0 @ D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
6 M/ n" w; A+ y8 n! i$ \) \1 d D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);7 E! H! p7 y2 ^+ v/ G, L+ s& [
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); / Y) I& G- d( ?1 j% j0 K% R
pLight->Appear( m_pd3dDevice, TRUE );
& x5 x0 O3 _. D* ~ g6 d! o; M0 M- Z; N; B6 G# z/ t
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ E7 f7 C8 W' R // D3DXVec3Normalize(&(vecSun),&(vecSun));; X+ h6 G( w8 k1 `4 L4 H; ?: O7 y
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, P% `+ `3 }/ W1 U8 v( e2 a" _! O$ a6 y
DWORD dwR, dwG, dwB;3 W, j9 o) K e/ U
dwR = (DWORD)( pLight->Ambient.r * 255 );
; i, o4 G3 J% V; `3 G$ I dwG = (DWORD)( pLight->Ambient.g * 255 );; _' |9 W' X+ f& b1 U
dwB = (DWORD)( pLight->Ambient.b * 255 );$ z& W6 u' f7 E* }& S) a
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" X) q* n: v* i p1 Q4 d }' P- u2 a! x. B* [8 g
}" d+ C7 D t7 n! S
`( [! d# X3 c$ ` m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );* a* U$ H7 q% X, l& s" J
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) );+ o d) s5 v" Y' @7 r" o& J. }
::SetLight( bLight );
) d+ Y: L) k' m7 J
9 ?* H3 |0 i6 i5 w9 P9 h. k // ±ao? ?D?í???ó á¤à? % A8 L) |8 ]# t
m_pd3dDevice->SetMaterial( &m_baseMaterial );
3 N* m0 t7 p3 b& ^) ~' [
8 K) l) a! g0 r7 x$ G) ^$ e5 M9 m* Z#endif // not WORLDSERVER
7 `8 N) Y1 ^4 f' ^: n& u/ `4 C}
( Q3 Y9 u/ q4 B3 H. ]并更换, Z* _4 {2 D( d* s( F
Code:9 H2 o- O% O+ R. _+ m0 ]; T
__FLYFF_INITPAGE_EXT
) p; x8 Q. u8 |, ]定义
1 H$ _1 ?/ [; q$ |8 n- Z) D- |0 j
# K7 |; ^' w+ x6 H# R% }( {2 j- W. t& J+ _+ b
/ Q L% |: o- L _; m. R) D+ M3 D
0 y* [/ U/ o* a' z' ?/ q& t, L现在终于删除我的狗屁加速...
- B" k; E& {; m5 d! g* k2 t/ I' k8 I ~5 I* _: f
; I u3 Q2 q3 K, C O" Y2 u
! C: ^9 ~& @1 i) {) i% P |
|