|
|
食品车:
$ ]: ^) X2 A+ Q4 b/ I% m尾翼:& q" u# n! R! `2 w( ?
( i# d6 T; n$ W9 W代码:
U1 Y2 k! U5 @7 P9 [9 E( {CWndAutoFood::CWndAutoFood()
! C' T2 J! e; U8 F0 ]. e% d! U( m{) V' M. A& ~/ z' B
m_pItemElem = NULL;
* t$ K7 z+ y+ t# l$ j m_pTexture = NULL;
4 d) J9 ]3 d6 _* d3 _4 `) A1 m/ a2 a bStart = FALSE;
; `9 l8 j/ c j# U; T2 k}
: d( }+ R# N, }9 o+ O
1 Y/ a5 u% {5 F+ y/ ]( b' tCWndAutoFood::~CWndAutoFood()
& ?5 \- Q) J, p{
9 ?8 @5 K ^7 C2 s; G* b/ Q+ h, a7 z+ m( ~ AfxMessageBox( "AutoFood ist gestorben " );
. l7 ]: }! L8 f! B) e6 F( U}
/ r4 {) \; u! l: Q, y- t7 [9 o: KBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
% z1 _, q( n4 M/ j( ]/ m3 |{
( f% b8 J: p: ~( o9 ^' ?9 X* m return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
2 _9 B5 ], E$ r2 J0 E) x. }}
, H6 |( L' j+ T+ h& {: ]' o) a7 s0 I& m5 R+ y& Y& f- U
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
# u0 p3 v$ u- r; s5 t{/ @0 `! i" V2 C7 ~- Z# x
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 m& }* S* b9 B7 e" O
CRect rect = pWndCtrl->rect;6 X6 W& R, _: H D& ?
if( rect && rect.PtInRect( point ) )) u- N3 S u) `4 b
{2 O0 L% ?( h* ^" P% g3 ?& B
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );( O& `2 a6 M9 O( _# c% a
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
1 l$ x; l- U- r6 q8 X. K {
8 n4 n1 ?. e% W* _2 w if( m_pItemElem )
% v' W6 b+ A; \$ Q, w) G {: m4 C3 M# r o( F
m_pItemElem = NULL;
9 v% L/ d+ ?& p }
: A( ?9 p( [2 @- t' A$ p' \ m_pItemElem = pItemElem;
8 V0 h7 F# ?$ o3 f } C m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 a3 V' h, `3 e9 i- N1 U2 ~% J }else{7 m' i: k' V6 d1 q
SetForbid( TRUE );% {2 `/ h: }1 i
}
' w" C4 U5 I9 n0 J8 Q }else{5 F' _2 \ E, m
SetForbid( TRUE );
2 U G( g; O6 N) P2 s7 y h }
9 H5 R& `9 a7 H2 w2 g- ~9 q2 h# Q1 I return TRUE;
; ?7 G$ @) u8 W+ S}
5 n1 U2 z1 l1 b
, X. D1 t. t) Q/ r% Y$ l4 e- \BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )$ A) u" E2 N1 J2 n9 |
{9 J- ~( A) n n
switch( nID )/ K# R! X: a+ c4 y
{& u+ z6 h) N1 s+ O5 u* y
case WIDC_BUTTON3:
0 i& v* [, l# b, W9 C- g {5 S, e% p; s) g2 ]+ H5 F6 X% V
bStart = TRUE;/ X; Z1 x: z* R* i2 z9 J
break;5 F% J) g; ?( R5 q" l, D( F: p3 D
}
7 ], x% u8 N9 q8 s7 ]1 v2 t& Y case WIDC_BUTTON4:
j2 B& a5 f1 y" b8 n& J& i) |* s {0 G$ t* d) ]4 i t) R5 x7 b
bStart = FALSE;) j/ K4 V: G' `- C
break;
7 Z6 Y/ x1 {6 V5 ? }
( _9 ~2 a r% r" y7 Y }
8 I- }* g( L# |. S return CWndNeuz::OnChildNotify( message, nID, pLResult );
$ ?& n; R8 T7 w$ u, b/ D} # q3 O; i6 a" w/ W! j1 z6 @
void CWndAutoFood::OnDraw( C2DRender* p2DRender )1 G" T5 p5 G2 R/ @
{2 V! B" R, [; @0 q# S; _& t2 L
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 q1 [/ Y0 [$ v1 Y- V+ m6 ^
if( bStart || !m_pItemElem )
( I" [! d2 S0 o! y8 E0 p7 y7 ~ {$ u/ L. l/ z# a( Q" S0 M; F
pBtn->EnableWindow( FALSE );
1 M: r5 k1 U$ x& N$ N8 t }else
- H# o/ l; P7 Y6 k& g7 j; ?8 d pBtn->EnableWindow( TRUE );
, ~3 O/ }; n7 n- l8 E2 ~" n2 j if( m_pTexture )( l; t4 S6 ^5 \
{6 ]( W. |7 @! y a# B$ z+ s; `0 A
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 @7 `' d3 k# f& q/ X if( wndCtrl && wndCtrl->rect )
) P: p$ W- J) _1 k# T {. m+ Q5 p) n) W1 y) A
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );$ z. i; y3 l+ W& }* v. r
}6 h& X$ n" x4 X1 a8 i! X9 d9 i
}
m' X# n$ F( a( g, s R}
3 O6 h) T8 l& c3 D0 W1 U. }2 b+ i2 z, C& M6 B; M- d' U5 d
BOOL CWndAutoFood: rocess()6 e; G4 E: p* _
{
+ G$ j* f: @* L, C( _3 ]& C) U8 L if( bStart )
* Y3 v3 T% a" j; z7 U+ c- q {. K$ q* u2 \/ r, L4 a$ Z
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )8 {& @$ M V$ z5 d
{2 A* f8 A1 m1 ^7 q n0 D! p) [7 a( o
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
) L, ^5 H5 Q' E/ h$ f g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );* v6 b) e, I9 G
}else{
2 ?- L& T) G' Z, o$ ] bStart = FALSE;3 u: f, M0 B Q/ P5 ?0 Z3 m
m_pItemElem = NULL;+ I& _* J/ C! t ?* |( U
}$ p/ k6 ?. Z( U+ K: D" O9 k
}
, S& K( p' o M# l# l& E return TRUE;% i) a; k U) ^4 D" ~) I* u% r
}1 X: l9 p) @; n' v8 Z. ~
0 V" P# U' R, {登录视频废话:
/ y2 s- y: K# c# @1 m7 v. h1 c& S尾翼:: W+ h6 F: m0 W6 H, t+ p- T* e
' I; ?# w1 a$ s$ v0 ?代码:
! E# B0 y) ?& s2 Y8 m; S) r; L( m. S
void CWorld::SetLight( BOOL bLight )
! K% c$ @8 j' }' [! b$ U+ Idurch
/ R+ d; A* [6 U4 [6 gCode: d& o3 x$ u. v/ `, F- {
void CWorld::SetLight( BOOL bLight )) |4 y, c4 m$ l) Z& n4 Z, x: W
{, u" w7 D% K1 f: N4 d. t
//ACE("SetLight %d \n", bLight);
, y9 y8 E! q7 ~/ H# E) _6 z2 O) s( o; A . j+ ]1 ]+ J& s% R1 B5 {" @( e
#ifndef __WORLDSERVER
' c0 T: b' O$ H DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
, [- u* c; _* M, C, n9 M CLight* pLight = NULL;9 k- l, a8 F2 w9 N' q: W1 ~/ O
% c) ?0 h. N$ H' z, l1 f. o D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );' U0 N! W# ~5 d& o e
, R7 A* ]9 b6 T
pLight = GetLight( "direction" );1 Q* r8 I( F3 j& G) ?, i. _. i0 n+ }0 R
6 T2 @9 X5 [* I+ E/ N+ n& f( D1 b
#if __VER >= 15 // __BS_CHANGING_ENVIR* L; c: F9 Z& } I3 [
if( g_pPlayer ){
8 B0 O9 U1 |- B7 X2 E5 v8 K ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );6 Q3 I4 M$ ?' ]! Z' Q; A- X& Z. ^
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!1 G$ ] O% k7 v% m' }* x+ j
{
/ f4 u( |0 _3 T if( pLight )
. C! N# _( A2 ^" D {# ~; D/ u6 i/ N$ F& | q1 O8 r
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
: [. Y9 c; M* x3 ^$ S" [) j pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
: P" g7 Y( x1 A3 \& \ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];' N3 @7 C% S0 W
6 Q; [- |0 V/ u5 D- B8 T pLight->Specular.r = 2.0f;; O; b4 Q; k3 P# X
pLight->Specular.g = 2.0f;+ j% h+ |. s# n) n, J
pLight->Specular.b = 2.0f;
7 T3 {/ u3 g; V, D6 E 4 D: A9 D# s: v, A: N* _ N- K" H
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
( G: m* R( K# v7 I6 L pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];1 G% k. w) S% N7 h
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
! d. d2 d t! P i6 d. x$ @8 |
5 }% H- E: ~, A5 @ HookUpdateLight( pLight ); 1 T- ]4 f& R/ C# J7 \( o& c5 ?
( o* K5 ~% O. O& E6 g% h memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 z$ R4 q o7 T( S6 P7 v) F% x
% `. C% ?6 V6 ?# G
pLight->Diffuse.r *= 1.2f;9 j5 j6 |/ e5 F/ C6 G6 x
pLight->Diffuse.g *= 1.2f;1 A0 O: ]% {! @0 Z
pLight->Diffuse.b *= 1.2f;
) z- n4 D- B2 r8 J w9 H
7 r- h X# E+ ]) w4 W4 H# G& X9 F( n pLight->Ambient.r *= 0.8f;) A3 k5 H# j: s, R
pLight->Ambient.g *= 0.8f;
3 p, R( [/ w7 e D% { pLight->Ambient.b *= 0.8f;! p! Y8 \0 C% u
8 J. o$ H! P2 R, ?0 H2 r4 Z% l memcpy( &m_light, pLight, sizeof( m_light ) );+ P) t! ~+ J O. r# Q1 r% U
/ P" J }0 X! Y# M) G5 ` D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% `3 U! Q8 L8 r D3DXVec3Normalize(&(vecSun),&(vecSun));
8 A& y6 O% T# {; z$ q) W: |8 f pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / J9 j y4 ]2 h5 X8 E
pLight->Appear( m_pd3dDevice, TRUE );: c, W" f; X: P
9 z7 E/ V4 E* ~- N7 C* i/ T' C
DWORD dwR, dwG, dwB;
$ n. ^) u; Q' A) v0 {2 k dwR = (DWORD)( pLight->Ambient.r * 255 );
3 h5 P. Z; l4 a# q# j4 I dwG = (DWORD)( pLight->Ambient.g * 255 );
1 A. G4 f, h: H9 Q- |8 |8 [2 B) y3 U: ~ dwB = (DWORD)( pLight->Ambient.b * 255 );8 W+ h4 d3 ^( p4 ^! W
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: H1 G9 _* \7 c7 Q* f! V8 X }
% s# i m; |% s e2 D' s }; ~) c- L8 Y( j9 D
}
" c# M( }1 o/ p# I3 n8 n% H else' b4 [+ {# Z! g, S2 Y2 C
#endif & c5 ?8 M A5 s2 A/ f/ ]/ K
0 {9 q5 w4 n' W8 W if( m_bIsIndoor )
2 k, e% x- L7 x {
+ p. E" s8 E; H* z6 R- _- Y if( pLight )0 h, Q1 X& \: \% a
{ & L" X, D+ ? A1 P! ]- r6 M- f4 o
// à??μ oˉè* ; r" n& G2 y4 e- a0 V* B- D0 D
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
; Z7 e, c) P; B4 P pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;" U0 V4 w' ~- r/ g2 Z
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
1 l; t# E9 S H5 Z9 P. @/ ?7 Z" N4 g1 z: p( e6 }; t
// oˉè* ??à? 2 e9 @* N1 R5 N- Y. W3 Q B c
pLight->Specular.r = 1.0f;: R: h5 C; {$ V. v4 Y, Y K7 u
pLight->Specular.g = 1.0f;6 E. \+ ~' h, b. u, L+ O
pLight->Specular.b = 1.0f;% \3 z0 D) n& I4 T0 H7 B
// àü?? oˉè* 7 ^+ q {! e$ e, S
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" {( S% ` ]1 h9 p( m* l, W pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;6 B7 ^$ K v6 M K7 ^; q# |
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 T; \& y& W' _3 E/ {: p3 N
' ^1 t9 A8 `/ e* Z" N if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
( a$ \. {! H& K! B6 e- o {- @9 {5 Q( c* N. P5 w
pLight->Diffuse.r *= 0.6f;
) R0 W& |; L+ `/ }% S- C& n pLight->Diffuse.g *= 0.6f;
) v/ K$ m: P. j( N# D3 O pLight->Diffuse.b *= 0.6f;& u; h" H% \3 z6 x* z; Y) G
pLight->Ambient.r *= 0.7f;$ h' `/ _! S9 c( m( a. b, _
pLight->Ambient.g *= 0.7f;
! B+ G v9 b- Y( F Z0 V7 I pLight->Ambient.b *= 0.7f;+ \7 l6 V0 l1 p- n7 A# k; n4 [
}+ j/ R) Q, g1 ~$ t
1 d# c7 V$ W- w6 J; f) S#if __VER >= 15 // __BS_CHANGING_ENVIR# F9 F/ g( S% O4 B( S( A
if( g_pPlayer )
$ i6 s) L( y$ r, u" b: I# U HookUpdateLight( pLight );
' P' ~' @8 l$ V) Z#endif7 l u& o. T/ q6 F: o# f
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 |7 i3 K# m4 _. M0 u; S
0 Q* }: Y9 F- m0 E+ O# p, q
pLight->Diffuse.r += 0.1f;
1 z% t% N" t: O! q) e% ] pLight->Diffuse.g += 0.1f;
* _4 I/ ~& r7 i8 @ pLight->Diffuse.b += 0.1f;
" u V. u. M$ K1 o2 ~4 k- C // oˉè* ??à? ! b6 z& [, v$ w: g& b0 Q
pLight->Specular.r = 2.0f;3 _8 c; }7 z, X G' Q* j- T
pLight->Specular.g = 2.0f;
! ~+ ?6 X/ ]3 a- U1 q pLight->Specular.b = 2.0f;) \( @$ p$ W& l
// á?oˉ ; h. z, `7 l6 e" c6 T+ w
pLight->Ambient.r *= 0.9f;
7 J0 H$ T$ L0 g4 j, J pLight->Ambient.g *= 0.9f;
) c6 U# d& w- B5 S# c pLight->Ambient.b *= 0.9f;
! C& a- E( @& q! K! n: j# m. ~4 P2 @9 j: u! j$ R. Z
memcpy( &m_light, pLight, sizeof( m_light ) );
: @) X- ^# r: F7 r2 C , J, Y; }/ g" N8 q# q/ Z Q
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
! s4 j) D3 |* d2 h' M pLight->Appear( m_pd3dDevice, TRUE );
* P3 M# {( }6 A+ O$ V0 l2 ?: \ 0 E: N' ^" q2 l- h0 o
DWORD dwR, dwG, dwB;- g$ L# J8 Y& X' o4 M0 j
dwR = (DWORD)( pLight->Ambient.r * 255 );
& ` w: E3 S0 V dwG = (DWORD)( pLight->Ambient.g * 255 );
$ s, S6 ?; O+ Q1 q0 x! _ dwB = (DWORD)( pLight->Ambient.b * 255 );
# [' T& Q7 u0 i, h g( k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ E. d, u4 t6 o. n# z. K
}; l% h' T. F1 Z) w0 v/ O3 C
}4 S. X+ I6 W' Q5 ~
else
- m5 @. W0 x4 V+ R5 a {
3 g- ^$ W% u$ p+ e9 u2 J6 F0 F if( pLight )# d# H6 a6 E2 K9 |3 a1 {
{! u ], D* _( A! y
$ [) M4 J ]( k: \% x2 q
int nHour = 8, nMin = 0; t" i& y G8 |6 ~, j" }
#ifdef __CLIENT
+ F# l, f) ]; i // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ) B3 e1 q5 s: f; ^, `) H
nHour = g_GameTimer.m_nHour;
6 r) Y2 J% D4 |& t* J nMin = g_GameTimer.m_nMin ; Q; v1 \4 H1 h" h7 s
#else9 u/ P; u0 h6 ?
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
4 u) e: m. k7 w2 W9 H O$ s if( m_nLightType == 1 )" ~2 B' }6 A3 \0 O/ Q2 L
nHour = m_nLightHour;
- b5 M- G3 m! L/ H3 x% S #endif9 |9 |+ a( |# f0 W3 o: f) l
nHour--;, V& ~* C) W. X" {! ~
if( nHour < 0 ) nHour = 0;6 e8 U7 C e2 Y6 V- J
if( nHour > 23 ) nHour = 23;
8 D# i+ q, [3 C1 N- [" O; y# i' c7 M$ F7 k: K. O, B0 i
//if( m_bFixedHour )
" I B4 P% F m2 Q- x5 \ // nHour = m_nFixedHour, nMin = 0;
# q: }9 y5 }2 @# p; e LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
, Q$ l+ O$ K) ] C O3 Q4 ` LIGHTCOLOR lightColor = m_k24Light[ nHour ];
7 Q3 J/ w# z' k0 a$ Y1 m8 R4 D% d* D' k; `3 u
//m_lightColor = lightColorPrv;
7 L2 _0 i# j1 p! v) s& |2 p0 @4 A lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;* T, e P: h( {) v4 T
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 d1 B; o1 b0 \, a; @# ?( ]/ ^ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;* p1 ]4 M- k0 F# ]6 O
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 s. u$ `. H. w) ]0 T7 F& a
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
. S. B% {1 G- x/ H. ^ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
9 W" `; l! z, T' k // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
+ e* I' Q0 t6 M: s y
$ `; O4 H3 q7 C // à??μ oˉè*
, F4 d3 P" c( c9 j pLight->Diffuse.r = lightColorPrv.r1;& K1 d Y; t; }4 l) n' `# ]6 X
pLight->Diffuse.g = lightColorPrv.g1;" y+ U* L( E: ]% m) G6 r) S2 u
pLight->Diffuse.b = lightColorPrv.b1;5 u+ _. [' `& ] }
// oˉè* ??à?
; j* h$ E- f! O0 n# x pLight->Specular.r = 1.0f;: X: }3 w- _. l3 @3 ^
pLight->Specular.g = 1.0f;
; J0 |- [% R% L0 p pLight->Specular.b = 1.0f;' k: {, K. E* s0 _0 B0 ]+ u; S
// àü?? oˉè* ! M4 L# j5 C3 ?6 O
pLight->Ambient.r = lightColorPrv.r2;
6 [, W1 {$ T4 C/ X1 ` pLight->Ambient.g = lightColorPrv.g2;, O; i& b. l0 }6 j$ W3 \
pLight->Ambient.b = lightColorPrv.b2;# \# j0 z' l( G
. ? N2 W3 c9 f' ?. l if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
) d: k" w9 W& a$ H5 H6 M* f {
0 P" V7 \ g7 E9 d/ q5 q2 p! J$ r* F pLight->Diffuse.r *= 0.6f;* a3 K* b. }4 ?* W3 T& b! F
pLight->Diffuse.g *= 0.6f;
, i. n4 I! x! f& p* ` pLight->Diffuse.b *= 0.6f;6 v7 r( `& C# j2 L
pLight->Ambient.r *= 0.7f;* r2 `" j9 v1 Y1 k- U6 t( \- E! i2 Q
pLight->Ambient.g *= 0.7f;" O2 V5 s" X0 @/ b. l) O
pLight->Ambient.b *= 0.7f;* l3 X# g: d8 Z5 S
}
. _- M) Z* F1 w: H7 B& x7 Z
+ M, N8 z5 J* K7 B7 T#if __VER >= 15 // __BS_CHANGING_ENVIR
' \0 @! b+ T4 l# p$ a x# m if( g_pPlayer ). Y2 X- W3 m: s2 D4 u; w z
HookUpdateLight( pLight ); : m! r' N+ o3 \! v% ?) p0 J. y
#endif; F% ?0 L) [! ?: F8 N; A- }
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) j7 n( L& @' [9 h
6 H, ^9 g5 A7 \# Y; b#ifdef __YENV# ^/ o( n+ T( c! |0 o( t
pLight->Diffuse.r *= 1.1f;) T6 X/ B* T2 r- |4 L/ S
pLight->Diffuse.g *= 1.1f;: r1 J0 W1 ?/ r( a( T& Q6 O- x8 q
pLight->Diffuse.b *= 1.1f;& n! }5 ^8 ]+ I# P6 m8 z
// oˉè* ??à?
0 E6 m0 b/ L. m D- J, a: t- c pLight->Specular.r = 2.0f;% g9 Y5 p! W; b, @% U9 ^
pLight->Specular.g = 2.0f;
; V# B3 i( u" w3 d% C8 ^ pLight->Specular.b = 2.0f;
/ s' I' }; y) o. W // á?oˉ 5 g/ J" y* C; t _+ D7 L8 U4 [
pLight->Ambient.r *= 1.0f; q; c/ x, `/ r
pLight->Ambient.g *= 1.0f; G- F4 V: ?% E& Z5 f2 q
pLight->Ambient.b *= 1.0f;8 I/ g7 l- D# \) `( l/ N
#else //__YENV, ^1 {5 u: } H2 N# Z! Z3 l
pLight->Diffuse.r *= 1.1f;( u7 E+ ]- a5 f, ^
pLight->Diffuse.g *= 1.1f;
' ?& U+ e5 u6 b& g2 D4 H( B/ y pLight->Diffuse.b *= 1.1f;
$ K; S0 V* P; i Y // oˉè* ??à?
. h0 w" [" x% b7 _1 r pLight->Specular.r = 2.0f;2 A- I. ]+ j2 n$ W3 ~7 w2 o" |5 M
pLight->Specular.g = 2.0f;
0 j: k4 _- Q7 {# E5 V8 t pLight->Specular.b = 2.0f;
3 r4 T9 E0 @2 {( _" S) v // á?oˉ % M( S o! d1 K+ \+ j b
pLight->Ambient.r *= 0.9f;( |" }& {4 y2 G, S4 J( f9 ]& w
pLight->Ambient.g *= 0.9f;8 L% u* J7 V; m( P) V4 i" o( K2 R: A
pLight->Ambient.b *= 0.9f;) ?7 N' \# N" B5 m, x
#endif //__YENV
2 c: I6 g: y( [
/ m, s; z6 o, n& z memcpy( &m_light, pLight, sizeof( m_light ) );7 v# J9 O0 b' P) @' e, h/ y' m& W/ a
' U1 }$ r( D8 U, V D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
( b/ I. `& e4 b# V D3DXMATRIX matTemp;5 C& y: y- ~0 @8 Z- r+ H1 v9 s
static const float CONS_VAL = 3.1415926f / 180.f;, k8 t3 r/ l2 X7 J, N
p3 F1 W( W$ Y* g8 s" `( M. u# t8 |
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
' A$ B9 l- e5 N: i5 T D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);: S! l+ X# K5 I
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 F& ^' o0 p/ N: a7 E+ \4 z pLight->Appear( m_pd3dDevice, TRUE );$ w M/ j7 X7 U3 E \% v
7 o% q! \! O# h( |2 D9 q# g // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, W4 ^; E# l9 Q+ Q$ T // D3DXVec3Normalize(&(vecSun),&(vecSun));
; f2 C. f9 o5 L, T% r$ e' a6 q // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 V% C3 ]9 K, a4 M4 q; c) n
- p# \" s& }4 F3 G* \4 B6 O DWORD dwR, dwG, dwB;
( k5 B. l' u6 Y3 _' J$ ^* R5 s: B: Q* l dwR = (DWORD)( pLight->Ambient.r * 255 );; |: k" Q% e4 @3 Y. ~
dwG = (DWORD)( pLight->Ambient.g * 255 );
$ G" Q" `+ Q; W- [ ] dwB = (DWORD)( pLight->Ambient.b * 255 );( T/ L; h8 y1 D% [% H
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 H' r/ k7 x! Z; X) ?" @3 j* D! X7 P }" Y# x( `/ Y7 z* d" R+ I4 s
}& ?. d: a t8 P1 ]# P
& u+ D: ?" q& }$ `" d9 ~% C m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
+ Z+ |8 t' J! T8 ~& [) x$ b, ~ 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! J$ ~8 i) [1 a' N) P; }
::SetLight( bLight );9 `3 [: Q9 w2 F+ f6 I8 G& g
) L0 {- d, F9 B8 J1 O3 R+ O( j) \ // ±ao? ?D?í???ó á¤à? , o1 k6 w3 b( C% Q& k- S7 S! \
m_pd3dDevice->SetMaterial( &m_baseMaterial );
3 e' G; U+ u5 K$ f" Y ; e) Q% Z. G5 H0 z
#endif // not WORLDSERVER( W) R. c S, \3 J5 K3 I
}$ }$ c% `% @9 A; A# P' Q& J* A' U
并更换- o; ~% {$ h: [9 J
Code:' k8 n/ y3 p7 ~- E! f
__FLYFF_INITPAGE_EXT, P; u! J- i* |' I7 ~* n# W" b. S
定义
. `* b5 r& B( F I8 r/ b+ p# A) A5 ^4 Z, B7 Q$ |& |1 D/ ~0 p
) n9 Z& p5 U6 V0 z$ k/ g6 p( B
! j) r1 ~# G' | n4 D+ x
' s9 @5 C, S% y1 t' I& v. b i: c现在终于删除我的狗屁加速...
6 `& u4 W% f/ G
9 P' ~ V* @2 O M4 t$ m% N; W( O- X4 L1 t6 z7 M# E6 i! X
& [# Y; s& w$ f" z0 {
|
|