|
|
食品车:" _9 x9 }- C4 K c$ J/ {' F' ]
尾翼:- M" B" a7 N3 x2 a/ q9 V& O
3 M- e) J2 t4 s& y8 S) g" f代码:
, z* Y% l+ n( t. UCWndAutoFood::CWndAutoFood()
; o N# V* O b2 a( C% @0 m, Z{
9 f* V% s7 f. o# B( j: ?9 ~ m_pItemElem = NULL;$ p( `" y) a6 u( S7 Y% L* G7 ^
m_pTexture = NULL;) R6 O1 K5 r: y+ f* l' M
bStart = FALSE;; i/ `9 h# k. J, t# z1 u0 L; N
}
& N; A% Q1 y I* S0 p6 e" S
, l6 k$ F- F& H. O3 ZCWndAutoFood::~CWndAutoFood()( J% \2 }* G$ F
{
3 ^- C4 u* d! `0 e% ]5 O x! T# o8 } AfxMessageBox( "AutoFood ist gestorben " );
7 n2 Q3 C- [, m}, x6 R% G# S# y6 q4 f! S9 h% Y# W$ H! ^
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )! v3 B- m- H# y
{
3 W0 ?5 ~0 F2 L+ \. ~; l1 W return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );7 X' I# n7 m" V3 W1 b% O4 U
}, F, K+ m) D* }9 o
Q2 m9 ~& u" `BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ): p+ r! d* j- c
{
1 X; c% B- e% P: l7 s LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
+ p! @% S8 C* r' m) f% F3 r3 y CRect rect = pWndCtrl->rect;% h' z5 Z+ o0 G) G& \) ?2 n
if( rect && rect.PtInRect( point ) )
' j7 _+ T* k* h2 _8 m9 `* U {9 r, p8 R S+ u% k. d4 E$ Y3 m2 X
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
! R8 `+ M, k" ]9 v8 G, \* @ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
3 P, i( M- x9 c1 \ U6 l: J4 a {" J( E! n; p4 e7 E$ d
if( m_pItemElem )3 W: K- @* y5 T2 Y' ]
{- o- |4 y7 [. O7 z! ]5 L5 k
m_pItemElem = NULL;0 }* P" F6 ?. X) F1 n
}+ j6 `9 i; T8 i. a
m_pItemElem = pItemElem;
u- J# U z9 G' [+ r" t m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );' x3 w- s# d; g( a* S ]
}else{
) ?( G ^; T+ T* z. @7 A SetForbid( TRUE );! R j9 ~# ~3 F
}% g: e! ~* @/ W: `
}else{
# L! h2 L" k) z/ S SetForbid( TRUE );2 j( ^9 s9 l' r7 O6 D' L
}* |! f# z) j( b/ K( B: T! c7 V
return TRUE;' u; L+ I- f- B* N$ L
}
5 D8 m2 T5 J! R% z% Z I3 u7 i* Y' d6 g
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 d: Z/ F( p! Z- L3 {
{
6 s% Q) \" I8 _. O# I switch( nID )
& t0 v/ f; o7 U& c1 M" |: C {
" x" Z1 Q- s% R/ c4 t' o u; U case WIDC_BUTTON3:" r8 z- J. |! p- Q
{$ I( D' x* z9 O1 \9 s$ w
bStart = TRUE;
. I1 M: m- ^3 p# o/ Q; F break;
; M, J8 [2 w- k; W }
* J9 \3 z# k* x0 c7 M case WIDC_BUTTON4:
: _ L! w" H* D. L1 V3 ^) I {
/ ? [$ a9 \: ?0 ?: P+ J6 R bStart = FALSE;5 `" u: h9 r, e: v7 E
break;
- K& r7 J, q% \2 e8 m% n% b }' X( D; s$ {; q4 r) y2 M3 V
}1 ^$ ^( k- W3 z& B' r; ?" L l2 i l
return CWndNeuz::OnChildNotify( message, nID, pLResult );
j! _7 p# T. X8 L} : p4 L9 r$ _" ^' A0 e+ J9 a C
void CWndAutoFood::OnDraw( C2DRender* p2DRender )1 F0 X" I! N' J: n7 _
{
* X6 ?: G; t% o. H! l CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
( L( E4 g0 q( _+ G% w7 j if( bStart || !m_pItemElem )
4 G9 m7 v: ]% a. e {# J1 Z# U. u- u8 U7 @( g. |
pBtn->EnableWindow( FALSE );
- `2 q. W! Q7 b# q }else
3 N- f4 p! u! W) D" m pBtn->EnableWindow( TRUE );
$ h9 M9 z& _2 U- |$ b; n5 B if( m_pTexture )
; H n) Q$ T- E. G! D D {
9 n2 {0 r% P- n) m LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );5 Q ]! S0 l8 x* Y4 Y0 y T a
if( wndCtrl && wndCtrl->rect )
x+ r5 n$ W# d9 T E8 E7 U: d! E {
; Z) j! p( u2 g/ e- h) E6 q m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );( ^8 h( D( q1 A
}( r( H# R2 b7 y
}; G3 N: n/ N+ \) r6 B
}
! ^' i! _9 x2 B$ @
! |# K1 R" ^4 r1 bBOOL CWndAutoFood: rocess(). C' H. n" l9 W- o! N
{
3 c3 `3 X- i4 N, ` if( bStart )
, g# J2 N, K x* y( a: j& b/ [ {
* @1 A5 A" R/ s/ N if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
0 G6 ^4 L1 T8 M0 G1 N {2 y" Q) H; t4 J* ~8 L2 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() )
8 ~! i! v: r: Y. W2 P5 \: J x g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );' r) r( i9 |6 z
}else{
0 K# h! J' v, h, B( m* i bStart = FALSE;* Z! U4 N/ w% B9 l! ~' P, p: f' Z
m_pItemElem = NULL;, H: N, q9 i# G$ f" G8 P0 Z$ d: c
}" x1 d l* P+ t! M% [3 H6 e$ @
}9 d' Z: R( s! j! [, W* N% O
return TRUE;" O4 [9 h; z7 A
}
' Q" ]6 E# q" o4 k) P1 O+ n- \: c; X q
登录视频废话:
: d" h/ L+ a. T: I% Q; r; J$ @尾翼:
7 H J1 j# l7 z c+ ]
; p/ Q- n$ Q% H4 @* S* ^) x代码:! t- G2 A0 B; ` f, \+ T( D
1 |- R; `# H) y' U* `8 S: H' lvoid CWorld::SetLight( BOOL bLight )8 V- v8 x, G% [* S9 t7 w. z0 F8 y
durch
2 z3 y. h! `7 m& D, I/ |; j/ g: UCode:! I L: [; A, d! @( f
void CWorld::SetLight( BOOL bLight )/ T/ B1 g( f5 d) p, x
{) L6 H. ]1 X" B
//ACE("SetLight %d \n", bLight);
( `% z: X4 [- w, A
/ y9 Q3 N, A: k9 s/ w J#ifndef __WORLDSERVER
2 ^! b9 E, g2 d( T) f. p, N R8 T DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);" @$ K$ R# c) a. T! r
CLight* pLight = NULL;
4 t. E# k$ q' z3 `% Y
7 H6 {+ I* o1 P l D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
. l; b( r1 b" R) k+ D
: O+ T9 ~8 N0 K4 F J' L pLight = GetLight( "direction" );
( _( U+ j+ t: y0 Z: q6 r0 q' E7 T
. _$ k( A3 W! }! z' P# T, c4 ]#if __VER >= 15 // __BS_CHANGING_ENVIR, I8 Q# M6 _( x/ U
if( g_pPlayer ){3 @8 {7 N d. p* y- [
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
# f9 W" z, q5 \' d2 ~1 q if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!* u6 E b0 o/ s+ _1 k! {
{" \, _ M ^' T! [" ?4 y: a2 h
if( pLight )* K+ i# U. R! }3 z3 ^
{1 `) |) r5 K8 v2 v
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];+ |9 Z3 w, {( h9 z" @
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
- J- e1 F1 j1 E3 f0 Q pLight->Ambient.b = pInfo->_fAmbient[ 2 ];; l) z- d1 o7 f/ a. w& t' a
% u$ e; \6 a/ ]* L, O6 c3 K, ]7 @
pLight->Specular.r = 2.0f;
" _ X6 p# o6 C p* k pLight->Specular.g = 2.0f;" _6 v" J, N* a4 k! O
pLight->Specular.b = 2.0f;
K3 J9 M4 Z+ C3 Q9 F% z7 D# D 2 F9 t) i, p% o) \
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];8 K1 N' Y4 G4 H- O; E
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
# T3 V5 Q. c' L2 C+ r. O0 A pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
8 g5 b( J% O" W7 C5 c$ s
0 t/ b) Z% m1 R) L5 @ HookUpdateLight( pLight );
u8 @/ e x) x2 R+ G* d+ z7 P# b9 ?7 |. c5 M, S0 J
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# ~- B O; s2 D) J" j8 B
* d# P, b8 l F$ x. t- r pLight->Diffuse.r *= 1.2f;
3 q# o/ Y( J: @; W1 K8 P2 o* W; M pLight->Diffuse.g *= 1.2f;4 F# i5 S" T' `
pLight->Diffuse.b *= 1.2f;! K8 M$ F+ |* a: B- n- n
; d" [$ |# ]( I$ n pLight->Ambient.r *= 0.8f;
( X8 `! L3 `* |% d6 l+ e pLight->Ambient.g *= 0.8f;+ V* Z1 Z$ X1 [. W7 C
pLight->Ambient.b *= 0.8f;
- t% w; B- |* Y9 M2 V ( W% Y0 u% E1 b
memcpy( &m_light, pLight, sizeof( m_light ) );
. W% u, m" ~! S1 I* D+ a
/ v, a. ?. s# Z9 \1 c7 F) h D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);5 c5 O, ?, Q# H* r- |+ V
D3DXVec3Normalize(&(vecSun),&(vecSun));! F6 H6 f w2 P g% Z. P" K7 y
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; D* U3 |* \ O# R0 ` x. j
pLight->Appear( m_pd3dDevice, TRUE );
3 l2 q" X1 c6 l, M' |6 k 8 B" ?$ N8 o* v) L, A# a9 v2 f
DWORD dwR, dwG, dwB;9 Z8 T/ [: E5 V% S- P5 C+ ?
dwR = (DWORD)( pLight->Ambient.r * 255 );
. H$ ^+ [; {" \1 a4 q; q dwG = (DWORD)( pLight->Ambient.g * 255 );9 [7 x# Z! n- Q1 A: Q
dwB = (DWORD)( pLight->Ambient.b * 255 );
- m( w, ?: }9 ~4 I6 G dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( K; C0 ?# ^+ H, c$ N' s }
6 J) Y1 g8 K/ \ }, B! l9 L/ d. Y" C0 M$ {' K
}
! r! Q; p0 f b7 C$ H5 g8 y7 u0 k; s3 D else
/ J( s9 L2 n& l# B0 X, l6 D#endif
+ j( a7 S5 U3 e4 `2 i: M, `: X8 d
( a/ T/ Z7 Y( U6 C8 f, C if( m_bIsIndoor )( C$ j4 G% X- F. D
{
) j' c3 D) _+ S& o, { if( pLight )
, w6 l* E# E- ?: Z% f { # W5 ]3 F9 L" d, ^
// à??μ oˉè* : t, D! y m; \7 D
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
4 P T( b( o. E7 M pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;2 m2 U. R3 W A$ t2 p, c
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;- h: `: y% U; i
% P V8 l p; w3 G // oˉè* ??à? 1 N+ A& j4 H5 V3 Q6 y7 K
pLight->Specular.r = 1.0f;
) R0 H6 }' K9 o2 q! g pLight->Specular.g = 1.0f;
+ x* W) J; E: F. `* B pLight->Specular.b = 1.0f;1 E7 }2 B, z* u% d( u+ J+ ?
// àü?? oˉè*
+ |; H8 N% E. |5 t( J: W% S pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
! E- g# g0 Z k2 K2 ^ pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;. M- k* u- A! d" s) O; j
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;: t: F* w2 J' k- J
& }) t0 N6 J4 J! q/ r' U8 f5 D if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 s: {# u* U5 ?# _# l
{
( ~" }. Z& t. P8 f5 y, ?; w4 d9 u pLight->Diffuse.r *= 0.6f;
; e* w- G# ~0 t# T pLight->Diffuse.g *= 0.6f;! h% B. {8 E! O
pLight->Diffuse.b *= 0.6f;0 x9 w" U% [1 [/ h$ R# |
pLight->Ambient.r *= 0.7f;
" s& f. w# G" K0 a, s, t7 R- P( V pLight->Ambient.g *= 0.7f;
; r [ M6 Z9 \& P" b C9 N pLight->Ambient.b *= 0.7f;2 M" D* L& u# z' {; `2 i
}+ [) m8 N, I* e* ~" s
: {! E8 S% a+ ^' o
#if __VER >= 15 // __BS_CHANGING_ENVIR
: H6 I3 G# Q, X& E& } if( g_pPlayer )6 t/ P9 `% z* v6 |
HookUpdateLight( pLight );
4 ^, A1 A8 X& V# |8 W2 f#endif
% q1 q. W' ^2 h memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 s8 G# s( Q' S* d0 v$ L" B
- p9 N( V1 [7 G5 h, d3 v6 H pLight->Diffuse.r += 0.1f;
+ C5 k: Q; C6 c pLight->Diffuse.g += 0.1f;
0 K9 ^- E2 h$ g- ? p8 f* p, g& x0 ^3 A pLight->Diffuse.b += 0.1f;
o/ z3 o; k$ d // oˉè* ??à? + V. D/ h1 e% i! i$ o7 F9 _
pLight->Specular.r = 2.0f;1 {7 c/ S0 Z0 B* q R
pLight->Specular.g = 2.0f;& k: k- a* B. z$ n. @1 i; y0 v
pLight->Specular.b = 2.0f;0 q: l' m& B% E0 w7 ~) L. u
// á?oˉ 5 p' B Z/ C: F9 M/ I
pLight->Ambient.r *= 0.9f;
5 W# S8 y% [9 s pLight->Ambient.g *= 0.9f;
' O I7 E% c3 }6 z: s pLight->Ambient.b *= 0.9f;
' y4 u9 g5 b- B: k; A3 x; L/ p% R0 P3 z2 u; C8 M6 S$ W- U# K8 T3 w
memcpy( &m_light, pLight, sizeof( m_light ) );+ Z2 @% v5 K( [ ^
2 z2 [0 X, U1 p! H0 m pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
3 ~# U7 u1 r% e6 \! X pLight->Appear( m_pd3dDevice, TRUE );- H$ _ ?% E* R8 _0 K
- e* Y% ~8 h: F; m
DWORD dwR, dwG, dwB;
0 a1 q& U5 V: ]( ^ dwR = (DWORD)( pLight->Ambient.r * 255 );
: U3 |- `) x# h# k# Q, O dwG = (DWORD)( pLight->Ambient.g * 255 );
0 T$ r9 [ Y$ T5 b" w. |7 C( s dwB = (DWORD)( pLight->Ambient.b * 255 ); P% p! C& T, B) `2 u& |' ?
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ a; j# P; n2 ]& W- }* h
}! |7 T8 @, I" F! I
}: \# r" e% V* T3 t- q% t1 b z4 X- @
else! d6 S2 ?7 Y, D1 [7 F
{+ \2 \( A7 i0 S. s
if( pLight )2 ?+ a1 t! C: k9 H0 j
{
' a' R. }& M9 A9 {" b
7 k' H! ^4 u, U4 T int nHour = 8, nMin = 0;3 T9 ~4 |1 e: z0 S& P% Z
#ifdef __CLIENT4 Y- r4 D$ h: r' X% b% ^6 k" w0 C& [
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
A" D. x1 `" c8 i/ `$ M. F, z nHour = g_GameTimer.m_nHour;7 X0 p# u+ b2 j, y9 ^; S" y
nMin = g_GameTimer.m_nMin ;
7 n! P* v x" r6 I/ X# p0 {( x #else- B- l6 a) Y* |- V( e
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.% C9 r7 d. {# V$ `% \
if( m_nLightType == 1 )6 H3 w5 y" F6 {4 W" |) i3 t
nHour = m_nLightHour;
! }9 y: O; ~! H" t k' P5 b #endif
- I1 z3 b( ~' W! Y7 N! e nHour--;0 S9 ?4 d4 W y0 f% N
if( nHour < 0 ) nHour = 0;4 o1 U* k* Q' V+ k: p3 S: v0 Z
if( nHour > 23 ) nHour = 23;: m+ y/ }6 a, B8 _8 _
7 W2 n) E; c% m; ~; w6 e9 G" e
//if( m_bFixedHour )
% n5 d: N7 q! G) q // nHour = m_nFixedHour, nMin = 0;" ?) b, k9 q6 L5 w
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
- Q6 T d4 V' e) {6 q LIGHTCOLOR lightColor = m_k24Light[ nHour ];
9 n% o" N0 I! Y# k- ?# S4 T) E
) O1 M( M. V6 g7 h //m_lightColor = lightColorPrv;
C; z& J w; P) q. g9 }# h9 Y. v lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;8 z9 |$ f4 m# z ?' l- e
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;# q* K: n [* R) ^! t
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
" }# H A7 X5 G5 k& ? lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
* D, `! q) r+ {0 ?1 P, L lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
9 k0 Q* p9 g8 {6 U0 } lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
7 i) X1 s: T; G1 u9 J/ a // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
# I2 O' e& F c. h( V- L: N! |4 v0 y5 ^% ^
// à??μ oˉè*
" ]$ [5 M* g9 o( d" O9 f pLight->Diffuse.r = lightColorPrv.r1;. Z, z9 z4 U4 P
pLight->Diffuse.g = lightColorPrv.g1;
1 O* p5 A) u/ q4 y$ G pLight->Diffuse.b = lightColorPrv.b1;# Y% r3 r8 R$ @$ E8 e h7 f
// oˉè* ??à? {% u3 j9 v4 o0 |' E) b
pLight->Specular.r = 1.0f;9 @: P C5 N: ?6 w7 |% t2 a
pLight->Specular.g = 1.0f;. X/ _) f9 M" q* h2 U* A. ^
pLight->Specular.b = 1.0f;' |" O" c- J" G/ m8 x0 M
// àü?? oˉè*
) P, b! h+ O. ~8 V$ n; H- z3 e pLight->Ambient.r = lightColorPrv.r2;
7 q4 k9 o$ G. }8 R/ Y- o pLight->Ambient.g = lightColorPrv.g2;
3 ^# w& D1 S0 V) W8 k% M: q+ M' T pLight->Ambient.b = lightColorPrv.b2;6 _; v4 A. Y5 M) U% K+ c. u
& E9 I9 I' i# P if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
' t" k+ F& C0 ?' k# J6 p# a% Z {
0 o# S4 A: N5 b1 n2 M pLight->Diffuse.r *= 0.6f;
- V) ?. \+ l$ d( f9 T pLight->Diffuse.g *= 0.6f;
/ p! ]- E1 o+ }6 z" f pLight->Diffuse.b *= 0.6f;3 z' b* P+ E- y; W/ I
pLight->Ambient.r *= 0.7f;4 _% I7 C; w4 t" h; Z- ~7 t
pLight->Ambient.g *= 0.7f;6 W! A" S9 H0 D* R
pLight->Ambient.b *= 0.7f;+ r3 Y! n% ?9 _3 M) o! Z
}6 g4 Y2 X) z2 T5 ~+ O6 ^
, H9 B2 d3 l8 Z. A2 C4 u. @# o* ?4 A#if __VER >= 15 // __BS_CHANGING_ENVIR% t4 Y3 E3 ]6 U; U+ }) X3 b8 B! o
if( g_pPlayer ); g1 X H' e7 D' T, | b
HookUpdateLight( pLight ); % i; p* o: g; ^) W
#endif# g0 M7 s% [* @/ f! L L$ I& |6 d
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 h) g$ J c' U$ i" x7 o: h3 }
4 L7 |% f2 a& y0 I5 E
#ifdef __YENV; a; R& s, Y5 v3 m& E
pLight->Diffuse.r *= 1.1f;
0 s1 A7 Q, ]" H$ Q! W( C pLight->Diffuse.g *= 1.1f;1 h: Y- A- d' W+ H9 r& g
pLight->Diffuse.b *= 1.1f;" ?7 t: j) t2 j9 e9 x# C
// oˉè* ??à? 9 E1 a& a( J9 ^4 u6 a
pLight->Specular.r = 2.0f;
+ h+ V+ C% D* v; F9 a( k( y/ K pLight->Specular.g = 2.0f;
0 M) ]+ D+ ^2 X7 |: I pLight->Specular.b = 2.0f;) [% E6 @( Q+ |
// á?oˉ 1 H+ F' \) C! h. v2 v
pLight->Ambient.r *= 1.0f;
$ C4 F) Z& T! J* C pLight->Ambient.g *= 1.0f;
4 w- ]. U6 x' I4 D7 k& r pLight->Ambient.b *= 1.0f;$ q, J! x9 H+ j, G( ^
#else //__YENV) X7 }; \% ~- I3 }/ e+ R% [+ M
pLight->Diffuse.r *= 1.1f;
7 E/ G4 O- g. ~- O, g! f# k l6 ` pLight->Diffuse.g *= 1.1f;/ c4 f. Q6 @- i7 v) g5 a+ ]: E+ ~
pLight->Diffuse.b *= 1.1f;0 p* l: `' T" q4 g4 Y0 P% R
// oˉè* ??à?
7 V: F( [6 G/ p9 |& Y pLight->Specular.r = 2.0f;
$ m. G! _3 Y6 x: I5 d pLight->Specular.g = 2.0f;# X+ N9 E# T2 [, o" X5 \
pLight->Specular.b = 2.0f;
/ g& \& H) A/ }( w& X: k // á?oˉ
( W% E) w) b/ z. H' } pLight->Ambient.r *= 0.9f;
" f- z0 Z y2 v$ L4 n# v+ }( M pLight->Ambient.g *= 0.9f;. N# b6 {' p% j+ h' Z2 z4 T3 t7 [
pLight->Ambient.b *= 0.9f;
( ^6 Y& e: ^& P6 X3 j+ a( E9 P% @- [#endif //__YENV
+ `5 O3 a+ q, O, R1 ]. { + p# F- V+ V u1 W3 c" G0 i
memcpy( &m_light, pLight, sizeof( m_light ) );
- {, c. n8 _) ^, E$ x2 O5 W
" D3 H+ j* G5 ?% S2 I* l D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);# d: G D8 J6 e2 h( S
D3DXMATRIX matTemp;
3 w) {6 |- S) { static const float CONS_VAL = 3.1415926f / 180.f;
& T) j5 ?$ r+ l H# r( w. [/ h
+ H( f- a; w& m- }* X3 \5 \6 t( i D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);; |, J; ?3 v* }, q+ ^2 W/ k+ B
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
+ d& b3 {9 }! N- k pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
) Y* r, f/ C9 f6 I( T5 |; J pLight->Appear( m_pd3dDevice, TRUE ); b0 `# y" K* A" k: @
, X3 Z5 g0 N& u3 F! {3 S* Y1 G# W( P+ G // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);5 P7 l# |/ n# w# Q9 \' N% P+ {: S3 Y
// D3DXVec3Normalize(&(vecSun),&(vecSun));7 ^( Z) G: S: m
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / P C1 f6 U6 N! p/ n3 {$ g
8 |) B, ?( F; q" }$ ~
DWORD dwR, dwG, dwB;! W% P6 ^5 Q7 H9 |
dwR = (DWORD)( pLight->Ambient.r * 255 );2 ?( L1 F7 p0 d3 R- j, m% `
dwG = (DWORD)( pLight->Ambient.g * 255 );
3 q/ i; }5 o) n* \6 d dwB = (DWORD)( pLight->Ambient.b * 255 );
# D* A2 y! o4 u5 M* B+ ` dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, w% ]& T0 H0 E6 O4 J }
; J0 j8 p# G/ U8 P }5 H! F. k& X- O/ T- d
: j# S3 v L# \+ h
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
$ A5 |/ s) x" M# Z' [) ~4 ~1 @: C' ` 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) );
3 j" L6 b- D! T# x9 O- q ::SetLight( bLight );/ F% L. W! E9 v+ [. N
! x1 S/ Y+ \9 O* [ ]( b4 ^
// ±ao? ?D?í???ó á¤à?
) c9 L& j5 ~8 v+ q) H0 @/ g m_pd3dDevice->SetMaterial( &m_baseMaterial );
1 W3 A7 n, T0 _$ P' T 5 [, \" r$ v7 n) x; \
#endif // not WORLDSERVER: ~+ w1 R, K2 c% D) o& T
}* p+ P7 e, m) u5 H! L; t R
并更换
' p+ x$ ?+ M: b4 B) g1 G1 }Code:4 j* u( t3 A) _# ~
__FLYFF_INITPAGE_EXT/ G) a. s8 r' z$ T( g
定义
+ i8 Y: v5 Q& s) B# j7 |
$ o0 U- N2 q6 X7 }- d! U7 E- P
3 S* Q" j! S" ?2 Z: n. |& r0 d" O- b
, X9 S9 w3 z- s$ F% x2 F: ^: N+ s现在终于删除我的狗屁加速...% W) l! J# g3 R
3 |4 {' |" Y [$ ~7 q/ Q' o) J \7 K. y" B! q$ V4 k
+ L3 B$ ]! A) J8 s% L8 p! R+ z |
|