|
|
食品车:
5 [3 \7 a4 K3 P' c尾翼:
- w8 f1 r& B; X' G" q9 L' u
3 c# E8 y9 \; |/ V代码:: A3 X3 U* K# u) z8 M0 P- N7 N {
CWndAutoFood::CWndAutoFood()- ~; D W8 W' L/ o7 w3 ]' v7 Q
{9 d0 b$ x) }1 ]5 u2 ]
m_pItemElem = NULL;
& q6 D, U. \ ^, z! T& f3 x# ^* ? m_pTexture = NULL;: t! G5 J9 G* j! X% K5 o% C+ t. B
bStart = FALSE;& i9 l* k" y, O" w. _1 k
}5 x1 F$ i* c+ B. M, ?; M, C
6 o5 M+ b; F- `% m3 H! q- ICWndAutoFood::~CWndAutoFood()
m, b4 c7 c" w' }0 x{
, [+ T( r+ r. M AfxMessageBox( "AutoFood ist gestorben " );
% n$ _1 }, F: q}, [0 H" U; Y1 T
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
! O, }5 y" N0 w$ o- o{
5 S7 o+ `% f: N+ J1 L return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );& _! K/ D' t& e/ n7 i( Q2 S, Q( `
}
$ V! u8 o" z [( H9 l% M V6 V
8 s5 a1 \8 Y. Z' V" V4 Y% EBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
. K4 V6 G6 L! x* [4 x+ ^: R{% c. ^& X3 w" p2 r' q) _+ f6 }/ [
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' S4 p! v" ?% [5 ] CRect rect = pWndCtrl->rect;' [6 g$ _. ~4 h* t# s* p0 F
if( rect && rect.PtInRect( point ) )5 `+ I0 s) `& q& }6 b# v
{
6 d& Z5 e8 U' q p CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
: Z& p* C5 f5 y8 ^5 E3 i: I if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )% e; l0 v _/ P/ `- U
{
* ?' q0 ^5 n5 z( s$ x if( m_pItemElem )
' R8 g5 D* ~0 Y {
0 C. P% W$ R8 [" ?$ x& k8 h m_pItemElem = NULL;9 [$ [' h& \/ A
}6 K- v( {$ l; `" h
m_pItemElem = pItemElem;! w& E+ {* j6 j
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
; @- V7 A. q9 [+ D0 B) O }else{
M' D0 [, Y9 }" P a4 n SetForbid( TRUE );2 W# T& T! g7 M9 O$ V y9 H
}1 z! k- M% y, I O- o4 G/ s
}else{
g1 M/ ~+ Y- s# T K SetForbid( TRUE );: D2 {$ j) e& A% u0 |9 _3 m2 h
}
4 c/ D' G5 s# R# r R return TRUE;
( ^/ i, ?: z6 R% W}
& o0 T9 [) M4 z' i
6 u1 k+ b8 e" p% A Q- D1 jBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
, x# `! D5 M- | ]( J7 c# w6 ?{
3 Z+ ~5 N0 u5 }; Q switch( nID )8 f8 O( d, W* {
{& x( I: u( _8 _! Y4 @- O
case WIDC_BUTTON3:
: o) v4 g" s) T, M# e. S6 P {) s1 _5 Z2 f. M5 Z( r
bStart = TRUE;
6 P+ D4 U7 ?3 A2 Z1 F break;
* E1 c* L* X4 |6 H }- {! k( m9 C& j- D
case WIDC_BUTTON4:
$ Q C: Z; E H& f7 ~ {
) N* J1 H; ?# h" ~( p bStart = FALSE;
6 o: }$ h+ V ^$ b; O break;
2 O* v4 P2 s' h$ E U) x M4 u }
2 X& G. l/ }* z8 D3 N( { }
2 b+ O, [8 b4 L* J! G* J, [, A return CWndNeuz::OnChildNotify( message, nID, pLResult );
" Z4 |& m; y" g- f' u} % @3 W$ Q' M2 ` f( G
void CWndAutoFood::OnDraw( C2DRender* p2DRender )0 U/ Z0 _% s ~5 I2 I* W
{
- a8 R1 W5 }* T, P% e6 N CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );' u+ [$ G9 m _$ i3 b! M. [9 p9 L
if( bStart || !m_pItemElem )
$ P$ J* x& x P- V {9 O0 ~! x% s- x, e) |
pBtn->EnableWindow( FALSE );
) E( r% l2 f, E0 ]3 P" \) ~3 ]2 m }else
8 E3 J+ {0 J* N5 i' [" ^+ s! ?2 w pBtn->EnableWindow( TRUE );
- ~* ~- I0 K$ ?2 o; r if( m_pTexture )' t% v5 Q9 z. T# l9 I
{' e. Z1 ~6 R1 l' y$ H3 z/ k
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 D4 D4 X+ b0 Y5 ` if( wndCtrl && wndCtrl->rect )) }7 |9 T6 f; h, v+ V7 g, x3 P
{) k. P3 ?8 L9 |& V, m8 z
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
_% U8 p p! s0 F }
. G# ~9 N- s0 y }
4 W" D# P u; T% H5 ?1 y}
2 t5 D v9 N5 l- F- Z w4 P/ ]1 [& i7 P8 `% |2 n1 m
BOOL CWndAutoFood: rocess()9 N7 B! C! p3 {0 t4 N& J2 r5 i% G9 C
{
) m' d" L# q! N. w if( bStart )! Z( M6 G6 `, G2 @7 b
{- \ x8 Z3 J2 c% q. v% z
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. ?" z' \% f# S7 ?! P {3 D" ~0 m) D& F% h
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
. k6 W: q1 J9 M, g0 } g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );$ j# e: S0 h1 n4 Y8 G
}else{
; H% _3 i" |. ^ bStart = FALSE;5 a+ ?5 k. i1 ?3 c, {* k# H0 q7 G
m_pItemElem = NULL;
* Y1 Q: K* S9 q$ T0 [ }. i9 |& e* w( j- a
}
" g) d! c$ a) U4 l) K+ \ return TRUE;
& X C0 U2 r' b: ^}
" F% ?. O8 b: I2 b; U& [8 Y, Z4 t e* ^' R9 C6 i, C. j
登录视频废话:0 ?1 }3 ~9 ~( X# N2 o
尾翼:/ B3 B9 _8 L! {) B1 c
' a! _% z) k- W代码:
4 C. [ I9 r1 f) H0 O
) J2 n4 P e& N6 o% Y- a8 Cvoid CWorld::SetLight( BOOL bLight )5 @8 {. R& y0 P x8 [
durch. t& [, N4 e% ~3 k7 M
Code:( E u$ v1 r# u% K5 J* C5 r; S
void CWorld::SetLight( BOOL bLight )% i [* k1 A+ v* H
{% o1 s* `4 q% o
//ACE("SetLight %d \n", bLight);
8 E% Z& }/ r+ j& J5 G
, ?9 r" A2 M4 E2 f9 E! C#ifndef __WORLDSERVER
" q! I) n$ k5 ^" P; e8 ~1 v) K DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
$ p0 B$ `) X+ _/ ^, Z CLight* pLight = NULL;( T* _* b# W( Y) L5 U! D
8 o; u( f0 O2 P& z' @ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
6 a9 e5 l9 E8 v! W; J! f. o8 s* I6 w
pLight = GetLight( "direction" );, v& }: \" }( t6 w% \0 ~' C
2 q$ ^8 q# J+ {' P4 {' O#if __VER >= 15 // __BS_CHANGING_ENVIR
7 N% b7 z" e8 E6 n: ^ if( g_pPlayer ){
. R' a! g( L8 ?9 W' a3 p, s ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );: |3 B% W7 u: J+ [$ V0 N" `( Y
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
) y7 X4 ~$ t$ { {9 ~& ?/ k5 V( e: T
if( pLight )7 H1 R& d4 h( H
{
) {% y6 I7 w6 x. v* \* T. F* v pLight->Ambient.r = pInfo->_fAmbient[ 0 ];0 s% B) E8 c- `* F
pLight->Ambient.g = pInfo->_fAmbient[ 1 ]; Q: X" v& g- I( v( ^: a7 [
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];# l& e1 Q: ?- q6 x
* e6 g3 J/ f# K% O2 r9 L
pLight->Specular.r = 2.0f;
2 V) a6 ?0 }) \9 S, n( C# D. g/ ? pLight->Specular.g = 2.0f;
. r3 c; l7 ], w( D pLight->Specular.b = 2.0f;2 f% S+ c" a2 R2 n5 P
; u4 |. D0 g, o
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
+ i2 J5 T3 z2 m0 V0 ^% R4 C pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];9 X7 h% l0 S* p9 o w
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];2 g' s$ J$ J4 S9 b1 Q. L$ N0 w$ ~
4 [) j# G/ y8 R3 g y HookUpdateLight( pLight ); 1 h+ y: w v( k" l7 m$ X+ K; X
2 M- F& w: I% T
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
7 r# u6 X9 T, i" Y - k) [# `$ h$ F
pLight->Diffuse.r *= 1.2f;
( M1 V& k" F4 R @* ~* b7 D0 K pLight->Diffuse.g *= 1.2f;
* Y- z4 n: N5 ^- @ pLight->Diffuse.b *= 1.2f;
3 H8 ]" u" x2 ?+ l, M; W& r; u4 V' r; }8 E9 t4 ^' Y
pLight->Ambient.r *= 0.8f;/ [8 i9 e7 e8 Z& G" f7 x+ [0 \
pLight->Ambient.g *= 0.8f;1 L! T1 I3 u( Z; n% \7 V- B
pLight->Ambient.b *= 0.8f;( A/ |" [( J1 X9 t( e
$ d T5 h7 m9 h- m1 Z memcpy( &m_light, pLight, sizeof( m_light ) );
# _+ @9 z' u# b1 H1 f, `
" v, \) }' ?, ]/ A D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 E, G: H) u% @/ s* e) o9 l. n D3DXVec3Normalize(&(vecSun),&(vecSun));% y! l2 X! ?3 o B* L* v* ]
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' }( w: y0 g% d# D! }- F pLight->Appear( m_pd3dDevice, TRUE );: a2 S7 c- X8 d5 p' J" |5 ?/ ^
3 T# w6 O7 {+ p- w, U5 V% ? DWORD dwR, dwG, dwB;
4 B) |: g5 |& s5 e9 I1 T5 _ dwR = (DWORD)( pLight->Ambient.r * 255 );2 [% s0 g; M) Z5 J5 s1 C$ H
dwG = (DWORD)( pLight->Ambient.g * 255 );
( S+ x7 V7 k) A" S6 _ dwB = (DWORD)( pLight->Ambient.b * 255 );' h, N9 Q6 y; d! x7 X1 E+ w. [' i
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );1 |) e* I9 u- m$ g8 _
}5 C1 d; b" A% n0 o6 Q e
}
+ X/ s9 _% Q" t5 ^1 C) V; c# C' E }
/ g3 L( T% F" i+ E8 s else8 f. ^* R2 m# T$ u3 h& V
#endif 1 p$ f4 x' n$ n4 Q# G; s$ L
1 u6 F8 m1 v' v: C) Y4 O. } if( m_bIsIndoor )
+ w) I I J& L# A$ J {
! L$ t0 n) b' a1 |! O1 L7 \) B if( pLight )4 ?! x5 J3 a, k
{ , R6 s& ~9 H6 L) }8 o
// à??μ oˉè* , r9 x3 F, i. E! h! q2 y
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
9 i, X; @% ]& e/ x( s. o- g3 e pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
8 w4 O2 \, I7 C pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;/ [ p& V5 o+ E* G
) S7 h7 F F' y6 H" s8 e6 M
// oˉè* ??à? * Q% ~; l2 u" I1 |
pLight->Specular.r = 1.0f;9 w" ~/ \' k8 e% F/ s: a j: w
pLight->Specular.g = 1.0f;1 E& k5 A. _ V+ `: C1 M( l9 V2 Q
pLight->Specular.b = 1.0f;6 v: x" }/ ~5 B7 ]5 n0 q
// àü?? oˉè*
- j2 n2 q0 l! P& i2 _5 \# i* G& y* Q pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
9 b) C* Q3 {) J, R pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
6 P6 Y p+ ^/ B( |- Z" w pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;" c8 ?8 Z h# S1 A5 E. m
* U; K3 o' m j; w1 T9 ]7 n: g$ k% p if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.: v6 C$ m7 }; S: @
{
3 I# D: M2 }) U* g$ B' J pLight->Diffuse.r *= 0.6f;( i9 J u( R! @) U! w
pLight->Diffuse.g *= 0.6f;
3 X; ~7 S# W4 e pLight->Diffuse.b *= 0.6f;
/ z) {. U7 l6 x0 K& a pLight->Ambient.r *= 0.7f;# M" Y c6 d9 g% B! S" i9 m2 B \
pLight->Ambient.g *= 0.7f;
, b% X& i7 Y4 [; D% e" u4 J pLight->Ambient.b *= 0.7f;4 M; F% [1 Q, T
}$ H. X+ k' t6 o3 W8 ~- f9 I
5 G3 x) b" e: \# ~7 ~1 m#if __VER >= 15 // __BS_CHANGING_ENVIR U- i, ^4 Q7 ~4 }7 x: p% b
if( g_pPlayer )7 B5 F* H5 W, A- n" a
HookUpdateLight( pLight );! C% G8 Z; }4 [; F9 ^ S e* G) `
#endif
1 z( k& P* ~9 ^; W* ^ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 _9 @. h: I9 x5 L& A7 o% x6 \( n" ]0 k( {
pLight->Diffuse.r += 0.1f;
& J/ o7 m1 D9 o) ]$ K" y% P2 ? pLight->Diffuse.g += 0.1f;/ t4 t- T( G; I
pLight->Diffuse.b += 0.1f;& o0 ]3 @* n7 y' ~* L2 F
// oˉè* ??à?
/ M/ P: }# s- ^# Q$ O2 t7 K, l2 ] ~ pLight->Specular.r = 2.0f;
( x: e0 P( ]1 T# _: \ pLight->Specular.g = 2.0f;* H( w* T I. s' R# O0 \
pLight->Specular.b = 2.0f;
$ r% A) r1 U( s- s3 ~1 Y // á?oˉ
# l, w; a7 K: C8 R% \' o4 w pLight->Ambient.r *= 0.9f;
9 J5 Q4 |/ U% N4 B& k pLight->Ambient.g *= 0.9f;7 k. k P) m" w% B/ M
pLight->Ambient.b *= 0.9f;6 O: y% Y) r5 h# a
+ L) O* j* x9 `- l( l5 S memcpy( &m_light, pLight, sizeof( m_light ) );! y+ Q( Y5 v4 G' F$ e- K
/ ?- _8 h. [6 G- ^+ E7 c pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );0 R C; i9 `, u/ q8 E
pLight->Appear( m_pd3dDevice, TRUE );
4 ?+ m' ?; N, E; }7 e$ _- C8 E
- P; B3 p0 f) Z! x$ p! ]9 A DWORD dwR, dwG, dwB;
. A, p6 @( k3 g) [: l8 u# D& d+ P dwR = (DWORD)( pLight->Ambient.r * 255 );& B0 C: H, O8 C# p/ Z
dwG = (DWORD)( pLight->Ambient.g * 255 );9 _& |4 e. h# t8 E* R
dwB = (DWORD)( pLight->Ambient.b * 255 );
& E% o$ y) M' f dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% X! S8 [' E( V7 c
}
% D" ^8 J. v- S: w8 I }' }! P) T/ ]6 g5 b- A
else" y. `3 V' q/ q
{
% h3 ~! a5 V8 n5 l) V( |, [$ { if( pLight )2 C; N! y; K, [0 H1 `
{, x+ f$ Y2 ]: i$ s& E* i+ Z- H) d
$ v( c. e- v- I1 S
int nHour = 8, nMin = 0;
; Y' t; D/ @) Z* ? #ifdef __CLIENT) _$ w8 H7 Q2 [' z4 l
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
& L4 b, P' P5 d2 e* t. v# b' O nHour = g_GameTimer.m_nHour;
1 b+ |8 c% q3 \$ C+ z5 r! K# r4 W2 H nMin = g_GameTimer.m_nMin ;! e/ ]# S9 L! m
#else
; c2 b5 ]& B$ n# q! h2 q // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
( f. P4 Q( k' j- J6 V if( m_nLightType == 1 )
2 ~/ M2 r3 i, J' \8 [ nHour = m_nLightHour;
* x# n# w# Y, M' m$ u2 Y #endif! }* l" `/ f. z( O3 i+ r* [/ g
nHour--;0 y) _6 Q- h+ X: ~
if( nHour < 0 ) nHour = 0;" a2 T9 I' d" E9 Y. _ Y. h
if( nHour > 23 ) nHour = 23;2 d r: b( Z% i1 G7 y5 Z" n
k2 Q/ Y8 B2 M. _6 D4 C. `
//if( m_bFixedHour )2 @; F* {" r8 U% H# H: g
// nHour = m_nFixedHour, nMin = 0;1 b0 J' C. K* e$ D2 g5 s; F |
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];) f1 i5 W. ] m: ]
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
# W+ K v, X9 U0 E
) f9 C& ^+ |2 x* O1 [2 P //m_lightColor = lightColorPrv;. P* l ~. f* ], F3 k
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
+ H6 I% I0 u* H3 a4 r( B% z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
2 [5 y$ V1 l/ m! i/ A6 }6 Y lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
1 t% U/ V! W8 u) z+ L5 s lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;$ S8 f! d7 K$ p6 {* Q
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
( ~% J7 @& ]9 J1 Z, p0 W( t( o! u4 s% l lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
c/ c5 g8 W# l9 `$ ^' w6 x- G; @8 D // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)) L+ m3 }+ V, I* g
/ I& {4 N0 `7 y# c* M: G
// à??μ oˉè* 5 q) ]4 T& e' S7 \1 U9 |$ D
pLight->Diffuse.r = lightColorPrv.r1;6 f5 S* _7 S* J' s: |
pLight->Diffuse.g = lightColorPrv.g1;
. B4 L2 f% c5 s4 D$ l0 a pLight->Diffuse.b = lightColorPrv.b1;$ [# x/ x' J7 |: O7 k9 m# r5 L* u
// oˉè* ??à? A6 _3 l4 j3 m8 s" o; z" o
pLight->Specular.r = 1.0f;6 G3 U: ]" C6 e. e% i
pLight->Specular.g = 1.0f;
3 A' o# ?6 m- X: r# v pLight->Specular.b = 1.0f;$ G: m6 _+ m' M/ o6 c
// àü?? oˉè*
$ d8 a ~6 ]/ O. Z5 R2 A; ]! s pLight->Ambient.r = lightColorPrv.r2;
1 d7 W: B; m# ?6 g! o# D7 c4 ` pLight->Ambient.g = lightColorPrv.g2;
" z, C H6 H+ b7 m; O. m pLight->Ambient.b = lightColorPrv.b2;
' V% h+ {- c) o
2 m( N3 E4 ~1 R if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
( @8 V+ w7 X5 T5 E {5 a4 F1 M8 p+ o" E1 I% g
pLight->Diffuse.r *= 0.6f;2 V5 f2 f+ s1 T
pLight->Diffuse.g *= 0.6f;% u- g! H4 p1 O; G$ B4 M( Z
pLight->Diffuse.b *= 0.6f;
( Y. x9 c# c; J2 U* G; P- n# m- _ pLight->Ambient.r *= 0.7f;; g1 |# ~# i$ c5 ~: Z5 J
pLight->Ambient.g *= 0.7f;
M1 D/ H6 D' r8 ~% D& ? pLight->Ambient.b *= 0.7f;
# S9 f5 Q% o9 b }- f/ H k" P) S7 v
+ K8 A$ a# e% @
#if __VER >= 15 // __BS_CHANGING_ENVIR2 e* z2 @. t- a, K
if( g_pPlayer ): t: a1 t" r4 h/ Z; S
HookUpdateLight( pLight ); / ^4 j& {2 E! a$ [) G/ T
#endif
+ `+ y6 ?( ?! v# m7 k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# \: i6 m+ H9 M! R6 b$ `4 [/ n6 W3 n- |
#ifdef __YENV
% D$ y0 X; ~/ b6 `2 k" \5 `& E2 \ pLight->Diffuse.r *= 1.1f;, i: G8 T8 ?& c/ l" ^ w
pLight->Diffuse.g *= 1.1f;9 s$ p, z5 m. G" q% n+ \
pLight->Diffuse.b *= 1.1f;
0 z$ A# U' J5 t: M // oˉè* ??à?
( L2 d* K( |0 U9 o. Z& O& Q' _, m3 x pLight->Specular.r = 2.0f;
! k; g% @1 r5 R! F6 I) S8 u pLight->Specular.g = 2.0f;
( M: B* ?, o( ]! o/ m6 r$ r6 c pLight->Specular.b = 2.0f;
% E7 S6 X! z3 V // á?oˉ 6 e, x' U! ?* _# U- Z
pLight->Ambient.r *= 1.0f;
5 O, Q7 J6 e% I) W6 _$ }. n5 s pLight->Ambient.g *= 1.0f;
* t; v% Q/ @, S; c; B6 ~( A% _" a pLight->Ambient.b *= 1.0f;- B7 |5 ]3 X/ u, c
#else //__YENV
# m: q7 D9 Z9 X pLight->Diffuse.r *= 1.1f;4 I* f! f1 I1 Y2 I, U- o0 o
pLight->Diffuse.g *= 1.1f;
! ^' a+ C' z J& s4 V0 b# ] pLight->Diffuse.b *= 1.1f;
5 ~' Y! b1 M5 V7 U2 S! B$ Q // oˉè* ??à?
3 b$ i5 \, V' V) h3 U pLight->Specular.r = 2.0f;5 G4 w9 v, d c' ?. i8 @
pLight->Specular.g = 2.0f;6 v7 \3 w/ f0 C1 X5 g* _
pLight->Specular.b = 2.0f;
1 i8 s( N" y9 ` // á?oˉ ( m9 c, R/ Z5 M5 t: w, p% P
pLight->Ambient.r *= 0.9f;
0 [( M7 g' O9 e3 y# L pLight->Ambient.g *= 0.9f;
. I- h( {% {7 K+ @ b h pLight->Ambient.b *= 0.9f;$ `1 }( g/ q7 N* Z* w( ]$ u' p
#endif //__YENV
1 l/ k% M6 k2 F " V" ?: c" ?) k" y, z R+ v
memcpy( &m_light, pLight, sizeof( m_light ) );! F6 y: c% r( k5 m Q1 d2 B1 J! ^; i
7 B4 M6 D2 c2 J' P- d% | D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);$ J) s4 [! E& {, u6 {: b) n/ K1 D. u
D3DXMATRIX matTemp;# I) w/ G- h" B' [0 N
static const float CONS_VAL = 3.1415926f / 180.f;
+ }5 t ~ U, E7 v6 v
4 Z2 \# C7 r, b/ J/ l7 } D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);9 f5 i% K4 k( Y K; a9 A
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& v0 p$ V7 }2 I
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); . e" S$ o4 P+ P e/ c9 u) h
pLight->Appear( m_pd3dDevice, TRUE );
2 L+ @; C8 o# F4 L7 E
3 t9 v; a& \0 P% E, [ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; @: V9 a9 N+ d& |3 b
// D3DXVec3Normalize(&(vecSun),&(vecSun));
" u3 v* c x+ V! X6 q! q // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; D8 o7 ?) a% o/ t1 p! v* J3 ]
& V& p2 i0 o# O5 x5 G DWORD dwR, dwG, dwB;
6 i. _3 I* \7 ?; i dwR = (DWORD)( pLight->Ambient.r * 255 );
+ E5 O4 s7 d3 ~% R dwG = (DWORD)( pLight->Ambient.g * 255 );
. S9 H( }' X8 y( d dwB = (DWORD)( pLight->Ambient.b * 255 );
" k% W- r0 i! x& Z2 ]$ R# m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
1 g0 I8 y, E+ [6 P% l& U; m3 A" I3 E; H }
# ]+ d# k d f/ u0 l/ m- X2 O3 Y }+ O2 b3 @( H6 T. r$ n# i
% L# E5 |- b. l$ U# H2 `- I m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
+ f7 z7 ~* m9 w9 j% L3 `$ ~ 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) );
9 h0 ~, r7 d1 ?- k ::SetLight( bLight );6 @3 g+ V6 Q( e' [8 ^9 ^
+ K r- ~( a$ W0 K/ }# R1 X
// ±ao? ?D?í???ó á¤à?
( g4 M4 D6 W- x" t$ L- H' O m_pd3dDevice->SetMaterial( &m_baseMaterial );
& Q: ?' m: i- j2 C+ {; C
2 ?# M! I9 ?2 |# y5 r#endif // not WORLDSERVER% j: ~) @3 z8 E3 n7 j
}7 m5 L- m+ m# W6 |; m6 V
并更换
Z; d- X/ t! O W7 B& ACode:
: A; v) y( B: Q2 w; R1 e__FLYFF_INITPAGE_EXT Y; w& ~% z$ w
定义
5 u5 J( G; e. X: c% C$ Z) j0 J
9 Y6 u1 U6 z0 H3 A! g8 q
# V4 ]0 C6 W8 K+ S: N
& m! k3 ]* U6 `7 y; ?3 j- @1 M2 v7 _6 r3 U
现在终于删除我的狗屁加速...
$ L3 ^3 G' i! @+ `- c: \. H8 n
& z6 v; \& k s
5 e5 q1 v7 A- d* K. @
& D- w5 L0 d f |
|