|
|
食品车:
0 n1 b$ }' S4 L( {尾翼:
- d5 @7 o; S* O. \" q+ D ]# J8 v9 y* Y5 ~. O7 f2 p
代码:
. N$ s% [& K: v. p0 {9 d) VCWndAutoFood::CWndAutoFood()
7 k3 L8 b2 c" v& z- K- A1 [{- b2 U' V/ V6 [, o ^, D
m_pItemElem = NULL;
) _8 v- ]5 N; |: g m_pTexture = NULL;
/ Z4 H- M! r0 v* L bStart = FALSE;
8 n5 n0 X, k( D# u8 k}0 Z9 J+ q) M/ e* O4 C0 {
+ X3 s! M( m. b$ s+ S- }CWndAutoFood::~CWndAutoFood()/ V6 H. [; Q/ A/ u% V
{
/ X9 u, h3 J1 {- a& d AfxMessageBox( "AutoFood ist gestorben " );# L0 p C5 E/ s$ F9 h2 [
}) D F3 R4 q2 g) s( _" b/ l- A( s' I
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
' A# q+ s+ m, V5 m1 z- u8 T{
* y+ u5 X7 {6 t% U# J' ]) i4 Q return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );6 x" X ^ y) R+ U# F$ z
}
' o+ D( B1 Q) X& q; ^$ J# t7 T4 C8 f" e
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
- _- S; a2 _$ O{
/ R/ n' \ ]6 ~0 n5 n% t+ i LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );0 H& {2 K' ]( t) K B( O, A4 G# c$ u
CRect rect = pWndCtrl->rect;5 j( ^9 V$ P) r2 ~
if( rect && rect.PtInRect( point ) )( Y4 u$ _- z$ E# n7 ], G) D) P( q& k* g7 @
{
) m0 u8 b% B2 q( e+ @4 n CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
7 s& k: t3 s% S* O% k; _) v if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
. K7 L+ M9 o4 j( W {
. W5 W7 R5 U4 [" `4 }4 n; P' g if( m_pItemElem ). I6 f& j+ j5 V: ~- ^
{9 I; p$ |8 q% g$ S2 |
m_pItemElem = NULL;) T8 v3 ? H* `; D2 W/ p U
}. A$ ~# k8 V, l4 I, r6 h
m_pItemElem = pItemElem;/ r P- P. w. O* D$ n& V) l
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );' q7 j* P7 v D1 Z5 T# v
}else{
9 P4 A, m7 p# N: n* R' ~1 [2 `. a SetForbid( TRUE );
# R, l. |& R P, U2 }" t, |9 q }
3 P' G, O$ Q5 v9 l# A/ O }else{; I9 ^& J9 d1 P" g
SetForbid( TRUE );
* U* s7 C9 t6 C$ k. V }6 `5 G! M% ^# ]+ }# Y
return TRUE;
) U2 F% [. {" ^; k1 c}! k; J! Z6 I: y/ V X
0 y( q' d4 O6 Y. P5 ?) w7 z
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ): ]/ F) G7 S1 A
{$ W, o, _$ p: R: u- G
switch( nID )& t! V& ]) O, j, g
{
& i5 U) w6 w" U7 q- S8 ?1 \. R, j case WIDC_BUTTON3:
2 F7 _ j/ [9 {7 }: Q8 z/ e {5 f- R6 b6 y. H4 d$ c! i2 j
bStart = TRUE;
$ f7 e1 [) w9 F, f) Y% a3 [1 J break;
* F5 b! @* q/ Z' w( [ }! C: z, s5 E4 o3 j: w4 j
case WIDC_BUTTON4:
. p7 j4 @$ F; o8 m: j/ P {
) U% E5 `/ \2 V; v& @: m$ I; W. E bStart = FALSE;
- M9 K! j1 M; E- L/ b" | break;
% W, t' F9 R; H5 D5 e* g }, _6 c1 r* S6 G5 q% o& K0 S# W/ k
}
3 ]: Q% z" \6 n return CWndNeuz::OnChildNotify( message, nID, pLResult );& \ t( x. R. N4 R0 c
} ) B( k1 I. [1 h. J2 P0 B
void CWndAutoFood::OnDraw( C2DRender* p2DRender )7 N$ z' ~( @1 \1 ^. _
{
5 L' O* {" v+ W. T0 i! r" M& A3 R CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
" y; [; \5 m7 A) N# q* f% Q if( bStart || !m_pItemElem )* z5 K, i; V$ T! c) l" r. q7 |& f7 }
{6 p& R: f- V* ]! M
pBtn->EnableWindow( FALSE );/ t3 x( J5 t' M3 A3 @9 \4 S1 L" t
}else
- u2 W- B% G, w& N- C pBtn->EnableWindow( TRUE );
) y! S3 r2 d# R if( m_pTexture )! S+ L+ |0 r3 g; d) x' `$ j9 u: d! D
{, h, ^5 Q8 x4 v- ]& e" J7 X
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 i3 S# {- m( n, |( b# V/ ?5 a if( wndCtrl && wndCtrl->rect )7 y4 F8 s# C Z' l
{6 e {0 G1 _* z
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
% O; g" e' s6 Y }
% y- a9 |* _: U( }" [ }2 o- }2 `$ z3 c" _
}
7 _# }1 ^; \1 M* ?* }: u
/ m9 X5 s5 Y! Q, G+ _. T& OBOOL CWndAutoFood: rocess()
6 W7 A* c9 n& R{
2 N7 e. U6 {. t4 D9 }5 p8 E- Y; K if( bStart )* C2 w# a% S3 K2 ^2 z4 w
{
- _$ g! ~- L; b v9 Y x# b6 g if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )8 |/ d' T3 ^% q+ Q, Z: s& u+ }% n
{
! B' e5 {3 I$ S( `, @6 l if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
2 w+ Y7 a, ~8 U& s2 X g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );" b1 @+ }1 W; h# L M; p; T' N
}else{
& V7 W" q7 E& x bStart = FALSE;' I, {. J) T J3 w- D
m_pItemElem = NULL;
" e- B; G K5 J+ [( y+ ^ }
% t6 X# x( m9 g2 _6 n7 H# h5 J }
& \ z: n9 D; d6 c' @% X return TRUE;$ V* h5 k9 E" H U) S; B2 K( j
}% i6 @) E. o4 C# U- m
; K6 Y5 `/ K. r: h7 F4 h
登录视频废话:
2 c- `, P7 n& g1 ?% ~5 [% @尾翼: e; G5 m$ ]) A3 I
5 X: W& D Y( ^- H1 s, M代码:
# f: O. N( u) w+ O3 m3 Q
, x: j, M' s, @0 svoid CWorld::SetLight( BOOL bLight )
1 U- A9 V2 {/ K, m/ o+ Fdurch
) C e0 B! P/ g0 @# t. e, fCode:
3 ~: Q5 i) z" ^2 K D8 T1 O2 hvoid CWorld::SetLight( BOOL bLight )
% a2 N. Q6 c+ i0 B Q/ s2 i: \{
4 N T$ a Q1 e7 b8 D( t$ |$ r //ACE("SetLight %d \n", bLight);' c% B. e2 `8 h( \
: }- _, V) `# `* x#ifndef __WORLDSERVER
5 g- ?# O) d" @7 A DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);$ k# ^- Q% r- N, p
CLight* pLight = NULL;: r* U, k, A! i- j
+ a0 U9 h2 w! Q% Z a$ M
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); d; N0 D% i. o4 a
* e2 V1 H: Q! R4 \* f Z1 r pLight = GetLight( "direction" );! O: P: x# M1 a% b9 `0 s5 G
: ~, b0 g- Y A& i
#if __VER >= 15 // __BS_CHANGING_ENVIR8 d9 d: \6 [) K: m, G
if( g_pPlayer ){0 j& G: b/ p6 u- t$ K
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
0 B/ F; N& p. [% W+ X3 F if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
. S: S1 f& F* [6 X+ X3 a" K3 m {
* U& }6 B8 B4 R2 S0 o9 U, d if( pLight )+ X& ~2 z4 Q. `1 H! p
{
( X' W0 ~* q# U3 Y' v! w, H pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
! K: T' N1 D' M2 ^& N2 ` pLight->Ambient.g = pInfo->_fAmbient[ 1 ];" l3 w; L* A% r" A: e
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];. f7 E( p0 Y6 J0 t2 M
1 D( t6 S5 L7 L, { pLight->Specular.r = 2.0f;
; e+ W# e8 \ h$ J8 q0 U+ {5 C pLight->Specular.g = 2.0f;% c6 n8 t5 x0 j' x, J
pLight->Specular.b = 2.0f;
0 O+ \. W8 o# N' U; ^6 W0 N* W
( u7 l- z' C# ~. N pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];( M2 [4 B( Z% d# [& s
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
& q+ Q7 J: j6 P+ H; S2 y B' X pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];! B+ D! W; G8 Z4 ]) R6 j$ f; u d
2 y& j4 w/ [; w5 T HookUpdateLight( pLight );
) _; a7 n) ?% s4 c& q$ h; o* M) ~9 G# U, X7 m; R+ i
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ f o i0 Z' P: p + t W% C$ N, R1 k: ]% W# c
pLight->Diffuse.r *= 1.2f;
8 J, |% L a2 F$ z pLight->Diffuse.g *= 1.2f;
& Z6 H U3 T0 S. H" ]# Q pLight->Diffuse.b *= 1.2f;4 ]- C& C' M! l9 e
& D0 Y$ K% k5 Y+ q; L6 x% O
pLight->Ambient.r *= 0.8f;4 l% n4 i" m; z$ K, I* x7 [
pLight->Ambient.g *= 0.8f;3 a! h0 p, V. a% l- n4 A" u# ]
pLight->Ambient.b *= 0.8f;
( D! E! [: k9 B1 {0 }
4 N1 [8 B7 |1 \$ p memcpy( &m_light, pLight, sizeof( m_light ) );
' g1 T- L6 a1 C
. K1 m# ~% J, w3 }4 P D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);( `. f& i$ t. s* E1 R8 p' X2 A
D3DXVec3Normalize(&(vecSun),&(vecSun));
- H2 w* q% v2 V pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 Y) E% ?' V* u/ l
pLight->Appear( m_pd3dDevice, TRUE );" @! S1 ]0 l! [! b7 {
9 S! c: W+ o- o% a0 U( L1 ~& _3 n
DWORD dwR, dwG, dwB;5 @; m3 l0 i/ s" p5 v. \
dwR = (DWORD)( pLight->Ambient.r * 255 );
# N, Z3 `9 Q9 o$ t dwG = (DWORD)( pLight->Ambient.g * 255 );
6 c1 g0 F8 f5 s1 H9 n dwB = (DWORD)( pLight->Ambient.b * 255 );. q, a4 V0 A( F4 A; W
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
% d1 Z% U# e( S0 Q- ~ } z! h8 M* A) t9 m3 _' E8 f% n. K
}
0 t& w* y- Q5 @( \# x* A1 { }
, {* [0 n. N8 j else
( g/ Z9 e$ D# V* R#endif
5 h2 @, x6 K0 A/ Y! u# p+ ?2 [- T8 U+ \1 j* `9 f
if( m_bIsIndoor )
( P F! o: ?) k- n! w {# _) j4 m/ s+ Q( @) }" E3 n' D
if( pLight )7 N. D: ]* D' `7 V% j' g
{ ! ^6 g0 q% B8 e" H
// à??μ oˉè* * _$ V4 K1 ]4 [: D6 s; i- ]+ m
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;' U- f* }5 J q6 z2 t* W* P
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
/ @+ l" g: ^! V, t! \ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;5 C7 G: Q4 j8 M
9 X5 V; a, h' w% C
// oˉè* ??à? ' k2 x+ b/ f9 d) v
pLight->Specular.r = 1.0f;# g* Y4 _6 }2 ?& F" j2 ~ @# j
pLight->Specular.g = 1.0f;
8 J% @0 v. O* Z- z/ | pLight->Specular.b = 1.0f;
) m/ y! w! z3 P+ K3 ?" h* e // àü?? oˉè* $ x8 M& v$ s$ O/ o
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
) S5 p. ?+ ^" ?( Y' f6 x2 e pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;: w+ \4 f4 f6 r% D; ?4 Z
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
b, l/ t% k2 C7 z5 P$ d3 P- B( o, b, y/ [3 N$ p- l0 M
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 u& y. b% [8 O9 c
{6 x; p9 k/ z2 M8 k d( B4 g5 y
pLight->Diffuse.r *= 0.6f; H4 F! e1 R& B
pLight->Diffuse.g *= 0.6f;. g$ N; I- n H! J( z
pLight->Diffuse.b *= 0.6f;
$ {6 Y4 q( j# e S/ M pLight->Ambient.r *= 0.7f;
: q/ Q* t( y, f3 U& y8 G pLight->Ambient.g *= 0.7f;
, e. X% }3 X3 } pLight->Ambient.b *= 0.7f;
9 i0 I$ n: u/ j6 n, ^ }
7 y1 u+ B! k: {; ~# U
& j; c$ {1 v3 u, G* g2 w#if __VER >= 15 // __BS_CHANGING_ENVIR& h( ]# i, b3 I, \: v- ?% Z
if( g_pPlayer )! }: T0 j0 g4 P: i# Z
HookUpdateLight( pLight );9 H5 n: F" e4 Y( |
#endif
3 @5 w9 t% F0 }" q# w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 J" @3 l& \% ]9 k1 Q5 }7 A
6 E, s1 J$ I( g" f: @: u
pLight->Diffuse.r += 0.1f;! A! F7 s# i, y5 Q" L* U
pLight->Diffuse.g += 0.1f;
" P$ l& c+ I+ {% E. q. y pLight->Diffuse.b += 0.1f;2 t* h, Q$ O) l
// oˉè* ??à? 5 x/ S8 m, e+ Y5 z
pLight->Specular.r = 2.0f;
8 |) }# s; J1 {) F. y: |" { pLight->Specular.g = 2.0f;
. G7 l' J/ k1 |8 a V4 a pLight->Specular.b = 2.0f;: g& J- \0 \5 ]& v9 ^1 ` O% k9 ?
// á?oˉ
9 d: t9 s( @3 _ K pLight->Ambient.r *= 0.9f;
' t) I5 _5 H' Z% h) i pLight->Ambient.g *= 0.9f;* W I& n+ n' K0 d. w
pLight->Ambient.b *= 0.9f;1 M: @5 L3 {7 \5 h# p
: v5 F. _: b+ q1 g, R
memcpy( &m_light, pLight, sizeof( m_light ) );
: { n4 e. N7 Z* @. N7 l ! v$ X7 v& M& h- h& D
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
+ P5 a4 e; G+ a6 N% K pLight->Appear( m_pd3dDevice, TRUE );
0 v8 \3 }1 ]) r+ N4 R, E8 A
4 Q0 Y* ~' |* u6 Y( F* o6 u' ~- B DWORD dwR, dwG, dwB;+ {9 C7 K: I2 S2 \' T
dwR = (DWORD)( pLight->Ambient.r * 255 );
/ K7 g: Y& q6 Y. G7 @ dwG = (DWORD)( pLight->Ambient.g * 255 );
- T) Y! U, a/ S$ j1 P dwB = (DWORD)( pLight->Ambient.b * 255 );
* ]! G7 U0 {' _ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' {' i! m/ E- f. n3 ] }
: L) O* k$ H/ }1 W F/ R }; |: f$ x6 N. G8 [2 j6 D! _
else
5 ]% t, ]- X, c4 c' e {
: s! s& r. {4 o. I/ q1 ]/ N if( pLight )
/ B2 Q' m. `, a5 o/ @ D3 n! o* _- j {
% \1 T: a5 R _: H, K! O, K
+ E6 ?9 f& Q3 |7 p$ Z int nHour = 8, nMin = 0;
9 U# P% a7 a/ [* ]# H #ifdef __CLIENT$ E$ A1 i0 `6 F6 X1 s8 O
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
/ Q; ^/ W: X0 i* |% ]8 r/ l: b' h nHour = g_GameTimer.m_nHour;8 ]/ n3 N* L+ o' c9 E
nMin = g_GameTimer.m_nMin ;9 X: \0 D" Y6 q, O' R+ s
#else( [+ y% [; _5 W* j) e
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
: {: Y8 d' J, M& B2 c0 j1 M8 H if( m_nLightType == 1 )
9 _! H8 ?" r* { _ nHour = m_nLightHour;% S! O b7 @9 o. M
#endif4 W! z* V- J% _. R4 o! n/ {
nHour--;
5 ]0 ^! X# f7 k1 _& H$ S if( nHour < 0 ) nHour = 0;
8 h% Q/ S6 b9 s/ s( s* s if( nHour > 23 ) nHour = 23;8 s" F9 T! [9 |" F* a
$ c% a* D9 H7 p8 @; [
//if( m_bFixedHour )4 K. n1 v* G2 ^$ h- \/ O4 _
// nHour = m_nFixedHour, nMin = 0;
! e7 a; [3 U$ Z! `3 T LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];2 ^- C9 {7 Q& r& r' R5 \
LIGHTCOLOR lightColor = m_k24Light[ nHour ];% a+ {1 R# y' P; U/ o
9 [2 t5 ~) z! y; C& A1 L //m_lightColor = lightColorPrv;! x# H3 e& u7 l* B0 o; d# T& W! P
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
# A* f* s3 z& k' O, o& Z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;; f/ g' Q Q5 H. w7 e8 R5 k
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;, ?! U: ^" x9 n0 r
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
8 Q) \5 |- T! B7 a lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;) ]% m5 [; Q: j* k/ L" \% \, g, \
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
" e9 H0 R2 r5 Z3 R0 Y/ { // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)* _: `5 N6 O, x: v
7 t- q1 z; ]" W3 y // à??μ oˉè* / \2 R! E+ D; h2 \
pLight->Diffuse.r = lightColorPrv.r1;
8 W& ]% D! d0 _" L, v1 `& o6 c D9 I9 d pLight->Diffuse.g = lightColorPrv.g1;
- M5 I' P, k5 ]8 n1 z$ `7 b9 a pLight->Diffuse.b = lightColorPrv.b1; t, H) o. D ^ y5 V
// oˉè* ??à? + y5 L1 X! p9 h
pLight->Specular.r = 1.0f;% _9 s7 j' e, ]& m/ r6 B& D
pLight->Specular.g = 1.0f;6 H* ^5 J& q a" D; N6 Q$ G
pLight->Specular.b = 1.0f;
* q+ Z" C/ Q( m7 z8 l- l- l // àü?? oˉè*
6 l( p- P1 ?3 }, R1 u. A pLight->Ambient.r = lightColorPrv.r2;& y# F# \( W+ ~: }7 B. w
pLight->Ambient.g = lightColorPrv.g2;$ H5 A0 f; U, {. E- ~6 q
pLight->Ambient.b = lightColorPrv.b2;
- a9 J9 e" ]/ \- n9 ?' D: R8 p0 @6 v$ r
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 D1 Q1 w: U/ Y1 A) x) f& t4 o
{+ K: \7 M+ A6 M; Z T
pLight->Diffuse.r *= 0.6f;/ [" b. G% L. d: _) i; k
pLight->Diffuse.g *= 0.6f;$ Q4 C/ l% V" h4 z/ Z
pLight->Diffuse.b *= 0.6f;
* Y* y2 |/ W$ |' J pLight->Ambient.r *= 0.7f;
. i% z+ A; R# v pLight->Ambient.g *= 0.7f;
8 n+ ?2 i7 j4 Q# B5 k pLight->Ambient.b *= 0.7f;
3 R2 p9 _+ Z+ ? }; j) D5 v/ |% f$ U
% E \( |- a, H, E" W' s/ N& Y4 e4 Z
#if __VER >= 15 // __BS_CHANGING_ENVIR
: q% h4 a$ m0 i4 }1 X$ B- g) ` if( g_pPlayer )3 ^/ o7 I% H: |6 \! k) v
HookUpdateLight( pLight );
+ Q' G8 S5 f) S$ \5 k$ l) W#endif& O) n* g5 K* _- L# A* c
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 s# M$ [1 M2 g2 b2 g3 w: v9 _
. b8 r1 L/ H2 W8 A: z8 K9 n
#ifdef __YENV
0 o, Q: |6 ?3 ^% a' v$ @ pLight->Diffuse.r *= 1.1f;2 r r6 {& Z1 m
pLight->Diffuse.g *= 1.1f;
8 V8 ~& t6 n" i# r1 e pLight->Diffuse.b *= 1.1f;' A2 \. E8 f* f5 b# ~
// oˉè* ??à? b) h* P5 @% R
pLight->Specular.r = 2.0f;+ [6 J5 `6 h! `" F Z+ d
pLight->Specular.g = 2.0f;7 K5 N3 o5 s" l
pLight->Specular.b = 2.0f;& \6 q0 {4 w( h
// á?oˉ
* J4 v9 M& B8 C pLight->Ambient.r *= 1.0f;8 ^: u6 F. w# J7 j0 p5 _% X' _( n
pLight->Ambient.g *= 1.0f;- K+ ~% c/ C5 {( e$ s
pLight->Ambient.b *= 1.0f;
% E$ l5 ], P- J' l#else //__YENV) t$ C4 X6 r7 Y3 i; U% u
pLight->Diffuse.r *= 1.1f;- s7 |% k+ q4 _& T; m' V% N# B/ g1 @
pLight->Diffuse.g *= 1.1f;
" Y, ?; C* p0 g pLight->Diffuse.b *= 1.1f;
: d% [, `# D* H8 _ // oˉè* ??à? $ W% X9 l# |5 p
pLight->Specular.r = 2.0f;
' O* h5 e) ?5 ]; j, ]- S pLight->Specular.g = 2.0f;
, Q# d( D6 s3 ]' H7 r pLight->Specular.b = 2.0f;( [( b" ]/ x9 [2 v/ j3 W, Q, p
// á?oˉ ; Q4 i: E& I6 S( J
pLight->Ambient.r *= 0.9f;
: n, L! W' @& o( u- \ pLight->Ambient.g *= 0.9f;7 i1 N/ i; c8 _( X- m5 x
pLight->Ambient.b *= 0.9f;
- w2 a6 }% i9 R, G+ S#endif //__YENV
1 r N1 q* P+ _. O2 c' l: n: t
# g& y& s5 x: V: {7 G" K memcpy( &m_light, pLight, sizeof( m_light ) );
& p3 ^ E4 t" z! B* q) v% Z( Y
6 z" o5 ^# H$ O& E! n4 F- W0 e D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 a1 n8 b8 H0 {4 Q
D3DXMATRIX matTemp;
. {! Y1 o L$ o static const float CONS_VAL = 3.1415926f / 180.f;7 X' F6 f9 ~' B( n' N
( q y; x0 V1 y8 s& C a u D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
5 d" r2 U9 j9 ^5 D: x D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
9 Q, w" _8 F* w( j9 n6 ]% e pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); / o. k0 V0 @4 l9 [" a! d$ |
pLight->Appear( m_pd3dDevice, TRUE );
& h2 A* p6 o& ^$ q; ~8 s! v1 ?9 R+ K3 a7 J+ ?& a3 q1 v
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 w( R% E# S) H
// D3DXVec3Normalize(&(vecSun),&(vecSun));1 h& t2 q# ]5 H: t" _
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 \8 }0 k6 i1 `; ^4 C& X
) n9 j7 X; D1 r8 U! V6 z DWORD dwR, dwG, dwB;. t- d) m: I* D9 A. j Y
dwR = (DWORD)( pLight->Ambient.r * 255 );9 L" G* r! |1 }* K5 c& F( p0 w& w
dwG = (DWORD)( pLight->Ambient.g * 255 );
# p T: O1 z% [ dwB = (DWORD)( pLight->Ambient.b * 255 );7 J, o8 F) G+ R7 y2 Q- e
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 3 t b& o! \* i7 J: o) @- [
}; _+ R! }$ i5 |
}
$ R# |0 L9 P6 W5 F0 S8 N4 x/ |' k$ m5 M1 N ]
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );+ ^9 w, P [7 [( ~* J
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 ^$ w2 R y* @$ z; M ::SetLight( bLight );
( P# Y& J3 x; O6 L* h" g" b! q' ?# @' C; K% Y6 {, r
// ±ao? ?D?í???ó á¤à?
' p; B. O1 K) I+ _' @ m_pd3dDevice->SetMaterial( &m_baseMaterial );
: S+ i% q; Z' t0 G0 [ ' a8 x# { Q+ y& `$ K, [1 U* q
#endif // not WORLDSERVER
' r. _7 M; m! S- }8 {! U}* A L% u+ c+ R$ x' R2 l
并更换) L$ W0 ~3 D+ d4 h" \, U8 }1 o! e$ c
Code:
+ H* V! |# B' t5 ]2 @! T! Z# c__FLYFF_INITPAGE_EXT# Z6 s8 i( {% J0 U& u* t% z+ I
定义2 @3 z7 I' J$ r2 y' w% {3 I
- u6 t, Q9 X2 ?
. v* d+ e4 @* g6 h5 u
" v7 J% A. h, Q: y4 H2 j1 O) a" D
+ }6 |) D4 f: S2 i ?现在终于删除我的狗屁加速...* g' Z/ y, }; y$ X# [/ `& [
3 ~# w, t C$ o) k0 l+ P1 H- J$ D
) L# R7 F% f/ t$ B% S& y0 {
2 b+ `1 h2 ~: S8 m3 G |
|