|
|
食品车:
6 y8 e" K5 J; V8 Y尾翼:
1 y0 u0 b7 i' _, y
% b8 R g* L9 v* O8 ^代码:! A4 H- l: k- L( v- x" u7 B
CWndAutoFood::CWndAutoFood()
, u, b2 }; F+ s9 T9 \6 }! M{* q* W) g: B4 L: R4 ?$ F( h
m_pItemElem = NULL;
3 P! C c3 h& ^& H# y m_pTexture = NULL;7 h7 Y: [2 Y& ?. \
bStart = FALSE;- t- b* b4 `: a' [/ y/ t& U$ j' W9 c
}; b. Z6 g4 S/ e* ]8 M$ R
1 v: p. _6 Y lCWndAutoFood::~CWndAutoFood()( E+ C5 N- M# b- b) V2 B% [4 p
{+ n- `# t0 S/ T5 V$ U- m6 J; x
AfxMessageBox( "AutoFood ist gestorben " );% I- s3 {& d+ u; c; O
}
/ M- n. C8 U: B! Z0 C! T0 C/ mBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
7 }4 I& `9 l2 c3 \, W0 y3 [" |{
. f- D# Y. k0 M' C! }/ v return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );% `# B9 d6 H" Z; P; A( k% `
}( K4 W. Z: D) [; |+ H4 J% l8 Y6 B. {$ @
$ z, K, b# H1 c4 b. m# c- pBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )( i, L! r! E$ x' V2 _
{
5 e; P2 ] u. v1 k& x) }( _" W LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 H/ N* Q! T* D, a$ K
CRect rect = pWndCtrl->rect;9 D0 P* m5 \1 ~9 t7 v k. P" m8 I
if( rect && rect.PtInRect( point ) )
5 C7 M' e/ s; X& K; o+ T; I { ~5 h; x) W2 R
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 w& D" S7 O8 Z9 P if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )+ q+ @! e: @* x
{9 j# z7 l, H0 I! C
if( m_pItemElem )
; x/ p8 x' Q8 l$ s& j1 U7 p2 | {
* o3 ?% z. D" q m_pItemElem = NULL;
" o' b0 m4 g/ u2 L5 f- F }
0 P9 R9 C2 M1 ?2 p r- E$ ` m_pItemElem = pItemElem;$ ]% X) _: C$ P& K# w* Z
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff ); N: C/ F1 I* i
}else{
# P& h" X* Z7 {/ r M! { SetForbid( TRUE );1 E+ |' c8 E2 N6 c. n
}8 q, ?/ {1 L1 Q( v* ^2 r
}else{# ^! ~2 B9 T8 S' h% K4 g& }
SetForbid( TRUE );
( q0 l6 L. U: U7 ~% W& q/ C }
# }4 M0 i6 {7 p4 n4 O return TRUE;
0 K+ A. Q& q" p3 @1 P/ ^; U}4 U5 O9 l3 X* ]4 Q+ |& x/ G8 k9 x
0 |& ?6 M/ X: u
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
, s5 q# S* r4 M9 U{
7 t9 R3 p7 ^8 T* V u6 u switch( nID )8 D- w. B* [8 e. Z _1 ^
{5 [. E1 ~9 K7 o, W# i. U
case WIDC_BUTTON3:3 h$ j0 o+ Y8 ^
{
& l1 e9 |, P* U2 z7 ~7 y bStart = TRUE;0 C% Z5 U/ T9 {
break;
5 d& w- G& F3 T7 A. L4 B+ Y" ^' K }: o, X4 S/ H3 g. r$ P7 x
case WIDC_BUTTON4:
q% t6 y3 w+ @- O {
+ G7 ^* e) K$ W* B* D bStart = FALSE;/ v) J$ B9 c4 \7 M3 {; C6 C
break;
1 J* j, ?) v$ R* W" q+ C1 Z" N& c }
( T( f; a: ?5 C# g7 L e* ? }
: z! L6 p' D6 R \4 Z p$ Q return CWndNeuz::OnChildNotify( message, nID, pLResult );" T9 B; ~' T" l. m! }+ i# @6 e
}
4 {8 ^6 u, l2 f+ l( ^( Cvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
% A& ^3 @4 T- X{8 d3 X/ S0 z2 Q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );2 K0 _0 K) O" C( H
if( bStart || !m_pItemElem )4 v4 \) c4 P1 p# B, O6 S
{) ?; _( `3 H+ T3 L4 Y' Z0 X4 n( C
pBtn->EnableWindow( FALSE ); z% @" h' E% @7 Q" Q3 O
}else
1 `% o5 M! K% G! f pBtn->EnableWindow( TRUE );& u6 l( C3 U# |+ i2 z* v% k; g1 u
if( m_pTexture )) }" j$ E; z+ f1 R' O$ D, k
{
' Y& q/ D5 j( h! l0 A6 V LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 {" S! L2 ?7 R, M% ?; U% V8 [, h if( wndCtrl && wndCtrl->rect )9 Q2 ^' h5 P6 Z0 l) |0 d
{
8 t; K5 K1 m0 v m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
( U! e# o0 u$ z/ l, a }9 b: R: u5 h" r9 U5 ]. U- Y
}! S4 u2 {0 R% B, i" O
}6 Q/ s y2 `. }8 |/ ^. Z
8 @3 D( h, O# r
BOOL CWndAutoFood: rocess()+ l1 D7 r7 b" T, I. d) c/ B
{ t x: V1 V, W& d
if( bStart )
( o$ N; O6 j& e7 M1 Q z: q" k {% a" J9 x' j, N0 Q) H& U8 f
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )' i' e: f l% |3 Q3 N
{
P% y! `. ~8 m if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
- [) j N- G' m; j2 w( U& m g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
) y; h! N9 W$ V" m1 p }else{
5 p- Q9 ?& P& l- T- e bStart = FALSE;9 `+ S- w% O8 }6 |0 O1 h) h+ Z
m_pItemElem = NULL;
: ]- O" v# Q8 p }. _4 [# E0 @( I, K" w( i
}
, o7 b6 B1 W- n# O, D% Y return TRUE;: `, e+ r' o3 H P
}" D: ^/ ]& S( B/ P
3 w1 `! N8 n" |. H X7 V* Z! O% ~登录视频废话:7 L6 [, Y& N# @) |
尾翼:$ K& t1 `; E" i3 L) g
' A& h! g: e2 S) g' J% b
代码:
- Q: K$ P+ `% c c- P& j4 D: ?
) D& k. Y6 S; d% q ]void CWorld::SetLight( BOOL bLight )
, g+ A8 F+ F" j! H. i# L% Q! ddurch Z7 g! _1 {: H! P0 a" b
Code:; D$ \% H9 {% v0 L% b( K+ g
void CWorld::SetLight( BOOL bLight )# k1 b% n; ]. i. N; K! S5 H, W: G
{! S3 ?" y7 b9 E6 [
//ACE("SetLight %d \n", bLight);
; n. i: z& y% T: l2 b( h5 u) ^) s ! z2 a9 N" ?' k- s5 s
#ifndef __WORLDSERVER
' X3 S2 ~5 O( I; {, y- S DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
8 y. L' C( S3 b CLight* pLight = NULL;
3 [* n" {! \1 B0 b; M) s5 f+ W Z% [4 N: a: b
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );: T4 O( Y( F6 s9 b! g9 F8 }
; Q& j1 p% p& L" g" D9 A+ O4 O7 l pLight = GetLight( "direction" );
7 h' i. k3 @7 Y! j. G4 C, I- e# g% e6 u7 t. F) H
#if __VER >= 15 // __BS_CHANGING_ENVIR
! M6 h* A- X( x& o4 o3 H h4 N( h0 l if( g_pPlayer ){
' e& w. _. ^1 k3 X/ R ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );2 r/ f8 g! p( U+ ~: @3 K& M
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
6 |* G& S3 o, P& a {) X$ t/ `1 ^3 [4 m+ N
if( pLight )
/ U! G- }1 n+ X9 S2 X {
7 t m7 U4 K% A0 j pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
: _/ S* B: C/ I$ K pLight->Ambient.g = pInfo->_fAmbient[ 1 ];1 k# T6 G9 s/ p' ~' f r
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
* X' C* [. J5 s, U0 S$ ?6 K* w: N: K) D; [3 P$ i; n8 R0 V: U
pLight->Specular.r = 2.0f;
. W* x# ^8 q! f; ^ pLight->Specular.g = 2.0f; I+ `7 X% G$ x- L* x8 J3 L, v
pLight->Specular.b = 2.0f;
- m" @. y0 ^- G+ g 7 q' d4 X7 m; t5 _5 ?0 J, e J
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];! y6 Q( c; @ t- b% W, j' C
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
/ W* J; k5 u% N5 T. c3 D pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];) Q; W: H) x, p, h# M- |! ?
3 Y: T. H! m: C, P" v) H. c HookUpdateLight( pLight );
$ n) ^1 P3 c$ `" L+ } Z" g
% s6 r1 t# Q. y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 f8 M+ {) l) D. t4 V, L0 o9 a4 T
* s" Y: B" M2 p pLight->Diffuse.r *= 1.2f;+ C: N' w, q3 }* _) L
pLight->Diffuse.g *= 1.2f;
! _9 v8 Z6 v4 N6 r; }$ t pLight->Diffuse.b *= 1.2f;
4 Q' I) T) E7 r) }+ D; m
|$ z5 d1 j, ]. z$ T1 g1 L pLight->Ambient.r *= 0.8f;$ n( v7 F, C+ o2 ^0 C# v8 F+ y. i7 V
pLight->Ambient.g *= 0.8f;
7 w A e8 h' u6 m* I6 }: P pLight->Ambient.b *= 0.8f;( a: y+ k" ~" ^# I
* R3 ?9 t/ Z7 p# V7 w
memcpy( &m_light, pLight, sizeof( m_light ) );
# |+ N- l: ^1 E2 F) [
9 \( ^9 R. b2 m) b D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; d1 l' J D+ h8 [0 U
D3DXVec3Normalize(&(vecSun),&(vecSun));. ]7 R3 z1 e X ~9 f
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
+ R! P. `/ o0 S/ W1 k1 l/ P6 U pLight->Appear( m_pd3dDevice, TRUE );( |7 ]! ^* Y3 D5 L
0 ^) K" Q3 y5 C) I
DWORD dwR, dwG, dwB;
1 ~; r' m5 `8 l! z dwR = (DWORD)( pLight->Ambient.r * 255 );
* K; w' F4 D2 C6 s: j& d( o w* T2 Y dwG = (DWORD)( pLight->Ambient.g * 255 );
4 @: s6 I' w5 `6 ^) ~* d# T) g8 s dwB = (DWORD)( pLight->Ambient.b * 255 );# |- ^: K4 z' G, t' X$ \1 U
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) u1 k) x2 } ~) _ Y3 m8 ^( ^4 d
}3 N2 M% n- m( M, q. r
}- j0 z- y; L, x; S9 H/ [0 y
}0 h- H; F/ w5 S& `( x: d- ?$ }4 x
else; Y! o( O* t# ]# C' }8 \5 ?% b
#endif
# `/ O$ z4 }$ V3 S3 W4 K
P+ s b4 n% X f if( m_bIsIndoor )0 Q' s0 p- v3 z; w
{/ _- v# z4 b" t1 m: }( s: }
if( pLight ): [9 i* t' `* I
{ ( {# i1 _! |8 C3 k
// à??μ oˉè* % v6 ^. p' U/ O: b k: \/ K
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
: B0 c1 s/ x" I8 E: E pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
( c9 a7 K8 e# V9 v! K pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
$ O8 y8 f: R3 r' R4 o$ R1 E0 N/ E6 a, K V3 _% F( o$ _% f
// oˉè* ??à?
* `6 x7 P8 g/ Q! q7 p4 e pLight->Specular.r = 1.0f;
8 q8 \1 f3 h, H8 X% b( L2 R% W pLight->Specular.g = 1.0f;
; [8 o2 n- s# M2 [ pLight->Specular.b = 1.0f;
/ L. U+ [5 ^# G" M3 ~% h // àü?? oˉè* % q0 Q$ ~8 |. ?! m& v
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" ^5 T5 Z9 ^8 O4 ?" P& ^( _ pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
5 R. [, w2 L F% {4 Y" ~ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;! N, d* ^; \0 j6 @( S1 e1 n- A
" C" S; ^2 }5 X' {
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
$ e! n8 b0 t+ `: y0 w: }, K {
6 v9 ] R" u& w( L pLight->Diffuse.r *= 0.6f;
5 I2 k* U/ g+ P" Z' u pLight->Diffuse.g *= 0.6f;, a! ?" G" I' B( {
pLight->Diffuse.b *= 0.6f; ~3 r+ p, J& n; v6 r1 ?
pLight->Ambient.r *= 0.7f;
5 G/ Y L7 H q pLight->Ambient.g *= 0.7f;2 C) T' t7 a; Q, {) J: V; Q/ q
pLight->Ambient.b *= 0.7f;
+ j, `& l0 S Q/ ^- w# p8 @2 S }1 w; H4 e2 v0 g5 F
4 S" n4 ]$ E# f1 G9 i#if __VER >= 15 // __BS_CHANGING_ENVIR
# s, m4 G6 e! @& D if( g_pPlayer )$ Y; _0 E, S. _) P8 N
HookUpdateLight( pLight );0 S- w, p( w: F: i6 A8 k
#endif
: `2 @" ~" V1 U memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 {4 ^+ G. }+ a8 b7 U l$ t$ \$ Z, T. w
% W9 r5 X" a M; }7 H$ x% o; J1 t3 T pLight->Diffuse.r += 0.1f;$ X6 \2 B4 Z( d" x0 i2 v3 J6 c
pLight->Diffuse.g += 0.1f;
8 s# E% B8 A; s- g& j( T" ~0 m7 ~ pLight->Diffuse.b += 0.1f;
9 t' ` w9 W$ o+ N // oˉè* ??à?
# L6 c" l% o- Z/ d; b" y) V pLight->Specular.r = 2.0f;
$ x& U( k9 x" @1 @, s" q6 i pLight->Specular.g = 2.0f;0 K, ?$ B) ~, R
pLight->Specular.b = 2.0f;" F' s5 H, B4 \- A2 p' }
// á?oˉ
0 d+ J7 E" @: \+ m pLight->Ambient.r *= 0.9f; y) H2 {! N6 `7 Y# ?5 i
pLight->Ambient.g *= 0.9f;
# S: B6 S2 K- t pLight->Ambient.b *= 0.9f;8 N. e, _/ I- r7 R( D
: F+ @& p( F4 `4 U memcpy( &m_light, pLight, sizeof( m_light ) );3 K) w9 C8 B4 O
7 V) ~( q4 k8 R& i2 e
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );& C0 I3 i. q. L' M5 q3 u
pLight->Appear( m_pd3dDevice, TRUE );* o/ ~' Q7 ], @
% E& \/ D% I ]: w; a; X DWORD dwR, dwG, dwB;0 ]# A* P4 h$ X2 E/ V
dwR = (DWORD)( pLight->Ambient.r * 255 );
" Q) w2 R& K. q( j$ j" d/ X dwG = (DWORD)( pLight->Ambient.g * 255 );* O" Y* o: v. S( O
dwB = (DWORD)( pLight->Ambient.b * 255 );: v( W' b' i6 q0 ], C0 s [0 F+ K" J- c
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 @8 ]! \5 o) l% s) A
}
/ d6 p7 X) V/ A5 V3 ?/ P& z: S* { }
2 l! n) ?! e% g! A else: [ w6 U+ E# | o
{7 K0 Z! Q& `1 j2 ]6 p2 R) X
if( pLight )
" a* j: U+ j% A" k# B- U4 V& \ {& o7 V3 W& t4 h* {1 e( X
: B8 c% d, i4 J+ j6 g! C1 R
int nHour = 8, nMin = 0;! i9 q! w4 W$ e9 w, ]
#ifdef __CLIENT
- ?# x4 K+ X$ Q! ]6 [2 A9 x/ n // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
) u0 W7 g2 a, a' y2 t6 x nHour = g_GameTimer.m_nHour;9 u+ S6 q% q6 ~2 e* W U
nMin = g_GameTimer.m_nMin ;
' z! t' z( g& z4 _6 @ #else( J$ M( H# w; j/ l' B, s1 J
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù." _5 E& v2 X5 z I1 E
if( m_nLightType == 1 )6 R Z8 v1 E# w8 Q
nHour = m_nLightHour;( s! |1 C3 h a
#endif
# a) O) F5 z! u* l9 z+ s; E7 T nHour--;' O/ p- ^. w/ Y5 ` d* Q& |0 c
if( nHour < 0 ) nHour = 0;/ i4 x" H) A# i3 ], f+ [9 W8 ^
if( nHour > 23 ) nHour = 23;
. ^) r) F: v- K" H8 d- @
/ P9 c: q6 C' w1 R //if( m_bFixedHour )
0 d; o9 Q2 b( S$ W! v // nHour = m_nFixedHour, nMin = 0;& X5 Q. m0 [8 W' t) ?! v5 y
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];: w4 ], C8 ]7 R) @
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
" m8 w7 U: h$ r- n
" Q& K$ G. ~0 `4 A //m_lightColor = lightColorPrv;
$ v0 t: a3 d" ~' ?! Z( X lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;: R7 W4 S( m( x
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
O. Q( u! p: M7 u lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
* H8 g; n1 Z% M7 B) m* q( G0 O lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 w" q) s# y! E( Y5 H- b6 y lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
0 ^, d" w4 C/ _; N% k. i! [ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;+ q$ E/ i% M5 M- Y& K6 N/ ]4 }' o
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)5 ~$ w$ P; z5 K( U. C. v
( E- o8 ]9 d# @* F0 V* M // à??μ oˉè* * q I) v) ?4 ?' |( t
pLight->Diffuse.r = lightColorPrv.r1;
; b! E6 t7 C6 M: o/ E! U pLight->Diffuse.g = lightColorPrv.g1; ^ Z9 n% X6 c( q
pLight->Diffuse.b = lightColorPrv.b1;8 l6 c- w: F$ I: g
// oˉè* ??à? 1 t4 e, {2 n+ Z* k0 }
pLight->Specular.r = 1.0f;$ J- @+ r, j; Q* p
pLight->Specular.g = 1.0f;+ }/ ?% L( {8 X; I! Z; ^
pLight->Specular.b = 1.0f;
_6 }: o6 v0 v" h // àü?? oˉè* 6 v' C. s, L0 I# j3 x7 I0 U
pLight->Ambient.r = lightColorPrv.r2;# Y# m' K5 d6 Z
pLight->Ambient.g = lightColorPrv.g2;5 E$ A2 o; U: Q1 E
pLight->Ambient.b = lightColorPrv.b2;9 g, c0 X5 i3 _
+ ~$ T) ]8 L% o; T; R( ^7 M+ n1 [* C. n
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ I0 V. `" `! f- p4 ] F I1 n( r
{
& R0 @( [. n* b, ?, a pLight->Diffuse.r *= 0.6f;
; V* H/ C, H0 o. B1 f2 `; C pLight->Diffuse.g *= 0.6f;
( {* `) Q- e; \7 x pLight->Diffuse.b *= 0.6f;
7 }! t" E8 z6 s6 W/ F% B6 | pLight->Ambient.r *= 0.7f;7 d( L A0 m. O$ }$ z
pLight->Ambient.g *= 0.7f;7 ]9 o: u; w9 H$ n9 d/ C# `
pLight->Ambient.b *= 0.7f;; }: D( {0 [( j
}
, X7 s0 N9 ~4 S+ g 4 ^# x, r2 k7 f: ^ N& c m: F
#if __VER >= 15 // __BS_CHANGING_ENVIR$ L* E, b7 P0 t7 z' c" q
if( g_pPlayer )
& D- b. a9 w _! ~! p) N, O HookUpdateLight( pLight );
! n, \% B+ M; C- |#endif
/ v: U/ t/ q+ ~8 | memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 L/ E2 }, ?5 E3 u
0 o+ e1 j7 K; L- D" c, t# X/ z#ifdef __YENV
3 d) ?; U$ I. A; l. e' ~ pLight->Diffuse.r *= 1.1f;; r( t5 W) G: {
pLight->Diffuse.g *= 1.1f;
' o9 V! {( J, b! _0 j; H pLight->Diffuse.b *= 1.1f;$ X" f$ y! H. O( i. z8 x" O
// oˉè* ??à? ) D! u V: u" M# ^3 b
pLight->Specular.r = 2.0f;
. T. D( C4 r+ T& p, T pLight->Specular.g = 2.0f;
& s. z+ I* O8 \( |6 } pLight->Specular.b = 2.0f;
) ]6 z# C% q: d/ U- H" U // á?oˉ
# G& B! d0 C4 w) Q& u6 R) G. \8 Q pLight->Ambient.r *= 1.0f;& b( C; V! l: o- ]; l7 h
pLight->Ambient.g *= 1.0f;
$ C. K" N7 C! U6 ^- C pLight->Ambient.b *= 1.0f;
9 {/ |# s) T, ?# C+ A#else //__YENV
, Y1 U Y' S) b: I& k9 P) T pLight->Diffuse.r *= 1.1f;
/ n# {5 ]+ W! q7 s1 U3 U8 B3 U& H; v pLight->Diffuse.g *= 1.1f;
8 p( A1 P" a% H. _1 B: Y pLight->Diffuse.b *= 1.1f;! A* |, J. T' d9 B `- i3 T( D- U
// oˉè* ??à? # g7 z8 ?) f* x$ k1 X5 |
pLight->Specular.r = 2.0f;) d! \/ n4 X F5 J; a: t/ ]
pLight->Specular.g = 2.0f;
5 R& S- Z5 _( g8 l) B' W: t' P pLight->Specular.b = 2.0f;
2 X# R3 Q, _2 A% C' E! b // á?oˉ
, l! @# M4 Q, N& W1 k pLight->Ambient.r *= 0.9f;
4 l; H+ V/ D& I; S5 h- m8 I. Q' M2 p pLight->Ambient.g *= 0.9f;
) @- x3 P E1 u# Z' b pLight->Ambient.b *= 0.9f;
0 b3 m% N0 M. X- T" h' d S#endif //__YENV
# g% F! p2 r G& M4 l - x4 {) i, Z3 I# n
memcpy( &m_light, pLight, sizeof( m_light ) );
$ C5 D" }. ^1 Z, ~" {* | / p: o- L6 F$ p/ i5 X" Y
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
$ Q' u4 z* j& t, n- a. v3 a D3DXMATRIX matTemp;4 s- B* a/ u7 n* z( l! f* r8 t
static const float CONS_VAL = 3.1415926f / 180.f;: V2 R1 e( x( [9 O0 x
$ R. Y5 u) b) {. T! A, J9 ^& q! V
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);7 i- g0 ^) z3 b* N! C
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& b# l5 r7 U; |/ h; ~8 O
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 i( ?7 N8 j% S1 T pLight->Appear( m_pd3dDevice, TRUE );
" L1 g7 @3 ~: {6 s) G# o; k
o9 e* L+ i% j; h& o // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# F; ]1 d1 e9 {8 n7 k // D3DXVec3Normalize(&(vecSun),&(vecSun));
' d M' V. u4 T8 B1 _ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, ^9 y* Y0 P- v/ {! f/ T- J# [% V+ Z* }& t
DWORD dwR, dwG, dwB;
; n/ }/ ?! G' J+ r$ U- k5 a9 N dwR = (DWORD)( pLight->Ambient.r * 255 );5 g8 f; g% @9 m) g1 ]* F
dwG = (DWORD)( pLight->Ambient.g * 255 );2 B$ g+ I/ C" j: [. e$ L
dwB = (DWORD)( pLight->Ambient.b * 255 );
, m! ~' f' Y' P% \: E dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
8 v( a8 a9 _; @& _* \8 `/ z }
0 M3 ~5 p/ L$ Q7 d, O9 I% d" Z }
1 f5 R0 A. `$ f& u9 a* E" W
: v* K+ P0 j7 b+ a* Z m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );9 s2 c2 n6 e7 U3 \
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) );& N7 b0 Y+ z9 p @2 L- o
::SetLight( bLight );
, N( ?5 K T3 Q6 ^3 F/ v
4 w# l1 s7 A' g/ W! I // ±ao? ?D?í???ó á¤à? * a2 C: j$ l3 n" K
m_pd3dDevice->SetMaterial( &m_baseMaterial );1 m9 q' K$ g* I% p& s, T
- U. d0 ] u* L6 o" n1 F( s5 A2 \5 ^#endif // not WORLDSERVER6 @1 ]2 g, v8 z- {+ K8 w6 v
}
" l# @7 k. |3 v/ [5 J并更换6 ~. r: q4 R2 h6 P: f+ G
Code:: Z8 h5 D6 F; C' g
__FLYFF_INITPAGE_EXT, ^7 M; t, D( Q$ |6 z- [9 a% Y
定义
6 h' @& {8 ~: V* w5 L
3 t' o# h0 d. g T% S0 _! X2 m @2 \$ j E4 C/ n
8 B6 E! F' O4 n4 V! U* b% Y4 K/ Y
6 ^) ]% V! C8 e4 p9 O! E$ Q现在终于删除我的狗屁加速...* S2 M8 P5 ]2 s# E
7 U. S9 R$ p5 G' e. v/ `
% P% x5 N- x9 @& P; W3 J# B2 S/ Z0 g: T. U* m
|
|