|
食品车:
. h3 o& \0 P! k尾翼:
# N. W& U; @2 c
, w( H# z! K4 E, Y代码:
2 q& H: p; N# r1 r0 C+ GCWndAutoFood::CWndAutoFood()
9 E& z+ x3 B I R U{, g/ Y+ I( A: U% _2 [# W
m_pItemElem = NULL; n) u; Z$ B q" d9 r
m_pTexture = NULL;7 R9 b$ r5 V) `
bStart = FALSE;
/ O l4 m3 N! j}8 C. z' E. z, M9 r
( D& S" D3 q& d( K0 |CWndAutoFood::~CWndAutoFood()
' O& T! h+ s0 r0 M7 e v& W{
9 J, C0 K8 Z1 `9 U4 M# E2 ?; i1 n( a AfxMessageBox( "AutoFood ist gestorben " );- W4 h( U; z, T9 S- A' A; ]0 c7 U
}
2 S% @; S( D! h h. VBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
* P& E1 z- P2 o0 ]2 Z4 u+ }{
7 C1 v0 a A1 U5 f% l return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );( ^' _! u) [% G* y8 E& a
}% ~' o1 x% n* @+ ^8 h* G$ n
' Q. ]" Y& B. PBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )$ h$ j/ t) g& l- I7 g& V' l$ d
{, P- }) [3 O9 F, E1 F
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 F+ }' M9 C0 O g) p3 V1 I4 ^6 m CRect rect = pWndCtrl->rect;
: q# t; e( r7 e& D4 W& y6 l if( rect && rect.PtInRect( point ) ), w! J+ E5 p) x1 p/ ~+ \- b
{
9 c1 J4 {( Z" M CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
$ H2 `* J m F0 L- a6 } if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
' S$ `4 H* I: K/ N3 O8 M9 F {
m1 F, Q" N7 ^5 b7 j if( m_pItemElem ) ?0 i- |! W y: W
{' c5 z9 d3 _4 q4 E9 b& w/ W
m_pItemElem = NULL;
) L( ?8 z6 D F5 D' w. {7 Y: O }
, G6 Q7 R. I2 d7 K7 j m_pItemElem = pItemElem;9 o8 S$ I8 J' }) G7 z
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 i* N4 v* U$ _3 T. G0 F
}else{: Y$ |. X( e: ]+ }6 u+ j' Y
SetForbid( TRUE );1 _. K! g* |& `& H
}% V6 V9 }8 }7 K4 U& f, a( V
}else{8 n' m8 R+ ]$ |" ^# L6 m
SetForbid( TRUE );
) u$ L$ M' c+ m0 W3 f4 V5 q }
+ @( q/ P4 `# l# W2 p( Y4 K: r9 s return TRUE;" {% N. _) @- l; a# J* h4 B
}
( Q- {6 `6 t' O, E3 h G) G4 O5 ~# q4 j6 P5 ^
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
9 F( ~; m6 T3 V4 d {: h7 o{. t: X. ^1 Q. G; S
switch( nID )
2 Y W4 X5 b: z+ ]- x {
% Z# C' k$ Q. [ T( b case WIDC_BUTTON3:& E' ^- w d. W: P' `
{ h1 i( E5 p4 Q# y' L
bStart = TRUE;
+ n$ T2 L2 ]5 w; B& B2 [* |% ^& C break;1 q# E5 |! q) c7 t D- u
}
( z) O% W& K. m6 @ case WIDC_BUTTON4:
1 C7 S6 e* K3 F; Y. n$ ? {7 d2 K5 V; d5 E) [- e8 q q
bStart = FALSE;* M- z& p5 k5 n+ B# y8 w
break;
' u! y' \4 U9 ?3 a: A ? }6 Q& l0 C( z4 u7 q4 c8 n
}1 R( B5 a5 h$ z3 p
return CWndNeuz::OnChildNotify( message, nID, pLResult );
: q1 G8 z J) |( c( {$ k4 f$ Q3 ?} % Q0 v6 ]$ ]% E- V( ^; t o
void CWndAutoFood::OnDraw( C2DRender* p2DRender )8 P8 k9 b3 y5 J% \ t& e9 I
{$ F: t1 m% y. x
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
3 e5 q3 z* [2 o; m' @7 A+ \ if( bStart || !m_pItemElem )7 P1 ]& m8 s$ N+ i
{8 g/ O$ ` H0 T+ a9 d1 W4 {
pBtn->EnableWindow( FALSE );5 ~/ }! j& x, G3 }) z
}else
0 e, j! H& o2 d! Q k! t pBtn->EnableWindow( TRUE );
4 e0 q. I( F+ k& _, T* A2 A& s if( m_pTexture )
* n. T# X7 b7 [! Q {4 B4 x2 f+ D C/ ]& v. R) |
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );- n1 [6 O9 h& s3 c* H4 S' K
if( wndCtrl && wndCtrl->rect )( N/ v/ t8 L; M K; f; z
{
/ f3 h6 q9 s0 f m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
: b1 G+ |1 n' K+ o }
( }( y( {0 R9 H/ D5 L% f/ Z6 I }
# L! } S8 ~! \3 R* z6 |}
/ H# v! } G& z! @- x! A3 ?6 M4 H
BOOL CWndAutoFood: rocess()% J. J% G' | L* F$ o9 a
{
# B" L3 X) r! `# j& i, ~5 ~) S% z if( bStart )( b1 n% e0 s9 Z4 O. J# a% X* I
{
( Z# O- W1 | q0 m0 V. G if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
/ w3 B0 f5 m h" G {
$ i/ T1 t* e: U/ |: L* _& X; 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() )
, R: }: m8 x$ r( X6 S g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
9 d& b$ L4 }, q8 S }else{ |$ U* c) }& G ?, D5 F
bStart = FALSE;
8 C& I5 X0 K- I* [! Q m_pItemElem = NULL;
+ T' u& E$ t$ i" l: v }
# r! z6 k% a# I3 ^% c' o: X8 j3 f }
! [8 N' O. K. i. r$ Y" T return TRUE;
3 ?5 n: f+ T% ]" { m. O1 w2 b+ n8 v3 H}
+ d( p3 K# n: H8 Z; ?& D8 Z3 d S$ p* B
登录视频废话:. B; B! ?6 R) c" l# L) }" } h
尾翼:# J: w' s/ P! M4 V2 m, H
2 G: B# M( a2 u: L, C" v' t2 g- G代码: r: S: m+ ~: L
* e- ?4 L* Y) C! Y8 i9 w1 F4 ~void CWorld::SetLight( BOOL bLight )+ U+ R, _9 e$ b4 a4 a
durch
& I, c- ~4 S! K5 K+ {Code:
' D8 ], A) c5 b* ^2 Y' Kvoid CWorld::SetLight( BOOL bLight )5 y* k: _$ ~9 `; z! m; z7 I. S
{
' O* w0 n8 d, P1 ]4 ?* _/ f( X' [4 e //ACE("SetLight %d \n", bLight);
# @6 p: o; q) C0 G0 [ & ~3 b* T+ E! u
#ifndef __WORLDSERVER n# l- {+ p3 r9 C9 P8 f
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* K& @8 D" ` L0 E% F. L; a CLight* pLight = NULL;
% m. Q& L7 g/ J6 u% Y! l+ `
+ q" K8 ^6 S6 l5 I7 B$ O; h D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
; l4 m6 A7 H" O7 T+ [7 z+ A" m
9 T" D: N, G$ g* V Y& ^ pLight = GetLight( "direction" );# l7 ]) z! s7 k# ~, E, {" N0 c
6 Y, M( i( U) {$ Z' f
#if __VER >= 15 // __BS_CHANGING_ENVIR
; R1 f) J( D, h4 c7 ?, ]; J; d if( g_pPlayer ){
& l! r; E J3 C( V. q( v3 t ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
. _7 g' B+ F8 }3 T m if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!& o4 f' D+ g& G) H( M* n/ ~) C! I
{; ?' A/ {0 f& ^) |* i
if( pLight )8 G2 ^/ T Y$ k& Y. z* T, h0 X
{/ _7 K3 e4 S+ ^2 p4 y
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];; w$ P# {. }- A9 N9 q: d$ e
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];0 n$ R0 {- y3 C& }
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];# k" \. t* N; m; |% i
: b4 ~# n1 Z. ]0 `# K9 Z
pLight->Specular.r = 2.0f;
) w8 `( ^# ]/ v7 Z/ T9 c8 i pLight->Specular.g = 2.0f;( ^* _) ]* f! ~
pLight->Specular.b = 2.0f;4 x5 }' Q* b6 b' N+ s
2 _# w ~9 i; j: Q4 I& x
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];9 _1 ^6 c( A# w1 m) Z1 t
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
; {; }1 W3 T2 G( \$ N pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];; J7 c' f$ g6 I7 Y$ z# G$ T J
1 I' q8 w2 x d" t+ y HookUpdateLight( pLight ); , J3 U# i( @1 P; ^" m% f
, P% O" o0 C2 n1 ~ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! w5 _8 J' {4 l! s9 s, B
2 Z K! o7 {& B8 B* \
pLight->Diffuse.r *= 1.2f;
% r7 {, [# l# S; s$ T pLight->Diffuse.g *= 1.2f;$ {' V# p' `. k4 b; d& s t
pLight->Diffuse.b *= 1.2f;
- n; J* l- b! h
( ~. l$ Z7 Z& e9 Y6 ^+ C1 r1 D: f pLight->Ambient.r *= 0.8f;6 A2 \4 h5 E' \: J% T
pLight->Ambient.g *= 0.8f;1 x, y9 d6 n8 J f7 Y
pLight->Ambient.b *= 0.8f;2 t3 E6 k- ~' {* f+ ]& d" C+ E
! p1 x. Y( l2 ]' B5 q2 A# X memcpy( &m_light, pLight, sizeof( m_light ) );
! ?9 ^% W6 s: m% L- ?' M$ Z6 X/ N$ x9 N( `; y) o/ Z5 n
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);4 |( d' g$ `. e) s4 L' G" g0 U
D3DXVec3Normalize(&(vecSun),&(vecSun));
& n1 Y9 j% N) | f$ L } pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , m- `0 [' n; n2 V& E3 @# }
pLight->Appear( m_pd3dDevice, TRUE );" B% {8 h7 n" {* j' w0 z
+ k4 M4 I: E# S% e* { R" g' t; U9 y DWORD dwR, dwG, dwB;' I( F2 `. w0 t \
dwR = (DWORD)( pLight->Ambient.r * 255 );+ C$ [2 I& G5 J4 J( f" T) f* @
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 Z2 M, i; {+ ?4 ] dwB = (DWORD)( pLight->Ambient.b * 255 );
$ b, g; b, x: y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" M/ T* L# z3 r( Q2 Z
}
7 c, W( _1 ~/ V/ P8 r- B }
! G3 s( Z6 _& F" _$ p }+ Y) ]# R, F& ^" s' X; N0 a9 g6 ^
else
1 U$ p( g! Y& Z ~ v6 ?+ |! H#endif
% F1 H9 E0 j0 c+ P& ~% B( l# r- N" r) T
if( m_bIsIndoor )" \, x: L% ]6 s2 v
{
. S2 }2 _* r4 _! ]+ c- n& b if( pLight )
( w2 l! V0 O+ a- u {
. q4 z. H) J/ U5 z+ p, @3 ~6 F% G // à??μ oˉè* ; V% I; i( X1 Z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;3 D8 H# g% S: C7 d
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 e2 ?2 J, \" H% g$ Z pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
# l' `: ]& d/ Q7 L6 ^* a0 d2 ?( p
// oˉè* ??à? 4 Z; A, C/ T; o
pLight->Specular.r = 1.0f;
% J A7 [$ _' L! W7 S pLight->Specular.g = 1.0f;- L( ?: s4 a7 i( V8 A8 e
pLight->Specular.b = 1.0f;0 Y# I& ?3 s& Y
// àü?? oˉè* o% s: ^- |2 m) u7 Y0 b4 g
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
4 p5 q5 F" P; e0 Y1 A% b3 H pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;/ P' Q4 i$ v4 x1 |, N2 E# i
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 b; k1 N1 z6 P3 D0 [' j& z* }2 B M8 }0 P+ i6 D
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 q& L/ M4 N$ v4 ?8 E {% I- C$ |! M- E( {5 D
pLight->Diffuse.r *= 0.6f;
$ z' F( Y7 ]) z2 v, M; m$ I% G" n pLight->Diffuse.g *= 0.6f;
# H" H* g- k# n% ^ pLight->Diffuse.b *= 0.6f;/ z" B' X* i& s
pLight->Ambient.r *= 0.7f;* `. c3 B/ x: K3 x) A
pLight->Ambient.g *= 0.7f;; ?+ n7 ]4 w0 N; u
pLight->Ambient.b *= 0.7f;
4 ?3 c( L0 E% y$ E4 U; Q }
6 n! |6 O% E7 A# C6 L f+ Z; u) G# G
#if __VER >= 15 // __BS_CHANGING_ENVIR& X9 o1 s- `5 q! x! P
if( g_pPlayer ), c) A7 }( }7 D& Q# v9 o2 V1 f. g* r
HookUpdateLight( pLight );
$ ]' u# [: h: d4 n( K6 T( b; w#endif7 [) u: P9 l( [, U
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 U8 `/ B% g+ I8 _& W
" q( g9 X8 ]3 O3 A8 D pLight->Diffuse.r += 0.1f;
8 ?# u- c2 F0 q/ B5 h2 n pLight->Diffuse.g += 0.1f;6 [% \7 c% U6 v: q% ^
pLight->Diffuse.b += 0.1f;: I8 g2 }/ ~2 M
// oˉè* ??à?
0 O% e3 U/ u& e% B3 M pLight->Specular.r = 2.0f;+ n W' W; G9 G- ^8 Q$ a
pLight->Specular.g = 2.0f;
# D' ^" S# K! U pLight->Specular.b = 2.0f;) s8 S6 O/ V. Z( D
// á?oˉ / }9 {5 Y% \5 [1 M: S
pLight->Ambient.r *= 0.9f;
+ A# i+ N% a* a( B3 d pLight->Ambient.g *= 0.9f;9 p2 q4 Y) o! `2 L) q. t1 \/ A1 U
pLight->Ambient.b *= 0.9f;' O/ R. p) Q2 U- H3 q- x
* ~ q: D4 E3 J6 h
memcpy( &m_light, pLight, sizeof( m_light ) );* g8 ^7 b5 X( a1 v4 `. X
2 C8 [* _5 H) u, s' V
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
4 r: q9 q- T, T. z% M pLight->Appear( m_pd3dDevice, TRUE );: F8 k5 X2 {1 U; Y- a6 L" s
9 h% V" S+ Q* {4 S) e
DWORD dwR, dwG, dwB;
" i2 h7 F8 a4 P- ~3 u/ r dwR = (DWORD)( pLight->Ambient.r * 255 );+ B7 P! L; I( q- ^
dwG = (DWORD)( pLight->Ambient.g * 255 );; ? S* i" J' c, d" j
dwB = (DWORD)( pLight->Ambient.b * 255 );) F* ]. J, S9 ]9 y% ~2 V6 m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 ~; I7 K7 b+ E1 l" K$ S8 S0 | }' w+ y: A2 P, z1 R+ u& }7 g: f
}
# ~- J$ W9 n. b! C' |4 J else+ M: `1 k( }& V
{
, T# I; Z9 a9 n' n if( pLight )
# c' ? l% y4 N& u: {+ N1 `3 x- Q {7 ^. p; o2 S; @7 l; F
+ T# W' F* k" V# g: f
int nHour = 8, nMin = 0;+ l7 L, H5 q7 ~# }6 o
#ifdef __CLIENT
% }% T* G, {, R& G% S& I // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. : e; t/ o _9 i& \7 P
nHour = g_GameTimer.m_nHour;6 j* k# s4 y( c' o4 e5 z
nMin = g_GameTimer.m_nMin ;6 }/ ^$ j! s1 V a7 g0 S9 g% W
#else
3 S% [" ~# N' K: ~ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
% y- n8 d( j2 h& }7 u( G if( m_nLightType == 1 )
1 U4 k) ~7 K- v4 R nHour = m_nLightHour;
, \4 O* W8 Y; D1 t7 y" N #endif- c. Y6 Q: D0 o6 X) \3 J" J
nHour--;& J- J- u6 G& A6 a; l4 y
if( nHour < 0 ) nHour = 0;' P4 Q2 X( o# A# u8 S. |
if( nHour > 23 ) nHour = 23;. `" j2 h9 S, s2 U$ c' m
8 j# J! J* }" _" z5 v5 ~2 F4 v/ A
//if( m_bFixedHour )
3 q9 Z3 w/ \1 Z9 M3 U$ t. ]4 l // nHour = m_nFixedHour, nMin = 0;- p2 \, W& A1 j
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];6 X7 D8 |! Y* o+ z" V) [# @& q
LIGHTCOLOR lightColor = m_k24Light[ nHour ];/ G& P ^2 }! s' C7 a; C
# ^( s v3 {7 t) x7 V5 G5 R( A% T //m_lightColor = lightColorPrv;$ m- ]( ]5 w/ l6 K
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;5 m! ^( b3 ~* w7 ~4 K
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;! [1 @2 u! o7 ?+ q! ]# g8 d* Z2 W
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
$ Z, A+ J" [: Q5 J. w lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
$ s3 y- m L, R1 P$ u% Q6 G lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;; v" H n2 w4 \# z# E
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;2 \0 q( B% L. S; e
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
# v, x5 q0 a0 g" L
5 o7 c2 c' v/ u& [! _$ [ ]0 G // à??μ oˉè* t/ {6 m/ Q! J# @5 I, G/ l, `
pLight->Diffuse.r = lightColorPrv.r1;# A) a. {" Y) R' i. d1 Z G
pLight->Diffuse.g = lightColorPrv.g1;
- i, _ J& l! E1 ^$ N pLight->Diffuse.b = lightColorPrv.b1;
O, ~: m# X6 @6 v3 Q // oˉè* ??à?
( i" b2 r5 ]% l% W7 d7 M pLight->Specular.r = 1.0f;+ c. {& c. E n6 T: f
pLight->Specular.g = 1.0f;
3 l5 y6 l6 N" }6 R pLight->Specular.b = 1.0f;
$ u, f( y, O; x4 Y9 P( S G- x // àü?? oˉè* # v5 H7 q/ Q2 K0 P! Y! j2 {
pLight->Ambient.r = lightColorPrv.r2;
7 v! b' [1 s' {! ` pLight->Ambient.g = lightColorPrv.g2;
* b* h! @' x8 U/ g: A/ k& c pLight->Ambient.b = lightColorPrv.b2;
0 W2 a- t# T4 {7 U' D5 F& v# ?2 t% V8 A- u
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; L( f6 G% ^5 K% R3 U
{ Y3 e& M. K& P4 j! Z8 z
pLight->Diffuse.r *= 0.6f;8 [4 U% u' {: e. v. E X0 [
pLight->Diffuse.g *= 0.6f;+ q& Y6 E1 F' A/ ?! N
pLight->Diffuse.b *= 0.6f;. C0 A6 G8 G3 x1 q) a* }, P' T2 U6 @/ l
pLight->Ambient.r *= 0.7f;+ D" r L$ n! {/ e0 f$ l3 G) h* a
pLight->Ambient.g *= 0.7f;
. G" k- c7 T" l pLight->Ambient.b *= 0.7f;
# b7 b: F3 V4 g- E }
! f9 t9 R9 D+ b % z, v: S# w: Z, Q5 A
#if __VER >= 15 // __BS_CHANGING_ENVIR
; H0 J1 F9 n, L9 w- [7 q7 B if( g_pPlayer )- J3 t/ M9 y e# y8 q2 a$ z% B
HookUpdateLight( pLight );
7 P% A6 |3 d7 j7 W/ k#endif8 J: G, I1 U* u
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 B6 ?2 _# @- Q8 H1 @+ q& w
v/ u* L4 L/ k* h: P#ifdef __YENV3 y2 }9 Z+ F& Z
pLight->Diffuse.r *= 1.1f;$ H4 b. z( k% P' n
pLight->Diffuse.g *= 1.1f;7 R3 X7 e( w7 Y) |
pLight->Diffuse.b *= 1.1f;1 c3 n8 Y0 R4 W' [! R1 L5 Q: I
// oˉè* ??à? % G0 m6 N- R1 p/ v# V F
pLight->Specular.r = 2.0f; t) S' r6 K" I( }+ b; W1 V g0 l
pLight->Specular.g = 2.0f;, [6 T6 [1 y4 g& t% k7 ]5 G
pLight->Specular.b = 2.0f;
6 c* U$ M+ q0 q0 w, m // á?oˉ
9 G9 {6 f' c8 r* K) P3 w3 K2 ] pLight->Ambient.r *= 1.0f;
4 l: O2 w5 {+ \7 w3 k, c$ v pLight->Ambient.g *= 1.0f;+ l% i. u( W( [) ?2 G5 a& t
pLight->Ambient.b *= 1.0f;
& g2 o3 d# R2 J$ e. q' ?5 v. V' c#else //__YENV
+ U0 `$ @. A- r2 C$ L" _/ N- Y pLight->Diffuse.r *= 1.1f;' j' }9 |2 ~: S1 @; A+ C1 ^( O1 g
pLight->Diffuse.g *= 1.1f;1 `/ A, E5 r+ P. h I
pLight->Diffuse.b *= 1.1f;, X+ [: L0 n' K4 c/ Z" j
// oˉè* ??à? , i% k+ p. Q' v: }( R$ V
pLight->Specular.r = 2.0f;5 s2 c* N! V3 ^+ r8 ^
pLight->Specular.g = 2.0f;
( U% B: W7 p; Q: U pLight->Specular.b = 2.0f;! }4 q( ~; F$ `# F" _. y9 E
// á?oˉ
0 [4 Y: R3 S5 `9 Z3 h$ ` pLight->Ambient.r *= 0.9f;+ u ~8 A# z9 t. o$ x; n7 i" E" ?
pLight->Ambient.g *= 0.9f;3 |! X6 g$ D: Q8 g9 r# n0 F
pLight->Ambient.b *= 0.9f;8 z) O$ ~8 S1 L6 X' Q. t
#endif //__YENV
7 t" A+ ^9 T- S* Z4 l% L( ?
1 P) c8 ~# r+ V7 I/ P$ q; ^ memcpy( &m_light, pLight, sizeof( m_light ) );
+ u' B6 I8 Z# L3 x
+ g; S6 M4 B) j8 G D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);' _% U4 \; s- N! q
D3DXMATRIX matTemp;# G+ _6 j2 u5 |) s* C! }
static const float CONS_VAL = 3.1415926f / 180.f;. f4 g; s3 ~% F7 N O8 g
" I/ E& D& i& ~, A+ S. U D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);: j. j* q9 }, \9 O# C8 _
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
9 ?" O- ^+ e* n+ U! U4 A0 P0 L! \) ? pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 ?: O I6 ?6 Y0 u8 f7 j* e pLight->Appear( m_pd3dDevice, TRUE );
5 |. S' B; }6 d& j, F+ G0 ^- z, `3 a0 g
( a; `5 ^% C N3 K3 r // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# C/ Z$ t( o4 ~ // D3DXVec3Normalize(&(vecSun),&(vecSun));
0 M) ] S1 V5 L6 ^& z9 D // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 @, l. e3 i# R* \" I
, b) ]3 v _- v) G DWORD dwR, dwG, dwB;# B( Q6 a! H' w
dwR = (DWORD)( pLight->Ambient.r * 255 );9 `( M" c8 T/ {- ]' X+ i
dwG = (DWORD)( pLight->Ambient.g * 255 );" [) ]( y% x9 F
dwB = (DWORD)( pLight->Ambient.b * 255 );
9 g( W3 K/ l0 z* x* d! m! T7 }7 L. b dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: U3 p: Q D$ z5 g8 j) F }5 ]' m- {* j W3 A }. [. X
}8 k6 B M* b- L7 A1 k
+ b! u- c) n9 g% i
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );4 a5 h: J- c+ a; J# s
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) );. w6 K6 P/ D2 n: @
::SetLight( bLight );+ F( |7 B) r" I2 ~" i6 A6 v
( D7 q# `: p: y/ X" }. e# ?
// ±ao? ?D?í???ó á¤à? ' e! @/ d( F l* k% x& k
m_pd3dDevice->SetMaterial( &m_baseMaterial );
. N7 |3 U4 m& G 4 t/ ?4 ^' D \1 h* J1 s. Z7 o
#endif // not WORLDSERVER1 }8 n% ]+ w0 E$ L0 |) ~; n7 v8 g
}: x' y& y* y+ ]
并更换
' D$ B9 u/ ~% i. ^Code:
) d0 E/ `& }$ ?" k__FLYFF_INITPAGE_EXT, {: k) e, ^" _# u2 k
定义( B, @0 s F) y) I; H
$ o' c3 { N( ~% N6 \+ j
' T1 A" g! D" \5 v* @. |0 |4 F
" B# A8 n" Q" p6 V: g/ f: l) W7 h) F( p/ _; g4 i
现在终于删除我的狗屁加速...$ a1 K/ b- D" g, V
, b9 d* ]2 j+ E- y
! {7 `! _+ P% T4 n
9 U' ]- O( z, `8 y4 ~3 @; m7 {7 Y, R |
|