|
|
食品车:
' u, g" E: J% {) p+ \/ v尾翼:' C. k6 Q% U3 b) h& R, c: l% p
0 T* k$ h) v8 J9 Y
代码:" B) B* M8 |0 F
CWndAutoFood::CWndAutoFood()6 V7 K. W9 d" C$ |
{; x% b" ^# l$ t) a" r' J
m_pItemElem = NULL;
2 V% n3 r% e/ ~ m_pTexture = NULL;0 C7 D3 n( T4 v6 V- Z& u
bStart = FALSE; e2 C% E& D" s* z) p
}9 g4 [6 U5 b* X. {( I K
6 I7 }; \- F( J- h0 `CWndAutoFood::~CWndAutoFood()
' o9 e: T# V, d{0 t$ l6 z7 S/ ?7 O
AfxMessageBox( "AutoFood ist gestorben " );
7 y) H6 L# p; {# E6 A2 v2 F/ e! N) X}
3 g; [+ z Y" I# \' H% DBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
- |% d- X/ A8 w7 ~7 _+ }+ g{
* b: q, i( r! q y% \: y return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
3 R$ f# s0 W8 ^}$ Q& d9 A' S% n! y1 ^3 W1 G4 x
4 p$ j# L J S' q4 K
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )1 K A. @! I! ?$ o( N9 T
{0 l5 u8 F/ s9 L6 E: d9 Q, G+ D
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 k! h' \! t ]0 w/ i CRect rect = pWndCtrl->rect;
! Y9 s8 L' O9 f+ ]6 b& I if( rect && rect.PtInRect( point ) )
: B4 f2 f) Y/ _6 W {5 ^0 w" N1 D0 y
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
! z+ t0 s4 Q6 \5 M3 ~ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
; _4 b1 u- W) x! U' T {# H' V& q# U; ] _2 a6 Q2 c
if( m_pItemElem )
- {' e2 R' j5 x- { {
: Q& {: s. G4 S m_pItemElem = NULL;% H7 L3 ^5 c9 |! K8 B$ ^0 J9 Y
} c9 a$ Y* f9 Y+ S1 n( `
m_pItemElem = pItemElem;
9 \/ E0 w1 v3 I4 v. _, v% t m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );) l) ~8 K1 l, ]6 {; ]6 ]5 ]
}else{
2 }6 G& p" X# [; d SetForbid( TRUE );, l1 q4 {, A2 F" w9 E& j
}# t; ?0 N: {3 I1 e0 c6 b) _' `& j! F
}else{
# E# j$ \' {, H( h1 T SetForbid( TRUE );
) C% {$ h1 a* V9 M# Q ] }9 J5 E- _9 N- l2 T4 C7 h- q
return TRUE;3 d# \! c2 \" r; b) E
}
* u: F F# G. K& h+ G
# y, I8 [& k3 @6 I3 p. F: cBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ), m/ X: K s6 p6 Z
{+ T. h1 X" @! d
switch( nID )2 M' e$ R/ e3 l7 X; V
{2 D" B. H0 v1 L0 `$ E: ^
case WIDC_BUTTON3:
2 H. u: \, R- K; l { C- e0 a. Z/ m3 Y1 w# [' H
bStart = TRUE;9 ~1 u( L: c2 s( r, }$ b. ^) U
break;
* h/ f/ |1 d1 R3 S }
: i3 P1 l! S, f7 p5 k/ W! e case WIDC_BUTTON4:9 d, A0 T( r( G; W. p
{" I5 r3 Z" ~1 S
bStart = FALSE;$ M# R9 p9 O# g! ^% C' b
break;
1 n6 x& d9 e2 K" I+ F3 F. E }
! C1 `% Z* e7 }, Y9 }: J, i }
0 K v% ^5 s) s$ | return CWndNeuz::OnChildNotify( message, nID, pLResult );
6 |$ O% d% B; t3 r0 J7 u}
1 g) Z2 }+ ^$ a8 ~void CWndAutoFood::OnDraw( C2DRender* p2DRender )
. ^- Z X' H! m, w{' Q8 H0 G7 G- O. Y2 Y0 h' {
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
8 p0 O9 S/ V$ ^0 @4 ^ if( bStart || !m_pItemElem )
& L" ?0 t" m, l- \4 T% Q {
9 S# ~1 ]. ?0 g pBtn->EnableWindow( FALSE );
1 p+ {2 k# q6 w }else! O) L+ A$ ]7 y7 ^2 i8 H$ L
pBtn->EnableWindow( TRUE );
4 ^# w$ Q X; B! L, A if( m_pTexture )' A+ _; A0 J7 {) S3 V2 W
{! T, H# F( K! Z3 N
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
/ u$ D7 ]' P$ o* Z5 q$ x if( wndCtrl && wndCtrl->rect )
. D# ?, Q E2 S/ J% x& r6 |1 m {6 o/ ^* h' |. n' |0 l# E
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );6 I4 _- `) T8 B
}
# o/ w: Y+ g8 ~. O2 [ }+ X7 A6 [ A) l: [+ m; w
}. p" w+ y b' Q3 _- p
) Y+ h7 o6 ~' k+ L. g
BOOL CWndAutoFood: rocess()
$ |! u* v9 p' y{! k+ `8 g; j) b: A0 c
if( bStart )
. t0 W" p+ R0 M Z/ Y4 z {
. a+ F# N1 P& i0 |! U if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ). {2 G7 K: z! [/ g' ~8 u
{
2 g1 k' ^! s" V7 |/ t 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 ?8 { s `0 X. W* s ^
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );6 D% H [' J" X8 K( s) H
}else{
* N2 T7 z; y! N2 i% ~" Z" w bStart = FALSE;
: L/ D" X$ j P* D m_pItemElem = NULL;" \2 z; s' \7 u1 F3 h% G8 b# f8 b
}) @& ~* [/ U# Y) L7 R4 X9 k }# C3 E
}
/ H& H# \% j0 B return TRUE;
; E5 d# X; v7 O! x( R) j}% F! x% M) d8 X) U& f% B
' z+ T0 M* E6 T1 C, ?8 ?- g
登录视频废话:
: A: P5 s2 p. D9 ]0 C8 ~尾翼:
6 [7 Z0 _8 j6 y1 Y! R# m; P1 f$ C& F* p8 g/ n
代码:
f: t$ r) G6 H- i
: I! l; F& }; Q+ V+ K2 Q) f9 nvoid CWorld::SetLight( BOOL bLight ); I3 ]% ?& E: ]; W6 c0 @
durch
6 u+ y8 {- l4 h) L1 [Code: ` H; ^- S# L! E* e
void CWorld::SetLight( BOOL bLight )
2 L9 ~( Z) a/ q# _! r. C{' t/ V2 ?9 y6 O0 s6 h
//ACE("SetLight %d \n", bLight);% T: J: `4 o( O- \+ [
+ T O2 f1 c! c4 c" ]2 B2 ]#ifndef __WORLDSERVER
2 T& Y2 [- l0 E1 o DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
# U& z" D8 i; ~& R3 { CLight* pLight = NULL;
# k/ p2 ?( F5 B7 D( z4 f; y3 Q# m# d" Z+ j' H$ X: A+ F# g3 N
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
" ?- }) c! ]6 c# M/ a/ a. d5 ?+ G: d+ u w* i. O( g! w
pLight = GetLight( "direction" );
1 H# p( g; H7 Z! T( l- p$ [+ t( n- ?( V
#if __VER >= 15 // __BS_CHANGING_ENVIR8 M. ^- H6 q: u7 j6 P; A3 l
if( g_pPlayer ){ K; Y+ [3 R& b3 W4 q( C
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
) J# q. s! ?9 j7 d if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ c4 V3 V T5 s6 ]7 w" {2 o {7 Z/ C/ |; a! G6 ^5 k. q# p8 d) ]5 M
if( pLight )" L( F6 _- T+ [ Q4 }6 e
{. c1 p2 m1 @6 j; F8 a, c1 Z
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
! I. {' ]: a p4 m% O pLight->Ambient.g = pInfo->_fAmbient[ 1 ];4 k% U$ s- ^- F/ w: J- ^
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
. i: P7 ?! W! C( e7 k% ]: z) t. w# ?' D2 [# S' ?
pLight->Specular.r = 2.0f;4 d8 J2 e# \% q+ r* A7 t$ [
pLight->Specular.g = 2.0f;% s5 s2 N4 d) |
pLight->Specular.b = 2.0f;- v! T. ~% l# S8 E- I( r
0 P& C4 r0 u* g! D- U% U6 F
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ r1 g1 e+ y7 K1 D: l" k7 o3 f/ E pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
- e8 H$ I* V. o, C; G pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];! e3 X1 P1 b9 ^9 U1 ?+ q
# d0 Z& t3 ~( q" S% D* Q8 D HookUpdateLight( pLight );
2 q) m2 P" G1 e& Z# O- {* w/ a, E
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; f" h9 M$ K2 n2 R. Q& d+ d
1 a4 c+ Y: \9 v3 n$ ^" Z pLight->Diffuse.r *= 1.2f;
+ i4 ~" n1 D" V! X pLight->Diffuse.g *= 1.2f;
- K, U8 u h" m& Y- H1 f+ L+ r pLight->Diffuse.b *= 1.2f;
' T; U; f: X6 L( R# u2 ]* I6 r# d F: u# [' C% q
pLight->Ambient.r *= 0.8f;8 \# |+ i6 a. }* X9 ^* H
pLight->Ambient.g *= 0.8f;! O1 @( Z5 ~2 s% h" S
pLight->Ambient.b *= 0.8f;& G- h3 p. N4 K. O
2 N" u; }; X! w" W+ n% W) F
memcpy( &m_light, pLight, sizeof( m_light ) );- z; ^7 A0 l# [
" @) |. n" T2 a( T I
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);. H% }, H% K5 s y5 K) {
D3DXVec3Normalize(&(vecSun),&(vecSun));
3 D+ h; J$ b4 V- U, C) F pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ) ^8 z# m& o1 R5 Z1 @
pLight->Appear( m_pd3dDevice, TRUE );8 V g/ F; J/ b, D5 p; J7 t5 C
) }# G2 J3 I2 A% Q7 _/ n5 J. f
DWORD dwR, dwG, dwB;
! Q: h* E, M3 o+ l& I dwR = (DWORD)( pLight->Ambient.r * 255 );
9 ~$ X' l a/ w1 w. i/ s- j( g3 Y dwG = (DWORD)( pLight->Ambient.g * 255 );4 z, o# P+ z& W( n5 o" P
dwB = (DWORD)( pLight->Ambient.b * 255 );
- m# Z1 o% B5 k/ @7 E9 g; i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
1 ~3 D4 G! l9 h }9 W2 p0 f, l1 u' \/ R2 A4 d# m
}
7 p# ]( d( Y5 f" } [9 Z! a }
7 a6 p4 p$ k4 U+ J- f- _) j4 C else
& K" z: Z; `8 _, p( a2 \, x+ g#endif ) j. N7 S7 h2 g6 y4 O
# @, N9 }9 j1 S; _3 _ if( m_bIsIndoor )2 {3 T8 _! ~: p) E. o5 d( }0 K1 t# c
{
( P/ F5 A" I# D- h7 r8 e if( pLight )- \8 C c9 F6 x/ }
{ * }% z0 \% |1 y N) v$ _
// à??μ oˉè*
0 i5 t+ ]( @* V4 P# F3 e pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;7 z, [9 r. h( i$ \2 z! |
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
/ L# I0 p+ |, u, P M" c+ ^3 W pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& ?+ p \; J& k. W6 o
4 [: d, q1 ?! L1 q9 S4 p // oˉè* ??à?
' H2 m- y2 E/ l- {" g pLight->Specular.r = 1.0f;7 [$ z4 j3 A# V; O
pLight->Specular.g = 1.0f;7 u5 k4 t9 Z9 Q( U8 @ J
pLight->Specular.b = 1.0f;
0 l3 h$ q5 m( y" t: u5 V // àü?? oˉè* $ u9 Y0 x& n" r" y, _
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
: ^" W0 g K5 b6 `1 {9 L pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;/ ?+ @, [7 |1 L8 U0 o
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
6 m6 K6 K' \ t0 Y" h% z0 T
3 T3 C" a3 p. y! J% \ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" {2 H9 e. L3 {, V5 b0 B {7 p7 T: ?* ~- N/ s+ _4 Y { D
pLight->Diffuse.r *= 0.6f; A0 t! S4 ` Z5 P
pLight->Diffuse.g *= 0.6f;
- m2 G- @) P U, U* @# e' Q) ] pLight->Diffuse.b *= 0.6f; u6 @5 R/ N s" L8 u* V
pLight->Ambient.r *= 0.7f;
2 B) ? z# L6 a: Y) `- r2 n9 S pLight->Ambient.g *= 0.7f;: [. b7 P0 m! O; {
pLight->Ambient.b *= 0.7f;: S' { s5 Y2 t0 `
}
7 c- y6 _# w, c( b0 Z1 @8 R$ d* H7 J
#if __VER >= 15 // __BS_CHANGING_ENVIR
6 {- p9 a, d9 j0 e: j/ K if( g_pPlayer )+ n$ Q6 {- f7 o2 \: j- [
HookUpdateLight( pLight );
7 a; x0 T1 G% \- c* h4 h#endif
6 Q$ V8 r" ?9 j: H R# H memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% i7 }, \- k4 K
" l4 Y1 ^! y& e$ n7 k3 P3 X, C pLight->Diffuse.r += 0.1f;
" a% F5 y# s9 L. ^! t, g& N pLight->Diffuse.g += 0.1f;) z7 h4 P6 h* m) {* G8 L( C7 m8 T
pLight->Diffuse.b += 0.1f;
; o3 N+ x% L- U/ `- D% I x f // oˉè* ??à? ! ~) r' X' e" n0 C" Z. l
pLight->Specular.r = 2.0f;4 c: c# `& k2 [4 i; t# ?
pLight->Specular.g = 2.0f;1 ^, a0 f4 b9 @+ f
pLight->Specular.b = 2.0f;
( i& m# J& H8 k7 R // á?oˉ
" I- O3 ?8 H l pLight->Ambient.r *= 0.9f;
( h0 e. \, l0 m, u C( H* ?( } pLight->Ambient.g *= 0.9f;
: O1 j3 i! F+ T6 q8 m0 H pLight->Ambient.b *= 0.9f;
" K0 S' `; N5 r0 Y& l) R' n" n h3 X( z0 {+ b5 a; Z V4 H
memcpy( &m_light, pLight, sizeof( m_light ) );
, {- @+ V+ ^9 d" s, y5 A 1 T% C; N7 \! F+ p; }0 t( O
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );# z9 v) ]8 \8 g
pLight->Appear( m_pd3dDevice, TRUE );
, u3 b% K; |) o4 B
d/ l$ C2 O. j( `1 p- ?2 U DWORD dwR, dwG, dwB;: @8 h$ z& Q" I8 r$ g* |+ t
dwR = (DWORD)( pLight->Ambient.r * 255 );' i. K: _' `: \4 R" k5 p1 W) G; f
dwG = (DWORD)( pLight->Ambient.g * 255 );5 D0 K8 ?3 ] D2 Z) T+ W8 T8 w
dwB = (DWORD)( pLight->Ambient.b * 255 );
+ q; N* u' t8 O dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ O7 r9 D5 a# O8 ?/ E' b' V }8 q* B; f. b8 D5 p. d
}
* G# a8 b. p: A9 F- M& g; t% q else' h" L9 F: D' J) ~6 ~* N
{
' o9 N9 Z0 C0 e* v7 L, t if( pLight )5 i& p4 |0 ^" q7 N
{
) u4 N! @; C+ G$ d* v 0 S) B0 Q6 I) I1 ~' ]' C
int nHour = 8, nMin = 0;# R3 t6 k6 H0 _$ n/ M2 ~* ~% w# k
#ifdef __CLIENT
/ ^) B' b& I; v+ M% R) q- J- W, x // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
4 y3 b8 I+ |8 J& O7 f A3 w% o" m# y nHour = g_GameTimer.m_nHour;$ ?0 y' Y# J* O5 h/ L/ c, K& s9 R
nMin = g_GameTimer.m_nMin ;0 l6 M6 r6 f( T
#else4 Z9 J7 o* P$ {0 ~3 _9 _0 b4 J: ]
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.2 b% x0 J- y' E c
if( m_nLightType == 1 )
[' h3 o+ m" k& V nHour = m_nLightHour;% d: Y' I; n4 ]1 V1 q$ W
#endif
. l$ M* y5 G( f1 J9 {2 ], N nHour--;
- {1 @9 `/ l8 `; @5 b' F if( nHour < 0 ) nHour = 0;
* D6 a0 c+ b/ ~ J if( nHour > 23 ) nHour = 23;' W0 o% K! X% T+ C/ i' @
- _. A( \' j7 P. ?0 V4 Z' | //if( m_bFixedHour )5 E: j" `. M& T5 w$ i
// nHour = m_nFixedHour, nMin = 0;$ b# o; Y1 x% ?6 y% G0 }' C9 G
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
9 L# z) L7 _8 L: m* i) o+ C ] LIGHTCOLOR lightColor = m_k24Light[ nHour ];
( g9 F3 T4 y$ \; v: \; z
: p! t+ K0 A! M7 L. J" F* C) B //m_lightColor = lightColorPrv;, @. j7 E& v+ I
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
: b& N/ \+ z2 h5 \" j lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
9 }* v) @$ @& i lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;- w3 z& H: y8 A
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
+ R1 j+ \* _; _ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;4 a1 Z; N: }+ y: h5 T- @
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
2 A7 O) w, \; D4 Y" t // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
& `8 V) }: w$ `, k8 y2 s
* [( O) B) i4 I) Q // à??μ oˉè*
4 g$ N, E+ t/ i9 g: B/ S pLight->Diffuse.r = lightColorPrv.r1;( T6 ?4 [. s0 y0 ?. ]( Y& ^3 [& `
pLight->Diffuse.g = lightColorPrv.g1;
$ m$ i1 K% S' P. R* J' V" B pLight->Diffuse.b = lightColorPrv.b1;+ x2 V! x1 A1 q% Z
// oˉè* ??à?
3 O, O" E/ g! L* N) _$ \ pLight->Specular.r = 1.0f;" W/ \) [$ H" f& Y4 e& k( P( S, R) H
pLight->Specular.g = 1.0f;
, e+ _+ _$ J( F pLight->Specular.b = 1.0f;, \- ?) R' T! S8 B0 W Q+ `
// àü?? oˉè*
5 E% t' Z2 ^& A0 J pLight->Ambient.r = lightColorPrv.r2;( j; x ?! W- x) i, f
pLight->Ambient.g = lightColorPrv.g2;
% c$ j# H) K' D8 m pLight->Ambient.b = lightColorPrv.b2;
! B9 X, |$ B7 ?! \0 v" T/ Z( C6 d; r* v. Y9 [
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 T/ w$ h: x& c; ?6 x) V {
8 V% }% \) x0 i5 G pLight->Diffuse.r *= 0.6f;1 w1 ^8 Z$ G: {; s6 N
pLight->Diffuse.g *= 0.6f;
# T$ j& ~# m' z1 W* k6 z: o, y pLight->Diffuse.b *= 0.6f;
% I5 {% ~/ T6 i2 v% h pLight->Ambient.r *= 0.7f;
% P" P6 P; y# t$ z# D7 [ pLight->Ambient.g *= 0.7f;
1 i1 e8 i* v2 @" s: W2 C- M pLight->Ambient.b *= 0.7f;
8 t+ V6 S6 |3 \2 { }
8 ]: i" C) w) @1 I% F2 `$ f
& J4 }3 J8 ?5 J, G5 k: u7 g" |#if __VER >= 15 // __BS_CHANGING_ENVIR
/ Y6 {6 d" \8 p; o" T if( g_pPlayer )/ S, z" b* r' Q( W3 [* z2 Z' S1 x/ F
HookUpdateLight( pLight );
6 r& v$ F0 a* c3 Y3 L `) l# ?#endif {1 a Z( Y% D: J$ ^) E# v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );/ Y. w' |1 }- M) a/ t
" }- x+ j3 }5 k# s9 g) Z#ifdef __YENV
) M( S% h! o2 D pLight->Diffuse.r *= 1.1f;1 a* H e# D' D
pLight->Diffuse.g *= 1.1f;
/ c$ J2 C* r* c2 D4 L1 [ pLight->Diffuse.b *= 1.1f;
8 M' U4 D. ]$ f3 F, [' Y4 v" t // oˉè* ??à?
$ Y* Z0 E8 S: g1 _' `+ a pLight->Specular.r = 2.0f;/ a% M+ n: Y# J* P9 f
pLight->Specular.g = 2.0f;3 U; ?- u7 h5 c5 L6 R, I
pLight->Specular.b = 2.0f;
) W w# q% H) T/ |6 S& \& g // á?oˉ ! J' r9 e ?" L, V
pLight->Ambient.r *= 1.0f;( |, a V9 j7 b# j8 u
pLight->Ambient.g *= 1.0f;/ s% o3 V( n, T& M* Q
pLight->Ambient.b *= 1.0f;
' X9 V4 n8 h0 |#else //__YENV5 {# G* J2 l8 `. e/ Q2 a8 y) ^
pLight->Diffuse.r *= 1.1f;
! S7 x# e( }( q, ]1 `: I pLight->Diffuse.g *= 1.1f;0 d P t$ n% |
pLight->Diffuse.b *= 1.1f;
t& G/ x1 W: [7 }; L // oˉè* ??à? 3 g8 V# q7 t7 ]7 x+ _; Y- Z7 K! F& ?, I
pLight->Specular.r = 2.0f;6 U! ~; b$ \: F6 Q
pLight->Specular.g = 2.0f;
" b) q( w2 ? W3 w% ]4 R K pLight->Specular.b = 2.0f;
, f0 v0 a( z2 v9 Z // á?oˉ , M; S# }9 z, H/ J+ n$ `
pLight->Ambient.r *= 0.9f; T% V, R- k/ g d: a" l% Q
pLight->Ambient.g *= 0.9f;$ h7 s0 |7 S) U! M. O& `! n
pLight->Ambient.b *= 0.9f;& n' t+ g# A) v. U3 S/ D8 O0 A
#endif //__YENV ) r! L9 [" z, {: x
, ]1 @2 l `9 _: [/ M
memcpy( &m_light, pLight, sizeof( m_light ) );8 w* F/ a0 P5 t W
( y- H3 S6 C8 A% X D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);, _" m$ r* y0 b+ F0 Z* l0 @. G
D3DXMATRIX matTemp;6 c1 Z* ]5 M* N* t. t
static const float CONS_VAL = 3.1415926f / 180.f;
" c9 `; X. X3 @3 Q7 V
4 A' g; l3 P ?7 u. `7 v D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);. e7 S6 j+ ~9 f# T( u' Q
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);( f+ M: l0 H' {
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
5 y3 d. w: D U4 p, L3 O" q% ?" Q pLight->Appear( m_pd3dDevice, TRUE ); u7 X+ F4 O' u. r. u4 S8 z: ]
0 Z2 i( v0 N0 r' i2 X: D
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 X; [+ M; G2 I/ m& g* n" f
// D3DXVec3Normalize(&(vecSun),&(vecSun));
3 q' w+ s# w$ _* V/ w: F // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); * m" x2 k0 b8 w# G" l/ Y
& M) G9 y* g2 Y6 W. |% l: { DWORD dwR, dwG, dwB;
0 l! @; d, k$ w# Q" ^4 R dwR = (DWORD)( pLight->Ambient.r * 255 );
& \ v. V5 g% X$ g: G dwG = (DWORD)( pLight->Ambient.g * 255 );- j6 _5 V9 y/ v0 y( D( c
dwB = (DWORD)( pLight->Ambient.b * 255 );1 b E+ b5 G7 X/ O! {! G
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 3 y1 k, t" c5 J4 R- [5 O+ N
}5 A/ T6 c% E9 v: U4 W
}+ @, F$ q" K5 D$ |7 m" @* v
% w2 p2 r% w/ z! w/ W ~* g
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
2 P4 g6 }9 S4 t' U 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) );
: R4 j: R1 l0 Z& _ ::SetLight( bLight );
' C* O' [; {0 \7 L; K; H! }' \; T6 l/ ]+ X& v k
// ±ao? ?D?í???ó á¤à? + o) A) _8 h1 F# w
m_pd3dDevice->SetMaterial( &m_baseMaterial );
9 D: m( h/ _5 |* i% Q k; X5 }
7 B* v' i) { i7 U/ ~! ?% w#endif // not WORLDSERVER
2 I3 w# p' |! z, k7 G# Y}
& K- p0 o8 C5 V: v X1 Q并更换" q% l( f/ N' d3 T/ u, v2 R
Code:
; j! }3 Y l. ?% E: @7 I1 t__FLYFF_INITPAGE_EXT- S8 L/ Z7 k, B8 p+ b1 J# [( A
定义
" T, c) s/ h0 u! c0 }3 B, v; b; M# _
/ Q6 }* v: C( A, K4 V% m) I9 Q" G! Z! S; \2 l
% H `' I, a2 |0 x" I9 a# }, D8 h) a& C! `6 i8 m
现在终于删除我的狗屁加速...2 M7 g0 k& U8 ~1 w: E7 X* r7 A
1 v; a& I8 j7 N# X7 N x. q; A0 q2 T! X, e
: x5 ?2 e. z" \( Y |
|