|
食品车:, M$ s s- m2 y. U! `
尾翼:+ A, \/ I! Y$ |0 r/ v
5 I r, C1 \% s( \6 L代码:5 Y+ C7 u0 F' n/ O: N% l5 M
CWndAutoFood::CWndAutoFood()
! d5 V. v8 ]) @' h7 _; y{
+ Y0 F# w; u1 R6 { G0 y( M1 M m_pItemElem = NULL;' i7 \" M' l# A5 ?
m_pTexture = NULL;: y9 O( w9 `. q
bStart = FALSE;( f$ ~% j, f# l7 L7 p8 x$ _
}
3 c- [+ L% n+ r8 H0 ?! Y
2 `/ u0 K# x& B% [CWndAutoFood::~CWndAutoFood()
: t# W( l: f, l' O: ~{
' \/ E( d( |3 b- a5 ~& D& W AfxMessageBox( "AutoFood ist gestorben " );& F, v+ I+ j3 x. c5 R. q
}
. U6 } t6 c; h( s) g; h/ gBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )8 _. F& E8 S9 t* r$ d# z; ~
{; d& L P1 G% c7 T! E
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );( H3 P( {6 n$ ]
}
* u: F& w: t- ~# _* k3 A, E/ ]6 I
7 G6 B1 t6 A! l4 lBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
6 J8 N, j. L" _9 D{9 b* s- C/ Y( d4 [) {
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );- _: A/ r0 h1 F5 {( Q' n3 }
CRect rect = pWndCtrl->rect;( S6 i* r. w( ^" A
if( rect && rect.PtInRect( point ) )9 Y& e4 s# o# F, ~
{
- B/ I3 h3 g/ q- l CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );+ Q% D/ V3 e7 B' J
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
# p& Q* d2 `8 _ {
4 B6 p1 p/ r' D( y if( m_pItemElem )5 ^' _& i" ^8 M
{
- r0 @1 j) Y% j$ X m_pItemElem = NULL;2 y0 Z6 v* W; q q, V
}
) Q X4 }. O0 c) o m_pItemElem = pItemElem;
m( ]! A1 C# m2 A m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! R( b2 z, p4 M" L, ~ }else{
+ E' Y# b# M5 W/ V9 R% r SetForbid( TRUE );" h' H7 E: }8 O& f* H
}3 ~0 n- i% y# ^% q/ T+ y$ y
}else{- Y6 z% c. d' k6 j2 b
SetForbid( TRUE );3 U" W6 i/ g% ], S) _3 ~
}
3 K" f) X S9 h return TRUE;; n! Y* W5 ]/ J5 t% L2 S
}# m/ e- D! ^( g2 q4 d
4 F' R/ m" d4 J; a! f; F
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
' y( }6 i# ]* ?! L{: N4 s P6 y% X1 X/ `9 W6 {7 F
switch( nID )
$ Q4 Z- N3 t0 v; s {' o! f4 X! ^* J: g; g( a; J" w$ a
case WIDC_BUTTON3:# j* s: t) I0 p3 Z1 q. K
{
9 G! k, T6 m: z# l bStart = TRUE;& L- L3 P7 O8 J5 ^2 ?5 \$ h
break;
8 Q( o3 J7 ?# i5 e# W& [3 u. p* ]" G }
) A. |2 Q4 k. @( S9 T case WIDC_BUTTON4:6 L. D! C) b _/ X, m5 b5 \9 J7 B1 f
{6 a7 B: R* J9 t8 r- R! q; t! H
bStart = FALSE;4 k1 o2 k" p+ E+ g3 ~% e) u% ?
break;3 `3 Y0 w( W5 l5 s5 a5 y$ v
}
# {1 }- P1 J( H% c" C7 \% w5 j }' W, A c' g# i; @/ q- U7 C2 ~
return CWndNeuz::OnChildNotify( message, nID, pLResult );' s4 e; e, s, N9 }/ z) f) S
}
' d5 ^- W0 I: N4 l9 M3 Evoid CWndAutoFood::OnDraw( C2DRender* p2DRender )2 E$ V. p, T" A& f% m, f% i2 k
{
& a6 ~3 b7 m4 \9 h/ m8 c CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 i+ v1 N; T/ R/ l' `$ n if( bStart || !m_pItemElem )4 O9 i& r6 x' Q# b
{
* G5 Z4 k% _6 }% y% o pBtn->EnableWindow( FALSE );7 [" X/ G5 d6 o9 z' ?% L6 P
}else
6 X0 g; B% v+ h6 N6 R8 k, n) d/ s pBtn->EnableWindow( TRUE );+ B$ j9 G! d+ I2 {" {" m
if( m_pTexture )" J# {% ^7 b/ \
{
9 p0 \* a7 ]' ]( j9 t LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; W. f8 H D. {8 k z: _* j
if( wndCtrl && wndCtrl->rect )
4 V6 G7 p& } d- w& t {5 M7 h4 H7 y* ?0 H- r6 l* f" |. v
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
. b: I( v5 }7 @% M4 B) d- T }
; r1 o% u9 g5 w5 o+ s: N( [ }( E( }) p2 B' f P" x
}
: |2 o6 \! g, o6 f l4 p# H) J, C; Y h& S$ H' k! p
BOOL CWndAutoFood: rocess()7 z$ c: `! j* x/ m8 Y% ^
{' M1 m. r m( l' [1 c* i# ^
if( bStart )
% ]: B4 m' y. A3 H {: e0 X+ b" e! m- n
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )* s6 M$ i9 S% D$ c
{
! {" x7 [- j' H& y0 B# `! v" S5 K0 ~ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
/ j6 c% ?- b1 ~ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
_! y. S+ u6 ^: X }else{* q$ v4 K+ U* O% C0 g
bStart = FALSE;
& \' K5 n* A$ f$ s. { m_pItemElem = NULL;
2 e) u- n3 d8 Y# Z! z. m }
- r8 |- w% r) I( }! q! r }
V* x3 G+ e% }) s8 t return TRUE;
' l# j3 ~3 [& w/ T6 b$ } u8 b}
1 i1 e: V/ ^# u. T" M* e, b
3 W1 }6 |& Q4 c. A4 m/ @" C) ?登录视频废话:
" s/ s5 U' H1 G- v尾翼:
; X: @' ^/ E6 s$ P4 C t( p/ a6 V; Q0 j$ k5 {" d, h
代码:
4 ~% H9 {! b9 L% \& `& M
( s5 f+ O: ?+ \2 Zvoid CWorld::SetLight( BOOL bLight )* s2 p2 @- c6 {' S, D
durch$ Y# @! T7 A- V$ j3 z8 I
Code:
4 l3 h+ v. ~/ ]. t$ q5 v3 |void CWorld::SetLight( BOOL bLight )" [. h7 ^$ m' P) l6 _; R
{6 R4 t9 O* C: l* f6 d9 `& [. B
//ACE("SetLight %d \n", bLight);
" D% t: ~& f7 a0 B3 |
( b8 S) l7 g) i: E#ifndef __WORLDSERVER
% t( w! r) h* A3 V; `) }& a% H DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);4 k* |' ^* w- H$ A1 a+ s7 q
CLight* pLight = NULL;% X2 L4 E$ _5 R, k
, ?% C _1 k c. H- U D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );, e& I( e& B" J1 z0 a5 k
: v7 f/ U* g% I% X3 G; ^
pLight = GetLight( "direction" );
, E& k: j/ j/ |5 \$ Z9 P
) j* t* V2 Q# p4 j#if __VER >= 15 // __BS_CHANGING_ENVIR
( s1 j' G. h v$ W5 { if( g_pPlayer ){
$ }: z- a. O7 d- j ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );( ^" Q1 E/ }6 W
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
T5 L% m3 y+ L! ? {! l) }0 y! b7 o9 [: g, r( G
if( pLight )
& w7 ^$ ?+ M4 x9 C {5 e. A) m) q! H0 v- ?3 T
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
. ^( v9 h( n3 S3 S pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
2 F& L) r o# f% H# m1 X* E pLight->Ambient.b = pInfo->_fAmbient[ 2 ];0 Q* ?3 ^! o7 y$ \9 E! B b, H2 w
" t N m: V) i( o pLight->Specular.r = 2.0f;. q" q2 f P3 C. q! J8 V* Z
pLight->Specular.g = 2.0f;* F& }" U2 Z+ b+ {
pLight->Specular.b = 2.0f;2 [5 b& C. E6 l9 @4 n. |4 K
- i; W) T9 U% K7 e3 v/ Y pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
& {4 Q$ K/ O9 B3 C# |5 ^ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];9 q0 ]: ~% R9 T- K# ]/ ^ S, V
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
" d1 j2 N8 r8 w3 U8 A8 I; t 8 _& n; M) E) Z3 r9 Y: {
HookUpdateLight( pLight );
\& q [4 }/ M9 D" j
* g' l/ N; F7 J! {7 t memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& w' } ~, y' R, R
3 }# \, V1 K, H+ J+ C1 a. k: e& Z
pLight->Diffuse.r *= 1.2f;) I3 b# X' e; m
pLight->Diffuse.g *= 1.2f;2 b$ c3 O6 ~) |% Z! E+ _
pLight->Diffuse.b *= 1.2f;6 |4 y6 r. U% m5 v9 t/ F, g
4 B c, D0 }1 |% ? pLight->Ambient.r *= 0.8f;
( {2 S" E" c' T1 |2 C pLight->Ambient.g *= 0.8f;7 i: \2 y3 j+ {6 D) c* S# P- s
pLight->Ambient.b *= 0.8f;( j3 r3 V5 \6 b* W0 L3 Q
; ?; v: `8 z* e
memcpy( &m_light, pLight, sizeof( m_light ) );1 I& C+ b( r5 m
" I/ j. D1 Z: v4 S% d
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
M; t- {4 H; A" l# `0 _- Z D3DXVec3Normalize(&(vecSun),&(vecSun));
! Q5 u; z8 j$ t6 J$ ` pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( T; q' Z, {- x# J5 w4 E1 U pLight->Appear( m_pd3dDevice, TRUE );
2 \' F# F. C4 ]! F/ W8 p* n 8 F, ]) A- O8 k# d
DWORD dwR, dwG, dwB;$ w2 G C" P0 I" I
dwR = (DWORD)( pLight->Ambient.r * 255 );
. ~8 o' c! c" ]1 } dwG = (DWORD)( pLight->Ambient.g * 255 );
. D$ v! X% |" _7 C# c8 n8 l0 x9 R9 { dwB = (DWORD)( pLight->Ambient.b * 255 );
; @: l8 D9 t5 X( l dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ U" p5 r. v' Q
}
G# q& g, f6 m8 T# E; {1 H }. l8 k0 l( d: q& S
}* d. Q" x X9 W! ]
else# ^9 |0 l+ x1 S6 j* T
#endif ' A% ^$ |, ^1 ?* h8 L8 y
, E; M' B# c' j5 q" r9 I4 a2 c# d) k
if( m_bIsIndoor )9 u+ C- M7 u- S9 d: W1 K. x% ~
{2 [2 h d+ g k7 j- c: |, F
if( pLight )# ^5 s. q! S* G2 I% ~+ l3 s2 ?
{
0 d! ~+ Q5 T% [# P+ D // à??μ oˉè*
; x& Q+ n. B& p& n pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
) w: h" w. m/ g2 X. i: F' K' f3 Z% N pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
% L9 ^9 v5 n& A( [- r) R+ G- N pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;2 } F' `6 K3 V5 k; e- p5 I, \
+ t8 z: A z) Z4 c' h8 z // oˉè* ??à?
! ?7 R' r/ a& @4 W' ~7 V pLight->Specular.r = 1.0f;# z8 ?. u# N/ P! a
pLight->Specular.g = 1.0f;. J& H+ f, \- r$ Q3 |9 x7 P: K7 D
pLight->Specular.b = 1.0f;; z8 r1 M3 W6 T8 T9 I- f
// àü?? oˉè* & i1 q# y! @9 G, b: ]3 g
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;# Y9 r8 m. L3 j0 k* T
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
9 k' W0 g4 S, }6 ^! V# V# Y pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
/ i' T: x. @, g* {: G! i2 z$ l
# s# Z7 l/ [' q' { if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.& B, B1 X% b- g0 @( g
{
( ~- A! y: w. l7 p7 X( P) @- d pLight->Diffuse.r *= 0.6f;- {2 o1 p) n ^( k5 Z
pLight->Diffuse.g *= 0.6f;
7 U* e" ]7 }1 [5 C' c; Q pLight->Diffuse.b *= 0.6f;
' Q/ q" s- C' d7 t pLight->Ambient.r *= 0.7f;
( u( r! }7 l t, S pLight->Ambient.g *= 0.7f;7 N) f* F( M' `$ _8 r
pLight->Ambient.b *= 0.7f;
7 x! Z m, C/ f; m2 Q3 b' ?9 q }
% v# M d1 I& ] o% V" D7 I# a$ [1 A/ I3 S
#if __VER >= 15 // __BS_CHANGING_ENVIR
! _0 \: @ V6 e- e6 g if( g_pPlayer )
6 s! h8 ^8 q- v2 x T! m5 T HookUpdateLight( pLight );
' S) a2 p* M2 C! d8 x4 n$ e#endif
! v. S: O, M' o! Y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( _. k" M. {3 d: w& R b: u/ L: F; ~" p% ^, {
pLight->Diffuse.r += 0.1f;+ `7 m, z0 d0 L2 F: E* X4 i
pLight->Diffuse.g += 0.1f;; E& D+ N0 [# H0 B7 M. ^4 `0 O' a
pLight->Diffuse.b += 0.1f;/ A: ~: [. ]( ]+ T7 R
// oˉè* ??à? ; @5 G5 I9 X# e Q& t, z6 F
pLight->Specular.r = 2.0f;$ ?: Z I: Q9 z0 F0 ~
pLight->Specular.g = 2.0f;, p. F9 T5 D# v
pLight->Specular.b = 2.0f;- J. B, z! B* F- v: S
// á?oˉ
+ n2 |/ c7 P1 T+ ] pLight->Ambient.r *= 0.9f;
* S$ |. \" s/ Y pLight->Ambient.g *= 0.9f;! H* Z) {0 M/ ^7 _$ m
pLight->Ambient.b *= 0.9f;
' p0 ^9 p( z+ j$ F4 L3 `( q7 w d" j
memcpy( &m_light, pLight, sizeof( m_light ) );: J, l8 s; c4 \$ i
- N' Y& b w2 h' F- f, N
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
$ W) x- U+ S j9 t2 [. `3 i' Y pLight->Appear( m_pd3dDevice, TRUE );
: B* M O/ T: h5 f" L6 g
2 `, K0 V( D r- K) y) ` DWORD dwR, dwG, dwB;
& {$ M, r' Y! S+ s9 d, J4 U! I dwR = (DWORD)( pLight->Ambient.r * 255 );
$ [3 y0 s; H2 u" S dwG = (DWORD)( pLight->Ambient.g * 255 );
5 F* a7 I8 m9 @2 W4 j, D dwB = (DWORD)( pLight->Ambient.b * 255 );% G* s0 s' J& B$ L! l- W
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" h3 `3 Z0 V+ x, I- y
}% Y9 |+ `. M; x2 _9 o" ^! t
}
5 J2 q# ?. p4 O+ N: V$ l3 a else
% _. n3 A4 c, J7 w {
$ n, |% M$ ~. w+ C" w0 x7 N8 J if( pLight )
8 P# r4 Z1 h+ ^! Y' h; q {0 ]# k+ B8 S" V1 O
8 i+ g+ X1 X7 F( ?( h/ F) B$ ~4 L int nHour = 8, nMin = 0;( X/ m5 s. X# {5 U U6 z* B8 c
#ifdef __CLIENT
; o. M( X# n ^/ B% ~ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
5 F- C# l5 E& Y6 q- Y4 u" E nHour = g_GameTimer.m_nHour;
! v: q- |& |/ o% l! `" H5 z& o8 R2 v) O' Q nMin = g_GameTimer.m_nMin ;; y2 f& u; V" J N% X0 Q/ C4 ^ J% J
#else7 x2 R# ]* z! V9 x0 p
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.5 r% P2 Q7 y% C
if( m_nLightType == 1 )$ ]) M7 Q$ b& z3 f: E9 B
nHour = m_nLightHour;! [" C' q( `& O \! W. Z! n6 ~; f2 V
#endif
) b6 v: Z" J C nHour--;7 A! X4 w/ X! ~9 f, c8 l: y2 }$ B
if( nHour < 0 ) nHour = 0;
$ k/ i' y6 _. U1 O) I$ A7 I if( nHour > 23 ) nHour = 23;% r1 a6 g6 E D0 n6 b; B7 J7 b( F3 D
. \( H# d4 v1 _1 |7 e) Y; U
//if( m_bFixedHour )2 l6 A/ L. e) |* k2 S6 D
// nHour = m_nFixedHour, nMin = 0;+ u- x. m3 g% u
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];' h, O5 C$ R* l% k0 q: X
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
( @4 q9 x3 O+ P; `- H7 c r' K3 ?- I7 J9 N' ]
//m_lightColor = lightColorPrv;: l* x7 n& |, F8 B. L- L* \; c
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;+ k7 z" [7 |$ ]2 y* i* _
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 F1 d" I; G: b' B, {, Z1 _ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# W" B" E2 Q# H6 \1 w8 g8 I! ^
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;4 x- g/ ?. |0 }. O' s
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
- Z: i9 b3 t6 x9 D! Y lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
1 g; I3 m8 G/ {% a // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
: a+ X+ w) o! A3 k5 z) v& E/ G3 O% ~7 O) P s1 A5 V5 S
// à??μ oˉè* 2 G$ s* k: i/ ^% x
pLight->Diffuse.r = lightColorPrv.r1;6 Q0 l- s% Y2 k0 _) ~ N( F
pLight->Diffuse.g = lightColorPrv.g1;, Q8 c( e! n4 x8 x# h2 [, d& G
pLight->Diffuse.b = lightColorPrv.b1;
, D- A0 D7 ~# d3 _5 b0 R* N // oˉè* ??à? % }8 A* P% s6 E# A5 x
pLight->Specular.r = 1.0f;
3 Y0 q c" W' W9 ~" n) A pLight->Specular.g = 1.0f;6 j/ v3 Y0 ]$ ^4 o- S4 c* {9 {4 W
pLight->Specular.b = 1.0f;
" C- c/ ?' r. { z$ _% }3 y! Z% K // àü?? oˉè*
$ c# h/ `4 e2 a9 D' h' |% P pLight->Ambient.r = lightColorPrv.r2;
4 r/ u5 r8 C# z O; ~ pLight->Ambient.g = lightColorPrv.g2;6 R+ R' m% n1 f& b8 S6 P
pLight->Ambient.b = lightColorPrv.b2;' m* P' Y& T. v7 b* i5 l7 ^
: `! h# B' j' `0 |. \. B- c
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
% `3 O$ H& ^% z' w, B {5 n7 v, S) ?/ @. a: `! `2 c
pLight->Diffuse.r *= 0.6f;2 M; D. p$ o3 \
pLight->Diffuse.g *= 0.6f;
6 i) h/ C- ?5 ~( Y pLight->Diffuse.b *= 0.6f;
# @) h0 [' V$ C9 |/ x pLight->Ambient.r *= 0.7f;$ p( p6 h% U9 R' O9 c
pLight->Ambient.g *= 0.7f;) p. e3 R, v2 ^% w! W9 {5 B
pLight->Ambient.b *= 0.7f;+ r) @- P& R. `/ _2 h9 l
}0 A* C: [7 p9 U r
7 a% i4 A4 x: M" _+ }: g, _
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 i; Y# a# r8 |9 ]& W if( g_pPlayer ); ?2 D6 D/ a0 i. |/ ?- f
HookUpdateLight( pLight ); ( r) S( E; ~$ r3 [# X: N& e
#endif
1 f$ B- R0 ~/ [& D" H# M" e memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! p' C1 t4 A/ F( @
: S$ I) B3 B2 ~! T0 W#ifdef __YENV
, |# x2 ^1 o1 q. o pLight->Diffuse.r *= 1.1f;& P& @2 \5 ?# D1 h# X" o2 p
pLight->Diffuse.g *= 1.1f;8 }3 y. M5 ]# ^, Z3 G' |
pLight->Diffuse.b *= 1.1f;
( b8 ~; P; Y- F' F // oˉè* ??à? " r( J; p9 |- J9 A9 j$ W
pLight->Specular.r = 2.0f;
( a7 j9 ]' ?6 v( I pLight->Specular.g = 2.0f;
# o3 |! t! r; a- F; e pLight->Specular.b = 2.0f;0 k6 t, H9 I$ H7 Y
// á?oˉ
, s3 ]" I1 ]! k) g; h pLight->Ambient.r *= 1.0f;7 l( V8 a7 k/ A6 b" X
pLight->Ambient.g *= 1.0f;
! {+ {) u3 \- i7 \ pLight->Ambient.b *= 1.0f;
7 F/ K- c: y4 A' `" G# S#else //__YENV
& Q, P3 m; k: Q$ t' W- `; I% F pLight->Diffuse.r *= 1.1f;- [4 N, s4 |1 Y( c6 a( J
pLight->Diffuse.g *= 1.1f;( K. H' |) c0 f [5 v" @' ?+ F
pLight->Diffuse.b *= 1.1f;
: i$ v. _- Y9 O" _) s3 \. e // oˉè* ??à? & Q9 z- i9 K* k
pLight->Specular.r = 2.0f;
( J/ ?7 ~; w* n7 P& \ pLight->Specular.g = 2.0f;
" S" p) r* k4 _& v; X8 L pLight->Specular.b = 2.0f;
4 ]6 r( D+ l' J) T ^1 ^7 ^- a, X // á?oˉ $ T7 v2 _( X! ~6 f. {
pLight->Ambient.r *= 0.9f;5 `) v! _. |) J# |& I
pLight->Ambient.g *= 0.9f;
t: j' O; Y7 Z& \; G3 u( ] pLight->Ambient.b *= 0.9f;0 A7 {% Q! v M! E$ W1 f" y) z& N
#endif //__YENV
]3 I' v( D* R/ H" X# H" M; S
, ~, C8 @! P+ q memcpy( &m_light, pLight, sizeof( m_light ) );6 \+ D7 L. v% {! d6 ?% d8 Z/ f
: @9 t) D3 U. p* P# H# X' [ D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
- C( u `! u0 {+ ?: e D3DXMATRIX matTemp;/ G# H# Q$ u6 U
static const float CONS_VAL = 3.1415926f / 180.f;' s) D2 z, L( |/ L
/ a4 f1 X7 m( C! c
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);2 Q# l" d) D/ p% d. h0 I
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
9 n3 M4 {7 i$ W' W" u$ c# o# Q pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); * A/ i7 Z% l/ H4 T
pLight->Appear( m_pd3dDevice, TRUE );. ?6 \0 _# b' t: ?. X! B
, r3 P7 W$ k- D! l% U, ~
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 S4 i" H$ F5 N7 b
// D3DXVec3Normalize(&(vecSun),&(vecSun));
+ b1 l$ |0 N" F1 \# ~ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ! k- R; j4 Z! b7 X" i9 ]
, N: b8 u8 }$ N# L* T: V DWORD dwR, dwG, dwB;
0 B1 r# A! P/ p dwR = (DWORD)( pLight->Ambient.r * 255 );0 Q& F% T9 c: b+ K# T. B; u
dwG = (DWORD)( pLight->Ambient.g * 255 );
* w- @5 {5 h) O6 l0 x1 U9 u: G dwB = (DWORD)( pLight->Ambient.b * 255 );6 V5 \0 S3 p9 I# K# _8 h- k; d, H
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 g t, S B. U' p: w# S }/ y) }( {" j! V6 O' P
}6 e' h$ K% U/ D; Q, v
D9 l- a+ O/ N+ G m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );$ @8 [: q# w0 ?0 e% X5 h( `$ G) m
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) );
4 G/ E, @7 Q# o+ z1 i, l9 q ::SetLight( bLight );
! s& W( F' t* \: I# ~/ d
! X# W; o3 h* i // ±ao? ?D?í???ó á¤à? 2 H( g% H# x+ D( h+ X( d5 y m
m_pd3dDevice->SetMaterial( &m_baseMaterial );; U1 G! s. I, a: q7 P' q: o
) }4 g- Q0 d/ C! b* K- o#endif // not WORLDSERVER0 W5 t! B$ t, s4 N
}2 w) o% r8 k( `
并更换
3 V2 d, O0 {, jCode:1 K, F( P' C8 j$ j1 i
__FLYFF_INITPAGE_EXT
* G$ ~+ ]9 M4 q4 {) J; c9 @7 H定义; K: Q2 y' Q) m2 x# c( c% m
% d- a6 x' p7 D" q
) x0 h: ^/ e7 v* j$ Q
) R, h G! m: A" y! A: g) F9 f9 D
/ W, w! |" H2 H. C; D现在终于删除我的狗屁加速...
' v, ]& D8 K. _+ r, B5 X$ {; i8 J6 A+ o
& m1 G Z5 h5 @; v6 F; d3 ^# J5 P+ F) b3 j* L8 C- d: ~
|
|