|
食品车:1 d. Y0 W, F0 W$ i' |2 x7 F, o' p
尾翼:' ^6 G% L/ B+ ?6 o" n
, r D" A( T4 g代码:
: c N; L5 s r# [- ]CWndAutoFood::CWndAutoFood()! B- K) p$ i$ t7 u! a
{- @: [5 E, ]# u7 s
m_pItemElem = NULL;4 C9 a- ?! ] S7 `
m_pTexture = NULL;
: @$ v! m' f' B7 y! V3 { bStart = FALSE;
# K! K3 R2 s! _; K S% U" l3 l+ S1 i' f}
! _% J1 H2 @+ Q& U$ D
" m+ y: v) m. `2 WCWndAutoFood::~CWndAutoFood()* b3 A7 D) C4 g1 A/ K6 }! C- D
{
5 q' U3 D {, |+ \3 R1 q }+ j AfxMessageBox( "AutoFood ist gestorben " );
% j. o4 v2 O+ U3 c, ?}
8 W9 G: N+ b7 j0 s6 iBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )$ i0 w) u A, b3 N E" e" Q' X
{
) \7 V& P F4 j+ W: g. ]$ t return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) C) z4 p8 i& Y( T% {) N+ b& z
}3 r: C) u, G* [# p9 |5 J
, M& v9 v/ {: x. }+ m4 eBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
* m T$ j, O0 r: W- W! u{
& q/ F: V% j9 K( w- y LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
5 a) [/ ^/ {& C" N% q" Z CRect rect = pWndCtrl->rect;
/ \& D! b( T( T% {* B if( rect && rect.PtInRect( point ) )
9 ~4 O6 l Z/ [ Z8 d( E {% {8 E# E2 L: x8 `4 Y
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );2 F; p5 A A3 Z( a8 G8 S# ]
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )! a8 b, J' r. C
{5 N7 T& Y) ]2 l) ]
if( m_pItemElem )
$ y# f- w4 _8 i( R {
5 a% d/ [0 T) F* i) K m_pItemElem = NULL;* K+ R3 X) {' J$ h* q/ @
}
4 t! _. c5 \+ U ^+ F O6 f' H x- k m_pItemElem = pItemElem;+ D/ d( k' f7 ?2 c; L( _- A% \' r
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
+ ?. Y' i: b7 u% l4 l }else{
2 K, f. _ V# D1 Z% P, O6 y8 D2 j' X SetForbid( TRUE ); a1 G1 I* x) p Z6 \$ c8 M
}. j5 r, i) G4 }1 i4 a' T
}else{4 }( M. J) j' d+ S: E% ?& \- D
SetForbid( TRUE );2 w" X R# _" k! n1 r- \
} [/ |+ R8 T6 N3 y v
return TRUE;
6 ~: }, x& L6 h, b! D$ r}% ^+ Z1 H. h! v; n* _1 g" M. \( R
, ~5 {! \8 }7 ~BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )3 u1 P1 G+ f0 s5 B: E
{
5 S; m/ i3 s$ [1 ^9 t' j; h switch( nID )5 `( d9 t8 J; P3 O! E
{+ O7 V! | U; ?5 V
case WIDC_BUTTON3:3 z) i/ ~9 @* W5 _, o
{3 m; n& {3 B2 a5 {3 b2 a. _( p
bStart = TRUE;7 N8 u: d( ^! |4 x
break;
2 v- c; ]" y- B! j }9 Q. S- h9 k8 m$ z
case WIDC_BUTTON4:
; x- j$ s( a1 J2 J: ~ {, i& L: z" a/ o7 @7 B4 r
bStart = FALSE;
! f; @. F% O) l' _& H break;
4 I/ d. D! j; | V* b4 `8 k }5 W4 s2 h( K! B" i A4 X: i
}
2 J z& k, h$ ]9 h8 E i return CWndNeuz::OnChildNotify( message, nID, pLResult );
# j7 q) u+ s* {3 G, `}
1 O+ U, u \3 }8 p- Bvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )$ u4 @6 x* h- ~, \, s" t$ }2 I% l p. |% x
{8 G$ u& p; W- D5 \3 T# h2 N
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );- v- {0 \0 Y/ W, X* }
if( bStart || !m_pItemElem )- H- J' E: l2 v& t" _9 ?+ k
{; C( _5 a2 \, q2 w
pBtn->EnableWindow( FALSE );8 O3 t2 {" f1 `* A* c* ^! W
}else
6 B# Q$ D! x \/ C7 H ~ pBtn->EnableWindow( TRUE );
& c7 J2 L/ I: u* Q( B$ W0 G& l if( m_pTexture )
' I, O* c1 G- @/ K2 F5 D! k {
5 Z3 E' z# Z, h* t7 F) e$ F LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );& p/ J* S. E0 }) U3 u0 X' R5 z& c9 H
if( wndCtrl && wndCtrl->rect )
2 q5 q9 U }- |; l; q3 z/ b" M" J- m {$ F j5 r: I2 q4 l
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );. \* H# k4 `6 N3 h \/ A
}
2 G) ~9 _0 B; V5 e: G& ] }3 ]# u0 E, K/ _, Y" O' y
}
1 G |4 C) W, s0 F7 Q( ]" t5 _7 z( r ?7 W
BOOL CWndAutoFood: rocess()
9 n! v1 P. K6 _6 }2 C{
6 W; t4 E' f8 Y9 V5 E! T if( bStart )5 j$ }) |, f4 y U/ q! c
{5 j4 y( z3 W: N
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
) t& ]# K$ q4 |0 P2 W( h {- K* R7 A. a& C( R9 I
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ). M T' y6 @9 o1 o# [* i
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
8 x& E% o# d/ ^' k" G7 u( p* U' { }else{
g2 n7 k4 K( K bStart = FALSE;) `2 U6 K; f; w" V( S
m_pItemElem = NULL;# E1 C0 y8 D- u6 k6 F1 v: z
}+ ]. j+ a) c( c: E9 _' G
}
- D6 g+ `" t- ?* ^ return TRUE;9 G3 z8 }1 Q$ M+ V' w
}
4 a% H0 q4 }' j0 G( Q. m4 J0 y: u3 a: _$ X7 _2 G$ x+ K1 U
登录视频废话:# ?: x: a7 J0 M% i6 e
尾翼:
% G% X# t+ D& f+ j8 _( A* M, o( ~7 ~
代码:$ x; x2 T! T2 X1 R
+ V2 j0 [& P& d, hvoid CWorld::SetLight( BOOL bLight )
# w8 v; L; ~$ c/ p) Jdurch
! V- G4 E# i+ O6 QCode:
- y* D& c6 P8 N, ?8 ~void CWorld::SetLight( BOOL bLight )
7 c* }' a- G, m9 b1 q{4 ^/ Q. }% H0 {
//ACE("SetLight %d \n", bLight);) \& t" L B- R% E) c
4 _5 r! L' r& b, x. t#ifndef __WORLDSERVER
8 a, u$ P" W, P8 a+ @2 d DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);0 ?- E9 f8 j) G7 X( c2 k
CLight* pLight = NULL;
* S) @( H* r8 D
9 u; D5 M8 i5 p- K7 I/ L D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
9 Y8 _/ \& c* ~5 t( R
1 k, L% m; o# S* P( T/ T' \3 b pLight = GetLight( "direction" );, B; J0 l# ]+ s5 J& m7 e
" r! _5 I, H+ A6 b5 [: c* p2 _1 G#if __VER >= 15 // __BS_CHANGING_ENVIR/ b+ s! _* S+ w4 v( e! w5 X, h
if( g_pPlayer ){
& I% o& h' D. b( S ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );- p; P8 W! {: O; x
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
2 h' d$ C% @# n; j- r: l/ j {* ~2 x/ Q; K* m7 ?7 P
if( pLight ) @6 z- o, n! x# e# t9 \4 G8 T0 f
{
3 h( P' @! m" ]. c, K S/ P# E: A3 t pLight->Ambient.r = pInfo->_fAmbient[ 0 ];8 ?$ t# ^; E8 E6 J& t! k' @
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
" o+ Y" ?0 B3 f6 q+ V pLight->Ambient.b = pInfo->_fAmbient[ 2 ];- R- n I) ?# }4 N( f
. t% [( v# ]9 e" F pLight->Specular.r = 2.0f;; X8 P/ l9 l8 w: {& t
pLight->Specular.g = 2.0f;
* B' A7 r3 L$ O8 ~, a0 v pLight->Specular.b = 2.0f;+ C+ H+ g3 z L8 K3 c1 y& t( t
( ~6 J: f& s% b6 j2 \4 ?# A' x/ w
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
) C/ O7 j; F( _/ T/ R6 q" L, J& \ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];/ T) a! W4 X2 h# j: G+ z* t
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
0 k6 h; B( |* J* C ?9 V$ g
8 n1 {, I( e/ Z ~' y HookUpdateLight( pLight );
# w( _- o+ I# N5 v
1 R- ?# a. g- u* l; M memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
7 F9 ~5 ]1 S: \! R+ n, Y, W5 t4 x
2 _& P: [$ G: Y0 ?- j2 u pLight->Diffuse.r *= 1.2f;
/ W! l- X6 \+ h! o; A pLight->Diffuse.g *= 1.2f;& ~ [6 Q! S4 \0 P, ^
pLight->Diffuse.b *= 1.2f;
* P5 \1 ?5 s+ W
1 k9 \; {# \8 b; }9 j- { pLight->Ambient.r *= 0.8f;
3 q2 w$ r8 z9 `7 e) @ pLight->Ambient.g *= 0.8f;
# u* s7 g: f; |. K; O6 q$ G pLight->Ambient.b *= 0.8f;( f! s7 v2 M1 O7 c) I2 m& E5 n
1 V! e% r5 A2 V1 r; w4 \) Z memcpy( &m_light, pLight, sizeof( m_light ) );% ~$ C7 b# q: [+ v/ I2 X
/ C/ H" Z$ [, {( G
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);) f! b# z* @# E8 z3 P
D3DXVec3Normalize(&(vecSun),&(vecSun));
& f9 y1 }" H7 T# k pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, R, `; K8 s, Y pLight->Appear( m_pd3dDevice, TRUE );
5 H3 b. B3 i. b 6 Y2 f* P6 [# o( `( n* D D7 R5 y1 H, t
DWORD dwR, dwG, dwB;
( F, h- X* F0 q7 | dwR = (DWORD)( pLight->Ambient.r * 255 );. j) X- {4 c: I w. J
dwG = (DWORD)( pLight->Ambient.g * 255 );" Z Z7 i; \1 U: f
dwB = (DWORD)( pLight->Ambient.b * 255 );
" M. n0 [' o! }; } dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. p% o3 l) t7 `) p3 a }2 S x9 r# x* v) M
}% O3 L! `& b7 }6 @) x& g, F; z
}2 C/ K: G1 `6 x& l9 a# c
else
) w# j/ S+ N: `#endif
5 G+ B/ s4 F3 @5 J, R) i3 t" d% Y, y5 Y4 R
9 L5 k+ w3 k: h if( m_bIsIndoor )! ]% H" ]# t& @7 f& U/ Q# y; W# N
{0 @7 K$ G' C5 a4 W$ b- S% ]
if( pLight )
$ D2 Q* F( O" O6 ~ { 5 J. R0 {8 d; ~( Q. f A
// à??μ oˉè*
- ?9 A7 u( S/ u2 K pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 o0 I) P1 g# _1 O6 o. k
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;- L8 B0 c2 F6 T
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;5 X) s5 U$ c$ l" `- Y
H+ C! r4 Q, o9 E5 j- r3 @
// oˉè* ??à?
/ O0 v. N4 c6 c% x5 M! _ pLight->Specular.r = 1.0f; C/ J% A; ]2 u9 d6 N8 d1 |7 U
pLight->Specular.g = 1.0f;* N% l- l! r9 u* T
pLight->Specular.b = 1.0f;6 [; M `- }2 V" F" D4 G) X) I
// àü?? oˉè* , D9 m$ j8 O* Z' H2 `! z
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;" Y5 {: J$ Y, T0 B
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;) i- f6 p8 b# y& z7 F; h% `6 n
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;: H" H+ |' A; g
* x# f& m% }( p" O, c( k) c2 H$ y
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
% K6 o8 g; ]5 o# }; I$ L/ W. g {7 n( w6 k- j3 ]5 N- a0 B1 f
pLight->Diffuse.r *= 0.6f;
. e$ t8 {( R+ Y/ h2 h pLight->Diffuse.g *= 0.6f;" z' l2 u, T# d3 g2 M0 r
pLight->Diffuse.b *= 0.6f;
3 o4 ^* Y# F1 V2 T5 Q( { pLight->Ambient.r *= 0.7f;% R, C; i1 d% [1 @. @$ G
pLight->Ambient.g *= 0.7f;
# M* g$ d i. Q* _" ~1 C pLight->Ambient.b *= 0.7f;; F5 m& L+ E3 P
}/ u G( i- Q7 h( n5 K$ D8 E
x# ]# s9 f/ j& O4 j, {0 F; ]' _& l#if __VER >= 15 // __BS_CHANGING_ENVIR/ ^4 i. Z' B. ?8 Q8 i2 z5 x# y
if( g_pPlayer )
n# X; s" t8 c9 o: ? HookUpdateLight( pLight );% w# T. L6 Q0 y0 X' U+ r& L( T
#endif
3 _* v' L% ?( O$ L+ M4 `! d memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' r3 d; c, B4 H, w" t0 c9 H' W, ?, A1 m! ]; ?' ?; ?
pLight->Diffuse.r += 0.1f;; P' u6 Y% @# F" a0 V, j
pLight->Diffuse.g += 0.1f;) M- }! A; w6 b) u6 b2 k8 r3 Z
pLight->Diffuse.b += 0.1f;/ n7 X v2 L$ K& d+ V0 t2 k* k
// oˉè* ??à? $ r: A0 u) l/ u2 q) J
pLight->Specular.r = 2.0f;
' m* y& R% G7 S# _4 D pLight->Specular.g = 2.0f;( z" n/ r' }* @ D
pLight->Specular.b = 2.0f;- w' e l+ ?! ~- _+ ]4 N
// á?oˉ
/ i6 [* f3 Z3 T h* [( E pLight->Ambient.r *= 0.9f;- ?( h" d: \+ V; S
pLight->Ambient.g *= 0.9f;
- }3 L) h% ~) P6 L pLight->Ambient.b *= 0.9f;
. M5 R+ N1 H: m8 R( d m9 W& p. I; S" M& R5 y0 S$ c
memcpy( &m_light, pLight, sizeof( m_light ) );
5 g1 k% h; M8 R( a* D8 F ' ?8 j) R/ T$ [$ N. ~. b/ U9 O0 V
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
# R1 f/ `' H M; i pLight->Appear( m_pd3dDevice, TRUE ); M# @" P7 E0 X
( B; j, y6 l: {. z z' p/ r/ Y DWORD dwR, dwG, dwB;
1 Q2 T4 t$ e; ^: S dwR = (DWORD)( pLight->Ambient.r * 255 );
( o: ?+ | e+ j# C6 w1 S2 m dwG = (DWORD)( pLight->Ambient.g * 255 );, a* e1 i; U* V: j$ M( }# Z4 [0 G
dwB = (DWORD)( pLight->Ambient.b * 255 );
! N5 m5 f1 c( T$ ^8 E dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) s6 ]7 u7 C8 F! x }
( y3 o: W$ y) w* {+ ?6 w }/ G- T- {; e8 s
else
! @9 F2 j( W; Z/ x3 L/ D( s {
* t% I3 e/ K0 q0 M1 Q6 _2 {5 f if( pLight )
- `( d/ k* C4 n! A2 T7 `/ k {
# H/ d8 n& b2 m6 I! e+ D/ r+ c8 ] 8 B5 R$ J9 u Z: @
int nHour = 8, nMin = 0;
9 K7 [0 {+ W7 u1 P+ a8 V2 e9 C #ifdef __CLIENT
( [4 O9 x8 f( q" t ?0 f1 }- x // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 4 T( M& q8 \0 @2 g8 W; ?8 E
nHour = g_GameTimer.m_nHour;
% Q- P* `: e( f3 l8 w; l nMin = g_GameTimer.m_nMin ;
3 l9 V5 s# W/ {+ N #else5 E9 `2 n' l/ p& B4 _. f
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
+ c& _7 X- B2 C$ ^ if( m_nLightType == 1 )6 N8 G5 n9 C+ O- r
nHour = m_nLightHour;
" s. F9 g- n% @4 G/ w #endif
( k1 a6 d7 X- P& D. R& a1 ` nHour--;/ G0 d: A5 H; l4 d1 ? ~$ _- B
if( nHour < 0 ) nHour = 0;
* z- `2 H8 b4 o9 ~/ c if( nHour > 23 ) nHour = 23;3 b5 U# }- N) Z9 D% Q( J/ c6 g, [
% ?+ F) N0 k: {% H //if( m_bFixedHour )0 e0 Q& q7 \- N: h3 T: ~, _/ b
// nHour = m_nFixedHour, nMin = 0;
}6 R: [' X, B4 e LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
# A: `5 }+ z' N LIGHTCOLOR lightColor = m_k24Light[ nHour ];
* G6 Y ~" @5 `( p4 \
" h% r9 R( T& S4 S //m_lightColor = lightColorPrv;5 u0 F& K' _7 E1 C% ?: B! |0 n/ d0 O
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60; Z) R6 f A- } v' ]. W& }+ D3 I
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
3 m# C" r7 R1 v lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;6 Z+ A2 ~: B6 _
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 R$ s) z( d3 W' I. A8 S7 i lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;& s! C8 \) `# r, C6 z5 g
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;" [) |; k+ O1 r3 ]
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)) t1 w, ]# R C4 m' O |4 ]
Q3 z+ V v. {5 t/ m" j, Q/ | // à??μ oˉè* 9 Y3 q4 w# { P; s
pLight->Diffuse.r = lightColorPrv.r1;
5 N5 R0 F6 L' E. f- a4 l7 T pLight->Diffuse.g = lightColorPrv.g1;. e: u4 C U1 p3 [) a5 d1 G
pLight->Diffuse.b = lightColorPrv.b1;' f1 |, `) t, `6 W" j1 w8 Y, F
// oˉè* ??à? . D% B4 N, ~8 _! O
pLight->Specular.r = 1.0f;6 q- j$ u+ T# ]/ X( e" I3 `6 y
pLight->Specular.g = 1.0f;
; z. D& f2 u1 ~9 E, N5 p' {" h: m pLight->Specular.b = 1.0f;
5 |9 V* M+ A9 ]2 b // àü?? oˉè*
7 G& ~! u9 w) y! W/ k" N pLight->Ambient.r = lightColorPrv.r2;
5 O( X) P* P7 E" Q0 z# ] pLight->Ambient.g = lightColorPrv.g2;2 o- q7 D- ]2 a( t F. u# f+ ?
pLight->Ambient.b = lightColorPrv.b2;" O [( |2 m/ `! P0 V6 @
9 N, b$ X, p; P+ p$ I2 u4 w
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??. K' R) }9 Q k
{
6 D& M$ x; n) r% Y- d* T* d+ R' k pLight->Diffuse.r *= 0.6f;
9 k/ h, J3 u7 I pLight->Diffuse.g *= 0.6f;* y6 \+ N& c* w9 D7 d8 C
pLight->Diffuse.b *= 0.6f;
* S, c8 S' y V# ]4 X4 e pLight->Ambient.r *= 0.7f;+ E1 V6 J4 _9 w$ [7 s) b: p& `+ H
pLight->Ambient.g *= 0.7f;
/ P- b- y% r8 j9 w pLight->Ambient.b *= 0.7f;
/ p9 y( n8 E( ]- S- y% Z" c }# p( R5 ~- U) ^8 c6 L
% i1 a- |& C; F$ `: p* N c% O
#if __VER >= 15 // __BS_CHANGING_ENVIR6 q- f, `6 {( r7 r8 m" Y9 a
if( g_pPlayer )
5 W& ~& z, G& ~ HookUpdateLight( pLight ); 7 X5 }8 T3 ^4 H0 Y8 k1 ~0 I
#endif
8 s1 _$ G; r/ C8 Y, j% c memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
d4 F4 b. g. N3 u7 T
, {+ J- f( x( H& o$ ]6 O, b#ifdef __YENV
) C- d% y5 l4 G( p! } pLight->Diffuse.r *= 1.1f;
- k* @& D. [" n9 b( ]4 m* M pLight->Diffuse.g *= 1.1f;
* l# r, H6 a- H j pLight->Diffuse.b *= 1.1f;
* Z% o. O: X' t! u# m. g+ q // oˉè* ??à?
" _, v4 A2 V0 }# q& t9 f0 H pLight->Specular.r = 2.0f;
: r' D: C+ q+ K$ J0 i% j& g4 ` pLight->Specular.g = 2.0f;
3 g Y4 B [& y8 q ]5 ^" ? pLight->Specular.b = 2.0f;* q5 f6 K1 I, _* Q
// á?oˉ
- P) z9 p8 ^/ J pLight->Ambient.r *= 1.0f;) F) J- `) Z. E3 k& {4 j1 Y
pLight->Ambient.g *= 1.0f;
7 z( r% @$ X& Y4 @ pLight->Ambient.b *= 1.0f;- m3 ?3 S' C# z$ R) D4 r) l
#else //__YENV
" d. G% f! ` l: a pLight->Diffuse.r *= 1.1f;
; R( p6 M0 j- r8 H; E5 a& c6 M pLight->Diffuse.g *= 1.1f;/ V, H3 j6 D( _- o D3 }
pLight->Diffuse.b *= 1.1f;( j" }$ }- u5 u; @% e$ y9 {- ~
// oˉè* ??à? 3 h, Q6 k+ N4 q2 G" @/ d0 c0 Z+ [
pLight->Specular.r = 2.0f;
: N) _* N# t0 Z8 a1 z' ~ pLight->Specular.g = 2.0f;
) w8 ^3 `7 B" L' ]# i pLight->Specular.b = 2.0f;+ g2 l+ m7 R: @: L/ K0 Z
// á?oˉ
+ U: ?+ z: j. {' v0 {* T0 b8 C3 Y- S pLight->Ambient.r *= 0.9f;
5 {+ ~3 c( v) R: j8 |: c- D pLight->Ambient.g *= 0.9f;
2 v8 ]% K2 V# r& i pLight->Ambient.b *= 0.9f;6 v9 O5 G7 b/ _
#endif //__YENV ; ~5 R. t7 M$ D/ r. C% i0 m
5 g/ o4 b4 ^' s* t, {: r memcpy( &m_light, pLight, sizeof( m_light ) );3 h1 D5 [1 ?( ]$ n h/ j9 @
# \! g1 C% ?2 C% c) O D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);1 a9 I+ i+ ?6 ~3 _% u1 S* I" t
D3DXMATRIX matTemp;% e) b2 C8 Q9 q7 `- n
static const float CONS_VAL = 3.1415926f / 180.f;
- M7 `' W Q* P) d9 c- p
9 X) {) @: ^4 Z" y4 O( n2 X. n D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);$ ?; A. `9 Q5 n, n E! g" ?
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
$ t% U } D2 a- u pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
5 Z9 H8 @) y3 s8 c5 d* c/ T9 U pLight->Appear( m_pd3dDevice, TRUE );+ B+ p: V5 z6 {, T2 C, v( j
5 W5 P6 V/ `6 ?. i
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 p+ d0 r. E& g; s9 L" y& P // D3DXVec3Normalize(&(vecSun),&(vecSun));% X' G- J' S" A$ ^) u \9 H! a# D
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. Y7 J6 }; F6 q: b- b7 F3 ^ Q( w9 q5 p E% Z
DWORD dwR, dwG, dwB;# Z% R% r4 O; j1 G; n, B: S
dwR = (DWORD)( pLight->Ambient.r * 255 );2 n. R" D! p$ }4 _ o6 X: ?
dwG = (DWORD)( pLight->Ambient.g * 255 );1 W" i& ]$ N+ M8 C3 Q
dwB = (DWORD)( pLight->Ambient.b * 255 );) R7 w( y6 o" C! ?
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); / e! U( D3 p; Z
}' @" P. ], ^: i5 Q. q6 {- V
}
6 t: z2 @2 \* ?- k/ B( E
, V% z8 a p2 T% { m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
& ?. a4 R! G" d5 _9 T2 {9 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) );: I5 O+ r/ q" t. S& u& x' X0 V. ]
::SetLight( bLight );
8 H1 `" p3 I! z4 |# Z
& t8 _; e% n& q9 C% ]9 e: [ // ±ao? ?D?í???ó á¤à? , q Y/ s3 B0 k: K
m_pd3dDevice->SetMaterial( &m_baseMaterial );+ |, M4 F: m: K" Q, ?7 |3 ^5 j$ \, n
& {5 y5 Y# U1 o5 z# K#endif // not WORLDSERVER4 G r+ D0 a, {" I! y$ P r+ N
}
2 I2 Z- ^! S' R& p, I4 C并更换. A! { E+ o/ C
Code:
4 \" K4 f/ f" Q5 _# _% F* E' r' E__FLYFF_INITPAGE_EXT$ W( v) W# F; G( U( g: e. i
定义
- M6 g, |8 G8 R+ ]3 M- L" m7 Q
* R5 x$ j: N$ k' |& s# g1 F% I+ G* ]- l# p& l
- }7 x# l" c. q0 J8 o
- m' i% i+ s+ H/ @# U现在终于删除我的狗屁加速...+ S- u: w5 P5 p
% z8 B0 s% i* h4 `$ A' K. z+ g( O1 U+ q
# [" |1 h( J' I+ U! z% N
|
|