|
|
食品车:
/ L; A1 e4 ~+ a& f7 c; j8 H尾翼: Z6 W' W5 l4 Y, ~. x) r
5 J7 M/ s+ p; a' o \- R7 ?+ N4 {4 U
代码:
% J( [5 Q. I( ^' b# H2 P2 E4 rCWndAutoFood::CWndAutoFood()
' j4 f0 V& j, z$ z$ v% w* S{
! R% T% _4 V! m4 L m_pItemElem = NULL;
; `6 Q, Q3 w. F9 C( {4 s m_pTexture = NULL;8 c" M h4 F+ T
bStart = FALSE;1 o4 X. f0 |9 G8 c x6 z R% r# v9 f
}
t3 T: s9 C& [7 h1 s2 o
# v- n6 `5 L4 g* K9 v' |8 HCWndAutoFood::~CWndAutoFood()1 Q6 ?3 _ ]( @/ q J1 W; Z
{' \' |) E6 U) Q" |
AfxMessageBox( "AutoFood ist gestorben " );
3 C; k1 w' W& [. I& o' e$ A3 `}
* x& c1 I5 b+ k# y& k0 ~BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )/ I* l& F7 j8 c0 q1 C& k+ v0 U
{+ D1 o5 p( R4 k& O
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) v2 C j- I4 k, @
}) J5 q, ?" V. X. G5 S9 e
: V0 m, ~( G. _: t' Z
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ), g) s2 i% g4 S" G1 M- V/ b
{
: D) D# E! d, k* Z5 H6 _( A1 I7 t LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 O9 V1 t3 ~- d' G3 P
CRect rect = pWndCtrl->rect;
) H, l+ P# K( W' H# N9 J$ o if( rect && rect.PtInRect( point ) )
! `5 W. R! C$ J; Y, l {
* K; Y- r, [8 P3 ~ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
|- F7 s: [& T# c) y' H if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ) }# X) |- P; [# m1 D/ Y
{- a: C3 O3 _1 Q: x+ S" s8 h) n9 `
if( m_pItemElem )
4 l# b% H$ b1 F# u8 M6 g$ G! y: ^ {5 B# t6 R w5 H5 q6 y- c! j
m_pItemElem = NULL;5 z- F, s& ?( Q8 d/ p, |
}
0 }) o. J b: k$ o% V, L1 h; }0 a m_pItemElem = pItemElem;
2 o3 p) _$ q; s m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );, O$ E) p3 y/ t- E+ S
}else{
7 q' ^& d4 a( i- d, T SetForbid( TRUE );
L8 W4 o; i( x6 `3 [ }
5 r/ m+ f7 O4 S }else{
7 B* {- |9 P& a! Z: z( Y SetForbid( TRUE );6 ^! v! k9 ~2 l3 P4 W/ @( f
}
# d( ~- J a3 Z6 n" L B2 s3 j return TRUE;
3 o/ Q) k1 I1 r1 u5 t F' G! G+ q}
- p6 n& ^) f B1 @0 J9 [. }* c8 y7 `4 k- a# A" Y5 G
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
! b! Q- c9 O. N) k. @{
1 p- N5 F6 {2 e switch( nID )
/ W# M$ y# K; p) E {
7 f8 F" i) A* |3 S case WIDC_BUTTON3:
+ {; n! o: L1 s% w! R6 I# X3 e {+ f+ g# S4 a7 Z# {
bStart = TRUE;- N. Q1 A& U# q5 T8 R7 p( l
break;3 d0 ?' G& I0 o2 e2 j
}7 ?, [7 B) g# Q9 m
case WIDC_BUTTON4:, M( B2 f2 ?, D' u4 V% ?' Y
{
4 N" w3 O0 p5 V! o/ m' ], y bStart = FALSE;4 m, {0 k& x4 o4 u1 A
break; l5 j1 j( f% S1 X# h
}
7 @7 S- G" J& t0 L1 j; z/ P5 I }
& T" d1 c& d3 C( V, g return CWndNeuz::OnChildNotify( message, nID, pLResult );* L7 w/ W# _& G1 F0 t
} 3 x- [7 \2 H2 C- n/ R/ |
void CWndAutoFood::OnDraw( C2DRender* p2DRender )! V% m8 V5 g/ i7 ^# B* ~1 n
{: P' F& j* G; C- @
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );# Q1 e W: u7 w! H- L9 y( p' d& K1 n3 j
if( bStart || !m_pItemElem )
( K, P# _( G3 t/ f! o8 l3 |& w {
. f9 g; k! A+ K! y! i& Z/ w. J$ u/ u pBtn->EnableWindow( FALSE );
8 o% _8 ]7 \& T# ^" r }else/ c2 _, k1 f' y9 T
pBtn->EnableWindow( TRUE );
9 G& v' @$ {: c6 [ if( m_pTexture )
( N7 \6 ]3 e. P, g) n/ E- D {
5 E- o, Y U4 I. S* ]) f- I LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );" H0 @! u1 I1 C: a. \+ P
if( wndCtrl && wndCtrl->rect )) n5 V% q+ P! c: ]8 `
{* J# s" }9 S0 N" z8 B7 U A
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
' P% k4 ?5 C" v; ~9 x }
0 `% S8 N. r2 ^* \2 F9 I: e+ B }
( A u0 G+ k6 Z}
5 x, o8 O3 }7 f f& X
# ?, h% Q( i: H! ?+ OBOOL CWndAutoFood: rocess()
1 A0 Y$ v9 C4 c. @{* `' N: F M6 Y$ p( D O0 b% m
if( bStart )
5 R5 l3 k6 Q w$ c1 X2 S7 F U9 @% H) \ {
# ~" e; ^' @: s if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )) q( {; i/ L9 _' ]( f" s
{
1 k/ M& p4 n7 S) V" u if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
5 E4 Z7 H+ h2 d- |+ _. h g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
& U5 \7 R, A$ I. K6 p* N }else{: V( n% c8 t8 U' g9 ~+ @
bStart = FALSE;7 \) y( g( t, t$ ~6 K: ~
m_pItemElem = NULL;0 _; L$ b4 b1 I4 n' b5 U7 [# T
}
+ v b9 s7 x6 _/ O7 G) M. s }/ a/ e/ `" a! ]2 l0 a5 m) C/ h
return TRUE;
8 f3 i/ S: x' @1 ^) e( |}
3 s- @# T# ~1 L" g& W3 n3 b& w9 y! k- u) x- [( C- m3 ], }* o
登录视频废话:
( J$ f; B9 Z( k/ q, ~! r尾翼:
7 w2 j9 z6 q6 k4 r9 r6 R) a. v0 L0 c1 t2 @. R. K
代码:
( E W! M j: c- D( T; ]( G ^0 j& k5 m Q: P9 g
void CWorld::SetLight( BOOL bLight )
. y, @( f$ P+ Tdurch
& T9 @* Q% y# RCode:
2 Y5 c2 X# U$ N* |* y6 u1 Lvoid CWorld::SetLight( BOOL bLight )
! p. s. U4 [+ N! R% y6 Z{
+ k& t: ?% s0 _% K( j/ f, G# M) _ //ACE("SetLight %d \n", bLight);
( H P5 T' T8 B7 o
8 x+ g! p( r2 z. l# l2 E$ H#ifndef __WORLDSERVER
1 j, R1 J) u, Y- Q0 _% v DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);5 X N0 Z) r3 n2 ], ]9 X/ c# F( Q
CLight* pLight = NULL;
8 w# {0 O; `8 T1 o! z) I+ s# \0 x& e5 i5 y
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
% k( i! W6 f1 _+ S/ h+ m! q. x& r. A% c9 ?/ J
pLight = GetLight( "direction" );1 e" [( u, G2 q4 O" T/ V. b4 X( g" }
( n# E4 ~" m" C J0 y# F+ H#if __VER >= 15 // __BS_CHANGING_ENVIR4 l9 |' m8 f- D3 }
if( g_pPlayer ){5 j% p3 q8 R+ G. K* c: V
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );* p' _& c9 E3 B' v' S
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!& |6 a- H* i7 n$ N
{
/ J4 y+ @+ t' R0 R& J4 m if( pLight )* _) E$ b3 ?# {' M, l, V4 r1 H8 c
{) u& c) l* w1 m+ A- V( A3 ]
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];$ Y2 n2 z0 H. y6 P- G
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];% L( J0 j" Q1 R
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];& V- r" }$ i- Y- a. G
2 J( ^6 U+ J* C' P2 F6 X pLight->Specular.r = 2.0f;
/ S" p6 B5 p0 m, a pLight->Specular.g = 2.0f;5 h% \% h2 j' N9 s4 w' P
pLight->Specular.b = 2.0f;3 o: A2 Z3 a1 M0 U8 D C/ T
9 m! Q( q- R( }8 V" J4 e6 A' r
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];/ w4 Z: u" H7 k$ b3 l3 V% w
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];, d/ Q0 D) z' i- x5 e5 q1 w6 a. h
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
) L) p9 J d' n7 d* S$ S: C $ R, @; u8 ]6 U$ g" y
HookUpdateLight( pLight );
8 m8 z0 y( G0 H( G" c0 E
) I( ]& I: e3 x, U- q$ s' w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 m0 B! O9 y: W
* a) G3 j0 M8 C# x# j$ F' Y3 {: \) l
pLight->Diffuse.r *= 1.2f;
; s; U7 L% \+ s! L% a pLight->Diffuse.g *= 1.2f;
9 x# R$ i; z# r$ ~. E- x" ` pLight->Diffuse.b *= 1.2f;! {9 g, c* b& q: d
% z7 ~9 d( z5 k$ V, b/ x
pLight->Ambient.r *= 0.8f;
8 F3 I" f; o6 f. M z2 t pLight->Ambient.g *= 0.8f;% a6 x- H* y/ _7 [8 z U8 F
pLight->Ambient.b *= 0.8f;
6 i1 h+ N' ^- ]* f 6 }( f( H* t; w* q
memcpy( &m_light, pLight, sizeof( m_light ) );
: q: C, S2 Y3 u5 g1 v8 G1 J- L, G/ u
% e& k& r* M0 k+ f% w- s6 g3 \ D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);/ c) y5 h5 V% a# f& g# J
D3DXVec3Normalize(&(vecSun),&(vecSun));
; C$ d- B# z' Z, a: N2 | pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
# {+ S# E- q5 V3 _) v, T pLight->Appear( m_pd3dDevice, TRUE );' r; s. q- a& `7 X; j: O2 l0 f
/ a7 S2 m6 [' E& X7 |0 n2 T DWORD dwR, dwG, dwB;, H+ c& x0 T q/ ~( f! _, M# |+ W
dwR = (DWORD)( pLight->Ambient.r * 255 );0 p* H5 {. c8 a5 b6 n0 R
dwG = (DWORD)( pLight->Ambient.g * 255 );& \9 X/ i9 Q6 s9 t7 u
dwB = (DWORD)( pLight->Ambient.b * 255 );
2 t7 |8 T# \9 f+ a5 b$ o: y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ t4 ~0 R' j E1 H
}
% c5 j0 R# O; Q' t+ ^ }
4 T5 q- D) e9 H' D! [* U }
! v- C, p: u! ~& ` else) S1 ~' z# g. U4 j, H* ?
#endif
) d ]$ g6 x$ V* [2 x+ _' n
: _% E/ `' ?6 B- G v if( m_bIsIndoor )
* i( B( i1 A! d {
% j. V7 F% g/ F; a. N if( pLight )0 s* ]; F, a( P
{
( U J7 Y! j% y: n0 H' E // à??μ oˉè*
4 a" x( O: p0 X% U' W* m8 ` pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;3 O8 J+ X% T( x6 {
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;6 ]: r9 \' Z3 n6 f1 [/ b
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;% c3 j1 V) v3 N5 z! l4 }5 g
$ H/ m7 A3 y J% y- ]9 @ // oˉè* ??à?
, n+ m/ u8 S( G+ X0 q" B pLight->Specular.r = 1.0f;
: V1 }' n6 D! ?& V( @% F pLight->Specular.g = 1.0f; L a! c+ q) K$ i. E
pLight->Specular.b = 1.0f;( G! Y/ M# G% F+ E, Z: h
// àü?? oˉè*
1 Q8 u1 p1 z F. B# ` pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;; Y; |+ J7 y. ^+ N/ S- i ~& b
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
0 ]% y( V2 @- f2 e% t. b( b pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;0 |! M% `! s0 \. F
4 U5 B% t5 w" W8 H7 C M
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ U& `0 @ _% @9 `9 |* `& r
{
/ e7 f. r* U0 `- V pLight->Diffuse.r *= 0.6f;) I$ ?( [8 `& o
pLight->Diffuse.g *= 0.6f;+ C5 ^; |; q& e' ? E3 m
pLight->Diffuse.b *= 0.6f;
8 e' W# N" Z1 D: H pLight->Ambient.r *= 0.7f;
- E4 l$ a3 ?3 ]- \ pLight->Ambient.g *= 0.7f;9 Z% u2 Q* e: F8 I
pLight->Ambient.b *= 0.7f;
, j7 L4 t) P: o3 T5 `* b& s }9 ]5 Z* ]( K8 a( Q
+ ]3 B, M( G' [" m X#if __VER >= 15 // __BS_CHANGING_ENVIR, Q) ~" r* s. T4 y+ U3 d
if( g_pPlayer ). s9 V4 z* G Q( s# u# j* b' x
HookUpdateLight( pLight );& w& x4 _! P; m' @3 x* u7 W
#endif: _* L, D# f3 i+ X5 u9 g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! H2 I5 ]+ c4 m# y1 }' z2 ^6 o
pLight->Diffuse.r += 0.1f;
+ j3 Z7 i; o, l: t* `& Q3 \ pLight->Diffuse.g += 0.1f;7 B4 u: Z0 Q$ E7 r6 p6 n
pLight->Diffuse.b += 0.1f;
1 t3 Y6 V- H0 f" r7 Q0 s: E# j7 ~ // oˉè* ??à? . G; R: W2 i$ h, ~3 X9 X8 P9 J1 w
pLight->Specular.r = 2.0f; s- l5 S1 H; t0 C4 M
pLight->Specular.g = 2.0f;
% z F I! C5 W0 i9 i5 F, u pLight->Specular.b = 2.0f;/ F' N A* c4 t0 d* I" r, @
// á?oˉ $ t% ~7 I: b/ {' i1 I
pLight->Ambient.r *= 0.9f;
z0 o: ~& Q6 { {- z pLight->Ambient.g *= 0.9f;: W, c* {8 {& Y% ?- \
pLight->Ambient.b *= 0.9f;( Q* l/ F% a/ O% K
, e1 z, T+ D' w) f) K, x
memcpy( &m_light, pLight, sizeof( m_light ) );# E: p9 \" |* k) R; i9 Z$ k: P8 _
8 [ b1 K+ w; n4 ^% }# A7 u, J* C
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
, G" P- F& u% A }& ] pLight->Appear( m_pd3dDevice, TRUE );
0 a0 r# d+ [" j, E; G ( J6 e1 [9 p1 F" b+ o5 W
DWORD dwR, dwG, dwB;$ j5 @6 h4 C! o' H" ^ [. M o
dwR = (DWORD)( pLight->Ambient.r * 255 );# _ D: j+ R/ \3 l% p {
dwG = (DWORD)( pLight->Ambient.g * 255 );3 F+ B! U- V% k/ c0 T$ O% V
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 J% F3 {4 N9 I* D! g( x dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 q+ J0 r+ q M! ]1 q; C5 Q9 K }- [ E* a o3 ]4 C: |
}+ ^+ A% J+ _" x& a4 G% T3 Q
else9 ]$ ]' ?1 I0 S- N# D( w
{8 |3 _: V0 K* _: e. A
if( pLight )
K) ^+ W7 p# b& M0 ^ {2 B( b* c. ~+ m: m8 n
, d7 [, \: h" \( ^( P4 ^) E int nHour = 8, nMin = 0;
" i5 H/ _1 k3 W, l3 x% r #ifdef __CLIENT
3 {% ?* m3 B, Z- A- y1 E6 t // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 5 t* f! l$ x) i9 ]/ [
nHour = g_GameTimer.m_nHour;& }5 u) c; `3 R$ Q- P; K9 `
nMin = g_GameTimer.m_nMin ;
. i* W4 Q+ C6 @; j& i! A) S; [ #else2 k6 v) _9 j8 N) }: A
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.+ E. l2 Q4 z2 W9 Z' _9 _
if( m_nLightType == 1 )& T4 M* x! p! Y4 T
nHour = m_nLightHour;
d/ c+ j$ V( w# }7 a& z. [7 N" Q #endif8 X& L9 J: @2 f# s( `& j
nHour--; G0 t1 m; E! |# G. Y7 f5 A
if( nHour < 0 ) nHour = 0;) u1 r4 b9 h0 `% B3 u3 I
if( nHour > 23 ) nHour = 23;
) N0 R9 j/ u/ V V$ f3 ~& E3 W! m( v1 t1 {4 I
//if( m_bFixedHour )
! D9 k! e) E+ @6 h9 J6 d4 t* {$ M- b // nHour = m_nFixedHour, nMin = 0;) O& Y6 \8 e8 Y
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' z" {+ V6 I* {9 X! B! L2 P. P LIGHTCOLOR lightColor = m_k24Light[ nHour ];
0 D( v1 E* w! |$ l3 E" v& K1 R+ Q0 Y8 y1 X! F: k
//m_lightColor = lightColorPrv;- h( J3 R2 b5 A7 ]3 B. w
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
& s: D& f/ ^- w5 D4 c+ ?' b$ \' q! O lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
# [, N& I# s8 f lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;* \) I1 I+ E: T
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60; H' ]9 [' ]3 [+ f) X
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
/ h" ]7 A u/ j/ I0 Y$ _% q; { lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;, U# I1 {3 j: C. P* n- K
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)( O5 D6 v( ?' J! V6 `+ @3 {
4 Z" h- f1 p5 h0 l
// à??μ oˉè* 8 L6 [4 g, [) F# Q
pLight->Diffuse.r = lightColorPrv.r1;- m6 V1 N. K0 y, X5 _
pLight->Diffuse.g = lightColorPrv.g1;
: E9 s4 F( i' ~4 {# I pLight->Diffuse.b = lightColorPrv.b1;) d; s- l o& L) [
// oˉè* ??à?
7 @) v1 V; Q/ D# X8 t" g: d* s# D pLight->Specular.r = 1.0f;
9 y/ N. C+ M7 Y! K8 E: P pLight->Specular.g = 1.0f;
& {" c, }* J, t X pLight->Specular.b = 1.0f;
& ]" f$ |2 B$ o8 f6 f$ ? // àü?? oˉè*
* ~: K; [: V/ x pLight->Ambient.r = lightColorPrv.r2;5 Q( b3 K3 m9 n% I* i/ n8 C! `
pLight->Ambient.g = lightColorPrv.g2;
# }+ i: c+ ?4 I. z5 q4 v/ g# ` pLight->Ambient.b = lightColorPrv.b2;, ~: {: i9 E8 t0 L
8 Z5 p# f. c' K$ s1 c- L
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
f7 ], Z! b) |( f {
* E y7 Y6 g! I. U% H pLight->Diffuse.r *= 0.6f;2 M0 H$ s1 F0 T: E
pLight->Diffuse.g *= 0.6f;
9 ~% z( v. Z( ?7 V* c( ~ pLight->Diffuse.b *= 0.6f;
4 u# H* e( e; L- @ pLight->Ambient.r *= 0.7f;
+ L5 z3 u4 |2 H- k* L8 f! A pLight->Ambient.g *= 0.7f;5 [* d8 f; ]- K) O( W' W
pLight->Ambient.b *= 0.7f;% O+ G- Q) s" `4 }
}/ s: D; L3 W: b4 ^7 Z- g
' i r3 p6 m: I3 k: t#if __VER >= 15 // __BS_CHANGING_ENVIR
2 ^/ B% ?" r. `) D/ e if( g_pPlayer )
' T4 Q- @/ F) N8 P; p HookUpdateLight( pLight );
# ^3 t# E4 H0 p: G3 I' T#endif" Y+ h$ h8 X6 ?1 d; C4 s
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( p P6 r: Y# T, U& I8 ?- I, a4 J& M, C! p/ q- R
#ifdef __YENV' X5 g7 s( S3 c* k1 E$ I' o
pLight->Diffuse.r *= 1.1f;6 B7 l' L+ N; @: f) T' g/ X
pLight->Diffuse.g *= 1.1f;9 s, p3 x$ y4 _( q: P9 a. U X
pLight->Diffuse.b *= 1.1f;5 y( D# ^" Q1 X
// oˉè* ??à?
! i$ H! q+ c; p pLight->Specular.r = 2.0f;3 A, t# E# c ^
pLight->Specular.g = 2.0f;- A* K# ]5 T8 ]
pLight->Specular.b = 2.0f;
+ H5 `2 I: S4 A4 W5 M7 w; e // á?oˉ
X2 ?6 l/ c: _0 t pLight->Ambient.r *= 1.0f;
9 N* M+ H2 o. ]9 ~ pLight->Ambient.g *= 1.0f;
E3 B' C- H; f pLight->Ambient.b *= 1.0f;
, Z( o3 p, _# g) ^% k. H" ^#else //__YENV" K& q/ ]1 U5 @, T/ G s
pLight->Diffuse.r *= 1.1f;
" ~( d F! d0 [* O u2 v1 K pLight->Diffuse.g *= 1.1f;% |* x+ z) ^( c
pLight->Diffuse.b *= 1.1f;( W1 K- z! ~1 c3 H9 {' f. i1 j
// oˉè* ??à?
. G, D+ U* W' ]! B: Q, d pLight->Specular.r = 2.0f;* \: x' L* _$ t+ ~0 g- N
pLight->Specular.g = 2.0f;
, U6 L! I8 t, i% P5 K& D; c! v6 U pLight->Specular.b = 2.0f;
( o& Y& U$ `3 q8 y1 R8 d" n. m // á?oˉ
8 k; Z" ?+ U: H. Y9 l pLight->Ambient.r *= 0.9f;
& z8 g# B/ z% S) w2 Z. G pLight->Ambient.g *= 0.9f;
- p% z% g4 A0 v9 {/ W: y pLight->Ambient.b *= 0.9f;
2 \8 d7 p' G1 f9 U0 a8 k: K7 _#endif //__YENV
' b- u6 `' n8 O g. V; ^$ f. P: ^+ K
3 V$ t4 W8 E' F- z, k memcpy( &m_light, pLight, sizeof( m_light ) );
+ t# s- B1 R) {5 t) K, g0 f+ T 7 i( Z' H0 g- _% _5 A3 U, i. {
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
5 E2 ? D- o0 ~4 A, D' Q V D3DXMATRIX matTemp;
; R0 X# H, I4 k/ F, R5 k static const float CONS_VAL = 3.1415926f / 180.f;
: y) Z$ m9 V; G1 p8 ^' h) t; l: w" U5 e- Q9 x" @0 Z% [
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);7 Z# V! u3 O' o- f
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);( ?) j! U9 M' h# l3 h/ L
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ' K5 z- k0 d8 X6 V
pLight->Appear( m_pd3dDevice, TRUE );
- F4 o9 Q8 q/ T
3 I; B! V- x7 q3 n- Z1 T3 { // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 p1 c4 Q5 `1 F
// D3DXVec3Normalize(&(vecSun),&(vecSun));3 E- q" {3 Q/ T/ u/ y2 M4 N
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , t' _$ P1 G' i0 t% g
) H! b3 T: ^3 |; q2 h- w DWORD dwR, dwG, dwB;3 x- w0 [3 f6 Y# ]; m$ |% S, g( A8 J( |
dwR = (DWORD)( pLight->Ambient.r * 255 );' S. R7 E( v) N( F& ]
dwG = (DWORD)( pLight->Ambient.g * 255 );% f( ?( v `2 D$ G1 ~; ?
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ @; D% d$ t+ K5 t/ d dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 \: z3 m- U" W }
1 e4 q' [+ p$ v8 Z }
) j7 k. U" @& j
q# v0 U' O6 ]. ]8 ^" }5 W' N m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
) f+ {) e4 Z2 Q4 W' ? 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) );; H* u8 S8 {0 K1 k% u; O/ h: H
::SetLight( bLight );* R2 A2 _, f, {; |) R2 Y
0 p; i2 \) ]6 B# D8 s3 e. d // ±ao? ?D?í???ó á¤à?
' U: J b+ ^. u; v" L" Q% n$ Y m_pd3dDevice->SetMaterial( &m_baseMaterial );# i% l3 s; T4 a8 }
9 W' E0 @) [2 p4 ?$ u4 q' u9 T#endif // not WORLDSERVER; L4 R* [* }. m
}
# w- F* h# J; N3 L, D并更换
0 }. r$ X% e' U( g4 [/ {, P2 ?Code:
% ~1 p2 Q; e% d! L7 v7 a" y__FLYFF_INITPAGE_EXT
6 {7 f7 A8 {1 U7 s# _% j4 N" o定义- K3 x/ f. E; B8 u" x4 N' D$ F
; y8 H1 b5 }9 s# ^: y
2 h/ h' e1 H( S6 I1 r& V4 [* `
+ _: N5 T$ t: Z3 D
1 F7 h% a" L3 [$ Y1 E现在终于删除我的狗屁加速...
9 R8 r% I3 v6 p' b1 w& g
5 b3 y- ~ S4 a" v& X5 ~* u" A: ]# a3 H4 @% E8 S% p4 Z. C
! n/ q+ [3 U$ ~: ^( p* C
|
|