|
|
食品车:
7 r& s j2 {* G尾翼:
8 o* Q- Q# K" o6 M/ d. v) [/ ~5 b9 Z8 f
代码:0 [8 c: n. |4 I* E
CWndAutoFood::CWndAutoFood(), E$ p+ k! L/ V8 v
{& Q; z1 @+ d8 i! ^. R
m_pItemElem = NULL;
! n. q; N6 @. i; |. K m_pTexture = NULL;! h2 I) t0 f @0 B" t" I- G
bStart = FALSE;+ m) L# E* u( I
}
4 D1 ?) @, R! J% |9 v
4 g% P* o, F6 B; P$ ~CWndAutoFood::~CWndAutoFood()7 r7 n# O+ j8 G! d2 q: i5 l: F" D
{
8 Q( U7 D3 X( X! c0 D2 [4 \- _) F AfxMessageBox( "AutoFood ist gestorben " );
0 {# p& e4 i4 b5 z- P. X}3 l3 C6 ~' {1 z0 O" l+ z- A: w
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
/ u# W+ i% g, j N{
+ g! b$ ?4 {1 a# }/ d [ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );4 N( m. D) K/ L- [% t- c
}
* W: V+ l ?. x+ h' N ]5 b9 k; P5 l3 ^2 z! P
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )& Q; C8 d: ?( G5 B
{
0 y+ }/ f: K5 M/ t; U3 N LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );' ~4 P- T2 D/ J n
CRect rect = pWndCtrl->rect;8 a, q3 t2 |1 N1 u0 B
if( rect && rect.PtInRect( point ) )1 C" {( i0 u5 }3 U' |
{
* P; S3 o# a) _ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
. N+ P u, l% V* d* ]) R if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )+ L P, C f% h; }" J8 v% }9 ~! [
{1 Y5 @- ?. g% I Y
if( m_pItemElem ): r. R6 Z' G# _/ M
{ r& Z @5 R& Q# z6 U
m_pItemElem = NULL;2 _3 M& q% \" x' d& \; x, e
}
9 F; E6 S% \; ?6 A$ K$ M m_pItemElem = pItemElem;
( o4 s( w9 `( @6 ^, h, p/ W m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 \: }' Q3 N/ g1 J5 v, b/ } }else{! z q2 [) u6 c/ r
SetForbid( TRUE );
, O/ m# K/ x, \ }
5 \/ G. b9 O( U& k; w& w" H }else{
* C H2 ^$ B9 I$ w SetForbid( TRUE );
$ a1 {/ U; q1 a8 R }
- a+ w l. ^+ u! Q' \ return TRUE;
5 @& X! }7 R" @! _1 m}- k/ Y2 c- w9 ~
! i7 y2 i0 x1 P8 _ N9 q) G
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
o( a, i \# j$ E5 P{5 Q9 `* J2 T& m1 K$ z; h0 U
switch( nID )
# |, n1 J# S$ }8 Y+ w2 x {3 r" m4 y5 L6 V" ]
case WIDC_BUTTON3:
9 {5 d0 X: g0 M& X {
; e, t( W" p! p' @ bStart = TRUE;
: y( G9 }# F% w( h, ^1 C break;2 |; W/ F/ C5 ~. `
}
e. u: J5 m$ h case WIDC_BUTTON4:
3 ]6 j; X6 y/ U4 F1 i7 ~ {
, g; U. ?4 p. ~, P bStart = FALSE;! r: }8 }! s0 H5 m5 l
break;
6 w5 a) I: L5 Y M7 O" T4 B }
5 t( D/ n- ^0 m3 _2 G, e }
. h4 Q# ]# {% f1 Z U return CWndNeuz::OnChildNotify( message, nID, pLResult );
$ a. }6 R* m: E f2 k# b} : c4 N1 |% ^# x; W% G$ u$ z
void CWndAutoFood::OnDraw( C2DRender* p2DRender )+ P, g! ]2 D1 ?# y
{
$ ?5 n. u5 s! v CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );2 _9 M4 E f8 s5 ~! i. @; M
if( bStart || !m_pItemElem )+ U) y( @* j0 r/ J7 h f3 X
{, e" M- v) Y- \! i- I
pBtn->EnableWindow( FALSE );
5 q2 V/ n+ A# z% J4 i0 S4 c }else, I3 r4 p, e1 @* }3 [
pBtn->EnableWindow( TRUE );
+ M0 V: b+ Q1 `( p3 D) |) L if( m_pTexture )- S4 V9 a4 g% T+ T; r: ?
{/ \ r7 X! H# t7 k% M/ w
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
) W1 ^8 E, H' P N3 L6 L# ^ R if( wndCtrl && wndCtrl->rect )/ x0 N; r! l4 s7 c
{
- w1 u2 K7 G1 S. _3 ?: ~ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );. G0 D! M+ Q4 o, ^& f$ \" v
}
5 H& r; y% N5 J, [- f }
- \% @9 y5 D* _}; `( ]( z/ z5 R( H; t, J I- B
: Y$ {! R# @1 f: N$ f
BOOL CWndAutoFood: rocess()
7 D' Q! F x! A: I3 O2 o4 }{
' q) Y8 |6 Q" H s! [ if( bStart )/ s( V; ~. n2 q6 V7 O
{
f3 \; U! ` w) g. V$ W7 c% c- s" I if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ): @9 }) n* v% a# {
{+ o- a& [* T" h3 s7 C- ]/ K4 s# P
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
6 n. e3 X7 H. c e0 m! a g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
& m1 g8 t/ S2 J1 m6 G8 g, ~ }else{
! C* M6 H5 b9 X; W, J$ S bStart = FALSE;
- l4 B7 x+ u' s m_pItemElem = NULL;
& T- v5 w" T% F4 Y5 m% N+ Q }
- F$ q! f2 G0 r }
& d" L+ ~8 U8 ? t7 X* s return TRUE;
* k$ s1 N2 c7 q}2 Z/ G) G% z3 N) b. K' a
$ L' z: V- y; } l- \+ ~
登录视频废话:
; K" p0 ?% W" I0 d/ Z! Z尾翼:
2 d7 ~3 o" i9 s' P$ q6 C0 B/ \* E/ I1 Z+ Y
代码:: W8 H2 i1 \0 I
} M _: \; v d5 Yvoid CWorld::SetLight( BOOL bLight )
4 E8 _# n# ~$ W( C6 rdurch
- Q+ o4 O4 l) {/ @' MCode:
) c( @. y' J" W, {void CWorld::SetLight( BOOL bLight )5 N4 D8 U# c3 ]( |( B* Q
{
) {/ t$ y. O8 ?6 v; U //ACE("SetLight %d \n", bLight);
0 r$ o* ?" k! P; J# _- { 4 u. L0 r! a! |( a5 g
#ifndef __WORLDSERVER
7 j, V8 A' L. `6 E DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
. m3 O( `" J& P! H1 w CLight* pLight = NULL;
* O. C" G8 H3 e) M7 \, r, A9 u1 b
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
7 c. Y+ Z2 L# W+ k3 R+ I2 R1 E
# ]% h7 Q% D, b6 D pLight = GetLight( "direction" );! @0 @" r _& F) {* J8 N
w2 M9 Z9 m# N+ R2 k#if __VER >= 15 // __BS_CHANGING_ENVIR
9 s0 X. R2 j6 {& i5 A! @ if( g_pPlayer ){) w# f& u2 T$ X# a! i8 x4 s/ E# m
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
0 k4 n5 R8 ^6 b2 g! {$ r! \ if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 G" [8 q2 Q: s- W- \2 T# J {6 W3 l; m! o+ E: k8 G/ h, M
if( pLight )3 x, `3 `. h5 n9 _" j+ r U G
{
# Q6 q& }( G9 _* y- q3 H pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
9 Q$ l B; L& T+ k/ V8 i z pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
1 s) A' K0 }8 g3 r pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
: E g8 R) Q/ a, I3 }: @+ G/ X) i: Y9 A' D
pLight->Specular.r = 2.0f;* T# [4 o/ S% C( q% W
pLight->Specular.g = 2.0f;. Q5 A- I d2 Y* W1 N" ]
pLight->Specular.b = 2.0f;
0 s+ D3 u2 O: A. p" B 9 y+ R4 ~2 q1 w% G' b4 `1 ?( }
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
3 S% Z& w m7 I" i pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];' X# p- U/ |+ g1 K" W
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];: ~4 I5 m: @( W% G
3 m; s# R1 p& f& T HookUpdateLight( pLight ); * h+ ^8 S! X$ ~* c6 d( w
7 p i) c. \3 ]# Y5 S Y$ K1 ~- A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# s: @$ R- y$ H l. A# J- f9 ~ \* g- `6 j7 s9 Y2 O6 H3 z1 r
pLight->Diffuse.r *= 1.2f;9 e' b! v$ e$ {4 X+ Z W
pLight->Diffuse.g *= 1.2f;
, A( r, n/ P# R4 ?: m7 C! q pLight->Diffuse.b *= 1.2f;) @2 ^ g* U- a/ y' [1 q
1 v' K) _- r% ~, ]# z2 V* Y pLight->Ambient.r *= 0.8f;% f# l$ _ T7 t: }2 ]+ l" J" N
pLight->Ambient.g *= 0.8f;
3 D4 p% `; s8 V- m/ O# X, n pLight->Ambient.b *= 0.8f;7 o5 G: D- b& J, `8 @* X
3 R* Z3 j, q+ X; W
memcpy( &m_light, pLight, sizeof( m_light ) );5 j) j+ ?( H3 O5 W! w( X* e( d0 ~5 n
3 s( a* v6 ]0 |+ k2 W) V
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
* u6 R; U/ a# x2 ~9 Q I6 @5 ~- Q! j D3DXVec3Normalize(&(vecSun),&(vecSun));
# Y. s/ o5 y8 Z$ d pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. \1 I! h: ^$ ^! J pLight->Appear( m_pd3dDevice, TRUE );
* l& @+ q/ E& e" L4 f% d) s: s' _ 7 _3 Z% _, Q7 T8 q z
DWORD dwR, dwG, dwB;
! Q/ ]( u1 o2 S! |1 b dwR = (DWORD)( pLight->Ambient.r * 255 );
/ X3 Z5 J0 m) M! S6 z dwG = (DWORD)( pLight->Ambient.g * 255 );
5 Y1 w4 f9 A& Y0 h# X6 P0 P dwB = (DWORD)( pLight->Ambient.b * 255 );
* b' G1 i( K4 N9 g1 o7 g) Z dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) u/ Z4 H- S0 |& s+ t( n- e
}
5 o' d# J. x# F- L# w! g }
, B- [, p Y. D5 K }) r# c2 e. C) B
else! v" e" P0 j4 g; e3 S- E0 r, ^
#endif # \+ w0 m" c1 P+ X3 A3 j- i
; E& h7 M" G: |2 E# g if( m_bIsIndoor )7 R# f( I3 u% q4 l6 n# g! J
{. T+ E' e3 T6 I; i0 e# d8 _) }3 I. N; g
if( pLight )
& g% X+ R0 F7 Q7 ]9 ^, C; h* n { ; B( A( p% `" u
// à??μ oˉè* ; X. a2 c4 N1 M: w( T& m& Z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;3 L) w8 c2 G* ]; W: {) h
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;2 ^, v6 `" z; R, c; I* {/ q
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
: D& ` y- @/ E: m: R
2 u- h) x+ K' r; F: v' R$ Q // oˉè* ??à?
8 s* Q$ A& Z4 S$ ] pLight->Specular.r = 1.0f;1 w$ v+ E2 j7 e" S7 E @! n5 g
pLight->Specular.g = 1.0f;0 G6 x8 j, v( e' Q+ y
pLight->Specular.b = 1.0f;+ W& I( g+ \7 ^
// àü?? oˉè* ; c2 n+ n8 |" W' E, ]4 z
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
) S# d& ^8 A, V7 \$ O# R pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
% F5 k8 j+ u& M3 m2 W. M3 D pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;1 j2 f8 ]) x6 s) b1 ]0 N6 s. E
% H) n& H9 z6 i
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.1 k& m3 M7 c9 I4 M/ q& |) ]8 {
{
' {" F, [9 c/ x$ _' w* r- h/ b4 B* C @ pLight->Diffuse.r *= 0.6f;
; O/ Q: _& }3 [4 t) P/ a7 S' Y pLight->Diffuse.g *= 0.6f;
& s5 i, i, |/ Y" a/ ^ pLight->Diffuse.b *= 0.6f;* k8 d$ C V; G; G3 c: Q
pLight->Ambient.r *= 0.7f;% p$ Q% q4 I! d$ P; o2 I- v. K
pLight->Ambient.g *= 0.7f;2 ]+ {4 C) z% A2 m" b3 M
pLight->Ambient.b *= 0.7f;
Y) _' {5 p- l, b }
}3 u! M0 v) P9 n1 h" a
) R0 v J. [: h+ Q4 @#if __VER >= 15 // __BS_CHANGING_ENVIR8 Z1 r3 t, J7 C* R7 }
if( g_pPlayer )
! S% C, W7 t; o' P! v: X HookUpdateLight( pLight );+ U/ R# K& X$ z# [* P
#endif( l3 c- [- d0 v9 D: j4 E( R; a& {
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: k+ s" g6 ^5 ^
C( _$ K3 N/ Q7 L- y pLight->Diffuse.r += 0.1f;( n+ S* T5 I* Q. g/ o" G
pLight->Diffuse.g += 0.1f;
# J; o( L1 _ B3 H$ H1 b8 b pLight->Diffuse.b += 0.1f;% q! j3 U# o' F" Q; @7 x, a0 m& l
// oˉè* ??à?
4 Y: `9 Z1 m0 s pLight->Specular.r = 2.0f;( H( z2 s& n$ L2 h8 ~) X) N1 U. T
pLight->Specular.g = 2.0f;1 {# ?1 ~- s: F8 g2 I, d" D: ]
pLight->Specular.b = 2.0f;
' r' b* m6 P- m // á?oˉ
% X N6 P9 m$ ]$ Y' \ pLight->Ambient.r *= 0.9f;
" P% s2 _2 X4 g% e5 v. h/ G4 T pLight->Ambient.g *= 0.9f;' ^. J9 G7 B/ o4 H( ^( ]' }7 u
pLight->Ambient.b *= 0.9f;$ ^3 K9 |4 L6 |5 H6 o# \! u% y
+ Z1 E. f2 O8 h& e& c1 \
memcpy( &m_light, pLight, sizeof( m_light ) );5 r. t% u! {7 c' c9 P" e
* b8 ]7 ~1 n0 } pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
: Y7 @$ z6 z' A5 {, J2 C: I7 h! H A pLight->Appear( m_pd3dDevice, TRUE );
2 n# t7 F; l8 L; P" Y4 | " s$ W0 R* _* J! L& l, }
DWORD dwR, dwG, dwB;/ C" m: a2 h0 k; k0 T4 l7 }& |% a3 U
dwR = (DWORD)( pLight->Ambient.r * 255 );8 [7 k; d/ P+ b! C
dwG = (DWORD)( pLight->Ambient.g * 255 );$ Q) Q, e0 w7 }8 p& ~6 h
dwB = (DWORD)( pLight->Ambient.b * 255 );
2 T2 O, Y$ M. ]' |; X6 u dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );8 v( v. u5 h8 k B0 F- E
}: e7 w. U5 {" g' l
}4 ^+ g. D6 }, j# ^
else
8 D- U: c" `* n {; t8 ?- S. a+ v; Z# r
if( pLight )$ ]5 ^3 c" Z6 W4 J
{
7 k8 S! N& r% z/ y/ v) m 4 d, y1 P- M% }6 n
int nHour = 8, nMin = 0;
/ Y) [+ @+ q; {% h #ifdef __CLIENT3 ?3 p0 q, e0 t* {
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
& |/ V9 h% s% H* X5 h( S nHour = g_GameTimer.m_nHour;
0 u" N! j* i3 H; ?+ N/ o0 V nMin = g_GameTimer.m_nMin ;% L2 z9 Y9 a& |0 s2 a1 B5 U
#else
^& `& \- e# x" S! \& g // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
1 v2 L# y* l* P0 c/ o! j if( m_nLightType == 1 )% Q- E$ F/ A! t3 B6 {% t
nHour = m_nLightHour;+ h2 Q! |+ I5 F5 q3 M: {+ A0 R
#endif
+ f& E6 C9 N) |! h( O nHour--;" g5 o& A4 I: t M
if( nHour < 0 ) nHour = 0;4 G/ t- l$ g1 N: V$ v6 W, M! Q
if( nHour > 23 ) nHour = 23;+ F2 x& h6 `- ?9 w1 y. E( q2 I
- ?6 Q) f2 a% ^& `6 D //if( m_bFixedHour )9 k C7 A# z% B2 _" L: U
// nHour = m_nFixedHour, nMin = 0;
% L9 \# O/ g4 b6 g4 A" ]' |, J# g1 v0 K LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
. I% t+ G% j. d# W1 J* [, X) J LIGHTCOLOR lightColor = m_k24Light[ nHour ];
" g3 Q. w/ u" `3 ]1 L! E% [3 t, S3 x) f' ]
//m_lightColor = lightColorPrv;' L& E/ i# u/ h4 |1 }8 U
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
, ]* u f2 x+ `% q lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;4 ? }# g5 @. r. S9 V
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
0 i2 m2 ]) _* s) y) e, d& A1 \ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60; o& @9 m1 S: j. o
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
% h2 ]$ ?1 i7 r& X lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;0 I5 ] u1 d! {) E- _- @; x
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% [3 |. U/ I5 F) w4 ]
" V, @" `! T. T3 G. W8 x) \
// à??μ oˉè* 4 o9 \( \; c) W3 y$ C
pLight->Diffuse.r = lightColorPrv.r1;# |# B) X9 D/ b7 E, j
pLight->Diffuse.g = lightColorPrv.g1;- @3 ^9 K0 |9 E* Y4 l2 i. A+ J
pLight->Diffuse.b = lightColorPrv.b1;
: Q9 K {0 ?9 V4 C // oˉè* ??à? 6 N# I4 e U* O+ n6 i6 k
pLight->Specular.r = 1.0f;
/ p7 _: s& o1 `* u# H [ pLight->Specular.g = 1.0f;
% p* w* _! W" H' y' j pLight->Specular.b = 1.0f;
+ ^2 E8 u0 W, [2 N // àü?? oˉè* / }' a! D7 T/ n. E4 t8 ]+ b D
pLight->Ambient.r = lightColorPrv.r2;% X% z5 K4 r7 X b! Z3 c: _
pLight->Ambient.g = lightColorPrv.g2;
* h3 o; p. S5 W. o$ } pLight->Ambient.b = lightColorPrv.b2;
- z( E. f# ^/ d- l# V K6 R
1 J. D2 W! ^ e" n8 y! p& O$ y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* ^- n4 r2 n7 Z n7 ^0 X& u- T/ M
{4 @( s. h3 f! B. h$ O! {6 c
pLight->Diffuse.r *= 0.6f;
- q- p5 M2 D$ u$ \% Q$ X* H8 j pLight->Diffuse.g *= 0.6f;
+ f# D+ B# U9 o! o) G- K pLight->Diffuse.b *= 0.6f;7 \# D& D& h, b j: f% }% d R
pLight->Ambient.r *= 0.7f;& Q* G5 x2 E/ H) ~- i" A
pLight->Ambient.g *= 0.7f;
& _+ }& w% y M6 U4 Y; f5 u pLight->Ambient.b *= 0.7f;
1 z# y; f& V3 B- b+ v }$ h: L- R& f0 w# U
% k* ^! u1 l' j4 a* p" V#if __VER >= 15 // __BS_CHANGING_ENVIR. n* U5 q+ ?) N0 N
if( g_pPlayer )4 ~0 x0 T$ h% n
HookUpdateLight( pLight );
# @4 t/ Y! |3 t& ]#endif; X( {0 ~( [, p. q# I5 N! W
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 C' D c% H& X5 w! A
5 u9 y0 ?* }: ]#ifdef __YENV R! [! Y$ W! h& `: z2 P% |7 U
pLight->Diffuse.r *= 1.1f;
; [4 R; E, J: y5 Y: M1 N* ^! K2 O pLight->Diffuse.g *= 1.1f;
+ ?8 u# N# S" g- z0 U A pLight->Diffuse.b *= 1.1f;& j; M8 x0 b( i# P
// oˉè* ??à? # ~# R/ F, h! o% F
pLight->Specular.r = 2.0f;. \! i) L% C+ m: I- M% Z
pLight->Specular.g = 2.0f;
; w9 J3 t3 |% @% n: O! h pLight->Specular.b = 2.0f;4 F! @ Q; p" @& ]
// á?oˉ
# s' q1 J: Y; K) ~ pLight->Ambient.r *= 1.0f;
( S1 j; Y# x5 D4 P pLight->Ambient.g *= 1.0f;
# s0 ?: C: h+ Y. y1 U7 B: N pLight->Ambient.b *= 1.0f;
! E7 \ f0 G* z1 R" W#else //__YENV
# i0 K, U! \9 f( ?% e. i pLight->Diffuse.r *= 1.1f;
z# b( i6 K+ p8 \) d1 m4 @2 ?# E pLight->Diffuse.g *= 1.1f;
3 U2 j; V1 D1 S: d* a pLight->Diffuse.b *= 1.1f;% g" i8 }% ], W# C0 V& ?
// oˉè* ??à? . W" h& V( \/ O6 I$ d2 Y) H
pLight->Specular.r = 2.0f;
( y7 q/ }# F% H) W9 s pLight->Specular.g = 2.0f;
6 B" N* }! `3 h! b! Q pLight->Specular.b = 2.0f;9 Z6 w3 N/ P6 X0 y
// á?oˉ " a' I( O4 b9 F
pLight->Ambient.r *= 0.9f;
* c( N* S8 E) ]8 i$ ^8 @2 Y$ Y pLight->Ambient.g *= 0.9f;
) |" M4 S; A# y! a* j9 X pLight->Ambient.b *= 0.9f;
) \* a; {; ]; w1 ~5 p0 y! G#endif //__YENV
. V: O6 F7 |7 C ! y* J: H& ^* J1 p& j" E+ M; ~& }8 b7 y$ n
memcpy( &m_light, pLight, sizeof( m_light ) );3 L f3 q- ]' o) ^- U# j1 q
. b7 V0 e; L& B9 i
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
2 h0 C3 G/ j. H1 T7 U) O c D3DXMATRIX matTemp;, `5 P, E" [2 c$ w! Q7 }' V- N
static const float CONS_VAL = 3.1415926f / 180.f;! s$ c& k) } Y; p" h
1 K5 G/ ?8 `" s8 ^2 S) q D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);7 X4 H6 C; D# D6 [, |! ~1 T; P
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! k) e. H, F/ _# E! T. R1 ^2 x
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
& b0 Y% V: h+ L1 L, c pLight->Appear( m_pd3dDevice, TRUE );
- m6 W5 u3 t2 u, ~" J$ L. M0 Z# S2 j, J: A9 b* c0 q
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# K) H. Y7 a: v& Z- W7 d- S. P: q // D3DXVec3Normalize(&(vecSun),&(vecSun));
2 Z6 Y, N6 h7 n // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; V/ r. K- v+ T& i; @. H! F1 Y: C% U. t
DWORD dwR, dwG, dwB;
0 X6 u. ]6 s& l dwR = (DWORD)( pLight->Ambient.r * 255 );' l: | O$ n+ Z" p& {8 {
dwG = (DWORD)( pLight->Ambient.g * 255 );* K; |( X2 H8 N0 A% I
dwB = (DWORD)( pLight->Ambient.b * 255 );
4 k8 c, |5 ?# z/ v H dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 9 \$ H' ~3 |' {9 m5 g* I! ~
}
R6 |# E2 E8 X }
- n$ X0 a, G" w! H! t7 _5 x: c
) j! M( {) D+ g4 d( [1 P m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
! a7 o9 h, i. I( t 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) );% L& a+ _! L: [$ K$ k% [2 c o4 s
::SetLight( bLight );
$ |" @& w- A2 x) l1 ^3 c0 e* z _: K, c
// ±ao? ?D?í???ó á¤à? 4 Y# r' s3 t8 i; `' T" U
m_pd3dDevice->SetMaterial( &m_baseMaterial );: D# D7 z' q2 U# _0 O
0 U5 J' M2 H) w; p0 i#endif // not WORLDSERVER7 z' r' y1 a0 X; S1 q4 M
}
& e" Y8 z( V% B8 D& U# b并更换
7 Y! X) L, |+ R% q; ?9 W4 q5 X. v6 QCode:3 v) p9 b$ X! t9 l
__FLYFF_INITPAGE_EXT
8 U; R7 @" U2 y8 W( L8 T定义, X& S$ O; k. P
) B l0 z7 s, f( j" [# f! M& u6 R
- p) @' k) G' Z3 S8 S4 O' l5 e
$ z7 `8 r* N" Q s p
3 O! w# P5 J2 M8 s w- e( a' F* ]! X; N现在终于删除我的狗屁加速...
) L x* K7 O( I! s- a5 I
# F5 H# o8 ]5 w% K- o0 U
. k3 w* E$ R+ a5 k2 ], D4 c" y
/ x; [+ _+ c7 i( ` |
|