|
|
食品车:/ H/ ~2 c7 e% x6 L8 z0 U
尾翼:- C" m" j+ h1 I! ~
4 H8 S# W, c3 ~9 k7 T# H* s1 m
代码:6 ~2 Y/ R! Q& i+ j
CWndAutoFood::CWndAutoFood()
+ O: A' L( A$ O{
) m; W: d" G8 { m_pItemElem = NULL;
" t5 V5 Y5 C6 U! i, W2 o m_pTexture = NULL;3 |+ _) D) |3 H) E: s) O
bStart = FALSE;7 b3 s9 l6 r4 h
}
1 i. Z6 Y- @3 A: V5 b/ W% P# K4 l0 R7 U0 C
CWndAutoFood::~CWndAutoFood()
n2 Z6 K; U6 j# ^! L{$ t. V, }: a5 B- K5 r8 I) F
AfxMessageBox( "AutoFood ist gestorben " );
" [/ C) L$ M* v7 q}, D- c4 G1 @$ ]) B
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
: h3 m* L7 J9 a1 b Y( j; E! I{# O! v& M; T6 s4 _( P( o: V J* p! T3 j
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
: K% r0 p5 r( `# O}! Z; v4 O% \! t; F
4 e+ E* l" I9 W7 c
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
9 t1 i" O |9 {3 N8 Q+ D0 d{
6 p- L5 N6 l. F+ A3 p* V' } LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 H9 Q4 S+ W( t5 A
CRect rect = pWndCtrl->rect;
% r" X( c! B7 |& Y, \4 Q7 C1 ^$ g6 ? if( rect && rect.PtInRect( point ) )
6 n$ U3 U5 Q0 m& G. V6 [; N {% F# b5 [; _3 L/ T. ?' O
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
9 d# ^# D( g) U if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
3 l/ O& }( d5 u4 s6 b! d' \: z {
+ l* `3 X/ i" k V: J: ~ if( m_pItemElem )
5 X6 ]6 p4 L; _& H8 \ {
5 J$ T/ }" y" }* V) u m_pItemElem = NULL;
# m5 ~2 m% I$ O0 F: ~% ^ }$ Q6 X6 W( n- ]5 c9 ?0 a
m_pItemElem = pItemElem;/ k) f3 H' k1 B& i. D+ G( F
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 X O& d" I# q: Y }else{( T8 @! e8 h( _" Z3 `. M
SetForbid( TRUE );& c# v6 N* i2 H. p |7 f9 A
}" Y, q& k) C0 [& k
}else{+ m; k) l8 n- c9 B5 Y& S
SetForbid( TRUE );1 R( }9 l' w# ^0 ~' p
}
- @7 }6 }' c* w7 \0 x return TRUE;
- R( C1 b2 d1 i, e# l& U, ~. T$ d}
2 T* {5 g; g5 ^) x
2 p3 P1 w( B( G2 P% z+ NBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
# v3 C! W0 s% u, u{
4 K; h o; r/ `0 h( z0 o switch( nID )
- q3 [) i; W# } {: L n0 i/ M+ M5 @3 H
case WIDC_BUTTON3:
2 u" h" {9 H5 z {
5 p% q5 E) P- |$ Q$ D9 p0 [! k bStart = TRUE;) E1 e7 \4 g& [( H0 E9 U h, @6 [
break;
2 i# U9 n1 e, A, K }
0 s; L I8 _) N8 U6 D case WIDC_BUTTON4:
& u* s j$ Q) G/ B1 R& f {. M3 y+ I: |% i# J9 a, ^" c+ d
bStart = FALSE;
1 S' ^, M$ V, f& ? break;& M/ p+ Y8 j+ n( I
}
4 c4 m; r$ q7 m* `. M' } }6 v* ^1 ?$ p+ [0 T. e7 O
return CWndNeuz::OnChildNotify( message, nID, pLResult );: h; I3 l4 O# j
}
6 `5 V$ K, K$ _: u$ ?" F2 cvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
6 |- ~ s/ C& a4 ]4 w* ^5 ?{, x* T' U0 p4 Z
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );: l8 E0 Q/ @6 k0 y( H0 K, D. N
if( bStart || !m_pItemElem )
. r/ [) {( I+ Y( @3 @ {
% Z/ M3 _3 B6 g pBtn->EnableWindow( FALSE );
- B5 e9 U2 x: q }else& y$ e% v% x( g% `6 G6 x+ }
pBtn->EnableWindow( TRUE );) @# X) }5 h+ a4 U" L) |
if( m_pTexture )! H5 i' M+ }2 M6 L
{" c$ q- F: @" v
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );" R1 Y& F+ y, c. ^5 V
if( wndCtrl && wndCtrl->rect )0 |7 g+ t, l* C0 \
{. ^) @' I* s2 b: Z- K e! i
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
% S, k5 K! o' A+ s- { }
7 H& ~6 N( q3 ^8 K }* G9 A# V$ V( V. T
}9 c! O2 k) p( C4 n: t' d
4 [7 m" J6 e$ R4 Z. L! w# y4 wBOOL CWndAutoFood: rocess()) J: w5 U3 a. t6 {, ^2 ^8 w! k* d9 P, ~
{
8 e+ b0 D, v( A2 r# v& c* ? if( bStart )4 Y, N7 M! C; s5 y2 q! z0 \; A% u
{
+ R' Z" r, Q$ s" p, | if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )" a# k, D* f6 J6 y, Z% E* v
{
# v' T: A) a) K3 L2 X7 v3 R if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )/ @$ Z9 f3 ~. F- S X% h/ _
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );: }# z& o0 A9 X: P
}else{
- M' X/ ]( C! q* d2 d' g bStart = FALSE;
t I( N2 a. v- j1 y m_pItemElem = NULL;
% g! g. E* o" Y3 x$ F3 ]7 s/ U5 N$ i }
, i2 D3 c- h- `" s3 S. U' ^ }. ]3 W0 V1 t W0 O
return TRUE;
u$ u2 N* c" H* t- `9 ]9 q}1 X, _9 N' Y9 u! s3 v
( Y( P* G' a% `* L0 M4 P$ \
登录视频废话:
" ~" B' v# L$ m+ I尾翼:
# f4 G; n! O' p! ]- r% u* U1 l
. X3 }' j$ p/ ^代码:) k( r3 D, @; c8 r# @; T' E5 P8 e
/ g8 l/ ~ j, _void CWorld::SetLight( BOOL bLight )
{0 g( z) ~+ \5 zdurch
* j2 Y/ v. R: \/ @* kCode:
2 l! K( x+ f; S) e5 r; gvoid CWorld::SetLight( BOOL bLight )) G' N; d5 q+ a2 |/ X* r
{9 s* q5 U6 m' Y3 I6 h
//ACE("SetLight %d \n", bLight);
# ~; p4 h8 w4 {- }$ b9 q
1 f. z( L7 V' ?#ifndef __WORLDSERVER 0 S3 C; l6 o: z( o6 H5 _( Z+ }+ Z: o
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
' F+ {! v' e& d m- V+ L% K CLight* pLight = NULL;
7 Q7 |9 y; y! H b2 K' g9 o- Y
Y) U* N* s' o9 O D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );6 P; y9 l. v6 i/ ?) x* Y
% R% u* }9 q- W' v- L, S pLight = GetLight( "direction" );" a+ I; @; L2 T. w" P
( Y6 b% J" P3 k+ _- S* \; Q#if __VER >= 15 // __BS_CHANGING_ENVIR1 A+ b. k) @5 ?* e! N8 P
if( g_pPlayer ){. V+ Z5 N5 W! Z+ x: M3 m
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
2 t% k1 Q$ n5 ? if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
1 Z) w s1 o4 A5 f6 ]/ s/ Y {* k) h2 T C5 e; v& e9 J2 Z
if( pLight )
# d! P' a/ E8 j7 L {( I0 ~- n) }' b9 r; [
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];( W1 c% e3 ^/ t
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
' ^" C* ^# X- F& {5 ~. w pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 N! `4 W) x% m! F% Q; d
/ L% Y1 \* q1 Z. h/ G8 d: q/ F pLight->Specular.r = 2.0f;
4 ^7 D1 \0 q8 c pLight->Specular.g = 2.0f;. a: ?8 l8 {, v: ?
pLight->Specular.b = 2.0f;
2 l/ I4 }* O2 p: P! ]5 z3 D. ^
. k4 d* k5 A, U8 o4 B pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];5 y; Y. y7 }$ o" A7 v- ~
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];* Q+ R* ~' F S/ e+ E4 u1 h' x- `/ V
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];3 \$ I5 @8 |. }4 Y, F
7 _2 W4 E! j) ^+ z z! J HookUpdateLight( pLight );
: Q, }, \# \+ U! _, U2 X5 i$ @7 X4 O, w! u% H/ Y6 g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 c9 i7 \; a X' x# D& n0 A$ o" q ) v/ p$ J$ w0 }6 [9 K! A6 E7 [
pLight->Diffuse.r *= 1.2f;
- I- `9 V3 U- U8 L/ T" s \1 C pLight->Diffuse.g *= 1.2f;6 i; C2 m; U- Q
pLight->Diffuse.b *= 1.2f;
+ Q# M6 @9 g& F* B: B5 C# y1 s8 S+ [1 r! }! `+ u, x! T$ l
pLight->Ambient.r *= 0.8f;1 b2 j% f$ d. Q: w( Z; Q
pLight->Ambient.g *= 0.8f;. e8 h9 k& a6 J3 j* o' A* y+ {$ k
pLight->Ambient.b *= 0.8f;4 B8 }5 m4 y4 t% U- p5 q% L
; L( |3 `$ o: W- K: C memcpy( &m_light, pLight, sizeof( m_light ) );( E0 W6 _" T8 I+ D# Q) F
- G% M' i/ Q1 ]- T D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& x* j3 g L- O
D3DXVec3Normalize(&(vecSun),&(vecSun));
' q9 W! k1 p* C9 K pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
# v3 U; h- }: X( L H9 r pLight->Appear( m_pd3dDevice, TRUE );
4 M( y8 U0 Z. b% _: r4 Y I0 m4 n3 x3 i
DWORD dwR, dwG, dwB; m) l7 P- h/ L0 G. H" G! P# w7 l) d9 K/ c
dwR = (DWORD)( pLight->Ambient.r * 255 );6 G' [2 C! J* Z
dwG = (DWORD)( pLight->Ambient.g * 255 );* f# X. J4 K* A3 M2 P
dwB = (DWORD)( pLight->Ambient.b * 255 );( v2 P# j0 M+ r" p5 ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- P% ^8 U8 w: n8 J) k$ A2 Z }
. N5 t6 s" ^# O. Z' r i }& b8 Y0 [% W, |" [
}
5 `' M! ^7 x1 y, g8 C& v9 O- [( a else) l& T/ H& {/ D8 M# ~
#endif
) Y* [: ^' a8 {4 {6 ]5 v8 k
4 B' X8 G: D/ C3 z+ q, F if( m_bIsIndoor )8 S/ @, s( _( w. h# \' I
{
$ s$ m! o N0 s, W' n, P+ G if( pLight )
4 Y. y5 _' M1 B$ l/ ~5 ^ { 4 R# M! ]* o y6 n! I
// à??μ oˉè* 4 I; a# y' e j, `
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;7 t: {* e8 H: @0 u) G* g: s- w
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;# T Q) Q8 R; A9 ?) \% @
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
0 F1 b& `& W I+ s4 |3 P, h3 J0 @" P( I
// oˉè* ??à?
. J, `+ u+ z/ [' [$ a7 w pLight->Specular.r = 1.0f;
$ `8 _" C" {7 @# }' H- M pLight->Specular.g = 1.0f;2 K+ l9 y I0 R, ?' B7 H/ a
pLight->Specular.b = 1.0f;
! t: U' r! A; Z- T2 q" s // àü?? oˉè* " N- X' P8 A. O4 t" m
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
* N" y6 w' N3 |3 g0 O. z7 [; y& e pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
/ V+ E+ k9 m* p pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
0 g; Y+ d% d9 q. k
O$ r' p/ c) g- O" ~ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, b- w6 y$ S0 C+ \& H, r {, V' h5 b+ ^' K4 V# I4 m8 [
pLight->Diffuse.r *= 0.6f;6 r/ E; |4 x, y# O% [( _: m+ i
pLight->Diffuse.g *= 0.6f;* P5 g* K- ]7 M# b
pLight->Diffuse.b *= 0.6f;
* E8 N: D- s9 q/ _/ q0 W5 { d pLight->Ambient.r *= 0.7f;
9 p. B8 P4 e5 K pLight->Ambient.g *= 0.7f;2 X" n. e1 R# ?. g
pLight->Ambient.b *= 0.7f;
; U( @4 W1 y1 }7 b8 M9 s4 ` }( e- `' o" E* H4 ]
# }- c9 K1 J/ e+ C- R
#if __VER >= 15 // __BS_CHANGING_ENVIR
$ ?* B1 M+ l% N [/ e7 |3 }) q: w0 \$ I if( g_pPlayer )
4 S; K* D' B3 m; D+ c: {/ w HookUpdateLight( pLight );8 X Z0 I' m# L% T( u
#endif
5 i, H" ?4 L, W; z d+ j memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 o2 P+ n" ]( i4 L
+ T* |3 N6 R8 G8 W pLight->Diffuse.r += 0.1f;; O/ C2 P2 H! k. h# G
pLight->Diffuse.g += 0.1f;: e% C& F! M7 H$ f! g5 b# b8 s* S2 o
pLight->Diffuse.b += 0.1f;0 W% q' u4 Q3 }1 n G1 }! ?
// oˉè* ??à? : B4 `9 A5 z3 u1 I; g. H
pLight->Specular.r = 2.0f;
* p4 |) F. c, Z0 @7 N pLight->Specular.g = 2.0f;
7 q# `$ l* [8 ~$ i7 f1 }9 ~: u pLight->Specular.b = 2.0f;/ p2 r# b4 z1 R+ S, x
// á?oˉ 9 w9 v ^4 B# P9 f Z% q# I* ~
pLight->Ambient.r *= 0.9f;
% v, Q* q+ O8 o3 l pLight->Ambient.g *= 0.9f; [0 c/ ^* m% O" D1 m' t* _2 [
pLight->Ambient.b *= 0.9f;+ @2 @: ^8 |- T, V, h' `
- _+ C' A+ J) j* u3 c$ U memcpy( &m_light, pLight, sizeof( m_light ) );3 F& z- `0 \. B! ]( o9 ~( |
: k8 H, N1 A+ { pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
/ u2 `- m- g; | pLight->Appear( m_pd3dDevice, TRUE );& _1 s- a+ z& Y8 ]2 N3 V' g4 h
$ }, Q( R- V5 b1 U
DWORD dwR, dwG, dwB;
/ {0 }; n C4 \: Q' Z' z! H C; h+ B dwR = (DWORD)( pLight->Ambient.r * 255 );0 L. C' T- d) u
dwG = (DWORD)( pLight->Ambient.g * 255 );& d; _6 a, A; I/ v8 Y
dwB = (DWORD)( pLight->Ambient.b * 255 );
4 i: L d' ~% S& j dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
% D7 q7 ?. q f. ^5 K. Y }4 X0 g! Z0 o# J( }) t& h9 \+ h
}
! P+ _! s/ o* V0 w9 ^ else
# K9 @8 [, q' ^; I5 d {
6 c9 }& Z5 T9 e6 ~* M if( pLight )$ @. J+ b. l0 g ?$ [7 |% I
{
$ O( `4 G$ m& u% v4 o # F% v- i* P9 C& k' y" `; v+ L
int nHour = 8, nMin = 0;1 C4 S1 M* \5 r( y4 S
#ifdef __CLIENT9 v9 D8 ]* |4 u& h& e2 s! r
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & {& D/ Q2 {# ^ A8 {4 x1 e& Y
nHour = g_GameTimer.m_nHour;* @8 K+ T! F6 \4 v# K
nMin = g_GameTimer.m_nMin ;
, b; B8 z R3 K1 Q! }$ j: r #else" G i* T& @6 e, t4 T, D/ @- |
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.) j. R# W- {2 I& {) Q h
if( m_nLightType == 1 )# G4 L$ n! w5 T0 H' G
nHour = m_nLightHour;
, ]; o7 u6 |# G #endif
+ g0 G6 I7 M! p( J nHour--;" B: M% w& Y) |1 g' e9 G
if( nHour < 0 ) nHour = 0;" a/ @0 k, ^, }9 N. C) _3 B& `
if( nHour > 23 ) nHour = 23;/ \8 M2 l- `6 x8 w7 h- u
3 J9 V' w6 [3 a4 W. e //if( m_bFixedHour )
- q3 H2 H6 K1 ]: I7 ~& z" { // nHour = m_nFixedHour, nMin = 0;; m; ~3 x' Q. {$ E& K' y
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
- U5 _! e) n; T/ ?/ k3 Z+ |' c9 H LIGHTCOLOR lightColor = m_k24Light[ nHour ];* i( g3 h6 K9 [2 R
- ? r* r# B2 b/ F+ ]- }2 I3 ] //m_lightColor = lightColorPrv;
& v3 g6 H( U4 l9 D1 C# a. V lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;) u& S; I. Q* ]6 `$ _
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
' X- R& O) C) w lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;2 a' k& E. m: u0 _
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;/ q: q+ { M7 t& n1 z/ L- O
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
( b) B6 u& A1 z* k: n8 K lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
; Y$ z+ e$ B( G8 z // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
/ E8 T u3 x8 ]1 z
" d( |) m# G3 M6 k2 ~( O // à??μ oˉè*
& P/ e/ ~' }+ Q, `: d# @' z pLight->Diffuse.r = lightColorPrv.r1;+ C! d" o* n4 \0 c9 ~% q; z
pLight->Diffuse.g = lightColorPrv.g1;
+ k) U3 `1 r4 @. d; z pLight->Diffuse.b = lightColorPrv.b1;
# S) E/ f; x7 l3 }: x- @ // oˉè* ??à?
# @7 Y2 O% K6 T$ @. i pLight->Specular.r = 1.0f;
! W( h1 o! G) T! S pLight->Specular.g = 1.0f;
4 H; ]" u) I* U" Q: l( n. e6 |* z7 D pLight->Specular.b = 1.0f;7 s* x& k. x! L B0 f; g4 \% ~
// àü?? oˉè* 2 f9 ? \" I; c3 Q" R0 G- ]
pLight->Ambient.r = lightColorPrv.r2;
' o* F+ n |$ c7 g pLight->Ambient.g = lightColorPrv.g2;* O- j! i; n7 y. A2 w: e" B4 d
pLight->Ambient.b = lightColorPrv.b2;
`) V" N7 K1 W. W {/ q P
9 e: F/ d3 [) {9 i" f, S if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 t$ n' a! ~8 o& z3 i$ J {8 M; X v" I0 j) r) m
pLight->Diffuse.r *= 0.6f;
! i! g; a' b& U- _ pLight->Diffuse.g *= 0.6f;. R5 I7 p U2 J/ ^( Z
pLight->Diffuse.b *= 0.6f;
' t8 ^8 ?/ C' A, @9 ] pLight->Ambient.r *= 0.7f;
/ p, @( ?( g# X% G1 B+ ^ pLight->Ambient.g *= 0.7f;
5 q, }1 f5 e9 q5 g pLight->Ambient.b *= 0.7f;+ y7 N' C9 |5 | I, v
}' P/ A3 ~2 Y1 y0 T: Y
% J. w9 J9 o( m8 b+ v2 p" ~#if __VER >= 15 // __BS_CHANGING_ENVIR
' ^ \3 N; d8 Q9 z1 p8 f0 K# `% U# t1 C if( g_pPlayer ): O/ G0 c8 e/ A1 @' W2 r8 x% W
HookUpdateLight( pLight ); + @( ?! z( j& M1 b+ i, p7 R$ ]
#endif
' R2 e. y# V/ C C7 a( A; Z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 a: a- g1 ]$ F" P1 `; p6 @" C2 P0 j- K! w4 P
#ifdef __YENV( K- j; }& m# T& ?4 Q. [
pLight->Diffuse.r *= 1.1f;
3 \3 y- b- N1 _' j pLight->Diffuse.g *= 1.1f;
! [' y( ]9 Q }: w pLight->Diffuse.b *= 1.1f;$ d ^: O( [) o) e, G
// oˉè* ??à?
6 X) b7 O# M, ?$ R2 Z pLight->Specular.r = 2.0f;
- p& `6 \5 b& W0 F# R. s" N# f pLight->Specular.g = 2.0f;, f6 Y4 }; P# } k
pLight->Specular.b = 2.0f;$ A+ }! T% L, m8 z7 P) C, Y
// á?oˉ 8 ?" H# W2 s$ Z2 \( H
pLight->Ambient.r *= 1.0f;
" \0 B: m& l! E, s# {" W6 r pLight->Ambient.g *= 1.0f;' o0 U% r6 o! P- Y m
pLight->Ambient.b *= 1.0f;* k/ W7 j) E/ t
#else //__YENV
; L, \$ J( p. E& q6 m pLight->Diffuse.r *= 1.1f;
# b2 C' k( h* I& q0 d& z) J pLight->Diffuse.g *= 1.1f;
$ X. W" ?3 q X ^5 P pLight->Diffuse.b *= 1.1f;
2 ^1 M6 x1 ]; h* s' P- m1 C0 I( G/ r // oˉè* ??à?
' P1 j; x3 \2 m; ? pLight->Specular.r = 2.0f;, Q' t: C6 K. B% C! a# z; Z
pLight->Specular.g = 2.0f;* c1 e/ m$ i7 y7 M) }
pLight->Specular.b = 2.0f;# Q) V9 {) W; b2 |" A6 N
// á?oˉ
8 N! R! Q: Q \9 T pLight->Ambient.r *= 0.9f;
: x) ?6 y" ]: y7 m7 Q6 M9 E pLight->Ambient.g *= 0.9f;; t" q( c5 y" i! D% j' b" R$ g
pLight->Ambient.b *= 0.9f;$ F2 e* a k V$ J' E
#endif //__YENV
; w! U. G W$ W7 C8 \$ M9 p$ W) g6 Q. H
$ X k8 N/ I9 x1 R memcpy( &m_light, pLight, sizeof( m_light ) );
6 ~8 F) E: {# e& ~' C % K5 {8 `" s* \9 L# J7 E3 X
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f); v" l, J4 ^" h! E* z& T; D
D3DXMATRIX matTemp;5 |! J3 c' Z) J1 A
static const float CONS_VAL = 3.1415926f / 180.f;) _9 j0 L! T4 f7 i3 O
6 T) t) [" i9 N0 D9 | D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);9 B9 @* [8 Y& x2 ^# a/ M
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
$ v) d5 p- G% Z0 g pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); $ e( ]! }" W' T8 q) \" e5 P
pLight->Appear( m_pd3dDevice, TRUE );
4 X* p! j! K( l! P
2 B2 \8 u7 |( `8 d& l3 C' @# R // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 r1 I9 S) s1 ?2 I4 @ // D3DXVec3Normalize(&(vecSun),&(vecSun));
6 G0 P) d( [; G8 p$ G. P // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 O. T# E9 _6 [/ o+ i
7 {5 n8 [8 \$ J( y( Y0 [. A: r% Y0 b
DWORD dwR, dwG, dwB;
5 N7 k( d# G, ^& F2 R* I% p0 ] dwR = (DWORD)( pLight->Ambient.r * 255 );! X) _& Y; c" S! t6 C& _; k; P3 w$ R# q
dwG = (DWORD)( pLight->Ambient.g * 255 );
1 U) @1 G/ h$ d; W dwB = (DWORD)( pLight->Ambient.b * 255 );
3 a7 R& o3 t7 ?; s. x# Y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ }' k3 n. H S ]$ C% o }
, T3 K6 M$ H/ z) f }4 {1 |! i$ j8 j- w' S
& R/ X. g$ b8 J6 f& U
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );: o$ i6 C- V$ s7 G8 |
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) );
' s. I$ I4 b, C1 n' }: T5 i ::SetLight( bLight );9 r' }8 W1 o; u) |0 l' C/ |! r
4 j* T+ q; _8 K3 x7 \. b- ~+ l* N6 a // ±ao? ?D?í???ó á¤à?
: ^+ Y) O5 f$ j8 E, Z m_pd3dDevice->SetMaterial( &m_baseMaterial );
" l& _, ^ W2 h: j+ f; \ 1 |$ J; P" E! v- B
#endif // not WORLDSERVER
, F* y" u0 o6 K8 p! K}
) \3 C# \! d7 q; L5 z6 P$ N( L并更换6 g% H$ w7 ?. H$ G/ H$ p. `) Y
Code:2 ~" D- _% I2 C9 T; ?, z5 w" _( r
__FLYFF_INITPAGE_EXT
! a" a* X' R: K定义
& r: S3 x3 a& g$ A: h
$ I; _$ z) S7 X6 r$ p3 s
% Q9 Y, ^* L' K$ _) [. r9 r
8 Q- y+ M) v# Q6 y4 u+ x4 P0 ~: }
% X9 i; [, u' u& D5 f现在终于删除我的狗屁加速...) p( ^ Z6 E$ B6 [- N K0 s
0 X: s! K' R( B$ C- N' A, l' m7 D* Q M" k8 T w
i' M7 v1 X+ h7 r5 i2 K |
|