|
|
食品车:
; \5 F3 } ?0 L尾翼:
. @+ D1 |4 I; x+ p* L- P) R9 s1 c& l+ Y8 L7 _( g& N
代码:
0 i0 l2 ]5 p8 V) E9 d1 f7 ~CWndAutoFood::CWndAutoFood()
/ ]3 B3 [1 i' [7 K{
8 u5 c& G5 o( S% p8 B m_pItemElem = NULL;5 z L0 W. T3 N& `6 w
m_pTexture = NULL;3 s9 O8 X( m' A4 d8 I6 ~+ `" f" Y( z
bStart = FALSE;* B9 g* D8 h# y" ?
}
/ b7 B3 N4 X, i2 D' Z* F, @* Z+ N1 \3 a' Z, j
CWndAutoFood::~CWndAutoFood()
* X% W. f; `$ j" J1 a5 J{
2 n y# i0 B1 E2 V2 }$ q AfxMessageBox( "AutoFood ist gestorben " ); g5 C& Z" {, S, ]6 m' _
}* s) q, _! f4 X3 k! n* y5 w
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
) ^$ F1 c8 h. d' r8 N' _5 U{
0 O0 b. X0 P+ i return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );1 P8 R/ Y/ K( u7 E# J, W" R
} I; h, D# ]8 ?" E; K
. ?0 C( T7 C7 s) u% Q% n! Q6 j
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
; c+ L4 |$ a: h{
, _+ e$ d& U/ H. o5 W! [$ y. g2 ] LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );8 V% o5 ]6 ?, ^- X
CRect rect = pWndCtrl->rect;; L0 F% A9 A5 q; l6 S* m
if( rect && rect.PtInRect( point ) )
; I; T6 S0 `1 A' z. p {
! m' W g. z( M) L! I6 I+ F& { CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
1 L* E- u- X) r( m- B if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ). D! h* p3 U, N2 v7 C
{/ l4 O$ w& C7 O& i. C5 ^. p
if( m_pItemElem )
( p: u* B: h" C8 G! {8 ?, s! a4 s {
* q$ `& M. e& t7 @1 ^% t" W& t m_pItemElem = NULL;
- H+ K6 H- \/ I: @& d }" v( N; z/ |* I% e& |
m_pItemElem = pItemElem;
; U. I/ }% ~% J& j# M m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 S1 \8 R: {- U }else{
: k6 K' h7 H7 @: G SetForbid( TRUE );3 [5 _' T9 k' h" y# ^& D
}8 p; p. s+ {$ x* s& b
}else{: n' g: V% v/ S6 C
SetForbid( TRUE );5 ]6 V% w2 z3 Y! b8 f$ S
}
9 h3 B% u3 @! W* E9 W return TRUE;$ z0 s+ T! ~7 w$ p0 a" u
}$ x4 t1 {3 i! D9 @0 m& `
: G" y" {2 [" {+ W, h o8 p/ D( xBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
- A+ _3 G0 c* n( T: G$ P5 |{
' q- }/ O# i& t2 x3 T1 G switch( nID ) u) k: [) w3 R3 B. a* I
{
# h3 Q4 K9 Y& o. w3 Q case WIDC_BUTTON3:
' R8 }, O& H3 O3 L. D+ J6 z {6 r5 O" k* X+ Y
bStart = TRUE;% p G8 z; d, |2 |
break;: e2 u. Z" m* `# R \6 X
}
) U( v9 J( ^+ }2 u7 n, h case WIDC_BUTTON4:" e5 I/ z+ b% O2 Q
{
3 k* A- o' e4 ~ bStart = FALSE;; ~0 v) b( K) S2 H+ N$ j0 v) y
break; h/ U* V. L4 o7 b( w$ t. j! L4 N$ |
}
" `" _& ~! O6 a$ k }5 a; l+ w, ^5 f# d: a: L7 x* O
return CWndNeuz::OnChildNotify( message, nID, pLResult );: I! N2 n8 Q" e; Y2 i
}
2 x4 Z @* n( J6 v4 f- Evoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
6 L# g& a2 U8 j2 {- C/ _{" j! B% O7 Y- T; U7 ?
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );2 W) c" _+ ~" m$ o) t3 z
if( bStart || !m_pItemElem )
2 k% I4 J) U4 ] D {
1 t& v# E8 F$ e) k( E+ |& u2 Z pBtn->EnableWindow( FALSE );
: J# u5 r3 s* x+ M- { M }else
2 j# X! v5 d/ n) Z8 y" | pBtn->EnableWindow( TRUE );4 M) h9 |) H+ s" \, I
if( m_pTexture )
5 I/ i) G: D6 w5 ^( D& `9 ]- l! y6 y- H5 j1 L {
. F- @% f& `+ W* G LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );, {1 V3 [7 P& ~- p( g- p
if( wndCtrl && wndCtrl->rect )
# O/ t6 p2 T' R6 }: V$ j) D {4 y2 S* i1 ^! F: N
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );: h* S% s$ ]5 [% {3 G
}' q. q7 s) E% D
}6 s: F8 N) u' _* k/ J
}
- m5 t9 P1 Z7 S
y, @8 y8 R X# G) u! ?/ QBOOL CWndAutoFood: rocess()
% h3 Q* q/ Z/ m* `' K* s( p$ C{
) p8 b* s9 n4 g3 W5 q" q$ \3 q) f if( bStart )
9 Q- E7 e' l2 _8 K7 A, a {
4 }2 F5 I" E3 V) c. U8 J if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )0 s t0 t* B% r3 v; R; r
{
( q; U5 X/ b4 ?9 D7 L H5 t4 \/ 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() )( u+ u7 n! {* o& {, _5 \
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
/ E: u# _, E9 R9 V }else{" H- s0 p+ D! j; i
bStart = FALSE;
) }7 @% S& n! T; R5 v+ u9 Q9 s m_pItemElem = NULL;' ~* m. H0 Z3 e5 @2 x5 _+ v1 w
}
4 k. Q3 `, y, y9 M }/ g) I% v8 G2 s' v
return TRUE;$ }9 A# Q( o. y/ i G
}9 N0 i; P; s. {! \( }- ?3 \
1 Z6 N4 f* ^% ]. V! n' N$ ]. Y( N+ l登录视频废话:
' h! z/ j* \; i+ M+ v8 {$ B }, p尾翼:
2 m) q7 x0 \, M1 Y3 `4 _9 L+ X6 W3 d
X# f) a9 {: F7 ~代码:$ B; q7 h: s9 N, @( c$ F5 [! u, N
; Y$ q) t1 J. G4 n5 ~! ^, d
void CWorld::SetLight( BOOL bLight )
* T( {+ [3 Q' p- edurch+ g4 K- u0 t6 D. k) G
Code:, s( z" b4 {2 p
void CWorld::SetLight( BOOL bLight )
, z% L" Y% Z' [- j" @& f( [{% @7 q- s/ S! u5 y) c' J
//ACE("SetLight %d \n", bLight);. e( _* `; h$ { g
, Y( ]& h/ a+ e& I7 X: A
#ifndef __WORLDSERVER 4 @+ s3 A& t% g/ g1 X$ ?% E
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);& X; O9 z8 s1 t+ @$ r8 u) G6 ~
CLight* pLight = NULL;" U2 z% C8 k0 e* |1 W5 j0 h. r6 J
' v. G0 m: c$ C/ _' D' \) Y& \ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
1 j7 \/ h, j4 `+ C. L, F
( @0 k N/ ~0 y+ y# ~. ] pLight = GetLight( "direction" );
2 w* C5 ~& U0 @5 t; @+ |# r$ }0 i5 |: C+ [3 t5 R% l- [- s
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 `# i* m8 K) ]2 W* s if( g_pPlayer ){6 y' K2 E- G/ i. `
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
- r! D- F0 N% x: V" `$ I if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!2 u4 R- F! b4 ]8 F R
{3 m# ^2 A6 w4 S" P6 F
if( pLight )
8 K; R, p" m, g9 {, r {3 _' }1 R/ D, o, T a8 {
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];4 q5 e% @) n5 d& ^0 a: r
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
: Z8 ^: }' V- e* i! e% z pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
: B9 D q1 g/ r1 i
7 Z9 b. E) f0 {8 Z pLight->Specular.r = 2.0f;
- X: s3 g0 F1 b5 t pLight->Specular.g = 2.0f;
; x# U( g0 p0 ^8 z: j& v' Z: x pLight->Specular.b = 2.0f;, s, D" N. Z% [2 u, M& _$ G" n
3 T( @& E( H& A
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ y5 [! |& A3 U! A pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
7 r; h5 n r G/ n6 {7 n pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];2 ~' J7 m B4 ~5 D% } \' {! V
, G% n6 F5 I8 K. ]; v% q4 O HookUpdateLight( pLight );
D8 w: F+ E4 I
: Y! z8 I! `3 b$ m2 G" c memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& ]5 O5 u# J0 B/ N! e) U- [, r
4 ?. l. P; [ O( i
pLight->Diffuse.r *= 1.2f;
& P5 D$ X. i1 j! G0 v9 X6 u pLight->Diffuse.g *= 1.2f;
- M0 l: J$ C ^ pLight->Diffuse.b *= 1.2f;5 H9 t& }% ^+ \
6 \) X y% u& Q0 a- M
pLight->Ambient.r *= 0.8f;
, z; F/ o# F" ` D8 ]2 p6 E pLight->Ambient.g *= 0.8f;
- T% }" D9 D Z# j0 ^. l* g pLight->Ambient.b *= 0.8f; ]0 E6 u9 j5 p q) e: H
' e! B# z2 @- t* g memcpy( &m_light, pLight, sizeof( m_light ) );" b3 O; B' v- C
! h2 |! R$ k& G( ]" l2 i( o D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 e O7 ~! v! L& ^* b" a. ~. }
D3DXVec3Normalize(&(vecSun),&(vecSun));: m' t; j7 n ], j
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); * u4 l% ]8 b* c6 J# ?
pLight->Appear( m_pd3dDevice, TRUE );- T5 ~8 }/ J4 n* }; A3 ~! s
8 J1 ^: M# D1 X2 ?# _' m3 w j DWORD dwR, dwG, dwB;4 g8 h. o3 m, k8 y2 T/ @
dwR = (DWORD)( pLight->Ambient.r * 255 );
1 a* a5 F' U" B1 S dwG = (DWORD)( pLight->Ambient.g * 255 );
; C: A! d. U% z" Q5 s* D+ x dwB = (DWORD)( pLight->Ambient.b * 255 );4 ]$ k$ R v5 D8 t
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 t6 Y3 ]8 w% E1 `2 X4 e7 }+ e }
. h0 c% l5 [3 Y% a* d1 L# F4 L8 B }
. \- |$ v' X: |2 f. ?: V }
6 v I; W5 O1 J else
1 d6 b6 a) [4 z: g#endif * Z( ?( ~: B4 u! r+ f
( }+ J3 a c! x2 p2 N0 X
if( m_bIsIndoor )
+ j- W; s- j* w( P- _: W7 j {
) b: t, v2 b! j( Q0 s5 ]7 Q( K* o if( pLight )
' p3 e: B( W3 C { . @( V; H( F5 ?8 X6 x: u+ l
// à??μ oˉè*
2 O9 a1 c; V9 Q6 b( f" s pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;$ i: M- W$ R2 @5 ^! D X9 t
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;$ K6 R& h9 L a& }
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
# \$ ~7 }5 \% X7 [. _1 b
4 C/ X! C% y5 R8 d // oˉè* ??à?
3 A3 \' N* L! j1 _+ b9 G pLight->Specular.r = 1.0f; `1 A* Y9 z) t
pLight->Specular.g = 1.0f;
& p- G# H1 v) Y. u% L7 i pLight->Specular.b = 1.0f;# L6 r/ |7 V- X2 T
// àü?? oˉè*
5 _& Y, M$ f: z pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;" y1 v5 o8 P! H- }% L8 H! n7 [4 M
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;& k \/ w6 Z- K9 `+ t+ q
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;$ ?3 O' T! k/ o0 E- @2 U
0 o# U1 j. U& |% h; ?
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.1 r6 O- J" t$ @ B: ?! L
{
u3 J) H' `9 K+ R; o/ [1 V7 |" k pLight->Diffuse.r *= 0.6f;4 R5 y$ h" ^& \6 w: G3 _+ x
pLight->Diffuse.g *= 0.6f;6 }% W$ @* \8 j4 u( B3 _( k
pLight->Diffuse.b *= 0.6f;, k; w4 _2 ^& H7 F- a
pLight->Ambient.r *= 0.7f;
& u) Y6 U Z& G! ? g1 i- O pLight->Ambient.g *= 0.7f;
- t/ F7 b5 W5 X. m pLight->Ambient.b *= 0.7f;) c5 U- P$ N0 q8 L
}
1 d: t, A# F7 V) o# |
( _. a; W/ M; m* i% T" S#if __VER >= 15 // __BS_CHANGING_ENVIR
, f5 j5 G$ C- J1 g if( g_pPlayer )
' t+ K+ L) w& k* ~; _, Q- S1 m HookUpdateLight( pLight );& E' ]9 A9 y- E# X2 r& ?/ N
#endif& X+ x- ]! c5 L2 J( p0 _8 V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' L6 \! j7 k( E8 [3 n) R; ]3 I+ t7 t$ I4 f; E" n0 M3 D8 k6 S
pLight->Diffuse.r += 0.1f;& t h7 p% l7 f& M' g
pLight->Diffuse.g += 0.1f;, q3 z- e8 e* P* x% {. u" z4 F
pLight->Diffuse.b += 0.1f;
, [, a I) h9 l- P' Y* j% V // oˉè* ??à? 0 j1 J( Z' L( e5 Z1 A$ }/ P
pLight->Specular.r = 2.0f;
+ {5 S- ^) P1 }3 u( d* T/ B$ F pLight->Specular.g = 2.0f;
# U, C) m1 Z7 o! O6 p9 _ pLight->Specular.b = 2.0f;/ `1 W$ x; E) V T8 T& \
// á?oˉ 8 t* M' z% U ~ W
pLight->Ambient.r *= 0.9f;
0 A2 Z& I5 V, S6 m& Z pLight->Ambient.g *= 0.9f;
3 a( x: y& O9 C8 i" f; O pLight->Ambient.b *= 0.9f;+ b2 O3 I, }, R
2 [$ B& ]% {! V a
memcpy( &m_light, pLight, sizeof( m_light ) );
# p8 s$ q% y& w* x & z" l2 a* Q+ @( l2 M8 Y
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );/ J% j( V- r9 Q- _0 b0 L
pLight->Appear( m_pd3dDevice, TRUE );
% s5 I4 W5 ~" G' W' s; q* P+ l * B0 B# u- Y# L- j' c
DWORD dwR, dwG, dwB;
9 p5 G/ z. i8 E3 O dwR = (DWORD)( pLight->Ambient.r * 255 );
& \) D/ g# `9 R2 f5 ~ dwG = (DWORD)( pLight->Ambient.g * 255 );
( b0 h# H! w! Y0 A4 F+ @ dwB = (DWORD)( pLight->Ambient.b * 255 );1 W! e4 Q4 d" e, x
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 F. X8 n( P" l5 O7 b* ~# M }* K5 z) \ W& d, k0 ]+ @
}
- n. A5 H& ?/ W( O' R else
$ C; V2 g1 T7 w2 N A {5 |( b% ~6 r! R0 @
if( pLight )
, [. m! k) Y% L a3 y" P& a {
" F* _5 \7 ^( q' |, T2 Q% i7 g * R" g. s' C, N$ V6 x, n# j( Z
int nHour = 8, nMin = 0;
+ w/ u2 J4 i' x, M #ifdef __CLIENT4 g1 Z6 V: k+ X+ z& `
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. : I0 N: Z( w" _4 F
nHour = g_GameTimer.m_nHour;3 ?# H# c9 B1 I/ {3 K. f1 k4 i
nMin = g_GameTimer.m_nMin ;
3 e) }% @/ P' D #else+ _+ M1 ^/ v% \6 @- X: ~
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.0 [/ ^% I% O1 k' N- l, A( y3 y
if( m_nLightType == 1 )+ z, G# i) Q$ F0 A5 @5 x5 h8 f. B
nHour = m_nLightHour;
3 T3 {! b0 C5 v A: r #endif
! B E" z+ o$ _4 {" J6 g nHour--;" i5 ?8 E, E3 y4 [2 E
if( nHour < 0 ) nHour = 0;
4 D" Q+ ?- V/ b4 @- w if( nHour > 23 ) nHour = 23;$ W8 W* W: L. u
+ ?% T; V t7 ]8 I
//if( m_bFixedHour )& R, s( V+ x/ S
// nHour = m_nFixedHour, nMin = 0;& D3 N4 u* e$ H6 O2 Z5 j$ K; C
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 m+ t# S8 P( Q" e/ u) A' E
LIGHTCOLOR lightColor = m_k24Light[ nHour ];: G/ ^- k+ x- Z$ W
6 A0 M4 X$ g5 y+ h+ v2 Y
//m_lightColor = lightColorPrv;# y- U6 ^0 s& r* c( d
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
8 _' Y$ R K3 M0 [- R lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
" A! u* \0 U6 k( p lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;3 k# f& Z* c2 @/ z$ W
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- A# \2 M2 a2 X" Z+ Z: _+ g( a) H lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
' Q7 S/ d) K& [9 X1 y lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
% K+ K3 U3 p' N5 D1 T // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
: w* ?( F8 c8 O* v
7 w8 W, I4 m+ ?+ {1 r4 f3 z // à??μ oˉè* # V2 ?: F3 C. \- |9 F! P
pLight->Diffuse.r = lightColorPrv.r1;
# x! t1 H3 f& l( \5 o# j pLight->Diffuse.g = lightColorPrv.g1;1 I) T" u% i5 f5 i8 v
pLight->Diffuse.b = lightColorPrv.b1;
; g: j) m3 n8 z // oˉè* ??à? 3 {, X- B& j P
pLight->Specular.r = 1.0f;
* c3 b+ T J2 a6 U1 S: q# C6 z9 { pLight->Specular.g = 1.0f;9 x. F; m/ p4 k
pLight->Specular.b = 1.0f;6 Y- I) V/ ]* }- P' L4 l& f
// àü?? oˉè* ( ^/ h4 S5 H( u U7 h
pLight->Ambient.r = lightColorPrv.r2;2 \2 R$ b+ f4 c) [. @4 [( p
pLight->Ambient.g = lightColorPrv.g2;
: z2 L! q: W8 I2 y7 [1 ] pLight->Ambient.b = lightColorPrv.b2;% C d9 l$ p X* Z! E0 s
j0 o: s, f4 G if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
0 s4 I1 a; Z* v4 Z; g1 [ ^% n {8 u' Z) v0 d/ N8 v+ e7 y! B7 N
pLight->Diffuse.r *= 0.6f;
" n0 E4 J$ ]4 y, K pLight->Diffuse.g *= 0.6f;
$ ]2 ^- ~2 Q8 Q8 r" [, p pLight->Diffuse.b *= 0.6f;
! `, ^( D; @7 k$ \7 g3 b [7 U S pLight->Ambient.r *= 0.7f;5 s2 p' h6 [, |0 y
pLight->Ambient.g *= 0.7f;
" M7 x0 k4 Q3 r6 d pLight->Ambient.b *= 0.7f;; f' }+ g- ]' I5 a/ r2 D+ P
}; x/ @. s* Y6 I5 |0 W
- v& s, |/ y9 m3 ?% n
#if __VER >= 15 // __BS_CHANGING_ENVIR
) p; _( w# C2 B# [# b5 m& @ if( g_pPlayer )
' o$ S* z J/ |) r! Y: R HookUpdateLight( pLight );
6 @; z( ?8 K6 j8 r# v#endif
9 B0 a0 j l" R5 H2 c; N( \ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 T! K4 r1 ~2 F: n
! @# F |% n% F( y3 n9 b#ifdef __YENV
3 @5 h9 o4 j6 ^2 m pLight->Diffuse.r *= 1.1f;
+ D" V1 @6 l; {& e3 L6 h pLight->Diffuse.g *= 1.1f;5 A! @5 Y* T; H5 s. `
pLight->Diffuse.b *= 1.1f;( X0 t8 ]; S3 n5 ]) I) R
// oˉè* ??à?
2 |$ p) P% ^0 s1 l# C" e3 m pLight->Specular.r = 2.0f;: u8 R9 f& @0 k7 ]
pLight->Specular.g = 2.0f;
. k: c9 M7 Z2 k( D; t pLight->Specular.b = 2.0f;
$ V) a9 t6 j1 D4 K // á?oˉ
7 J6 y! y1 a! d pLight->Ambient.r *= 1.0f;
1 }+ ]% H% M, z' `2 [ pLight->Ambient.g *= 1.0f;
3 I$ G6 o4 X2 o2 r pLight->Ambient.b *= 1.0f;7 M9 S' K. G" [, C2 f
#else //__YENV
$ t7 U4 s p+ e0 ~( i' t pLight->Diffuse.r *= 1.1f;0 p% E/ h, E: R7 a1 G* r
pLight->Diffuse.g *= 1.1f;; j# r! w0 T+ n0 N7 ~* Y, P0 \2 f5 G
pLight->Diffuse.b *= 1.1f;
9 }# X7 n/ f5 y7 ^) t! a // oˉè* ??à?
5 L! U3 t6 Z% t6 h3 G; a7 ^ pLight->Specular.r = 2.0f;
* o4 |, v2 c- `. D$ A4 S C pLight->Specular.g = 2.0f;* m1 v& |! Y2 C! l% K4 o
pLight->Specular.b = 2.0f;" S3 u5 i6 A/ s7 w0 w5 n$ r9 X
// á?oˉ
' y# _$ M! q' u g5 T pLight->Ambient.r *= 0.9f;
) t; t* r) j% N% L5 x( q pLight->Ambient.g *= 0.9f;6 w) c2 m, O; W2 ] J6 { m8 s9 B/ h, G
pLight->Ambient.b *= 0.9f;
5 ~2 q" H1 j& B3 L3 ^#endif //__YENV ' N; \+ g7 _+ [9 G! F
7 H) ~+ a0 r" A" ]' A/ a6 c- A0 ?+ S) o memcpy( &m_light, pLight, sizeof( m_light ) );
! ]' e' I R4 }2 E2 p2 |
. U* q+ y" ^9 X! h5 L* h D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);& s) E4 n3 E6 ]" t9 {
D3DXMATRIX matTemp;0 h: b- s7 X8 @# h. S2 w5 F: m
static const float CONS_VAL = 3.1415926f / 180.f;
# J" C* m; J* z6 m6 C; U
) |. [6 ^" o7 m0 d3 C. @! N D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);% H/ p; l( B* m( S
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
0 ~' ? b! ]4 g/ ? pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); : R6 x' y w- \
pLight->Appear( m_pd3dDevice, TRUE );
% w) V) c u$ P; f+ m5 @0 x
" K8 V& R2 z3 w2 Q9 _ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f); H8 Q9 P. `8 L" U( Z* I/ N8 |
// D3DXVec3Normalize(&(vecSun),&(vecSun));
5 O" J' [) r% j- D5 w" y3 {" P // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' V! U4 @8 n- j8 }% S- N( J2 R8 j
5 K7 @( r5 u) l! y& F8 `3 ? DWORD dwR, dwG, dwB;+ f& \9 s# B/ S! n3 d
dwR = (DWORD)( pLight->Ambient.r * 255 );( M. j: v, N3 @3 j
dwG = (DWORD)( pLight->Ambient.g * 255 );. [: X& q- t% {( ?( S( x% G: I- N
dwB = (DWORD)( pLight->Ambient.b * 255 );4 V, ^6 R G& ^ H, F" t
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); " X8 V- y. M/ ~9 ]
}; `' S! e, M" a) t
}
7 X% k0 x; e1 K8 B7 H
1 W, E& W$ g3 r* H$ ] m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );7 a6 c. ?( j6 _
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) );
% I o6 U1 ^' W6 l2 P8 g2 j ::SetLight( bLight );
- q) R* V9 V( s" R ]! G- ?1 R. i7 G# r; ~$ C" k2 c
// ±ao? ?D?í???ó á¤à?
4 m% X. G7 @" g& l: E# e0 k& a m_pd3dDevice->SetMaterial( &m_baseMaterial );- k6 [8 j: J, J4 O/ J* ^) E
* ~5 r g7 ^$ X6 V4 ?* L$ z
#endif // not WORLDSERVER' F0 w: }+ K% o. ]8 H
}
% e* D$ ]1 z; s" V3 `, u7 }并更换
. s5 q- j" ` j- O' Q5 J3 K9 R7 sCode:3 _1 J& o; ^: @# Z- k
__FLYFF_INITPAGE_EXT0 t7 ]- E& @# p! v7 `! {
定义
" ]* v9 s* b/ v. O
" R" }2 V# r- H- e) C# I# N3 ?! R$ E' P4 q+ F
~( g/ m1 g/ Q! Z0 ~( y6 s% \" s# S
* }' i8 ?9 \% y. p现在终于删除我的狗屁加速...
4 [, H# @9 h2 o c) V, X; L1 w/ ?* `$ ^4 e. j3 p: x! D. j3 Y
5 Z( e) W$ z h) E5 x1 o, s% E
, h$ F+ n. u4 @8 t$ S; z* s/ Y. d |
|