|
|
食品车:
; {; b) h9 d- }( y尾翼:2 V5 B, p& [8 f8 L/ S" T! u0 a8 Q
/ J7 ]% u1 O9 l) G) M" [
代码:& w" b1 h+ Q4 D! r/ E7 `
CWndAutoFood::CWndAutoFood()5 Z. {. N1 S; h" T# V
{9 c; T! T: n' g8 B( ]* a) l- F9 D
m_pItemElem = NULL;% C0 v5 F) l2 J, V b
m_pTexture = NULL;
+ \- i6 s& w& b0 Y bStart = FALSE;+ |9 i6 Q! r+ M$ ^8 {: S9 @% S7 @
}
( {- r4 } O; p( `% E$ J, k) N0 w9 O$ W7 K
CWndAutoFood::~CWndAutoFood()1 V9 |3 \. \" x3 A
{
/ E5 M0 N4 j* \2 U AfxMessageBox( "AutoFood ist gestorben " );
5 d# q1 ~6 v7 n' d8 N% O}% V! M1 ?& Y$ Y0 C6 Q' b0 G
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
1 t' v/ O, K- i7 A& C8 L{
; B0 `! V+ X2 q3 u' x! x' f return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );; j! C6 P8 `. i, o( f6 N
}: L( F, r% l, K$ n9 t6 c
% E% o" p9 i2 m% Q- K+ {: Z) x
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
, N: t/ x0 ^4 |+ u; \- g5 y{5 r/ c7 H: Q# x6 L
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: M& Q# \) b( m
CRect rect = pWndCtrl->rect;) H3 n, [% A2 s8 c' }
if( rect && rect.PtInRect( point ) ); m# m% }; W. A) L( I
{
! H4 h' U5 Z$ X h CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
0 C: `+ c! E& L" j9 q! S k if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ); a0 A6 i& a- b
{4 @, M3 S# w3 ~1 P- ^* ?
if( m_pItemElem )$ ^: g0 z! w$ T# L+ S! h* I
{
: ]8 b% d" A C# \: e m_pItemElem = NULL;
/ c8 ]- S! w9 {* @ }
( l5 A$ ]' A6 F7 p m_pItemElem = pItemElem;
0 d+ s8 _9 j9 C' g m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
' q) @3 X) y" Q) _8 J/ ]& C }else{
9 R% _2 s2 M5 W* |/ t y( w SetForbid( TRUE );
( o1 }# m' x8 H" ^ }
: _! @: x% c8 v }else{
1 y& a! w/ s( y5 l# `8 c$ s( @) P SetForbid( TRUE );' D) q H1 M7 V3 v7 F4 ~* }( P) X* b
}
+ S( y, y3 f+ D, A) V return TRUE;
' ], C0 O2 r O/ \5 Q# h}
9 L4 ]8 l: t4 g2 k, o5 H( H8 e' U
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )/ e5 ^" ~0 m$ g* t
{
2 d# r4 r& r' r5 H switch( nID )
) }: g* v- [1 j) W) `: R6 M0 @ {) [2 d( g' y! W. s5 n5 T0 Z
case WIDC_BUTTON3:
8 m9 [* e: f! H1 G% W {
& E, c0 A# f) r bStart = TRUE;' L& l" x2 s- N$ ~
break;
( E: H; ^5 Z% @% p7 W }
+ ]; l1 g! u. [ case WIDC_BUTTON4:
( a* L/ J7 @8 R; B! P. f1 x! M. [, n {
) J' P: ?5 y( u+ f bStart = FALSE;2 p% c/ E) `3 {6 W) ] {
break;+ C, W% C- K# G0 z2 a" E
}
( Q4 \ ^' D1 l) l: r, ? } m7 \/ T( B- d
return CWndNeuz::OnChildNotify( message, nID, pLResult );
0 Y. e6 J/ h0 L& }2 X}
: n, p6 q" J) |: w$ bvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )" ?& }- U' a: x! |: m7 D
{
" Q! m4 y. l2 Q6 ^ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );+ f4 c/ J) L: r3 B& o- c' f
if( bStart || !m_pItemElem )* B& f- d8 O# Y% L2 G9 X
{
0 j4 N# E1 l9 u pBtn->EnableWindow( FALSE );
5 W0 J, e* X$ R' g* e }else
) n& `7 X% c) ^& _$ c9 T pBtn->EnableWindow( TRUE );
) a; R0 i8 a# `* h if( m_pTexture )
, P# g; [8 Z) R. B {9 q3 p: r1 Q$ W, G+ F
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; \; v( u, p0 S d; y
if( wndCtrl && wndCtrl->rect )
& q/ y$ p# i% ~2 ^ B {
% L- G5 N& @4 q8 I- |+ b+ j m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );$ i% n# z; b( D2 ^
}
8 J& [+ M2 U' K0 ?# G! G1 A& Y* ? }$ ]. e+ H* D2 R
}
2 [2 u2 T$ v/ e# [& ]7 _& Z# X2 G# A! N8 A6 o/ C6 C
BOOL CWndAutoFood: rocess()
% W7 P& G5 @; @8 w r; {; S! r{
; X) j( D% v U- N if( bStart )
0 x* p' Q1 j9 v) M1 \ M {
7 J1 U) P! |/ N3 E if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
8 }- P+ ~- q3 Y( Z. {! _6 g7 N {9 Z9 V* }0 H* v( 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() )
# y9 Q J- ?! u: T g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );$ x4 C) C! h, n- s
}else{* V6 n" |: ?) S' M8 S a
bStart = FALSE;
1 @& k4 p& L' h+ d: H1 b* M5 M m_pItemElem = NULL;5 J7 D/ t$ E( e7 A/ h
}1 x# ~) \9 G* x2 t6 H! @
}
4 j( B5 t- ` Y# g return TRUE;
8 J; i) {% W: o} f; \9 E: b) O6 h& P! [
+ g- v/ ?) `# i* _3 k
登录视频废话:" ]* A+ k4 U8 i9 {8 c) _' P: A
尾翼:
3 t& r! U; X' K# X* k3 e
, D, ], C# s$ J& w( q代码:
+ J3 _3 v1 k( X0 b4 d4 k( \1 T0 N9 ]
% k1 J Q; Q2 W1 q% Yvoid CWorld::SetLight( BOOL bLight )
/ E1 }" q. P1 r6 V3 @0 edurch
1 f: r* W& D( @. WCode:; k( x: ~, m4 J" W- U
void CWorld::SetLight( BOOL bLight )
+ e p% `5 q$ V{
/ |- H6 Q9 p+ z/ P //ACE("SetLight %d \n", bLight);
, l2 i" P. a, `( m 0 t; Q1 L* g5 o* g9 V* C+ _
#ifndef __WORLDSERVER - |4 d) B* }, z. ^2 l
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
; e1 U, B( M6 o3 G CLight* pLight = NULL;- s, o& \: L( ^1 C( U/ L
: z) z" T0 @; ` D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );/ ~* F6 Y, c4 F. [; D2 ^
7 _( x( l- P/ [ pLight = GetLight( "direction" );
6 w/ q2 v# m: p& C& Q4 E. v0 ^1 D4 T8 e: C
#if __VER >= 15 // __BS_CHANGING_ENVIR, u+ j7 b+ R) F5 g& P2 {
if( g_pPlayer ){
( I5 x7 a8 G( i ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
* E. D( P" C) J$ L4 x if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
; _( ^4 N' K. \% P- f) P. \9 z {
- y: d# O# c: v: g, u7 n if( pLight )
( Q9 ~. B" |/ R8 K! r {
1 q6 R$ v2 h/ i( c! Z pLight->Ambient.r = pInfo->_fAmbient[ 0 ];: G C# ]6 A; N' o" I* ?) \& i; x) m
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
4 p' T$ w8 D7 Z: _3 d8 {7 ?5 s0 m& q B pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
" S3 P/ r R8 c# e& |) D% r/ Q8 Q6 L, W! a0 A' ^4 Z( k
pLight->Specular.r = 2.0f;2 t& K9 M l( a# C" `
pLight->Specular.g = 2.0f;& |; y+ K% d9 h# b
pLight->Specular.b = 2.0f;
6 W% h& w( |3 e2 V; v+ s2 d9 L
" j$ Z$ x& R8 K. n# Q( x' D pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
4 V9 _& N' m$ o6 {6 \( M4 @2 a pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];, o7 r. d9 T, T; s' V" o' i
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
6 f0 L% d0 K+ }& F7 B 0 U* m2 m/ d& R" x
HookUpdateLight( pLight );
1 N0 z0 ?- M- F7 ]. B
& X. ]+ B2 x! x* H6 l1 Y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- J5 d R; n! E
3 F, S! y) }$ Z) T& P1 ^: X+ u pLight->Diffuse.r *= 1.2f;* F7 j" n3 h# r
pLight->Diffuse.g *= 1.2f;" M$ K6 l' r. _- O1 h2 ^
pLight->Diffuse.b *= 1.2f;% G4 O; |, b( j8 e- H* A5 d1 e
7 k4 \) R* T" L8 X3 | e
pLight->Ambient.r *= 0.8f;4 A, o6 s$ k6 F$ r9 C" b
pLight->Ambient.g *= 0.8f;7 E. ]- i4 M, _- U0 }) i/ U- |
pLight->Ambient.b *= 0.8f;
# P( T/ O5 x! [3 _9 K8 n, D2 V* s9 C# c
5 W/ x8 u) z1 ~+ Y$ V& l memcpy( &m_light, pLight, sizeof( m_light ) );" l) A }, I9 z& `
, j4 K. l) K! P: U }
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 j4 P6 `! g) B; Q+ v; f& ?* |
D3DXVec3Normalize(&(vecSun),&(vecSun));7 u/ E% U8 [8 A9 \& n3 `
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, A6 e1 |, @3 N: _) l/ v) q9 {$ |$ O pLight->Appear( m_pd3dDevice, TRUE );+ q* f: f* P. U q
# Y3 t% p! i/ `8 [ DWORD dwR, dwG, dwB; {6 e7 Z, a' ~/ z' @" N% u
dwR = (DWORD)( pLight->Ambient.r * 255 );/ ?" [& i- r$ C6 i# U4 T: A/ C0 k
dwG = (DWORD)( pLight->Ambient.g * 255 );
% b, `+ d, b* I9 j' T l dwB = (DWORD)( pLight->Ambient.b * 255 );
; Z8 X+ f; J w4 }8 a }/ Q7 y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" @) K, e) r( h- u* F) W/ N( D
}7 ]- I( N4 K# _: r) W: t6 P+ y Y
}
9 J& P: m" B# t }5 }/ ^! C h+ Y5 m
else
6 |0 b+ g; R! \# s* v5 C: @7 V' R. }#endif ; G# V9 s& u K( g# K0 L6 [: t+ t" ]
* d8 e7 q0 ]# x% x4 ~% n* s if( m_bIsIndoor )
1 v+ T6 H- H& S2 p7 R {; z2 @2 A$ f2 ?* v5 @1 \
if( pLight )
# U: x6 y, L2 C { 7 K# ~+ V: o+ v0 T: ^" v/ x( I
// à??μ oˉè* ) o- w# m; Q( d0 {! P
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 r9 B* ^; a: M9 p) g5 J- `1 r) p
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;; r# K M3 H9 V) \/ x& U
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;% q/ N; d8 i3 M7 X
; g3 b, n+ z. A* Y6 T // oˉè* ??à? 3 D, }2 y6 \+ u6 T3 B2 b3 B
pLight->Specular.r = 1.0f;
/ N0 r+ [8 N i) [2 O pLight->Specular.g = 1.0f;
1 U! _& F* H0 j( h) `9 { pLight->Specular.b = 1.0f;
. w- k/ `3 z$ b% ^. ^* ^ // àü?? oˉè*
5 q' J* Q" O$ X0 y9 p3 d pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
* E9 W( S' ~. {& m. h8 P& l pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
9 r. p$ r, s, R5 A0 K, n; F pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 |2 j% w, |8 k3 y$ ]/ Q J# ^, P" M0 ^* ?; ~1 r2 j) O
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., Y# u! q8 b* [9 s+ S) Z
{ m8 [. y/ J+ ^7 I) s. ]
pLight->Diffuse.r *= 0.6f;, T6 i# y8 ]5 M; W2 k
pLight->Diffuse.g *= 0.6f;
9 K2 V6 U# d! y9 f: K7 ^ pLight->Diffuse.b *= 0.6f;% s" e5 y- M3 A; @5 a
pLight->Ambient.r *= 0.7f; r, \9 q7 Y- L- `( @
pLight->Ambient.g *= 0.7f;
( e, V" E0 G; N! { pLight->Ambient.b *= 0.7f;
2 i' D4 b0 e7 q& U }) j& v# E7 F8 _4 r; L9 [. x9 i1 g
: Y8 o, y9 p$ g& b* I#if __VER >= 15 // __BS_CHANGING_ENVIR: ]1 w$ K; M1 ~
if( g_pPlayer )( M2 o# D/ v& m1 _- l6 h3 y+ f
HookUpdateLight( pLight );
; q4 @' P' H8 X! v; P+ m#endif: K6 r1 w6 c* P; ~9 [1 Z0 v) W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
2 ^/ n5 j+ U+ C* Y; F! t& O5 h2 X& c. E+ n3 T- ]/ `8 b5 u( n- g# p
pLight->Diffuse.r += 0.1f;
3 I& x2 V4 G" p$ w$ _3 } pLight->Diffuse.g += 0.1f;
6 w7 f) z; S3 x: W1 a( R% L- `; o2 ? pLight->Diffuse.b += 0.1f;. y: P7 f) g) U. l2 T! J3 x
// oˉè* ??à?
) j2 O' T( H8 ?6 ]! X* t4 Y q- [; K pLight->Specular.r = 2.0f;
& ` {5 B( b2 ]1 S* [0 k pLight->Specular.g = 2.0f;
0 f# s3 [0 F# W4 a$ y' ^ pLight->Specular.b = 2.0f;4 V/ e7 Z X' Q+ P
// á?oˉ
' @& u% i9 W- c% Z, S. Z2 D o: ] pLight->Ambient.r *= 0.9f;
8 |, j! `+ m6 y) k" M5 D pLight->Ambient.g *= 0.9f; C( v) B' ^$ m+ ?) e' Y& E
pLight->Ambient.b *= 0.9f;
! Y @, V* r `4 \! J- {( l; z# Q e' v, A" G1 p9 H2 F: I
memcpy( &m_light, pLight, sizeof( m_light ) );' X* O, U. u9 t) [4 _
+ u$ ~2 y! d$ V$ Q2 I' Y! n
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );* s0 V \6 [% K T& `. q
pLight->Appear( m_pd3dDevice, TRUE );
2 O& F8 ~' u) q% V 3 i/ z" I$ p9 w- z
DWORD dwR, dwG, dwB;4 X. {, L0 `: [* {: m* a
dwR = (DWORD)( pLight->Ambient.r * 255 );/ Z) z/ @9 J2 L6 j& ]
dwG = (DWORD)( pLight->Ambient.g * 255 );
& o4 E3 T" i) A6 l% j dwB = (DWORD)( pLight->Ambient.b * 255 );0 I% o3 l* b0 E, o: T) v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% x1 H: _/ {% d# t8 W8 U( N. n
}
0 g, k- ~1 n# G( G; K5 V4 d. ] g }1 K* q; I. I/ k
else, W/ u8 ]4 H0 B& t; J
{
; R/ B! g& i0 j, M if( pLight )7 q( ?/ y% G9 h6 c' T3 n
{
" `0 I" D) \9 g9 }; g$ F % T6 P* T# q( F# ~/ p
int nHour = 8, nMin = 0;
. x# y8 [8 j2 y #ifdef __CLIENT
! _7 i) P$ ^4 x/ Q7 N // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & S# P0 H* U/ b" x d7 t, i& Z' l, z
nHour = g_GameTimer.m_nHour;
' @; s3 }1 h' `$ M nMin = g_GameTimer.m_nMin ;
4 |) Q+ x( x Q7 z #else
6 e" M: o& s# [( a2 k // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
* c, k! m5 U! o7 {- ` if( m_nLightType == 1 )5 C3 N9 M& Q; S0 `& K
nHour = m_nLightHour;
! E% _6 F d1 k8 l! S9 _# ^9 a2 j) x #endif
( K, f, [/ w f: R" a( K nHour--;& w" B& n/ V u
if( nHour < 0 ) nHour = 0;
9 |6 W$ w) a& Q: b0 Y" {1 a7 c! p if( nHour > 23 ) nHour = 23;! j5 b k+ p6 H: l: f3 p+ M
a% ]+ D' } |" i# I7 M2 W //if( m_bFixedHour )( `1 U& ?# {8 X$ F+ y% a9 ` o
// nHour = m_nFixedHour, nMin = 0;
! ]5 G6 v- P! u" V+ Q+ w7 S( ]+ g2 M LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
( Q+ G" N8 Y& n- R3 k2 x LIGHTCOLOR lightColor = m_k24Light[ nHour ];( y6 M- r" d( K
3 k; e1 p0 v& O5 @3 @3 z //m_lightColor = lightColorPrv;6 F; l; o: b& R8 K
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;$ H/ d' V5 }8 f. U8 b2 i
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;( A5 q# _, N; m
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;0 [! F% k( u( P. L, q
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;* s7 d) u- @- @% n3 Z: x* D. j t0 R3 P
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
1 j! d0 y0 Q) l: L3 {. h; i lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;$ a: K9 F5 W2 b9 v
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)* T7 S. z4 A( |
. q/ _8 F6 B4 w9 X7 X$ h4 M8 Q // à??μ oˉè*
0 B" A# p, y: R/ Y% v4 K: U% J9 b pLight->Diffuse.r = lightColorPrv.r1;: U* e* w. k. e1 s0 m+ w2 T6 M
pLight->Diffuse.g = lightColorPrv.g1;4 q. I) f0 @3 e3 [$ U
pLight->Diffuse.b = lightColorPrv.b1;
9 P7 D# _! J. `5 ~ n! E8 G$ T // oˉè* ??à?
, g* l- x7 C5 P4 k' Q4 z pLight->Specular.r = 1.0f;3 t$ o" M1 s# l) r
pLight->Specular.g = 1.0f;
$ q0 z! q) q# O& N2 P9 ~ pLight->Specular.b = 1.0f;' U6 Y' ~& v8 Z4 B# ~, Q Y; A
// àü?? oˉè*
% {3 ?, A& X& [ E6 u pLight->Ambient.r = lightColorPrv.r2;7 @0 ]: z# n3 ^* h5 G
pLight->Ambient.g = lightColorPrv.g2;9 I* H* `! ?8 p- r; C4 M: X
pLight->Ambient.b = lightColorPrv.b2;
1 z6 X3 b. l5 ?' t F* w
) H( |. x6 @+ m/ k- ?1 n if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 w9 S" w/ A: w3 H
{' A. e' n6 W+ Y& l
pLight->Diffuse.r *= 0.6f; K( l3 I/ a, X7 h j" f9 K- k
pLight->Diffuse.g *= 0.6f;
0 I/ @ h! A* j; A! d pLight->Diffuse.b *= 0.6f;' ]+ q3 |! f3 f
pLight->Ambient.r *= 0.7f;% D7 V# W# @& `% x1 L1 ?5 N
pLight->Ambient.g *= 0.7f;
) K9 L/ ^ X( H pLight->Ambient.b *= 0.7f;
& J6 X- S, e8 X* w) ]. E }; s1 R# q: J1 h9 F# N
& ?, v& _7 }3 i! @ _#if __VER >= 15 // __BS_CHANGING_ENVIR
1 `4 n$ p0 _8 n" ]0 C# f if( g_pPlayer )
b- t) f# F3 U+ f% {$ X1 a' Y HookUpdateLight( pLight );
# K# q2 z) L8 \3 K Q4 w% u#endif( Y8 C/ @. U' Y0 u
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! P% e3 b5 W+ m# s: C
; J! c8 g# v' O% Z+ \#ifdef __YENV( A o0 e; L' |$ w$ | p* c! z
pLight->Diffuse.r *= 1.1f;
. c# L# Z: c7 k; [9 G2 e: D- g pLight->Diffuse.g *= 1.1f;1 E1 V% M. r' `2 U. l) }
pLight->Diffuse.b *= 1.1f;- e$ L6 P3 \. y0 V! }# d
// oˉè* ??à? 9 Z4 V; w% Q7 B$ d% t
pLight->Specular.r = 2.0f;* z% {+ B3 X! b& |3 ?2 @1 E! ]
pLight->Specular.g = 2.0f;6 N0 |! ^0 ?; \- u; c7 z
pLight->Specular.b = 2.0f;
3 z6 a* h' E+ f7 A // á?oˉ
9 T1 S) f# E% q, v8 w. i2 ?8 W pLight->Ambient.r *= 1.0f;8 H8 r: o+ Q+ \
pLight->Ambient.g *= 1.0f;2 G, n. k# j% A3 I1 k6 B/ |( O' o
pLight->Ambient.b *= 1.0f;
5 i f7 P$ n# `2 e#else //__YENV' k. H& d: i" c) K5 \
pLight->Diffuse.r *= 1.1f;
5 k0 d& L7 w0 ?1 M5 K0 c1 ^$ T9 Q pLight->Diffuse.g *= 1.1f;
7 |0 b5 S4 `5 k! f" ]1 ` pLight->Diffuse.b *= 1.1f;. w# y+ q3 r4 J' n! N, W
// oˉè* ??à? ! }0 j5 L1 q6 D* c) c
pLight->Specular.r = 2.0f;
0 q6 j: p# d$ b& U% d2 t pLight->Specular.g = 2.0f;/ k% d% c) ]0 |7 k( ~# W$ \
pLight->Specular.b = 2.0f;( o5 y7 S% y% [; R9 v! s s
// á?oˉ 3 C' T/ l2 r7 A7 J" X( \. R" A e6 n
pLight->Ambient.r *= 0.9f;
- l! `3 |' R- V* X3 s pLight->Ambient.g *= 0.9f;
% a3 |& _1 p+ M$ K! s O pLight->Ambient.b *= 0.9f;
/ Y" w% s' S) v) @ w#endif //__YENV
3 b# j2 T# ]' F1 V' h, i* T
- y& O& q4 S" j( z5 W memcpy( &m_light, pLight, sizeof( m_light ) );# ~7 l. G5 ^) \9 z
. _# d. F* Y6 d. j2 U! N9 y8 t# T
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);( |) _+ H3 P! j2 K4 c$ R
D3DXMATRIX matTemp;+ q" h7 q: J7 K
static const float CONS_VAL = 3.1415926f / 180.f;
8 S3 g3 \9 R x D
$ z0 \; T1 P/ a0 t8 I D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
I( B9 u$ e! g" ]+ m3 s D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);' A8 G# u1 `) ^/ m% s
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 4 V1 X+ \7 `( r2 y
pLight->Appear( m_pd3dDevice, TRUE );* p2 |& Q0 B/ ]( b2 Q, G
" @3 f) Z5 ]7 V' V* n' t% i1 G // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);( V3 l. w, H6 [- f- x
// D3DXVec3Normalize(&(vecSun),&(vecSun)); d: m% v6 G/ G) W+ z
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
|; d) N9 `7 s" C& `0 n3 y5 h: ^
DWORD dwR, dwG, dwB;
6 K o a4 a" i# s2 Q2 O dwR = (DWORD)( pLight->Ambient.r * 255 );
; z/ e, d' A( Q dwG = (DWORD)( pLight->Ambient.g * 255 );
/ ^4 r z b5 c! b% b dwB = (DWORD)( pLight->Ambient.b * 255 );
9 s% p5 N$ F3 E, f dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 3 `6 _& Y* u; Z8 n2 r3 L
}
- ?3 B9 K" G$ I3 I }
' ^1 e# B6 B0 j% S; [7 a3 ~& m
5 b# K$ w: r G. }3 o# t2 B0 t m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );0 e0 d7 L4 d0 w0 D$ }/ s+ ]+ G
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) );: h, W0 Y& M, U$ y- L
::SetLight( bLight );
P4 L* Z. Q1 J( F+ h
4 x6 M% `7 A; h) u% V/ y // ±ao? ?D?í???ó á¤à? 8 `) r3 B* j8 `0 @ v; W+ `' q0 K5 I" B
m_pd3dDevice->SetMaterial( &m_baseMaterial );# h+ O9 s% a& F- \: E/ n
2 a+ w) D( w3 O#endif // not WORLDSERVER
9 y$ c6 @8 ~! w5 ], B% q}2 ?. H& x8 i' W( M
并更换- B3 G8 i3 k6 M+ ]% I* m
Code:
1 z$ u" C/ m# J6 p, Z__FLYFF_INITPAGE_EXT
& w8 j0 V: _" P7 |( @8 k) G定义
( A' X$ q# U# R6 _
( I H$ G3 Y4 y5 ~
" u* Y' W# A4 b) p, c9 f0 f3 L& G' Z/ E9 T2 K
6 u; g% {+ Y# B) f; X
现在终于删除我的狗屁加速...
2 h1 C4 n# q ~/ b
4 U L O9 x6 H$ X4 U
: B- Q( |0 H _# r: ?2 v6 M, K8 p- Q6 ]8 {- T. i0 Z/ D/ m( `
|
|