|
食品车:+ d8 @* c0 C+ W8 J) V
尾翼:
6 q& ]' ~. D0 C* Z& {) O% ?3 U1 t# a8 J
^/ j6 B0 g6 w& c; n- I E代码:& ]! o0 B+ y: c; x( \6 k: C, }( `
CWndAutoFood::CWndAutoFood()/ B7 v) n4 D5 t; d7 K( [6 j" D! y
{
3 I0 ]- o& F, v: o. s; l2 f; u# W, _; ] m_pItemElem = NULL;/ A% i4 p- T: E2 N# e2 F E
m_pTexture = NULL;+ p0 `8 g& a- v* g) b x6 Y* O
bStart = FALSE;
; {' ~+ d3 O, O}; ^% D$ O: B) G7 k% U* T
5 s( Q0 d5 y" H8 B" [& ]CWndAutoFood::~CWndAutoFood()# q! h" M. k; x0 t1 T' |9 {
{
' c0 }* a0 u p7 Z0 R AfxMessageBox( "AutoFood ist gestorben " );* ~! U/ o g* h' s
}# Y# Y) {% ^. f3 b0 L& R9 u; f
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )% F' T7 y7 R9 H
{
) \5 j8 W0 s" E( r3 [ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
% E% z: B- [" f7 A+ P( F) [4 C0 h}
2 t( u% l4 E: E8 K3 P
! Z* p" u# v1 E" T% x' c/ m2 zBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
0 M' M. ` \8 ?3 F2 d$ X Z{
1 j; D( A6 a( C z2 i LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ a5 _7 v9 [/ m+ ^4 |- r
CRect rect = pWndCtrl->rect;7 h# M1 @8 R9 D) _
if( rect && rect.PtInRect( point ) )7 p, Z- @ Z4 s/ b. o, ?2 \8 f. q
{
) j8 o K( v3 W CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
9 j8 \/ [3 J: `/ \* V/ q; } if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
/ n6 Y% _: F7 J( w {
" l3 D5 ?% w, o6 l `# P' x if( m_pItemElem )6 u; B, U5 I) n! }, _
{
9 W# C& |% B- e7 H' [7 N1 J: C m_pItemElem = NULL;1 P0 O4 J( O% v* e: A
}
( Q4 U: |& q3 w0 s, w( p; { m_pItemElem = pItemElem;. M% ^( V* N. H: g
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 \) E, W- A9 m- y" v
}else{* Z: ^0 X/ @6 Y# n6 m
SetForbid( TRUE );
`0 g4 f+ R2 c }9 m" G" x7 J/ T5 \/ L5 K Q1 b+ O( _* V
}else{6 n0 O, t# S6 H
SetForbid( TRUE );' e' O5 M% ?( ~; s& }5 i
}
) j: P% B$ n* Z6 L# n$ } return TRUE;
; S, J! @3 z0 n% E1 @}
1 v- n3 A1 s8 V+ s4 z5 n( q
( S5 e* D& X4 I- P5 ?% g# @/ h6 }BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
% E( n8 `5 ?) ?% h{, N4 D* @& k5 V& l$ w
switch( nID )5 x! w: Y: F4 C+ L$ j
{/ g5 D6 A0 ]1 T( v+ N7 V
case WIDC_BUTTON3:9 ~8 C) X. F3 `& q
{
" u' K* l9 `( \2 ]7 U bStart = TRUE;
1 ]+ F+ w t7 E* u. E5 Z, W break;
& a$ o7 {/ z" k }+ L5 G I4 L' X) W
case WIDC_BUTTON4:" ~: b. d; j) Z' B$ E3 X, B
{: L1 p9 c( V9 r4 b
bStart = FALSE;* {/ o$ R" g- t0 U3 G) A
break;9 D; W9 h) m- o# Y' D
}) C3 M, R- H3 r5 w1 d
}
, I# z3 L) q k8 x return CWndNeuz::OnChildNotify( message, nID, pLResult );( [, s6 ^* ?5 r# a' K1 ?; G
} ; p2 \! X, m r1 A- `
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
+ r, Y, x ~ o$ p h; ]" M{) B( x2 E' f1 R2 X! a0 t
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );9 s C- @7 x2 F. [# ` Y) ]
if( bStart || !m_pItemElem )
5 W C! @; |4 _2 M7 d, p {, ^! a" L4 O# ^% Y8 l0 z4 _7 D
pBtn->EnableWindow( FALSE );
- H8 J2 ~) U, @+ M8 C$ c t }else
' [! [( x6 k8 Q% W pBtn->EnableWindow( TRUE );2 A4 n& _" `* f2 `, h8 k# Y
if( m_pTexture )
/ k, E, W8 ?9 l+ P* k! v {8 j5 D, G; R! H- R4 I5 T, v- N; o
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
) z5 M4 ]4 t/ r+ s0 v if( wndCtrl && wndCtrl->rect )
6 H2 T0 l; z7 V$ Q" l {8 _: d: `8 y8 W2 ?* Z( X9 h) F
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );" e4 r. R% }' Z2 l* l' X
}
: e+ E; k1 L3 ]# w. p }
: L, C- y) p2 m5 i! h% F* l}
/ r2 H; `6 {* F' ?! i9 L% ^) |# b4 P7 |; K# X
BOOL CWndAutoFood:rocess()
8 F0 |! }/ Y# W3 X0 N1 I, u# q{
D8 z7 ~3 Q, S3 L& V. }# F U if( bStart )% [+ {) \7 k7 _) H/ G* {( |: h
{ R) b" u) i) o2 \1 {
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )8 W. N8 D j' D+ x, {- Q W
{* v0 B3 z% E R7 {" R: P, C' {
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
7 V9 V9 ?! K* X g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts ); l+ [2 K2 }5 i6 o# O
}else{
2 E3 K/ l8 U0 b3 H1 X. U bStart = FALSE;/ b4 R6 N/ e7 {3 F+ J
m_pItemElem = NULL;, ~# v7 o6 X2 a) T1 s4 I% X1 I
}- p, @6 Y: y: s6 \$ f, T& H- X9 q$ F
}8 F* g2 a# r# N
return TRUE;
" K S5 s0 R8 g* N}
5 B8 {& S, [ o# [+ d. u$ A% n6 Y4 h2 O6 Q" \( \
登录视频废话:
: A( X# q! [" T7 C0 G& K尾翼:
+ f& B2 O; ~+ s4 t
. E, R5 B p" x7 }& |3 y" n+ U' U; F代码:/ T! q$ ]- `, _% r+ E* E
5 C8 i) W6 d( a' H; |2 H
void CWorld::SetLight( BOOL bLight )# r& f6 T. l( e( P- t3 h
durch
+ L( |7 W: `* oCode:# p( `! }7 k# G6 W" x+ j3 n
void CWorld::SetLight( BOOL bLight )
6 z5 l$ A1 }& F9 t{: @8 H8 `% P3 c9 j) L, ]4 r. ~
//ACE("SetLight %d \n", bLight);
; l0 @+ G; p" Z( z& J
. Y$ B8 p. ?, t" J4 q1 }3 \#ifndef __WORLDSERVER ) V! e% p% k% D# d: F$ O( f
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
& W6 N' F. R8 E CLight* pLight = NULL;4 O4 Z$ I7 D: c6 M% l& X# e& ?
* [2 F5 q' ^4 R D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );( B7 E* d; [4 e3 z3 _, F. |1 D3 w
8 t4 N8 g* j- ?8 t pLight = GetLight( "direction" );
" | z5 M' U! p8 ~# \; L4 q
, `7 f9 {/ D- H" q#if __VER >= 15 // __BS_CHANGING_ENVIR
, K6 A8 T8 a7 l if( g_pPlayer ){& \7 y2 J- l1 E) d
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
/ F7 M* i" R1 u! B9 Z if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
0 X) Y' u- J( v7 }% s {6 a" P7 e0 m& d
if( pLight )( @; G5 W* o5 ]9 n" J' g5 {
{
$ k# |4 v' ~& v$ d, ?! p pLight->Ambient.r = pInfo->_fAmbient[ 0 ];/ W; O) j3 {" D$ B7 H" s/ X( }
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
% ]! V& j& \6 {" ?8 i' c- G4 y pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
& ~; I- \$ s% ^% f' o+ ?
. Q0 `( \4 @6 r. s7 L pLight->Specular.r = 2.0f;) B' n7 G0 M$ q; m2 m
pLight->Specular.g = 2.0f;; F$ p; ~% }2 `/ q' `% p
pLight->Specular.b = 2.0f; j: R( s( M- @: N# Z& C
9 k4 ^2 t# L3 K& L
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];* J$ l; {2 j* r7 I$ Z
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ]; e/ e% I* }; s
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];1 ~4 h: Z" O1 Z: w2 x- |* W
* O! ], D. b: U B4 w
HookUpdateLight( pLight );
2 N3 _9 C( g, L! X4 F A" ]( }# Z5 D0 I' o+ m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 T% g9 G) q0 w2 u. O) W1 T
" Q5 n j9 S0 x/ C8 {, b. |( Y pLight->Diffuse.r *= 1.2f;- f' g2 V& @2 A. a! o& L0 _
pLight->Diffuse.g *= 1.2f;* X$ G5 D$ m. X/ S8 ` J4 m( y* E
pLight->Diffuse.b *= 1.2f;
" C+ v% G* ~- Y/ M5 }. i$ [) G6 r9 _5 m2 Z
pLight->Ambient.r *= 0.8f;
! R7 z! i& J7 x3 s- [* h pLight->Ambient.g *= 0.8f;6 t+ ~; `, l4 K; o% y
pLight->Ambient.b *= 0.8f;
2 c- r7 _2 O1 F0 V
4 t- A# J# Y* i& p6 M4 U7 h memcpy( &m_light, pLight, sizeof( m_light ) );/ [# r! J$ D- P( W$ c
/ T( F$ G8 F# U' a; ]5 b. S! x D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 D0 G, s. u7 D9 Z! C D3DXVec3Normalize(&(vecSun),&(vecSun));1 z. K6 t4 Q6 e* [6 B1 x
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 9 j7 w) f9 k$ q
pLight->Appear( m_pd3dDevice, TRUE );& l" N7 s! c8 L& x7 m9 }
- R- V0 F& M8 d1 k0 I) V) i5 d" @3 ?
DWORD dwR, dwG, dwB;
% G! _# g1 F( z dwR = (DWORD)( pLight->Ambient.r * 255 );
5 r9 O; h& p5 V z% }9 u+ G% F dwG = (DWORD)( pLight->Ambient.g * 255 );
9 @2 I/ F$ o5 A3 J2 V2 ]2 L/ ] dwB = (DWORD)( pLight->Ambient.b * 255 );
7 q; }+ w; |% C. X. ?; c dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& {/ q% @: L, j0 ]* j" M% g* ?& b$ ^ }
$ x# k) O* e9 z: v% \ }4 [# g' G: W$ C. E$ k- o( M {
}! c! b$ [7 J$ E0 }0 @9 E
else
6 p" b5 W0 u* N# @% [7 ~#endif
4 c* A2 H. `$ L2 V( ]: e+ L, s7 r- ] l/ {' I' Y; V4 S
if( m_bIsIndoor )
8 X4 ~. o" Y( @* G/ G* Y {8 c" |0 s7 i0 e& h
if( pLight )/ Q& l5 C$ I) U. x" V0 `1 y n
{
9 l% }. }5 d0 {9 \5 F // à??μ oˉè* & z+ R: L! Q P1 B G$ x. b$ Z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;5 L; b4 [* n: L% S, o9 @
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;* f" I; `- U& z6 S0 J$ ^2 Q# Y
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;0 E: c- {( F$ B. O& W
! y" V6 P3 V$ Q3 g5 ^* p6 Y Q
// oˉè* ??à?
5 z+ I, `5 J% M5 ~) Z pLight->Specular.r = 1.0f;
/ [' K8 W! D, X5 M: S pLight->Specular.g = 1.0f;
; U- I* c& N7 n/ e. a7 Q1 y pLight->Specular.b = 1.0f;" H$ X8 |, H$ k1 D$ B
// àü?? oˉè* 6 k0 P ^+ J3 \! z5 [( G! O
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;. H) j0 |, x/ n7 F4 K% | v, h
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
) V! |/ w9 }6 l- r3 l- l pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
+ h' A) F/ F$ R
1 G1 y" N8 F+ f: O) m if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.& v+ t6 X; O. V1 g5 C" p
{
& L/ |* q: @& [9 ]$ G pLight->Diffuse.r *= 0.6f;8 ?: o; ~/ V m6 t0 h
pLight->Diffuse.g *= 0.6f;
6 w+ T7 o9 [% Y, ]1 _ pLight->Diffuse.b *= 0.6f;
3 P7 [' Q" ^ `8 v% c6 K: S3 p pLight->Ambient.r *= 0.7f;
# y, U9 m" |4 ^ pLight->Ambient.g *= 0.7f;
, ]0 n8 a7 Q! j% k7 f, H } pLight->Ambient.b *= 0.7f;
5 E4 V) p; @& G( K' \ }$ p% W5 x% j) M B7 d D
" z& ^% Y" l) D5 } F
#if __VER >= 15 // __BS_CHANGING_ENVIR7 n& x9 w- D* k; r" y
if( g_pPlayer )
5 [. q2 s& ^) g8 O2 T2 P$ E5 j: d HookUpdateLight( pLight );
# f! D) w, w, G; X3 t#endif! T0 V; E2 o8 {( R
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 } K [; `7 [6 I* U' x: {: s
' G! `% v$ q$ ~/ b
pLight->Diffuse.r += 0.1f;
% d) s0 J3 X+ b. r$ ?3 c- O9 { pLight->Diffuse.g += 0.1f;& _, q0 X* A$ {$ `
pLight->Diffuse.b += 0.1f;6 D% v, N, j' u( f# S0 @: w
// oˉè* ??à?
% c, u; c: c1 f6 P5 ^8 ]# @ pLight->Specular.r = 2.0f;
. E* k; ]& O3 A0 ? pLight->Specular.g = 2.0f;
; S; Z" u- S N3 z pLight->Specular.b = 2.0f;& N( v. p' b" P3 X+ A- b
// á?oˉ
9 O# v, ^3 s% t pLight->Ambient.r *= 0.9f;- `1 i7 y$ c4 @; H/ t
pLight->Ambient.g *= 0.9f;
% k: P0 `3 s& [9 h3 K7 |9 c6 h( W pLight->Ambient.b *= 0.9f;/ i5 b; u6 w1 G/ L- ?0 ~6 Q
4 ], A1 H2 f, I! @4 ^$ W memcpy( &m_light, pLight, sizeof( m_light ) );) j. w1 ]' P- [% o/ I
( S4 O8 o3 O) d1 F& [ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );9 V% p& F' c: i0 F* Y
pLight->Appear( m_pd3dDevice, TRUE );) Z$ k/ ~, _7 M- ~0 Y9 M; k
( L3 v" L7 ^. y) V; @
DWORD dwR, dwG, dwB;
- {, m+ q( @) O dwR = (DWORD)( pLight->Ambient.r * 255 );
0 V* s) H! _- w" x1 I8 |3 e/ o5 J8 y dwG = (DWORD)( pLight->Ambient.g * 255 );
, e- b# ~1 C% w dwB = (DWORD)( pLight->Ambient.b * 255 );, P% e5 Y8 f+ X% U4 W" [
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# n! A U4 J' f- X b
}
k! ]2 ^. s! x) x3 d4 c }9 m% R' P8 B( t! w/ A" c8 u! H2 }) {
else1 x4 J% ~; u3 a+ _% N+ E% L
{
% a) C# _7 H2 u# k' S if( pLight )& |) k5 y3 r9 }. M9 Y/ B; y
{
1 o- ]& o1 Z; y. \5 s' Y, t 1 Q. a- e7 h9 a" _& X: X. c
int nHour = 8, nMin = 0;
3 K' \' w8 @5 ` #ifdef __CLIENT
$ m( b) y4 a. L* R. u2 I // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ( U9 M0 o \# o6 o
nHour = g_GameTimer.m_nHour;
) o! P B% _. |( \3 H, u nMin = g_GameTimer.m_nMin ;! l, }" f. Y% M" h& [$ p4 Z7 p6 M
#else
& w7 J u+ o7 R- K // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.6 T3 h7 L, p/ X( Z
if( m_nLightType == 1 )
3 M$ Q: [/ F, l5 A$ C1 u nHour = m_nLightHour;; t0 p0 d# x# g
#endif8 ^- t p$ k; z$ K- U# m) E3 ]: U5 V
nHour--;
/ I' c4 `2 v3 @ if( nHour < 0 ) nHour = 0;
& U1 a$ n0 w7 z1 t3 r" F0 w+ H R. ] u' m if( nHour > 23 ) nHour = 23;# F6 U8 s2 V/ T1 H7 [3 M
1 q3 p4 l1 ^/ Y0 |6 L2 l J
//if( m_bFixedHour )1 N8 e) _& ]+ i1 c* }! i
// nHour = m_nFixedHour, nMin = 0;) P( }2 v) r$ ~$ z3 D' c
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];/ z( `. P) V1 {8 n
LIGHTCOLOR lightColor = m_k24Light[ nHour ];8 ^9 O6 y5 v/ I D% v/ g" t _
- k! t) e1 Q! l5 @7 } //m_lightColor = lightColorPrv;# g* \/ P) q' c5 y
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
( a. a/ v# B. y: u' Y, K lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
d) B4 p; b$ W5 H lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;" R: P, w: R* l$ K6 M2 o
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;9 ]& O- l( y0 y) x, {7 x! h
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
% T9 ~8 Q; r4 l/ s lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
1 j( i3 s K) A/ |' o // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)" {) t4 Z; Y# R/ J ~0 D6 Y
2 t5 \9 [( k6 W7 k# }
// à??μ oˉè*
' M; Z- L- v: Q# o8 u% h0 \ pLight->Diffuse.r = lightColorPrv.r1;
1 R) {+ s0 p' ^- E8 p+ n pLight->Diffuse.g = lightColorPrv.g1;
: ^" P7 e [) l pLight->Diffuse.b = lightColorPrv.b1;, J3 w# _ T+ [3 L+ t
// oˉè* ??à? ! T- S+ A" J0 |. a( |4 l
pLight->Specular.r = 1.0f;
# y; @ t7 R7 ?6 t a: f$ e pLight->Specular.g = 1.0f;! N [/ t1 P p+ G
pLight->Specular.b = 1.0f;
6 r6 X( i' p- ~6 j! S% v* x, f // àü?? oˉè*
7 R7 q$ C m4 X) q( q* f( K pLight->Ambient.r = lightColorPrv.r2;* q8 E1 _. o/ J% Y/ N1 U( b
pLight->Ambient.g = lightColorPrv.g2;
- Z9 ]) d3 _$ i" G4 I1 x pLight->Ambient.b = lightColorPrv.b2;
5 n8 q/ Z7 o: J* P# j: D, z9 {7 N% X9 [$ |7 m$ |. H5 K
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.9 ^# H7 s8 e* C* \$ C& R* A
{
1 ~ u' F& Y. \" u6 d% U+ b pLight->Diffuse.r *= 0.6f;( d3 ?+ S1 @# K4 I0 e( F+ E) i' ~
pLight->Diffuse.g *= 0.6f;4 m( R- _0 h! \5 u4 e
pLight->Diffuse.b *= 0.6f;- O2 J( Z; m% z3 V' M$ Z; E
pLight->Ambient.r *= 0.7f;4 m& s& {: J1 H8 \4 F0 Y" I
pLight->Ambient.g *= 0.7f;, B& Z& P3 R5 Z* T
pLight->Ambient.b *= 0.7f;( }: z. ^5 Z7 m5 C4 G& k
}
7 Z7 j* I5 ^/ W+ |9 n
- _) Z8 b4 a& v9 S/ _#if __VER >= 15 // __BS_CHANGING_ENVIR
& S0 w" t1 O0 G8 J8 o. f9 c+ \ if( g_pPlayer )
5 b' y, W7 J) w% ~ HookUpdateLight( pLight );
9 y- U0 p# v; m1 Y6 @: D1 B4 t8 {; V" X#endif
& g: i# I6 W" {2 I0 e' |8 b% r memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( S8 p6 c; c0 ~' V6 K
$ @: ~. k! e5 n#ifdef __YENV) S9 C# S4 H& t. Y9 V3 D
pLight->Diffuse.r *= 1.1f;
# q+ _1 i; s+ |+ Q pLight->Diffuse.g *= 1.1f;
9 E5 h# w4 V2 ^& }2 _2 Z pLight->Diffuse.b *= 1.1f;
1 |* v; I3 O3 V$ c // oˉè* ??à? v& o6 ?$ H9 z9 z4 ]
pLight->Specular.r = 2.0f;
" g6 P. s( \, w pLight->Specular.g = 2.0f;
7 k! I; o L# b9 D7 Z* p) ^( ] pLight->Specular.b = 2.0f;# r% S9 W* q" |$ I: \0 V
// á?oˉ
# i, [* h' ^6 s0 m, O% t- P1 a8 g pLight->Ambient.r *= 1.0f;" _/ S' Q. C `/ h: @
pLight->Ambient.g *= 1.0f;
4 ` G* c- |2 O- X% Z pLight->Ambient.b *= 1.0f;
2 j( J# Y4 R5 T3 |#else //__YENV
$ J3 s7 A! @' Q/ M$ E) j" |! b pLight->Diffuse.r *= 1.1f;
, f( `1 W& q Z) M* v! |( m pLight->Diffuse.g *= 1.1f;
' `$ A6 `1 w) d/ T$ v( d pLight->Diffuse.b *= 1.1f;
; S* T- K2 n, _8 U, y* K# _ // oˉè* ??à? 0 I; X: |: ~, r) f
pLight->Specular.r = 2.0f;: p" c5 Z. H# P' L& K
pLight->Specular.g = 2.0f;
; e% P9 Y4 d3 t/ f pLight->Specular.b = 2.0f;$ r8 P2 c3 G2 D" R* O0 h
// á?oˉ
8 I: F# r" K4 u* E' } pLight->Ambient.r *= 0.9f;! q3 y+ M7 K5 w" U6 p1 \
pLight->Ambient.g *= 0.9f;6 |4 e2 r& x0 I( Z( p, M. p
pLight->Ambient.b *= 0.9f;
+ B+ b3 n# p/ K$ {% v% e% L#endif //__YENV & U( l# T4 l/ a. O3 t- E8 S$ b
: K4 I$ V( }) @ s& u memcpy( &m_light, pLight, sizeof( m_light ) );5 n6 R9 ?) q9 e5 I
( _/ r- E% \# W# t5 ]( Z
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f); y, {2 z; O- y
D3DXMATRIX matTemp;" L9 I. I0 |+ g( K( n- X9 v W
static const float CONS_VAL = 3.1415926f / 180.f;# E$ w( K# Y5 H6 p1 S1 t
% B: E5 E! g, i) Z D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
- ]6 }% N! ~9 q# y: p; Y D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
) {! X2 W1 k/ M9 f+ u pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 J, Q8 S6 Q$ A- e( q" { pLight->Appear( m_pd3dDevice, TRUE );) H8 Q& M2 R! ]% @3 e$ f' T
% Y- k; ~& K9 B, g+ L/ x // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);# Q/ ~: r# H5 g: W- [3 R0 {7 l
// D3DXVec3Normalize(&(vecSun),&(vecSun));
; c+ I5 N; I, S: K/ u$ Z2 q // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
7 c' P* E$ r+ {
# T8 J8 ~0 E, h% O/ J DWORD dwR, dwG, dwB;
4 c6 o/ @; k1 g0 L dwR = (DWORD)( pLight->Ambient.r * 255 );
$ P% Q9 e. V: @( N8 @( }3 w dwG = (DWORD)( pLight->Ambient.g * 255 );5 l7 U! J, Q7 v/ k$ C0 \; r
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 z' ~$ C3 m6 J7 e' w. n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) @& g% l& q" n8 F: s8 ?2 T }" I9 r, r- R4 R6 ?
}
8 T4 t7 e. J& Q; s) r& e# K# p7 O. P9 E
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );; ^' ~- A$ M9 H6 F* t
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 G$ ]+ z0 O/ d( z ::SetLight( bLight );4 _1 `( q" T) H' q( [
1 w5 x- `* I: u+ I
// ±ao? ?D?í???ó á¤à? . h2 ~" X" {* b9 F7 P4 E
m_pd3dDevice->SetMaterial( &m_baseMaterial );- }" l% D* ?6 E' L' L. t! ?
9 b+ S, a+ D: |
#endif // not WORLDSERVER
6 x( u* Z4 e6 C5 m}
Q7 L8 w/ n$ ^9 W+ z' X9 A$ d并更换
- }; A3 p y. g( e3 ?; k/ uCode:; R' e- R2 ^% E. C, {3 \" d; @
__FLYFF_INITPAGE_EXT
9 {! p4 N* d( D8 o定义
: s6 [9 q. m4 l" g
; L4 A6 e2 P- q$ o7 H: @
) P$ [# b+ u* q) I) P& M8 l6 e% K- R1 ~: q: `5 w! Y
7 _ ?9 Y$ m! Q" W; O现在终于删除我的狗屁加速...
' t0 @! R: V. J( i1 p3 m
2 P$ C6 H7 i& J [$ V5 S8 R6 \4 Q
2 E8 E& H0 ~: |" g
5 J" b( o- H& b0 c% { |
|