|
|
食品车:# m! Z; `- ]7 N! [# _% ]/ w; p
尾翼:
# s i7 p$ o+ S& G; [
) M1 O) `- v9 w ]! I8 g代码:! i% M9 c$ N* q
CWndAutoFood::CWndAutoFood(). H# g4 h" `, v2 l
{0 e2 a l% @( S* [$ F1 \- R
m_pItemElem = NULL;- g3 o" A( b0 G/ Z) ]+ o! d
m_pTexture = NULL;
. e$ Q: k' z- i! n. P0 ^ bStart = FALSE;( P8 _, \$ U; z+ M9 ~" v9 l2 c9 {
}
d3 o" `9 i; {( S9 d4 A3 u
; K: u: k' B- V. j! |CWndAutoFood::~CWndAutoFood()
9 i, I: P; v# m: w{ ?& I: v# q6 v; x/ l- E# v( M
AfxMessageBox( "AutoFood ist gestorben " );
+ D7 g* n% Z0 G S# ^( ` q}# [- z' O$ w0 ?0 P3 a- \
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )8 R& N$ J; u! A1 @8 _6 v
{/ e' P8 O: M& c4 n, D b
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );! p8 S8 d/ C& R+ ?3 Q) O. u
}
. [+ D7 x _) I0 y9 z! O0 d+ ~! J6 Y& n6 t# O0 Z
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )) T4 |4 }5 l& V) q; D, y6 C0 u
{
+ k7 e X4 x3 k. k8 X9 R) {' |- A' N LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! h( X& T9 B0 h1 ]2 C: d- L, J CRect rect = pWndCtrl->rect;; K+ Q- n9 t6 n7 ~1 p8 z
if( rect && rect.PtInRect( point ) )5 m r* t1 b8 N; a
{3 y6 O, f* D5 t& `3 l( v
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );4 k' u* v9 E u6 A' ^3 J
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
# O' @, J' t0 R9 l6 Y+ R {
$ ^2 v! ]. \- p4 n: p8 {; F if( m_pItemElem ); w1 y3 k' T5 |1 F3 L
{ @5 X1 A( U. G X1 z
m_pItemElem = NULL;* A& Y6 i* ^- f8 S m
}4 s% {# ?3 K r Q2 ^
m_pItemElem = pItemElem;3 {/ ^- w% W8 ]
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );* K8 @ r( l0 ^# l1 r3 m2 ~) ~; Y
}else{! `% J% J6 _# H$ A
SetForbid( TRUE );
- J. v, O" @1 v$ _! Y+ ]2 P }! V0 r2 A/ t* I: M4 ~+ b
}else{1 e+ X( n. s) D: Z* c1 `0 Y& v
SetForbid( TRUE );0 ?( B- O. o& b2 F9 T. N% m
}! V. t8 N$ B' G" Q
return TRUE;
( U. S8 | Y! m# R2 Y}, ]9 r. ~+ s/ y% ^$ X7 _: D* V& w
8 K2 F' x4 h3 o1 a
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )8 j' \& X$ ?/ Q) H/ M. _3 k
{: }) j" e$ U7 S1 Y! c- o4 v( c% u, {2 v
switch( nID )
. _0 h( z2 D5 o- _. y% E+ P {; D; b4 O0 Y" l5 v
case WIDC_BUTTON3:. n5 y! M |1 v% i# M
{
& j; V* I1 i. W |+ H bStart = TRUE;
# p. f8 a+ G) d4 Z. [ break;1 b* e( Y1 S; {
}
8 v$ g% O( N2 e/ ^" s4 }8 `0 t3 F% E case WIDC_BUTTON4: R# k8 G1 Z) w- r! t/ [
{
$ U3 C6 A! N. X c bStart = FALSE;7 Z2 Q$ G8 K* B! m, O) P" q
break;
- C9 \9 U( W2 z* o# L* V/ _: x& i }
. U9 G& r9 b/ p' U: P1 ] }8 E) e2 b( _6 y0 F0 w3 l
return CWndNeuz::OnChildNotify( message, nID, pLResult );' _* q" {+ q0 C, `4 \
}
7 x/ B' ~$ z f$ v/ ^9 m8 G! _void CWndAutoFood::OnDraw( C2DRender* p2DRender )' R) _- C: T' ~' ~8 h; j& j
{
# i) `" v* t8 h$ |5 m* k CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );# }1 C/ j& J5 M( T) m
if( bStart || !m_pItemElem )
$ N8 p% l2 v6 O) E/ p {
) {# T, G/ `+ C2 {- j pBtn->EnableWindow( FALSE ); v7 _7 O* E$ E k' k7 i5 l: g
}else; }3 M3 E# @8 T% M; }" @
pBtn->EnableWindow( TRUE );
2 i8 h, N. h5 Z+ m0 C9 I& t if( m_pTexture )0 v% R8 {/ t5 Q$ |6 }
{
) L# H% s7 K o LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
/ A% r- ?7 O2 I$ d# ?/ L& M l if( wndCtrl && wndCtrl->rect )
% k- T A0 `; T7 Y9 ^& G* ? {, m( {+ G+ a |: m: E- a
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
, T8 f+ W1 D6 s' y# r }; d2 }% y8 c N& I7 ^% |- U7 c
}
# R S+ ^- z" I+ |}
8 D1 H$ T- ?0 }( e* E+ v4 M" O/ V: @' M; A% A: Z$ Y5 ]$ _
BOOL CWndAutoFood: rocess()
# G1 ~, }% B+ |8 {4 S }1 c{. j* q- d% u' x1 h8 Q
if( bStart )4 g- S: ` D# x% Z/ _; o
{% P7 ]. X+ t2 o: B9 c- @
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
) T7 b, C* G4 R* j! s {
) H9 B0 j$ ~1 i3 U* r9 [ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )( y5 \! Z. M7 ?1 k1 m" p" Y
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. {, O+ E. G T7 G; l- K+ }) x
}else{
1 v% `$ d0 ?1 X6 H! n/ j bStart = FALSE;/ V! [1 ~+ ^4 b. o0 I7 m
m_pItemElem = NULL;1 M, R1 f% z. [. a2 |" c3 ^: f
}0 B8 F; M5 V1 ~. U- s$ Y2 N
}: B, T2 @* x0 V# ^+ @1 j
return TRUE;7 k7 u7 |5 s5 A6 _" c# [* c7 G
}
O5 w4 Q- ~( {1 a& S* u
6 c: u1 @' L& i) P登录视频废话:
' C/ q; r' p- y G尾翼:/ J; r; S- v" N1 a( P
3 K( H( G) R& z5 U3 T# h, v7 ~& X3 r代码:
6 h' ]# [+ B! A$ G( R, ^, ~
9 ?' f* }; r, u. }" evoid CWorld::SetLight( BOOL bLight ) o8 H/ l H& `# w8 p) e# \
durch
& Z- I+ Q; \7 j3 ~. A/ A; PCode:
4 s$ @2 R% p7 A, y) vvoid CWorld::SetLight( BOOL bLight )
$ N* E* l5 y& {& A{( V2 @) [: j, {1 s
//ACE("SetLight %d \n", bLight);. o2 M: B* O I3 u8 z
3 v4 M K" p8 V N#ifndef __WORLDSERVER
3 I' w) q* W8 }' a- B DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);) b& h. S6 n% X0 U0 j, |) @
CLight* pLight = NULL;
: j/ c7 O0 u4 ~- o+ c5 }. n3 w/ C, T+ f1 W9 L3 F
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
" i$ C$ b0 z8 {
! u X) p+ z9 T; u0 M5 E pLight = GetLight( "direction" );2 H. H8 G" O d( U: p1 [( F
( M5 b6 S" R4 K8 r#if __VER >= 15 // __BS_CHANGING_ENVIR
- {; n5 A! J0 E( C) Y; d if( g_pPlayer ){7 } B7 A* x- {
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
( W% I# N& [1 K! N if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
7 j" M0 l$ t8 v | {! | }0 u7 }" i4 D0 H' r/ u
if( pLight )
1 y# O/ l2 f' X7 X. x5 o {
& u9 a$ u; e; s! l- w3 D, y pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
$ s* W! W$ J7 i9 o8 t. d4 G pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
( U" w+ t" i& t, @: O, q pLight->Ambient.b = pInfo->_fAmbient[ 2 ];$ |7 a$ W) O. `/ k' B
! }5 v5 [/ Z, m, ?
pLight->Specular.r = 2.0f;4 I+ W: ~1 u- H; E
pLight->Specular.g = 2.0f;
8 ^3 \' {, J- E) i3 E+ V pLight->Specular.b = 2.0f;) _ K4 Q# B0 W6 i b
: U0 c- d0 G$ W
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
1 A) l L2 l' z$ {! p/ _ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];& n- Z/ F$ \4 U; v1 z
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
% |$ B2 d" c! V& u6 T + |! q F; p$ F: e* _( Q# _$ n' J
HookUpdateLight( pLight ); 2 @' l$ Z/ r0 ^
! T, A% j" W$ H4 S
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" v8 n! _' V6 T) P8 M
+ P* P5 |3 @8 q: M pLight->Diffuse.r *= 1.2f;
* @: e8 M7 @' x3 U' V" C pLight->Diffuse.g *= 1.2f;) k! f0 X5 |. O9 T
pLight->Diffuse.b *= 1.2f;
5 ?. B5 o+ ~5 t
2 E% w9 e* g( M pLight->Ambient.r *= 0.8f;
" m2 E7 F. ~7 E4 N5 _" Q pLight->Ambient.g *= 0.8f;
) p( O/ u% B& u$ K pLight->Ambient.b *= 0.8f; K/ ?6 e. Z! f5 t+ O ]" ^
- m* U$ h( {; z2 s, P' I memcpy( &m_light, pLight, sizeof( m_light ) );$ y( h# S2 M( {- N5 Y' O
+ c; [ P, E1 [, }
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
! Y7 h6 |, |+ w, N/ s, ] D3DXVec3Normalize(&(vecSun),&(vecSun));
) ?: p/ O0 a6 e pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); % ]: ?8 f6 E, u p3 E& O
pLight->Appear( m_pd3dDevice, TRUE );
/ P, T9 I3 a+ z5 { " o( U0 v+ J: i& B2 a; a
DWORD dwR, dwG, dwB;
$ P) W7 s% n2 u* ~ ~ dwR = (DWORD)( pLight->Ambient.r * 255 );0 T0 O( X* T. {2 y7 `
dwG = (DWORD)( pLight->Ambient.g * 255 );8 A& L* @( J) ?
dwB = (DWORD)( pLight->Ambient.b * 255 );, j: L& H+ {7 `) Q0 h5 i" n4 Z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! f8 Y# g9 G1 d$ z, J9 O
}
3 O1 I2 X" g% F% ~4 Q0 z+ V- f }
) d4 q4 u. P: N) y5 W7 w9 K }
3 Z7 V; W9 P' a9 }) g# i& K3 ^# q! ` else
) N. V7 m; g: R#endif 7 h, e- j# s& ^
8 [9 M$ l* m: Y' t; a9 `4 {1 V5 | if( m_bIsIndoor ): ]1 A! Z( E- Z& s/ J* `6 Q
{
& ?. ?2 b7 ^8 V+ n5 G" Z if( pLight )
2 [& M$ K" n- D, ] { ( N1 T' p9 J: \+ {( A5 r
// à??μ oˉè* 8 m8 p0 Z2 b# m& G
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;4 r% X8 t( l. F3 s: j; K
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;" q& X0 ]2 {; E! Z4 B3 K: O
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
% o6 Z' |3 d; T5 ?$ v% }5 J& y! M% r! t- Z
// oˉè* ??à? ! C5 Z4 \; ~' P8 p2 w
pLight->Specular.r = 1.0f;- U ]+ [& W* T. ?6 g+ e# \
pLight->Specular.g = 1.0f;7 w+ `6 Y+ m+ U1 @2 w0 z& B3 e
pLight->Specular.b = 1.0f;
h, a5 E4 J& X$ i // àü?? oˉè*
8 R X( _1 }* G# X pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;4 a1 p: U% l, M, ]
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
9 d+ x* ]$ L( x; t/ o9 b pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
" F0 _9 \7 p2 O/ Z- K( t. Y, h
# Y2 K( f! i5 F& n- I if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ g3 y7 Q2 @! D8 o3 ?/ i" x3 K$ }
{0 N2 n" F2 p- i& _5 j
pLight->Diffuse.r *= 0.6f;
1 p/ a, u7 k0 Y9 W5 l pLight->Diffuse.g *= 0.6f;4 P; a7 ?6 f% c
pLight->Diffuse.b *= 0.6f;
6 j( A1 ] L8 Z& t/ \9 `. K pLight->Ambient.r *= 0.7f;
" j" r, I# x9 b; w$ R- z) } C6 |2 e pLight->Ambient.g *= 0.7f;
! t1 @6 T* Q. V8 S7 O pLight->Ambient.b *= 0.7f;
7 |3 |: q2 z h/ f- P4 y }
. ^& P$ `' ?5 Q9 B9 Z
5 z; o% P } j' p( ]) ~#if __VER >= 15 // __BS_CHANGING_ENVIR
4 j8 A: {& a+ M9 Y% f5 `6 o if( g_pPlayer )
6 S( A+ q$ J& `1 ` HookUpdateLight( pLight );/ S5 B6 ]4 V! V* ]' q- J y4 \. H
#endif/ r$ `; x. f0 p2 d* O
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
. y9 B6 ~# k# j* x8 G! y( |4 L5 o- w) @$ G7 u( \; C2 i
pLight->Diffuse.r += 0.1f;( S; ^3 L' c5 ~* a$ b9 L1 V7 L z
pLight->Diffuse.g += 0.1f;- F1 U' H/ r5 w% ~! f# Y: a9 D
pLight->Diffuse.b += 0.1f;+ I9 F8 D7 N; B1 ~& J7 `3 T6 l
// oˉè* ??à? % M T. q" c" b! k
pLight->Specular.r = 2.0f;
' G6 y1 {- u. j8 B7 j( M- u( T pLight->Specular.g = 2.0f;
& L- X( C/ |& `/ r pLight->Specular.b = 2.0f;
% }% m8 a' b# k% F! G& X // á?oˉ
$ L w* T8 M- I z* k' l( g6 S) b3 P pLight->Ambient.r *= 0.9f;
& U5 l! A2 T7 C# B( x: n) Z6 N: z pLight->Ambient.g *= 0.9f;- |! b9 G5 c; D" }5 f
pLight->Ambient.b *= 0.9f;
: o' J* r; @9 y# Z' @- T' X- R$ A, w; ~; l7 {( ^
memcpy( &m_light, pLight, sizeof( m_light ) );
* L0 ^% O/ | c: U, L
* P1 f3 e$ ` q; z* u3 T pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );1 K+ p8 _: X. ]8 |- L! _$ r
pLight->Appear( m_pd3dDevice, TRUE );
7 G' B. b f: Z( |* `0 W
2 p; M& o' t, j8 U% Z DWORD dwR, dwG, dwB;% h( }) ^( m/ W+ F6 g
dwR = (DWORD)( pLight->Ambient.r * 255 );
. n* R; T* @+ c G& m+ w dwG = (DWORD)( pLight->Ambient.g * 255 );
$ n1 N& M7 Y" K1 l. \& }4 ~' @% m: l+ J dwB = (DWORD)( pLight->Ambient.b * 255 );. U! }9 H/ j+ M# ]2 x9 R9 [
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& r3 D3 C8 F8 _+ ~: q
}* Z; E" j8 u, k8 A# N
}
; {0 |2 N% X1 u' z else
1 } u5 A4 N( y6 \ {# D7 E8 O& F* m+ M7 B
if( pLight )9 b6 v2 X& }( N5 S
{
& {: [+ _) D% @+ l- E
& X/ c* L) T$ c, Y, x) H int nHour = 8, nMin = 0;- e4 t4 |2 ~* ~+ p4 c
#ifdef __CLIENT
+ Y3 h) r& s( v) Q# W0 X // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
6 s1 ~, z1 Y+ n/ e% d: I nHour = g_GameTimer.m_nHour;
1 e/ k/ [5 E/ `: W' d3 e4 j nMin = g_GameTimer.m_nMin ;
- |. d7 y2 r S' S #else/ D* W# [2 J7 |3 j' A- I' O
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
$ O K" I l3 V- c1 s5 f if( m_nLightType == 1 ): c+ N) I8 m7 T& c$ S U
nHour = m_nLightHour;
! h* T3 U9 J$ g; F: { #endif2 b% n2 a4 ^: ~9 {+ I
nHour--;
4 m8 P$ v8 }/ I& y if( nHour < 0 ) nHour = 0;
) a# \3 t8 n0 m1 w I if( nHour > 23 ) nHour = 23;
1 L- \ r6 b, _; q
" g7 u& H v r# E5 H //if( m_bFixedHour )" J' {( f8 x8 g) B: b1 N
// nHour = m_nFixedHour, nMin = 0;
. c& O% F6 H$ F- C LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];3 A, ]' X1 o! E( g
LIGHTCOLOR lightColor = m_k24Light[ nHour ];5 ~) w+ }; u* U8 i
+ T/ b- z- {" i2 `: i% ]9 n/ J
//m_lightColor = lightColorPrv;
3 a' W6 |! o5 N2 M. G lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;) y" {0 ?$ ~. ]7 q3 `- a8 d2 K" d
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;- l5 [6 o, J0 {. v3 o2 D+ w
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;; y9 W. }$ Q3 w; g
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
; v6 N/ v$ ^7 j) Z3 l- j lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;( B: m4 H) L, k& S
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;# P' O6 P! _* h( ]
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)& P5 V4 S0 P5 ?1 K+ T
) w) _% b l( U0 y2 [# n, m+ [
// à??μ oˉè* 6 b- a' H5 k( e8 g- w
pLight->Diffuse.r = lightColorPrv.r1;
1 M4 f1 p& L7 P1 O. b% U; }! N6 N pLight->Diffuse.g = lightColorPrv.g1;* ]) |3 x" B+ G% q3 n( h
pLight->Diffuse.b = lightColorPrv.b1; i$ z7 ` W+ q8 Y. r
// oˉè* ??à? * K2 l" H" {1 F3 _$ l. P: ]1 G
pLight->Specular.r = 1.0f;
6 _5 M7 V1 B6 v pLight->Specular.g = 1.0f;
' U! Z. \5 V4 X pLight->Specular.b = 1.0f;+ _9 {1 P' c* M
// àü?? oˉè* " S0 t. C9 d) T: q' \' k" |
pLight->Ambient.r = lightColorPrv.r2;
4 C) y* v8 x* W6 U pLight->Ambient.g = lightColorPrv.g2;7 ~1 Q8 U+ g" h
pLight->Ambient.b = lightColorPrv.b2;
, C5 ^$ G" O; ^3 C: I ?4 }; O) w. d
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
) a8 q- b& J& f) P( Z7 M" W# } {% j& [. |& G Y4 ^
pLight->Diffuse.r *= 0.6f;
" \" ~' u( ~0 c4 z) {$ f3 |' l T pLight->Diffuse.g *= 0.6f;! J6 p" v( A% e/ a* z
pLight->Diffuse.b *= 0.6f;4 n; j# ]8 V) a7 J. G9 @6 B7 _
pLight->Ambient.r *= 0.7f;- B3 }, T+ `6 z# v- d! N$ \
pLight->Ambient.g *= 0.7f;- N; l5 D1 J* j0 P/ N
pLight->Ambient.b *= 0.7f;, }' N1 N) M8 Q: p- ^) B
}7 {( u( h0 U; W9 _3 e7 {
4 U! }' x. w/ r& P
#if __VER >= 15 // __BS_CHANGING_ENVIR
% N/ l; g/ C Z% Z4 w' e- r1 @( X if( g_pPlayer )
8 Q" T: g; P: |, {1 b I r- \ HookUpdateLight( pLight ); % Q$ I( w: B6 {0 `6 Y4 i
#endif
9 f9 Q, V# o+ m3 W* k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 }$ Y6 c9 `' k N* z7 B
+ ]. q' m" i, e! `; I- k% {
#ifdef __YENV
2 M# B2 Q* L2 J/ ~5 m7 W pLight->Diffuse.r *= 1.1f;
) S) ?; ]7 G' S2 N" @ u% [3 j pLight->Diffuse.g *= 1.1f;
4 e6 g" }) Y% n G! }; w3 ~ pLight->Diffuse.b *= 1.1f;
/ S9 c0 p" U: M% l // oˉè* ??à? 1 e/ z* E) O3 F' v; x! D# G! `
pLight->Specular.r = 2.0f;
8 A2 T& a9 |" h M pLight->Specular.g = 2.0f;
% l4 F- l! I# ]; t: K5 J6 D pLight->Specular.b = 2.0f;' ~. { @) Z( i4 S
// á?oˉ ; f' A6 r6 P n) T5 T% [6 \( x2 E2 A
pLight->Ambient.r *= 1.0f;
, V" ~. t2 ]& v pLight->Ambient.g *= 1.0f;6 y% t) A f9 S7 d; {0 D0 X
pLight->Ambient.b *= 1.0f;2 D I, M' T1 f: F6 a4 r
#else //__YENV: v1 A- c; o' w5 R! E- s: ?
pLight->Diffuse.r *= 1.1f;
7 y7 f% E, U U. r; l r- M) g pLight->Diffuse.g *= 1.1f;+ |" G! h i# X9 b6 x
pLight->Diffuse.b *= 1.1f;
) |: S% j$ `* N. r1 x // oˉè* ??à? 6 T: w- \% W, e- [- U
pLight->Specular.r = 2.0f;( p- {. }9 \8 I% M- D' [# [6 {
pLight->Specular.g = 2.0f;& U! d( P! g/ G) w( m9 U
pLight->Specular.b = 2.0f;* _7 X" |# V' f) O- |9 l" F
// á?oˉ
/ j; Q/ U& T) [7 V: Q pLight->Ambient.r *= 0.9f;
& ]1 i* S7 p& s pLight->Ambient.g *= 0.9f;
& [: ?+ Z: S7 r2 R W pLight->Ambient.b *= 0.9f;6 i) H) O3 O3 e
#endif //__YENV
8 J% F1 n4 i: U ( ~( g0 _/ Q" H; Y( j# Q" m) s! J
memcpy( &m_light, pLight, sizeof( m_light ) );
- P' o6 q8 F: t% N6 h" @
+ Z4 D1 N3 z) q' _' P( c" l D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
1 \+ n+ X o3 b+ T" G5 q& i D3DXMATRIX matTemp;
& Y& g5 {+ m& k8 a/ B4 r static const float CONS_VAL = 3.1415926f / 180.f;3 z2 @8 }$ a8 ~3 ?- v# R2 |8 E
# o1 X7 `( N; I1 C }% Q3 i2 H% X+ k D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);4 k+ d0 p! j) _9 j6 N) Z. z( \4 D
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
8 Q9 i0 C# ]/ [! G l+ U pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 3 L! x( O1 A7 X0 {! ?
pLight->Appear( m_pd3dDevice, TRUE );) }, E7 L2 N/ G1 g% f
( W! W) Z5 G, h5 k! u+ }3 [2 {3 ` // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 x ?/ m9 h- ~ // D3DXVec3Normalize(&(vecSun),&(vecSun));
: j' B7 z% Y; ?1 a. B* u // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , K! C5 \8 }) E, I4 Z
& l/ w; q5 |$ x1 z, K5 c' Z* ^
DWORD dwR, dwG, dwB;
6 Z2 l' W0 t$ k* g3 s dwR = (DWORD)( pLight->Ambient.r * 255 );# n; ~" J$ D$ i
dwG = (DWORD)( pLight->Ambient.g * 255 );
* x+ n! o+ e( {' C/ y7 V dwB = (DWORD)( pLight->Ambient.b * 255 );$ k4 ?2 k: k6 t- s
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 A5 n8 t; Z( _+ ]2 f) p! f% Y }
0 i4 h5 I& |. M }
- |% ~! ^, }1 E* ?1 Q: |- t
0 Y4 x) g7 p g5 ]0 w m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );2 b; v# `; G) P) R7 L4 g6 n) 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) );2 o1 k X8 b6 E7 ?; l) I8 e
::SetLight( bLight );
8 k9 K5 L% C" m7 f. M2 @3 C" u. x
0 A, z ^- t1 \ // ±ao? ?D?í???ó á¤à?
0 R8 y% S% T$ Z5 K7 W m_pd3dDevice->SetMaterial( &m_baseMaterial );; W7 p5 f1 K3 O4 w2 s
* j. l* ~( K! [& f$ ^8 r#endif // not WORLDSERVER4 v, K/ n4 L' }! S; S
}% z* j; J! V! _+ o% m" ^
并更换
7 v$ E) ?5 n6 K6 p- N" M. ACode:
' q% C7 A0 z! O2 g3 N__FLYFF_INITPAGE_EXT
2 L6 R! K# W/ j. C定义 ]9 w; w. v: W a3 w1 i
' K0 R$ C1 S3 ]4 W* ~; D' Z
9 S7 h* @: I5 J& O; f" N5 g' d( A& N; @6 X# c" P2 c. e- T
9 u4 V- ~5 U) B; o1 V, v
现在终于删除我的狗屁加速...* |2 q8 u. ?& n
+ [- ]3 V2 N3 J5 E# T) D: L' Y/ \
8 i6 L: U6 C, X- c6 J0 s4 I2 D5 R
# \. E; K; o% v5 E/ s |
|