|
|
食品车:
! B8 T/ N5 ^$ a' _* s% r+ g2 W尾翼:
6 W7 K$ @+ z4 S" o, n9 i- c1 a- W3 {; k
代码:5 n- J; k v/ c6 @) O" _2 p4 Y2 H
CWndAutoFood::CWndAutoFood()
$ b- Z8 H7 A4 X5 E{
# z( X# r2 i9 h7 U. F m_pItemElem = NULL;
5 Z( B% d5 T% ]' U) b0 e# M: L m_pTexture = NULL;
& B9 g4 e6 M5 b$ |( H bStart = FALSE;
. b: x/ R* B" R7 Q! h}
, G5 z9 A! r- H8 t2 N$ Q2 L3 D2 d5 g _, _9 _! E4 L/ f4 W. F
CWndAutoFood::~CWndAutoFood()- h. Y! i" c% A+ K
{
8 y. A) e- b+ m/ G/ j9 X8 e* K# U AfxMessageBox( "AutoFood ist gestorben " );
3 s& s" e* {3 }' l4 e- I}
- R8 t/ x/ a; I& I; z1 u. LBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ), K& V! _' {& ^1 S- ]
{: ] H( q; c8 w3 S$ o7 v: w
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
, M; s2 w o! n, l}
' n% y% @/ k ]6 K" {3 V3 c) J* o; L+ w7 o$ b# g% E
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )$ }" z% ^. p% H( p, h4 K
{5 e7 a. B2 k+ g+ R
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% k+ c k6 Z" ~- Y
CRect rect = pWndCtrl->rect;, M" \5 s% z/ W" E
if( rect && rect.PtInRect( point ) )
4 `( o5 u7 O7 z A# p- h' l( A {
: @& a1 l+ ^4 A1 Y# l CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
# l8 J; T2 R5 f. f/ M' G if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )) T' S1 O- h t# E. H: r9 L' Q5 b
{. K' i- C$ p* r4 f' S
if( m_pItemElem )
5 l; v3 Z8 _* v- t9 u {' _% i6 a H* ^# P* J) K) K8 h
m_pItemElem = NULL;8 ^+ ]# ~( P L% Q; U6 m
}
6 t+ M, v4 F5 i! c' t m_pItemElem = pItemElem;
5 F) O# p6 I6 _5 e4 p m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );. n& s! C' I. n9 r, {: a. ^
}else{9 _9 F/ r% f+ _! `9 L
SetForbid( TRUE );! J3 {3 m+ Q# Q& O( g5 C
}- H: }9 |% X5 O' |4 p5 \. W
}else{& ?: n% d6 ?7 W0 L6 B, [2 i
SetForbid( TRUE );0 ?4 k1 v1 a: F( }4 }5 h
}# k8 j1 M+ s4 \6 G2 T* H
return TRUE;2 q, \) {) h4 H) `# r5 H
}
. S+ O5 [" e c8 T" z3 }- j) A+ t# D+ i' @0 S
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
1 `) T" G) b) [) O/ R7 l( k. `{+ w4 D; f& r( J% J9 P; F1 J! D$ P
switch( nID )
) O! q' q4 Q0 J% W2 O% a* D {
5 O$ D* T% R, I, F9 A. B0 ^! S case WIDC_BUTTON3:
6 M7 j) x- r2 W: N) a {5 i0 V3 b" R+ F, T+ y+ T6 O
bStart = TRUE;; K7 M4 c% L. L2 i% M- t( q
break;7 D) }& J# \& j) ~) p/ j3 J
}
' s+ v1 K: k, f4 N. h9 Z case WIDC_BUTTON4:+ M' i1 G: J8 N* q. p
{
( i/ @& n) R8 F2 x0 F4 u2 G6 P, j6 Q bStart = FALSE;1 o" O8 d) ~6 g5 |# H4 ?
break;
9 h# d* i9 }, J- R. q }4 T, _5 ^& G3 l' s! ]0 ~
}
1 q9 b/ d J! n1 T return CWndNeuz::OnChildNotify( message, nID, pLResult );) S# l% K/ `; g7 P
}
8 |0 @9 u: i: [void CWndAutoFood::OnDraw( C2DRender* p2DRender )
+ b6 c7 t6 r% S{
: y# _2 a5 Z. K" d3 _0 U; g* _8 k CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );: V+ e) C# r# Q b8 E
if( bStart || !m_pItemElem )
- P7 K) x& \$ q i {
% p" V5 p r) X N pBtn->EnableWindow( FALSE );9 W4 m% [$ m0 D: U$ a' L9 `4 F
}else: J; s. b4 \. G3 Q' l4 l& W C( M, `
pBtn->EnableWindow( TRUE );
3 @7 b7 C! Q0 S! U- [, B" v7 ? if( m_pTexture )
7 X6 l$ k$ E R G* q {
: i9 Y& x( s' M2 s LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 Y5 L. o/ t# P6 k5 K! P$ ^' R
if( wndCtrl && wndCtrl->rect )
' e! [7 d5 `# A, n/ V3 W6 {. `1 @ {
* q! K7 h& h9 X m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
# x( K% I2 h) q2 r2 l; U* D9 f }
0 ] u4 {- C+ ~7 a4 N M+ U }- ]; T+ _4 g# K' X
}
4 [# l+ J2 J) g0 B3 e$ E
) y# A9 D% A3 a- c" pBOOL CWndAutoFood: rocess()
* b* q- `8 B J& Z9 o{
2 l7 Z( ~1 E: v; U0 g6 F, t. k if( bStart )% v& l$ \. O+ L' Y% ^; L
{
5 Q: s; Z" K6 c8 {2 U' Z/ Q2 ^! x if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )7 |# j2 m3 C8 x, m8 |! ~- x
{. ~! I! I% l# r- |; V% I
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 [$ t6 m$ c1 ?- E6 z+ s7 I s/ { g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
( O+ P, k- }8 d$ W$ Y7 m) |7 m. z }else{
- L3 _' ~) [7 f2 Y$ A bStart = FALSE;
* y; i& w+ R+ [9 C `: X m_pItemElem = NULL;$ E. k n3 ~" c" Q4 c
}+ @- @: O( p* r+ a/ V
}
( Z, A7 W6 \' G return TRUE;
$ Z8 k4 e5 P& e0 R* H}! ?, ^, h8 l$ ]) v
: l3 C5 J# j8 ?' B1 H登录视频废话:
# c$ u+ U' l7 [: T. C) K: A1 l尾翼:
5 t2 i, }# d+ t% A* z$ ~, Z P: D% U8 p1 A1 ?8 Z& a! L$ ?+ _0 w
代码:: g. k) R3 c9 r. ]7 Q) J- y) G% W
3 W4 m6 o8 s& C* @
void CWorld::SetLight( BOOL bLight )4 O7 M- {- ~. L! F0 l$ H
durch- y# E. d& A7 A# l; Q
Code:# @8 Z9 k* h- E! h/ b
void CWorld::SetLight( BOOL bLight )
% s/ z6 I+ R$ |- x9 p p2 Y+ C. P{) l: a& S$ W- @, S% e
//ACE("SetLight %d \n", bLight);
. I- V" m7 }0 K# W $ ]+ y4 f7 L' R5 ~$ Y$ f
#ifndef __WORLDSERVER
. Z; r; j0 J( X7 [9 L DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);' y# v& i, |9 n# T
CLight* pLight = NULL;
: [6 `3 D' j6 F. y, ?8 [% \2 G3 G& X& V; p5 @0 B6 B
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );0 h8 V+ |0 |+ R0 T; w
% { F: E& k& ~8 | p3 K
pLight = GetLight( "direction" );$ X7 Y! u$ Q3 [) m c4 b
?! }7 g2 ?, s5 d6 |* {$ }+ W#if __VER >= 15 // __BS_CHANGING_ENVIR0 @1 V5 |5 d, ^% F7 v
if( g_pPlayer ){+ t8 S; d& u, \; N" l
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );/ D$ W' h4 T3 C2 B9 Q. k6 @
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
& R. Y8 F- K1 [4 Z, ?* c {7 O% O t! b* d+ D
if( pLight )
# H, s% i* }: p, h0 \3 a7 L/ W {" E! N6 O; |& A& S; a1 F
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
$ V- ~( e# q3 i y5 \ pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 e% w5 g" H+ X2 Y0 j7 q1 N+ l
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];# Y( h4 B2 Q% a5 r, R \; T
* S1 q& \7 u+ l1 ?/ ? pLight->Specular.r = 2.0f;8 s/ j. |3 p$ v+ v3 d
pLight->Specular.g = 2.0f;
) u9 E3 V1 z* g& ^. t$ w pLight->Specular.b = 2.0f;. P6 @; m7 A. f' \ q& d0 I& f
5 m" o7 }8 q& u" K v, V) J: ^
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];( R+ I& k( B( ^
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];, J8 P: ]$ F4 ~/ @2 G8 w
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];$ L; `: U0 f9 K0 K7 M! D
* N5 h& J M- ?0 F: A) t HookUpdateLight( pLight ); 5 d/ w5 k! B6 {
( Q5 E" b( W; L9 D8 ?( W; \. e
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 U# f! Q2 j' a
! r* m% Q2 ~' |8 g$ S" y pLight->Diffuse.r *= 1.2f;. `5 Z4 ~% ]4 l5 y
pLight->Diffuse.g *= 1.2f;
+ x; e) q8 I* w/ F4 C pLight->Diffuse.b *= 1.2f;
+ L0 B6 ?8 C" l0 n
/ P! V) J( A0 Y# S' K pLight->Ambient.r *= 0.8f;
6 U5 v P _& Z/ N8 Z; B2 q pLight->Ambient.g *= 0.8f;
, |' a# j0 j4 L pLight->Ambient.b *= 0.8f;
1 ~, |8 P0 W. [ , Z4 ]7 z7 e4 @' N
memcpy( &m_light, pLight, sizeof( m_light ) );
( |" K A! ]' P7 W8 O1 X# c& B2 F7 ^9 i7 g$ B; m" X& h8 G' D# F) g
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& q3 N. l2 n5 K8 y D3DXVec3Normalize(&(vecSun),&(vecSun));- B; p S" b; o/ k5 z
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 m1 h% g% Y9 S' I, O pLight->Appear( m_pd3dDevice, TRUE );
8 \* Y* V% a3 S: C* g
$ I' [. ]" i# W( F( H! q8 c6 P/ O DWORD dwR, dwG, dwB;
4 M. m* w- X9 T0 ` dwR = (DWORD)( pLight->Ambient.r * 255 );
+ K6 G* s2 l% x2 o" C) C; e dwG = (DWORD)( pLight->Ambient.g * 255 );* z3 r4 Q% x1 Q2 |6 ?, s
dwB = (DWORD)( pLight->Ambient.b * 255 );, q2 e( z: v4 Q2 R) r! m4 P7 _
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; ]( {* f; o, L8 P" H- D }
' g2 |5 a, M$ K1 }# [2 m* @ }
, ^& T9 g0 u7 N/ u4 }$ T% R }2 n' e9 B2 I3 y' m5 T
else* }% v+ G5 `) Z7 e0 B
#endif
/ h5 f% S) H$ C
* J; X. ?/ U9 t7 ~ if( m_bIsIndoor )
7 V1 z: L4 s. T6 S3 ]7 |& V {" B: B1 r1 o7 p; N- e/ }# H
if( pLight )3 m7 t/ e0 Z5 Z {
{ 3 L; g; c3 `# E
// à??μ oˉè*
\# H( p2 M+ V7 z F+ k pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
+ {7 b7 {$ g# W& ]5 N pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) E8 `- a) A( w% D! ^' U pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
0 j2 |* P& {2 \9 _8 \5 ]- b ~2 T7 {6 E8 U" x
// oˉè* ??à?
7 k( p- i0 B6 J' Y z5 {1 J pLight->Specular.r = 1.0f;
u- \, r1 J9 P1 h+ Y! k pLight->Specular.g = 1.0f;
4 X5 }8 S' t4 n$ J- _% i pLight->Specular.b = 1.0f;
/ H" a# A! \2 s6 ^* y" Z // àü?? oˉè* 9 [7 t' j! Y- H. X; M- D
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;5 x, k; f% y0 u
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;* m' Z$ @+ O; g5 c( B: a, ?; q
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
+ h# a8 ~- ]$ k, M U: `/ G/ U, ?- x7 i" I3 W7 A6 t# X4 t6 K
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.1 _: u8 @5 L& n+ |" n
{
9 ?) D: h6 v, M$ E pLight->Diffuse.r *= 0.6f;. E% B- R6 o+ W" @4 p
pLight->Diffuse.g *= 0.6f;4 `+ |6 F1 M! |4 g
pLight->Diffuse.b *= 0.6f;
$ J8 |) [4 t# I3 u! U pLight->Ambient.r *= 0.7f;
0 X" S' L% @2 I, r/ _+ _* E2 ]( h pLight->Ambient.g *= 0.7f;
/ ]/ g% y! n( u- Y pLight->Ambient.b *= 0.7f;
\9 U& i/ J: U$ V4 `1 S1 z' _ }. b$ M( {" f6 E! R8 R! P0 v7 a
. j1 h/ @4 H6 A1 r) e( G#if __VER >= 15 // __BS_CHANGING_ENVIR% Y' @- ~- w% y+ P; D' o9 d
if( g_pPlayer )2 ]: B. }: [% W6 K$ e; V2 s
HookUpdateLight( pLight );7 r h6 i& V$ H/ h5 g- |1 d: r
#endif* G, s( }2 c9 b* m3 x
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- k7 o/ Q# b" C7 o; t
1 F+ k' k) d- k, O! W6 X pLight->Diffuse.r += 0.1f;# Q( M+ O- ^- j& E! ]7 ~# w s0 |
pLight->Diffuse.g += 0.1f;9 V% u, @1 a2 K: }% e
pLight->Diffuse.b += 0.1f;" q7 B+ S6 j3 ~7 n- t
// oˉè* ??à?
M9 Z, C. i6 |5 F pLight->Specular.r = 2.0f;5 j1 n% |5 k) `' s" ^ E% t1 B
pLight->Specular.g = 2.0f;
4 G' g0 |2 Y; {, A# L* | pLight->Specular.b = 2.0f;: G# P* k2 H- U7 l' q5 i0 B' Y
// á?oˉ 2 T! |8 t/ d& f! x1 a. P; {
pLight->Ambient.r *= 0.9f;/ D3 h3 r7 q# w
pLight->Ambient.g *= 0.9f;) H: R& S$ B, _6 ^6 G' `8 b' Z
pLight->Ambient.b *= 0.9f;
/ k: g2 `+ a; h' y, Y" b1 P5 l% K
memcpy( &m_light, pLight, sizeof( m_light ) );. G: O6 u- U+ G2 Z
) {+ P( m6 S1 e, I2 o2 l
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
: @( d. d& e+ H8 W' a- i pLight->Appear( m_pd3dDevice, TRUE );
8 W) [( s) b2 o) p5 f" y
- O8 \( |8 s! [- E DWORD dwR, dwG, dwB;
* t2 G' e+ N6 V; O/ R( ?7 E dwR = (DWORD)( pLight->Ambient.r * 255 );" P! B( P E! U, X( h" x( t; Q
dwG = (DWORD)( pLight->Ambient.g * 255 );& t6 z$ A; }& p4 L+ w/ N
dwB = (DWORD)( pLight->Ambient.b * 255 );
) i; u. @/ }% M/ `# ?7 s, w dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& f5 ]9 b, p4 A+ ] }
( m, Q* C" W0 ~) @ }
( Z% w& ^: C0 w1 r R else
$ o+ _3 N! R+ z; r9 D {
/ l8 t* M4 B! @8 R& S h1 R if( pLight )2 S* W* [( V; N6 S5 v: `% n0 n* W6 ?
{
8 w0 h: [ {7 E# v7 R& u; W
R# S7 S$ [% e1 E3 d" \7 f$ Q int nHour = 8, nMin = 0;
1 X; ~2 T" U; F, O6 z #ifdef __CLIENT# D' N, r; B+ R6 _9 ^9 c
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
. r: r$ b# D( T( H7 _: p+ M nHour = g_GameTimer.m_nHour;! R" z+ N5 P( w9 N! l/ o' s
nMin = g_GameTimer.m_nMin ;
: s; S; P1 L- W! h0 ` Z+ B( q* D3 _ #else
: j7 I' v2 j9 z: H // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.' \ R) M3 r6 }
if( m_nLightType == 1 )
9 [( D0 X1 ?3 g) J4 Z" n) T; I2 E* _ nHour = m_nLightHour;
: O5 o8 b$ j* D/ y/ G z, o- H #endif8 [% S6 E; v; f6 C; D8 T# K
nHour--;
/ b( Y# I+ h: T if( nHour < 0 ) nHour = 0;
, q% A% `0 Z0 ]: I0 _3 l. q4 r* c if( nHour > 23 ) nHour = 23;7 v& O' v3 m/ M1 g( V, u( G" P
' k% ~" a5 i4 R+ p
//if( m_bFixedHour )
3 N* J( ^# B M6 \: P) P H) ]! o // nHour = m_nFixedHour, nMin = 0;! g" Y4 q) ]+ T. ^- P( Q, M
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
. }( s* [( I: t. `. G6 S6 b LIGHTCOLOR lightColor = m_k24Light[ nHour ];
/ j$ P& w- ~2 r! {
" {* w4 p4 j$ p/ [) K3 z% W //m_lightColor = lightColorPrv;
# [0 x: p4 Y6 U% J8 P lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! \$ d' d3 s' L* P, m lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60; P, _3 d8 t1 C1 g" x+ g/ P* c
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;/ @1 C! A8 w7 U. q l4 A2 L6 J
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- S8 K. ~+ { { lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;0 n- }' \0 N' g" O2 Q \
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
/ c g, K! T& }6 m3 R& v // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
+ u7 D0 G5 W$ l
2 [8 M; Q1 H$ K/ b6 T( b // à??μ oˉè*
6 B: b/ S: S4 e" g% o' _! R pLight->Diffuse.r = lightColorPrv.r1;
! [. ]$ l/ @+ e/ N: L: C pLight->Diffuse.g = lightColorPrv.g1;
' I! n2 v, B1 t k* B! r5 A pLight->Diffuse.b = lightColorPrv.b1;
( Z, r) f: x8 j: Z9 \4 j1 F+ ^ // oˉè* ??à? 1 _* J6 d, j( f g+ _
pLight->Specular.r = 1.0f;' y1 O9 y6 z# [$ Z1 ^* p0 r
pLight->Specular.g = 1.0f;
0 A+ J) q5 k( ]" w, n0 C pLight->Specular.b = 1.0f;
- O. X1 _& \7 X1 S. a // àü?? oˉè* 6 @* H& q9 h0 P8 z: W
pLight->Ambient.r = lightColorPrv.r2;
- v4 c" e3 Z9 f# J! Z: q/ \, Q pLight->Ambient.g = lightColorPrv.g2;$ l. \0 `8 j9 a) s' `
pLight->Ambient.b = lightColorPrv.b2;
" |) w1 O4 Z' K/ t
; b+ I9 ^* W! L) j& q1 a if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- \, J8 q: J/ X1 U" }) R! ` {9 c+ C& e7 h: G
pLight->Diffuse.r *= 0.6f;' Q) L9 J l( V0 F0 s E
pLight->Diffuse.g *= 0.6f;- J" Q; _* c3 }+ U* B0 k
pLight->Diffuse.b *= 0.6f;
: W0 ~5 Q2 \8 E3 b2 b: R, | pLight->Ambient.r *= 0.7f;. I2 K9 o3 h) T3 c; y9 L/ K
pLight->Ambient.g *= 0.7f;
: R z% O7 H( p3 P+ ?' r pLight->Ambient.b *= 0.7f;% L$ c4 D1 N; h, R: b. y2 k% [" e
}
7 X- z) {3 k2 k 3 o* t6 P. O+ F5 F0 w' F
#if __VER >= 15 // __BS_CHANGING_ENVIR8 d+ n |* h# }
if( g_pPlayer )6 X9 [7 L1 R' u [
HookUpdateLight( pLight ); " \8 T6 w$ N8 T! C# e
#endif$ z: V% A8 M, E7 t5 G$ W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 L2 X7 K: r) m8 i
2 @$ H4 x) {9 ? Q0 |' S#ifdef __YENV
: g$ ^! c6 v, E* l: { pLight->Diffuse.r *= 1.1f; B" ^. E* K4 M1 m* _8 Q8 s4 A
pLight->Diffuse.g *= 1.1f;8 q/ ]* B7 ?& U
pLight->Diffuse.b *= 1.1f;1 D' F/ R8 M* k A/ ]: S* s
// oˉè* ??à? ' J( H) w ]2 M8 ]" r
pLight->Specular.r = 2.0f;# W" d' K2 o$ v( h" `
pLight->Specular.g = 2.0f;9 E" l- F4 K+ [0 i& k3 H
pLight->Specular.b = 2.0f;, }" b7 e5 R) Z' H
// á?oˉ / P2 @) ]! i3 l/ C7 T; l% p9 K
pLight->Ambient.r *= 1.0f;
0 q/ r% h0 y5 h' A: k. u pLight->Ambient.g *= 1.0f;
& N$ S8 E* q- g pLight->Ambient.b *= 1.0f;
% m) s2 W9 N3 h& i7 H1 s. `* Y#else //__YENV0 L, }8 M) b$ s8 q0 Z ^
pLight->Diffuse.r *= 1.1f;4 Q# z3 r: [. \) E& y' D2 R
pLight->Diffuse.g *= 1.1f;
- t( e5 k3 a8 @; r) ] pLight->Diffuse.b *= 1.1f;& h9 }( `* L* G# `
// oˉè* ??à? - B& g9 [4 c9 `# S* S3 J
pLight->Specular.r = 2.0f;" ?* i& O. s6 F
pLight->Specular.g = 2.0f;
' c& w( r! m+ h pLight->Specular.b = 2.0f;
2 a% p2 A) u+ h1 p. T, k // á?oˉ
# H+ j# A8 E- P Z' r/ E pLight->Ambient.r *= 0.9f;( {" v X3 z; f
pLight->Ambient.g *= 0.9f;
4 A+ P- M4 m& o" ?/ k. X; y- T9 u7 r pLight->Ambient.b *= 0.9f;! d) l( o3 N8 B/ ?" r* h: B* ?7 x
#endif //__YENV
% q$ t( e) v& ^) A, n
: L$ J/ A: `9 X% U( Z* Y0 ] memcpy( &m_light, pLight, sizeof( m_light ) );' Q5 E% M( L4 E2 q+ Y3 J
4 }1 J6 e$ g4 M. ^: { D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);# l. m/ J! G* W- G7 W1 Q" ]
D3DXMATRIX matTemp;
6 f, F! F- J9 G3 P7 ] static const float CONS_VAL = 3.1415926f / 180.f;" I( G( s+ Q D! N0 B& C+ K5 U3 n
8 N" Q2 }$ |2 L, o! _+ j: I6 b D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
7 Q- m/ u3 m! }, U7 B) G( T D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
/ _( m- w/ L4 ?( |) `: N# Z( \4 C7 P pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 8 ]% w' p9 P0 e
pLight->Appear( m_pd3dDevice, TRUE );
- C6 r- t7 T3 ]4 U- O, g
4 d' g% Q# Y" g6 c' s- c/ `. [ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
9 B( b0 i# m4 E! U0 i0 Q7 k4 Q) o // D3DXVec3Normalize(&(vecSun),&(vecSun));
& s- _! H/ ~# v% t# N$ P0 B // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- Q7 ^8 t. [. P6 J9 t! x; J3 r( {8 ]. c$ u8 k/ k1 M* T
DWORD dwR, dwG, dwB;
, a7 I5 [8 e2 \ dwR = (DWORD)( pLight->Ambient.r * 255 );
\& h7 @0 x) K3 X- Q! O dwG = (DWORD)( pLight->Ambient.g * 255 );+ w1 |5 k1 k `6 n7 y7 U& W; [: J
dwB = (DWORD)( pLight->Ambient.b * 255 );9 N6 i' V/ e0 j1 A
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. v# k, j; I' S- C* g3 t# y }
" f- j/ N% L) D, D+ r. k) N ?+ s }9 f+ J+ E( w. B, g0 h! l
: @4 C e1 J2 @; o/ H m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );" f3 V$ q8 |6 Q" J5 R* w+ o
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) );
" U+ E9 X$ j/ d, ~$ _ ::SetLight( bLight );. R7 g( P9 a: `% G: G, `1 A* `
. c/ f) _' A1 z d // ±ao? ?D?í???ó á¤à?
4 T. ^3 j' h* t4 x4 e) ` m_pd3dDevice->SetMaterial( &m_baseMaterial );
( {2 m+ |( ]3 a * j$ K2 I9 Y) p3 S3 u7 s; A
#endif // not WORLDSERVER
" K! I. a- ^& n$ V, f) o9 }}
1 j- F8 T5 O0 X( @7 l7 m4 M并更换% V8 b, H' m! }+ P/ R4 B
Code:; k4 u+ G4 ^+ K
__FLYFF_INITPAGE_EXT0 a% L' b8 D4 O. s" y
定义% z( h( J9 P0 u. ?8 H, e
]% h# h* S: E" R6 x
# N9 `+ r. Z) H c1 ~1 i f8 J7 l8 [1 ~- o2 ~" M, U
4 o- X8 ]8 i/ E* W现在终于删除我的狗屁加速...
5 R- n- D& N& L9 @
) j3 s8 u0 p" y# L5 B" q& Y1 W+ [4 G0 L
6 P. b+ `! [, \5 A, P |
|