|
|
食品车:
. W! i" G( r1 s尾翼:3 x. ~+ O2 f J7 z5 o
$ ~6 P* z6 r+ e2 p S) L
代码:) n& r C& B2 J
CWndAutoFood::CWndAutoFood()+ s: M1 j' X. {8 B" q% R; o
{" T3 C( v/ w6 v
m_pItemElem = NULL;
3 w, f& V4 t! [& ~9 w: ?6 q: r: Y5 x m_pTexture = NULL;
6 f. j/ m# P' o5 T bStart = FALSE;
# t6 A6 l4 A* S4 ]! b' Q}
& E+ M" w' Y: M# M0 c# F: ]+ q
. b7 _& B Q6 G: U+ s& GCWndAutoFood::~CWndAutoFood()- O1 w, J) |0 C( M) V1 s6 [$ M9 W
{2 `/ A) Y5 f) |# W3 y. N( o8 u1 p' p
AfxMessageBox( "AutoFood ist gestorben " );6 H' a6 e- }, {8 A& h/ A- `
}
1 Y& F; n! c/ c7 JBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
' Z8 G, p/ w( j/ n+ T7 n2 G{4 [& w+ n2 j- S& m. `6 G( L; E8 e
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
2 [7 t" X8 b+ d" K9 p& S6 {}( R* F) c, \8 F
9 m3 }0 m7 n2 W: Z4 V7 Y" Y# Y; V
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ). m3 F/ X" \" h) a" Q* V( ?. H! J9 E
{& Y# R( ?& s/ N( O, u* K+ B! H8 v
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );6 F, j" ^1 _, V. j* Z
CRect rect = pWndCtrl->rect;+ n6 h) {: a/ |
if( rect && rect.PtInRect( point ) )' [* ]1 ^% H; s
{& {- o/ i& b1 ]& O# d% M9 V
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
9 {9 S7 D# ?/ ?% [ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ); C* `' O/ y d7 @; E, T
{- b5 E: q" x0 B; y9 t4 y9 D
if( m_pItemElem )" }, j p3 R! q
{
5 [2 h3 S& ?2 b% A m_pItemElem = NULL;
# W2 N% H3 B; Z$ n }
$ |( b7 a, G# @. E# D9 Y9 g m_pItemElem = pItemElem;
5 y1 t6 Z6 `2 I7 z6 n5 {1 c {* } m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );, q/ j1 M# c7 I f
}else{
( m& i; k" W- x/ q2 T; I4 t SetForbid( TRUE );* F" s# x+ _0 j
}/ [& G/ K- r! P" w+ V% ^: ^
}else{
6 l( I! k% I* |! ~1 D5 _0 w SetForbid( TRUE );7 z6 ?9 \* S7 @/ G
}
6 m" `7 H J4 ~) ~ return TRUE;6 `7 X( f7 ~/ o1 C
}
" k& n2 Z% e# O4 v& h% ~, P
: _& U' O7 T' SBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
4 m$ X9 k/ B' P% z# ~! x* M{. }5 i; L5 F, `$ |
switch( nID )
2 l- H5 b* Y9 n- @5 x& F2 g# H% ^9 ~ {0 e8 F2 D3 {5 k* ~
case WIDC_BUTTON3:* I2 M8 q6 M, H
{& Q2 \1 @& R1 ^
bStart = TRUE;6 `2 l. i" x3 A$ @; Q" V0 W7 O
break;* r$ }( n& O1 F- ^: w
}. y A1 U4 Q% G1 @$ _
case WIDC_BUTTON4:4 m% {, i' r, h' H+ Y9 v
{
; t" t. y: S- o3 f5 F bStart = FALSE;9 l8 \% f" j b4 [, R; ~' T
break;
( ]4 X0 ^' a7 a7 L }
1 _/ g* q, h- j5 X q. T! o) x }; ?, s6 j9 N2 t3 _0 @9 E3 ~% p
return CWndNeuz::OnChildNotify( message, nID, pLResult );
% q/ h6 g+ w7 h# @0 [1 z, E0 x}
$ X+ N: D" E9 @- N7 n$ i! P0 `void CWndAutoFood::OnDraw( C2DRender* p2DRender )
% p& E1 h" A9 v7 f/ P5 Q. X' F{8 ^$ R1 r2 M$ A4 f
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );' D+ V2 l6 P% Z; S6 d6 B/ D+ y' i4 s" y
if( bStart || !m_pItemElem )4 d. R( g/ X! |3 V% K. j
{+ `$ S; B( B/ U+ q, }/ A
pBtn->EnableWindow( FALSE );2 M( `5 R1 g7 L( e; p6 [; x& B
}else
. _+ r2 a% |7 n4 h0 ^- y1 o pBtn->EnableWindow( TRUE );8 c0 {; G* ?' m" y, @, ]8 C9 v1 i
if( m_pTexture )3 n3 L. Y, B" s0 e& i8 q; ^( ~7 N4 a
{
3 G4 I/ u/ i4 M- ?4 v% A LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ o% S i2 @7 K, a1 }7 o
if( wndCtrl && wndCtrl->rect )
' @5 X9 Y2 t5 q+ c" D) l {+ z7 G( O( \5 K# R1 X( \5 X
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
' [( w9 l' u' x# ?' d* E }
# x3 D0 s8 V' `/ R }
7 M! v1 C& s6 o4 f" i. p5 m0 \" c}; m1 _8 Q3 M' C$ m, n7 }4 z. R
5 Q! J7 r" l* L" e8 UBOOL CWndAutoFood: rocess()
, _* \+ ]7 w6 _1 ?{
7 s( Y& o% m3 g3 U" \ if( bStart )
9 K' p9 A& p. U; {+ G1 M% k {1 x/ W0 V- I1 `# ~
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )& V* U9 S8 g9 d" d+ g. L7 v
{, Z- i9 O# E& s+ G
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
/ j5 X' k% L0 ~% v, r- N( c9 S g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );* g" I4 f/ ~1 {! v: ?" L. w5 A
}else{
8 x3 v$ A3 e# ~5 g5 ^% {& ? bStart = FALSE;8 K. q5 L/ d# L/ x
m_pItemElem = NULL;
7 @$ u7 P- R5 A7 L }
! _) ?4 K [* @2 Z& E* D5 i }
! f& u& B! e: I return TRUE;
4 z/ }6 J b/ h3 @; R; g) p}
7 w, D1 f$ ~/ o1 Y5 u+ s
1 f# a; D+ U+ G; n# v0 f登录视频废话:
3 o/ ^7 p+ `3 t5 F6 x, a" G尾翼:; B8 g8 P" l+ j) W- V4 F4 N
' i2 J8 s0 ?( {8 h1 e: M: i
代码:
0 {) x' a3 X p. ?1 Y' N7 L& y" F% \$ F
void CWorld::SetLight( BOOL bLight )
& f2 D. O6 g( G; ~durch! {7 b3 G; ?: a' [3 |. J
Code:
- L' O1 M( h- U; Vvoid CWorld::SetLight( BOOL bLight )
+ I# ^( W6 }% Q0 G: E{
C& x. B+ ^% M% G! M# I! E //ACE("SetLight %d \n", bLight);9 b+ Z% t s) L+ }9 h: |7 s
+ Y$ c( A, m( }3 r; X( G7 m/ I#ifndef __WORLDSERVER 2 ~! r% f* K: k
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* G! {# ^: e( N9 W CLight* pLight = NULL;% p R) I* S/ O4 y9 H3 a9 W* d- ?
' n6 q0 i8 k; F9 j D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
# C) P8 @0 }" h! H+ b% n6 ]
4 J9 F/ i3 S/ g8 ^, ?- t: ~ pLight = GetLight( "direction" );
$ k+ z6 A, c( K0 \0 z3 ?
4 Y9 [. [: k" @5 Y5 ^" W# ]! x$ V#if __VER >= 15 // __BS_CHANGING_ENVIR9 r% N3 E: Y2 g% ?/ c$ q5 Q
if( g_pPlayer ){1 w8 w$ K; B& D/ o) U5 |
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );! `8 b$ A2 i) r2 ?9 p- I3 S5 J
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
; Q# ^& k& R, N" x1 b {
& w& W) |9 L& |& c if( pLight ). B8 n5 u _6 O" l( j, X2 a% N
{9 _4 f) S* g" ^
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];5 e3 x) R! M5 ]1 @
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
0 y" V/ o% S8 M3 T( z7 [ N% O pLight->Ambient.b = pInfo->_fAmbient[ 2 ];1 H ]" c7 T: J
Y! e: n6 j% |. A2 C: ~3 Q pLight->Specular.r = 2.0f;( H Q5 c% S+ R0 U: D( O
pLight->Specular.g = 2.0f;$ J) H+ C* ~9 E0 i
pLight->Specular.b = 2.0f;
" \4 z/ w) U1 u. v
# N9 F$ ]9 e9 E0 N( v; ~' N, C4 h pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];: d- ]; j! c& e H4 ^, Z! f
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
3 x+ ^6 F' _! v; P n& S% f pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
" S, X/ L( ?/ \* W
) H/ w7 `- l" M5 L" Y4 O. Y5 P HookUpdateLight( pLight ); ) J2 T, \7 N% G6 Q' u7 n* f
) G7 O9 B0 {" ?. u2 N0 z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) X. r7 f) |2 f, G) B
; B5 ~* B( \; |6 q1 m' s pLight->Diffuse.r *= 1.2f;
, U. u8 |" r# T0 }' Y pLight->Diffuse.g *= 1.2f;
: L& p! U6 d0 H ?2 N: N# H, L" A# B pLight->Diffuse.b *= 1.2f;9 S4 L: h8 \, v# P7 k8 ?
% `& V4 u8 G9 P# V
pLight->Ambient.r *= 0.8f;
9 u3 B- i' w) m8 N' j5 R; |% v pLight->Ambient.g *= 0.8f;
& J6 i' a1 ]+ B* ]1 z. ]* c- G pLight->Ambient.b *= 0.8f;$ |) S9 @% X' d8 A6 Q8 w
. r/ m! M; n0 H% n# U8 L
memcpy( &m_light, pLight, sizeof( m_light ) );1 ]1 ?& I( b4 ]5 ~1 f( z
6 y% ~ m" y v w; g* e D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
t! { V, x% o. w L D3DXVec3Normalize(&(vecSun),&(vecSun));& V* b" f3 q. a8 o& Z4 M
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 @" h& z s+ Q pLight->Appear( m_pd3dDevice, TRUE );
: N, b) u. ]$ `5 K+ x ! ]( e5 a- H# f7 k& Q
DWORD dwR, dwG, dwB;" T$ h a1 E0 V$ _
dwR = (DWORD)( pLight->Ambient.r * 255 );% i+ z- j% L9 n( s+ Q3 I
dwG = (DWORD)( pLight->Ambient.g * 255 );
% E0 J7 S; A0 R: R dwB = (DWORD)( pLight->Ambient.b * 255 );, P1 @# w8 e `- `4 r
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' [# f1 P/ x% |* G }; R6 M; ~& B. U5 f( f5 @
}
* K* f8 P. {* a- q2 s3 { }7 ^/ I, `2 X8 _5 p' M% h
else' E+ F# N6 c: H: V% g
#endif : B% F$ t. D6 X/ F
9 r( y( A2 o( u7 F0 V, c
if( m_bIsIndoor )
: h. q4 D# \# P+ J% f, j4 E {
4 F% X- _, U) ~1 N/ x8 R! ^+ K if( pLight )3 o6 I: I0 \# J$ `6 C* h
{
. f0 F( n0 M( i7 H& h // à??μ oˉè* ) w/ Q, X/ Y+ Y" i5 J" L7 J& E
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;$ b& S- `: ~$ t9 B
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
# T( M& t' z2 w5 |4 w" E+ B pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
' l% k. @, r, _ o* h6 h& z2 |+ r
: T }( G3 x# f+ h // oˉè* ??à?
. H+ F4 D% @5 [. a0 w" W) K pLight->Specular.r = 1.0f;4 D) P, x/ z- ~/ S! m* q
pLight->Specular.g = 1.0f;
1 C; p! C1 t$ e, ` pLight->Specular.b = 1.0f;
2 J9 o; O9 T$ j c n5 B // àü?? oˉè*
; r @. m* m- O2 j) A pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;5 W( e4 T D7 W7 g7 N0 Q
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ b; z, O: Z* D W* q
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;: R+ F) e" A/ [3 a3 [
$ P, g# v0 P5 L! w3 B4 X7 n" Z if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# K8 w. A, I" Z# [. k
{
8 i5 e/ S/ ?/ h- G0 d( B2 Q2 o pLight->Diffuse.r *= 0.6f;: J% _! [/ Z' y1 L& i
pLight->Diffuse.g *= 0.6f;6 y# Z! Q2 F& g6 g C7 @# ^
pLight->Diffuse.b *= 0.6f;* ?4 y$ V3 ?$ j9 O* K$ O) L& B+ Z
pLight->Ambient.r *= 0.7f;9 y+ s; I. M+ R- a. I* W2 [$ z/ F
pLight->Ambient.g *= 0.7f;
4 L1 c- D3 x) `1 J! A pLight->Ambient.b *= 0.7f;. T! C6 i9 s) q- X, E, s, D/ @" u' {
}
8 w4 Z9 j% o2 [/ L" f T- x7 D4 G2 \1 X
#if __VER >= 15 // __BS_CHANGING_ENVIR
) `/ |; i6 M* b' L+ m' q0 _/ G8 i if( g_pPlayer )- G9 v2 d1 B' k2 \( M
HookUpdateLight( pLight );
( L! d$ d+ S4 D1 T: @#endif5 c' n( s) l& n" l1 `1 W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. N4 n% K. @) V1 G4 Y8 G9 x
7 Q+ Y+ C( B% t" l, w1 K4 L: U pLight->Diffuse.r += 0.1f;
0 k& A% ~+ D9 w) f& G2 P; ? pLight->Diffuse.g += 0.1f;
' Z! M) f; n3 h3 A+ ^ pLight->Diffuse.b += 0.1f;* L( Y$ [! C, m. @5 U, c( e0 s/ [
// oˉè* ??à?
8 t" H Q0 j6 I y$ w3 _) I0 y& J pLight->Specular.r = 2.0f;
, a: \" m4 p5 y1 {% l4 q- G pLight->Specular.g = 2.0f;
7 Q+ E2 @/ l) G8 q1 W pLight->Specular.b = 2.0f;! F7 E5 H" Z: U7 [2 S) v& ?7 d
// á?oˉ & k3 D8 U$ @1 w5 i6 m {8 j$ z j, j
pLight->Ambient.r *= 0.9f;5 B0 a; ~+ C" U1 h5 u# _3 x+ E+ ]
pLight->Ambient.g *= 0.9f;
, U- Z7 G3 t9 M: \) l pLight->Ambient.b *= 0.9f;. p% g; V% A/ S E; E6 o' |) d
4 ]& E1 ~& T9 J9 M `# u5 A memcpy( &m_light, pLight, sizeof( m_light ) );
2 t3 D( z, L# u9 K* c9 M
3 `6 g8 [0 m6 a3 v pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
( y# ^7 H0 u" N pLight->Appear( m_pd3dDevice, TRUE );
: ]9 J f" I/ }, X; N; Q! O 9 _# R, E2 @6 ], A7 {, D5 o$ B
DWORD dwR, dwG, dwB;
! }/ E% {3 j! ^- |7 A( o q# v dwR = (DWORD)( pLight->Ambient.r * 255 );
1 d' F" L1 u4 ~9 ]" I- a dwG = (DWORD)( pLight->Ambient.g * 255 );
6 V& Z% n- O$ Z& b3 E9 p dwB = (DWORD)( pLight->Ambient.b * 255 );# I: p, j/ m( @ ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" e! H: R- P9 B4 G1 I }
1 }' D) H3 M4 Z& I4 o |. i6 K }" D3 e+ K" A" |3 R Y5 x, `
else! y' s9 ?) C# d1 |
{/ b5 a1 F: I( L( N$ a0 R& o
if( pLight )
& C: x' v H9 [( G* N& n& Z {0 h- q5 ^8 m' C
' \, p0 |, J8 G( g: ~* E
int nHour = 8, nMin = 0;7 [! y0 P( V! z* b8 k2 j- [
#ifdef __CLIENT* y3 |' G" P" X* U
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. + v t( r; R1 k* }6 T' M A
nHour = g_GameTimer.m_nHour;
* @* X: F. t R nMin = g_GameTimer.m_nMin ;
" w) Z9 ]( F( N/ s4 G5 h #else
) K/ v0 s2 x" ~ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
& a$ O* J6 f* }* P2 w if( m_nLightType == 1 )9 n9 A+ A/ f! c" Z/ e
nHour = m_nLightHour;
+ N& L! D8 \! P5 s" D& m #endif
) y4 j1 d" r6 X, j, f6 m nHour--;; d2 D, f5 V6 |
if( nHour < 0 ) nHour = 0;2 K3 C- U; H/ X
if( nHour > 23 ) nHour = 23;2 N6 `! ^' Z6 f9 P* U% K
9 o$ h6 m4 ^' V6 e H //if( m_bFixedHour ) ~4 p* {, G4 x7 G7 H
// nHour = m_nFixedHour, nMin = 0;( t' I& W2 s" S" x7 Z. b7 R( }0 H
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
4 g* V+ c% ?/ o l! G1 C LIGHTCOLOR lightColor = m_k24Light[ nHour ]; s5 P1 O. r, I2 H' Y
$ P# N& Q* y, `# v7 Z //m_lightColor = lightColorPrv;5 K- S( Z2 k( F1 [2 v2 i1 M
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" e) r0 s9 t/ j3 Q
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;& Y3 g5 S# t7 ?# ~
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' g1 V4 O1 r. }
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
+ J5 e p- S! o8 z0 c9 y( d lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
4 ]- m; U! c7 n. N lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;% |7 u0 _' _1 g! `: G2 D
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)) _ d' N+ G, V% `( V
7 x0 n5 D% g- h4 q* [ // à??μ oˉè* & T- O& v, {! s# Q ~4 ?+ J- H
pLight->Diffuse.r = lightColorPrv.r1;( L' a& l: ^" d6 k5 A. Q, d) G! `7 t
pLight->Diffuse.g = lightColorPrv.g1;. o3 ^! Z# J) ~1 C) k% ]- t+ C$ K
pLight->Diffuse.b = lightColorPrv.b1;
$ T* \' l3 c- i+ T1 U. ?" ?- D // oˉè* ??à?
\, q7 w7 T; ^# I+ S: f u pLight->Specular.r = 1.0f;, N# J9 V/ k, S! w: w- q4 j
pLight->Specular.g = 1.0f;
3 B- N9 U# o9 h1 r- ] pLight->Specular.b = 1.0f;* i/ I2 ]% H6 ] ?8 T+ }
// àü?? oˉè* n4 a1 s& h+ k- F3 y
pLight->Ambient.r = lightColorPrv.r2;- w: F, m8 @% |# L6 H" t- d
pLight->Ambient.g = lightColorPrv.g2;7 Y6 q5 y: e) u
pLight->Ambient.b = lightColorPrv.b2;/ t7 V8 P* v9 O' y
- c- I* m( g+ ^: i5 o. ?2 @! P
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.2 g& D" r% s% b* D5 L& B! `
{
; V$ @6 N) q& k0 ]! K4 l" { pLight->Diffuse.r *= 0.6f;
2 I2 a* M7 |; ~ n, I" a2 |1 @ pLight->Diffuse.g *= 0.6f;/ J3 w5 Z- U- G: p+ L/ S; J
pLight->Diffuse.b *= 0.6f;3 k- ^- \( l6 O( R
pLight->Ambient.r *= 0.7f;
2 D5 B" q. z6 g3 C( `7 P' ? pLight->Ambient.g *= 0.7f;
( n2 ^! Q' [) l* g2 W$ l pLight->Ambient.b *= 0.7f;
* N( M+ A* m8 }1 B }
u0 W7 r% [4 N* n5 R, X
) p" Y# z6 C! C% x7 j1 _2 L" s% Y/ F#if __VER >= 15 // __BS_CHANGING_ENVIR7 p( B6 Y2 A, c5 D% M# |$ x$ G6 S& @
if( g_pPlayer )! t! ^0 H4 C; l- a8 `% s3 g( k( e
HookUpdateLight( pLight );
4 }: G2 m) Y2 D1 |7 d) Y3 ~( d8 i#endif
9 ?' B" S: F4 w3 B" I- s- j6 l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );$ L4 D- s1 N5 F* P" `
4 _, g/ B. f, n2 w* u2 {" {5 {! c& A#ifdef __YENV
5 A. c% m! m2 r& \ pLight->Diffuse.r *= 1.1f;
- g6 ^# J% }. i5 c/ J" w3 ~ pLight->Diffuse.g *= 1.1f;2 L) B/ s9 D) w# @
pLight->Diffuse.b *= 1.1f;
2 B3 b9 \+ o5 G& j1 y1 e // oˉè* ??à? 0 ?% w: k; f$ M/ ~: k7 W6 |
pLight->Specular.r = 2.0f;
# k' h' P3 N/ J( F, M pLight->Specular.g = 2.0f;
3 |- Y0 p- j! d# l# ]* n pLight->Specular.b = 2.0f;
+ X! C3 q" l7 [% l# N* a6 V // á?oˉ
& l9 @& x& H0 p: m& B pLight->Ambient.r *= 1.0f;" J/ s5 U' F+ z% y& c
pLight->Ambient.g *= 1.0f;
3 P% W( c2 m6 ]0 L# ?* { pLight->Ambient.b *= 1.0f;" Y8 M( V: ]* s* P+ x: Y8 R
#else //__YENV5 v4 J( i$ G+ } h
pLight->Diffuse.r *= 1.1f;
" J) S1 ~8 [- s pLight->Diffuse.g *= 1.1f;6 L4 h$ \2 D! G9 U$ f/ i
pLight->Diffuse.b *= 1.1f;
3 h3 U+ p' {# c1 W // oˉè* ??à?
2 o( p, k4 {' P: i" k1 i9 q, g/ ^8 | pLight->Specular.r = 2.0f;. F( Y0 O) T3 s9 _
pLight->Specular.g = 2.0f;
( M; ^5 D$ B$ e" @ pLight->Specular.b = 2.0f;
4 @5 {- t' a' N% _* W+ z+ K8 K$ h // á?oˉ
2 x# x- d9 E# a! i pLight->Ambient.r *= 0.9f;
- |2 P, B3 _$ i, z pLight->Ambient.g *= 0.9f;
# {5 Q; E) }4 \: j% X Z pLight->Ambient.b *= 0.9f;
( N$ m, h# ^! C* ?#endif //__YENV
. e7 |1 {0 _/ y' e$ i
8 t/ I) Y* p* r/ N memcpy( &m_light, pLight, sizeof( m_light ) );
4 q3 ^* @% \9 X8 C2 A 8 Q+ W5 @9 L3 E" h9 s: q' T
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);2 b* d0 a5 m# W9 A! ^) j
D3DXMATRIX matTemp;# ^7 ^- ]4 V0 `& ]; B( P
static const float CONS_VAL = 3.1415926f / 180.f;) S+ l: M: v7 q. P
' h% g4 o7 P, I) g$ N D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);5 [/ V6 z! i" v6 {" w/ t7 L Y" r
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);% X0 H& r0 \! h5 i3 _
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
+ k o1 k$ _$ t pLight->Appear( m_pd3dDevice, TRUE );1 ~6 @5 ]/ H: a9 v0 F! v9 H
2 z& j! Z6 [ B# W/ l2 E; u5 P8 |! R( D
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);/ G9 o8 d1 `7 z2 K2 T1 S
// D3DXVec3Normalize(&(vecSun),&(vecSun));& p: q$ p2 J9 _( D
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* o8 n. h% m9 w, `5 i H. k% M" K* E) b
DWORD dwR, dwG, dwB;7 D0 o* G7 ]; I: j
dwR = (DWORD)( pLight->Ambient.r * 255 );
8 t3 M9 y* u" p& K6 E# S dwG = (DWORD)( pLight->Ambient.g * 255 );
8 f+ H% F8 C/ p dwB = (DWORD)( pLight->Ambient.b * 255 );7 R$ R* O3 f( e4 D! q4 J9 H' T
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 o7 X/ L2 B( p3 j, B7 d0 j }
, [/ y7 z. n1 d0 F+ i, H }" c: O$ b! m+ f; _+ d3 f$ M
+ A4 V$ ?. e% d; w; q2 A m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );4 |- p! h% S( Z9 }% |* C9 u* Y
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) );6 X# P1 k) K& u% C+ o) b
::SetLight( bLight );2 ]8 D* J% ^& F- P+ v
. o- [( [/ o8 Z7 J9 ^/ A // ±ao? ?D?í???ó á¤à? ; e$ H, Q% ~' i, u; m5 m
m_pd3dDevice->SetMaterial( &m_baseMaterial );
6 _; R. i- u6 I& f( j! [2 L , ^1 i0 L$ I. _. ~2 q/ |9 T
#endif // not WORLDSERVER
) G l8 B0 h& i: F9 U' F+ Q. U0 }}
7 ^0 o. r6 Y" Z6 Y/ l并更换
, M d% e! s7 b8 X- Y: G6 T) GCode:/ I& u# v6 H0 U: @3 C6 ]
__FLYFF_INITPAGE_EXT
2 n+ w) P" t2 X/ A t1 q定义8 t; v" x* F- V, b& v% V
, o9 p0 F' O. d6 P
, T$ k5 K" A ]8 l9 g0 c- ^& {0 `2 L2 i G) W' N
3 x! N6 d/ N# B8 ?$ `现在终于删除我的狗屁加速...4 G- w# N6 M1 P- ^6 K
% Y2 i* H1 ?* i l) y
4 f2 f7 d, w0 e' Q- a
y0 w4 Q; U& O; u& x# N7 k |
|