|
|
食品车:
' t# {* H6 }' p; ]尾翼:
. k k2 ?3 _0 K! S" J
' S( E4 V. x* ^& t4 x4 T4 y代码:) T% U" P; B+ T. B. T
CWndAutoFood::CWndAutoFood()( s$ j# m: n+ x& S5 n% i+ A- i
{
9 I3 @, F" ~% r ^, V& j* u( v m_pItemElem = NULL;
' Y( a9 U* G8 O) e- Q3 u; b" r m_pTexture = NULL;
; N- {: S1 b y) y4 Z5 J" K0 G bStart = FALSE;
2 V4 C" X' | f+ l$ F6 g}
: s7 c; t; i1 _3 k+ l; V) f" r& y& x: |* P" n
CWndAutoFood::~CWndAutoFood()
( A; T0 \2 C% s2 c{
6 P6 s+ l t* {4 N9 \0 h AfxMessageBox( "AutoFood ist gestorben " );
# y0 h4 z* c' e}
3 r" u! q/ |/ e2 Z2 _' y$ k4 lBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
3 c- j1 ^* ~0 A/ t5 Y# A: q{
- O8 w0 _' w N% | return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );; V1 A" D% G, o6 u1 [- c+ S* n
}
* L+ K5 I. P9 ]. `& H: s& ]& ^, J. H1 x' m1 ?
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )2 V5 n U! n4 a
{, c* [! l) `; n0 e2 w
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );8 K' a7 z& C3 f2 m1 K8 N( ?2 c- g
CRect rect = pWndCtrl->rect;
, h: {8 s$ p0 z* I6 W$ Y: i if( rect && rect.PtInRect( point ) )
! w# r0 n. Q2 j/ l5 H {. K, W6 r: {& z) l
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
8 o. m4 G% `- f7 r8 A% B if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
; q1 }% ^8 _& [+ t' T; M: ` o5 | {
& s5 Y) U# y; d if( m_pItemElem )7 e. o" Y/ T" M" _8 V/ M# X
{
0 m H5 _$ q4 {6 A. T, i v m_pItemElem = NULL;
u' q0 P8 K; \4 P8 t! p: Y }
& r. m" v. U5 e8 G/ w: p, T" n m_pItemElem = pItemElem;- h* G" G1 h# M/ p, \1 k/ x- \
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
8 Y( C' Q6 Z3 ~* y% t1 h9 h }else{% G* d; S0 H2 w/ y) g; z+ s
SetForbid( TRUE );8 k/ z5 H ?3 Y+ u2 _3 i0 B
}
6 n8 c; S$ t; Y1 ^* _ }else{6 t; d- c) f x- d8 R+ H/ J2 A7 N
SetForbid( TRUE );
8 A' ?' i- @# C) d" z }
I& A7 I5 k; d; g return TRUE;; `0 f$ T: `) M/ V2 l" _1 V( Y4 a
}
& r* M. k- {, q0 j/ G. H5 K0 i
/ n4 ^& k, ~' o A% g( A% HBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
1 H: H5 x8 V! x' w$ x{1 U5 _* r: J$ U! p/ F% u6 l: p
switch( nID )
; r4 H; Z# Y8 c" H* O. K7 ] u {) T9 M2 w" v! K) X3 z H6 h, r
case WIDC_BUTTON3:* l1 n6 f. ~ w: W7 R, S
{3 z2 f* A$ I2 j: n) \* F& T! a
bStart = TRUE;
6 |) a" ^" z. i7 B# W break;
) }( e l: p- S6 L# V7 L9 K }% A u, o0 s$ v7 Y
case WIDC_BUTTON4:
3 S" A7 O8 b3 z' j7 q4 N8 L. B {. ~2 E3 o7 A* [, m
bStart = FALSE;
# a6 o2 Q9 c; A/ }( m. Q break;5 v! L/ {$ i- _
}
/ B& r1 P; q6 X* v; Z# m5 W4 ] }' B/ i0 {6 [! u( ~8 B1 D
return CWndNeuz::OnChildNotify( message, nID, pLResult );
& M- D1 _( l; l4 V# O} # V# p; q# V! F9 V) W
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
, d, Y; X9 s0 k2 E0 M{
8 K0 z3 U& K6 d) [- Z CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );$ o$ Q) K+ i9 ]* b b/ H( v
if( bStart || !m_pItemElem )7 P+ _$ l# `1 j K5 H( P9 x$ @
{/ q% V5 V! A& U! k8 ?) |( ~1 ? Z7 w& Y$ E
pBtn->EnableWindow( FALSE );
( D8 ~. I6 I* A2 e" j- }# F- R }else
% e% R: U$ {3 ~; @0 f& G pBtn->EnableWindow( TRUE );
, R, R8 O3 f) Y: g. [4 M5 R! M6 J if( m_pTexture )% ]; t0 ? C* G7 t* q! x# b
{
2 K3 A) {2 |" n1 w LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, h, C! i2 {, e3 N if( wndCtrl && wndCtrl->rect )
, ~2 b( N) R. Q Q% l; k1 l g- K0 I' r {; D& Z+ W5 j2 L+ i& S; b$ E
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );7 c6 D- X3 F ]" g+ \" m+ K. v
}
7 c4 Y8 K' }5 ]4 O }
( t8 t* @8 Y% [: w, L' N}9 q+ B1 n9 E" e# f$ J5 }* |; b* g8 z
) A h" j8 A2 M. T& @
BOOL CWndAutoFood: rocess()& U4 c; R$ u+ ]. S; K I1 O
{. Z2 c z1 b l8 d ~% g
if( bStart )
) N* i! C0 e* l {, }9 e7 H6 v- Q+ v$ s! f
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ); i# m; P. C# U1 }; C, k9 Q$ Y
{
8 D2 d8 {( _5 a3 `0 u$ 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() )" H- g( X' [% y/ K0 C6 c
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
7 b* n4 Y0 \; e$ Y" h }else{
: i6 B, R7 s6 n/ g, m bStart = FALSE;$ v [( J. }6 n8 l+ S" H
m_pItemElem = NULL;% `; c, b, ?" k# A
}* I( J; V% N, C, R# ?' x1 `
}. E; V. Q, ]9 v" L5 s9 N
return TRUE;
' ]- E, L& R. _# k: h}/ c+ {6 O4 k$ k H; U' p( u
0 b$ p. s. K) |" G# p
登录视频废话:! f$ w1 g! h9 L/ ^9 [
尾翼:
8 s! y" T9 [7 ~5 T6 K$ L
7 [% X5 W8 U* x# @" i+ I代码:
6 C- `, M, T/ T& y: u$ v4 J4 N$ M8 D# Y' c& O; K0 }. L
void CWorld::SetLight( BOOL bLight )# P- w, U5 `# v7 R% I- ^( ]* T
durch9 |3 ^' { y0 E) z) a9 d- S# K
Code:- K: o# b; c3 }4 S* ~' ?0 o
void CWorld::SetLight( BOOL bLight )
2 B) F9 [, ?8 O6 F8 ?{( ]! C5 Q$ o/ |& q7 s% W1 |, X2 X
//ACE("SetLight %d \n", bLight);, G8 t9 l W+ l& {+ j1 W- \
- S' P" q q+ Z8 C$ i: `# B, o#ifndef __WORLDSERVER
2 c) T% F9 a$ H0 {3 d) {/ c* t DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
. X2 j3 } J( r* J2 }4 P: h6 j CLight* pLight = NULL;$ a8 T5 o o* @# r- g+ |( o! c
& F5 g- S7 z, x" p! S1 l D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
( v. A2 C8 t( s6 U! B q
4 q& t# Z5 f2 ^! e$ { pLight = GetLight( "direction" );
5 G$ e6 e6 j) ?4 y5 ^1 J
8 D# p5 J o' {3 n#if __VER >= 15 // __BS_CHANGING_ENVIR
5 ?; E6 ?$ E6 h8 X9 C if( g_pPlayer ){
, e* p; r4 b/ ?! T) a) g- V ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );" d: x) R9 H& m9 U& v5 U
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
9 D+ t4 E9 W4 V" T# a8 E6 r {% {. ]. b: \2 ]0 U1 \2 Q% t% q/ \
if( pLight )/ R1 E) E( f/ U& h, ~/ C8 ~
{
4 h# n6 }( J1 T' F6 S6 R; U pLight->Ambient.r = pInfo->_fAmbient[ 0 ];; ]# k! c/ A; S
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
* ~% @) G/ f8 b9 r+ `5 k. Z5 y pLight->Ambient.b = pInfo->_fAmbient[ 2 ];7 l- G) D: [! y6 D
. m) l u5 O! T+ S pLight->Specular.r = 2.0f;0 y+ U7 t# N9 r$ i& u' C
pLight->Specular.g = 2.0f;
( Q% w" O2 E# ?3 e" I! l5 H pLight->Specular.b = 2.0f;7 Z5 g2 a& l" B2 Z5 C7 t" s
: p8 P. [5 h9 Y) p! Z" x, F) C0 d# F pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
5 v% A4 e8 o, A/ K pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
& q7 L* A: j# E% _% t" {/ f pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
% I% [* P& n1 p: [) S
* }1 a/ z7 u2 R; j: q* h HookUpdateLight( pLight );
1 T& ^$ u; T" M4 g0 a* t8 ?% G# U" k8 B- P" C0 s- }* K
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 N( J8 n1 q7 P1 @2 l, U# u
0 E8 G _, a+ Z# o pLight->Diffuse.r *= 1.2f;9 Q5 r0 X, W. \) J2 D
pLight->Diffuse.g *= 1.2f;
6 b' h) o' S6 c* e! W h pLight->Diffuse.b *= 1.2f;6 r0 S+ E6 H; {
M3 K9 i+ t* t* r$ }
pLight->Ambient.r *= 0.8f;
& B% I/ s( h7 R$ N" [& Q pLight->Ambient.g *= 0.8f;: M$ V. I3 p) L6 r" p1 G
pLight->Ambient.b *= 0.8f;
& Y4 V0 ~' Z' q" y& |$ a
9 O; H- D7 Q8 l memcpy( &m_light, pLight, sizeof( m_light ) ); }- T! U# A0 i9 O0 E. w" n: f
2 b! A6 ^" P D9 |$ X
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ W- x; w4 C9 j$ B7 o- u D3DXVec3Normalize(&(vecSun),&(vecSun));
; Q/ K3 X" A5 b; B4 O, ]* W7 G1 \ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; ?0 ^8 v" M5 g$ f" `" |. e8 s
pLight->Appear( m_pd3dDevice, TRUE );$ P3 T8 D% C- y$ u$ e8 c1 m
7 z: H# U9 v" p7 H/ |9 C% Z4 L8 N0 b2 o
DWORD dwR, dwG, dwB;
, V1 r; C, o, D9 Z" ~' Q dwR = (DWORD)( pLight->Ambient.r * 255 );- @% b% A7 P% Y# K. t' d* V
dwG = (DWORD)( pLight->Ambient.g * 255 );
4 s+ p- H# I- J; b$ q% A" o dwB = (DWORD)( pLight->Ambient.b * 255 );! w- k9 D! Z+ D- U8 d- {
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) v; N2 h @# [# ? }4 p: k7 n# L0 f" l# V
}
$ I4 s x" x% _ }: I9 M+ a/ J# }6 N$ o
else+ j% i9 R: d2 X: D
#endif ' d7 w N7 @ [$ g2 ]3 g* s
" K7 p l# O8 ^3 E/ d$ C& L/ J7 N if( m_bIsIndoor )' p0 c' b, \3 @# a. o
{
/ b2 L9 k, D$ [# F if( pLight )+ u2 X% _( H( x) U: ?2 y
{ % B& i/ `/ \& N" ~* a q# I
// à??μ oˉè* 8 T2 E4 F5 j4 }
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
- F% v( u4 Y. B! u4 r pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;; j% y g$ G* _: V
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 z& k5 f7 P. m1 b& Y5 W
/ |5 ]# N2 u/ }/ y1 f
// oˉè* ??à?
5 }! b( Z! Y& U+ C1 Q pLight->Specular.r = 1.0f;
+ d: c1 r! l5 J" {: h4 ^& M pLight->Specular.g = 1.0f;
7 ~( j" D2 l% H5 } pLight->Specular.b = 1.0f;
2 \6 f; B) H% q0 R // àü?? oˉè*
+ @1 B; t4 S3 p" V3 s pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
9 M1 _, p% x- w9 P* d" L& ?4 v pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;3 N" k7 ]1 X2 R: x
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;! n. p6 | Q7 t4 q# `) S
% c `3 @$ x& ^- V3 s
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
; H/ q9 [2 ~ ^& x {
o. p& x+ C1 e3 |4 c pLight->Diffuse.r *= 0.6f;
7 b2 Q& B& s+ X( k2 _+ }$ x' H pLight->Diffuse.g *= 0.6f;
n/ I: M6 F7 L, j& L pLight->Diffuse.b *= 0.6f;
6 a4 U6 [* P# Z1 |: N( F+ e pLight->Ambient.r *= 0.7f;' O5 r9 I4 K; t1 V0 K" {7 a
pLight->Ambient.g *= 0.7f;3 E4 i2 @7 m, v- C. Q
pLight->Ambient.b *= 0.7f;5 p: Z; l* I9 B e9 m8 t5 A+ g
}6 |. \/ b' ^3 H, p
3 Z. @4 ^& h: m$ G& V. j
#if __VER >= 15 // __BS_CHANGING_ENVIR$ K, ?9 C& _7 z, s( w& V" ^
if( g_pPlayer )3 G# `4 P5 k: Q. w" ?+ h8 A
HookUpdateLight( pLight );% _3 d& f7 n8 y6 H5 {: }( H
#endif
0 B# B; \& P& B! t& M: E# @ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ ]- P+ X4 }) o' R7 _/ H: A* V. j0 a2 M
pLight->Diffuse.r += 0.1f;
/ h% a/ b2 c* p- v8 [* M pLight->Diffuse.g += 0.1f;+ F" T! ~9 N& u" h4 J6 ~4 l- F
pLight->Diffuse.b += 0.1f;$ W6 q7 |+ I6 m" F3 W% q6 @' a% e
// oˉè* ??à?
$ J( \8 q8 M5 A4 ]" i2 G1 x2 W$ v pLight->Specular.r = 2.0f;8 X& Y4 V/ B+ K# b b; x
pLight->Specular.g = 2.0f;& X7 }. ~" Z8 M/ d. V
pLight->Specular.b = 2.0f;
& D1 u/ z8 |, B, E5 f3 j8 R2 e U // á?oˉ * Q; I( a- K2 P; ~: ^$ f) }9 ~
pLight->Ambient.r *= 0.9f;
2 t1 E+ P/ M* Y0 v7 u pLight->Ambient.g *= 0.9f;6 ]* M. D# a# G% _
pLight->Ambient.b *= 0.9f;) V: Z+ G0 x- x# A+ m$ n
1 D9 z8 _( V( F8 k/ E
memcpy( &m_light, pLight, sizeof( m_light ) );
! f8 k0 s! F3 L# k# n1 J# P
2 i+ G) M8 F3 _: D1 W. e2 Q pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
' o( b8 n3 J+ |: M% z& F9 t pLight->Appear( m_pd3dDevice, TRUE );$ @5 M/ p9 _! E' f7 |
" r+ N% R% {% s% d* ^0 A) W DWORD dwR, dwG, dwB;( v- d9 X1 }: n2 M0 w
dwR = (DWORD)( pLight->Ambient.r * 255 );6 J; j3 S; {3 [) l/ r% {
dwG = (DWORD)( pLight->Ambient.g * 255 );, b1 U( F% I$ E- K
dwB = (DWORD)( pLight->Ambient.b * 255 );
$ a0 a$ d0 K- Z! T$ m- J dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: U! i/ U3 T5 E7 z }( ]- Y" g# \ t( z
}3 c5 r* K6 ]. \0 G |" ?, o8 G
else
& |% G+ S1 Y! ]+ Y+ M {
& O7 r$ Q2 U! C3 w% Q, c$ X; T4 q if( pLight )! e( u/ b* {! l% X. `4 h- ?
{
/ @: E0 k* B5 a5 P& g / w2 s5 e' Q& B/ j
int nHour = 8, nMin = 0;' y1 q5 n& f C2 e
#ifdef __CLIENT x* I3 ]0 W4 |, s
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 3 W0 v$ p5 i5 ?2 h8 O/ C
nHour = g_GameTimer.m_nHour;' v* j* E9 ?1 B: M! ~5 }+ m
nMin = g_GameTimer.m_nMin ;
' C) Y [- L3 O$ C Z. q" W) @8 V #else
% x6 g r3 P( J0 F // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
8 t/ y c! Z0 B if( m_nLightType == 1 )% B6 ^3 |* t( B( B, o7 v G( H
nHour = m_nLightHour;
: Y7 Z) h; B- Q0 P( @: E #endif
5 V# ?3 `, W6 }6 y; [ nHour--;
' r: h' o6 z% K& J" }- A4 W if( nHour < 0 ) nHour = 0;9 V* q, L" E `: h: v. W1 l
if( nHour > 23 ) nHour = 23;
' e6 {2 f r& ^8 f; p# |) b6 R% E @# k% ]- @
//if( m_bFixedHour )% h8 U, Z8 Q* Z. n
// nHour = m_nFixedHour, nMin = 0;
& a! r) _# d( v6 l LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];% `" @) S0 z7 ?: r& }7 C$ T' E5 W
LIGHTCOLOR lightColor = m_k24Light[ nHour ];* Q* J) d/ w+ Q. O
+ m1 E: r/ i2 u7 d& A
//m_lightColor = lightColorPrv;. o2 t6 {& y; Z# C3 y
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
' H/ I3 w; M6 @ g4 @2 a$ C lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
- Y2 M1 x7 d6 v: h' Q, H lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
]- c5 \9 v2 I" t" ?: k lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;9 b) x$ s, I/ R v' _/ j
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;* u: l$ L7 r- D
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
8 v/ y* d) m) a: r // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
5 ]* ?4 w3 R T8 s* @
- p+ F) j: |8 @# a- u( C6 u // à??μ oˉè* ( K2 w! l: R1 K6 d) h1 p8 R( l2 z Z
pLight->Diffuse.r = lightColorPrv.r1;2 l1 G2 H1 o9 s& O: |2 S- A2 `
pLight->Diffuse.g = lightColorPrv.g1;, I- ?1 a" j+ c k. b, h# f
pLight->Diffuse.b = lightColorPrv.b1;
$ N# h' R- f$ L* E1 Q7 r6 Z // oˉè* ??à? , J9 {0 f* R4 M
pLight->Specular.r = 1.0f;
: t$ [3 R; F8 z, X6 F- P. ]) F! U1 O0 w; A pLight->Specular.g = 1.0f;4 }/ T5 y. I& z- e7 K) p9 C
pLight->Specular.b = 1.0f;* ~% ?4 {7 a3 B, w1 G
// àü?? oˉè* 3 q' A; W) u1 @- w& u% T- Y/ U+ D/ j% O
pLight->Ambient.r = lightColorPrv.r2;! G" ]( O( Z ]% w V' }2 m
pLight->Ambient.g = lightColorPrv.g2;
# Y8 E) k+ n. W. e4 p6 r pLight->Ambient.b = lightColorPrv.b2;. a# x8 a1 V* w/ B
0 L5 M7 W. z" ^$ X+ a if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??./ F" n. W3 y/ N) k% S; r
{
' }/ c0 j1 L( z* u [- ~ pLight->Diffuse.r *= 0.6f;5 ]5 e4 M5 V) y" X `
pLight->Diffuse.g *= 0.6f;$ E: X# L4 b8 B4 g: j4 Z' p1 U
pLight->Diffuse.b *= 0.6f;6 I: N4 S2 `7 ~% f E9 `! x
pLight->Ambient.r *= 0.7f;
. @& L3 M" m" |, k# n pLight->Ambient.g *= 0.7f;9 Z+ h# Q( J& N+ t" R5 r! A
pLight->Ambient.b *= 0.7f;+ O7 s* _' z- T; w1 y6 b
}
/ @4 {: ^$ M x/ V0 \
' B y6 i( E5 N/ q8 P#if __VER >= 15 // __BS_CHANGING_ENVIR& {( r/ L0 O) }% O6 P9 i
if( g_pPlayer )/ e+ ]" `/ \6 P
HookUpdateLight( pLight );
, u* [! [% |* V1 c# a#endif9 A$ _4 n6 o' B% C& X) X
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, ?' @) s- G' f7 X" }/ Y: y# ?
#ifdef __YENV5 W; K: E3 i I$ b6 s. a; r, G- I% ?
pLight->Diffuse.r *= 1.1f;1 L& z, I9 J4 t7 K' }, e
pLight->Diffuse.g *= 1.1f;" t. b, U& {" O9 M
pLight->Diffuse.b *= 1.1f;/ Z( Q2 z. A" [. r& {/ [) R0 L- ], v$ J
// oˉè* ??à? 5 r! y# Y, k$ g7 a
pLight->Specular.r = 2.0f;, W; r3 [3 p" Y7 [4 c% | g
pLight->Specular.g = 2.0f;+ d9 P/ q8 I, v5 K# A
pLight->Specular.b = 2.0f;
+ b, N2 `1 C0 X // á?oˉ 8 x) r0 e0 m1 G2 G8 D
pLight->Ambient.r *= 1.0f;* P" P( [3 C N- B. b7 n5 L
pLight->Ambient.g *= 1.0f;! b; q5 C$ t1 H6 O! F" T
pLight->Ambient.b *= 1.0f;( `% R5 S9 d8 k1 P
#else //__YENV8 P3 P. J( V6 B2 u- l. A/ u
pLight->Diffuse.r *= 1.1f;
+ Q$ W- X+ Z1 }, a pLight->Diffuse.g *= 1.1f;7 j. l2 w" E' f3 d6 O
pLight->Diffuse.b *= 1.1f;2 ?2 \' B. K8 {$ I& M+ t
// oˉè* ??à?
+ d/ ~, z/ R) I: \# X9 s pLight->Specular.r = 2.0f;, x; d# l* O2 ]' y/ A
pLight->Specular.g = 2.0f;0 E- _2 \1 M, V( B1 i- @
pLight->Specular.b = 2.0f;
4 Y! X5 O0 s: D+ Y* R4 s // á?oˉ 3 c7 s& m) r0 B% e, C6 m+ R* p
pLight->Ambient.r *= 0.9f;
3 i" t: p7 z- B6 P6 S- G2 v pLight->Ambient.g *= 0.9f;
# p: ^6 j* Q9 G. ^+ T) T6 m* k pLight->Ambient.b *= 0.9f; E p4 C9 J, J. f# W
#endif //__YENV
5 ?* M7 h+ m) M* O8 y E % W* a7 \1 w6 J; `
memcpy( &m_light, pLight, sizeof( m_light ) );! ~; F* r; t$ }
7 i0 \* I+ T0 d; R
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);8 Q& \& J5 Y$ U# V9 s) D S
D3DXMATRIX matTemp;) p% S& t. K* ]& N8 z
static const float CONS_VAL = 3.1415926f / 180.f;
4 Q2 w- t9 {0 D$ u' @& i4 R9 C
) v( {: ^/ p" q2 E D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
1 a' |4 z1 Z" J' A$ ]& _3 { D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);' K6 \3 _9 J: V5 S3 o
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
- Z9 _ M4 s# E7 V+ t4 S' | pLight->Appear( m_pd3dDevice, TRUE );
8 R2 [& H7 \2 U8 p5 }
) T" D* {- @3 i& y1 O // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ z4 I* @) M8 I- {3 A! m) Y
// D3DXVec3Normalize(&(vecSun),&(vecSun));
5 e8 \3 p0 C; _: I, o2 P // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ( N3 P0 |; D9 u/ F+ v
3 u3 M9 q+ O4 `9 m% x; @1 V5 w DWORD dwR, dwG, dwB;2 u! H7 N' q8 u( _7 {. w& b! J
dwR = (DWORD)( pLight->Ambient.r * 255 );
. t& i3 f' z& ]1 P0 J1 {' b dwG = (DWORD)( pLight->Ambient.g * 255 );
+ T9 O& T9 \& f7 b' s: j' C dwB = (DWORD)( pLight->Ambient.b * 255 );' k' S6 z- W" g8 B0 }7 f
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. S" `6 |5 m/ P* }& {4 v }
+ _9 o! Z( x5 w. r# ^1 l3 a }2 A" V" ^0 ~, \, {/ R
5 ?" u. d# ?5 a+ J* `7 O; b2 v m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );3 c' K' t2 }$ c- h( `; Z3 e& n
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) );# s5 { B* X* Y; b2 O% V
::SetLight( bLight );2 s# |7 Z& R! T( c, c
! h* ]; M% H7 I8 I& [, ~+ H // ±ao? ?D?í???ó á¤à? ) u6 e9 M3 U6 \0 l ^5 n' N
m_pd3dDevice->SetMaterial( &m_baseMaterial );
; _% m+ M; R- h9 P1 o! K
: B4 d) ?' z' C8 f% A- Q#endif // not WORLDSERVER
$ x" t/ N2 w+ s0 U: `}
4 m0 s$ ?3 W. o1 ?+ G; g" {并更换
+ m1 @$ X* P" y$ h# _1 QCode:
* i& D5 C5 M v* I__FLYFF_INITPAGE_EXT
: @$ x1 S2 x2 E* t定义$ e5 r$ a. F+ E" Y" C5 F `
5 c& B0 ~! {1 C6 h! [4 |. c
9 s+ D) L0 {) e7 e( J! {7 R0 ]: O( S, s4 f
( G3 J+ X5 ^0 s! u现在终于删除我的狗屁加速... t: e7 a1 F6 `
$ J$ E' @* v* |$ N# \1 p
8 T5 y( z8 ^9 @) M& a
* u7 Y0 c# j6 J$ [4 t+ r3 A |
|