|
|
食品车:
4 P0 k' N2 g% S尾翼:* G _) a; u1 G
9 {4 j# G2 S, ]/ w; q2 {+ t代码:/ [9 D. P; s! F- N6 }, c; I5 Z
CWndAutoFood::CWndAutoFood()
4 d |, {* Q5 C1 @ q) \5 M; v" g{) l$ \* k7 @4 @% G8 i4 J
m_pItemElem = NULL;' s6 o1 t! \/ J; V! W0 ^2 Y! f
m_pTexture = NULL;9 A/ O) y$ U0 W( j4 p
bStart = FALSE;, h, i" F3 l- L
}, u4 P$ l& d$ x% @1 Y
) l# v2 U1 ?' I
CWndAutoFood::~CWndAutoFood()2 d8 p. S+ O7 W: H* y: ~1 R
{
* w! g& m) z1 X& ] x ` AfxMessageBox( "AutoFood ist gestorben " );5 j4 V/ u7 t# i3 [9 b
}
% o3 G2 n3 s6 [' u& yBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )8 w( K; V' K4 k' b( q% ~6 w6 k/ q
{) U, j! r8 \7 L$ @7 k
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );- D0 X: w: u$ {
}
$ ^) p. b! u2 j4 H# v* H1 M7 @; J* T+ v) v8 n
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )' [! P" Y; _. H* E( U7 e; g* @
{0 z' x# r! u, w/ D' t
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );. h3 V( v9 c$ z8 ^: S- d! \& ^
CRect rect = pWndCtrl->rect;
0 y& \& {$ k2 c1 X* s* n if( rect && rect.PtInRect( point ) )
- x4 a( Y! R x1 H4 J$ C { G) b! D. V" n' i1 U
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
& W" c1 Z0 e0 Y! ^ C( A if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )$ k& }9 `( J; [" ^# M/ b/ ]
{$ Y) G1 o0 n) w
if( m_pItemElem )
$ v& B/ T- D2 _* |/ H* l: q {5 L2 f& H2 N, D* e9 D9 u1 p2 M+ t: ^
m_pItemElem = NULL;2 i2 Y# G4 n8 M, T
}. A7 v* Z7 u! [1 a# |
m_pItemElem = pItemElem;
. I3 ]! |5 X$ U6 ]6 d- l+ W m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
# W' {4 k4 k( n. x5 R }else{
. l' g6 V2 ^* h) h. E- \, ]+ O SetForbid( TRUE );5 [7 t6 E7 w5 ], ^$ R
}8 O' S# H+ B7 h
}else{
5 K/ n$ z$ k# E SetForbid( TRUE );% T2 p2 U0 T' Q3 q) q8 F, o
}
" k4 q' A' W8 r+ \ return TRUE;* t; l4 T% x `! g4 ?. j
}
# a3 i, k. b# d4 M2 { R$ R) i# A
, G1 w9 }3 O1 Z- Q" j1 J1 }7 wBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )7 \& ?7 c: @- e" G3 s9 E! A! i$ |
{$ Q9 a9 u. m) | M0 d8 X
switch( nID )
/ i, X! n1 C/ ? {
2 r" j# i; j2 W. `6 o case WIDC_BUTTON3:
$ V' i: z' `: A8 _& N {
& q, c$ m2 D$ w; b) j! D bStart = TRUE;$ p5 Y. i$ |( X5 K/ @2 U6 g
break;
. R6 P) O- c4 v) D3 i4 p& p }
# k1 i3 }; |. X* q# M5 G case WIDC_BUTTON4:$ `, h, u8 w6 T U d' A
{
+ D; s3 F2 @* r) L bStart = FALSE;1 I! P& T5 j8 N, K9 b
break;
2 J9 s, D+ Z; a; Q }
j) V$ \8 D6 F2 P) U! A2 n u }
8 { q+ P7 w( v return CWndNeuz::OnChildNotify( message, nID, pLResult );9 }3 _: U1 y, K ^0 e4 C
}
) p1 m4 k) x: `/ ~void CWndAutoFood::OnDraw( C2DRender* p2DRender )
5 g# y+ R8 d% l' g8 X" R{6 Z5 h; G1 `! d& R& X' ?
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
# v# T0 o1 V/ |# g7 @' D if( bStart || !m_pItemElem ), n! H1 e5 A. y1 n" l
{) h$ a+ y+ {+ d6 I
pBtn->EnableWindow( FALSE );0 o/ t7 G W! l. H7 H- q
}else
/ W2 L3 V7 o8 m: {, R8 I/ I pBtn->EnableWindow( TRUE );" f( @4 w" X2 C& Z" Z- n
if( m_pTexture )
( W0 ~3 D& u( D7 v. B {" k# o$ y* K8 C0 x# R# {
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% d0 b" a- v+ m4 e c& h7 \ I
if( wndCtrl && wndCtrl->rect )
+ ?3 `; D- s9 S* \! \ {
u: @* i5 _* f! W4 r m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );$ C+ ~; z5 i" J/ {! `: j' K' ?
}% l) K8 B# X; h8 q% R
}
3 Y4 S+ r8 W, E( f1 z1 e w. Y" ]}
- m S" A4 [ v( t- g4 b* g7 F4 B% \" ]9 w5 h% C' l/ q
BOOL CWndAutoFood: rocess()$ x! x1 u" C* Y' v0 S2 K
{
3 J- ?" w2 r' i1 ^3 R if( bStart )
& ^* R9 m2 R' } }/ O: Z {1 y0 |; w5 M1 f
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
* ]* Y: {% k! v {( x: |: \3 e6 e: g
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
7 Q- d5 d2 x: b3 M g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );; E* [7 w1 Y8 n& G, M8 x9 A, P
}else{
1 c/ C" b" p) y1 G) q' ~9 A bStart = FALSE;
1 P' u: C% A+ K' u5 R m_pItemElem = NULL;
) L D9 i9 {& }7 k }0 H" W( ^9 p" M- n# R7 F" S& y H' U
}
6 i) z8 G1 z6 v. m' K e$ } return TRUE;' }5 E) s- W. ~: p( [
}
1 j3 q4 s9 h! \( L6 i- @4 Z, `6 f) j% ?7 Z! R
登录视频废话:
+ L5 B2 _1 q# `, \+ B5 s; N- W& `) t尾翼:8 |9 C6 n5 K# M2 c5 T1 }
3 B1 k' k! l* G代码:0 K; g# w H- F$ |+ s8 o
; O2 _& U3 d# ?9 S# J5 v) v6 dvoid CWorld::SetLight( BOOL bLight )
% z! ^- t9 ~$ b I5 h$ H7 @" O7 Mdurch& H0 O8 Q# T1 m$ p+ |0 ^
Code:8 T: E. a( [5 S( W2 R
void CWorld::SetLight( BOOL bLight )
0 s0 n; X3 R, a: \; b/ c9 ?8 s{, d- i! ~7 E0 S. i5 M9 o9 [
//ACE("SetLight %d \n", bLight); F/ m1 I1 s$ G7 Y- Z
" G6 g3 {( D+ ]& h#ifndef __WORLDSERVER
$ |& _% B9 q6 \; \/ Z# t DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
% A3 T0 R. k2 F+ Q* [0 P CLight* pLight = NULL;( v: O: L. k6 G
9 p# B! R4 R5 B* v' Q% R D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
6 ]' Q3 c, a0 e, I2 |3 S) ~8 S k: r* i! ?
pLight = GetLight( "direction" );
3 Y; M* T Y l" V- x
9 Z @) p* ^8 n! n3 ? b#if __VER >= 15 // __BS_CHANGING_ENVIR1 u! o# d/ F- Y, {# Y1 `' f
if( g_pPlayer ){9 y* B1 j/ A( f: A# }
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );# e2 ~7 y/ Y5 a* C) K7 X h
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!4 q+ C8 ^# {! p% M1 H) n1 v; d
{
( L6 ?: B" T9 z! P3 R- ~ if( pLight )
1 n( ~$ @& g( y' b8 \ {, Y0 [/ l3 W6 F7 H* _
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
% [3 s$ Y" n% E+ c9 k pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
5 N" G/ l/ U+ }! v. d$ S pLight->Ambient.b = pInfo->_fAmbient[ 2 ];1 C9 W- U) F# X- a5 Y. o
: R/ k3 y4 @1 t* s/ e. u+ {
pLight->Specular.r = 2.0f;/ s& c6 s7 K# W% h2 v. n8 m
pLight->Specular.g = 2.0f;
; h ]' H% j9 R% L& @# y pLight->Specular.b = 2.0f;; U$ |, D4 }2 T2 J5 n3 e
; G5 f" d1 O& O' O# R I$ T pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];" f5 M) E: |, b$ S
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];6 ^$ [0 \9 R/ x0 ~0 y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
' l9 {+ a$ @0 B+ G5 Q1 }1 e& \! f6 r9 J , J& Z+ n& [; D" N" G7 ]! `, i
HookUpdateLight( pLight ); # ^6 m% |+ S V: q5 M
% s2 d2 e' n2 g( W! j' k
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 ~ u8 i/ G$ }. {3 N- P
1 c5 P [& K1 ~/ ]+ Y pLight->Diffuse.r *= 1.2f;% ?: v/ {( |# |; B1 Z( w
pLight->Diffuse.g *= 1.2f;
* ^: k. F% v5 P8 F: D @ pLight->Diffuse.b *= 1.2f;. u; B7 f0 V: s# C6 I7 F
- f! I6 R1 F; R+ ^1 A pLight->Ambient.r *= 0.8f;
2 J, F& b4 F4 z3 O! \ pLight->Ambient.g *= 0.8f;
, ~1 D+ w. @. j: r x! k. [0 h pLight->Ambient.b *= 0.8f;# ~5 U4 ~1 {2 c% L
3 U9 }% g7 |' O$ o' j memcpy( &m_light, pLight, sizeof( m_light ) );, J8 b/ Y0 W; A& h! y
3 i* B' I7 n! z( a D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" Q: s3 W) t3 [
D3DXVec3Normalize(&(vecSun),&(vecSun));( W$ @) ~: w1 N
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
# E* ?' x# l; j+ T pLight->Appear( m_pd3dDevice, TRUE );
+ W* x6 V! Y/ K3 ^
' g) d# S5 V0 D/ }! l/ h+ g DWORD dwR, dwG, dwB;# b1 T# ~% _* F" P' }
dwR = (DWORD)( pLight->Ambient.r * 255 );
) G/ H9 p& o0 X7 T1 @3 z6 j1 k dwG = (DWORD)( pLight->Ambient.g * 255 );
1 X+ c. J1 [+ H+ E7 ]3 g dwB = (DWORD)( pLight->Ambient.b * 255 );6 M6 A2 Y e1 K. b+ R( m8 V' V
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ ~9 }7 |% T' ~ }. E7 t7 S1 b3 \2 j2 y1 k0 t& |* ^
}9 {. J7 N( C2 k
} ] \* n3 o( m: T3 V
else
: l: d! R& n/ M& Z#endif ; M4 V$ R1 Z) m, G" P7 |
6 Q; \1 }: w/ A5 b& ~6 A
if( m_bIsIndoor )
- O. L* n; z$ V0 f4 \) ^% g# h+ O+ l! h4 o {
; h' j" q( L! v if( pLight )
# {1 U4 v4 L* c4 `) w" @8 | {
# W4 y) [" A3 n% V- m // à??μ oˉè*
" @5 p! r; E k, C D% `& X pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
* J1 w- J6 \3 B# T4 W pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
8 J1 d3 v. G) K& H( a$ `) D pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 s- `* p$ I. J K
5 V' G9 Q3 M7 O2 v S; ]& ?7 N
// oˉè* ??à?
3 p' K# S/ ?6 h, v7 r0 \ pLight->Specular.r = 1.0f;
0 }% E" R; a7 ?. b+ G pLight->Specular.g = 1.0f;
0 J- j t- ^4 q pLight->Specular.b = 1.0f;
3 M3 b3 Y! g$ T // àü?? oˉè* % B! O3 b( g7 W
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;, D" F7 m. w; N9 l
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
) w2 U1 A3 {# I$ x0 Y8 r( j/ p2 x pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;; Q0 c4 I" `* g) G
( m$ \5 |; Q. E" y4 Q/ _: _$ \ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.9 o1 `& X6 h, w: k
{
' z3 ?) g4 v9 b5 F7 }$ x" m- e: t' c pLight->Diffuse.r *= 0.6f;" \) ^, b0 m! F& X
pLight->Diffuse.g *= 0.6f;7 B, y- A3 G" U9 Q, h7 Q9 z+ P
pLight->Diffuse.b *= 0.6f;
: V& M! j. s8 a+ _9 o' e pLight->Ambient.r *= 0.7f;
8 p1 a: t0 v# C3 I9 C. @9 G pLight->Ambient.g *= 0.7f;8 q; R# C. V; U, P7 H
pLight->Ambient.b *= 0.7f; c+ U% ?0 n& ]+ W: ?
}4 D5 w- h7 K7 y1 k3 F
) Z) b; H8 g" V1 L |* k#if __VER >= 15 // __BS_CHANGING_ENVIR
! j: l# J- j" F% H4 p if( g_pPlayer )9 V2 Z6 c z+ h
HookUpdateLight( pLight );, O1 p- u0 y& A7 L( L
#endif
+ v2 a3 G7 C! c, Z- K/ c5 V& d+ ` memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# U( W$ @3 i: M! [7 r8 J* B+ {: Z1 i
7 i! b9 K6 {7 L0 w/ ~% d0 s
pLight->Diffuse.r += 0.1f;
, r% Q8 ?# j. Z& B2 r Z, I pLight->Diffuse.g += 0.1f;
: \, I1 ^! M4 H# j pLight->Diffuse.b += 0.1f;
& v4 A Z1 e8 A9 u6 N // oˉè* ??à?
- g) @, I" C" H* e' h pLight->Specular.r = 2.0f; T' ~' v/ x z2 Z7 }$ H0 o4 U
pLight->Specular.g = 2.0f;1 U, C' N% r$ ~; i. a
pLight->Specular.b = 2.0f;
$ k; ?/ p) I9 M# Q% V // á?oˉ * Q7 Q8 e* r4 i1 v3 U
pLight->Ambient.r *= 0.9f; ]$ W4 A1 q% D% _
pLight->Ambient.g *= 0.9f;
+ s; P ~9 h7 `7 U* k# ~$ R pLight->Ambient.b *= 0.9f;
* ~2 S# F5 a9 |" B. p9 F! p
/ [- Y: a$ J& i3 C memcpy( &m_light, pLight, sizeof( m_light ) );
$ ? d1 {- m# }# p5 J$ L% O
) ~- N& p) |5 E7 u1 ] pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
7 @! `: I% P/ @. L6 l pLight->Appear( m_pd3dDevice, TRUE );
& U+ C7 ^% `/ f2 n! D. }6 h * t: Z4 Z: i5 |3 C/ ]& P" J
DWORD dwR, dwG, dwB;
5 v6 u+ t/ E/ I8 z( v dwR = (DWORD)( pLight->Ambient.r * 255 );
* K/ x& K7 t% o, |6 C& G: j dwG = (DWORD)( pLight->Ambient.g * 255 );! ]+ e0 f7 e8 L& S+ o7 ~
dwB = (DWORD)( pLight->Ambient.b * 255 );( F4 ]- O1 M+ ^* _1 W" L
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% \6 Q4 g; T3 N& V8 q6 z( g
}7 d. f" m4 z6 x3 Q6 d. @+ @5 Y( j
}% O8 D z! ~, w9 i/ Z. ~* ]
else) x+ U: f4 Z* m( i; Q
{! C9 h" r9 ]1 m) Y; D* x2 x
if( pLight )3 G5 w, l" G- ^. a% H* Y
{; O+ P' G" u2 O U9 a
& |# f2 ]! v6 b+ s( n int nHour = 8, nMin = 0;1 `; ~ }( t V4 B
#ifdef __CLIENT
! w1 g. y) V$ N9 S W // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. # ]( h) _& X3 M9 ?0 d2 _, h
nHour = g_GameTimer.m_nHour;
6 s4 L! o, G& ^7 z, ~+ C7 D. x nMin = g_GameTimer.m_nMin ;
; e6 s, ~5 s; v2 |% F l5 H$ @ #else
( A, b7 e! j/ O8 }8 N' \. j // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
. h- _3 w3 R4 U0 X$ N$ g if( m_nLightType == 1 )
; {* r6 Q0 ]6 O) d9 M nHour = m_nLightHour;
. n1 L: Z2 [$ [+ ? #endif8 d2 ]1 v }1 K4 R
nHour--;
J2 d4 O& O$ A6 l8 U" B3 J& p4 V if( nHour < 0 ) nHour = 0;* [. i6 }' Q0 k$ ?* v. x5 A9 Z2 c
if( nHour > 23 ) nHour = 23;
( z- n! b' d6 n7 X7 O
9 N/ f4 v: L5 t$ F! O0 \8 T! f/ T //if( m_bFixedHour )
. b: q( R" n) l& g // nHour = m_nFixedHour, nMin = 0;
m8 r+ e; C( m; {4 s# p8 m LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];0 y {: U: o- n8 E& ^0 X
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
. O6 l/ V; E/ H) A2 j7 c$ D8 s+ X
//m_lightColor = lightColorPrv;
2 ]. t5 k$ V- E" W" Z) ^5 X lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;/ a! \; r }1 M9 c& c" L
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
]9 g' C& `2 T, w% K( b5 E& V% C lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;& `9 A. W5 K0 C/ i/ b
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 S' s z4 q9 q; @ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
8 D, S; f4 f7 C5 N1 @2 `+ x lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
6 ~; Z5 b/ f7 W% F/ W7 }; F // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
7 f% d8 b# O( `8 b, v1 D' P- s1 g( Z! v5 ^
// à??μ oˉè* 9 S4 g5 i. V0 e/ z/ n# l" m
pLight->Diffuse.r = lightColorPrv.r1;. N7 [1 C' N2 _9 B
pLight->Diffuse.g = lightColorPrv.g1;
; R8 X$ ~: }5 ~5 @2 I- q pLight->Diffuse.b = lightColorPrv.b1;
* o# `5 l6 k6 ~8 Z: W! d+ I, r% I // oˉè* ??à?
1 e+ E7 b ^) _8 C: w pLight->Specular.r = 1.0f;# I( A, V$ M# ^8 E3 V8 F) O, X
pLight->Specular.g = 1.0f;4 }- S1 ? q" t# \. Z. |( ?% R
pLight->Specular.b = 1.0f;/ [: F K3 X! W# K# Q. j# B7 V/ Z1 L
// àü?? oˉè*
; P! ~2 g6 x4 P pLight->Ambient.r = lightColorPrv.r2;
( g8 O& @0 w5 I8 l pLight->Ambient.g = lightColorPrv.g2;
; s% F0 U; T, c0 q* A pLight->Ambient.b = lightColorPrv.b2;! ]' L; I/ I! D2 C2 M
/ B' C' q- W2 Y8 C8 j0 q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.: P" `3 M" U$ u" {' @
{* r+ Z. b Q0 o' R/ m) A+ |( |
pLight->Diffuse.r *= 0.6f;
* K0 y# Z a6 N; A1 Y8 g7 Q* O# Z3 L pLight->Diffuse.g *= 0.6f;6 g; @: W9 I/ ^: n
pLight->Diffuse.b *= 0.6f;
6 G9 a7 \9 q9 x# p- o- y F( P pLight->Ambient.r *= 0.7f;* m" S1 h* U' y( z1 u1 h3 O C
pLight->Ambient.g *= 0.7f;
' {, F: m8 @$ e: q% F pLight->Ambient.b *= 0.7f;. \; ?& a0 |7 N9 j: \
}& g* T% e! z* Q2 r9 D- k* U( Y4 Y
3 Z" q5 p2 ?" M8 s: N/ K# h#if __VER >= 15 // __BS_CHANGING_ENVIR/ D* Y h) y( t$ U! ^2 j' [1 J
if( g_pPlayer )
o' x- `4 t% I- E HookUpdateLight( pLight ); 9 Y* L2 F1 d5 H
#endif- O* y1 y9 w; D2 y6 p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 y4 M+ N3 v. _9 A# Q c0 q" m/ P; Q* C1 X
#ifdef __YENV, K( @+ p% ^7 C9 G; \( V
pLight->Diffuse.r *= 1.1f;7 d/ n) A) k+ D* }/ ?5 N+ Y- K$ l
pLight->Diffuse.g *= 1.1f;
3 M. o) M( K. Q; V& o% I/ J& _! H) ` pLight->Diffuse.b *= 1.1f;3 d! r( y! q7 ]
// oˉè* ??à?
; L3 X8 L3 O3 q) R* v/ S pLight->Specular.r = 2.0f;
+ O2 |. W6 g" g' G pLight->Specular.g = 2.0f;
! S# H/ S8 M9 V" b pLight->Specular.b = 2.0f;# X1 V) v( E' I
// á?oˉ 0 b5 [) {* K4 `
pLight->Ambient.r *= 1.0f;
. B' u: |' f. X% Z+ d |. ~ pLight->Ambient.g *= 1.0f;
) x% R& _6 ]4 J: P! h pLight->Ambient.b *= 1.0f;; O% C: _2 H4 W6 j; L$ O
#else //__YENV! w. r, q' o- B& E
pLight->Diffuse.r *= 1.1f;6 C- f7 ^4 ^/ z" c8 A. I
pLight->Diffuse.g *= 1.1f;% z8 e8 C$ m/ V6 H. E
pLight->Diffuse.b *= 1.1f;
6 @# x0 O+ I" h# v" c# U // oˉè* ??à?
- `1 Y2 j3 }, X pLight->Specular.r = 2.0f;( e! \) y k8 V
pLight->Specular.g = 2.0f;
! e; j8 B8 m- c; R6 ^0 S! K7 b" o pLight->Specular.b = 2.0f;
% f) q \% V1 k0 K5 R5 j6 G // á?oˉ
1 _6 `: ^4 K2 N9 `2 } pLight->Ambient.r *= 0.9f;
' u4 j; Z3 ]) r pLight->Ambient.g *= 0.9f;
( K; C# ^- u9 ]7 ^- i% `# l- b& o pLight->Ambient.b *= 0.9f;8 I/ F; d* n; _; C' n& z) D- B
#endif //__YENV 7 J. b8 e) A6 t* E2 b6 U2 B8 S! v3 Y
5 Y, ]3 n2 V" \* ^" f" m: l
memcpy( &m_light, pLight, sizeof( m_light ) );0 j1 I H" ^+ I' A
/ |1 T3 k. z' q4 I2 h! ^0 G D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);8 r; W8 ?) h" v6 N8 p
D3DXMATRIX matTemp;9 y3 F8 Z- L% \- X
static const float CONS_VAL = 3.1415926f / 180.f;
4 E" v. Z* K( S) ~+ \( a; w& Q0 G
4 h5 K* ~7 }- P' ~& s D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);. f9 l* h* ?& L( l* H8 k; R
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
% r, ?) L1 z0 I7 s7 f pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
- ~7 ^% F' e/ g, A pLight->Appear( m_pd3dDevice, TRUE );
. E% o8 t+ X" X0 L8 t$ S4 I' l6 K/ P3 v# M! E3 [
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; W7 ?( V9 k) j% n! l$ u // D3DXVec3Normalize(&(vecSun),&(vecSun));
% s9 K: s( A8 r5 Z9 e // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 {0 }2 X1 _ a ?) X, N/ d0 z [8 _9 c
) E1 u. I. Z$ T$ X: T/ a! Z; z6 Y5 | DWORD dwR, dwG, dwB;6 m4 c/ v0 {) S
dwR = (DWORD)( pLight->Ambient.r * 255 );. n# v0 g7 C" r+ z
dwG = (DWORD)( pLight->Ambient.g * 255 );( _( t. P- t' I$ I( {
dwB = (DWORD)( pLight->Ambient.b * 255 );4 Q$ z6 a, p6 B
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 0 _# [+ t' y ?
}
: {8 ^1 }2 X3 R3 p8 ~ }6 v/ Y/ x+ O: a2 g Y, f* Z) e
T& c2 S. ?+ K* l R1 r9 B u m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
3 i. |4 K, s& `" R. V' x( u 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) );2 v5 `8 g8 g: z5 ]; T, ?2 }3 y
::SetLight( bLight );6 ?/ H/ W& n! `3 B- A K7 I
6 g* |5 p5 z' G1 T // ±ao? ?D?í???ó á¤à?
, ?8 ]" w, `1 d% K# f- w m_pd3dDevice->SetMaterial( &m_baseMaterial );. s4 ^$ I5 O$ I7 K# z
0 K+ o% H$ Q. p5 j; b
#endif // not WORLDSERVER1 H$ i& L9 ?: ^+ t; P
}
( i* S" A/ f1 @' u# K9 ?并更换& |8 W* s: Y G. b4 G# X) s
Code:7 s- _6 C( Q& F2 b: ~) J! |
__FLYFF_INITPAGE_EXT1 V( @* D" l. X5 ?' w
定义" F2 {6 o7 U. V& [2 k/ G
4 K# X: ?0 T+ I+ G9 m3 T
; L4 X. z1 d4 t" I( ] g# [. |# z! [( M9 s6 n- _
3 M: M2 E3 b! i5 f! t- i" z7 X
现在终于删除我的狗屁加速...2 D4 Q& C" Z( \* b9 h
6 F3 j8 Z3 p* T+ `. J
9 j, B" j3 B4 c$ w$ U
% R( g8 J1 A3 w) X. C, G% N
|
|