|
|
食品车:; T8 c3 P/ [/ x' p
尾翼:
: Q8 M6 x$ S' r) W' s* h1 s r- {! s2 w9 Q9 @7 b
代码:2 E. d' t w7 {9 C
CWndAutoFood::CWndAutoFood(). J5 C1 m! o3 ^5 t
{6 }* \6 O9 ]* y
m_pItemElem = NULL;
) k9 X, J0 H7 r) x- J9 F m_pTexture = NULL;
. Y" t3 i! J' V z bStart = FALSE;: o. G6 `" f" J8 b
}) E# O8 D7 s, `) C$ y f3 d( M% }
4 ?6 A# u3 S. ^, q" j4 l+ a& l
CWndAutoFood::~CWndAutoFood()8 j0 L9 b& t# j z! E
{
% }+ P9 p' A+ x8 ]! i) d5 ~5 V7 _ AfxMessageBox( "AutoFood ist gestorben " );5 S' @! n2 t/ R" ?/ \$ H' j
}
# l5 d1 F5 ^1 d+ v: N, ]8 A, nBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )" t7 Z' M# P: D% N$ n1 _" ^
{
5 T3 c8 ]+ l$ R3 u0 l return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
2 V/ b- t$ F4 i+ f8 P/ {/ |* R. J9 `}4 K2 ^4 o7 D! _1 f/ N0 } j) J3 A
" e6 T5 m$ Z! }
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
) T0 M0 V2 o! s% O4 d M: j{
; |" u0 |5 J& M9 V) K7 [1 z LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );4 R+ e# ?- w ~; P; N
CRect rect = pWndCtrl->rect;# ^( L2 D- e! W. {4 G+ U0 w
if( rect && rect.PtInRect( point ) )
9 [* F/ A5 \; q6 j. V8 J: x {
& w5 ?: }6 ~7 c CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
: y# w' Z- c6 d6 `' W if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )4 h6 x- @2 V/ z& {0 \' R
{
1 F0 I( _9 {! x# x4 ` if( m_pItemElem )
1 U$ F6 h8 h$ ?; } {
2 s4 u2 @# c, ^, @4 s m_pItemElem = NULL;/ x& k3 A! w2 d8 f/ P
}
* T n9 l z9 i" Y9 a) g: D m_pItemElem = pItemElem;' E; F7 V& O2 i. D4 W$ o
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
X0 D E0 ?7 ^3 X( { }else{( k4 H$ Z- e/ Q% j# Q8 y
SetForbid( TRUE );& U$ F& y8 d1 D! N7 c, f) e
}
: a \% `1 A7 Q: n% q0 M/ E& b/ W }else{
3 L. F) i! U& o$ O) b6 a SetForbid( TRUE );
; \ [! v* w, y }
% d6 r6 G# Q" ^) _$ h7 o8 e return TRUE;
7 Y# H9 S5 h0 `6 ]- z% X}+ Q) d1 F% ]) G3 _
$ T* v0 A- A7 e' [4 gBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )" }, g& Y: m9 T% B4 r
{1 ?4 B K& I8 }1 M$ j! W. C
switch( nID )
/ c, U* t# Y/ f7 h' W {
! u3 K/ ?, L/ d6 n( |0 g case WIDC_BUTTON3:
" G) _3 M0 C+ Y+ y9 w& j {. T% ?3 ] D" m
bStart = TRUE;: ^, H* j: @7 j' {% I3 z" q
break;
6 j9 F6 |! J' {9 T. t }
: t6 R# k9 F: C. I case WIDC_BUTTON4:
( d, j' c- y* j" ~+ r7 i, Q {' H1 i2 w1 k2 W" D4 q* _; w1 Z
bStart = FALSE;
: f/ u; n* Y; e( g7 U8 x& ^ break;- {# j* S$ g+ A L8 P+ C9 T
}$ o$ U. E4 F8 g3 [; H$ w4 X9 g7 G
}4 z& H/ |, A4 C$ w) [
return CWndNeuz::OnChildNotify( message, nID, pLResult );9 p! A" C# r2 z
} / v3 V2 O8 ^" E
void CWndAutoFood::OnDraw( C2DRender* p2DRender )3 C# r, Y$ ] y+ X. Q" t9 O
{
2 q+ b2 Z$ y! z& H5 V/ T CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
' C. C- u/ n7 [! A, J, u if( bStart || !m_pItemElem )9 Z* K" v G/ H8 A P% N
{* P" t9 I6 y" |: i% n W: Q
pBtn->EnableWindow( FALSE );
6 T: c2 j; H9 p4 ^+ s$ B }else2 H% P0 t+ g3 L$ {8 L
pBtn->EnableWindow( TRUE );) m5 u. p4 N0 p! G1 \# E( |. o
if( m_pTexture )4 e1 ~& q/ ]4 B% p4 H
{
6 U# @ g" \8 C. V LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );4 `. f, G9 g! R! l3 @7 }
if( wndCtrl && wndCtrl->rect )
4 b# C0 c1 S9 q {# s( l, X- N% O; |% i) a
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );& b5 A7 }) r4 o" b+ D
}% I* A: c. X( \
}
+ I) u% q/ x! `) z5 F}
' W% W; c2 `& H# E" U$ i. c
" U' l* _" O) B( R& FBOOL CWndAutoFood: rocess()
5 b% g1 ~8 w9 h3 k9 h{" Y" P" Q- R6 |8 y2 E
if( bStart )* t, C B0 {; r
{
! S: P4 S* Q. n& u! c& f if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
3 f! A$ y7 g4 N+ r6 g# b+ f/ N. G {" r/ a# v4 W" L8 V- ~
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
& P4 B# z$ H( [( o$ K7 E/ Y g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
/ |4 A+ W/ A; W$ ^ }else{
- R: S9 Y( p8 x: g. S7 C bStart = FALSE;
2 D& z7 Q, l+ I m_pItemElem = NULL;- n% q9 g" D2 g- R8 f0 c; `! T7 t* I
}$ }! l' u8 g( D2 r. k: l
}
9 H, C7 F& N8 B+ B. N5 t' C } return TRUE;
2 K }9 t/ ^2 L/ _}! |" j7 O9 f. s) l* e+ C' U+ z
( @' h. t% z3 w( w! @登录视频废话:
U# [& n: S$ A1 G; @4 n尾翼:3 ~; G8 }. }! g2 O5 p
7 M" h2 i7 V7 P0 k代码:
% J2 c, A* H8 M* E9 v5 o0 e# {' n
' g7 B4 x) B, [void CWorld::SetLight( BOOL bLight ): m, s- n. @( z
durch
% i' G/ J; d7 K' \) oCode:
5 ^6 x, I- M) `5 g* L" ]% Cvoid CWorld::SetLight( BOOL bLight )6 M l7 |8 M9 t% c3 X8 e
{5 O5 @3 e" z/ g/ N, i" F' U
//ACE("SetLight %d \n", bLight);
! U+ M6 n- |% C' u8 I9 f8 [ : X5 ^6 N" h( @+ C, N y: Z( L
#ifndef __WORLDSERVER & x2 T4 }. o$ @. T. \# Y) Q+ d% h6 X" p8 z
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
) |$ e1 F3 d1 p) X% s) A CLight* pLight = NULL;. z. @; P* h# Z. O# n
8 O$ N/ c; C3 S
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
$ ^$ V$ ~9 f3 j+ D% ~' V7 @, a; B- l7 c2 \3 J( q& O, \
pLight = GetLight( "direction" );0 `3 j* N( C1 z) ]5 D( I' V' ]
6 f3 _6 A4 n# _5 y# X#if __VER >= 15 // __BS_CHANGING_ENVIR" |; T' {7 t2 w, [; U
if( g_pPlayer ){
* m: H" I ~, I7 M ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );8 |. ^% e) T" y8 ~$ M/ O
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
4 B+ h" x" G) X {
9 c3 C, V$ U* P/ H8 | if( pLight )
% d7 M" b# [0 o. o/ X {
^: v- q1 v: f" O( D q- Z pLight->Ambient.r = pInfo->_fAmbient[ 0 ];* Q$ I* N. S# M& ~0 t
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];$ |: h; A; b- l1 @% L
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
% z& ?6 S4 |+ B, C7 h1 W1 z1 u) B. D7 Q
pLight->Specular.r = 2.0f;
6 L, g. A% S E) U/ r2 P pLight->Specular.g = 2.0f;1 s, F7 a, G7 ?% d, v( d
pLight->Specular.b = 2.0f;
6 \! U4 M* o: l$ r. R; H% u4 z Z
- d% H |4 {- ?5 \7 V( e pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];8 x7 W' G( I1 ^4 g, R- Q
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
8 U7 G1 c7 ?( u8 [3 A- Q pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
" T; u7 v" l1 b 9 M+ n" V2 v1 t+ S, n
HookUpdateLight( pLight ); ) k& ]& U: _# x+ h6 K3 I7 ]$ J* G& a
/ v( e# J( d& i+ D- Z/ [& D+ ^. ^2 A C8 V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 P# s) w2 p8 b4 \/ _+ G( l2 i
" d& w7 E+ k8 X# ]+ Y) q" }# f
pLight->Diffuse.r *= 1.2f;7 Q, i* p; Z9 B5 }+ h& H& C5 C$ V6 W
pLight->Diffuse.g *= 1.2f;
! |/ E* j# U) A! t, a8 b pLight->Diffuse.b *= 1.2f;; _, o9 ^! M7 x4 V2 \
0 m# a6 [$ F r6 { e/ k pLight->Ambient.r *= 0.8f;
( G0 q6 Y8 q/ g, U3 k2 u7 d( C L pLight->Ambient.g *= 0.8f;- I# J. g+ l4 H' z- L; y
pLight->Ambient.b *= 0.8f;; u. ^* y3 s- N- \/ }3 Q
% c4 i" h3 Y7 d9 n6 d( ]0 F memcpy( &m_light, pLight, sizeof( m_light ) );8 S3 }6 M$ S# s4 `6 s( a' q" o
+ z6 H# z/ o; y& N2 q
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ @' H2 A. \6 z3 t6 j% ^ D3DXVec3Normalize(&(vecSun),&(vecSun));3 ]: ]2 O. x. ]5 W6 p! j( ?) n2 f- F
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ q8 I6 Y6 x" _2 I. ?& ? pLight->Appear( m_pd3dDevice, TRUE );! u* V0 t9 n9 W- Y
1 P, ~: q0 g0 D' b' G DWORD dwR, dwG, dwB;3 B5 V" |+ R0 l, f- B, S7 ^( S+ M
dwR = (DWORD)( pLight->Ambient.r * 255 );
C* J! c: j9 T, z" r) k& s dwG = (DWORD)( pLight->Ambient.g * 255 );+ B: v% h5 }8 F$ G( t
dwB = (DWORD)( pLight->Ambient.b * 255 );( R* |, `5 J' f' P" i0 l8 r
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) t$ d7 c2 q" P; K+ R
}+ Q8 F5 V, q' b ~, a: e
}
# ?* B& \% o6 V }
1 J& b. k, b: c5 R3 H else
: R" h; r; D; w ^5 g, p3 U#endif 8 |* ?" ~$ |$ o3 M6 u q7 |3 B0 q
3 u) ^) {5 S: A1 C. K if( m_bIsIndoor ). l2 o" H. k/ B2 X* l
{8 g3 k: \8 s/ l) _* y( I2 N# b5 N
if( pLight )4 o0 Q: s5 a3 X% T( G* f
{
1 ^* Q6 ~/ @% z- P // à??μ oˉè* 9 t5 f6 K1 c4 Y8 e2 w
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
( A# x( \6 A9 m; j4 l$ J6 R7 q8 G pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
1 w8 Q2 i( d6 \ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
/ p' A M/ ]! q9 }# _8 d- e/ ?+ `* C! x+ d Y8 h
// oˉè* ??à? 7 I4 E% k8 g& ]- {3 j4 T2 g
pLight->Specular.r = 1.0f;
9 N/ `2 ~. f0 l+ Y3 i' z1 E pLight->Specular.g = 1.0f;6 e0 {3 W2 A8 S; U
pLight->Specular.b = 1.0f;0 o( j9 a1 j a. R8 S
// àü?? oˉè* * ?* ^% v0 n+ D* `" Z
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
- M! N' c+ \4 U9 F) y pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;/ L3 o+ C( A u6 S! a
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
% N1 y# K/ J, P6 X1 G4 J% G
$ H- F4 g/ y2 c1 Z if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; g6 h+ \7 |; `$ M8 J' z& z! ]: u
{& J& P4 E: _% w3 r- D" t
pLight->Diffuse.r *= 0.6f;6 T7 F' u" ^' o5 p E, r! R
pLight->Diffuse.g *= 0.6f;% r- e+ k0 [2 l) I0 N: c+ s( A
pLight->Diffuse.b *= 0.6f;
$ u" v0 z+ y2 d) K. p& i) ` pLight->Ambient.r *= 0.7f;1 w: k$ U0 y B& v4 B9 V' Q
pLight->Ambient.g *= 0.7f;& _; d+ t: ]6 I1 J! Y, {
pLight->Ambient.b *= 0.7f;
5 E; t" a% U/ R8 h4 }5 i }
+ n4 q- y9 D2 W7 ^; f7 u
0 g0 l5 W4 K) k U. E: n4 J, A L#if __VER >= 15 // __BS_CHANGING_ENVIR' s1 ~* L! T2 U n0 O. `- q
if( g_pPlayer )
! x2 t1 Z) o; Y5 b HookUpdateLight( pLight );
p2 \+ ^* i' d#endif8 R+ n4 o! H0 o8 _; e+ i
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! X# B2 G& j8 r& J, F% P
' [% b9 V6 E( N% N7 ^9 J pLight->Diffuse.r += 0.1f;
7 ] `9 d2 O7 b# a/ Z* x pLight->Diffuse.g += 0.1f;8 E3 t N% g$ H K: v/ q
pLight->Diffuse.b += 0.1f;
, j8 ~" e8 |2 Q- C3 I2 T // oˉè* ??à?
x+ R- z% ]) _( t7 g% V pLight->Specular.r = 2.0f;5 R4 ?3 A# g' b% }* S% q) }1 e
pLight->Specular.g = 2.0f;
' j7 w# U, R! J7 F8 e! V3 o pLight->Specular.b = 2.0f;
2 B- ^# x4 P0 d3 k% s/ U4 s( c( k, W // á?oˉ 4 t1 A! ^5 [# a9 W
pLight->Ambient.r *= 0.9f;
j: u2 {. g! }) o2 ]1 v& f6 P. T pLight->Ambient.g *= 0.9f;! G$ s! D. [- c
pLight->Ambient.b *= 0.9f;
: w9 T( C, }% K- u' p! |- ]) |
# F3 C+ F9 F9 w9 w: y; K memcpy( &m_light, pLight, sizeof( m_light ) );6 A" A# _2 D, `
: B8 n) T8 j0 V8 W9 }' [ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
! X2 @* q6 T- e/ {: s6 v pLight->Appear( m_pd3dDevice, TRUE );
0 ~5 J, Q0 P' J3 C- k# R " \& g: N0 U: l6 v
DWORD dwR, dwG, dwB;
/ v( |) V- S. E8 F* @8 P9 d dwR = (DWORD)( pLight->Ambient.r * 255 );# Z8 |( L: C9 Q
dwG = (DWORD)( pLight->Ambient.g * 255 );
4 Q) o9 g0 ~+ P# R dwB = (DWORD)( pLight->Ambient.b * 255 );3 p3 ]7 C' A) @: m4 }9 ?
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
9 q; s6 b- c3 c+ l! H }* v; B% U0 L( G. b2 p
}9 a$ l5 G% e; i+ C/ T
else
4 `7 O- G8 O" Y {
3 i& P& ?" P4 J% g$ I if( pLight )6 N1 P" V; O J# y6 u! Z
{8 s" v) ` W" ~9 K0 ^6 ~
[6 T/ r0 c1 {+ E" B
int nHour = 8, nMin = 0;5 x. ^! Q4 Q9 ~! p/ T6 O
#ifdef __CLIENT
: J- y" b0 s/ l0 B0 j, d // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
0 H; ~( G( l3 P2 p; N. n nHour = g_GameTimer.m_nHour;
/ p. c7 \/ G- |) }4 a+ d nMin = g_GameTimer.m_nMin ;6 z; n% m, [: N! F- O/ H9 _* l
#else2 Z3 G! p# y) Z b8 ?6 }& L
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.& g3 b( \; @. o: j# r- c- k+ h
if( m_nLightType == 1 ). g" h: D4 c& V
nHour = m_nLightHour;
& N8 G: Q0 g2 `0 e1 B9 F2 j #endif7 P' k' V) Q* L! Y: y
nHour--;# z- D3 P3 a, r/ ~& x" z
if( nHour < 0 ) nHour = 0;
. N( ]9 \, t | if( nHour > 23 ) nHour = 23;6 A, W( ^7 ?' O7 Z9 _9 |
. { s+ w6 w% O8 K J4 S0 a, n //if( m_bFixedHour )- J. E0 N( W8 Q2 n6 L) ]" [8 K& y; @
// nHour = m_nFixedHour, nMin = 0;
8 u: J/ S0 I/ m" }: J1 h! L- Q LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];2 J% c7 z6 r# O8 t9 S
LIGHTCOLOR lightColor = m_k24Light[ nHour ];$ {, E* E! M9 N- U* o5 L: P/ r
( N8 d# k0 Q7 \* P8 V# r
//m_lightColor = lightColorPrv;2 D; c6 x9 e- P: ]! g
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;+ [* j* G8 W4 u# h V( K
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;. P/ u: O3 l! g7 V1 a' @
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;1 W9 k' |( m1 R2 t/ k2 t: F
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60; p& p2 I) I! I- l* ~3 { T) E
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
3 Q( H! m3 ?2 u1 E lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;! J+ E8 l9 b5 x$ B& V% O/ H3 F- y
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
3 a1 Z( `2 s1 e: F ?% }5 z8 X! h
) R3 O) i8 w. K$ y // à??μ oˉè* 0 o! u9 T! Q! L
pLight->Diffuse.r = lightColorPrv.r1;
7 Z: w4 G" z) D& f5 t- E! P$ y4 u7 { pLight->Diffuse.g = lightColorPrv.g1;
! A1 R7 r% @4 a. G# \ pLight->Diffuse.b = lightColorPrv.b1;2 }2 K8 G% p/ t; U
// oˉè* ??à?
% s: S9 m3 w8 p/ C- z6 _ pLight->Specular.r = 1.0f;
/ h5 J7 M( C* i4 {" } pLight->Specular.g = 1.0f;" _. ?* S1 b" `: Y u
pLight->Specular.b = 1.0f;# m, J+ i9 J' y
// àü?? oˉè* 5 J' T* S& [; B/ m* d: i
pLight->Ambient.r = lightColorPrv.r2;
6 s; J! y( m* _7 O3 o' Q pLight->Ambient.g = lightColorPrv.g2;
! @' F# D0 M4 Y8 ? pLight->Ambient.b = lightColorPrv.b2;
% S1 b/ G0 Y3 b/ I; q2 J
) v+ ?1 _9 g5 M/ Z if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
( J# e. |' W" T. v9 G1 k& ~ v5 U J {, A. B0 h& f1 n" v7 ?
pLight->Diffuse.r *= 0.6f;
% ?$ Q1 X) P1 O* m pLight->Diffuse.g *= 0.6f;
+ L5 a4 t" K2 l/ v: R: K5 @ pLight->Diffuse.b *= 0.6f;1 I% y0 J$ D8 Q' k. i
pLight->Ambient.r *= 0.7f;. k7 X! N" F! v/ }
pLight->Ambient.g *= 0.7f;% R5 ? _+ {$ f6 b
pLight->Ambient.b *= 0.7f;. @ V- @- l# q
}
7 K9 s2 T, n$ y5 [+ O/ p3 }0 z) S 7 h( B5 R* b/ d( e7 g
#if __VER >= 15 // __BS_CHANGING_ENVIR
( |/ |5 n6 h/ L4 i5 q. _ if( g_pPlayer )$ S* V, m8 K/ \4 }1 |
HookUpdateLight( pLight );
" K g" n9 Q, J& h#endif5 [/ @. F; O# u0 f
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; ~, B1 G8 P" T7 p& ?2 E9 O! \' F2 }- ^. r4 T1 h8 n; R i8 e
#ifdef __YENV$ h9 R& [/ o; v( H( r% _
pLight->Diffuse.r *= 1.1f;
* C* V/ X* Z+ S pLight->Diffuse.g *= 1.1f;
- s4 |# S+ d: X' S- X+ g/ | pLight->Diffuse.b *= 1.1f;
3 `9 G5 }" [" w3 ? // oˉè* ??à?
- K9 M. G) ]& Z3 Q# T pLight->Specular.r = 2.0f;) M/ \1 B8 G) Q( C4 B# p3 p" f
pLight->Specular.g = 2.0f; i$ O7 t& K7 j' P+ ?$ }- ~
pLight->Specular.b = 2.0f;1 a. P% ^" R6 D6 C7 j. Z8 p* G
// á?oˉ , f! q0 N9 q: u! n6 H" }' w
pLight->Ambient.r *= 1.0f;
- u. P L- w$ k! `! P pLight->Ambient.g *= 1.0f;3 c) [- s! \% ~
pLight->Ambient.b *= 1.0f;, Q7 F' Q# C1 T0 s. A
#else //__YENV
8 ^; @: M6 N+ n' { pLight->Diffuse.r *= 1.1f;5 K3 u, }5 E5 M
pLight->Diffuse.g *= 1.1f;
# O% s2 ~2 ^( |" f& }, P pLight->Diffuse.b *= 1.1f; X, o) O2 ~* ^5 M& m. {
// oˉè* ??à? $ u+ o8 N u7 [$ m+ X9 l! _! [
pLight->Specular.r = 2.0f;/ s3 z7 Z8 v! I( b
pLight->Specular.g = 2.0f;
, y5 E3 w8 n+ A$ X l# w( e! ?, B pLight->Specular.b = 2.0f;
# p6 J8 [, \' U3 {% g9 [ // á?oˉ 9 T% Z7 m* ^$ p4 J( ]% F
pLight->Ambient.r *= 0.9f;( v# G* k# B i6 M; l; s, H8 V
pLight->Ambient.g *= 0.9f;
/ ^! h! Y' A% \! |- _/ N7 C pLight->Ambient.b *= 0.9f;* a5 }6 q. a' b6 Q" L6 ^
#endif //__YENV * C9 _2 f c6 }) h& t3 @5 v
; a3 d) C; j4 z7 i memcpy( &m_light, pLight, sizeof( m_light ) );1 V4 I$ e7 S$ U" Q
/ x9 f7 b' J7 b
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);- U5 ?) i: r1 S2 G5 z$ r; U3 s
D3DXMATRIX matTemp;4 Q% K( u% r+ g$ M
static const float CONS_VAL = 3.1415926f / 180.f;" }) @( w N$ L! `
8 v3 w8 l2 Q0 n( O6 e& p D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
& `' h2 i0 p; {+ J8 t7 K, @8 i D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
" `" b2 f9 @0 e- o+ a7 F$ N- [$ a$ y pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
/ \; a5 L7 l, f3 ?" G3 D( t pLight->Appear( m_pd3dDevice, TRUE );
2 K5 Q; k7 g. Z: U, g
1 H8 B' _) K" V // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
- R0 U% j$ w# X) T% R // D3DXVec3Normalize(&(vecSun),&(vecSun));
1 @- u% S% z3 i# i* E; a- G$ W // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- I r" _6 M2 ~1 {& P* ^7 b$ T. Y0 {9 h3 A6 J' i7 ~; l# p% }
DWORD dwR, dwG, dwB;
0 i- c4 W" l: }9 Y9 [! u& g dwR = (DWORD)( pLight->Ambient.r * 255 );9 J$ \: f3 m) E6 @# E8 p
dwG = (DWORD)( pLight->Ambient.g * 255 );
9 o2 o* r2 [' W) _1 ` dwB = (DWORD)( pLight->Ambient.b * 255 );5 f% F, `: c" T% J! @* H6 {* Z7 }
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
/ `% a+ P1 g, H% U, Z& i: s }
/ z% l4 n' U5 N9 a) U- D0 H }' I) t- j, ^- E( F( K- D- l9 n
8 S/ E/ v4 ~% ]" C; X m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );9 V% \: g' w1 o* F5 f
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) );
+ a* G& t; _* b& ?; d6 ~# u ::SetLight( bLight );
" g. `$ K( c3 _& U7 o/ `. P* L* K" V, H
// ±ao? ?D?í???ó á¤à? ( ]) ~( W& F; h5 ?, K2 k
m_pd3dDevice->SetMaterial( &m_baseMaterial );
3 C6 ^0 d( o9 S1 G3 U # F! J$ h7 z& e4 G
#endif // not WORLDSERVER
0 p: L# H4 N' J& O4 U1 W}
4 {& ^* s, k6 k' K4 O0 I并更换
7 B' }5 \9 H, }9 w0 P/ L) [- N- JCode:
* h# ^1 K# t2 L( `2 U__FLYFF_INITPAGE_EXT
2 o( z1 ]* Y( }- Z; z* m2 z定义9 g1 @) f' i8 n0 `' M
) m3 x0 S! A1 T1 X; d: G4 ~
$ E# R' Q0 U x# p2 U7 b
7 W' b! ?: H) U4 y5 ~" ^7 r' E) r/ i; f9 A
现在终于删除我的狗屁加速...) P& o5 A. _, q9 G/ S
0 v/ A6 d0 D: o% D& u; V9 p
* C$ `1 I+ C' u$ |" I
) T# l, _; m% _; D& `, {9 ?' } S
|
|