|
|
食品车:" O7 y, n5 ~& R0 A. o8 }, q
尾翼:! C2 H3 q! x( T# G) ?
* e5 M+ c6 {! f; L/ N代码:
3 ?3 f9 H4 h- \! l; O0 ^2 Z; \" SCWndAutoFood::CWndAutoFood(). \8 \- n) I+ @7 c& \) ?. @
{' `* S6 Z. t0 ~$ G+ {; f/ n7 J3 T
m_pItemElem = NULL;- Y3 W9 ?# X) O
m_pTexture = NULL;4 |$ P' J) I* G) z/ G r; o
bStart = FALSE;5 @; D, }- i: y# i9 U. b' e
}5 }& w% Z* d9 d# K
. f$ ]/ W) y! t; Q1 I- W) mCWndAutoFood::~CWndAutoFood()# I* G' W- G0 v3 {9 r% E
{
5 {5 Y( j; z L1 i: S AfxMessageBox( "AutoFood ist gestorben " );) S9 g/ r- m8 b0 ]+ R1 k
}- A1 a# i d# r) f* a; ~) e& l% H
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
' }4 Q! X" }- m$ B3 M' b{! T# ~& c1 Y8 }( L
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
7 a3 F( \3 J; p}
. z8 @4 T% A3 o; k6 m- i. r _8 |/ D( z1 {9 q
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
& G1 d* T) j. A) [9 T. K' S{& x' Y) s; N5 C& f" D* S0 L
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 u# g( ?0 ?* a! y% I, B3 f: |) w/ S
CRect rect = pWndCtrl->rect;
2 B; [- k9 B1 V; N% ?4 Q if( rect && rect.PtInRect( point ) )
C! P7 {9 I, {7 @! `5 e+ e {% i& J: P+ s9 l3 `6 y- k, ~# S+ [
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
8 \/ U! _+ M" B) B* W/ { if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
8 _: }& } H7 {7 v$ R: c {0 F9 U4 [3 W1 t. L5 a% ]
if( m_pItemElem )) Q. l3 P- D$ `: `0 K
{
* V) h" ~$ e: {# S m_pItemElem = NULL;
/ Z8 ], x! d& E) c& Y0 D }# d+ W1 R4 j0 `( `7 p- N V
m_pItemElem = pItemElem;
5 o" |- b% U, i. V m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );# L. \1 v( k& L. }$ L
}else{! b5 t; H! j% `# Y$ M
SetForbid( TRUE );
7 u# S: e. s8 J0 m' t }3 \# X' d, K6 A }/ V
}else{8 a3 t4 s; O2 I/ u$ L
SetForbid( TRUE );6 r2 A$ v( g7 h/ k: u2 c$ E2 P
}% a+ q0 |0 ~2 E3 m2 a
return TRUE;
: l7 b J5 E" B' |8 e2 n4 B! Y4 }}( U- d0 k; e: m" n3 |% f0 N
1 f7 [: _2 B8 f- C- K
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )4 P" Z2 P. t) u: f
{ ?/ ^9 L. v5 y, S2 Q/ A; N
switch( nID )
1 t1 f0 O" P0 W$ z0 Z8 d5 [! Z$ O* q6 C {
: I7 ?- R: T: E( d3 t/ }% c case WIDC_BUTTON3:
) g: E4 `8 a9 l {" W2 Q" b: y) `- G2 M2 D
bStart = TRUE;
* x# Y) }7 P$ @1 H$ T) d0 h, d) z break;
+ C) m; P d. d- ~# h }
1 x, f3 Q1 t7 E: T case WIDC_BUTTON4:! I! i0 U. N% [) w3 E1 x: N
{# v# Q$ U0 ?$ O: K
bStart = FALSE;
, \2 e. i- k& R- E' U. [ break;9 a. i! e, r0 R1 h6 O, H. Z: B
}8 D4 `: p5 B& ?2 b' n5 H! O& q# W
}0 {% J6 x: D4 b- m
return CWndNeuz::OnChildNotify( message, nID, pLResult );2 n% w4 @" ~2 m5 F& J" T
}
! r7 Y6 v0 w/ i9 A2 W/ K! t* q9 a nvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )8 A. u) O( e* i6 u
{9 r- w1 `; |' Z; @3 C4 A' v
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
$ y) p6 ^+ }( F/ \1 O8 R, I1 U if( bStart || !m_pItemElem )
" P! t" @7 `, m5 J9 C7 y% y {
, u) y# X1 y/ P' K pBtn->EnableWindow( FALSE );
+ C& y p4 `! ~: \9 r4 G! `0 X }else* T+ T3 S, C. @- {
pBtn->EnableWindow( TRUE );
. f$ Z- b0 {5 Y: Z6 a: F if( m_pTexture )
n% I# }" m5 ]. C {4 r! `7 m( @ A* x- k( I: E
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
3 Q' G' ~. N! j& O- E# B if( wndCtrl && wndCtrl->rect )
) r- o0 X; n3 W. ] {5 J8 N, ]4 c7 Q8 G* G8 Q
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
/ D2 x, n4 ?; C/ {# F( K8 } }# `# j/ C( }. A9 @/ V
}
( ~$ @( K' p+ h2 Q) w0 p. k# w( {% `5 `}& r' k* a; V: q! p" c
6 M/ J, x8 D" R% j& s) }
BOOL CWndAutoFood: rocess()
# w2 ~) D9 r9 k! X{
2 I/ c* B8 q3 w1 T2 B if( bStart )
9 r6 C! j+ Q4 h+ ]+ W {0 Z6 V/ `# Z$ J- R
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
6 c2 ^+ [6 ?! \: R2 N9 V {* f% p) D7 d! W) N9 h3 @: U P( V
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
, X# d: \8 [' j5 x1 I) c g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );6 I3 [& v+ o4 I [% Z9 {. {0 C% m# H
}else{" [5 c! |. |+ r+ [# j
bStart = FALSE; D$ d5 u; P9 _% N: M) Z- d
m_pItemElem = NULL;! s& E2 y% W4 w6 s- q, F. H. ^
}
6 v% l0 k# E0 Q3 E$ Z }5 c2 Z- v- F9 O5 _( A
return TRUE;
. v) _8 U# @& d}5 T% J: h2 I2 T( {4 C, |! |; n
6 X @5 {" ?$ J- `$ x2 R3 y) X
登录视频废话:& d! B4 c8 V! ]8 x9 X/ i( f7 G
尾翼:1 p1 P6 N4 w5 ]7 U
/ C3 t) M; m1 @" y% y( ~
代码:
& Z9 z! C4 P* n- r" [: J' i! t( p# q1 T
void CWorld::SetLight( BOOL bLight )
) J3 ?$ M8 Z3 i8 M: gdurch
, [: Y, a7 S U, Q: R ACode:: f- x% h I# }: X! `5 L
void CWorld::SetLight( BOOL bLight )7 t& g0 K0 e" @+ O3 j* r* i8 x
{# ^5 p+ u/ S" _( V1 A4 G
//ACE("SetLight %d \n", bLight);: c: d) q4 ^8 R6 P$ [0 P
- _- A' D7 j" {6 f0 B
#ifndef __WORLDSERVER ; o- e! n, r9 Z# S
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);& y3 \2 m3 Q) Y/ e2 j+ q
CLight* pLight = NULL;
, |. i# Y) D3 _, |- g q# R% k1 U
2 Y& n5 Q% N' K# n7 p2 X# P. e! j; E2 r D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
2 Y5 p. {6 z* `9 p1 W- L0 Q2 Y
pLight = GetLight( "direction" );
: H9 [ F/ f. N$ X( q9 k) G2 V, P/ ?3 M/ g
8 g" \' W( p+ Q$ V7 P ^#if __VER >= 15 // __BS_CHANGING_ENVIR6 A, g$ r, H) `: h2 ]
if( g_pPlayer ){ s9 o- S8 p1 i# G
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
) Q9 S% i3 A3 {, l' ]. z# z if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!' m$ F N: w E, O3 o
{/ K9 L6 \" O; D5 d m8 [
if( pLight )
- d- c2 Y' h. h/ c {7 T% a9 A5 ]8 x' h9 c& U- L7 E& H
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];+ w8 r, m6 }! b) {7 H9 V
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];0 H% x7 R; |+ i8 A0 B
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];/ f9 F2 u }: K1 P& J
K( m# o$ M; G4 h B. D
pLight->Specular.r = 2.0f;
1 {, l8 ]0 E. ^ pLight->Specular.g = 2.0f;
/ `; s. x' _9 r5 j: t( l' c pLight->Specular.b = 2.0f;6 f7 Y. C& n2 `
; U& ?1 D7 `1 K4 }2 p! a& C
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
% s$ I6 @# N _' a( z( T pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
: y$ {. s: a; ]: q3 K pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];' G2 S( K! l" b2 `1 r+ @3 `) N
2 P* F5 `4 f+ c- y) m( u8 c
HookUpdateLight( pLight ); 3 M0 \7 V; }7 M3 M/ H( I' ~
/ e2 Z; ~6 ?) [& H3 C2 b memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% A! n) M F& u* c8 E8 E
7 A! g! J5 D8 D4 G9 v! l pLight->Diffuse.r *= 1.2f;
$ C9 }& L. `; c' Q7 C' K5 ~; y pLight->Diffuse.g *= 1.2f;. {/ {% ]4 r7 m6 M
pLight->Diffuse.b *= 1.2f;+ {0 h' A8 t' H" g
4 {9 `5 r, J9 n pLight->Ambient.r *= 0.8f;5 I( z% _% v {' Q' \4 y
pLight->Ambient.g *= 0.8f;+ o& M2 W j$ B: y, t1 V0 O4 d
pLight->Ambient.b *= 0.8f; K( W4 r3 ^1 N y/ w5 a
5 ~' G1 ~) B8 I4 W t3 K+ A
memcpy( &m_light, pLight, sizeof( m_light ) );
, ]; d6 m2 E& z) i% c$ t
5 w( J/ Z) w7 h9 b9 z D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ I0 h" U) V4 Q) `. D9 o
D3DXVec3Normalize(&(vecSun),&(vecSun));" [( L! ~8 R, r3 Z: l
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: m7 b7 |& N; t" ?6 G$ t/ @% x pLight->Appear( m_pd3dDevice, TRUE );
H6 ` [. [8 |( c7 o+ G0 P1 ` 7 y: L% P! U) F1 r3 k2 m
DWORD dwR, dwG, dwB;" L. {8 h* E% P' F; ^- R
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 v' |: F# u! p: r' b# S( M& ~' _ dwG = (DWORD)( pLight->Ambient.g * 255 );
" C# f ], a0 l8 o* k/ Y) a/ E4 _% @ dwB = (DWORD)( pLight->Ambient.b * 255 );4 v; @$ Q1 R9 e1 C0 W' y! m2 I7 ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# _ N' r! Z2 r
}' _0 P* c+ r0 P. P5 Q& |( k/ d$ _
}
( H K i8 y$ C$ L d } [$ I- p8 q$ j$ _
else
$ m$ M; @/ M, D& o7 y& G4 T4 e; X#endif
7 Y( N! P' K; K- U! E" o0 i. S' b
if( m_bIsIndoor )0 Y# Z5 ], h0 h
{$ {7 W" Y, z' u- `! g' c. }
if( pLight )% U5 i; c K2 X h. ^) ~3 b& s
{
5 ~( O# U8 u( r // à??μ oˉè*
/ x2 r% H" |% }0 J8 v9 M* u pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
, w; C6 U" m u; n pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;4 H2 p# l3 ~; d. g3 d% d5 ]; c- v
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;. I* b" F/ g* g3 Z. }% O
5 Q3 Y+ Q0 v9 o/ Y! s // oˉè* ??à? 2 M5 ^( r& w! s; S, R6 k
pLight->Specular.r = 1.0f;
! O( U+ ^0 A1 Z* | pLight->Specular.g = 1.0f;
- r- Z3 F. M% @: b6 h pLight->Specular.b = 1.0f;
9 ]$ k5 w* u. T. @/ ? // àü?? oˉè* # n9 l0 j" j' n3 h
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
9 P$ V8 ^% F& D/ J pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;5 S8 L1 v" F' b. y: |
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;" y6 N$ i$ d2 Q4 x, T
' b* U' p. v* K- l; S+ Q
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.: x) R6 ^, {) e; G; I: R
{( k8 f) S+ P& d- V
pLight->Diffuse.r *= 0.6f;
# v5 A7 i# f+ v8 S( k pLight->Diffuse.g *= 0.6f;
- f. k7 _' M5 h8 E$ L+ O+ j pLight->Diffuse.b *= 0.6f;
% h/ O2 k$ W, _- A7 U8 o( h& Z pLight->Ambient.r *= 0.7f;) O* N" Z% e9 |( H3 Q
pLight->Ambient.g *= 0.7f;
# q2 }. K7 C6 r* s$ Z pLight->Ambient.b *= 0.7f;+ ~9 j1 E5 f! X u" ]5 I
}; t4 }9 q3 o, |! \% t
: A3 P- [2 u2 u#if __VER >= 15 // __BS_CHANGING_ENVIR+ s, F" o$ S- _
if( g_pPlayer )
3 r' D S" _" v. }) ? HookUpdateLight( pLight );
; o- J& j- i; w( m# Q3 _/ e* y9 n#endif
1 U/ \* W8 t+ W' k7 m) e memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 I: w( l% H6 |$ p* `
, V6 n9 l& j7 U* f2 ?, a pLight->Diffuse.r += 0.1f;/ O B* T0 W' T7 C; K4 @4 `$ h
pLight->Diffuse.g += 0.1f;
* }( c- k6 F8 z8 m pLight->Diffuse.b += 0.1f;" s; W6 t6 t. p; F
// oˉè* ??à?
' I j3 Q V8 X& O0 R pLight->Specular.r = 2.0f;
2 @% v [5 n7 p1 p/ ~8 u pLight->Specular.g = 2.0f;' e/ S8 ]" r" a6 K# J2 z2 p3 f
pLight->Specular.b = 2.0f;
8 S& o+ x) c- l' F" l# e // á?oˉ 1 B. |# j+ S- u6 A
pLight->Ambient.r *= 0.9f;
. T3 ^9 ~3 o, w$ P/ C0 t9 q' X( x pLight->Ambient.g *= 0.9f;
5 ~$ A: O: ]) x3 G+ V pLight->Ambient.b *= 0.9f;
2 ^7 U& P% j2 N
5 _/ J8 G& V8 ?5 } memcpy( &m_light, pLight, sizeof( m_light ) );, \ g3 `4 `$ ~
9 Z. L" {5 z1 [/ S
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; h/ e9 {) K0 p7 G% b; J
pLight->Appear( m_pd3dDevice, TRUE );
( h3 i& a/ }# [1 v. V, p: J* S5 l * s7 Q- E0 U% m1 s1 C: _
DWORD dwR, dwG, dwB;* G6 X6 ?$ r' @4 H3 J8 c+ G' n4 C: G
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 z. H+ \9 ]- K+ U dwG = (DWORD)( pLight->Ambient.g * 255 );
/ u& c2 ^+ G$ v dwB = (DWORD)( pLight->Ambient.b * 255 );* N8 g, J' W6 L& ]- c2 P
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );. I( }7 ~8 X& j
}
- x3 ^" s) k0 p( d: W6 V; o: v }
" H) E) _) o, w$ b; c else8 L# a6 v$ R- G0 M
{# ?+ m' Z5 g' b* v
if( pLight )$ P6 \1 j% c u7 L( X
{- z3 ]" W- Q+ V
. V9 |1 X0 D$ a K) \9 e3 T int nHour = 8, nMin = 0;" S7 d: L. v3 g& q$ ?
#ifdef __CLIENT0 t" n; _5 c7 c3 ?5 ?: F" @
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 3 |' N8 U* t8 ?4 J3 d1 l9 N' G e
nHour = g_GameTimer.m_nHour;% O4 e0 C: }, u! T3 ?
nMin = g_GameTimer.m_nMin ;
$ y- H9 r: F2 l0 t! B6 G- K #else
4 E1 Q# A4 ?0 O2 N' b2 Z4 b // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
* H/ U; K3 J8 A5 m if( m_nLightType == 1 )
# ? c" w! E# W1 f$ F4 V9 |, Q nHour = m_nLightHour;' u" B1 k! V$ [% l' O1 N. K! Y9 _
#endif
. G* x' c; S7 B6 ]+ z- y+ t nHour--;
, V1 P4 B& M: l& H6 }* f if( nHour < 0 ) nHour = 0;6 y% O$ n3 H, j/ i
if( nHour > 23 ) nHour = 23;
& e7 y- x" X1 D% Y) U" J2 p f) y+ |7 {3 B
//if( m_bFixedHour )
& y l+ N: u0 l5 E' b9 Y8 U- S" H // nHour = m_nFixedHour, nMin = 0;: C0 u" O" Y* h/ F9 R
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];& W" Q% `' _/ J6 d6 M
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
$ U, y0 B: n; h. c: R# b1 X7 C6 m, a5 Z9 r
//m_lightColor = lightColorPrv;
: M, J/ X- u0 r" I lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;* _; ]) b! U8 \8 Y6 k
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;, [8 F( u( K9 \& _
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
, \# b7 g' \0 m/ F! }1 T7 D1 K lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;. x8 k$ C, ^' j# X" d
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;$ z$ h- C- r* j" j" Q' F
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;# q2 Z0 p/ D7 s% c6 q: j( A" ^
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
. a. G# t+ ~1 i6 `3 K1 k
. I% ], ?2 E5 ^: \ // à??μ oˉè* - E! Q/ J) U' x8 p+ }0 u
pLight->Diffuse.r = lightColorPrv.r1;
+ U$ {# K1 s/ d! L pLight->Diffuse.g = lightColorPrv.g1;: A6 { ~- x( p9 @# y" W
pLight->Diffuse.b = lightColorPrv.b1; V) U% ~! M! _) c7 [
// oˉè* ??à?
2 X: [% |2 _7 W5 B$ G! d% F pLight->Specular.r = 1.0f;
9 `2 o6 F% X" Y v pLight->Specular.g = 1.0f;+ l+ X/ j( F; N7 b( T% _ X3 s5 l
pLight->Specular.b = 1.0f;7 R/ b, u' G1 y, k- W/ p0 D
// àü?? oˉè*
, q3 l: h3 s# P3 s: } pLight->Ambient.r = lightColorPrv.r2;
% u" b) J, S1 d! S2 J+ I pLight->Ambient.g = lightColorPrv.g2;
* o* w/ w) ]$ m# k pLight->Ambient.b = lightColorPrv.b2;, L, Y. S; K, K3 w8 S
0 I7 y4 T" \0 y& q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??., V1 o! \4 y% `" }' ~) L
{4 O4 N2 ]- u7 B$ `& J1 x- [
pLight->Diffuse.r *= 0.6f;
: K3 [# b4 [9 M$ B" f pLight->Diffuse.g *= 0.6f;9 a* x; j' N9 J( J9 N+ {
pLight->Diffuse.b *= 0.6f;) j3 A* z3 j4 U% m
pLight->Ambient.r *= 0.7f;$ ]6 j) S9 D# C' j0 D
pLight->Ambient.g *= 0.7f;
3 _0 n# X5 U2 w5 Y8 j pLight->Ambient.b *= 0.7f;
& r/ V* `% {% x4 J, T }
) {1 d1 E; c: k+ ?! g
3 u$ m3 i: q% f4 s; e: {; V#if __VER >= 15 // __BS_CHANGING_ENVIR* q* K- o9 R3 i, Q5 G9 e
if( g_pPlayer )4 J& a2 X& _; \8 [" h/ n
HookUpdateLight( pLight ); 2 M# k/ E0 I7 b8 Y d1 I+ n, v- r: V q
#endif" N# n7 B g+ s& G3 b. q2 W/ k
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% _4 H, c4 n% Z: N) H+ ]
( Z+ p( k$ g- Z4 N, w#ifdef __YENV7 {* i8 Z( b7 H) k$ z0 o
pLight->Diffuse.r *= 1.1f;
' p/ ^5 s3 k, Z2 k pLight->Diffuse.g *= 1.1f;
3 q* P# w; s# P4 N pLight->Diffuse.b *= 1.1f;
3 g3 y' h4 P/ R, F // oˉè* ??à?
5 P& ~8 L- N5 i6 d0 u pLight->Specular.r = 2.0f;
- t: [# H3 m- n) Q! \$ N% b4 M. h# v pLight->Specular.g = 2.0f;, ]5 D2 F: E N& K$ T! F9 q
pLight->Specular.b = 2.0f;
# u. |' W ]; @8 f6 @9 o3 v" H/ ^ // á?oˉ % \9 |- _: {, l- P1 l k9 _
pLight->Ambient.r *= 1.0f;
' N( [% r+ O9 p pLight->Ambient.g *= 1.0f;9 h" P' U5 {6 z$ Q/ g+ i
pLight->Ambient.b *= 1.0f;4 x5 S& X2 J1 E- _
#else //__YENV( n# \% ?; o# w6 D
pLight->Diffuse.r *= 1.1f;
4 W* G# k G* T. H. s pLight->Diffuse.g *= 1.1f;
' F+ M; ~6 Y% v" @) Q! X6 Q pLight->Diffuse.b *= 1.1f;) X/ D7 t- z0 g& X' ^
// oˉè* ??à? % G8 n% J- p' \- V+ i
pLight->Specular.r = 2.0f;
( x7 z- k) i! E, S3 M' z2 z+ ] pLight->Specular.g = 2.0f;
0 v1 p: j; M/ ?$ M0 t* j pLight->Specular.b = 2.0f;
! a9 [& H$ T3 R7 T9 {! Q // á?oˉ
& T4 S8 |" b0 `. J, c- r pLight->Ambient.r *= 0.9f;2 Y G: S& t, @- B/ _
pLight->Ambient.g *= 0.9f;" `7 M1 }" k. G# ^2 o' {! G
pLight->Ambient.b *= 0.9f;
6 e3 g' l$ m! `) `. A4 k$ o#endif //__YENV : i, h5 v% m7 ]0 j$ \7 C
. G8 I& P5 j0 k' a. F5 U! x3 z, F memcpy( &m_light, pLight, sizeof( m_light ) );! _3 m* N4 I& p
6 V9 |6 z' O* e* ^+ Q D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);* L6 A7 R6 L$ Q# s. R* T
D3DXMATRIX matTemp;6 j, d R$ g" X4 q' \* R8 j
static const float CONS_VAL = 3.1415926f / 180.f; _6 t7 e8 c+ X* \
. z. x6 V8 Q; S, `. x3 y D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL); z$ e/ x3 o! u
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);4 T! G4 g( P) U$ w/ B( h( U, S
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
) q, A6 D; Y0 p; j pLight->Appear( m_pd3dDevice, TRUE );1 ]5 [& p; V, u
e$ \# B: J4 i' b // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);, l9 Q6 b* S$ }
// D3DXVec3Normalize(&(vecSun),&(vecSun));
- m8 D) a! f5 z" R8 S // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
% _$ Y$ x# ]; B1 k! e5 c' Y$ u9 I
DWORD dwR, dwG, dwB;1 H/ b2 M" f! W1 l- d* `' o
dwR = (DWORD)( pLight->Ambient.r * 255 );
& L) f) u5 q+ T! f# A J dwG = (DWORD)( pLight->Ambient.g * 255 );
: S! [, K% \6 ?$ ^ dwB = (DWORD)( pLight->Ambient.b * 255 );
1 j$ ~+ N: h0 q1 G: F dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" T9 M* O! r1 }0 i. X }# C6 e) }0 O- K
}
P9 Y! z8 u% u- O
, R3 N0 ?0 d9 A/ Q( D6 f6 v& } m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
- k7 D2 ?8 ~ [ 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) );9 P" c% P# V0 G* n
::SetLight( bLight );
+ [/ c: k# I# H5 i: j! l x E9 _# N& @4 U/ w
// ±ao? ?D?í???ó á¤à? + u1 ?8 d/ ]# g, @
m_pd3dDevice->SetMaterial( &m_baseMaterial ); ?4 b6 ~- l) D# _; n8 @
& `" {2 i; m# U
#endif // not WORLDSERVER! N B6 c4 P3 H2 {6 E
}
* G5 y5 d0 {. P* @1 c( K并更换
7 ^" ?: Y* A0 K) |- _3 WCode:% f9 ]7 m; g P0 J
__FLYFF_INITPAGE_EXT
, u9 n+ R5 e, D8 v定义, ^0 F Q9 S' o' y
0 ]* `+ S, G, {- T, W3 N2 a9 V
4 c$ c& C$ B; M8 S1 l
P' P7 ?0 e6 l6 y! S% C, h2 I
+ w8 d6 B6 s: N/ ]* {) l2 N
现在终于删除我的狗屁加速...
7 O" d7 Y9 S8 u. J- E
6 G% G$ M, x: T$ C" x+ U" }+ U3 F/ }6 f9 ], D
. n% I# J6 c. F j
|
|