|
|
食品车:4 I, m t' {1 e/ }! s, x' F
尾翼:- C! h) F& X; s- K, t6 l
; F# u5 L) b8 [( |
代码:
4 q7 L0 q2 B) m, n1 K# ICWndAutoFood::CWndAutoFood()
( F' ^# `* C6 s" s{
2 j! ?' _( s0 G5 q+ R4 e m_pItemElem = NULL;0 U6 J( Q; \; \7 B0 P: \ r
m_pTexture = NULL;9 h2 Z8 Q, {( o7 o* _# s
bStart = FALSE;+ l0 L. b" C3 W$ o0 b/ l
}
) \7 W* ?7 V! K* j y* m& N, I$ D. V X X0 I3 {5 U; Z, D, ~
CWndAutoFood::~CWndAutoFood()
- @' W7 L8 m+ y" }1 `2 e{
$ j3 g' ^' P% X- ?( e) d- T4 t AfxMessageBox( "AutoFood ist gestorben " );+ ~2 p6 i Q2 G& U. i
}6 ^1 Y0 D9 T4 _* b
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ); Q$ G1 L f3 Y' [
{
5 r; o1 t5 H' R/ O$ e/ E0 j return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );- l3 g5 f9 H- d# J% E1 E
}
1 \. p( v) P2 t9 A' M! U$ f
. U" q. d3 ^0 f4 B4 b& Y RBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ); f* E" Q$ }! r! u% P, ?
{
1 K& m7 s! r) g LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ H7 ^9 `' u: }( ?8 _- |( }; l
CRect rect = pWndCtrl->rect;
; \! n6 E% m# N$ h* ?/ L, y- s" ]1 _ if( rect && rect.PtInRect( point ) )2 P1 R+ g: E- @6 @" E; `
{4 W% e1 r! |9 S, C! K
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
, k+ s1 i' K9 ^# o+ l( \/ q9 j( I) i if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
! @3 ^! ]7 @$ j/ F q! p' d {
* k9 Y6 w. H3 G; j5 ?- j7 @# S if( m_pItemElem )& D9 X4 c$ H$ G) M/ M
{
+ ]! C4 r- z9 |) J b$ D m_pItemElem = NULL;4 Q' r. \, q+ i; W2 o6 Y0 d' M
}
7 Z& O; b# k3 Q6 h) }( O m_pItemElem = pItemElem;
_2 ^6 s% @, p m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );) k! [! S" q' f* H. S7 v' g9 S
}else{
) C" J/ ?; g2 K- v7 h7 ?+ e6 q( ^ SetForbid( TRUE );
8 {1 u4 c7 g0 A }+ k+ Q2 G0 n$ c9 o0 g
}else{: L: ^ X. C# I: v3 S
SetForbid( TRUE );
& y2 y; x; z- e$ V0 r }
0 K. Y4 c$ b6 B return TRUE;
+ a% k* a) v$ d. W {- Y9 `0 {}
; T# D: g! e. D
4 O5 L! v$ [6 iBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )" v9 F$ v$ }( T
{" o7 H: {3 F0 h
switch( nID )
0 Q m# j' ^" ?: N {; X3 ?+ A1 M$ T b5 Z& ^
case WIDC_BUTTON3:/ J2 h* D4 }. E" V& [
{3 i9 [- o o8 L1 y9 G' g9 E! ~5 `
bStart = TRUE;
- l: T7 }2 v" c5 d8 J1 G7 k break;
6 d& V: @, Z% J& N- q% {+ i$ S6 w }
# {( G' t% Y8 q: z) c: |) M) g1 q2 _ case WIDC_BUTTON4:
- z5 `9 l" q# o0 D& c5 y) k) b! y {" `$ U6 X6 R& k9 m$ ]# t8 U1 K
bStart = FALSE;4 f) K: x% x3 }; j) b
break;
1 J2 l! e# Y* C& @7 _/ w. }7 T }
( K0 X! W/ e$ q; ]4 [/ S% v }7 {* l' y8 |& A4 I2 O4 ]
return CWndNeuz::OnChildNotify( message, nID, pLResult );8 }, d3 e& q8 N$ Y: T4 V: V
}
# G( G- X, [# @6 X& u3 R% Dvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )+ E; Q# G" i; m+ b' d! R
{
5 i$ t- o( J9 a! c, |* \. T CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 j" q3 j& t1 K0 V$ f9 u8 s if( bStart || !m_pItemElem )6 t r. |. A7 v- C
{* x2 M* U: Y; T6 `2 p
pBtn->EnableWindow( FALSE );
K- u8 L" \9 I& y% [% K0 ^2 R2 C }else
8 \) g0 g' a' F. f; F pBtn->EnableWindow( TRUE );, g7 J& i3 ~' e- {: }' n- G9 H
if( m_pTexture ). i- e/ z0 J6 C4 R# Q' t
{
1 Q$ `1 ]2 m; z7 Y/ z2 f4 q LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. ^! A! `9 G7 S6 @- S/ i, x0 ^ if( wndCtrl && wndCtrl->rect )
! k% c6 e: g3 p! ]; D9 v E5 q* w: v {: M$ f# G' @+ x5 K8 F4 g8 |
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );' c G* R7 K |* }
}
3 A( ^' a% b# k/ j2 K }7 D) H! h0 r0 g' I# S9 y9 t
}
4 o9 D+ z( D3 F1 {, j! }' M8 b5 w3 I5 K6 C4 w
BOOL CWndAutoFood: rocess()
/ P3 k' G. ^) h2 g: P& |2 f/ r{
. E ]7 j. q, F b/ \6 I( Y9 W& F if( bStart )
" J7 X- K' _4 K* a* ~6 p* Z9 ] {
) F: b! z) h5 ^1 d* \ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )' h7 J2 d" a: }/ w) m ^! s
{' O7 c! V# D" c# E8 o" r+ c
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 v' e1 i( i a# r
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
* N' K& W9 D8 J6 t+ G$ B }else{
# Z. a" ?; I0 Z- j4 J, x bStart = FALSE;0 M j( V% }# F( z
m_pItemElem = NULL;
: ?9 ~. _5 q! s0 y }
: @7 G. R+ B9 I: F }+ Y# n7 T( i+ H2 N$ E1 |% E9 }
return TRUE;
% h; r' ]- _/ b; V6 A* [, }: m0 ?}! s% g! s, ^: k: a9 @
- Y# b) H& N1 m* o登录视频废话:4 K; W( I1 F' }9 O) ]3 z
尾翼:+ ], T2 j6 G+ z) h% S$ t
" q. W. {1 H2 w! K D; K" P5 u
代码:
7 J5 O# O# h: s' _: X7 _" t' C+ H
void CWorld::SetLight( BOOL bLight )
9 x$ Y4 G6 [4 S4 ddurch
8 u9 d! b k& T6 r4 k; y+ iCode:/ c9 p) [% r" Q
void CWorld::SetLight( BOOL bLight )( W9 r0 w% o0 e5 a# L9 f
{6 W$ |4 O0 X! r9 P& d/ B
//ACE("SetLight %d \n", bLight);
) h g9 c% V% a* ~* E. c
$ T, r2 ^& T5 {8 {/ O+ \( |#ifndef __WORLDSERVER
% P& {3 C1 J) c5 G9 O9 Y- I2 l' j& L/ N DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);) y5 f) z2 m8 ]# t' n# D. S
CLight* pLight = NULL;# [0 N# `1 {" [# D& t1 W
/ O9 J% S& O; T, p5 r D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );% F. ^# ^. n* w. {
5 z( {1 Q- i; {, { P
pLight = GetLight( "direction" );& A. K( h' G' s8 X2 ^+ i
) L5 x; d6 j* k' p5 J6 C3 ?& N
#if __VER >= 15 // __BS_CHANGING_ENVIR
* N! B5 |4 |& Q) _4 y if( g_pPlayer ){/ b/ X7 K( K: e9 c; O; V
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );! G0 ?* _/ B/ J/ y# b' i
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 l; I( y( `5 O$ p {4 n: t9 ^. U1 }. l- \# P0 {
if( pLight )3 u4 l4 e+ L. A- l/ s: }
{
1 \* z4 e. T* Z( x `% L; f9 v3 ?& R4 x; b pLight->Ambient.r = pInfo->_fAmbient[ 0 ];/ T0 @" W( M2 w; W: H* o; F6 d
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];1 C3 q% B! E/ ~
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
! e8 ~+ ^2 Z$ A3 d! M
6 R; d5 x9 f2 U2 I/ Y5 y+ h. j pLight->Specular.r = 2.0f;4 P# v* s0 v/ Y8 f+ ~1 `, z9 L
pLight->Specular.g = 2.0f;% @. ~/ z' L) I6 a! E
pLight->Specular.b = 2.0f;6 Z' b3 I# P! v! M
$ s$ {2 t5 w: a$ m
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];; V4 V& L0 i, V# l4 k+ W6 A
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];# h: N) r0 ?( _, X: |% C6 N/ b7 `
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];7 C! M: N- `8 P
. j( v: A8 B0 q
HookUpdateLight( pLight );
+ e# a/ b; {! d; |; K6 g
7 C4 S+ k. h1 H& |5 z4 w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. p8 \2 V6 w- G, m
& ^: Z* i$ [1 L pLight->Diffuse.r *= 1.2f;0 I, y: q, D7 j k" ? y8 I
pLight->Diffuse.g *= 1.2f;
9 U' L" }4 b/ L8 P) _( g& S pLight->Diffuse.b *= 1.2f;1 J6 I k, C$ a/ [2 Z# l% @
( ~1 L' |& e/ R( T2 v pLight->Ambient.r *= 0.8f;4 S1 `5 L) M. F5 j0 B; _
pLight->Ambient.g *= 0.8f;
# e$ s/ k H. H; g pLight->Ambient.b *= 0.8f;
1 O+ \0 J0 f% w, N# f: H - s* t/ M' [9 F3 {& n" l
memcpy( &m_light, pLight, sizeof( m_light ) );
5 K2 B: B* \7 R/ B7 \: X
6 W6 f6 k( }" g. K; w- C D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
5 l+ z2 \) K: P# y$ V0 l D3DXVec3Normalize(&(vecSun),&(vecSun));
# \/ ]8 `' ^% R1 {- L ~$ X pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 z/ Z2 x9 T, ~! M; ~$ N: f* n! w9 | pLight->Appear( m_pd3dDevice, TRUE );
* |) X" A5 U( k5 ^/ o! `, E
1 ]. e9 I* M/ J9 n0 g DWORD dwR, dwG, dwB;& B4 S% ~. J" R+ ~8 x4 [' D" d
dwR = (DWORD)( pLight->Ambient.r * 255 ); @8 I" k* {6 b. f$ K
dwG = (DWORD)( pLight->Ambient.g * 255 );
) N- E. W7 y: z |$ m$ x dwB = (DWORD)( pLight->Ambient.b * 255 );
9 h0 p8 j5 Y( o) Z2 z n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* d* }* Y$ j0 r; q+ Q }
* i! }( z/ P1 F: t: ` } {; A: ^. o+ y3 F/ j/ E! B% z+ l
}. j/ E! T* ^! H% R q9 f- {5 X" i
else
! y! u. A3 z9 m#endif
. r. T7 z0 G" a! |/ A" V, h W! ]" O+ s+ D0 L
if( m_bIsIndoor )
$ y/ n1 |0 J4 q5 P- w, X {
7 X. n) T# Y1 q& L! h9 y$ S: M( r if( pLight )
! Y) l* ^) {1 S+ X { # y; `# ~; F0 z0 \
// à??μ oˉè* ( g, y, Z- A' d. l- r
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
* l y }- g& p: d; D8 P pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
9 K3 ~4 }' r1 a4 i F pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;. q0 y! W' U+ s: E
8 q( F* t0 M# u; e // oˉè* ??à?
6 ?* ?, R6 `, y: p% g. m4 K pLight->Specular.r = 1.0f;, @: m# m: F3 t, ?
pLight->Specular.g = 1.0f;1 U: q9 g2 t. ^8 H
pLight->Specular.b = 1.0f;- a. |& p( W9 f* L* a# @2 }, R
// àü?? oˉè* 2 @8 b0 ^: s2 E7 c$ |, x
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;( d: k% y7 L, P, u9 y3 {
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;3 k% u5 Q/ K' u4 q* B
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;# w8 @( Z# {+ b) |# T+ z- l% V
. U8 [5 t* }9 {" c3 W8 ^- \
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 ^& q- r) o' V: t0 k% f( N+ s/ E {
; X) r1 I6 ~) y' ]& _ p pLight->Diffuse.r *= 0.6f;2 x( X1 j/ e& V, ~9 H
pLight->Diffuse.g *= 0.6f;. z( N+ @+ B8 v! f N' A, C4 ~
pLight->Diffuse.b *= 0.6f;
) y0 [) ]9 k: J2 r pLight->Ambient.r *= 0.7f;0 d7 E" E* E4 V) G$ y# [% K5 c- B
pLight->Ambient.g *= 0.7f;2 J/ c' d0 D* |. Z. W+ ?, |
pLight->Ambient.b *= 0.7f;, H) ^; s, v' s; O3 Z" F4 I* |
}7 J% L/ X/ @) Y3 v0 @
$ @! _9 I# _" l+ q4 x5 X$ }#if __VER >= 15 // __BS_CHANGING_ENVIR
8 [( ^* }! B, l/ q, p$ Z4 L6 q& J if( g_pPlayer ) b, _' n4 H+ }% b! C- R M4 { l
HookUpdateLight( pLight );
( y9 d) a: c, S4 Y#endif6 |1 T0 @! t6 I, d* L( F$ J$ f
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) D' L- F1 I: ~9 y% f
/ x n, a& G! d: o4 m d4 L ~8 T7 @ pLight->Diffuse.r += 0.1f;
# ?; }; E1 D( T3 ? pLight->Diffuse.g += 0.1f;* Y, s6 J+ T" F- D; g! i
pLight->Diffuse.b += 0.1f;, x6 S% C3 R" [+ r- D
// oˉè* ??à? x2 X# b$ B. q. l( v" E
pLight->Specular.r = 2.0f;1 T. \$ Q. ]# p" o+ M9 o
pLight->Specular.g = 2.0f;
! z1 r6 O5 `- k7 O4 w) {0 k, p pLight->Specular.b = 2.0f;6 g# e1 I' g' A7 `
// á?oˉ 7 Q( d+ y) M3 k* z/ W
pLight->Ambient.r *= 0.9f;$ ^* a( r' ?/ z1 K5 q; G
pLight->Ambient.g *= 0.9f;# V4 U) d1 ^2 Z+ h& }" W
pLight->Ambient.b *= 0.9f;! I7 `. u$ K* f' c" g+ o; m
7 r8 l3 ?3 K H x" H0 T0 B& ^% a d memcpy( &m_light, pLight, sizeof( m_light ) );
( l% [0 m" i8 z& i7 N4 i ) l4 B0 t; W( ]* ?+ l8 s9 z
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
K0 z( |) a7 g& v pLight->Appear( m_pd3dDevice, TRUE );( {& k+ w5 e/ f7 ^% K) p7 H
1 V3 @. S4 U. p
DWORD dwR, dwG, dwB;
, i' C! `# A5 |/ p dwR = (DWORD)( pLight->Ambient.r * 255 );
$ ?! c- D: e' ?5 L' z dwG = (DWORD)( pLight->Ambient.g * 255 );8 R) j* y' C; `/ f8 s$ _. C7 r3 b) S
dwB = (DWORD)( pLight->Ambient.b * 255 );' { j4 o8 X" m/ p1 n7 o3 x
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );/ D* S1 }) R8 r0 N7 |1 g* n) b+ X
}
/ N8 `- U+ h& }0 e" P' t }9 r7 S; x/ |/ u! z
else1 ]% W6 i/ _2 `$ m- N+ \; Z
{
( j- l. B7 F5 m( a' X8 q5 | if( pLight )' R" P1 r. @$ Y S
{; s# ]' J7 p/ |" F r ^' p z
' K) H- O# t- I# g ?7 q' r. q
int nHour = 8, nMin = 0;
; r9 n M# x' i5 f8 H% k #ifdef __CLIENT; U* B- w1 ~. v3 Y& N
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
. @( |, I( s! i, t, k" L+ I) y nHour = g_GameTimer.m_nHour;
( a' Z9 ^7 m! e2 B nMin = g_GameTimer.m_nMin ;
; M% }3 z' E8 ? #else7 N3 H: c; u. U: A) `
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù./ q+ q: p8 M5 P; I0 Z, D6 o
if( m_nLightType == 1 )+ G2 A/ t" Q6 h8 K+ w4 a. L
nHour = m_nLightHour;5 |$ l+ Q* p3 Z+ j. y6 s9 W
#endif
7 K1 e( i( p# o" W' p _+ z8 C nHour--;6 x, c, C6 o( }6 u: i
if( nHour < 0 ) nHour = 0;
9 R6 A* q7 M6 u$ k- d8 T5 [ if( nHour > 23 ) nHour = 23;
2 S; x2 o3 Z: A1 x; R
" f( g% z$ e5 `, M4 H //if( m_bFixedHour )
- W0 C0 N7 y* |! L( B* U! |8 Q // nHour = m_nFixedHour, nMin = 0;
3 O x7 c0 ]/ t LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
4 D" P1 }+ g: ^# y8 ] q2 @ LIGHTCOLOR lightColor = m_k24Light[ nHour ];
9 q3 U: o+ a) x/ V' b1 t( J" L) [1 r/ C
//m_lightColor = lightColorPrv;
/ M1 |, F/ w0 W4 j+ H) a6 B lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
+ ^% }. `3 Q! M7 U! \& q lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
7 J7 k' g5 v4 p6 P; O2 o$ n lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;9 S) m. B) n- W% A1 d
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;, c) R0 g ]8 Q$ B7 S) B* c9 S8 m
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;! L y) t$ ]# M- S8 r# M |8 Q
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
8 Y% |$ {9 P/ n4 a. Q' D( r0 G // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
6 w: M) l* ]5 @- k5 r
" p8 I9 W( O' m- q1 h // à??μ oˉè*
% n& B8 `5 G* h" x: a5 k! Z pLight->Diffuse.r = lightColorPrv.r1;* U) x: l- A a( ~
pLight->Diffuse.g = lightColorPrv.g1; p% x& [! v' h1 ^ \
pLight->Diffuse.b = lightColorPrv.b1;4 A# K) t& H- A3 B' u2 h
// oˉè* ??à?
% A( P/ L: n; r9 \: {6 M! N I' B$ G pLight->Specular.r = 1.0f;0 z5 }2 ]" l, a, H/ t4 {
pLight->Specular.g = 1.0f; D5 s' o% K# V6 U% x+ b
pLight->Specular.b = 1.0f; N _* e/ t( l5 U& x
// àü?? oˉè*
* z2 h4 _5 _2 b; P6 i4 O/ } pLight->Ambient.r = lightColorPrv.r2;0 }" ?7 L7 h8 u! s1 {2 V) [
pLight->Ambient.g = lightColorPrv.g2;
+ e8 B O6 c, _3 f pLight->Ambient.b = lightColorPrv.b2;
f$ u& ]( ?% _" J
3 e- w" y% @, A; R4 P) O7 U if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 X5 x. ?& s6 \, D, Z: D& q% x
{4 j# [/ Z1 [4 a, s/ I# r2 N* R
pLight->Diffuse.r *= 0.6f;
2 }( }9 X% f' P2 h3 u pLight->Diffuse.g *= 0.6f;
) ^3 {9 a2 t. n+ k7 J pLight->Diffuse.b *= 0.6f;( @" I! O# E! K
pLight->Ambient.r *= 0.7f;* _- n6 t& ?' j. ^$ a) k, e b* f" G
pLight->Ambient.g *= 0.7f;
- E! }3 \' P! V! y. e8 I pLight->Ambient.b *= 0.7f;
# c& z) W% ~ ~' k% j }0 ^5 c$ M$ F% U/ }
; x& Y: U6 g1 t# S: K# p#if __VER >= 15 // __BS_CHANGING_ENVIR& [. m* R9 s+ j( J3 m. Y
if( g_pPlayer )
$ H# C7 S) ~8 p7 B! s% J7 q0 V HookUpdateLight( pLight );
7 S$ r7 V: K! e, T$ Z#endif0 H: q% [% L% F
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ ^" Q% h* N% i2 {) i# M/ q. k8 |2 R
#ifdef __YENV# {( f; j. c' c
pLight->Diffuse.r *= 1.1f;9 s9 W) N3 Z3 J9 B
pLight->Diffuse.g *= 1.1f;1 l$ j5 F7 Z2 \" A8 U2 l
pLight->Diffuse.b *= 1.1f;
3 p. z: B" s$ u- J" I3 m. w s3 \# I // oˉè* ??à?
' r U# Q! @& ]# `& b& f pLight->Specular.r = 2.0f;- t: {( [7 R+ I8 @$ ~2 r4 y
pLight->Specular.g = 2.0f;
5 o$ p4 n# l/ `' K3 D% Q pLight->Specular.b = 2.0f;% |: U/ w G0 A
// á?oˉ + R+ n3 c: L0 q& o: S' o9 i
pLight->Ambient.r *= 1.0f;" t, F! M" h2 [
pLight->Ambient.g *= 1.0f;' B( Y x; e( i1 k% n( G9 V+ K: k
pLight->Ambient.b *= 1.0f;, u# K' I+ h4 v4 I7 ]+ w
#else //__YENV
3 i/ \3 a7 x. j% m1 h pLight->Diffuse.r *= 1.1f;
& q. Z- ~# q; a: p& \ pLight->Diffuse.g *= 1.1f;
+ Y" j0 u4 l4 k& ?9 G pLight->Diffuse.b *= 1.1f;; k X O8 b9 x% M: g. n; c5 e" h
// oˉè* ??à? 3 J4 ]6 H/ q' f2 B+ T' k/ ^
pLight->Specular.r = 2.0f;
9 o: M% e* K/ |$ H* Y2 S; T pLight->Specular.g = 2.0f;
! o% y2 S0 l5 b pLight->Specular.b = 2.0f;, p' C; a8 t2 N. Y
// á?oˉ
0 W9 x9 C* H7 N! Z" N @ pLight->Ambient.r *= 0.9f;
$ M& p. n3 o: Q2 U pLight->Ambient.g *= 0.9f;4 V7 r. l: l! N$ [# M9 D1 [: a
pLight->Ambient.b *= 0.9f;: D: C& S6 l' k0 z
#endif //__YENV - r) p/ G2 H& e0 @4 j. r- L4 m7 v. s
$ P, N0 c, o) R! D0 K' \) `% k memcpy( &m_light, pLight, sizeof( m_light ) );
& N( _' Z0 V: E
3 m/ [9 X: {5 {# @4 V8 }% ~- ` D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
2 k _9 [- I2 L X/ O3 X* J0 k" ] D3DXMATRIX matTemp;4 ?6 {- {% `5 k- U5 f/ A5 `7 X! o
static const float CONS_VAL = 3.1415926f / 180.f;* s8 h! I- S! H* v5 t2 Z
* Q) B, {7 u/ E4 a! }6 g D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);( d4 x$ _8 d1 q0 e" A
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);: e9 G* \& Q& e( {1 |- H" [/ c
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
/ E7 P8 @$ \" U pLight->Appear( m_pd3dDevice, TRUE );
2 e2 e5 d. F; _" s5 ~0 j: }
: x6 d6 f' j! p$ m: V- _8 x // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& W9 w) U; G' T% \5 ?! f) x // D3DXVec3Normalize(&(vecSun),&(vecSun));
& J2 s7 C4 L& o% F# e" D6 V2 S // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ) F! j+ D( ^; c) \+ h7 U
" H# x, s) T3 O! x" \0 \
DWORD dwR, dwG, dwB;
3 t/ }, }; D0 H9 ^8 N dwR = (DWORD)( pLight->Ambient.r * 255 );
3 @! k7 [) x8 K* Q0 \9 Q dwG = (DWORD)( pLight->Ambient.g * 255 );
" P% {3 S7 @0 D6 d2 ?, [; ? dwB = (DWORD)( pLight->Ambient.b * 255 );' P) L) ~$ D9 y5 g0 ?+ G# A( m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
% N4 Z$ s* L' R+ i2 A }8 t- W5 I8 q: v) y* a1 Z. ?: f- _
}
; z H0 `9 _$ x% S# x% ?! Z7 T
& Q0 u0 _9 S- L; d5 `5 e) S; w m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
4 O; t' m: X% E; H3 P 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) );2 _/ l U, n0 M( Q2 C5 C3 i
::SetLight( bLight );
# U3 M1 |) X- z, z8 G8 f+ M, P8 u, G( k4 X% k$ D1 ]4 I, ]1 N
// ±ao? ?D?í???ó á¤à? ( B% _2 E. C6 c( g2 z6 f
m_pd3dDevice->SetMaterial( &m_baseMaterial );% P- R) i M# n2 C ~
$ J9 T4 w7 p! e# I# e9 L
#endif // not WORLDSERVER) C1 z- l# Z3 N( g9 S& X! P+ ~4 z
}
+ I4 c# H3 {; `2 y- b' m4 h( P并更换7 N5 Z5 e; ~1 U' {7 a& f
Code:
r2 G }1 Z0 ? o- R7 u__FLYFF_INITPAGE_EXT
. Z0 R5 M' X! j/ s. F& Q# n/ p定义( e" H7 E9 D& g- U. Q1 _3 t
4 {% a1 R; r, a3 ^! k0 h F
1 I3 _3 Z" U! g/ |1 Y: v
0 r+ D2 q+ s9 \, X5 Q
( a3 @7 I2 E/ I
现在终于删除我的狗屁加速...
" f0 ~3 y1 L8 W4 _9 Z2 J+ g [& I
# @8 ~0 k+ z; G$ o% k, S) K$ o
' `0 G) p9 L$ C( G, y( Z j, j8 T3 c1 L6 B# [
|
|