|
|
食品车:
" {6 N# m8 E% D- O$ h尾翼:7 ]3 G+ g9 ~2 v' P% V: X9 ~
( ?5 c3 @2 q) `. ~' G& j+ L代码:* ]3 \5 P1 P8 K# f* a) d
CWndAutoFood::CWndAutoFood()( N' s% g$ `' `7 O
{- T2 D( ]7 @5 k/ R1 r9 f
m_pItemElem = NULL;% T7 X, v7 z$ U! h
m_pTexture = NULL;
' J+ `1 |9 G4 H; z2 k: Y+ U- } bStart = FALSE;" Z& ? p" I* g3 t; J5 U4 f7 \" L
}
, f1 `" l9 y- ]" w* Z7 s# W
3 K$ R; L3 x! P7 B3 e* `CWndAutoFood::~CWndAutoFood()8 x; m! b1 g0 B9 M2 p
{% H- D+ Y3 q* F: y, w4 R
AfxMessageBox( "AutoFood ist gestorben " );
' z( [! y: H! _ H9 j3 i}
+ n: I! x$ f- X! h1 c* ?8 eBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
O# }: J7 H: k; Q$ `( {{/ v) ~4 _# a2 C# ^4 ?+ ?, W* S7 z4 E
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );/ Z, ^- v; s# d B0 K+ E; Z
}& y; m* \/ f9 h3 R0 X
4 r( f9 I) x' \% r/ kBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
5 z6 _' R' T0 I- m# I- Q' z{4 l$ x% Q4 x9 e8 B
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* h: ?6 H% X" m+ W
CRect rect = pWndCtrl->rect;
5 J# Y* |# M7 }! g3 D9 m" K if( rect && rect.PtInRect( point ) )) _/ _( H+ ^( j$ f7 N0 D
{ o( O" i, k+ K# o
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
: l ] k( t; K if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )) i% q6 q, p: y. }6 U1 ~
{: O, P, ^# Y. {# q) X$ H* N+ K
if( m_pItemElem )& ?/ W0 k0 c1 N! G! v+ t
{
( a7 q# `0 p% d, O2 H9 i2 Z m_pItemElem = NULL;8 l6 |: ^4 X* T% x; v9 G. i
}3 P! P: ?- U3 |1 z
m_pItemElem = pItemElem;
j+ N9 V O X5 ]1 n m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );" V$ |' z0 T7 y' F/ m* p& K; n
}else{. _2 J3 ^! r3 z- `: z. M
SetForbid( TRUE );( P7 v( B: P( s% R, f4 e f I9 q
}
3 c, o6 G* Y( V" v3 N8 l4 H }else{* i! Z6 \2 r4 r
SetForbid( TRUE );
$ m+ _# C9 i. ^ }5 D! ], P4 ~) D0 u3 u0 n: \( s/ i
return TRUE;" A, W: @& z, y: G# Q1 _
}1 I8 m8 W$ t4 @! Z |
0 B7 M+ W- y" S
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )( y1 ?- G1 e- m( {' K# M5 j
{/ i. L0 C" t! v3 R; d
switch( nID )
- s4 m; P% i2 J4 R {1 q; s- i6 A9 C7 l8 V
case WIDC_BUTTON3:
: b3 ~ d' @$ Q$ s {
% f2 _: Z+ w8 C, \ bStart = TRUE;9 j/ v5 y( u7 Y/ l" O
break;9 m7 T! P* o& O5 a, M; F \! N
}& n( k* s" f3 K7 D h3 A4 x
case WIDC_BUTTON4:3 @. K# X Y9 B+ k/ Q+ X$ y3 z% S) E
{
5 ]6 C& c8 v/ {) P* A( I bStart = FALSE;
- f" ]5 g/ \' L+ s4 ~ break;
! o2 ~6 s/ h& Y ]2 T }/ S& W O% ]0 V! T& F
}* G2 U" S7 R& P- n1 O$ f A& o
return CWndNeuz::OnChildNotify( message, nID, pLResult );9 s7 a# L% Y& C: \& u
} : n) q. S* g4 v$ I2 b
void CWndAutoFood::OnDraw( C2DRender* p2DRender )$ h/ L- @. V' f% }6 P5 W# e
{
) [. l4 c2 K+ J% x' u CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
4 ?( n( k, s- N$ u if( bStart || !m_pItemElem )4 A7 ]& E L' X4 ?" R
{
$ @: b" J# p0 D6 p pBtn->EnableWindow( FALSE );
; p; E, i! h, c1 Q/ q- n. `# k, \ }else- R* F5 C% M! a$ c
pBtn->EnableWindow( TRUE );
: J$ y) G5 d* ^2 x* Y9 G if( m_pTexture )3 X; u( y$ v$ V3 I+ W
{
% C, H% b* m/ [/ ?2 p" q# x LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
- e# a9 E/ `9 _3 c) F& u2 ^' Z if( wndCtrl && wndCtrl->rect )
, G* a' W* ~; {2 y% O {( r* h/ b( _& ~8 }
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
1 _9 W" w8 }7 O% |2 @ }* W' n& M+ u* L! N, I, j9 W
}. Q6 S5 `2 z. N& n6 g1 t! x/ ?
}
- W: a8 |; o4 H- C
2 P) P/ n' O; T; {BOOL CWndAutoFood: rocess()
0 N' N+ I3 D9 W. J+ i. A, {, }' Z{- m/ j4 v( ~8 M" V* \7 Z
if( bStart )" S0 c2 }6 ]9 G" s% F) w
{; ^" a W! v/ l
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )+ J+ ~! c% g) B: X3 X R6 s% }
{ |: V8 L, _1 V ] P
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )% C/ V! V( W3 S
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
5 S7 V4 X6 c) s; F2 [' F }else{
( a+ b" [1 @& q* K bStart = FALSE;- b! J6 E M8 O$ a: O2 R: c- R
m_pItemElem = NULL;1 }& C6 ~* p0 J# T8 S4 t. Z- E
}
6 G, x; E0 ^% Q/ g& F }
' o" b6 s+ e0 p0 K) z* V( P return TRUE;4 U" n% |: c. E' P; N) l, o6 }3 O
}0 G$ v* N2 X. N$ q1 |
$ I6 w! }3 e) g登录视频废话:4 ~; k0 p5 t( S9 l& H
尾翼:
L2 M0 V$ |8 F4 y0 Y N9 t5 d9 r# z) X W
代码:0 @7 D- p" q% j$ s* p, d* I
$ l! r" W; J% e( I% X( ~void CWorld::SetLight( BOOL bLight )! I. ?7 W2 `: O: d$ V: R
durch
* w( \9 g/ m& O- c$ @# kCode:. l$ ~' H; d' g }% U1 @+ p# W; E
void CWorld::SetLight( BOOL bLight )
/ w: H- C- L, y1 J1 C{
$ v' T! Q% V9 l' D" s //ACE("SetLight %d \n", bLight);0 F4 d3 h9 Q9 e0 ]
" ~6 k( S$ p* t
#ifndef __WORLDSERVER - d5 ?2 [ k. [" E$ S3 C# O
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);. K/ m. ]4 y8 O3 O0 D; [
CLight* pLight = NULL;
9 M# d. `0 C# ?" a$ B1 @0 X0 D# N
& ~- Y% F/ m- D. B D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); \2 x) n9 ^' H4 o( `$ {
! h" K* `' T. |1 z2 j) {- V pLight = GetLight( "direction" );% w2 Y; \& f1 Q$ E2 G) C
' N: ~4 @& u3 M" T K
#if __VER >= 15 // __BS_CHANGING_ENVIR! W. L, m8 T- o! a
if( g_pPlayer ){
* }* _' _8 O/ ^. s ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
: b) b( E6 X* e; N. s! U% j if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!+ N @/ p# ^: J7 r% r3 v; V- @
{5 W, R+ h, ]+ P$ O7 \/ A) s, s" \
if( pLight ) T* E( T' _/ P7 q9 u& B" c5 B
{
1 u: t: Q' [+ L+ A/ W pLight->Ambient.r = pInfo->_fAmbient[ 0 ];5 M: |9 E* D, }7 `' @" C1 o- Y; z
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];. G# D0 p. F2 h) [2 w \- A
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];! W! E- a$ o3 P0 l* v2 \2 ?
) b. E" D% Y& Q- s pLight->Specular.r = 2.0f;& W; S- @& [% l3 `2 h
pLight->Specular.g = 2.0f;* X- x# E% V$ g
pLight->Specular.b = 2.0f;4 V/ x; f9 T( t9 U( M4 o5 N
" ]2 D4 }/ H- M3 ?
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];) y S% @* H- A' U! J
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];5 e& ~5 J/ `4 G* l1 g
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
& Z0 L" H5 ^' G7 j3 {
, l( g7 \, ]6 W/ [& @ HookUpdateLight( pLight );
* B" Y" D4 t7 r8 N, I# F, E5 C5 s0 Q; F; @5 R- U
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ O: C# q# ?# i; V7 O
1 ]" x' E, _8 j4 ~2 w: [ pLight->Diffuse.r *= 1.2f;
8 W5 Z l" Q3 F+ l- M pLight->Diffuse.g *= 1.2f;
2 N: r' ?6 W! w" V6 P2 i pLight->Diffuse.b *= 1.2f;
- O, {; E9 ^( E. z* M2 {
. ~2 M, {9 _' k/ T, U pLight->Ambient.r *= 0.8f;
- j) W! N$ N2 q pLight->Ambient.g *= 0.8f;
3 z2 ~5 G Z. C& s& N8 O! W pLight->Ambient.b *= 0.8f;
/ B* e; p: q+ V8 I Z; B" d$ ~( q
memcpy( &m_light, pLight, sizeof( m_light ) );
# P+ A% x' g. n
: L7 p9 ~$ N1 ~% ~$ }3 p6 [* u D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);- m+ t! C& j# q3 H
D3DXVec3Normalize(&(vecSun),&(vecSun)); y. H h" [& R# B# D3 o/ p* q+ _
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' ~( O3 f6 w; R6 L
pLight->Appear( m_pd3dDevice, TRUE );- U9 Y6 c8 g! c
& K9 E/ D$ o4 `, T0 c' r7 L/ {' t
DWORD dwR, dwG, dwB;' \$ e! d8 X& d; `
dwR = (DWORD)( pLight->Ambient.r * 255 );; k% M1 U& A. Q/ Y* }
dwG = (DWORD)( pLight->Ambient.g * 255 );, \3 k5 K& ?) G! M; Z/ Y
dwB = (DWORD)( pLight->Ambient.b * 255 );' d2 Q/ E) T5 f$ Q5 u) X) c
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' w, m% x; G8 M4 p
}
" F1 j6 Z1 k ?5 m L }8 l1 [. L1 o, O5 }7 g1 `: ]
}5 P& v! K5 e) x8 l$ h2 b2 V
else
5 K5 [, E; Z( C E2 S2 N3 H#endif # Y1 u: Z0 D0 s/ Z6 D1 B
) G* s5 D0 d7 z& M if( m_bIsIndoor )- V) i% r$ N6 t* J4 J2 v- T
{5 h* j6 T" i6 @" z6 n Q/ \% O
if( pLight )
5 N2 S, g" Q- C7 g) U { 5 _' b7 B4 H G* [
// à??μ oˉè* : M: A' M0 _$ t2 C* {: S' G
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
( ^5 C3 T8 D% _ U3 M+ g7 Q; n pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) n' q+ k, r3 b+ k/ v pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
! a/ r# L3 ^( s' w: c
, T/ m& J6 n0 ~7 K8 h) o. h8 U z // oˉè* ??à? / }& i5 X/ d* s, D. \8 b) m. f3 G
pLight->Specular.r = 1.0f;
: q' p2 [% ^, }- O _ s pLight->Specular.g = 1.0f;
5 R) g/ |3 P! u2 ^$ v pLight->Specular.b = 1.0f;
- J( x! h j4 A; L% o, E' a // àü?? oˉè* # U: g3 h+ w' V* t4 `/ N
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
) k& w' Z1 n( f; a- X. h6 { pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;+ m' i+ K2 D; E2 }# O2 g
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
n2 W0 ?+ t5 d8 X* k2 S3 l w5 D" B" t! a5 }/ q
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
4 @/ P" H s, y w6 [7 Y+ s {
" r2 M# T* R9 Y( i' ? pLight->Diffuse.r *= 0.6f;+ C4 D9 v3 N0 }6 Y# B/ S* _/ q
pLight->Diffuse.g *= 0.6f;
3 r3 v- b$ X" F* M4 k pLight->Diffuse.b *= 0.6f;- B9 N8 X2 ?% j/ e" D; y* |; r
pLight->Ambient.r *= 0.7f;
# K/ H. W4 I) R! ]. F* r" `! c( v8 ]1 _ pLight->Ambient.g *= 0.7f;% ?0 U0 j1 P/ Q0 N. h$ x" X7 d
pLight->Ambient.b *= 0.7f;8 t$ b% _( c" E. ]
}2 e- R ?, a1 X ~) R3 F7 i" n# _
" e2 |, W- b9 P$ b! B& ?( W' N9 W6 i& T
#if __VER >= 15 // __BS_CHANGING_ENVIR7 |4 r- o1 _& J4 q) q% l& e& V; V" m+ o
if( g_pPlayer )
2 ^8 N7 n1 S- a; K2 } HookUpdateLight( pLight );/ e A" J5 ] U3 x
#endif
: c5 E' T: N+ I) T" D) } memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 f% x9 Q% }# E2 g) f/ ]) \9 W2 S, c7 ~/ g3 P+ g
pLight->Diffuse.r += 0.1f;# p ?( C* _8 K/ l3 [( v! k2 K# P
pLight->Diffuse.g += 0.1f;
. k, z) f0 f1 T. x8 C pLight->Diffuse.b += 0.1f;4 ?, K) E5 T3 o) R
// oˉè* ??à?
! V+ x) F" W+ W5 T4 k, s pLight->Specular.r = 2.0f;- j; T- a( I+ v( e
pLight->Specular.g = 2.0f;
" A5 a$ `0 t$ f# Y pLight->Specular.b = 2.0f;- D4 N3 v" g, C; S$ u
// á?oˉ
: g# U' [1 v' Y- B pLight->Ambient.r *= 0.9f;( p0 q8 b- Q+ P0 z# N+ r g
pLight->Ambient.g *= 0.9f;
. L: ~0 Q1 v; y6 ?* ]- O pLight->Ambient.b *= 0.9f;
& x$ l( l# D9 x) B& ]2 ]9 f
9 V2 @+ ], F1 b4 r: U memcpy( &m_light, pLight, sizeof( m_light ) ); b+ X# x% \% ?! `/ M K
$ ~9 E5 b3 w+ [$ Z$ L3 P! O) \ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );9 c; B$ H# Z5 E! D
pLight->Appear( m_pd3dDevice, TRUE );% _8 }2 r! g _) W/ a4 O2 U) V3 @9 ~
( i5 H# j$ ?- N$ I3 H1 d/ N
DWORD dwR, dwG, dwB; }4 C4 \; u6 ~$ K$ q P
dwR = (DWORD)( pLight->Ambient.r * 255 );
. u5 D0 [7 E4 V7 q& t dwG = (DWORD)( pLight->Ambient.g * 255 ); }$ W# R, Q& M% P4 B
dwB = (DWORD)( pLight->Ambient.b * 255 );& M6 p9 u# \" W ?9 [# P4 o
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );( b# J. x, L; n6 n& w4 c
}
- p4 R) U" r, S, K5 N/ U- G1 G& F }
( z0 T( Q3 d5 i; R' K" c4 P6 H else2 ]2 P$ W+ O. H# y; A
{# H" p, T" b8 A3 Q
if( pLight )
n7 _/ k" u f- f q$ i; ?6 { {" u2 D. Z8 L1 n) ^6 l
1 d1 z6 F) Y; F( a# u" q
int nHour = 8, nMin = 0;
2 e9 A# g# Y5 U' ?5 z9 I& S #ifdef __CLIENT* m% [( ]8 @' a9 I. v1 w
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 3 J$ T8 t: ?3 j, }1 \
nHour = g_GameTimer.m_nHour;/ r' x3 s" m" e- K5 w5 b
nMin = g_GameTimer.m_nMin ;! B" W2 k: \, z( o- L5 _7 {3 Z
#else
Z8 S! ~# e0 [! W // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
, a, Z) B; j3 j* b if( m_nLightType == 1 )
$ S) U# ^6 Z1 W* z. h2 S nHour = m_nLightHour;
- F+ f. o, K. C4 j# g9 \7 [5 K3 z1 ^ #endif9 ?# D; m$ V4 [) M* n
nHour--;/ I& a9 y9 N0 ~4 Q0 k
if( nHour < 0 ) nHour = 0;, |, s& J! t6 V% n/ H
if( nHour > 23 ) nHour = 23;
$ O3 E% N5 Y3 k+ q
& m$ ^: h# \$ Z4 H' Y, V //if( m_bFixedHour )( N! b1 W( _, Y! E$ I' X6 A2 z3 E7 k3 D( c4 G
// nHour = m_nFixedHour, nMin = 0;. @8 r1 v$ D9 `
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];8 l6 w5 P$ ~& b( A( X
LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 Z0 l# w% R, T" y( G
8 r* J9 T% L8 T+ w' @& _: c0 o1 b
//m_lightColor = lightColorPrv;! a* q. k* p1 D" e% s3 x/ q0 a
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
% p' Z8 P) K8 g% J; E; r* _! B lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 v8 T: o$ P/ o$ M6 @ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
: |0 e2 q7 [* u" T lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;+ U! C) H% l. H% l
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;; R* h" {! F$ y6 H) _" a
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' d8 d& E3 j* M. |" c/ m* v
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
5 `8 g; f n4 I0 X
5 o7 n2 h" ^8 q$ `! X2 ]0 ~ // à??μ oˉè*
) W, W- v3 [* i& X, x/ T9 S3 G pLight->Diffuse.r = lightColorPrv.r1;3 E4 [6 F, `- Q& s5 i
pLight->Diffuse.g = lightColorPrv.g1;
9 P g- c7 c( p( C, d pLight->Diffuse.b = lightColorPrv.b1;6 K$ J4 b6 f* [- ?% ~3 `0 |' |
// oˉè* ??à?
_) |/ K( G- t. W pLight->Specular.r = 1.0f;) A1 L4 t0 ]" r3 B: W
pLight->Specular.g = 1.0f;
' _, J) z* n3 g' |$ q- G, _ pLight->Specular.b = 1.0f; {4 i8 B7 U, n
// àü?? oˉè*
5 |1 o4 M- {7 s- l9 W) x pLight->Ambient.r = lightColorPrv.r2;
/ G c' j2 v6 Z. ~ m/ Q: T2 g pLight->Ambient.g = lightColorPrv.g2;; }" |# _; N8 [8 g
pLight->Ambient.b = lightColorPrv.b2;
7 D2 E6 H- D* b5 z" K3 g" M
7 c, v4 k5 ^; d; y: f6 S* l* t/ c) h if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.: j9 O6 e2 O0 A6 s* U) d D
{3 W! C0 c1 T r3 |2 z
pLight->Diffuse.r *= 0.6f;" ?0 S: D! Y1 }3 S! w- w3 x1 H0 T
pLight->Diffuse.g *= 0.6f;
# i4 k- }2 n3 u1 m: }( ` pLight->Diffuse.b *= 0.6f;; r) ?% I) P1 T4 B
pLight->Ambient.r *= 0.7f;: S z, ^' Y7 {9 {
pLight->Ambient.g *= 0.7f;
" P, X8 [0 l6 b, D( F0 g8 y pLight->Ambient.b *= 0.7f;
8 L. s$ f$ n+ |; e' b }
( {( J/ A$ k7 L2 h4 ]9 ?3 L) N + b1 E8 h3 f, L; Z$ E
#if __VER >= 15 // __BS_CHANGING_ENVIR) T/ P0 e4 K, [4 C, h1 F
if( g_pPlayer )
; J. l! T" t" a0 F) s& d HookUpdateLight( pLight );
3 Y$ d4 T% f7 y2 O) w: j/ a; b4 i#endif B+ j; `; s) O9 W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; v J n) ?& q1 k& x+ `* _
W0 R3 H3 W. C3 x; w0 e% B#ifdef __YENV
: J) w( y1 n8 @( ?# G$ B# v pLight->Diffuse.r *= 1.1f;7 A+ f$ O" @: z& _8 o4 s. c% i
pLight->Diffuse.g *= 1.1f;
0 p6 Y6 N6 M4 E pLight->Diffuse.b *= 1.1f;
( q' V$ v3 J% T4 G: |$ Y' a. \8 b // oˉè* ??à?
3 m. T* w$ W( A pLight->Specular.r = 2.0f;$ ~7 f0 r/ q- |* Y- y$ L" n
pLight->Specular.g = 2.0f;$ C" J! k0 k, X0 T. W% ~
pLight->Specular.b = 2.0f;
" u$ z: O B% i" w8 n1 o4 M // á?oˉ 9 v( C) `, M1 ^8 c% g* G
pLight->Ambient.r *= 1.0f;
" }4 q0 x( |8 U0 d pLight->Ambient.g *= 1.0f;) k/ c4 P I/ L1 Q, p& A( _
pLight->Ambient.b *= 1.0f;
% e4 B! b, T& q w#else //__YENV
6 S6 ]5 p. ]4 e! Y pLight->Diffuse.r *= 1.1f;
* v7 G+ n" ~8 p; v6 h$ A* Z7 o pLight->Diffuse.g *= 1.1f;" T; q. e# g* F1 W+ n* e
pLight->Diffuse.b *= 1.1f;" J; O [7 l' d% f p- ^
// oˉè* ??à?
! ~7 |! c1 e) ^/ K pLight->Specular.r = 2.0f;
( G% f" g. J0 E5 N( r" h pLight->Specular.g = 2.0f;
g2 ^% W4 L* x' Y+ y$ {% P pLight->Specular.b = 2.0f;
! E& u1 z% ^* L) D // á?oˉ # t! T0 U c: r" J' n2 l* q
pLight->Ambient.r *= 0.9f;
\! p& @4 o+ }0 @' P( n4 j pLight->Ambient.g *= 0.9f; m2 A* n3 f- v3 R7 E u
pLight->Ambient.b *= 0.9f;
2 s% K5 P- M5 Z' G0 _" e9 o7 d#endif //__YENV
- _) D8 v+ {6 W; J7 p. Z* o. Z: ?
4 ]8 X4 V, a6 @6 X) F memcpy( &m_light, pLight, sizeof( m_light ) );
2 P) J- e" G1 Y _. ?& s, b
. e! j9 U4 C- ~) I/ j/ x1 D/ X& Z D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
' n) `% d6 m; ^2 ~ D3DXMATRIX matTemp;7 ]% n+ y" }& O R; U+ r
static const float CONS_VAL = 3.1415926f / 180.f;% i& w1 C5 J* {" Y
; n' d' I: ~# r# B! h' b D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);, h9 P: t Z2 r2 [
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
. h/ M% ^. ^1 Q4 [ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); . |' h3 o a& ]$ L, ?
pLight->Appear( m_pd3dDevice, TRUE );5 H6 [$ j2 Q2 T& H
9 W! J9 b5 \, _: y" t& O" P5 v9 O) P/ H // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# }& E4 F' Y5 B q& O0 Q. P // D3DXVec3Normalize(&(vecSun),&(vecSun));
* M* t. }- `0 k; l* l1 c // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: w+ Q' x# _* \/ O8 o% u. m4 B" G& ^
DWORD dwR, dwG, dwB;
' B% J6 v( S5 G/ N& G dwR = (DWORD)( pLight->Ambient.r * 255 );* k+ D. f1 n! z, }( R' ?% n
dwG = (DWORD)( pLight->Ambient.g * 255 );; }' U3 ]% m# N" ?7 P! \$ p; y! `
dwB = (DWORD)( pLight->Ambient.b * 255 );5 g, j" O( C$ p5 B
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 N! l4 [9 m* j9 B }
2 Z% I/ p& E: U# Z, O1 F }
* N) [! M6 p( ]6 | x$ u5 N' D, n r& W+ A
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );" V* N2 X: Z$ u; U5 T1 J& |! K
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) );
! w( F- |$ j' m ::SetLight( bLight );
$ c' U6 X* O0 `. H5 B
6 F" k) h3 h- ?7 P) W: e) g // ±ao? ?D?í???ó á¤à?
! I% y; H( ?& y) t0 Z( c% X' A; J m_pd3dDevice->SetMaterial( &m_baseMaterial );
: N4 D% I( C: t: y8 o" _
9 o3 h$ U1 d: U/ M9 t9 U#endif // not WORLDSERVER
- Y+ F* x) R2 F& @9 i}+ \# k3 x+ q& v/ h! ?- u
并更换5 b0 w! j+ m' ~! ^
Code:8 H# {& t4 n6 ]# {
__FLYFF_INITPAGE_EXT
) G% n) D& E2 ~$ J5 r定义# c! n3 x) ^! L2 Q% ?
- h: N6 |8 T5 Q& B
* b/ l6 t# y; s9 r8 `
+ J& {+ D8 O5 b9 ^3 O2 L
; Q/ W8 l# h/ x @* v6 @现在终于删除我的狗屁加速...
2 ]+ D2 f+ O! L% \
' m" `0 k/ S, x) M. W1 p1 A. z$ K% a# J
s! k. F6 M+ H/ U |
|