|
|
食品车:
9 X5 M! a2 x2 H( E尾翼:& c- q+ W& L9 b6 s/ ^
# N6 F) n. o3 m9 i8 l* ^& }& P/ T代码:& P0 v1 N' D# b. b% w
CWndAutoFood::CWndAutoFood()
; F$ [) t' A( [+ I% @8 i" {{/ w8 V( X B* K1 w
m_pItemElem = NULL;
! B$ Z, F1 P) N. h m_pTexture = NULL;, x' w) ?5 k, b! f! T
bStart = FALSE;# y* S( q! d6 i% r* T- P
}$ F. z9 A1 q& w8 j! i6 W, E+ k
/ s" z' w" l( @! {0 a8 a3 VCWndAutoFood::~CWndAutoFood()
+ x0 w( q. r# h$ A0 [4 \( Y' `{
/ |4 l5 L0 [1 N* v AfxMessageBox( "AutoFood ist gestorben " );
! I/ N2 p& f$ o9 |9 D' @* {}
& K x# v! v _0 J+ d9 S4 bBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
' @, j3 K, E) k" Z{, j3 [2 A7 R6 L8 E
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) |' S+ X3 h7 y/ ]) {9 S, A
} [+ S0 U6 M9 g4 v Y, s1 T
. K7 T/ q! H7 T9 e% c
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
# I8 m, R& R0 |' L{
& {% U; [! x) m/ C% K, L LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 W4 k! ?$ @# _2 B( I* S4 u. n# P, E$ K
CRect rect = pWndCtrl->rect;
: v% V. N2 U# R9 x& t$ ` if( rect && rect.PtInRect( point ) )
& U2 ] b$ V. v0 Y2 ^ n {2 Y- l# J. r$ F9 E2 w' o
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );7 i& i9 w7 L! f9 D
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )5 O e! D; ^' @" F4 z/ U# H8 m
{
" v8 B- M% m: w' U' Z. z: T if( m_pItemElem )6 P2 u# o9 C; c6 f
{
. c: t" Q8 h. F& C! b. V. v m_pItemElem = NULL;: V9 Q) _1 t8 Y+ ]* {* z- B2 e
}
3 ?& s: e& Z/ W3 I1 }5 l m_pItemElem = pItemElem;. c, s# J- e( L. i0 y( ~, [0 P: `( L
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
/ i, p; ]0 T: [* Y/ s }else{
: d" b: |- z- L; T# p SetForbid( TRUE );
. p! f% B8 d# D }
# p* M) E7 A! X& G& U+ x/ t+ P }else{% C% m) |) ?3 ]* b. M, E# T u
SetForbid( TRUE );4 Y" {5 a2 C( @% w. _3 N: u
}
* B7 f- J* U, h7 o6 f return TRUE; C3 R6 N6 i c: [ B' r9 @% L4 X
}
" |3 L: o5 N" j. B9 G" c# U- o4 ]* C6 g2 A+ n8 Y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 y2 h1 \" ?+ Y! G* t
{
0 ~7 D# A; }, L* L5 n switch( nID )% Q1 S( L0 K" W7 k7 b4 I
{
, h2 _- |: ?3 o# v case WIDC_BUTTON3:) p# m7 h* X2 c' }
{* k% H D4 R; ]. w* ?' Y2 e- F
bStart = TRUE;
8 }/ L8 N+ A4 z6 V! V break;+ W5 v& `5 R, |4 C3 d
}# K, ], l, X k0 I8 R, `) ~. N6 q; V9 y
case WIDC_BUTTON4:: O) I% M) q# {; P
{) S4 H6 o0 ^) L
bStart = FALSE;3 _+ u o& i4 E2 O# x( q3 ]
break;" X( ^( ~& m" C# k# n4 ]4 ]
}! v3 P6 U0 a1 R. R/ C
}
6 |7 s1 y& t" {8 e. E" Q return CWndNeuz::OnChildNotify( message, nID, pLResult );" }# q* V+ \2 W1 f. c
} ) Z. t2 }( C( L+ p) _( O, c" a# z
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
6 H0 s9 T% Y5 ]{
. t2 \1 q4 M% i; p) H6 O7 F CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 s6 y3 [' e5 B0 f( r( {' [
if( bStart || !m_pItemElem )% p4 I; a& z3 t# l1 X( a. i5 ^5 h
{2 F) f! ^* L$ z$ G8 `- b
pBtn->EnableWindow( FALSE );1 a+ t8 _1 ? V! v
}else( ~0 W9 J3 H5 K+ l, j Q
pBtn->EnableWindow( TRUE );
# P7 y* H# y- ]% w if( m_pTexture )
$ r- D; O' u- e0 A3 d5 e! Y {* z7 p$ A* [" S" Q% ?9 ~3 ], B% N
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
- G$ @) r5 _" {; q: S- P if( wndCtrl && wndCtrl->rect )
8 N* s, S, o, _# b* L( w {
D- d% c* O+ h; P# t m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );9 \% L; }8 B* }' p$ H1 `
}: r% n' G \) G
}3 a3 ^) E2 n- @
}
+ V6 ?. e. X* g2 ^
7 Y6 F k! i, _2 [& }. ^/ |/ J% HBOOL CWndAutoFood: rocess()) o1 p |0 E9 I% ^; X$ s
{8 u/ Q- R2 w, V
if( bStart )
' e/ S6 `" t2 }5 Q' Y6 ^* r {6 ~: L7 C6 i9 i5 z( ?
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
% A1 `3 B0 v$ J: k. ~ {
/ C# R4 t% v$ E0 ~2 N* p3 ^( e" 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() )
4 W0 D4 W6 p- z" \, u g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );7 ~- k4 B. L& V$ p5 Y! o5 l
}else{ J2 h' z% l9 K8 I$ z U% T# f1 U
bStart = FALSE;
5 v$ x+ [0 C- q3 |$ J) j6 [$ B m_pItemElem = NULL;) f9 x9 @7 J& U: |. z( q% ~
}
, p& @; @ |4 ^! }/ X }
: U7 }6 ^# A: e+ M return TRUE;; T9 e9 O; ?9 t1 T
}; Z1 j2 z( C/ N! K5 ~
0 [6 H) n/ c% i( s7 v& D+ q: `登录视频废话:5 n/ S- Y$ U2 i
尾翼: G+ @- B; p- E# S0 g4 L
7 K4 c$ F" E2 S' M3 J6 d5 C代码:( ^2 ?+ t2 [- j' ~" s) f. V1 q
# R: o T7 _' V
void CWorld::SetLight( BOOL bLight )$ D) I+ A! N" K4 Q
durch
! X5 [/ F( Q9 |9 a6 c; ECode:3 w1 q# i6 b% T+ C% C6 t
void CWorld::SetLight( BOOL bLight )
& Z p5 Z2 l6 f0 G6 ]{
: m" [' j9 R- i3 L' l //ACE("SetLight %d \n", bLight);
+ O& A- x7 a* {' L2 ~# a* G2 I
- L- s4 R& S; h6 r" @% E5 J7 R#ifndef __WORLDSERVER
+ B4 u' S5 r* m/ z' c' G DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);& q6 o: f1 b2 p& K* t1 A
CLight* pLight = NULL;( }8 I! Z1 ^' N! J
" H# {; y- Y" L: p! t0 N0 G; {6 S
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); {4 |9 h. C0 b- m6 A
j+ I! X/ k/ Z" ]1 @2 v pLight = GetLight( "direction" );
" g% h! n0 }+ ?" T# H' w+ e& A
" @8 @, `6 Y' t; `5 L#if __VER >= 15 // __BS_CHANGING_ENVIR
3 l c- l: o5 o if( g_pPlayer ){2 h; e1 ^+ Y1 m1 m4 b% w9 M& |8 O
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
. {; f% |( R2 a2 X* n if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
+ t4 A \2 W6 G2 z! v( d {
( J4 D7 y6 l# @- k; Q if( pLight )0 J; v. @' ], {9 n% ^
{
% {2 i: T1 I, A- q% z; B6 d pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
- a7 Y. N S' z; Z pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
4 m* d2 z: g* r9 S pLight->Ambient.b = pInfo->_fAmbient[ 2 ];+ k' \9 K4 t2 e4 ^
; A8 _" f+ g# U G) U8 J1 y4 z' L pLight->Specular.r = 2.0f;* {; a) K. Y2 n- l; W9 P. Q4 G6 |
pLight->Specular.g = 2.0f;
% s) M8 N" j; Y/ q6 A0 e( E% c pLight->Specular.b = 2.0f;, P! h- a$ H2 f' [$ C- x: d
) p- `, a/ g, \/ C
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];0 N5 r) s; J, c0 e
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 E# l8 j5 X# w, z6 a% |( V7 b1 {( z pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];; I+ B( E, _/ e3 T/ W+ r. N: y: a' t
7 g( R) x+ I3 |! t9 s2 } HookUpdateLight( pLight ); , p6 X6 T a) s, d7 }9 j/ s
' p% K0 T8 }4 v# ^ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% _! c! M6 k2 l$ m/ _- k
; f( S4 p1 ]7 L2 @) D pLight->Diffuse.r *= 1.2f;
3 q$ z$ z) i/ B pLight->Diffuse.g *= 1.2f;
- _+ [5 r W7 T1 r, k# G! G$ V pLight->Diffuse.b *= 1.2f;
8 x) v( E4 O# _! a& o
+ Y/ f0 I4 R o" z/ ? pLight->Ambient.r *= 0.8f;
7 |" D2 a* R: K$ |+ y pLight->Ambient.g *= 0.8f;/ l8 Z! X- Y0 z3 @6 C i
pLight->Ambient.b *= 0.8f;
- H* B$ G" ?' m$ W0 i! U - q) A: O0 C4 o7 i1 e) }1 |/ D1 X/ d
memcpy( &m_light, pLight, sizeof( m_light ) );1 V2 o3 ^8 V9 k& B
. p: r, v* b$ ?1 w$ x) u D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 C9 t1 r% h& K9 h D3DXVec3Normalize(&(vecSun),&(vecSun));
3 |% l' `9 O8 G! W7 T& I0 { pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
" y& E, t1 c5 e# B% s3 _0 i pLight->Appear( m_pd3dDevice, TRUE );: N, E5 }' P# k" {% {; M) N
! b; n1 R$ W9 o# D' q8 S" b( H DWORD dwR, dwG, dwB;
: [5 |* F0 X4 Y& P9 a dwR = (DWORD)( pLight->Ambient.r * 255 );
1 l7 y5 D; M: _- b& d M1 s% `% Q7 z! H dwG = (DWORD)( pLight->Ambient.g * 255 );! O) N+ {' R7 r. ~0 t
dwB = (DWORD)( pLight->Ambient.b * 255 );
8 h, L9 w$ `' M/ v) g5 M3 _, U dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 I) M4 i# g0 g$ K6 C. c1 G1 ^+ A
}! N1 o8 X+ ^& |
}' V4 g" w5 A3 G* V6 z* l
}
' k3 ^+ Y! ?; e& E else0 t h+ Y" u8 c
#endif
+ `# r& L3 q; @( u M
$ `+ p$ S2 Y4 C' _/ u% O5 \ if( m_bIsIndoor )
: V/ v% ?% f. } {3 @5 c* Y& a( S; O: a e
if( pLight )
* A( T V d2 |) q2 F { ! g& d l; I m" G# ~
// à??μ oˉè* 3 Q) }7 E5 i( J7 L9 f# t& j
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;! T0 w4 V8 h" a, T
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;, s7 w( O& _8 S5 X3 O& o
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
3 o+ W6 |& N- r* |9 M9 i4 i
# j" k4 ^. S$ G" |: n3 n9 G // oˉè* ??à? : K& t5 v* R$ ~7 T
pLight->Specular.r = 1.0f;
* o5 {- V3 q2 ?3 `7 v8 H! N" S pLight->Specular.g = 1.0f;6 P* t# b: @7 [% e
pLight->Specular.b = 1.0f;: i; }8 F K; G) m6 @$ T( K" n8 x2 m q
// àü?? oˉè* * I# H5 x4 G: H( [
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;% f, d8 N5 X$ {; @! X4 k- W
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
5 T& v9 e" K+ Q pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;% l5 {2 F, u) a8 `( k, X! @8 W
& a d4 f) I$ ?( ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) ~: |6 I6 p6 }- N# T
{$ ]* |; ~; W; ]7 N
pLight->Diffuse.r *= 0.6f;
3 K2 G, n2 L# T1 r' ?1 q! q pLight->Diffuse.g *= 0.6f;
8 R& u$ l5 ]# ^% k pLight->Diffuse.b *= 0.6f;& y. N9 U2 y$ c5 {
pLight->Ambient.r *= 0.7f;
' J6 M6 f0 ^ h, V, `0 U& F7 a pLight->Ambient.g *= 0.7f;4 H; ^2 o" a8 r% G' `( T7 h3 U
pLight->Ambient.b *= 0.7f;
( q0 i! Q8 Y( P$ g# j9 m! O3 e1 z }
/ z7 H$ Z, M4 {2 A
9 K9 Z- a, ^) x: \: O9 v2 J# i N#if __VER >= 15 // __BS_CHANGING_ENVIR8 y4 r- A' O6 Y2 R9 f7 H
if( g_pPlayer )
# T6 Z2 d+ |! O" n8 Y! } HookUpdateLight( pLight );4 S1 m! _# T8 |! ?: _
#endif& l" W/ H7 ^& y2 _
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 w* m) P# A% R! ^8 Q. Z6 a0 E. r% V4 d W2 w
pLight->Diffuse.r += 0.1f;! V1 l7 o2 n4 f# r
pLight->Diffuse.g += 0.1f;! _2 k+ K) f$ K, K! Z, @: f
pLight->Diffuse.b += 0.1f;8 t6 J# i, a$ t$ p% ?
// oˉè* ??à? 8 L$ N. {5 [& I$ _+ h' y% i
pLight->Specular.r = 2.0f;6 I$ h7 |. m6 |0 F% W0 m" x# U
pLight->Specular.g = 2.0f;$ M) |. \0 y* l% d$ U( Y& L
pLight->Specular.b = 2.0f;' g5 y2 O" ], V% ?8 e
// á?oˉ % c2 W9 X4 ~5 [5 z
pLight->Ambient.r *= 0.9f;
2 n5 z2 ]* b: G5 R1 B: T) [ pLight->Ambient.g *= 0.9f;
" y. x4 \% M; n6 [3 o3 S5 E4 X pLight->Ambient.b *= 0.9f;1 X4 \1 i; y8 g) Q
6 ^0 B0 H1 l$ I+ }, O memcpy( &m_light, pLight, sizeof( m_light ) );
: n/ E8 G% w- |7 X: `! e
/ K5 p; G* | H+ d% e# Z pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
! J+ ^( n I) O; x: g pLight->Appear( m_pd3dDevice, TRUE );
; j, H2 E* i$ C$ ~2 p5 `% b * H& z; g- _& Y0 I
DWORD dwR, dwG, dwB;/ g; P/ m. }4 l3 o4 P
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 c9 S( _+ c! V dwG = (DWORD)( pLight->Ambient.g * 255 );
% C2 g, s5 H, [! A# r* C$ g dwB = (DWORD)( pLight->Ambient.b * 255 );/ x3 L [: ~4 i: l- y
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 Z' X) I& N" Q5 l- e( h8 a: W }
$ X, `( E9 ^& B }
; R1 r% E0 V& s; d& X else
5 ^ K0 o* b( L; k3 v {% m5 e2 N9 k L8 c/ Y7 h/ G
if( pLight )
" x+ t& [5 n* p- i) V+ N {5 V2 |! D8 v+ R" |* C! I
( r' o, `3 l/ B; X* H6 g- Y* ~ z int nHour = 8, nMin = 0;
! V) [* D; r* K: U/ [- v- Y/ q #ifdef __CLIENT
0 u; z5 @7 i3 `, v- J; H. R( T! Z // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. # V7 `" u- Q- U
nHour = g_GameTimer.m_nHour;% P3 W' F6 J2 ^8 _, A# W; E. i8 A
nMin = g_GameTimer.m_nMin ;# a6 e1 m1 W% A) A
#else
& \" R5 z! n+ N // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
( b. I+ k9 R n U, E9 C; _' U if( m_nLightType == 1 )* ? `0 v O' m
nHour = m_nLightHour;
7 K+ T! j1 T' v #endif5 `$ G" F: m) Q; Z) t
nHour--;7 d/ `2 w& @% d `
if( nHour < 0 ) nHour = 0;9 U2 }3 A2 P. N
if( nHour > 23 ) nHour = 23;. E7 j* V; y! @# S3 l( Z$ B
6 ?" [) w# M! `! Q8 p/ g //if( m_bFixedHour )
+ T' F/ i" h9 l4 I' O5 q) \ // nHour = m_nFixedHour, nMin = 0;
1 Q5 C$ h* f% D. w; T9 ^+ R* F* x LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
1 K# N5 u( U7 m& G+ [ LIGHTCOLOR lightColor = m_k24Light[ nHour ];7 i3 b0 k7 ~5 F y
7 t! Y. t, {8 T" |9 Y
//m_lightColor = lightColorPrv;
" x. s" }7 J3 j; \& `. n lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;9 o2 L/ J3 S7 Z' r, g% a, X2 }" T: Z
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;, @5 C, r8 k( p' I. I/ M8 x5 k% X
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
. |3 d3 l3 u0 h9 ]+ f4 V9 s2 k lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;9 a7 x& F) |" w1 s) D
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
' _7 M" L1 `- {* l, J lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
* r" m9 F+ i2 f8 }6 j$ x% j // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)5 }$ R% d- Y+ `2 l. W8 L
! \% |# m8 t9 q. U9 ]0 Y( }$ g // à??μ oˉè* 2 c; c- X$ t1 b2 a/ M% Z3 {0 P
pLight->Diffuse.r = lightColorPrv.r1;
& L3 a+ j9 v" @3 p4 F# C pLight->Diffuse.g = lightColorPrv.g1;
6 P) T% Q/ z) D- L pLight->Diffuse.b = lightColorPrv.b1;) a( ~1 N# H+ S. l
// oˉè* ??à? * L; x( I6 t- u9 B; |
pLight->Specular.r = 1.0f;
, A2 v. e% _! J, z& w4 g8 q pLight->Specular.g = 1.0f;+ _( c3 u8 ~ }# h" Q* n
pLight->Specular.b = 1.0f;5 s. `: b7 O4 ]
// àü?? oˉè*
4 I3 s5 L) M* Z6 F' Q$ S% c pLight->Ambient.r = lightColorPrv.r2;
/ ]( W4 \ p) ^/ U q1 c6 j+ c' f pLight->Ambient.g = lightColorPrv.g2;7 I2 q- x# a6 i- T) b2 ?! @
pLight->Ambient.b = lightColorPrv.b2;
8 l; U; b x' Z9 U* I1 p p- [8 Z% b( z" E; w$ p9 A, j; q
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.9 U9 [ g2 V! t3 e
{3 t: \& }6 H7 h! W
pLight->Diffuse.r *= 0.6f;
4 p% b8 h( C! ~, _, o* _ pLight->Diffuse.g *= 0.6f;
8 F" z4 ~' C2 t pLight->Diffuse.b *= 0.6f;
8 c# s5 E* G' d pLight->Ambient.r *= 0.7f;
9 p1 f0 U" R( E7 [: p5 a pLight->Ambient.g *= 0.7f;
; o: g8 U& J3 _" [ pLight->Ambient.b *= 0.7f;6 Z- g4 G F/ j( M0 t- d o+ u
}: D7 T/ P/ G6 n- y+ O
! a9 N: d S+ |! U) x1 K#if __VER >= 15 // __BS_CHANGING_ENVIR$ p9 g4 G8 h: M% w" p3 S; J, |. r. {# [
if( g_pPlayer )# l8 W Q/ M; [8 J
HookUpdateLight( pLight );
# u! k& \* h0 L7 Y& ` ]#endif/ \3 l3 u3 m Z% [2 a5 X: t
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 }) O+ Y( T+ y) g% v4 z" g, \" m
7 K) Y+ }2 X/ C- N% [+ p#ifdef __YENV
' v( @/ a6 N v pLight->Diffuse.r *= 1.1f;
`& X: m& Z+ H2 { pLight->Diffuse.g *= 1.1f;* }3 M. T7 ?8 C4 u7 v- F
pLight->Diffuse.b *= 1.1f;2 L: A0 J" d' B6 U+ A1 O) j
// oˉè* ??à? H+ l+ ~! h" w; n
pLight->Specular.r = 2.0f;
! m/ r }& a2 X# P0 b pLight->Specular.g = 2.0f;- R: N3 j$ M+ `# A9 D v! ]( V8 l
pLight->Specular.b = 2.0f;
. B- c6 ^8 \0 }6 t9 L // á?oˉ
# e5 T& C5 l: |$ n pLight->Ambient.r *= 1.0f;: A0 K7 x+ E2 @: k, S. \0 q
pLight->Ambient.g *= 1.0f;
8 g l- ~4 ]5 f9 _* g$ B pLight->Ambient.b *= 1.0f;
& \8 F- X6 Q% e' n' c8 z#else //__YENV
$ p) }( N8 C- _$ F# D: }, b6 ?( n pLight->Diffuse.r *= 1.1f;( ?( z! d2 x+ Z5 H6 r
pLight->Diffuse.g *= 1.1f;3 {- m: {0 C' b& [/ N2 v
pLight->Diffuse.b *= 1.1f;
& ^9 O9 z$ _: a4 n" ? // oˉè* ??à?
. y9 l+ r8 G. D: e( L pLight->Specular.r = 2.0f;
1 P0 F/ z4 I2 Y$ `- f pLight->Specular.g = 2.0f;
! H' q9 y, x5 h( F2 w1 M pLight->Specular.b = 2.0f;
2 |- a" d2 D! H R0 ^+ S // á?oˉ
1 B+ t' C6 b- u7 l2 |* j pLight->Ambient.r *= 0.9f;- E6 g: q9 ~. m0 ?. o3 ]: r$ e
pLight->Ambient.g *= 0.9f;7 c. a1 C8 f: K5 A5 D; P8 o' r
pLight->Ambient.b *= 0.9f;
7 x ^; D9 E* x#endif //__YENV ' e) r4 m; C) Z5 y4 U% Q
/ f4 g' b5 F- R; C* e
memcpy( &m_light, pLight, sizeof( m_light ) );0 v- ]. p9 p* r$ z& V7 q) I
5 K! F3 M( ~& t0 O: j) l1 x4 f
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);6 L* n. S' Y1 L L: ^! C2 D
D3DXMATRIX matTemp;/ y, M5 u; L5 d& A/ Z
static const float CONS_VAL = 3.1415926f / 180.f;$ K/ J: L7 F2 U3 M8 V
$ ^+ c. R0 Y4 M2 L$ H, g D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
7 t! o1 G; G7 E9 p) u D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
6 o& W$ y4 E* n9 _: @2 z6 s pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - y4 M" G8 e9 g9 u! [: V( R
pLight->Appear( m_pd3dDevice, TRUE );2 K4 C- u6 S% e: {1 j6 T R
7 g7 m; o, y" G5 [$ m" j+ k- J8 l
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: @7 k4 `4 Z) _; _
// D3DXVec3Normalize(&(vecSun),&(vecSun)); H9 I6 r( S# w5 e0 h( G3 j3 P
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
/ d: u+ G6 q; {7 `
4 X9 w: k4 R) j1 L s" ^ ? DWORD dwR, dwG, dwB;
+ c7 G t4 J& G3 [ dwR = (DWORD)( pLight->Ambient.r * 255 );+ n1 ?# f6 [" ~+ R' N5 \
dwG = (DWORD)( pLight->Ambient.g * 255 );
. S: `( a$ o" N: |% Z, J0 p dwB = (DWORD)( pLight->Ambient.b * 255 );
8 S1 A- {2 J0 H( d% X( ` dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); / ?: C4 U& N! u5 z
}, U) ^ N2 E8 V; S: o2 w
}7 m. {/ p+ ]/ K6 \4 ^+ O: w1 o
# {* i. K& X9 m# a% X! D m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );4 }' K# S+ ], s5 |7 D
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 Y8 N8 e! w6 {# k' E) s
::SetLight( bLight );
( ]9 m) L, i Q! |4 C( ~8 [
$ Z0 O7 G+ f$ w // ±ao? ?D?í???ó á¤à? i5 ^" g8 D' h6 }2 c0 l
m_pd3dDevice->SetMaterial( &m_baseMaterial );! t6 U; I# c& x0 F) Y2 }
7 j6 C& `. z" A# ^, k5 j5 U% T
#endif // not WORLDSERVER& o3 h g- i j& b8 k& \
}7 g" j2 W" ^" U4 V6 ?8 q9 U! q) r
并更换
1 j. U: D' ?3 yCode:
, [( t0 Z$ Q+ A$ i Q0 N* w7 t__FLYFF_INITPAGE_EXT
% v5 ^6 Q: L7 V8 o8 u. K定义9 D0 U$ T; K; ^4 Q7 Y5 z; g, f
; R& {- s' K5 s, O
& \- W5 z! t$ l1 E& ]' D1 m4 \+ B! R3 w7 L7 Z
" _, o; o1 O3 M! `. i$ y现在终于删除我的狗屁加速...9 q/ D% h& F& n# w1 A9 i$ Q8 O
# J3 y5 ~; ~' ?$ x
9 W% f9 q1 S" r" A$ l3 p# s& h: ]
/ Y# [" ?5 o3 ?0 X" z0 H9 T |
|