|
|
食品车:
6 ~( g5 d3 @! }2 K [" I1 |尾翼:& f' S: U3 j/ l4 k l
' j& {( K; _6 ?( b* k! a+ P' }代码:
8 _7 Y) O- s4 @' [' vCWndAutoFood::CWndAutoFood()5 n$ K1 L: I) ~; K! ~
{
* c7 w: E m8 S) L. Q M8 ?) p m_pItemElem = NULL;
0 q4 D. p2 ?1 F6 @( M; r7 U, q m_pTexture = NULL;, N' Z! `9 U! _
bStart = FALSE; b, K- h3 m) T6 }# L' O9 f+ B
}
2 Z, D$ {8 q7 \% N) p" x# d8 o5 r) ?# ]) L2 m4 R7 y6 N
CWndAutoFood::~CWndAutoFood()
. y& z z0 \1 g# N{+ q. x% G( J0 K: }, g
AfxMessageBox( "AutoFood ist gestorben " );
( d+ q' p' w9 b- H) P0 h! p7 L3 a, s}3 ~ {9 _" Q) o0 h. P
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )$ _+ Z" h9 p! U+ E( B' G
{
8 D! u; M( E5 ]. C) | return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );/ w9 P K* s/ ~6 x! Q
}
$ G2 R1 }' l3 Z( F' ]+ _+ s& h" g2 e# x( L
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
6 Z8 R0 S: J3 a* w2 t, M{3 j; @& C+ y4 u5 j3 X& u% q# v n+ ^
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* h. A+ c$ _& S
CRect rect = pWndCtrl->rect;
1 g0 |$ ?' o- ?- ^$ f2 p9 ~ if( rect && rect.PtInRect( point ) )" c& D& E; V; U | f' R+ ^" M' |
{& @3 |: a7 L+ l! {
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
[- q4 y& r: _8 E$ [5 S2 h if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )/ @( i' m$ Z$ [
{8 z. Q$ c ^0 Y# ]" S+ n
if( m_pItemElem )4 N5 c3 I" s0 v
{5 M/ ]; K% a, d, W' h5 p2 n9 @
m_pItemElem = NULL;# |) J8 M! j( \% D" S
}# ?- g0 n2 R$ N; h2 p m
m_pItemElem = pItemElem; ~( y8 B1 I$ [" l5 c! S+ H1 g
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );5 s, f: r7 d" M- \% ~
}else{; I% I. l* z: K% k0 N
SetForbid( TRUE );
6 S5 g: f j2 y( N* k }
7 J% u+ {& I4 z- ~# ^# D/ i }else{
: E& }7 v, c. i3 n; | SetForbid( TRUE );# _. x5 V7 ^( B, ]! f
}
& a g$ Y/ ]& @7 p/ { return TRUE;
% E1 t3 O S6 a3 C}
3 S# P+ R) h* N. K3 P/ O8 ?1 }
; j& @1 E' A9 l: z. t. bBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 `2 t9 H+ S; i& Q. p. s
{
! |* f8 r8 r5 a* x switch( nID )) Y9 ^! J5 J5 ^0 D
{
$ B% f* o7 h: y case WIDC_BUTTON3:8 i" S# Q, B n5 S
{5 ~( J4 c4 q b- ~; d( A& o
bStart = TRUE;
4 l2 j* M- @8 Q/ j; [ break;. _7 D7 b* r9 `9 K, T) g0 g/ a
}& }/ z4 H+ Y; X
case WIDC_BUTTON4:
5 {' R& Q B) g, q1 Q {
0 d0 I- N7 s4 D' I% C9 u, L+ H" c bStart = FALSE;
* m' i5 w" H8 X) V2 } break;
, S* t. N5 U' z/ X }
1 D- L4 z3 h) H5 T& G }. M9 D8 @+ ^2 p! {( D
return CWndNeuz::OnChildNotify( message, nID, pLResult ); _( D. r& [8 A+ i
}
7 h/ X' S: ^- f$ U- G$ svoid CWndAutoFood::OnDraw( C2DRender* p2DRender ); e* K7 q& { U! h( q8 t
{4 m q L, X- i1 u+ X
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
+ w5 y1 {. m. c4 e+ k) I% ~ if( bStart || !m_pItemElem )
5 I% `( o( g& Z8 \% @( l {
- e, j' _# E' }* R U# }1 R3 ] pBtn->EnableWindow( FALSE );. I6 N6 R- L' [1 u T$ u2 h
}else
6 H# Q4 A+ u( X5 r/ a0 ] pBtn->EnableWindow( TRUE );
# t/ ?9 J) g2 @" Z/ f) i* p6 V# R3 V if( m_pTexture )2 w3 O. ^( `; R. U8 p3 m8 Q7 I
{
4 n# r& Q* R- O3 ^ LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );& O( p$ V9 i6 z* d5 c
if( wndCtrl && wndCtrl->rect )
; j) E! z6 R; a( ]6 } {& ]6 S; k, \4 K( E2 S: L
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );$ {% W) X% S' y5 ~3 M! _' w+ g% \6 e e
}3 X1 Y6 C) j" y9 u6 S h
}
) j" u2 [4 L+ L; ~6 k4 Q}! W9 i5 X, G; R0 q7 v
0 u) T' N L( ~7 ?, ~" ~7 b
BOOL CWndAutoFood: rocess()
4 @3 z" j% Q* I3 S/ d) q{
" M( Z$ j6 z# c* A" v' h if( bStart )" p1 y; G7 I( o3 J5 j, C" c
{
" D* {5 }4 _4 G if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )4 p% O, S- B! B! d
{& o: N/ ^2 ?2 y$ y8 q
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )) _9 C$ `7 x2 X
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );5 m- ^5 k4 y A; g7 r3 C
}else{
9 V7 N& _# ^/ {% T4 R0 X bStart = FALSE;. E( e1 E# D* _3 G7 z: Q+ v
m_pItemElem = NULL;2 G# E0 K0 T w3 l
}
$ u/ l: q, M4 \$ n }* O1 P$ L! F3 n6 k9 D
return TRUE;$ t4 a y* ~ x6 l% G+ V
}8 E0 m2 a; i2 V0 A
3 Q0 |- F' X; |' q) e* Y0 c2 G O9 i3 U
登录视频废话:0 l! J/ T$ t* F3 _' _0 d' G
尾翼:, F1 n9 G) Y% z! [
# k' }# C( m+ M- y8 ]" N
代码:) K' o# y( t3 m
" k- [3 _) p; ?7 Y
void CWorld::SetLight( BOOL bLight )
& \7 K2 `# `! Sdurch
@% ~3 s1 T) e" p2 NCode:* L1 z; I* Q$ w3 X- K
void CWorld::SetLight( BOOL bLight )
p/ I5 m6 a& M _ `) p{# N6 v( _7 j! l" ^- L) K
//ACE("SetLight %d \n", bLight);
3 h- I' n2 P x
" q8 |0 [' |/ O#ifndef __WORLDSERVER
, ?7 K! w" v, s& D% D, u g9 D3 p DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* w: h+ v6 A8 ~* C8 F- c CLight* pLight = NULL;
$ Z% Z6 A, ~5 f. |4 W3 Y- s5 h) h, d4 h1 i3 m# `
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
+ ~" T, y% K- {5 o+ a; c
: ^% V- x7 L, C P7 O( ]8 D pLight = GetLight( "direction" );
; e1 ]$ d3 o( s/ ]: k; O1 D7 }3 k0 O# O! B
#if __VER >= 15 // __BS_CHANGING_ENVIR* p, s) s! ]$ G. n/ J e7 U, x
if( g_pPlayer ){
9 h( @3 H: F6 P& z. P+ r0 W& X4 b ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
0 s5 b: @$ q0 C* H. ]9 r& ` if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
0 j% a1 n/ P9 T& B {, o7 }- ^! i9 e, V4 K
if( pLight )3 Q9 N( R) |" Y6 q: Y& d" k4 R" w
{
$ J1 U3 e# c* k; R pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
A; n) y) ^* _1 |9 P) a pLight->Ambient.g = pInfo->_fAmbient[ 1 ];3 j6 |4 z: b) u' t' e, K' A
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];0 h8 k/ ?0 n9 m- H; ]
C. ^& Z5 ^$ ~4 j pLight->Specular.r = 2.0f;7 j( h; ]" x. t& m/ A
pLight->Specular.g = 2.0f;
& p; A L* r0 f pLight->Specular.b = 2.0f;
; p% Z8 Q. a8 n+ U! [* M3 ?9 { 6 T' C: Y: w' `
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];4 j/ O7 Q; ^0 T6 A
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
& @6 g8 @( _7 W, v5 e( w3 o! g pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
- B4 F( J0 @5 x) e6 l 1 [% w- N: U9 W
HookUpdateLight( pLight ); 9 ?9 {3 X# k9 o d4 C! q& n
9 T W. M; G3 U0 d3 F. F3 `
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! u& H# Z; X1 F$ x3 V1 W) L; N
- B! N) d% a1 d, j
pLight->Diffuse.r *= 1.2f;' Y! M: a& i$ J- n/ D; J* g' f
pLight->Diffuse.g *= 1.2f;% j; E; E4 m1 m& H- q2 q$ Q4 q) [5 Z
pLight->Diffuse.b *= 1.2f;
# A4 `+ @- H( l! U! J8 f. |; t
" Q: V; }8 u0 y9 Q pLight->Ambient.r *= 0.8f;
3 n8 \5 Z2 m% x; M pLight->Ambient.g *= 0.8f;) W. X! |/ F+ S7 S; D9 J X# q
pLight->Ambient.b *= 0.8f;
f9 }6 d- e! m- E: ]6 m9 ~ / _. B: [, F0 r+ t0 X) U5 u1 ~0 v/ f
memcpy( &m_light, pLight, sizeof( m_light ) );+ s% B. G7 U5 `9 {% ?
% B# G- K5 |$ `. E/ P D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 H+ G" j, d' M( f9 t# u# W
D3DXVec3Normalize(&(vecSun),&(vecSun));$ w0 C' r0 C: t7 g3 P: p% y& j3 @
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: R D) o8 Y0 E7 v% y pLight->Appear( m_pd3dDevice, TRUE );
) f5 _& W8 u% I' m: S/ o( m" {, }
8 [- U+ ?, m2 l, w1 B! z' M DWORD dwR, dwG, dwB;6 p# K# C3 t% B2 S$ k; ]
dwR = (DWORD)( pLight->Ambient.r * 255 );
6 n) a4 u4 `' d. x0 T+ l7 Q4 m2 k5 f dwG = (DWORD)( pLight->Ambient.g * 255 );& \. ^& v; G( U# i( B
dwB = (DWORD)( pLight->Ambient.b * 255 );+ T& r0 p7 O3 ]+ r7 f+ I
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: n9 d8 m$ x5 j- t4 C7 g8 I: `5 z5 y }
* q) h7 |9 ~' d0 d5 p }
! |/ @ e9 v$ e3 O' p- h5 e }
1 t9 ~: p& N4 @' o0 n" Z7 y else. u/ J: `. Q% ?2 W9 l+ u. I) z
#endif
+ h* K, e7 k& U( m
5 ^# {0 g& f4 X* x8 V; F' X if( m_bIsIndoor )! d7 L% a$ o. U" @* v
{ e3 Q3 c1 F: M1 h `
if( pLight )
; ~. G# ^9 Y. Q& ]( a7 c5 j { x) l+ M4 n6 K
// à??μ oˉè*
4 v/ _ e$ x/ a. n pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;$ M* F2 s$ y, m# _7 b
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;% l% O9 P& B ~' ~( W3 w
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
2 k! V$ f+ `% i4 d5 L
4 W# ]; ~7 a9 x$ p // oˉè* ??à? / w. N5 W3 ` ]. l' y7 {! [- K
pLight->Specular.r = 1.0f;2 e: P& g' ~! o$ [& [# v
pLight->Specular.g = 1.0f;) H, U" @. I5 S: m" A+ z) J3 j
pLight->Specular.b = 1.0f;
) a7 o. c2 K f Z$ O0 [ // àü?? oˉè* 3 v* @8 v0 {* G* V8 O& Q
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
: n2 _7 E" U) d- U8 ~! P, r9 U5 U pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
) \) h% J! L! F, E2 [& l: X* d pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
( a t: b& Q9 u" D* P: a
6 A7 A/ `6 Q* o/ d/ R if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.4 [ M4 J" A# c0 d) d) ]8 E
{# Y# B* a; f" Z/ l
pLight->Diffuse.r *= 0.6f;( w& Z1 v5 W3 W1 q
pLight->Diffuse.g *= 0.6f;9 ~' U: J3 K9 E$ P5 c
pLight->Diffuse.b *= 0.6f;5 z9 J& g8 Z! i [1 b0 _
pLight->Ambient.r *= 0.7f;
; u. p4 n; @1 l d8 F4 F pLight->Ambient.g *= 0.7f;
' j7 [6 W' e% I& y6 c pLight->Ambient.b *= 0.7f;
4 Y0 M! u, S3 _4 F+ o }4 d1 y* w6 L( d8 K- j# }
% r0 S& M/ }- W3 d: }6 |- ]
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 y9 ]7 R, R5 Y. \. J( V3 { if( g_pPlayer )
- M9 b& ?. ]* s e+ @ HookUpdateLight( pLight );9 u1 `/ ^* @2 y$ [6 J" F' ^
#endif/ e$ u* u7 T. a' z0 F. v: Z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 Z* |7 v; U% B2 ~2 n% E3 Q0 o
% `! k3 C! [) i& T
pLight->Diffuse.r += 0.1f;1 n2 b3 c5 F$ f, I
pLight->Diffuse.g += 0.1f;
2 I2 H! I. n# j/ z4 u4 M0 H; V3 } pLight->Diffuse.b += 0.1f;% e3 ?* e8 z* e# L/ s8 v1 U: k
// oˉè* ??à?
: u8 I( i4 h9 S( Z9 s4 m0 n pLight->Specular.r = 2.0f;( e5 g* ^7 P% l! P$ K8 ]* Q
pLight->Specular.g = 2.0f;
8 Q3 L- C/ n+ k1 @ pLight->Specular.b = 2.0f;
+ G) F7 Q9 @+ k+ u- i5 ` // á?oˉ
+ {( h+ ^# X8 X* b- d pLight->Ambient.r *= 0.9f;3 S7 @) a. u4 b% o
pLight->Ambient.g *= 0.9f;
6 R) {8 L5 a. y; q, Y' O pLight->Ambient.b *= 0.9f;
. |. m) ^6 H5 n: r$ ?+ j' A9 D0 N% Z
8 I" o/ F' G/ z6 t0 P memcpy( &m_light, pLight, sizeof( m_light ) );
6 ~( E: B3 J9 v f$ j1 A9 T, ]
9 L/ G" P' T; _. j pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
; f7 ]; ?* x& {% A pLight->Appear( m_pd3dDevice, TRUE );
}5 B2 U! k( Y, s$ L3 B
' ]0 m8 j. d( R K& g DWORD dwR, dwG, dwB;/ ]- |% P/ P5 A7 R; P& ~4 F
dwR = (DWORD)( pLight->Ambient.r * 255 );4 B, L! U n: O+ L3 w1 D/ Y
dwG = (DWORD)( pLight->Ambient.g * 255 );& _" n* g5 a3 o2 U/ _
dwB = (DWORD)( pLight->Ambient.b * 255 );: W& S; D9 @7 n0 S
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 n+ H: F! @- g" r
}
2 L% X: w! p" n/ p4 s' ] }& B! V- \3 a6 t& O o& ?! x
else0 P8 S) `- m8 q& n
{
% S* e3 N. J0 ^7 h if( pLight )
5 q/ D! S% b0 L, n# R {; o3 s/ p- S# W$ Z
% F y' B3 |: M7 G
int nHour = 8, nMin = 0;
' e; W% I d2 V: K P #ifdef __CLIENT) ]6 o* D% H. x+ V K% v: k3 B6 C
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ! y: e+ G6 d' h5 s" g N
nHour = g_GameTimer.m_nHour;' K$ F5 b0 F! K: l# k. M
nMin = g_GameTimer.m_nMin ;7 u' T) Z; V: Q2 D" w0 Q5 C+ ~
#else
' p, a8 E" A8 X+ L) ] // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.% g' c$ L* O9 i; r# e7 I- G
if( m_nLightType == 1 )+ k. N1 v2 j( _7 E! r8 f
nHour = m_nLightHour;
3 Q, }3 |) @* _ #endif; G" P3 {& h/ d* q. V
nHour--;! y: f& e+ G: T: Q8 {
if( nHour < 0 ) nHour = 0;- M& H' |0 }, f Y9 x6 P: e# |
if( nHour > 23 ) nHour = 23;. }& u& |2 m2 G9 D+ ^+ Z7 U
/ l7 B$ V! D1 U( h
//if( m_bFixedHour )# Y8 j( o# Y. j& Z
// nHour = m_nFixedHour, nMin = 0;
; s* z$ u' P" q1 B# Y; U+ s% `1 n LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];; ]4 ]9 V# L' |) ~* F; [: F' B/ n
LIGHTCOLOR lightColor = m_k24Light[ nHour ]; O6 @6 f8 B" c0 k8 \
+ a6 ]8 H/ y; a4 | //m_lightColor = lightColorPrv;
^) I$ ?+ Q& W) P: ^ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! W- s6 s4 x1 O* P0 e lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;9 P% R- v9 r/ \2 t$ ~) m
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;6 u0 g7 _8 X* E
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;4 ^& ?" q1 Y _
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;% S$ W' }% j/ U1 p
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
9 D4 F/ r4 F$ @4 S7 n // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)- c8 u5 O" ^3 E+ u* a3 a3 D- I
7 B/ N- |& C) O0 t; q6 O9 d1 P
// à??μ oˉè*
9 |1 s6 |- ^/ m6 r8 ^4 H2 i2 U pLight->Diffuse.r = lightColorPrv.r1;& j5 W, l% h$ B" r- c
pLight->Diffuse.g = lightColorPrv.g1;
4 d0 j2 u' M1 Y! b1 K2 x pLight->Diffuse.b = lightColorPrv.b1;7 e8 W! n/ W- Y4 \4 q! v
// oˉè* ??à?
5 p% F5 l+ L+ R' e" Z pLight->Specular.r = 1.0f; g# H2 T. |) ^7 [
pLight->Specular.g = 1.0f;( b" m% b1 x+ C! B. j& q" @
pLight->Specular.b = 1.0f;, a* I$ ~9 N {' d% m8 l4 @
// àü?? oˉè* % v* T/ I o* }% `* `9 U
pLight->Ambient.r = lightColorPrv.r2;# Q; W: J& w5 s8 @$ I& F
pLight->Ambient.g = lightColorPrv.g2;
) w2 ~: z' z0 F+ d pLight->Ambient.b = lightColorPrv.b2;/ Q4 e6 b5 j/ o- j8 H# D
% e# g. L) q l9 R- U if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# ]6 g7 @* x' [
{+ B* C8 k# o# B& D1 x1 I0 h
pLight->Diffuse.r *= 0.6f;: Z* V% i) v U2 O2 I
pLight->Diffuse.g *= 0.6f;, q8 e' W. U5 \
pLight->Diffuse.b *= 0.6f;
* O( v! _# X# H! s; n8 i pLight->Ambient.r *= 0.7f;: z% f7 y( O4 B: v+ }+ x
pLight->Ambient.g *= 0.7f;
6 J# v& o, D6 D4 l9 s( S) s$ g! [ q! ] pLight->Ambient.b *= 0.7f;; C/ f5 u) k3 \" ?; o" T2 A; Q
}" [, q1 ]: X4 K- ] D4 V
; o) K" \: k6 \
#if __VER >= 15 // __BS_CHANGING_ENVIR- M9 j' E9 w: c( p9 w9 P, }; a
if( g_pPlayer )& G2 Y t; d8 T9 a0 {
HookUpdateLight( pLight );
& b7 W7 s ]2 Q: _$ k" ?2 G#endif
5 Z' a# ~7 `9 e1 }) X& k9 ? memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 d0 U A, a1 a, Z2 w/ Z" h0 T
5 ]5 n9 @: T' g% R4 R
#ifdef __YENV. ]4 |( }! _4 ~, k" S6 V
pLight->Diffuse.r *= 1.1f;
/ ?7 A5 m% F" B2 r pLight->Diffuse.g *= 1.1f;* U' A2 U6 ]- N$ |- V! L
pLight->Diffuse.b *= 1.1f;2 l; T5 {- q" H8 C6 V! t( f
// oˉè* ??à? 1 P, n4 m7 _4 |6 P" F2 n
pLight->Specular.r = 2.0f;/ g$ S3 v- }8 c& g4 V4 G
pLight->Specular.g = 2.0f;
7 Q9 t, } ~/ G4 s8 d pLight->Specular.b = 2.0f;/ B4 Z: m% l5 c4 H1 P8 f9 B
// á?oˉ e- U. L2 k4 X' q4 s, j8 j
pLight->Ambient.r *= 1.0f;
. _& d5 [1 A; L( c/ o) {! u pLight->Ambient.g *= 1.0f;2 L9 n, ?! D* t; T" r2 p
pLight->Ambient.b *= 1.0f;
+ x2 Q' Z, x$ b7 }% `! g#else //__YENV
5 z/ g. g( ~$ @- t8 _ pLight->Diffuse.r *= 1.1f;
2 V2 H, @* l" | pLight->Diffuse.g *= 1.1f;) m) Z1 N+ [9 w7 m; V {
pLight->Diffuse.b *= 1.1f;
G0 b* t( m. z // oˉè* ??à? 1 B+ N0 w6 {0 W8 G+ g, ?
pLight->Specular.r = 2.0f;6 C- K7 n9 |4 K0 y
pLight->Specular.g = 2.0f;. q! B2 L @* ^# Y2 A8 N
pLight->Specular.b = 2.0f;5 e1 |5 u1 X ]0 [6 i, ]
// á?oˉ 6 K8 T$ G6 ?1 P" W7 O3 b
pLight->Ambient.r *= 0.9f;) Z) [$ m( f4 k& g/ M
pLight->Ambient.g *= 0.9f;( a! `* V. \' T9 q- k: G4 e
pLight->Ambient.b *= 0.9f;5 l! L$ N6 {4 Q7 a: d4 ^* T9 y
#endif //__YENV : ^# H( H' Q+ S, A% d/ E$ P5 |( f0 A [
+ W p/ e8 j3 |0 T0 u7 u memcpy( &m_light, pLight, sizeof( m_light ) );$ r2 |9 Y, K2 b: u) C0 D
3 C* R$ ?0 b! S/ _# F8 C
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);' k& |0 H# R9 z0 s+ ~# p0 [
D3DXMATRIX matTemp;
; s; N' C, _- _' s static const float CONS_VAL = 3.1415926f / 180.f;
- |4 y+ S. p; d" C% u3 D8 w
3 H4 u7 n* [7 N D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);# f. I! L6 }: a' k2 s& h
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& s& M% ]* G! W8 R, v
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); . n- z& K0 A' w8 K8 m, J4 W
pLight->Appear( m_pd3dDevice, TRUE );9 C$ L( B2 H9 q
6 N+ ?1 G. g& n' d // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f); C0 h& M- Y/ m$ e
// D3DXVec3Normalize(&(vecSun),&(vecSun));
; i6 M1 x* K0 w. L // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: O# L7 o; B _) E2 f5 F8 {
?1 T o9 ~6 L: I% G$ W DWORD dwR, dwG, dwB;
2 M/ y# s, b/ A! L dwR = (DWORD)( pLight->Ambient.r * 255 );
& t, V/ j$ }- p2 l2 Z dwG = (DWORD)( pLight->Ambient.g * 255 );
; n. G7 \: q& C/ d8 a! b/ `" a9 j dwB = (DWORD)( pLight->Ambient.b * 255 );
6 q6 h n( o6 ]4 a# o dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! p$ K& o! ]6 A {! e }7 M$ W. y& g3 Q
}
9 f# z9 t1 w* e k& ]7 y) X3 a, z! Q* u
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );7 v8 D9 x- J& R/ i/ K- v
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) );7 v- v O& [7 y: l8 v
::SetLight( bLight );3 \$ c$ I% M0 K5 y9 ^+ ]/ }0 z
% }: v$ T0 b( W! d+ ]% N/ y+ m // ±ao? ?D?í???ó á¤à? + ?4 X. q9 o- B* S/ A
m_pd3dDevice->SetMaterial( &m_baseMaterial );
' l" ]. o: c/ d( m. ?. i9 ~" c 9 h/ x* l5 l" |7 M& N
#endif // not WORLDSERVER
3 @ ^* _5 ^! p" l, ?. D$ [}
* g( K9 i' k3 Q9 i9 B# }5 x" w( h并更换( Q# h, S/ H& P1 D- `6 O
Code:
, U6 ~. x) O4 e; g$ U. {__FLYFF_INITPAGE_EXT4 J7 Y! a8 n* @; P: ^1 Y2 Y5 m
定义
1 A; y, [: b: k# P5 }! O4 E% D& T2 N; J' z. @ e- Y
5 W1 L, @1 w; F& P0 p+ `4 b5 C. m7 Z8 R" w' K4 C' e% b0 N
5 M: b4 x# }3 P: o5 d0 W
现在终于删除我的狗屁加速...1 z% h1 J/ p9 k" k5 Q$ J
4 O% V) Q2 M6 S
$ n- ]; q4 u5 N( o; A+ S0 i M" e; b5 E# [1 X( l2 u' [3 ]) b7 E$ Q9 ]
|
|