|
食品车:% A9 N& d# t9 o5 M* [: Z
尾翼:3 F. K/ V) V$ Q
+ A8 U: M/ b& ?, m8 z6 R( F8 g+ D/ w4 H
代码:
+ i3 K4 C% v1 }( i% O# yCWndAutoFood::CWndAutoFood()
. u1 d4 A z- A- H{3 c) l4 k* ^" l( N' H( ?2 J
m_pItemElem = NULL;
3 x/ ^; R, P/ u3 v) r2 u' g m_pTexture = NULL;
% E' K3 K; E2 ^, ~! w ` bStart = FALSE;
& C" }6 I6 B$ ]9 f4 D' l$ b& |4 W+ ?}
- S1 K/ q1 [4 b3 F& Q2 b5 H4 `& R, L
1 w+ O, c7 m3 G8 r, L& i, bCWndAutoFood::~CWndAutoFood()
; V) K7 c. K& S{3 w/ q' e M' R9 {9 @5 d C0 _
AfxMessageBox( "AutoFood ist gestorben " );
1 y5 l9 _; a$ M( w5 m}
5 C$ I3 L! b+ [$ T4 qBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
$ z; f4 X+ \! \1 w6 w{
9 X4 x: Y8 b2 M' z4 A+ b* Q" Y, y+ |3 E return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
: `4 B5 X* Y6 d* W* {( b$ y: H}2 B6 I' o# i+ y% u* X, f
9 ^, g; E9 @& H% o+ p
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ). X8 h% E. N( c$ q/ [8 n" U& h' L
{
* g0 N) O# h/ u( f1 t c LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ D, x7 l/ n/ H4 A$ o
CRect rect = pWndCtrl->rect;
2 Q) [+ o3 S w% S$ H if( rect && rect.PtInRect( point ) )
, o% b1 T) U$ e/ A0 t- D. Y) C {& K/ k5 S% d9 r) S$ G, y
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );7 X7 Q0 J2 b/ ~% v4 k
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )9 H' O( c1 t5 h0 e5 C
{
' v6 R# c+ V! I5 T if( m_pItemElem )
" N3 P5 A0 W' I- D {& ]1 Y' D& I" `& [: ^# }, v9 F
m_pItemElem = NULL;
# {* ]6 C! f, a( B: i W# T( Z3 r }% ~' W0 W( B3 M0 S4 R/ P4 T8 {
m_pItemElem = pItemElem;' n" K* J1 ~# h, u; d
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );$ z7 q5 r& w7 D z, q6 N
}else{
5 b# \+ m- T; |/ p( W SetForbid( TRUE );
/ J& v p6 t5 C; O5 J$ H! N }: |$ a* u" \+ ]
}else{0 P! |0 W6 a7 }+ I& q
SetForbid( TRUE );: G( ?) T& m+ L
}
5 t: c$ t9 ~' B6 R" f( x3 X" |! G$ Y return TRUE;
! i6 B) B9 _+ B) g0 n9 S2 S}
% Q1 i7 O' l8 l& c8 p3 B, w- E" Z9 C' ]4 e
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
- @9 C3 d3 m# i: Z' C{+ E% k, q ?# I; ~/ b
switch( nID )% _. c4 M( V! i0 ]% y+ K
{8 ^8 S" C" e6 k5 b
case WIDC_BUTTON3:
! v" i( d7 |( l0 T, U! t! f. L3 \& e {; j$ z, x' X3 D/ z: z
bStart = TRUE;' U& S4 K( @, z. j7 Q. x
break;
! v% \3 p, Q6 w2 b0 Y' C, x }% Z* ~: s: V0 t5 G4 l3 {
case WIDC_BUTTON4:9 J/ K- t! V. O8 N, Q' _
{
9 Q2 H V) T" {6 b bStart = FALSE;
$ j z% Z8 |; {" l6 Q5 d break;
r& t0 p4 `/ X" g9 P0 b3 Z }
. G, L: ^; Q' u4 W2 r2 w }# [1 w6 L' ~2 g! V! i5 S
return CWndNeuz::OnChildNotify( message, nID, pLResult );
! }8 `! I* G$ O( t2 i} 5 U) Q: ], _5 V' j
void CWndAutoFood::OnDraw( C2DRender* p2DRender ); M8 h+ h0 {; ~# z9 d N
{
+ ] l! ~* ^( K CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
x+ _1 i* o) q! Y4 P if( bStart || !m_pItemElem )3 Z6 Y, ]4 Q* N$ |" N6 J/ R
{
2 m1 `+ U! @" g1 c; { pBtn->EnableWindow( FALSE );
. [: h6 z9 R$ f5 q' S7 p }else z* q8 ]( O5 [, B
pBtn->EnableWindow( TRUE );
8 a! N2 @5 C6 \# F% ?! W$ Q4 C if( m_pTexture )
* K# z5 A: h5 ]0 x0 |& s: L {
( t+ o) x5 ^2 o: x LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );" B0 i4 q$ ]% U9 U+ ^' T ?" ~% j
if( wndCtrl && wndCtrl->rect )
\$ r6 s1 h) z% F {0 K G! V! E; Y7 {- y; R1 v
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
7 j" G' }0 ^" y$ X7 a; j' Y }
2 E; d9 H w* W8 z- r# [1 d% ? }
' f4 H5 M5 w# u+ S8 g* m' U}
7 g/ I9 z! x5 m0 `) S7 o
; R0 n8 X) v+ X0 ^BOOL CWndAutoFood: rocess()
! k5 s3 y* m- h6 t{* G# D# R3 J0 Z0 a
if( bStart ) K/ Y ~/ M% L* @$ D% M) u s( }
{6 n0 o- G2 B- W; q
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ); a2 Z) T1 u/ v w5 N
{
) g. s" b8 I! g4 m( H `+ 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() )4 p7 C. A: W! _8 t# Y; M
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& e1 X- I/ W+ R4 s* H! x
}else{: d* ^9 f! X! l. H# h- d
bStart = FALSE;
! S1 L1 u6 j: x/ j. C2 p m_pItemElem = NULL;/ R& L" B( Q3 J- f# t# L$ E
}
8 T9 S( u% _4 |+ {& k }1 H0 ^0 K9 u) r3 c2 s% p+ B
return TRUE;. T6 ]. j& I: b& e
}
6 A( r- k# V/ [ {
) o# n( R9 |" g' E# U. [; R1 f登录视频废话:
* J2 m9 c" C8 r r7 |尾翼:
# j/ B1 O2 A. V) l4 |, Z
5 @ n. N4 A7 C) n代码:2 |# p* e% c1 R+ E) i( r ~
5 E- Y& z9 x1 x+ d) }/ m
void CWorld::SetLight( BOOL bLight )2 M# M3 W5 z. l5 a2 K& Z
durch& }# f1 n; Z O
Code:( C2 h y' g4 R8 ~( x' H0 }3 b
void CWorld::SetLight( BOOL bLight )$ y! e- I. X8 a/ d5 b/ a
{
/ m4 t" b+ @, k) I; P9 X //ACE("SetLight %d \n", bLight);2 [ m1 _+ [ @
% D5 V6 i0 ?- t" B#ifndef __WORLDSERVER
" f! ~$ `. _% A/ R' g0 D0 l5 r7 _ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
& }( j9 Y4 z% }+ a CLight* pLight = NULL;3 ^" P; ~. [( f6 `. L k; u) A
" ^4 w) D$ {! j! E- N$ X D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );7 |, m. c# \9 @1 v
% C2 h+ l! {1 s pLight = GetLight( "direction" );
% L* w' ]) n: [3 R) t
! T2 P. s7 q' m, M#if __VER >= 15 // __BS_CHANGING_ENVIR
+ j9 \0 u3 \- s8 J: F if( g_pPlayer ){
, X: t7 V9 T2 Y) [1 g# I9 S ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );9 M6 @# K& j% R1 O
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
; I+ `0 k, d# b, f {
4 G& V, S: v1 J4 ]4 t5 K$ e: ` if( pLight )' Y3 y; D+ Z8 i% d& m. ^8 ~- z, d6 L
{
' ~. j" c) D" Q! \8 b% x& [# U7 P* \ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];5 X9 Z, C0 P% n5 A" e) [3 D( t
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
& h$ y2 J& [; Z pLight->Ambient.b = pInfo->_fAmbient[ 2 ];; |( U9 v* ?% N. s
0 Y" m' Y( \6 h# }2 {: e2 ]1 T4 e pLight->Specular.r = 2.0f;
# T5 i7 y! p: q! r" x9 h1 V pLight->Specular.g = 2.0f;
( R5 @5 T1 K1 B: U pLight->Specular.b = 2.0f;& u# S$ H9 e# c$ a2 K$ F
1 p/ |4 `* B: k% c+ t9 m pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
T4 x# @8 \, j& R& ]: m" i pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 F7 _1 }/ _. G9 \3 b. T$ @ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];4 v% z+ R+ M9 z/ _5 A
- Q; x1 b, u2 k% i5 X7 ~! a1 U# p
HookUpdateLight( pLight ); ! A, R2 d% ?# |- M# _+ u" P
% t) l- D5 e: k: G$ s memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 o, }; |0 X- y2 @ 8 G& N$ j+ t, R* ^3 r% x* Y5 i( M
pLight->Diffuse.r *= 1.2f;
& F/ w8 D9 r! Y& w6 |' p P. e! i pLight->Diffuse.g *= 1.2f;
0 f5 Q5 ~% O: r8 G3 A. } pLight->Diffuse.b *= 1.2f;% |# k6 d# l: E2 w# P
( Y' |; ]0 z, h pLight->Ambient.r *= 0.8f;
$ b% w3 r* U4 F! S+ C* r) N5 t pLight->Ambient.g *= 0.8f;$ x* G5 b& K+ u- j6 l& ]
pLight->Ambient.b *= 0.8f;
! Z* U9 ^5 V) D6 D! o
2 I" s5 Y! i1 v2 f! q memcpy( &m_light, pLight, sizeof( m_light ) );
: o5 Q/ [7 N) J. v* A" Z; f/ o- X8 d! z7 f) M, ]
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
- Y) c- |/ E& ?2 l& v: z, Z D3DXVec3Normalize(&(vecSun),&(vecSun));
4 Z$ d, [- T H I0 T7 z pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 5 q' ?/ j8 d8 s3 \; E, W4 ^
pLight->Appear( m_pd3dDevice, TRUE );
6 a5 [3 e# Q- `2 V
$ m) Q+ U0 D) w4 f DWORD dwR, dwG, dwB;
3 d+ J' g) A6 T6 z" L+ s) [ dwR = (DWORD)( pLight->Ambient.r * 255 );
* ]' t! y0 B9 \) M2 ] B% F dwG = (DWORD)( pLight->Ambient.g * 255 );
& t# q8 g% J8 y7 {0 p: |3 M dwB = (DWORD)( pLight->Ambient.b * 255 );
8 h6 I1 C$ d9 c$ S* i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) q4 v) Q. ^; q1 ?% f) q L }
! y+ ~& k- H/ w8 M9 H } ]7 p& Y3 s0 h/ _7 [
}
" d; {$ m" p" A else0 \# K4 u# s5 ]
#endif
% K5 [2 K2 M/ x! D7 \
) R3 `$ ]. N9 k9 P) k if( m_bIsIndoor )
0 Y, y9 e' n& U H- S4 F {
8 q P5 |& T% a2 ?( h if( pLight )8 p2 `% l' N5 h2 S* i
{
6 A ?5 E& Z% _! P9 D' i% P* i // à??μ oˉè*
: w5 `% u% m: z pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
. }, v. u7 O8 u7 G8 j! ~: B! a/ D pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
* T; H6 O4 W) \1 ~ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;6 x/ s0 O% \/ k& a( V" M( \
0 n+ b- T4 p: X; h O+ f+ t/ R
// oˉè* ??à? . E0 w% v. w* \% {
pLight->Specular.r = 1.0f; Y4 i" u* f3 r
pLight->Specular.g = 1.0f;! R8 e7 W1 T0 v
pLight->Specular.b = 1.0f;
8 n% h0 I. x1 o( X& \ // àü?? oˉè* / G4 Y) b3 w, }; h" g1 |- s
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;5 B# X/ U2 i* s7 L7 Y; H
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
% Q+ E. c' l* W" F pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
4 S1 ~5 t5 V! N# `: L6 ]2 h6 |4 a( {0 ^) X
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
( k" n7 l7 j0 C- \. W$ G {4 | d' J2 R1 [2 @) l, ]) _
pLight->Diffuse.r *= 0.6f;
1 [/ k- T% K5 p0 i+ s+ X6 w pLight->Diffuse.g *= 0.6f; X. z' ]6 Y/ ~$ T3 r
pLight->Diffuse.b *= 0.6f;; F j9 a6 x( o. Y A9 }3 O
pLight->Ambient.r *= 0.7f;2 V& A" c: i+ v% m# _8 _. d
pLight->Ambient.g *= 0.7f;! c! v R$ @# M$ E8 k9 X/ M
pLight->Ambient.b *= 0.7f;
& I0 E8 q+ M3 Y) ]! o, ] }# T6 F3 f! H9 v: l& S9 F/ }
1 C+ S ~( V: h, W( |
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 V9 I: u$ E1 S. F6 m if( g_pPlayer )
' v" n6 t8 g; _5 D4 P! N HookUpdateLight( pLight );
0 ?. L( b8 {4 H8 W! S) J#endif: ^6 z0 g6 J7 C( l) [
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! w' e) U8 d7 [* o8 \3 S4 G# \1 v! Q1 C% V9 g2 d4 k+ D% }) D
pLight->Diffuse.r += 0.1f;! ?1 p+ T3 @% B0 B0 k
pLight->Diffuse.g += 0.1f;
% q5 f1 `/ i3 {4 f& e pLight->Diffuse.b += 0.1f;
1 ]. V/ S& v: v ~9 J // oˉè* ??à? $ w5 m {& w1 p" ^0 W1 }& S
pLight->Specular.r = 2.0f;9 k- `+ y% B! i, x6 S$ G$ k
pLight->Specular.g = 2.0f;' d' a& J+ ~( s4 X: C# ]% V
pLight->Specular.b = 2.0f;
) W; }: v9 P& @9 O% o: G: J; H- F // á?oˉ
M! b. r: n: ?3 d4 ]/ i pLight->Ambient.r *= 0.9f;
: `) x+ w8 h4 r2 |$ [' ^ pLight->Ambient.g *= 0.9f;
- G7 |6 B4 k: g, d1 e pLight->Ambient.b *= 0.9f;3 g, f% M& K. n4 I$ _
& L" k1 u( ~. ~8 q( f memcpy( &m_light, pLight, sizeof( m_light ) );' l, x1 {: v# p2 f
' h2 J7 N9 ]; r+ t8 {& \( D
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );# v( `3 i' y# o" I
pLight->Appear( m_pd3dDevice, TRUE );
F+ u/ I5 y' W- Y4 \5 V/ J . m+ E! j: y" M& U# \0 f8 ~
DWORD dwR, dwG, dwB;
: |# }% _ [) ^! i/ b& j/ _( p* i; [ dwR = (DWORD)( pLight->Ambient.r * 255 );
7 ~+ W* `7 a' t3 b( j dwG = (DWORD)( pLight->Ambient.g * 255 );$ ]5 Q! }; Z' E- Z5 N8 i- L! O5 Z
dwB = (DWORD)( pLight->Ambient.b * 255 );$ F3 w( _( g3 _( l; U, e t
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& ]+ E f% h: @ }
6 \" o% d& U% z) k2 d }* c7 [( _0 ]- u7 V* G1 F
else6 m4 v. I, V1 n1 o2 Z0 g
{
2 l5 x; I4 O% d4 M- C: h( p if( pLight )
1 \4 D* k0 [' m8 |* S' \0 t! Y {
: Q) c9 @% U4 g* M: W3 Y+ ? * g- } }, q1 E; }' H5 A! @
int nHour = 8, nMin = 0;
$ U+ H, A1 ]* r- r# G$ Z #ifdef __CLIENT$ j0 X/ z( J/ E1 j; N/ R
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 0 }, f7 J3 |% A3 ~
nHour = g_GameTimer.m_nHour;
. d$ h% J' G5 ~- H4 a) k9 m nMin = g_GameTimer.m_nMin ;
+ ^$ [! Q4 h4 j y j4 j2 g4 t; O #else
& z, i P" q3 a2 P/ g2 @ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
6 t9 J/ i5 D# Q) U8 V7 A if( m_nLightType == 1 )5 D0 G8 x+ y1 E! R5 o$ ^
nHour = m_nLightHour;- ^1 z% G G& o! o0 ~2 J
#endif2 f5 e: }/ Q8 Z1 Y1 \( |
nHour--;
, G" n9 f* Z, E$ u: z if( nHour < 0 ) nHour = 0;! D. W. N8 t9 O- E, s i& X2 d
if( nHour > 23 ) nHour = 23;$ F; P2 h) u) ~+ Q' ?, r9 p3 ~/ p
/ n& e* _: G; N+ S) d //if( m_bFixedHour ); T2 X% c, q3 u) Q. ^# y0 w
// nHour = m_nFixedHour, nMin = 0;
* ]) x3 Y, G) n d: h( y3 S LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];5 E% v& t4 D2 q. O3 A
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
; o& h: L' E: w; ^/ u/ d1 ?' J) U4 T; q; d, G
//m_lightColor = lightColorPrv;
1 v( [3 U b. o$ ? lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
6 @: a3 x+ k. v j: ^' p lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;& u1 m" F4 M1 U
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' _) v% w& d$ a6 r7 J
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;' f) U1 J5 l: j- L
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;1 E/ Q( u+ g4 P; _+ m- O0 }/ _
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;7 O) Y* e$ d- i- V0 F1 V" T/ W
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
0 {- q( B* M, @3 I' @5 q4 u2 x2 y# X' X! z1 Q4 b' Z
// à??μ oˉè*
' s. ?! i3 d$ U0 I" l pLight->Diffuse.r = lightColorPrv.r1;* A" ? n4 w( w- o7 f) f5 N4 ?4 b
pLight->Diffuse.g = lightColorPrv.g1;6 T/ R" H! L& A+ u# r, d
pLight->Diffuse.b = lightColorPrv.b1;
9 F+ ^+ c7 G/ V' F // oˉè* ??à? : S3 U8 I F1 K7 H4 ^/ k
pLight->Specular.r = 1.0f;
6 T1 Q0 G B* ` pLight->Specular.g = 1.0f;
5 d% x8 _ u# Q% ]+ \( q pLight->Specular.b = 1.0f;' E# {' X7 K" e7 @' x: R* }
// àü?? oˉè* 1 m$ M) g4 O4 \9 m
pLight->Ambient.r = lightColorPrv.r2;- @% G9 j* c3 A3 e9 @
pLight->Ambient.g = lightColorPrv.g2;! O c1 c' _7 S: `! K
pLight->Ambient.b = lightColorPrv.b2;! H, K$ l4 \' S5 q3 u3 V
) |$ I9 {" I. P$ j* D9 V
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 L$ [7 y9 }4 V. l8 c" g2 R% B
{
- a) ~4 G$ I3 Y9 ?* I: D pLight->Diffuse.r *= 0.6f;
: k+ o# m; ]6 X, m pLight->Diffuse.g *= 0.6f;
1 j7 z9 n7 }7 o i- C2 v8 S5 _7 g pLight->Diffuse.b *= 0.6f;
8 p# \4 K' q5 j pLight->Ambient.r *= 0.7f;2 e, H7 o6 t' y$ N9 K
pLight->Ambient.g *= 0.7f;6 b2 o5 X, {' k% w
pLight->Ambient.b *= 0.7f;
' C; H( T1 k( e. x0 N r/ z4 p# V7 ? }
4 ]7 m4 u5 q% r7 a- b* D# K
* e* M: z9 t2 I% Y3 c+ z4 L#if __VER >= 15 // __BS_CHANGING_ENVIR
: L" m$ m( B+ Z8 G! l if( g_pPlayer )
4 H, H0 }; q1 l6 G9 o HookUpdateLight( pLight );
, P( W0 K' B' i#endif% w @" T* P. d, C0 A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! N5 m$ p/ m1 y
9 W0 |: S+ Q A* a' i0 Q
#ifdef __YENV
* @) m7 `3 |1 V! q1 @ pLight->Diffuse.r *= 1.1f;
J8 j) @, x% Y) n" V pLight->Diffuse.g *= 1.1f;% a$ }' _' z8 \/ ?2 x1 O' [
pLight->Diffuse.b *= 1.1f;
% w/ N1 L. y0 u // oˉè* ??à?
( j& n# j' C4 X* |/ l9 f( Q pLight->Specular.r = 2.0f;
. Q& i/ w& s- O$ I pLight->Specular.g = 2.0f;
% L8 o c; n/ s2 n5 w pLight->Specular.b = 2.0f;
& T# Z# w D1 v( h! K // á?oˉ
6 a6 e' [5 N" a- ] pLight->Ambient.r *= 1.0f;
! w% K0 k8 ^) C* }1 z4 o pLight->Ambient.g *= 1.0f;
" x/ K1 B' ? S" ^0 f pLight->Ambient.b *= 1.0f;) i( b6 t% \8 t" V: X, ?
#else //__YENV
1 X8 T# P" k) |' l, I$ X5 H pLight->Diffuse.r *= 1.1f;3 m3 ^- s( p- q8 _) e' W
pLight->Diffuse.g *= 1.1f;0 D/ H% i9 D5 p/ n# {/ h) V$ O
pLight->Diffuse.b *= 1.1f;
' ]6 `& @7 O! W // oˉè* ??à?
\4 Z* h H T, }, P pLight->Specular.r = 2.0f;: ]# ]5 G- F& C* G6 A% }- [
pLight->Specular.g = 2.0f;
8 y# M; _8 _0 F+ ~ pLight->Specular.b = 2.0f;
7 `* a$ c/ o" Q3 @ \$ { // á?oˉ
& x& k* V4 e6 v1 ]* L7 _ pLight->Ambient.r *= 0.9f;/ m4 m+ s, V& @) |1 X
pLight->Ambient.g *= 0.9f;
C4 M1 b4 ^8 G5 v2 } pLight->Ambient.b *= 0.9f;
3 [" ]/ V8 ] V0 m/ j% |, \/ d! i" ?#endif //__YENV * d& r- L5 D8 t, F. [2 l
! j9 p s) L T/ d7 z9 c
memcpy( &m_light, pLight, sizeof( m_light ) );7 k( C0 e$ s% n+ \0 i
3 u4 x& c6 @6 k) c- e8 k7 P D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 k, v% t9 _# a5 Z
D3DXMATRIX matTemp;
+ p* r% `) a, z% c. \ static const float CONS_VAL = 3.1415926f / 180.f;1 k1 W- k, H- M9 W+ b1 R8 D
: H0 [: E# g2 ~
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);2 K, h/ A+ M$ E, v/ ^0 q
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
8 e2 P* H" S1 U* z pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
2 R+ Q ]* ~9 |- E8 ] pLight->Appear( m_pd3dDevice, TRUE );
* [7 @6 C) E' W4 O, \2 a+ H" x4 S7 y& M0 |6 a
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
" e, I3 h0 Y: u7 O# {2 }) O% p // D3DXVec3Normalize(&(vecSun),&(vecSun));
9 ~" J" R2 U& H/ t( o( q1 a, M7 i7 Z // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ K4 G( X* @7 i% h D, l' u
: n% w' R. g# S6 P7 p8 o+ A; r/ r DWORD dwR, dwG, dwB;! `" w( x5 a# a# Q
dwR = (DWORD)( pLight->Ambient.r * 255 );
) J) G; R7 z& C# ^" y. O dwG = (DWORD)( pLight->Ambient.g * 255 );0 x) L! h5 f" a6 I# [$ B% Q/ t
dwB = (DWORD)( pLight->Ambient.b * 255 );
1 b0 S$ g" U. h }7 ] q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) q& W" L B8 g( K; [( N. f- d }: a4 l) |& x8 E) R" }
}/ a7 K# [% w. |% O1 @% G
' }7 l8 E( Y' Q/ P4 t
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );; i C0 z# w. H' |" z5 `3 ^8 Y
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) );4 {/ L* w7 h J F3 f$ V! i
::SetLight( bLight );5 E6 D1 ~: S) b% ]; `
; m, U) [1 Z9 W \ // ±ao? ?D?í???ó á¤à?
. O7 c+ i! n4 \! s m_pd3dDevice->SetMaterial( &m_baseMaterial );
, z& m O2 B4 F* J0 ], q, L4 k2 q
2 B. K' X5 b; f" o#endif // not WORLDSERVER
( u; d0 M' R! Q( ]0 e" v}
- r3 f9 P f0 m# a8 t- P& p) j并更换
0 @& E9 J3 O( u0 dCode:
4 |: o9 e+ D! n$ @2 h" S__FLYFF_INITPAGE_EXT l. X" U( n5 i3 O u# }. M
定义& |% t% M; F% L
3 O' w2 V& X5 G; a* H: b
/ c+ g2 J2 k+ ^6 K
1 Q% x7 r4 O) t4 ~' C) h) Q' ]8 b9 n/ x$ K4 L# B
现在终于删除我的狗屁加速...
m( H: ^, @. C1 _/ f+ `' I& e/ u! N6 y# b+ M+ D
/ k9 i, B1 r. k+ }2 n7 g' N
6 z: f2 `( C. M6 Z/ P |
|