|
食品车:1 O9 C0 O4 q. z; }
尾翼:
' _" c! v; K. J% e9 ^
2 ^3 s* t/ y& n& b7 u代码:
9 w* S; V, Q( z( VCWndAutoFood::CWndAutoFood()# y5 T- W" T+ k
{
s+ D" `3 y5 v1 ] m_pItemElem = NULL;- b1 H0 `' H7 z
m_pTexture = NULL;+ w8 n- }" @$ T0 B& _# @: y
bStart = FALSE;' b, Z) k- V# B/ O
}
5 U, T: ?. B. r- U
; U( ~' | N& V6 x" LCWndAutoFood::~CWndAutoFood()
* @% P" L. W- f4 w9 D% [{$ p, m5 C! I) k4 D$ k5 N0 d' ]
AfxMessageBox( "AutoFood ist gestorben " );
$ g! C7 Z) k$ C; q! K+ Y3 L$ B+ d}
1 k( D& ?7 {$ C. `6 I yBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
) |: I6 ^+ s+ ~* O{4 J* I; @ q& g8 v- Z, [
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );- M% W8 e1 l% p4 @. o4 |; z
}
2 i3 V/ {0 g4 q( p* p5 U: B
! D6 Q v3 L. N% QBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )% y4 @; o# d# h8 s8 V" h+ h; @
{
0 b/ a! |- I5 r( R" | LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; z; X- ?1 N M0 c, k% y
CRect rect = pWndCtrl->rect;" V# \0 [3 m# y3 e ~& e4 u
if( rect && rect.PtInRect( point ) )
1 ~ N/ n4 n' @1 p( e+ e: T/ G% ] {
- l3 W1 y2 i- \) D J& s CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
4 ]/ \" `+ U: c! w3 z# l if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )( X$ ~ C- R4 f: t1 f% n
{* k, F, W9 u9 [8 D' X
if( m_pItemElem )' Q* L# _6 }" o( @& C4 g. j. c% l
{
# U- c2 Y; u! ^5 j/ P, d m_pItemElem = NULL;
4 U* k& e% K5 u- @ }- y( g/ x. V; r/ V% f& T" o8 K/ v
m_pItemElem = pItemElem;
! f. B! q& i/ d, v! | m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );+ l3 i! x, f5 p$ _% J0 N
}else{
$ Q0 D; `1 P- ~& s$ `1 _% X8 o- j SetForbid( TRUE );
, i. |( Q3 m' L }
! t0 f& s! K, m' k+ |9 d5 j; h }else{
+ n/ W: @8 G9 H1 D1 |/ [; v8 W. B4 ^ SetForbid( TRUE );
. c0 ^( o- P- [4 L9 c2 T+ ^5 l6 e }
2 A, f8 a; A, R9 w" c k' A$ b return TRUE;" s% G, N% q$ c% H: Z5 e" X
}
/ ]5 x; F5 y1 p# l4 P: _2 N
, D0 N( V7 G O: g9 fBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
" M& ?8 z7 [! j% ~% p" w- L; A# {{
8 o, ~: l) N( c! E, e switch( nID )
% U# M- p# r* z, o! m- b {) _) U: Q- x7 E/ j. {/ H
case WIDC_BUTTON3:
1 f7 F8 R2 Z8 {1 u. z% ~1 ~4 ~+ _ {
, I( K# I4 I5 x) I bStart = TRUE;; c% Y) ~" Q1 ^5 F# P
break;6 `' o% ^' w8 ^
}
4 \4 m5 z2 ]' a) F" b0 q case WIDC_BUTTON4:( p) F7 Y* t6 P3 I9 q
{
# x( N+ R$ G6 k% @# G bStart = FALSE;
& F" v0 A- S$ a7 k% C) M break;
! r0 M7 y0 u' [* o4 s( M }8 w. L8 Y. u/ o
}: \1 H( k: H! @- q( `
return CWndNeuz::OnChildNotify( message, nID, pLResult );
( z- b9 a7 ?0 A+ _3 f6 J} $ g Z$ K2 h# i% t
void CWndAutoFood::OnDraw( C2DRender* p2DRender )' G/ E& w2 R" j: H0 ?; I. Z
{
9 ]) N" S+ x& T l" H+ b/ d0 k CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 c1 {: w% N; a& s( v5 A if( bStart || !m_pItemElem )% f: d: @; ]1 y, v" G$ R' L
{
" Z, m! ?" ?+ |* e+ q2 v5 y; S pBtn->EnableWindow( FALSE );
( T2 R* }9 X+ u" N5 [% a }else
3 q% Y! {; D2 U9 c" f pBtn->EnableWindow( TRUE );
# J5 Q6 }# [+ ]( e* V if( m_pTexture )! u5 a& u; f0 K4 W- N
{) o# N2 |6 w' H4 F
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 L; ?+ |: @) g& a if( wndCtrl && wndCtrl->rect )
5 r/ H! z) A+ g( r# U4 w+ z {' y: c; Y9 X6 a9 i4 @
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );" u( S) L% T7 \" o x, k
}0 d q" p, U+ _) w, y5 |
}
2 u' R( b4 Y3 N% r0 }' m4 N9 t \! x}0 l+ p# x7 P" S5 s$ T# x. C8 Q% {
/ w; M& y0 R4 B/ a# Q! E) i
BOOL CWndAutoFood: rocess()
6 c* `. S3 o2 c{/ e; ~. w8 ^3 ^; m2 W2 M
if( bStart )/ w3 J' s$ j$ ?9 ?; K! E* i" R. T- Z
{
0 x: x6 \# V8 t if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )% p+ D0 i% j2 F. }/ U! u9 P3 y
{
& ?( S' g- o; B if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ); B& U# k6 o* @$ F+ f
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );! q9 b3 R7 t0 U# g
}else{
( V) U* v$ h% f- Z# |$ c2 }+ u bStart = FALSE;! Z: f5 v) V$ t" u8 ^8 S9 L8 W
m_pItemElem = NULL;
' S2 v% u7 j, {0 }& Q+ a }4 K' }/ H5 y6 _ h9 p3 u
}
. Q: y" {3 G6 h* o) t return TRUE;
' Z, `8 h. U7 r6 m: W}
) j- Z; \, m6 M) K
+ X! p& D7 g1 L1 F- U6 o7 {登录视频废话:; W& F2 r. p( x& M. k0 w; h
尾翼:
" N) G( X% R4 f) c' @% P
" k! ^% u2 v' l, W( Z( S0 u/ u" _代码:% s. k! F+ T# u4 y1 E* s
9 j `& C5 [! n
void CWorld::SetLight( BOOL bLight )
/ o7 V. z$ c. z$ k3 B" @; Gdurch
1 I' y5 y2 T4 ]' H2 OCode:
4 `# r( w4 D( T; J- W) Kvoid CWorld::SetLight( BOOL bLight )
/ p9 {+ w0 V' g5 [+ D# [! E{$ g2 @+ [( y: [" n, q' H
//ACE("SetLight %d \n", bLight);
& D! ~: M4 U; O! e/ X - s5 ?2 c; `# O1 B/ K5 g+ R2 E+ ~
#ifndef __WORLDSERVER / y3 E( `2 _; I6 m& }
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
3 g, v: l J9 k CLight* pLight = NULL;
$ D6 F7 b, `: {, B
6 @6 M9 [5 X' [ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );' A$ j+ \/ N& |
6 G8 U/ I. D( w1 s pLight = GetLight( "direction" );
+ ~$ ]+ M9 I1 V; T- J; ^5 c. h" }, H
#if __VER >= 15 // __BS_CHANGING_ENVIR' Y. S7 W4 ~- {9 [8 B: \- Z( n
if( g_pPlayer ){
* r* Q/ m: v. V ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
# t g' X- T# O; h9 I9 Z. s if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!1 N9 e# @6 @ }8 Y; ?
{/ Z) |- ~7 B) a3 n; V+ Z
if( pLight )
4 _" W3 l3 _& g- e( q) b {; V7 I+ j0 r; I- ?! R( |
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];' f D* W6 M- X
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];& z- v1 G0 H. b. Q5 ^" d5 d
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];. Z9 [. U; q' P5 {
) s; Y8 T5 n. G y pLight->Specular.r = 2.0f;
) O4 v* {# ^( H- T' {6 @- S pLight->Specular.g = 2.0f;
4 a" `. F/ { o$ R7 ~6 i7 _8 L" D pLight->Specular.b = 2.0f;4 M- @/ \7 i; D! o1 o
. _. o2 z' y2 H% Q' I, f) `
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
& `+ H8 S [2 e! ^, I pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
2 J$ R" I1 W- P1 ?/ M/ R pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
% h; L9 H* t- @9 P, U, R) l ! S1 `1 C: ?/ f4 k: X. c, K/ Q5 d
HookUpdateLight( pLight );
3 T) S3 ~8 R6 @# ?) Y. P* A! C1 b- U! g2 T6 U6 |. h' f8 O
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& I' p, \4 Q! C5 c+ {) e' P, x/ ^
) O8 M3 H" r" K b1 b ^# `
pLight->Diffuse.r *= 1.2f;8 A: ?" g a% \- [3 \3 X+ N
pLight->Diffuse.g *= 1.2f; v" w5 k/ ]( r% p: {! z4 l
pLight->Diffuse.b *= 1.2f;
! w* E; \4 r0 T' P# s
|* w1 E8 J! y1 g8 I pLight->Ambient.r *= 0.8f;
; Y* x% v- k1 q8 S3 G8 B pLight->Ambient.g *= 0.8f;$ \* L3 i$ w# u; o
pLight->Ambient.b *= 0.8f;
7 ~: x5 ^1 W) L1 ]' d ( _8 t" R, z3 Z k- F( x
memcpy( &m_light, pLight, sizeof( m_light ) );
& d) h2 X5 ~, g L( U8 U: j8 e; H8 Q4 L- E, o
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, Q# V! h4 C/ l# M4 Y0 x1 A1 n D3DXVec3Normalize(&(vecSun),&(vecSun));8 R# Q8 B9 z* }% H# h
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
3 C5 `$ P9 w6 {% ^ pLight->Appear( m_pd3dDevice, TRUE );7 I; x: t$ B" A$ X& ]+ T$ ?
7 B) s* I- D% g/ K+ Z5 Q: N DWORD dwR, dwG, dwB;, r$ I9 ~9 ^ {+ S3 e, K. k
dwR = (DWORD)( pLight->Ambient.r * 255 );- ^- p$ j( d) N" @
dwG = (DWORD)( pLight->Ambient.g * 255 );
1 C I, U+ P# a8 M dwB = (DWORD)( pLight->Ambient.b * 255 );
; ]' q! |) h9 f2 {. |' w dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );/ e, G: S5 y% M l1 U+ X
}/ t2 x8 L: h. W
}
. o/ }0 V% w5 a! u- P2 s }0 Z3 d- \# y' w( Q% v
else: I& U; X5 F8 V+ l: X# f5 S
#endif
% _. w, M3 m$ Y9 T8 }& Z
; p) X0 Y5 N X( ^3 L! S6 Q( ?5 V if( m_bIsIndoor )6 U9 u7 X; S: l! x
{' j3 v& ^: I1 L7 N) @9 Q0 U7 U
if( pLight )% E T5 R ~* Z: d; p5 h
{ . [7 s8 K4 n- `2 a! H
// à??μ oˉè*
1 s5 }% P |- e. C8 q. J0 N pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;; }( u1 W8 Q# x8 A/ j
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) g9 M/ Z" i& g# \7 P pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
. Z: C1 [! {+ X3 N
f* I0 A) A+ p! \ // oˉè* ??à?
0 f& r2 x1 X+ Y3 z7 s+ J6 g pLight->Specular.r = 1.0f;
- _1 F& f7 q6 F$ } pLight->Specular.g = 1.0f;
7 H) a$ f( L t& T' z, m pLight->Specular.b = 1.0f;
/ C4 V' s) K8 D+ _' p2 G) m/ Q0 [ // àü?? oˉè*
, ~ Y: K& \7 P! Y: v3 {& k; i pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;( G7 @- t: L6 l2 k! D( z2 F$ W t
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;, I2 M. t- \- s+ A& ]* L6 _8 o
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
" }" n& ^& }* D- {4 \- G, s# L$ o6 }; h
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 b4 x: n9 ^! U {
3 n, }* j2 C+ S2 Y* f pLight->Diffuse.r *= 0.6f;% B/ f6 R X! J7 I# }
pLight->Diffuse.g *= 0.6f;% H; B" }* a' [( {- `4 `" E: u! c" P
pLight->Diffuse.b *= 0.6f;
9 K8 @- k% q' [8 X3 a6 u# `- o pLight->Ambient.r *= 0.7f;
3 ~8 G4 l4 g! K9 \' P pLight->Ambient.g *= 0.7f;( d) ~1 ]! C n( F5 c6 U) x
pLight->Ambient.b *= 0.7f;
6 t, p) o6 R4 z6 h* \1 q+ t }8 R0 T8 }+ Y3 c5 g& O$ p+ P
+ E2 h% q* H4 z' y) O& b' Q/ T8 U
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 T6 u& {, v( H/ e& f8 @ if( g_pPlayer )
% e8 t% O. A0 N HookUpdateLight( pLight );
$ ~2 F+ I: |% Y" ]( e, h) e- @#endif
0 d [; g' }! ^- o% s memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 j! e" A, V1 r7 z0 F; o
7 _5 p9 S- P6 x- E% e' Z8 @
pLight->Diffuse.r += 0.1f;7 F+ h: M7 f6 W% F% r7 r% ^9 |
pLight->Diffuse.g += 0.1f;5 j. ?( k c5 c5 W
pLight->Diffuse.b += 0.1f;
/ v d; x C) V1 z( z) f // oˉè* ??à?
" ]: R- r4 N$ o' p ~ pLight->Specular.r = 2.0f;
D; N* @" L! n" v! I pLight->Specular.g = 2.0f;
+ ~# g4 ~: ]# z3 W5 { pLight->Specular.b = 2.0f;
! ^5 c1 L& V) o5 r# q4 G4 }! U( X9 } // á?oˉ 4 C; r e5 g @5 X2 h
pLight->Ambient.r *= 0.9f;% p; h* F& S2 H0 o9 d, s' Q7 [
pLight->Ambient.g *= 0.9f;
5 v' p' M1 J; ^- O pLight->Ambient.b *= 0.9f;
- A8 M! J- S; m( ^& U a* [( R; E6 J$ q9 l$ t3 T9 v$ ?# [2 }" m
memcpy( &m_light, pLight, sizeof( m_light ) );
; a) c7 L$ V5 a y, r$ R
; p# Z4 |- U3 O$ U& O pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );% b+ k; _6 y+ C" S, J5 v$ Z9 V* \
pLight->Appear( m_pd3dDevice, TRUE );
0 W* w Z: v& r. F6 ?, L8 A # h, ~# i9 A- }: i
DWORD dwR, dwG, dwB;' p9 y1 G3 l; W& L
dwR = (DWORD)( pLight->Ambient.r * 255 );+ N: W4 [3 ]3 f, m/ N2 g) K; O
dwG = (DWORD)( pLight->Ambient.g * 255 );; X% J2 M$ r5 ]( r O( g% d+ Z: t
dwB = (DWORD)( pLight->Ambient.b * 255 );9 E) x3 L' V2 v1 ^" g0 j
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 c J J7 Y8 ~
}
) [2 }! E4 [0 |+ A* O, | }* Q# ?( T# z: b: B3 \/ N7 b. x
else
' d$ e& p' \! h0 a {( R9 n+ ^1 r3 }4 H- O; S
if( pLight )
- n; v1 j8 w- i {" ^5 B6 W/ L9 S2 E- m3 X
5 x# Q l- P4 d' C% C int nHour = 8, nMin = 0;
2 z- A* V* N8 d! q$ ?4 U #ifdef __CLIENT, h; J, p- f* V
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
- _; a, m6 ]( h+ X+ w nHour = g_GameTimer.m_nHour;% L: ~5 A. d0 a
nMin = g_GameTimer.m_nMin ;
: I9 _7 J1 `5 z# j- e #else
: i ?7 n) G1 X7 C // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.& }9 A B1 ?: f7 d
if( m_nLightType == 1 ) o8 n4 @6 x/ |; B/ E
nHour = m_nLightHour;1 w8 J/ f3 \$ J2 \( G1 v6 R' [
#endif
, J) U; X( n% F$ q4 }4 K, R o nHour--;
' x8 K3 F- G+ k$ n+ v& p0 ?- F if( nHour < 0 ) nHour = 0;; w. r+ r5 }! T% O
if( nHour > 23 ) nHour = 23;3 T9 g7 {6 Q" ~0 g" a) f1 k
! A, d9 w9 ~$ K+ e# f. e( w1 P
//if( m_bFixedHour )3 n6 x# K9 q! ^+ p F. p: v
// nHour = m_nFixedHour, nMin = 0;
+ v1 G8 T+ h- f2 j: g LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 e% T4 U' ]4 K; K$ o/ |
LIGHTCOLOR lightColor = m_k24Light[ nHour ];( `. n9 C. \8 G x$ k, Y$ \% G( Y
, I! n# N: {7 K/ O" L$ F m //m_lightColor = lightColorPrv;' X1 O" g2 U, { _6 h" z: N$ g
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
' z+ m: n% b8 X4 ?: D. C lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;- k, y# m- k5 ^$ J# q4 _7 r
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;& u& G( o2 b; z* \( X4 K
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;5 z3 m- Q- [0 q! @! i- }- x4 R
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
6 D/ Y# y6 a n. d" L lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
% a) i7 a2 i) ]" s. P0 V$ ~ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)6 k, c7 X% B8 K# b
/ {+ p9 [0 W$ _) l
// à??μ oˉè* " t1 W: d) i2 B; F
pLight->Diffuse.r = lightColorPrv.r1;4 V3 h4 f' p9 a4 l( \( ~
pLight->Diffuse.g = lightColorPrv.g1;
6 h( R0 s& \2 P- O7 R pLight->Diffuse.b = lightColorPrv.b1;
8 G3 _. f8 W, T# u // oˉè* ??à? , ~/ f2 b! ~% n. J: f
pLight->Specular.r = 1.0f;* y1 l: O2 o+ k5 O# }4 f
pLight->Specular.g = 1.0f;
7 I! G3 q! _3 t+ B3 g0 e- t8 X4 R2 I pLight->Specular.b = 1.0f;
: ~% ?* q$ u# _5 Z6 A( U% n6 z // àü?? oˉè*
# }+ ?0 e9 I; N9 v% Q- ]4 E" _ pLight->Ambient.r = lightColorPrv.r2;: f* ~9 d8 k6 ?9 M5 l0 l) ~
pLight->Ambient.g = lightColorPrv.g2;
0 b; a, h: Y( R- O, R pLight->Ambient.b = lightColorPrv.b2;
. H# @* m; Y6 s0 b% H. j
( g' U- i* ?: T4 G% V if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 S1 [7 I: [1 H, } {* e+ T# k* G7 M. D
pLight->Diffuse.r *= 0.6f;
; b7 {' O# U$ q1 [- n; D) O( t0 p pLight->Diffuse.g *= 0.6f;8 Z' S; x) W2 O; j7 e! `+ s; ~4 M
pLight->Diffuse.b *= 0.6f;
4 i1 M! u: O$ P8 [$ H pLight->Ambient.r *= 0.7f;
. M( h* r& _& X a) J pLight->Ambient.g *= 0.7f;
' r E7 A+ H5 ]3 }! D6 I pLight->Ambient.b *= 0.7f;0 X' j0 f, _5 O( p+ J) w$ X
}$ i3 M( N* S3 c6 E) S% K0 Q1 b
- o* U; i. n: ?$ A5 ^ P1 Q#if __VER >= 15 // __BS_CHANGING_ENVIR
8 u1 ~0 T3 q& N if( g_pPlayer )
8 L: P1 L, V @1 t7 p5 ^$ I8 w HookUpdateLight( pLight );
/ p9 d& q! q3 S% W y/ M#endif
6 }# F8 a% W+ A8 | memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; y- }, E I& ^: T/ t
4 X) G. N: q, ^" J* c#ifdef __YENV
# {* C0 R, d( } pLight->Diffuse.r *= 1.1f;- L0 y% ]$ j0 R% q+ r
pLight->Diffuse.g *= 1.1f;
" S* u0 N( ^6 R# U' {6 k pLight->Diffuse.b *= 1.1f;( {5 x* i! \5 }/ r" L5 l
// oˉè* ??à?
2 \! B6 B, t% B% f. L7 b; D pLight->Specular.r = 2.0f;
; ^$ y+ m+ m- L1 {, P+ c% N7 h9 \ pLight->Specular.g = 2.0f;
; H( }$ Y) Z' U pLight->Specular.b = 2.0f;0 d1 o$ V: c) O% ]3 C9 T# v6 B+ x
// á?oˉ
2 w) \# O( _4 b3 K' V9 W+ o9 y pLight->Ambient.r *= 1.0f;
( r W2 f/ W$ F7 p pLight->Ambient.g *= 1.0f; K; N- i, H w- \% ~7 D6 O7 V3 [
pLight->Ambient.b *= 1.0f;' {7 t- Y/ c7 _! ~ T) ?
#else //__YENV9 X$ o4 u2 Q8 b3 ^5 k$ V1 a
pLight->Diffuse.r *= 1.1f;
. S1 @' H7 Y7 x& M2 R pLight->Diffuse.g *= 1.1f;7 v$ t/ n1 {9 j. `- ?: I. X8 D
pLight->Diffuse.b *= 1.1f;, t8 Z4 i+ W6 G9 F: A" L3 d7 P
// oˉè* ??à?
+ p8 P) \. D. u# W1 s$ k pLight->Specular.r = 2.0f;
# \( ]0 q; y/ i; u2 [; `' m0 N pLight->Specular.g = 2.0f;
. F }& q+ a0 A& X pLight->Specular.b = 2.0f;
1 N9 |" ^, x x+ \0 e // á?oˉ
0 O+ P, b( Z' I$ H8 K7 K4 o3 w pLight->Ambient.r *= 0.9f;8 `' ]' |$ C( f
pLight->Ambient.g *= 0.9f;+ S3 z; B9 N& I+ `) u% Q
pLight->Ambient.b *= 0.9f;
& O8 z7 f# }3 p4 s1 Y7 F5 H" _3 |* w#endif //__YENV
& m: D/ L! ^/ ^: P# j" I+ E2 |
) N, ~( a8 f, Z- Z( b/ g Y: H memcpy( &m_light, pLight, sizeof( m_light ) );
' K& c8 N% z* W9 K" s0 h3 g
- p# v% ]! B4 E# V' \, b D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);6 R% z! M' J# D
D3DXMATRIX matTemp;
B+ Z3 c: T$ A: p: |" ~ static const float CONS_VAL = 3.1415926f / 180.f;
0 X$ p4 O8 q6 P8 P1 q7 W5 l) M' r2 j: e* S
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);% y: H$ g) ~* Y5 o v. ?: l) ?' |
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
/ F6 G! t4 l0 ]! Z pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ' o* t$ x) i/ G" Y8 ?
pLight->Appear( m_pd3dDevice, TRUE );4 E$ `( \" B7 |/ f0 c; O
3 x6 l8 B. @( B) b$ Y) I
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
~ i- S6 W/ c1 s: ^6 X5 K // D3DXVec3Normalize(&(vecSun),&(vecSun));
, w7 p: h; ]) I2 J* \; Z // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; A" N" s' A& \2 g! H1 t7 J/ Y c% S1 ?, @5 w' |( A
DWORD dwR, dwG, dwB;+ ?+ F& p( H5 O! G; g
dwR = (DWORD)( pLight->Ambient.r * 255 );
1 o! h D3 L' D4 J dwG = (DWORD)( pLight->Ambient.g * 255 );6 h# \0 z5 j9 F
dwB = (DWORD)( pLight->Ambient.b * 255 );( z L' P5 ^3 Y) ?4 g% T2 x
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
/ y- Y" |, t: ~4 J3 z% | }
6 \4 r( g% W- V4 D }- J1 A& b7 N9 k8 t* J+ X
. y- v ~1 Y' t* S, M
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
5 J N$ W4 O5 ]( h. M 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) );; H6 j% ^+ j8 a) |* D9 d& n
::SetLight( bLight );
9 O! z# n# E# d0 y2 B0 ?) h/ _% \4 ]+ S: ~/ p5 Z
// ±ao? ?D?í???ó á¤à?
; s+ x b8 Q' l2 E' M* ~) Q3 n m_pd3dDevice->SetMaterial( &m_baseMaterial );
' h" R+ T v% u. k4 @ & q7 q& X4 x! M& i" V7 ~" Z w, |
#endif // not WORLDSERVER4 ~: d0 ^: P2 F4 C
}
; b3 E6 O; c( M: `! T3 |( K$ v并更换
- v# f5 P# X8 {3 t# `Code:2 y' v! e8 A& @7 K/ B7 z
__FLYFF_INITPAGE_EXT+ F* r6 ?" d$ Q* h
定义
9 `3 v$ U' y4 p4 W" ]" Z, J$ B5 W" V# T: A1 X
. n" W$ `0 t5 c: R b! L9 `
8 s* P8 a4 I3 A4 ^
5 H8 b# A% j }8 R, }现在终于删除我的狗屁加速...
: t5 ^" ^/ r2 f8 D; ^5 O
8 d% o \: ?( `; S1 J2 G
; M3 u7 C5 p+ ?, n/ @1 O
9 \; d7 P( n1 \/ P" M8 d- a" [ |
|