|
食品车:4 \( c3 A: ?8 O1 T
尾翼:- M% x2 b9 c: q) K& [$ l
, U" ^7 Y3 n# E+ m# g代码:- A7 A w- `9 o. |& M: Y
CWndAutoFood::CWndAutoFood()
0 U, _3 k, b4 E( B{
) N; @# c9 v6 s3 @# u/ N7 @5 A9 j* V m_pItemElem = NULL;
( d: q7 E- d0 T" R" g7 M m_pTexture = NULL;, @" {4 @$ ?9 z/ h8 A9 [
bStart = FALSE;1 f& H( b/ o ^7 o
}
- F2 `- _5 o: E! x5 g6 ~# j H
% U& F+ G. M2 H* o: v) h- OCWndAutoFood::~CWndAutoFood()8 C: m5 ]# L9 h6 I& e* j0 H' G
{4 [, s8 N7 H* q3 p# T2 x% C* p
AfxMessageBox( "AutoFood ist gestorben " );! D% R7 q: e3 s: b! Z- n. H( |
}# c% k9 T, t0 R" N
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
* W" \0 u2 m7 S% S# Z{) ]( r' @- L9 \3 [7 c) i
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
# h, b% [2 G/ S; i3 G) [/ u" }' @}
4 q* b+ b7 I( W; B0 c/ w9 ~8 | r$ O
6 W! G" {4 F$ @* cBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
4 g2 {' n" h! `4 {3 W6 ^{' V1 ~! a' N& \+ M
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: @, b" h8 t7 A8 [# G6 n1 F CRect rect = pWndCtrl->rect;
. H, k3 t1 p$ R5 Q# G& U" L6 a if( rect && rect.PtInRect( point ) )4 `$ Y/ S2 |1 R& }4 k" G
{
- ]8 f# Q, u0 l) B2 E3 Z CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
d" O# l5 J" w8 | if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )2 W1 Z' M9 R# ~, v8 C- @5 b* h
{* B3 S8 r5 M$ `9 r5 g% t
if( m_pItemElem )* P+ R/ J7 d# c, L* i8 Q+ T+ ^
{( ^, {- j8 z. V+ j$ V i m
m_pItemElem = NULL;
* T$ S1 a/ z, s }
, F$ O$ o' g4 |4 d m_pItemElem = pItemElem;
|, H1 S" o; d/ M0 A9 l m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );! t8 S3 v& W. U+ ~
}else{9 l% Y# [" b3 x# t" C m; Z
SetForbid( TRUE );
" Q/ h; ~6 G3 t }- v* \/ F' j7 i) F }
" p. y) x$ R( D+ w2 { |! c# G4 u: U }else{1 E% T7 y3 O/ I' O/ P4 z
SetForbid( TRUE );
/ h3 n8 @/ ?! J* X: T% \. C' E% O | }
5 c# s% `/ L; K. G return TRUE;
0 H( ?& g* F$ z1 j* _# `}
5 K! U% E' u4 ]# V3 f8 X0 {# j# \4 L' g! {3 f ^5 h/ c7 M0 g6 x; S
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
. A# S% c. T2 N2 Z8 d: s# a& A{; d1 C: Q/ p' a( W( |% O" v
switch( nID )
% w9 K( i: |% \: x" O {
$ X7 W0 r5 P: o# Y' d! K case WIDC_BUTTON3:
$ p2 Q# @8 c2 u# \1 v1 z3 o. | {9 F& n- ?( ?. P* `% ^
bStart = TRUE;
6 G' d& ~) d4 _ break;2 n, ], O3 s+ X
}( l( }+ v0 m" {" g/ \
case WIDC_BUTTON4:
- I# u$ J0 h: w( e7 ^ {+ n# [( }7 s1 c
bStart = FALSE;' N6 |: h# i2 m
break;7 W/ a( o& m/ c& @/ z! o" q
}
6 |8 I z5 ]$ v! n/ g' b( l: } }
4 f+ x o$ Y" ]8 X3 a, [9 z V9 R return CWndNeuz::OnChildNotify( message, nID, pLResult );
9 `( J5 p% w9 z+ b1 D3 l) u/ Z}
; f2 b9 D! d! V6 i! q8 e+ c. M- }void CWndAutoFood::OnDraw( C2DRender* p2DRender )( j4 t+ C3 P' o% O- b
{
6 I! b$ k Y4 O: r5 c CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
2 [5 ~2 I( K- i; J if( bStart || !m_pItemElem )) ?3 ?3 D) d# Q% ?+ g
{
0 H! y7 T! V) O/ F. N$ d) _ pBtn->EnableWindow( FALSE );# }( W8 C) h: H% e' `! @
}else6 v* L. t9 x8 H% E
pBtn->EnableWindow( TRUE );
2 r2 M/ k) l0 ~ a if( m_pTexture )
1 [% M6 d6 _! f$ y4 X# a* X3 R5 W {
T6 y1 U+ f* t# l6 i, i LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: O B: w5 t; O$ ^7 A- |6 l# I, n if( wndCtrl && wndCtrl->rect )2 u$ i5 c( X# q7 Y' |
{/ B" u8 [7 V; A3 [0 Z. |
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
: B- Z5 W0 @7 R t S2 `3 \ }
# h1 Q$ R6 h2 c# F9 \, B1 V } S6 C4 C9 q' b: `! u; d
}
, f$ q+ _( n2 d' t! h+ S5 [* U* E6 \
5 l5 y& J, ?" W/ J# GBOOL CWndAutoFood: rocess(). P, W7 ^) f* T6 e& I) \ u8 n
{
8 n7 F9 u. l6 l" m if( bStart ). h& |& F2 Q, O6 G5 w$ k7 n
{
; e' L1 c* W: Q3 u; G' S% @7 R0 u5 x if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
' I" ?( f) u# M- s! e8 M {' j3 k% n5 s h' w% S) z
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ). b0 @' G$ o+ d$ q
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
+ S1 o% W7 c* [0 x+ [ }else{9 s: p' p2 U% d" O
bStart = FALSE;
- m( E, h' G7 f m_pItemElem = NULL;. e; }1 S* { [5 y0 v% |. n4 q9 a
}
( ?. }& o$ O( C- [ }8 r) p8 @8 I+ \$ T( F2 r2 ]
return TRUE;! h8 E+ G2 A5 J; L. B
}
+ W5 E! R% R1 V2 c2 `$ b# ^4 a# O
登录视频废话:
' a& O% h- E6 U3 C2 Z尾翼:8 J" c i# u+ u9 s2 p- u/ x, ^
1 a0 ~" u- ^6 a% o- O代码:7 q. Z4 Z: I3 E+ s! U
- O% m6 F$ a8 [; W% R5 E" S7 G3 X
void CWorld::SetLight( BOOL bLight )) o7 F" n9 a) y9 b% d
durch ^* t) ~1 R, X/ s3 M
Code:( F$ g$ N, l% _. T |
void CWorld::SetLight( BOOL bLight )! m5 h; w0 W! L% u; e1 @
{, O9 s5 U3 V7 Q m3 G# Q
//ACE("SetLight %d \n", bLight);5 p2 i. w2 f f/ v
. S# [; {# P6 m% i( Q#ifndef __WORLDSERVER
3 p/ |* S+ t8 c' {: T DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
' J8 R5 m* }& m& \7 a/ v4 N# F8 O CLight* pLight = NULL;0 e7 T% ~: u* ^$ Y
& C4 ]- w& |' v* K' u0 l
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );( `0 ?+ y0 ~& n0 ^
8 {6 e7 k% T E' L! {; [: b pLight = GetLight( "direction" );
/ _: i0 q, x# |2 ]+ q4 t
/ }& [1 e" y# V#if __VER >= 15 // __BS_CHANGING_ENVIR* P) i& G# d Z& \7 h' j9 W
if( g_pPlayer ){& T& x: Q# Y& o# r, m9 z
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
+ ~" v7 c5 o4 _$ v% d if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !! \$ I1 C% u S; U4 O' M* @
{
+ U' N0 E: F& c1 d if( pLight )
! ]# q2 B6 @# h" t {
' N3 k" p- n/ H/ m: _. q' e2 c pLight->Ambient.r = pInfo->_fAmbient[ 0 ];( F# L6 j4 Z6 Y. |/ e
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];/ V7 @% ~6 T$ A( O2 h+ h: J
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];+ R2 z k1 {9 F5 Z, I
4 M* r; U; `; p9 F3 F pLight->Specular.r = 2.0f;8 A1 Q7 E- ^, A" L& ^# u
pLight->Specular.g = 2.0f;
$ e& v+ n) p2 Z& j, L; K. E pLight->Specular.b = 2.0f;- j, X1 b2 _$ X+ A5 P7 ?# p
0 }/ i& D# z1 A; f pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];! [, ^2 f( @ p" u; q" d
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! c [! Z% R% X6 E, Q
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];% Z" a' L7 n3 W
! v ^1 X @2 a6 Q! C; E& J3 u4 a
HookUpdateLight( pLight );
# R; D9 g8 X9 ]/ I- N
' s8 A% {- y- t( v; p' Y6 o memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% l; J0 m- W+ L; f4 p8 D% ?) z
: F% z- I% _6 _5 t# b0 {
pLight->Diffuse.r *= 1.2f;/ N0 Q0 ]! Z" p& R: l- Q
pLight->Diffuse.g *= 1.2f;
$ n6 r* {, P' a" S6 Q pLight->Diffuse.b *= 1.2f;4 p8 I0 @3 R7 j
- w) ?8 x: ^: A! ^+ H" t pLight->Ambient.r *= 0.8f;
3 E3 N( l6 p; I pLight->Ambient.g *= 0.8f;
: K4 v/ x8 n8 s- b" M# c8 A9 Y pLight->Ambient.b *= 0.8f;4 H& Y2 s( T b1 ? I) C
* [; A9 G, U" A5 W* v ` memcpy( &m_light, pLight, sizeof( m_light ) );' l$ V$ V. N4 O% p8 g
) Y: h& A5 v6 ]3 B* T2 _ D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% f! r Q- {8 g5 k: J: |: V+ A D3DXVec3Normalize(&(vecSun),&(vecSun));) q4 h2 g. O( v' M4 M( O& l) o K
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; ~2 x, r- C/ r: D& g! q R6 s
pLight->Appear( m_pd3dDevice, TRUE );
! g! F. u# V" B i) K/ o 0 w; e( a+ M! A5 A
DWORD dwR, dwG, dwB;
* O" `3 M0 Z8 q dwR = (DWORD)( pLight->Ambient.r * 255 );
9 N4 ?+ X6 W2 q9 \6 J) i dwG = (DWORD)( pLight->Ambient.g * 255 );: C, `& J3 A8 t! q2 }
dwB = (DWORD)( pLight->Ambient.b * 255 );
0 b! |( f+ o; x! a6 e dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 K# P0 D& K3 d2 y }
! W( `9 l9 K/ P" i3 \1 D }. t9 `+ o1 _' b" l3 {9 z; y% G
}
$ ?/ x1 j- I. T5 m4 f4 t& i else% ^! M8 {/ x" @0 ?; g# u L
#endif ) n3 u1 ~ ^. N# K6 V$ ^6 T9 V
1 {; D- r* w1 [! L @
if( m_bIsIndoor )
0 w+ ~6 z' S: _* n5 d" o+ r/ v% Q {. ?4 W# H8 s/ a
if( pLight )
6 I+ `* ^& U5 p# e { 8 i6 J6 J; N+ L: p
// à??μ oˉè*
" y4 F8 _* N+ C& b# I) w8 \8 @7 K pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 ]! F/ [- a+ o4 a
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
5 \# D" E: P" x( c6 k; E pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;6 C1 @8 G0 c5 z! M5 l w1 Y
1 M0 A# k1 ~4 t; U
// oˉè* ??à? ! s' C" x, w$ U6 ]1 p8 C6 v7 d+ T
pLight->Specular.r = 1.0f;
( d: s( _- W W$ V% d& C, v7 B pLight->Specular.g = 1.0f;
& N! ~/ W: \2 N" N! d pLight->Specular.b = 1.0f;" y0 n% p; V8 |1 L
// àü?? oˉè*
/ `6 B; W! D0 B9 G7 K6 n2 e- ~# G pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;& T7 |0 J* o/ z; y, p
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;2 E& `0 [7 x5 K9 P
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
" w: Z) k% |8 z! ?8 o# f& y9 f/ P& U5 b# _- ~2 |
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
; u$ d9 I/ P6 r+ g" s: k {' I/ j- _5 {: Q: M: U" |/ h
pLight->Diffuse.r *= 0.6f;
; b" j2 Z- s+ e+ N: s pLight->Diffuse.g *= 0.6f;
' [- l! e. S" b- i( Y# C& W) r pLight->Diffuse.b *= 0.6f;
8 Z3 g) y2 |9 e l' e" g5 L pLight->Ambient.r *= 0.7f;' {8 U' P- `8 r
pLight->Ambient.g *= 0.7f;! J( Q: d/ D" n/ X: Z" @# f
pLight->Ambient.b *= 0.7f;
$ O+ A" a/ l$ Z: L }, b$ f: Y: ]- p: e: i! E
. s8 g3 n) F9 N5 r3 p8 z. z
#if __VER >= 15 // __BS_CHANGING_ENVIR
9 ]; i1 P/ r5 R5 f d- Z if( g_pPlayer )
# r q/ w o8 c8 i HookUpdateLight( pLight );4 I- d+ M" U# ^' S: X
#endif1 m% H2 E( o' R& b! s
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# t- f: G+ n' {- O' R
* P4 i2 t8 n4 C" P2 }0 Y pLight->Diffuse.r += 0.1f;0 w3 _# w. W3 T1 H
pLight->Diffuse.g += 0.1f;
5 S" }8 m, L/ c s9 ^* Q, z pLight->Diffuse.b += 0.1f;
6 O) `/ y# v' p // oˉè* ??à?
- G8 { ]9 g5 i- J" y pLight->Specular.r = 2.0f;* L+ g' _5 e7 N) z( T9 k% ~4 O
pLight->Specular.g = 2.0f;
4 r# L" Z8 I, m/ d' G+ H$ y pLight->Specular.b = 2.0f;( Y) S3 K6 i2 r, M" [, G, n/ M+ ]
// á?oˉ
& o1 u* Z; Y2 M# T0 o, ~2 v pLight->Ambient.r *= 0.9f;8 `' `! \& I4 p2 L) l& D: w
pLight->Ambient.g *= 0.9f;2 w2 t$ B0 E9 W# U7 L' k; d
pLight->Ambient.b *= 0.9f;
9 {$ A9 O7 c/ n+ H
6 f1 I ]! ]/ b* F5 i; `5 d memcpy( &m_light, pLight, sizeof( m_light ) );
% T4 F" M, ~* H2 a8 u! W0 w; Q ; i" [& m4 X7 T# ]
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
7 I3 ^, K2 M1 ^4 l+ j! x& n pLight->Appear( m_pd3dDevice, TRUE );) h: i; M( \- y5 N+ a* C8 Y$ R
0 C! a! U+ z$ g7 Z
DWORD dwR, dwG, dwB;: a5 l2 Y' x, L8 v# F9 P
dwR = (DWORD)( pLight->Ambient.r * 255 );/ m0 [7 O6 s1 F; F+ }1 r1 f9 D9 I
dwG = (DWORD)( pLight->Ambient.g * 255 );- _7 L5 g X# D& d$ j
dwB = (DWORD)( pLight->Ambient.b * 255 );% P) x/ J# }) H( s$ \% N
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); D1 B, L% I* i- m2 ?: V
}
* f9 Z, v. ?% J/ r }
1 F7 |9 V# I' F/ l: e else9 C' O+ r, @+ t7 _; s
{
# k+ u% T) e$ C* B* V2 m& z8 b if( pLight )1 g/ Z: i9 @& S, d, T9 ^
{8 H5 q/ ]( J4 t! O# @
: F7 M' V) Q. o" e
int nHour = 8, nMin = 0;! Y+ Y# V# g& n2 J6 }* m
#ifdef __CLIENT- k+ Y) d3 s+ V
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & c9 N+ v& G: j6 j! B2 V
nHour = g_GameTimer.m_nHour;- i% `. o+ D/ E, o4 q9 O5 J3 g
nMin = g_GameTimer.m_nMin ;# V) d5 d+ W) s0 `% C( a
#else2 h+ e( T; T2 E9 X$ J
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù. T% ]# p% i5 }" l, |
if( m_nLightType == 1 )
, Z0 b, m- L/ u% i nHour = m_nLightHour;+ C# O8 t% C/ J4 Z
#endif
$ x) ?; I2 ]. ?9 f5 m, e: x nHour--;4 j+ _8 t# v; U1 N% H
if( nHour < 0 ) nHour = 0;! M( e! K) K2 _0 W# Y- \+ k. G
if( nHour > 23 ) nHour = 23;* ~, L# V c( G+ x6 R1 W
& a+ A8 z( a' {3 V7 Z Z7 u //if( m_bFixedHour )8 w. A7 x7 g9 U! h K
// nHour = m_nFixedHour, nMin = 0;8 G8 T% W: t. y+ L+ v
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
. t3 _- m( M: C LIGHTCOLOR lightColor = m_k24Light[ nHour ];+ s4 j8 l/ {8 b$ U6 V% r. S
# D6 l( g$ f9 U7 d* p
//m_lightColor = lightColorPrv;6 N+ l5 U" L; L( f* ^
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
$ K' H4 @5 J |4 }/ d9 ?9 i lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
* q+ W) E$ p7 _" z lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
* I# o5 F. V+ q( v4 w( ]/ B lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
, O2 v, a, a# g6 u4 J lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;: I* h' L+ c# q- G6 |# A
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;. ~5 _: d. p1 A1 G" n, x9 ^8 \
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)$ a8 j3 K; o6 ]! }; B. M
7 Z& o4 ?9 U& O1 |
// à??μ oˉè*
1 v7 h, d. `% \9 X5 `# X: l+ X7 ? pLight->Diffuse.r = lightColorPrv.r1;9 y$ k3 j& m- u+ T( g* \' Z! x, X' n9 q
pLight->Diffuse.g = lightColorPrv.g1;: d& y, p* I7 q4 R, o
pLight->Diffuse.b = lightColorPrv.b1;5 A" C: F. Y7 _- e' E
// oˉè* ??à?
3 }! N$ F8 T: g! A% c pLight->Specular.r = 1.0f;9 i+ Q5 [* S1 s
pLight->Specular.g = 1.0f;, e5 X- ]8 }$ [$ i3 H. L$ a
pLight->Specular.b = 1.0f;' Y9 K3 Y$ C- m4 e8 {6 H
// àü?? oˉè*
- @4 M( W( p% Y# s: y pLight->Ambient.r = lightColorPrv.r2;- w* K+ K1 A: O% ]- _) C
pLight->Ambient.g = lightColorPrv.g2;
! Z6 k- ?" c# I3 N4 O9 { pLight->Ambient.b = lightColorPrv.b2;2 m/ H" ]8 k, C, T
. \* N4 K7 z$ h7 O if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* ]# h0 v7 L# H' i' }0 [+ |
{6 V$ ^* ]. w! y4 y! ~: B" l
pLight->Diffuse.r *= 0.6f;
& |4 v/ z' r3 O( _" Q) m1 s pLight->Diffuse.g *= 0.6f;5 b+ U/ y7 Y3 t, q* y, n
pLight->Diffuse.b *= 0.6f;7 z R$ t" R7 I. G4 G5 }1 w
pLight->Ambient.r *= 0.7f;" k E$ t- m9 v
pLight->Ambient.g *= 0.7f;
) E' N* E, Y( m" U& @, w7 f pLight->Ambient.b *= 0.7f;
* q# u/ ^" P8 I% \ }
% y" ~- F9 U/ F+ m$ m
% \4 c6 E( a0 ^& x$ F#if __VER >= 15 // __BS_CHANGING_ENVIR9 Z# t O. y. p9 H9 d
if( g_pPlayer )! Z: L8 [- x' A0 k. d9 J# K* ^
HookUpdateLight( pLight ); * v: h* {6 t# ^6 u: \& Z# f
#endif
/ V- G% g. t" T( Y( J* e1 Q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' V* o4 r: J8 q: Y" a( t4 q
5 z; _3 n Y1 k! }0 \! v0 c& i
#ifdef __YENV
5 N: h: a/ d7 M) z% z! ]: h pLight->Diffuse.r *= 1.1f;' G8 I2 h5 U3 x# [ m3 f0 B
pLight->Diffuse.g *= 1.1f;
/ A2 R& x# P2 ^ { pLight->Diffuse.b *= 1.1f;
6 m3 Y, l1 l. X2 R // oˉè* ??à? ( @1 k* r- T }$ X
pLight->Specular.r = 2.0f;1 u& L- u; @2 |& H4 n
pLight->Specular.g = 2.0f;
/ {, |7 x. T0 l! H+ o) v pLight->Specular.b = 2.0f;0 n. N& h! d2 l i7 e4 ?
// á?oˉ / P; _1 B' d' k) D' {" H
pLight->Ambient.r *= 1.0f;- N8 d# S; c5 ~, [& _
pLight->Ambient.g *= 1.0f;
2 d" Y3 C, c8 T7 V3 F. T. }8 A pLight->Ambient.b *= 1.0f;/ k P" V* W- w1 m( x+ d
#else //__YENV9 l* Q Q" F4 b
pLight->Diffuse.r *= 1.1f;
?8 B$ @ P+ Z1 r( @1 J x7 N pLight->Diffuse.g *= 1.1f;; l" T3 v: A# f( o' o
pLight->Diffuse.b *= 1.1f;2 \2 k) q! B% c6 ^2 B) T N
// oˉè* ??à? 2 F$ B9 ]8 c O8 K/ W4 X
pLight->Specular.r = 2.0f;$ M& {2 I) q9 ]
pLight->Specular.g = 2.0f;2 P4 A; y' [% l" y; D4 ~9 k4 H
pLight->Specular.b = 2.0f;; t6 S, c7 {& k) ~
// á?oˉ # @+ H! J. e. K5 A3 b4 \4 R% \0 f
pLight->Ambient.r *= 0.9f;
9 u/ D4 u0 }; D' b/ z8 t pLight->Ambient.g *= 0.9f;
: m- N/ |2 w7 J9 K2 S pLight->Ambient.b *= 0.9f;6 K6 F/ p" x7 Z0 L* [
#endif //__YENV
- J% E1 _, P5 g: o8 J( H; F+ {. w
3 Y+ L/ p* O2 n" v memcpy( &m_light, pLight, sizeof( m_light ) );
7 r2 U$ n6 K y5 B, @* m* Y : Z& U# w F- w# {& D. M$ S* z
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
4 l- ?1 O7 o& U$ l6 j5 M/ Q D3DXMATRIX matTemp;; H) O& g F/ o- i( U. u
static const float CONS_VAL = 3.1415926f / 180.f;
% ^! e9 V/ h4 H* K- r
7 v1 U8 q) s I) S6 O$ ]* H D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
& k' T. `8 B: }/ C: ] D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);$ r% T1 c4 U; |+ r) V7 G
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
2 T. z0 q; I$ J7 C- q* B pLight->Appear( m_pd3dDevice, TRUE );6 e' a- g4 m/ ~: M6 L
$ t5 u. O; I% p* U7 R6 g W F
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ R6 z& O( n/ \* f // D3DXVec3Normalize(&(vecSun),&(vecSun));0 _' r X+ V1 K6 D% W* J/ I2 \
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. c; W; {. c3 ^4 ~8 w* a* E5 N5 A& |4 y V) G3 d' A
DWORD dwR, dwG, dwB;
- ]/ b3 l( f* M, S dwR = (DWORD)( pLight->Ambient.r * 255 );
8 | ]+ {6 H; G" f% @ s2 N dwG = (DWORD)( pLight->Ambient.g * 255 );
3 j( Y2 V0 J3 ~1 W dwB = (DWORD)( pLight->Ambient.b * 255 );
7 l: D( Y' w( k! q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ! l* a* L4 Z8 V
}
' Y$ V5 r3 i5 @% G }
% i# l c) ]; E" R: v' T% m, e/ {/ g/ y2 W; l
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );( M! M5 }5 f; R
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) );, \" r5 p; b6 }/ l
::SetLight( bLight );
4 K0 Y! q2 {1 j. w; u2 I8 m/ J3 @4 k
// ±ao? ?D?í???ó á¤à? * X3 x) G1 t) o7 y) G
m_pd3dDevice->SetMaterial( &m_baseMaterial );6 X d8 I: ?. @, j# }
# o+ a P1 [8 l. c* _0 q4 H) b#endif // not WORLDSERVER
7 {. C. W# Z1 _; v# k8 v! w$ d1 y}
& j/ k7 G/ k7 }+ v并更换4 n3 j z D: g& h7 l! ?$ B
Code:- m, ~# p" H2 u& X9 s$ H# X7 Z- g9 z
__FLYFF_INITPAGE_EXT5 n; h' b- Q; K4 z7 ^( j
定义9 }! L) b: P5 f( Y' B
( ]6 ]7 L8 L4 F5 g) y! U6 R6 n" A- a0 y v% P
) M0 @$ t: Z! g q; _* P0 c
- W7 X3 C2 p9 @) }. [现在终于删除我的狗屁加速..., F* w! d. Y0 K9 q
2 e4 \$ x# `9 y! D
' r I6 C( y( l; h3 V& `* Y2 A! k& `# n' t L: d! x1 X
|
|