|
|
食品车:
p) K4 p! ^2 d, o: g1 f: R9 K' O尾翼:
8 J0 \- O4 P# C% a4 A9 r$ l3 N- p
% n( N5 i' r, ~6 j: C! ~9 w代码:* ^4 ]9 m0 X( _8 ]! F, H3 [
CWndAutoFood::CWndAutoFood()$ E1 d* O% q8 Y5 \) n( E% s
{( K9 r4 [/ E: r
m_pItemElem = NULL;
E) }! S: P( u/ Q, B4 e2 n$ ~ m_pTexture = NULL;
" T. f" W7 H R* G bStart = FALSE;% ^" y/ o" x' L
}
; {* O( u J! W# L" x {! r+ f9 |0 u! U! R: j& V8 k2 S
CWndAutoFood::~CWndAutoFood()$ f% ~1 F2 k; T8 d) O% l) m+ B2 s
{5 Z' F3 M/ M. Q1 B% `
AfxMessageBox( "AutoFood ist gestorben " );
) C1 o! \4 v; u8 ~$ {; D}
* L" R9 G4 A8 @4 YBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )- Y! z% s1 q- L) I" F$ [
{
) u9 P* A; y3 C) ^& L( ] return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
2 ~9 v" X9 ~, B' b}, s+ f6 p! _9 K; K2 k
* e B( M) q& u* C+ x' K
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
] I) v) ?* g9 @. @. K{6 E# g, J% U+ g& y% z' {# m
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 D9 [# S# u$ z" D7 E CRect rect = pWndCtrl->rect;2 }- m% }, d$ F* Y s7 ?# u& U: U% ~
if( rect && rect.PtInRect( point ) )( Z4 X& P! j4 p3 M0 S& ]2 ]) T# z/ ~6 h
{2 y1 u$ Q6 U& u7 W* @% E5 _
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );" U) s# x6 y1 o) q( W( n/ q$ V
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )/ M$ U( e6 z$ n2 ]2 q" h0 X
{
6 q# \. O) C- y0 a b2 a( B& T if( m_pItemElem ), ~0 z/ n; a; g/ ^, N) ^) d% b
{/ O% f9 i) B! N# p
m_pItemElem = NULL;
- W# L3 l; g7 W' x: Z4 `' j }
a$ Q- n/ W. J m_pItemElem = pItemElem;2 b. X4 [) i( Q+ i' H
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );& C5 i) [, a: d9 _% F. o
}else{
7 C1 ]+ C/ ?: ?/ C SetForbid( TRUE );
" f9 ? V* Y1 C9 k5 J5 } }* A, e. S) W: V. y$ O
}else{
- ]6 s; @" K; y3 @3 I5 R SetForbid( TRUE );3 r3 O6 z* h' p' q8 L
}0 m- c' E% Z& ?
return TRUE;. o: H' d2 ^0 _ |3 x' u
}
2 w) ?+ w1 i$ L8 f" S: P( e4 h/ i3 y6 K' ?1 N& N
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
" ]' N' C- h U9 W% d( ?- k8 u6 ?{
- T* j$ D& ]1 u switch( nID )
7 d, K7 g6 L( x2 k {
. u2 u3 ^; w7 |5 ^/ ^9 n case WIDC_BUTTON3:+ C+ a9 x( s9 Z! B* ?* D
{ T. f$ c3 x3 @3 s# c; g
bStart = TRUE;" y0 U, w4 ~% ?" s2 {
break;
! d! x) f) V. j% D* x, k; c }: o% I8 X6 g6 @& p
case WIDC_BUTTON4:3 }( r# c' m2 s4 _$ Q7 d0 o6 A
{+ Z+ P7 S2 t f) }+ t% F
bStart = FALSE;5 v6 S( i/ D9 K; H/ U
break;; I1 I% c2 ^( s9 H/ v
}
$ i P8 j4 b @ t' w3 v }
! Y" y" s% [: {: C( M9 k, @3 J" y return CWndNeuz::OnChildNotify( message, nID, pLResult );2 `" t7 O8 E( l1 i) `
}
7 [- ]& j8 A1 ?void CWndAutoFood::OnDraw( C2DRender* p2DRender )3 A7 b& L( ^3 |4 w9 a
{
. p+ ^ d9 Q, R9 e) S \7 n7 K CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
; I1 ^" c1 ^/ y4 K if( bStart || !m_pItemElem ); n( C& w6 r# y; U% P* [9 e& r
{
" ?0 N- S9 e1 ~. H: J! j4 @ pBtn->EnableWindow( FALSE );5 Z' n- z l' Y1 k1 O+ d/ ]. T
}else4 Z: a; N8 H' ^" V9 V
pBtn->EnableWindow( TRUE );9 E& A" D+ v. O2 f: Q# W
if( m_pTexture )
: g# g# O5 D, X# i! l$ Q. b' a% x {" D d" y& l! F- U# N6 d& D$ G/ l. H
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 _, c2 u7 h$ V( l# ^/ l9 _$ p" K: R
if( wndCtrl && wndCtrl->rect )
7 n1 T, ?+ ~- V {( c- e0 o$ {3 s. H
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );, Q. ^# z1 H) q% A" B4 ?
}* A$ p3 N2 @ F' n
}" l% N* S, v) o* L4 I! r
}
1 U7 i1 ]: h2 z3 A% ?5 t% o
/ y/ M1 w6 X. T( JBOOL CWndAutoFood: rocess()% m4 G; P P7 L4 N; t
{7 C C5 e+ u# _. F' K r' A
if( bStart )6 P' K& a8 v% @; y- D+ @
{3 a' {- {( t5 x& G# p( I
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ): M8 u* z( I# E3 |4 B
{6 j: C8 w* J( z P' n
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )4 A0 i8 t. b6 [$ X/ t; [% |
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );" j4 P' v; l2 g$ y8 Q/ d" s
}else{
2 I/ d/ o# b7 o: e6 t, O bStart = FALSE;
) E: `3 u+ ?* W% g. u+ q: p, b. _9 y* J8 o m_pItemElem = NULL;
7 |" B% r" C- w0 e. d3 z' L" S. j }
9 L, f% s; p' g: {, t }0 m& G' a0 M1 W5 W3 z5 m8 \ ]( n
return TRUE;
# m* f5 d9 P8 |}" n% [/ j$ r" a$ ^# D, d
7 P# G" k* _& Y( |; }" U8 }. R
登录视频废话:, y, [2 n" j; C6 x4 c P: i
尾翼:0 j, V- c3 P- \5 @( H+ @- p
& w0 J% h% g& a/ B6 A6 I代码:
8 e2 E/ Z" P$ @" s3 q2 M
- _) }# {( R+ v- Q- R, W" n5 Mvoid CWorld::SetLight( BOOL bLight )
! ]9 n7 m8 |8 b0 Q1 Y. B1 X, Ndurch
5 K% l: N5 `8 F! j) E* hCode:
+ k# _3 f; v5 x* [" y+ O) `( g0 bvoid CWorld::SetLight( BOOL bLight )$ H! k8 c4 x4 _0 N
{% l" @5 r7 r/ F" `. P b# ?
//ACE("SetLight %d \n", bLight);
2 A3 J$ p1 V: k5 x
* P. G' z9 P( Z! G#ifndef __WORLDSERVER " q. b$ ~& i( C; l( Q$ S8 e
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);$ [+ o B x9 A; b
CLight* pLight = NULL;' {9 p8 n1 w5 j k
- ~: X2 W3 H, y6 d
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );2 d) R' {/ r; E, \" r( W X- {/ _+ b
7 j5 l! P( q3 b
pLight = GetLight( "direction" );
# {& c B1 Q* S8 _
. d( e" ~* }# V' G3 n1 @#if __VER >= 15 // __BS_CHANGING_ENVIR5 q3 x( u8 P: `: m7 n J
if( g_pPlayer ){- M+ g" E2 S( u3 S8 c8 e
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
% E1 T* t$ W0 v$ R. [ X. | if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
4 D5 X1 }) k9 {7 f1 _ {$ F; k+ N* H8 V V
if( pLight )
2 G6 f9 G1 R4 I, R6 F' w {7 Q8 V1 |$ C1 N' O! V8 j# x
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
5 h5 e7 W$ z; \' I8 f7 f pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 A& x; m* t5 M8 [
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
# n4 n: T: j$ e* Y e0 ~" |
$ @# ^# H8 U2 w pLight->Specular.r = 2.0f;
& H8 z! M- I- |: N4 O6 N! ] pLight->Specular.g = 2.0f;
5 i% F3 L: S8 g5 g pLight->Specular.b = 2.0f;
. `$ L( n, Y+ Q# G; I2 @6 ?8 J - \0 \, b8 Z3 L; t3 F
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];) V% j# B5 p& ^/ p
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 V9 g) {/ Q t# i+ S pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];" @' _" Z/ I* d0 v1 y
2 X# u4 W) i* D$ { P& c
HookUpdateLight( pLight );
. `5 s. w& C1 M# ]( d8 U/ }
' B/ x$ I" k h' W" u b9 I memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 W$ ?( @9 s* E; a1 y
! }; g' C" {' ]3 W9 O pLight->Diffuse.r *= 1.2f;
7 {$ a! ~* r. K pLight->Diffuse.g *= 1.2f;
) o! q2 N+ @# {9 x pLight->Diffuse.b *= 1.2f;! ~6 n4 ]! r- Q! N; u) M
% k) _0 z4 Q+ z" H' L; m' F
pLight->Ambient.r *= 0.8f;
% g8 ~4 P3 T* @9 Q pLight->Ambient.g *= 0.8f;7 S, B% J* `9 A% l
pLight->Ambient.b *= 0.8f;
1 q/ V7 C% V$ _
+ h; d2 G+ x; d( e1 s' o2 V# q memcpy( &m_light, pLight, sizeof( m_light ) );, G9 }% H9 E! m. h- J$ o) a( `
! x) `! ~; b. L1 Z9 A$ \
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ J" P Y O+ U D3DXVec3Normalize(&(vecSun),&(vecSun));
$ g! F$ j) V# q- E) z0 c pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , K! c: H; K Z1 a* ?0 L
pLight->Appear( m_pd3dDevice, TRUE );! @3 b5 t$ i7 R/ j& `
6 @: g! [# |' M5 Z9 L
DWORD dwR, dwG, dwB;) v, q& d# \4 v7 |- W2 @
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 V* @, j& }4 I$ ?, w0 v* Y+ D dwG = (DWORD)( pLight->Ambient.g * 255 );
0 u- c' m. l K6 K( M4 X7 ~ dwB = (DWORD)( pLight->Ambient.b * 255 );* Y# @' ^7 d8 s2 y
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
9 V2 I! L, t' R1 ~ }
: A2 L% {8 J/ n# I' O }# n! n2 `; k/ j! M x
}
4 ^) e2 S! R& s" \ else
' ?5 P6 e3 X# c; v9 K#endif
9 g6 |2 |: Q/ b$ B) d3 ^& p ~* Z% `- g' B7 ]2 b5 S# E& y; k
if( m_bIsIndoor )! K$ I4 w" B8 l. W' R: g7 c
{* n$ w1 j* b) p. ?: }
if( pLight ); c0 j; G6 x3 C) C
{
" i* [( Q1 a9 H$ X9 J, G. z) u // à??μ oˉè* * T! W. i+ p" |/ R4 \
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;/ V, e* k/ D$ {& ^8 y/ I
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
. g6 M/ Y1 V6 P1 { pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
6 S* t' v- E' m$ X a4 E. g' ~2 I" v w. G' x
// oˉè* ??à?
+ R) i8 g! L. k# ~' t) X( q2 f pLight->Specular.r = 1.0f;9 F, Q- d2 m7 c9 l- [1 I$ \* J% |
pLight->Specular.g = 1.0f;
: R- r6 E9 z& Z" [$ W0 N; @ pLight->Specular.b = 1.0f;
5 U+ k: ~; n# R5 m1 X3 g" z // àü?? oˉè*
9 j6 X* g: e T+ T! N0 T9 U6 j pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;% m" L) j* [4 H* E
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;1 g7 G3 m3 J1 g/ b9 n7 p2 u1 F# |5 q
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
' |9 Y" N, X1 ?, s# U9 Z7 [5 `$ a1 @$ w- v
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 \6 B8 A9 R" e) D. g' B
{
0 x6 j4 V( h; [, O pLight->Diffuse.r *= 0.6f;; B* x) Z5 t, {# k7 u
pLight->Diffuse.g *= 0.6f;6 |! \1 ~- u% B$ ^+ B* l
pLight->Diffuse.b *= 0.6f;% \# N2 O4 y* H6 K
pLight->Ambient.r *= 0.7f;( I5 B7 r) z9 a' J
pLight->Ambient.g *= 0.7f;8 |# \8 [ L* F. L5 s# n& s$ C/ [) k: J
pLight->Ambient.b *= 0.7f;$ o, I5 f" ~5 Z0 y
}
! A6 e2 Q& U' v) f$ c0 H5 j
! U/ e& b) P. z#if __VER >= 15 // __BS_CHANGING_ENVIR
( `' p" k4 K: }; [ }! x* f if( g_pPlayer )6 V9 F1 \" C/ Z% V$ s, Z
HookUpdateLight( pLight );
6 X# X( @2 Q% ~# x$ U#endif7 J; k- r0 Z! n( ]$ h/ `2 M& p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 v5 }5 d ?7 T4 W5 Y6 c7 Z8 H5 p/ J) W/ w8 l4 f; J
pLight->Diffuse.r += 0.1f;" k# E, {. {* [2 b- x6 u/ y; m
pLight->Diffuse.g += 0.1f;
, ^: Z3 }# L# R pLight->Diffuse.b += 0.1f;. |' x0 ]! }2 _& n/ G; _% M
// oˉè* ??à? $ @/ t6 v: n/ X8 h# A
pLight->Specular.r = 2.0f;
7 U) k7 P$ X7 ? X pLight->Specular.g = 2.0f;5 Z- x9 L3 f9 U: J/ ~4 W6 S6 R+ X
pLight->Specular.b = 2.0f;: m8 t7 @8 q( W; g- _& F
// á?oˉ 7 j6 v6 \7 b5 I1 s' x
pLight->Ambient.r *= 0.9f; R+ f! N& I% M6 w) `6 |8 f
pLight->Ambient.g *= 0.9f;
|6 _ O7 U* L* B pLight->Ambient.b *= 0.9f;. |/ ]# S& ^2 ?4 |7 T7 u3 `
& I6 M) [% X; F% I5 v memcpy( &m_light, pLight, sizeof( m_light ) );
8 e7 G% l+ c' i% l8 P+ ?6 I $ G* Q/ r$ l2 i4 U( d
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
, J+ Y3 A5 }5 X4 p+ o3 F# X, h pLight->Appear( m_pd3dDevice, TRUE );
' |0 [6 Z6 c0 l& _
% g. v' E) t: t DWORD dwR, dwG, dwB;
9 R& U9 k9 k6 h* ~8 ?9 k/ }0 H dwR = (DWORD)( pLight->Ambient.r * 255 );/ Q+ h( l. k9 R0 U$ Z0 Y
dwG = (DWORD)( pLight->Ambient.g * 255 );/ I+ D1 \* p# U2 W. \9 g2 b
dwB = (DWORD)( pLight->Ambient.b * 255 );
8 l, t/ x" Q% r: u dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 A* x9 p3 n+ k0 }+ ? }
, e$ v7 F8 m9 Q6 {$ K2 r) t7 j }
" \& \* p2 j b. w& Q+ B; A else
( D& L* q M' T1 s* Z- u$ a0 q {
% R+ Z! ^; S) m$ D+ J* ? if( pLight )
; b K3 S6 s! K- d( \ {
& c7 X+ P6 f" s * g; r3 j" I# V m7 k. I
int nHour = 8, nMin = 0;$ {9 U0 V+ ]* w+ B3 p
#ifdef __CLIENT# X$ r, \" O6 j5 x
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
( B6 n: h" q( U3 @/ ^# V nHour = g_GameTimer.m_nHour;4 x( d6 v* Y3 [) G3 ]
nMin = g_GameTimer.m_nMin ;
/ ?1 i3 y4 l) Z #else" B. h# m$ q# C j D
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.$ N, p, a1 j6 O1 |7 I6 \% D
if( m_nLightType == 1 )
$ I( A% o' N3 P. U6 j* R) f nHour = m_nLightHour;4 u* Q' j* t: T# f& F
#endif$ ?& c+ m/ _5 u
nHour--;' L- Y5 j8 }+ m4 C/ i
if( nHour < 0 ) nHour = 0;4 G( w- h: h+ t% ~$ r* x
if( nHour > 23 ) nHour = 23;# q3 E/ j2 Z& n/ F7 e
" R8 }, Y' Y9 k5 e% W5 G9 G$ i //if( m_bFixedHour )! y( }3 @" w/ Y- S& h$ M
// nHour = m_nFixedHour, nMin = 0;' \: R' V; e. ~! G
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
! W. X [2 L( D/ f+ ]& N3 { LIGHTCOLOR lightColor = m_k24Light[ nHour ];/ f D! x5 G- M$ d0 U; q- r
% [7 u& s2 U% \ //m_lightColor = lightColorPrv;
- T: q$ J/ H: N2 j) v1 ?4 ` lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;: H( D7 J# z1 z! t
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
- V+ q( @2 |9 E2 Q( V lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
4 |5 E! p, F. i! p1 a/ b lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;7 u d, h i" v0 r
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
* L" D! Y9 M2 X* w, k" |* [- f- V$ o lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;( |( N2 _4 W- a1 ~
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)+ {4 \! U& F7 v+ ?9 f$ ^7 R! k8 p
& o: \2 @; l. K% y' U) g3 v
// à??μ oˉè* ; p8 W2 p) I, x1 N+ f8 A
pLight->Diffuse.r = lightColorPrv.r1;% ?6 _/ S$ z* n( L: ]. z: L
pLight->Diffuse.g = lightColorPrv.g1;
% @+ a7 C' Y M; N9 ~7 Z8 [ pLight->Diffuse.b = lightColorPrv.b1;4 e8 z# [, d2 v, h8 ^4 n
// oˉè* ??à? , J: j% n# A& [. S, F2 T
pLight->Specular.r = 1.0f;8 P0 ?* u3 D& |
pLight->Specular.g = 1.0f;
! j. b. R6 w! ~( x1 H* ? pLight->Specular.b = 1.0f;
! ^- w, Z- Z5 d9 G; D8 Y& {1 \ // àü?? oˉè*
4 h0 [- o4 R& n pLight->Ambient.r = lightColorPrv.r2;" |3 G& h$ W) z* n& |
pLight->Ambient.g = lightColorPrv.g2;0 d6 ?" T, ]% q' O& j Y
pLight->Ambient.b = lightColorPrv.b2;$ o2 \0 S7 w/ ? Z2 t1 L# N
# N1 G) a( h F! L# H- y, m% W
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) L& e0 g$ U" r+ c+ |
{1 X- j7 o2 W0 w7 k$ v
pLight->Diffuse.r *= 0.6f;9 u" K w, U2 j- f2 s* S$ x
pLight->Diffuse.g *= 0.6f;' i2 K/ `+ X; O7 w2 F" \. `1 C
pLight->Diffuse.b *= 0.6f;
6 L" h2 D; u' S5 J+ g" U pLight->Ambient.r *= 0.7f;
2 h; {" l8 u# i pLight->Ambient.g *= 0.7f;, j5 N5 _5 M3 a3 _* y U- i
pLight->Ambient.b *= 0.7f;
! p0 I: J$ S0 m- i; p0 a6 V }* H! i6 {0 K, P, F+ F$ p
0 ^; a! V$ {2 T0 o. D8 [#if __VER >= 15 // __BS_CHANGING_ENVIR. ~, F* k; w# p( `8 a
if( g_pPlayer )
2 A% _0 g8 r- S8 f* O HookUpdateLight( pLight ); 6 t" x: ` [- R5 z
#endif: z( O% p) e' U6 a; V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# _6 X+ I H" O& ]$ _8 p
9 b+ \$ V9 [5 O
#ifdef __YENV
u# |: p. B$ f) F2 P0 X pLight->Diffuse.r *= 1.1f;
( P: I) d8 B. U0 Y6 }4 S pLight->Diffuse.g *= 1.1f;& O. f9 [; Y* z
pLight->Diffuse.b *= 1.1f;& [9 ?5 z! ^8 \: e' |3 [
// oˉè* ??à? 4 }: I2 z7 F( F/ _6 |* Z) Z
pLight->Specular.r = 2.0f;
3 B9 ]8 ?, S. @/ e6 Z) B pLight->Specular.g = 2.0f;
/ f0 d* r& P( L1 M* H+ X pLight->Specular.b = 2.0f;
7 [. k( _ R* n7 |, f# g' {/ s // á?oˉ + G7 Q! e: w; \
pLight->Ambient.r *= 1.0f;" f1 F* L! q o: q k! \
pLight->Ambient.g *= 1.0f;
9 v- l/ [$ U" z. D' b pLight->Ambient.b *= 1.0f; b: k/ Z0 Q6 x- x8 |2 i4 _
#else //__YENV( y/ M- ~3 M2 D# r% R
pLight->Diffuse.r *= 1.1f;
% s y! `# }$ I; P6 Q5 B# U pLight->Diffuse.g *= 1.1f;
u) K# H3 i2 v; ~ pLight->Diffuse.b *= 1.1f;; a& b" m4 @. o
// oˉè* ??à? - P: z9 D) _* w4 e$ W
pLight->Specular.r = 2.0f;
, ^# W7 Z( ^8 |) o1 K: i pLight->Specular.g = 2.0f;* ^) u" ?' L2 P5 q& O
pLight->Specular.b = 2.0f;
4 i/ z: z* l" l( |4 _# l) u$ c // á?oˉ
- n2 ^0 i' w$ a3 ~1 ` pLight->Ambient.r *= 0.9f;/ [7 N7 a2 p) y4 ?( V C
pLight->Ambient.g *= 0.9f;
8 e/ i. q) t9 i4 c+ H! L pLight->Ambient.b *= 0.9f;
/ B8 x: x+ W7 o+ S( R/ `* [. ?4 S#endif //__YENV : s; x2 u+ S# J, g0 `! i, j
3 ~5 f Q2 F; p3 R) q/ w memcpy( &m_light, pLight, sizeof( m_light ) );
+ _+ \9 b# S' p. ` 2 D- @0 b! \( V; J" C' r9 f: B
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
: b! t" }) Y4 B0 O" B D3DXMATRIX matTemp;# q Y0 j0 a2 W6 Z/ `1 x9 @
static const float CONS_VAL = 3.1415926f / 180.f;
; @6 `. | ]/ d8 n/ B$ G E: q/ `7 _- w$ L6 l
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
, `4 W% m4 r$ |& g3 N6 z D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
) w* c$ }$ u* v e9 N- K pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 9 q, h6 t4 A0 u" y: L3 u; C
pLight->Appear( m_pd3dDevice, TRUE );& U- p3 c' b& U( }6 a( S9 u. v
: a! i* b! A1 E: b
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
5 |9 x$ f* x( F0 G7 q8 v1 w7 t // D3DXVec3Normalize(&(vecSun),&(vecSun));# b: z1 K) Y% G8 g+ p
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
6 z$ t, V7 f# U8 p' O8 C) d5 E6 G0 B/ J4 V- b
DWORD dwR, dwG, dwB;% h, j, `1 z8 e8 c) e4 Y9 c
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 g! U+ H* |3 l+ ^$ Q dwG = (DWORD)( pLight->Ambient.g * 255 );
* U& ?: X9 {" D; d* \" s( X dwB = (DWORD)( pLight->Ambient.b * 255 );
# }1 _8 o1 Z. F9 z+ [- K& ` dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: [% N7 O" h8 I! T" K1 U2 A }
' ^ S: a# |4 q1 N) X }
, Y& D0 B6 N* o' N
" m# K# K5 }( h$ [ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );' {, c6 S. K: l8 t
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) );
0 v$ s1 W, {) E# _ ::SetLight( bLight );
$ D- s' L- X& @: ?& O5 N1 ?, }( U
# H, ~! V% ^! o* [7 g1 Y4 { // ±ao? ?D?í???ó á¤à? 1 X% Y9 e: z" N' P/ |4 G
m_pd3dDevice->SetMaterial( &m_baseMaterial );8 a5 P2 c2 F+ M1 t, s; a& P
0 K1 ^( Q* z7 s" B0 j#endif // not WORLDSERVER3 ^2 y: K- s2 Q
}
& [. X% s; B3 M# V. y6 M) V. `1 f并更换- b7 K: y7 P) s; N
Code:* k1 g. q0 `' M$ V( Y0 K) w
__FLYFF_INITPAGE_EXT' Y0 v4 n0 q! Q' n
定义
% Z* W7 f8 c* y/ |. z c8 A5 _$ F
# ]# Y6 ^3 U7 G+ b3 W( R( W
0 b5 D' r) Q9 ^" u) _8 f* o& c
4 t N/ L5 P* V! P% ]+ Y
8 _$ }8 F% [7 c$ W$ D+ k现在终于删除我的狗屁加速...# A9 n" k, ]/ J! U: g
; V! V# t$ g- d6 q9 b% Z& w
7 s g: H( W+ ~; p& C
9 O1 h# _- M3 k* |+ [% @ |
|