|
|
食品车:
1 c# b' ~2 X- O. P: Q尾翼:
6 y: V5 U2 t) J1 J4 B. M# _0 ~# W+ l' B; w
代码:
3 J% V4 A% V9 pCWndAutoFood::CWndAutoFood()
5 |- R+ o Y1 X! E{: b7 n, v' \% l8 r) S
m_pItemElem = NULL;, Z" S, x) f, l" w' N
m_pTexture = NULL;: M6 s, c$ R% B8 U4 r- [; F" B( e
bStart = FALSE;4 e- a2 ^6 p% _( Z( D
}' |1 k9 _# s. V& n
9 X0 Z% p* k2 @
CWndAutoFood::~CWndAutoFood()' P7 _5 c& v+ I7 z# w
{! v+ r5 ^6 E/ }% _* y
AfxMessageBox( "AutoFood ist gestorben " );0 I( s* y& R) C6 ^5 \5 l
}* _5 k& O2 {3 F* I
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )1 v. ]8 }& {4 k* E! \6 L
{ o, @4 a9 G& q* S2 m
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );2 z/ V; B! B7 P# w: X# ~0 a# N
}
$ w; N4 g5 ^, y9 z( \; I! ]7 {( Q! s' t* I" e9 L9 q0 k* \" H
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
/ Z3 f- @& I/ ~$ X; ^- j{
4 a- \6 ?& B6 d4 q4 J LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: i% M( t) k1 w/ O3 c4 U CRect rect = pWndCtrl->rect;+ Z) \2 H$ x2 J9 \- `% }
if( rect && rect.PtInRect( point ) )$ W7 V, L: K$ N6 @
{
, v- e7 R- T5 \7 C+ t% B& t CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );! q/ ]( @" e& D: s' B
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )) ?+ Q: I& e1 } L; ?6 W* G- r
{- F' u* ~$ }6 e( K- Q
if( m_pItemElem )( N8 O$ ~. s1 c! m9 y
{7 q" ^) S8 I- M1 t) I0 i( v' g% [
m_pItemElem = NULL;
9 F9 Q, l" [. d }3 Z" Q8 E; Q5 W/ Q$ u/ D& [
m_pItemElem = pItemElem;0 d+ M; y- v) k& P- U# P
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 C4 e1 W, ^% ~ }else{ ^' d {* @7 M- _
SetForbid( TRUE );# A# t( ?4 `7 y6 _# g" A5 D
}9 D% q2 Z( N D( c% }0 w0 R
}else{7 t5 b- N6 R7 ?0 ]
SetForbid( TRUE );& ^5 X7 M! [- r" H, }5 H, J. a" R
}& A- ~% S( e# s3 l
return TRUE;
4 |! {% {' d6 L" w, R1 y}: o3 |# l+ E; s
& G/ l+ t3 C" A: R4 |0 Z
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) ?1 M; R1 F) j2 L% E$ b
{
% K* e6 Q! P( e. Z4 A+ G6 { switch( nID )
) X W. u0 A: B4 i/ I: O {
1 b" ~( k5 t N. g2 K case WIDC_BUTTON3:
( z- r a$ r K, |; O- h7 E {
* p, }! I$ o$ [/ j) M# D bStart = TRUE;
) l. u" c) U u' e1 u6 H. r4 I break;1 B( X0 T" }( A6 a6 x$ O, C4 u0 ~2 q' ?
}! g L3 H7 T/ l! x
case WIDC_BUTTON4:4 ]- f8 [0 h* g9 G3 l0 D
{9 E$ H" c* c9 L% M" e* r
bStart = FALSE;" W* o" T9 i8 ^
break;
* R5 M3 l( A& J8 _7 f9 m }
# D; {" Q; V8 }& X% x0 m }) `5 k) f7 A( b0 b2 G" ]$ E
return CWndNeuz::OnChildNotify( message, nID, pLResult );
. V0 i* M; z1 y9 ^, d} ! {+ V; I: T- h4 A8 w e) _6 Q5 u6 z- j
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
( R4 J+ @" p5 g' G% H+ ]# ?. B{
: y) u6 f: `: c# @2 s" g CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
" m) N$ z( O) {' H- q6 G if( bStart || !m_pItemElem )
6 [1 n4 t# q- ^ b9 O {. V, |3 r- Y) B2 U
pBtn->EnableWindow( FALSE );
* d# o3 `, H6 ^3 C% O2 w3 _ }else% x# F! }/ Q2 ^0 T. v4 _$ D
pBtn->EnableWindow( TRUE );: l- ?; w D) [
if( m_pTexture ); ?" A5 T% q2 i" G, q5 E0 X: J; S
{
7 g/ [; T0 E! ]5 [; R LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: w2 ?/ B: T& J+ A1 f5 U& z0 U4 e
if( wndCtrl && wndCtrl->rect ): W6 p; c" M# G( ~3 K/ @( L
{ `) i1 J0 b' b0 n2 c' Z4 P8 c
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
! L: r5 R- m) w; A8 Y }
8 A& o" z; w. S6 }) q( x }- [5 K7 B1 L8 F. `
}
1 }4 k: s- O1 P0 W$ H* H
. w+ i- h/ y8 e! X2 |$ {, pBOOL CWndAutoFood: rocess()& h0 a3 ?7 H+ }" S* F
{
9 ]2 I: h" o. ] if( bStart )1 X0 U" w; T3 X* y/ j/ N) r
{
3 G# l2 I! |( y+ h) D w if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
1 F7 y$ `3 ^3 l/ x" i' ^& V1 n% \& @ {
( H( D- R; r- E, Z5 Q. W if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )0 f5 _" d$ ~) c4 |. k3 s
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );5 N: B9 C* y) K- W3 g) r
}else{2 k. q& A1 w2 r+ e z' F
bStart = FALSE;
) p: c1 j) \5 N m_pItemElem = NULL;
% u( m% T3 X% C% n) \; `) j0 Z( H }9 a; b* \$ y/ b* g
}3 X9 V/ E8 @' W- u: e
return TRUE;+ L f, U8 |; N
}
& L8 o; `5 H5 c, S3 R) M! i, H: Z4 }1 @, b/ ?% {2 d% k! o4 f
登录视频废话:1 P1 k* T' ?" M8 h( s: n1 V! j
尾翼:
: ?$ j5 G( s& Y; ^$ v" C3 f, w# m3 R/ n% [0 L* U! ]
代码:/ P$ R4 ^3 C/ B8 @* I; ]- o4 G
( B4 Y( Z& S d9 Q) I
void CWorld::SetLight( BOOL bLight )
8 s" F& X* H* s: Y0 ^ U; ~6 Zdurch
0 C: ^0 v0 R5 hCode:0 i9 T% {9 U) H% @
void CWorld::SetLight( BOOL bLight )
) I$ o" B! P- H$ ~{0 O8 Z* ?# q- A2 \. _8 S
//ACE("SetLight %d \n", bLight);! i; ^ g" a9 n+ p/ [
- y$ m/ @3 A% X; b( X( Z
#ifndef __WORLDSERVER
4 G. f+ R4 ?# D- {" T9 X4 L; H. K0 h DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
1 k+ z4 Y! k" U1 \$ F4 | CLight* pLight = NULL;& t3 z+ e4 u' h! Q$ x( D; P8 d. X
; k6 Y V5 U9 A% P: P
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
/ _, z' W8 @7 O+ E; p
0 h; f+ a: f+ a4 e5 d/ l pLight = GetLight( "direction" );7 I2 E' y7 p0 P: J+ B# g0 ~* m
2 y: ?8 ]* Y: t- D7 k
#if __VER >= 15 // __BS_CHANGING_ENVIR( _3 t6 J; e: z3 G/ T" v9 L7 R
if( g_pPlayer ){
- }/ d% a* b" b ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
1 R& F7 P- Z9 _" N if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!" ]( ?% P: O& t' N, k! C
{
, {; R- q+ g& `' ^& i# R. y) q if( pLight )
. X( r3 P4 A! W" A2 W {
; ?: y% U, T0 E9 u$ h+ ]3 P2 k pLight->Ambient.r = pInfo->_fAmbient[ 0 ];" w- E7 D& @5 D4 [! \
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
! \3 t) l( `; ~$ M+ F pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
/ D( C; p9 g2 x9 e2 o: e x) E/ H. N2 ~( }: |
pLight->Specular.r = 2.0f;
. t& O" F& y2 T; C& Y! } pLight->Specular.g = 2.0f;
5 g% ]4 [' Z6 y, c Y pLight->Specular.b = 2.0f;
: N: f7 k$ }% n, x. Q
8 R- A9 B% f- A( M% T7 o pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];7 v* p! }+ x& U; `: p; b) E- o; {/ U
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
3 } a) [6 S1 b) w. S" x pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
+ O0 P2 c6 c# P {# E 8 E' C: ?2 c1 {! b
HookUpdateLight( pLight );
" J* G+ ~# b; l9 U4 V7 @+ M* O6 B+ @2 Q8 _' s
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 m' ] K7 B4 t8 m4 `. r$ o- e
( H8 e2 O, a$ @ pLight->Diffuse.r *= 1.2f;5 R1 \% ?& o0 j+ g; r% D: T
pLight->Diffuse.g *= 1.2f;% z$ g) O, y7 {9 |. Z# o1 u$ d
pLight->Diffuse.b *= 1.2f;
/ i# s1 ] P2 P
' M' o: u) O* `, f H$ g2 ` pLight->Ambient.r *= 0.8f;9 K, e" \; Q& _5 _7 v
pLight->Ambient.g *= 0.8f;
- S8 i( x- q$ R pLight->Ambient.b *= 0.8f;7 D; |5 {& |+ q9 l4 ^; I3 H
8 V4 t* c9 y3 Z5 A, o1 B& j9 J
memcpy( &m_light, pLight, sizeof( m_light ) );8 C1 h- D2 y f5 M* c1 l$ F
2 N; P& i& |1 y) m! I |
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
' K ?6 F; g6 g1 y6 y D3DXVec3Normalize(&(vecSun),&(vecSun));8 K% v3 f) E0 }( v+ K6 W
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 x% t( d7 `& v ^ pLight->Appear( m_pd3dDevice, TRUE );" W; O ]( v" q" }; b' j
4 U; `+ _2 \+ b6 g) ~ DWORD dwR, dwG, dwB;
7 ]: x+ U9 p3 v2 l( k1 I5 X dwR = (DWORD)( pLight->Ambient.r * 255 );
8 G! _6 V) I) z8 R Q7 Y) v dwG = (DWORD)( pLight->Ambient.g * 255 );' U3 t6 `( z; N: C7 ~3 A
dwB = (DWORD)( pLight->Ambient.b * 255 );3 C1 o) p. F. T* r3 H/ R
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );' |( c' T$ T$ e* Y3 M1 r
}
K9 k/ q0 {. }3 o$ N }; J+ H' C! `7 C8 S. M% f
}
# {$ ]. V- i- B else
' o, V* l$ b" u3 H! d* G3 d#endif / K# V& j) p4 A5 W1 [# K! P
, K$ v+ b/ B, r- l2 @9 [) I) q7 p if( m_bIsIndoor )2 [4 M' t! w: K f
{; m& {. q, ^! o: s" k
if( pLight )
4 Y# e' g! B, k, r& C7 N {
, k1 H" _5 n: ^" _' s9 W5 H* ? // à??μ oˉè* y& Q9 j8 S9 N% w4 c3 f3 L
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;: d1 E/ O- P' B
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) a( n2 Q' g) ` pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
% K ~& A! u4 d
' p3 x! z5 n7 O3 d2 A% u7 M: I- N // oˉè* ??à? 0 h. c9 P; H! W$ _0 m7 C* Y
pLight->Specular.r = 1.0f;4 c. p6 I2 i- C5 J# B
pLight->Specular.g = 1.0f;: A" ]* Y9 x' ?; g P$ i4 X, m" z
pLight->Specular.b = 1.0f;
* T$ X. p6 W& `. x( S' j7 T // àü?? oˉè* " n5 ~8 r5 C/ z: [0 \1 i- o2 m
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;4 o; ?/ \) y9 O$ A& f2 i
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;5 x% k+ }( u* @
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;4 c# p- m5 H. E0 `$ h
/ D% R$ }+ y( W3 S: \ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.( z* }3 a1 G7 ~8 H9 _
{
; b9 n( I* J s. ~$ { pLight->Diffuse.r *= 0.6f;1 v- f# G+ z9 m2 y
pLight->Diffuse.g *= 0.6f;/ |+ P& P0 ^$ b' j# L
pLight->Diffuse.b *= 0.6f;
1 E9 ~2 d; V- O8 ? pLight->Ambient.r *= 0.7f;
$ B% P# }* K8 T9 R$ i pLight->Ambient.g *= 0.7f;
8 S* X( J6 u) p: Q) ^- e$ [8 V! p! e pLight->Ambient.b *= 0.7f;& b2 t$ g& P9 L( c
}9 `8 k3 Q5 X3 g. ^3 b
6 ]/ W3 z }$ B6 S( M: a
#if __VER >= 15 // __BS_CHANGING_ENVIR9 y6 n7 R3 L! U
if( g_pPlayer ) u4 w1 K( T+ f6 L' ]1 h$ s8 w1 u
HookUpdateLight( pLight );
# Z, A; V4 ] @; W#endif
6 X8 j: k4 g( U7 d/ t! N) l' T memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 c; t1 G# w# }& f5 Q" a( s3 v+ H( M4 F5 t: t' {
pLight->Diffuse.r += 0.1f;
( {" ~ I( ^$ Y* e, ^% ~7 ] pLight->Diffuse.g += 0.1f;2 H7 ?& \+ I. i6 q
pLight->Diffuse.b += 0.1f;" k# n. K6 h' C
// oˉè* ??à?
) U3 Q1 w7 H' t9 V' z1 y" a, d pLight->Specular.r = 2.0f;
R' E+ `. U5 \* P T8 ^ pLight->Specular.g = 2.0f;
; s+ i) L4 ]; N pLight->Specular.b = 2.0f;3 o7 S# s+ M1 P3 U; \5 m: _5 L
// á?oˉ % F$ l1 K! l7 W2 P
pLight->Ambient.r *= 0.9f;
! ^# T( c0 r: p/ l5 B pLight->Ambient.g *= 0.9f;& ]' P2 |: v6 [6 P- j# z
pLight->Ambient.b *= 0.9f;, v! z, E- L% R
# \- @# c9 @+ |* x# ^ memcpy( &m_light, pLight, sizeof( m_light ) );
/ e& B& |) U9 |$ m2 Q# U) R! v9 M 9 e C! h1 i* W, O9 h
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
6 v. C. N. X( R& A3 R pLight->Appear( m_pd3dDevice, TRUE );! u) q K4 [2 x4 ?6 q+ Z- G0 |
. |- W; x7 W5 R0 Y- R3 J DWORD dwR, dwG, dwB;
1 r6 A- W, y" N+ A/ M& T! e dwR = (DWORD)( pLight->Ambient.r * 255 );
# @( d! Z& ^& m n# A dwG = (DWORD)( pLight->Ambient.g * 255 );
7 d% W- \3 K, t& a- `$ p dwB = (DWORD)( pLight->Ambient.b * 255 );
% ]3 ^+ @* p$ S dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, m$ i3 P+ J: T8 L) T2 b- P3 @ }
' B1 ]) K1 g5 l( C }
% L% h- v: R! R5 y) b# }& l else
" r$ ?4 o0 X' ^1 u' i {( N0 ]( v. [3 v. v( L
if( pLight )
( g8 K+ }3 x' G* L6 K5 ^4 s {1 Z1 K2 ]& A' S7 a
6 c/ L9 E6 X5 e+ ?" H, \- D$ M1 ^
int nHour = 8, nMin = 0;
! T0 m1 E5 g( p! W* ?( ^! P5 o7 ^% H #ifdef __CLIENT1 e- r; x2 q! m
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
) H/ s j, S& J* W, m, E nHour = g_GameTimer.m_nHour;
+ }# q# m2 I1 M5 d. o) D nMin = g_GameTimer.m_nMin ;* A5 V! \" c* l) V7 ^. y* [
#else# d3 }6 _/ J/ U v: L/ e& G3 K: N4 _
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
2 L# }/ u$ x* S S if( m_nLightType == 1 )9 Y! z( A' m# H$ R& X
nHour = m_nLightHour;: v/ c) q Z- W- G, P5 `
#endif, U3 Z, E w( N- f
nHour--;
0 L' E( o' l( I if( nHour < 0 ) nHour = 0;9 M& ~( d. V8 c1 t0 e" r
if( nHour > 23 ) nHour = 23;
! A" L6 D) {; I0 ~8 ^# d1 |
! y+ |, x; P! @$ @1 @8 d. Q6 d //if( m_bFixedHour ), ^, a, x8 ~) h4 j6 L
// nHour = m_nFixedHour, nMin = 0;. P) Z) A; N; t& T D" G
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 `( M2 P, Z- n+ I; R! h
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
! k3 f2 G1 A$ V/ i; ^' z7 }" @/ u; U
//m_lightColor = lightColorPrv;% g, `" D' }% I1 x) h6 |$ h
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
$ v q, B% X8 W, F7 \) W% u lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
/ @0 C6 h* {0 Y- t lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;" f3 n; x; s) U# U1 U3 }/ @4 ^
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 Y3 K3 m7 j# i1 B( @7 q8 b0 P% m
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
5 n3 l% e) g4 k' F# x. X lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;; c& C3 c- S+ A* T; q, t6 \
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)9 y5 n: W: o, m2 ]
$ n2 T, g+ @2 D4 z4 j" [$ \$ D
// à??μ oˉè*
3 O4 [ D. G; j. @ pLight->Diffuse.r = lightColorPrv.r1;/ b" U J! |& ?2 M
pLight->Diffuse.g = lightColorPrv.g1;
; o0 S. D' k* t, C" T* O pLight->Diffuse.b = lightColorPrv.b1;( F k4 V' Z5 D2 O
// oˉè* ??à? 3 f1 a: e5 Q" @3 U& p9 o; s# x- K
pLight->Specular.r = 1.0f;
, V7 u- w/ L5 j1 ] pLight->Specular.g = 1.0f;" ?2 n* `4 p6 b2 B& V
pLight->Specular.b = 1.0f;5 _2 }& S% j4 |8 Z% }; _- k
// àü?? oˉè*
; x4 L0 t9 @( i# O: Z- H pLight->Ambient.r = lightColorPrv.r2;
W4 t( ?" `3 Y% t W pLight->Ambient.g = lightColorPrv.g2;; J8 a5 N) e* i$ ^
pLight->Ambient.b = lightColorPrv.b2;- U- I' |; @1 k5 o* ^1 y& B0 ?1 H5 P" z
1 h- q2 q4 F: `, d J4 n6 U) G
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 Y8 E+ N; X5 J% Q$ {
{
# Y$ f- g' f, r4 l$ R pLight->Diffuse.r *= 0.6f;9 j' B% z, ~6 `4 m, i ~
pLight->Diffuse.g *= 0.6f;* w q4 Z; s4 D) L, O/ R/ L/ z
pLight->Diffuse.b *= 0.6f;
7 X- T b. S1 o2 p pLight->Ambient.r *= 0.7f;
3 @# h* P/ {; f pLight->Ambient.g *= 0.7f;1 g8 N. A0 e$ U C& v
pLight->Ambient.b *= 0.7f;! i+ u7 z8 `6 d8 u! n
}
6 E7 K$ g! i( E
5 l% B X5 k+ \: w1 H$ s! p6 x% ~#if __VER >= 15 // __BS_CHANGING_ENVIR
# {2 [$ F) ~( D if( g_pPlayer ) C8 l) s6 n: @0 \5 C( }2 M
HookUpdateLight( pLight );
' P, o. V! A3 X' @: f- T#endif5 L& ~ m% q' L6 S
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ Q; i/ c/ v* W# ?: f- J- D" r6 P) ?1 I7 r5 r# ~
#ifdef __YENV$ ^' {% f0 a! r M* q+ N
pLight->Diffuse.r *= 1.1f;
) G; @7 m- F5 ~. G pLight->Diffuse.g *= 1.1f;
( u9 ], c6 h, Y! l; i% r7 d pLight->Diffuse.b *= 1.1f;1 @2 U9 T, {9 T
// oˉè* ??à?
2 }. F4 d4 a: a9 e4 ], u pLight->Specular.r = 2.0f;
. E+ B: O0 j9 @" P, K pLight->Specular.g = 2.0f;
# Q" u& y$ r: T8 }( x pLight->Specular.b = 2.0f;
3 x' M+ v% p0 M) ? // á?oˉ
% I' R. A x7 b S% `0 A pLight->Ambient.r *= 1.0f;! p9 U6 y5 T% T0 J
pLight->Ambient.g *= 1.0f;$ V, s% o8 h! U4 }" t
pLight->Ambient.b *= 1.0f;- q1 X* {1 Q( ~7 }4 ?! U( T
#else //__YENV3 p; C+ S3 b- w }. S
pLight->Diffuse.r *= 1.1f;
- P8 F& R3 o0 g: e* B4 W" z# d pLight->Diffuse.g *= 1.1f;4 T% x" y: ~( O5 K) a
pLight->Diffuse.b *= 1.1f;. I1 f# {) q5 G! w- R6 A$ A) [
// oˉè* ??à?
4 P3 T4 t0 ^: c; b4 W$ b pLight->Specular.r = 2.0f;
& v! y4 E1 `5 o/ ` pLight->Specular.g = 2.0f;
1 q/ F* b# K: ~: _/ ?' X4 V! n0 x pLight->Specular.b = 2.0f;* @9 w; ~% ~/ Q
// á?oˉ - \& K( n- ^+ M* e4 P$ h1 d
pLight->Ambient.r *= 0.9f;
: P% p7 R6 y5 G1 g; x J pLight->Ambient.g *= 0.9f;
( B) [* m( W1 C9 P7 _& Y$ V pLight->Ambient.b *= 0.9f;
% D9 C8 r. c E! E#endif //__YENV
# y# p4 X+ X# g9 v3 z& Z3 m
& V1 t& e" i* L( K4 U# u8 ` memcpy( &m_light, pLight, sizeof( m_light ) );
* v, F! y5 E6 i* w9 p$ J& J; ?4 l ! F. v$ j2 t1 _' C4 }+ W
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);: l) _' I" t, o8 p( D
D3DXMATRIX matTemp;
2 [ w1 c( Z9 d) n9 ?( Z. ]* O static const float CONS_VAL = 3.1415926f / 180.f;
1 W) A1 J Z( ]9 w, C7 d( L/ F# i5 Q9 w# W( ^# t' i
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
1 x' |, A2 @ c8 { D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);. p5 O) I H: A" s: s
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); . {( @8 m7 d5 M6 a* a% T3 y4 m1 T
pLight->Appear( m_pd3dDevice, TRUE );7 M7 e" E) S P5 `
" a* b& p* O( g; A5 X9 C
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% f" b* n. D1 j) K8 b* P% S // D3DXVec3Normalize(&(vecSun),&(vecSun));+ x6 D1 {6 ?8 j E' g7 @
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , T5 I! \ K+ d" g+ r) i, s4 B
" }8 L' P( i. i" u( w+ Z2 i/ m
DWORD dwR, dwG, dwB;
( g. `+ N: r- G0 n) M: j dwR = (DWORD)( pLight->Ambient.r * 255 );
) e6 l. ^6 S! \3 K0 c dwG = (DWORD)( pLight->Ambient.g * 255 );" P+ I& R2 v) S" T$ G. i
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 U* |2 I( j5 v5 |' C' j% ? dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 5 Q% a5 j7 v f& e0 L
}
# S7 _+ j$ T! o& \& T; u3 S7 Z }5 {6 b. m& l7 V8 F& v
9 k& q6 M9 _% V7 s/ G m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );4 M% H Z' _0 _2 h6 b+ |, b
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) );" X, B- ~* \$ z7 e/ h2 n3 v {3 K; H
::SetLight( bLight );
- Y9 ~( n2 `. v$ T
2 S9 x, @7 d) ] W& v // ±ao? ?D?í???ó á¤à? 1 c$ J( z8 W! W/ q0 b
m_pd3dDevice->SetMaterial( &m_baseMaterial );* z5 e4 \7 a- U) p* Y
( G- y" Y$ v4 h/ Z7 g3 q) N
#endif // not WORLDSERVER% m+ a0 Q& g5 P+ Q" |$ c+ z3 r
}1 ~5 W [0 J$ i9 s; f8 p4 g4 A u
并更换9 N( F' z& L) ^2 x* w# `6 V: K
Code:" R, j' h2 l# x* m/ d
__FLYFF_INITPAGE_EXT
. u! m$ C6 }- e* t定义 K# t2 _; B. e B) |& c4 Q& P
3 c. |% z. [- \: y( W. L
9 n% `% A. l9 B) r/ |/ F
+ y+ L' ~+ S' d% |5 z/ Z! [
7 [& z+ y& k# g! U( q4 w, I
现在终于删除我的狗屁加速...
$ L( t' ?) V* @" _9 ` F0 L6 p# Z! o8 l
/ h8 M2 c( ^+ p- h C6 O- ?# T. W; T1 ]* V4 F
|
|