|
|
食品车:2 q; V2 B. T4 G/ N, `9 m
尾翼:
: g, w ]! S. ]$ P q) Y) h! F. W3 e" i
代码:
7 w8 ^& c8 \" Z! I7 I+ JCWndAutoFood::CWndAutoFood()
. z' V5 N6 @: M7 o2 y: c. S{! W7 k5 M$ Z' h- q
m_pItemElem = NULL;# o7 f+ J: b) K6 N- k+ X, t+ S& r
m_pTexture = NULL;
; a& o: _3 b: w! W8 L [" R bStart = FALSE;
1 b% f" Y+ x% L+ k}
+ Y2 _1 g5 [* ~: u/ m2 {9 {. b' b' v, h8 S
CWndAutoFood::~CWndAutoFood()
" _* Z) o. } y1 S R: c! _{
+ k% r, f+ A3 C+ l7 g AfxMessageBox( "AutoFood ist gestorben " );% c3 N- L- M; [) j* \0 J' D
}. Z/ y( F) }! I7 V+ K
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
: h; N1 P9 c8 n$ w# ~; f{
. @8 s! L$ b# w; G2 \/ A7 A return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );4 H6 ]2 Y- M/ o$ k
}- y4 A6 Q% ]: \. G% V& w0 i) F3 D$ _
$ U! S i$ d7 J) H+ B
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
2 k( z5 D( T0 Y' P& e{/ _* O* e% \5 j" o
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );# W* q" ?0 t, L! _
CRect rect = pWndCtrl->rect;( b5 [+ q3 q( i6 G" {% O. X* J
if( rect && rect.PtInRect( point ) )* p8 K: j) H' S+ f% U# o8 E5 B/ g
{/ c* X( K8 a6 V7 }/ L4 \
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
* V& B7 x' B" [/ e5 T if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )% w) n: z- o& @/ T
{
; I$ C3 r! |7 [: H f3 @2 u if( m_pItemElem )3 z$ H Z+ f- o8 I9 L4 m
{
% O# l, Y4 v: W5 k- l: n+ p8 u m_pItemElem = NULL;
) B% |* k' R" `1 S+ ~: c, y }
8 T0 K+ h) v% D# R9 U4 _ m_pItemElem = pItemElem;3 _/ S1 t. {$ r( L& K
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
0 p; D' D+ k. n" N2 }8 X Z }else{! ]. z8 A6 S6 }- H5 s# d, }* W
SetForbid( TRUE );
1 }+ Q. K6 H- k. d }
/ _$ [2 M( F! S! o5 r }else{
' k- w; A. ?3 _7 }& v SetForbid( TRUE );
: _ P! q" j* }8 N4 ~# W }& A3 r; J0 ~& C' m, Q
return TRUE;8 S% J7 d& a; Y( _/ f4 f5 P
}
) ]+ Q' ?( G; x* \! y; e" s: L3 j
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
% @5 q0 ]' L' |{
! o) d/ E& @; ^3 w8 _& y; S9 H* l* l' D switch( nID )! r* J4 M' k; o8 F
{
( h" A* j( w9 O2 U5 n$ }* ^; U: L case WIDC_BUTTON3:
# W6 Y5 ~' s8 _ {' \3 T2 ]/ y+ r/ J# h; L) b8 A- x& l
bStart = TRUE;
4 e% H$ F% L" y break;
' [- k, }/ `: Z; P) I }
) ^ W. `3 y) M6 n) R. M2 f case WIDC_BUTTON4:
7 Y0 q( T* W: |9 V! z! h A {& s! n* l- ?3 P/ y
bStart = FALSE;
* r1 `$ x% F) c) \) X break;
. k' X0 p; g- e4 \ }
" Q0 R; [( b; K }
& S9 t L. _, s b9 O return CWndNeuz::OnChildNotify( message, nID, pLResult );
, N6 h& ^; |1 j6 o3 B& C3 \4 E} ) q! x& n* n9 @4 l& l2 r
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
9 _( ?3 a$ A2 G& g9 w; U! \, r{9 _# T, l! ]' u2 j
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
* J+ U7 i5 G6 X* ` if( bStart || !m_pItemElem )
7 ]* E% i; {8 P" | {
% c5 [( B7 K7 N; c0 s+ P. M( V pBtn->EnableWindow( FALSE );; D8 T j/ s0 w2 P0 t7 d& Y9 D9 `
}else- Q* J# \# h9 m& }1 ~1 H$ ~% {
pBtn->EnableWindow( TRUE );
. G- l8 a" C5 ~: W, C6 p0 l& B if( m_pTexture )
% G% l# j, ]9 D: d2 G {
( L$ N9 i& [& P2 ^5 t LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& D( n m, |6 A( \: f1 a if( wndCtrl && wndCtrl->rect )
0 I( f# q- N6 i {+ e4 R% C8 Z. V2 \( A$ J' i
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );4 w+ j- r+ x' I
}
) E: r9 s9 x. u, Y( O5 y6 o }# d0 k- S2 I3 O) q' w7 C! r4 q
}
7 H$ e3 U9 u' V- o+ p' _7 r4 U% _; S" I T2 r
BOOL CWndAutoFood: rocess()' \9 T7 V8 y" s: `: i
{
, p7 H: M% @ X6 X1 k( F if( bStart )4 i% [& A5 s: `% C
{
4 `( C: Q1 e& v0 _& y( n* s6 F+ q8 o if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )' x9 Y* F$ g* J
{
# Z- q/ H- ?1 h3 D" F6 B6 X) q if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
! q) N0 p9 A I g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
% s# f$ q+ X* @ }else{- |% F. u/ R6 O4 n! T
bStart = FALSE;
4 ~" G; r& V" x* G! I* ?: b m_pItemElem = NULL;2 ?; s& A9 V3 ^' O
}
" M; f8 z4 `7 v3 l }4 y8 j( y+ E% h7 t p/ q4 r
return TRUE;
4 K+ W' J2 V* f7 G( Y: ~}
+ R$ v) q% l: }2 H' Y6 p4 F/ }6 X6 |. d
登录视频废话:
$ S1 V, o; q% F, [6 S% d尾翼:
6 D, |9 H& C7 V! S" V/ K0 j
0 r' u* }! v9 t, m代码:
i$ e, B, S" F: X) d
$ `. O1 O- c5 v* i+ |5 e gvoid CWorld::SetLight( BOOL bLight )/ x! M2 H' {0 E! M- z7 t* h1 ?* X
durch/ i+ E# O3 ~( w) D9 B+ Q
Code:7 P4 _. K I/ u; T q9 G, \" P$ n. R
void CWorld::SetLight( BOOL bLight )
+ v3 i4 d7 @8 [{2 r/ Y- Y' A! w4 r [3 L
//ACE("SetLight %d \n", bLight);
. d: F% X4 ]. c/ h * i9 `* l( S, G1 D! N
#ifndef __WORLDSERVER " D* y, w8 O$ J* J& O
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
: F) W2 n, L- E' i$ p CLight* pLight = NULL;
3 ~, i* Q$ K" k( w# g
2 V6 X) S' O0 J' f/ _" O% q D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
, I) [$ ?% P& p6 a
* y3 B9 h9 ] Q$ a2 Y9 } pLight = GetLight( "direction" );
( O6 K0 X$ x4 |/ _+ Y5 z
" ~9 K" p, ]3 U! b: M8 F. \#if __VER >= 15 // __BS_CHANGING_ENVIR
/ W" m( p# g" J w, s if( g_pPlayer ){
. u: I2 A5 ]* n" i: P3 M, q b ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );3 b3 y# S: u3 G0 X* t/ J
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!& U' F# E7 w* q( Q; |9 ]! k
{
* O* Y1 ^ B+ ?/ W) z4 v if( pLight )
- T/ _& g! ~& L: t \% f1 \8 { {
! C0 t$ V B& X$ } pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
, c8 [0 b- K. `7 S% d pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
1 N- W6 Z, ]5 c/ t1 @; a pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
3 a; ]' g2 k% |( U4 X1 a
# i! G) Y- A" I( Q pLight->Specular.r = 2.0f;. r: F; z& m) S) D# L$ E
pLight->Specular.g = 2.0f;
9 `- S# w9 E* ^" n! k; i7 `! X pLight->Specular.b = 2.0f;" p( i- L# [; r" M3 x7 e5 b
' ~5 [! z7 |3 \4 ?: S, |
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];, V' p/ h1 |) ^' e) o) }# m
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 O1 f$ T2 ?% X; l! `4 W& S* {( a pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
: O- {% e- G) T 8 @6 ~" J8 u1 h% @2 Z7 I; c1 E% j% {& q
HookUpdateLight( pLight );
/ x. t3 B( O8 e/ @' T3 s# k" N( R
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );3 T7 x0 l! P# V+ t! L
% k1 X0 e0 J: O8 Q
pLight->Diffuse.r *= 1.2f;$ y1 i3 a. V3 e2 i3 H5 e3 [- q, T
pLight->Diffuse.g *= 1.2f;- B; n) _7 }3 g5 k/ W U
pLight->Diffuse.b *= 1.2f;" I% A: o! N; S. L3 C0 n7 [. I- }
- y/ ~0 C) K& Z6 }8 a0 \- G
pLight->Ambient.r *= 0.8f;0 x7 x6 i8 s! D
pLight->Ambient.g *= 0.8f;$ j6 u$ _2 V9 {# K) s
pLight->Ambient.b *= 0.8f;
/ Q+ \/ r: N0 H/ }2 c* m
- W c# q" [) ]/ G' [" B- i memcpy( &m_light, pLight, sizeof( m_light ) );
' H! J9 j0 C; i! u1 n( ]
9 h8 }1 r- y7 i D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
8 o' _4 X) s0 m& k/ _ D3DXVec3Normalize(&(vecSun),&(vecSun));
: r4 M' L8 _( d3 t/ V6 [7 `0 S pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); * T, r! D4 C& e/ w, f& }
pLight->Appear( m_pd3dDevice, TRUE );2 T |- {% o C% i
1 I! p8 m2 e: W8 n* B# t
DWORD dwR, dwG, dwB;
" [, r! {3 X- P5 B dwR = (DWORD)( pLight->Ambient.r * 255 );5 w) }1 x; j! ]
dwG = (DWORD)( pLight->Ambient.g * 255 );
; M5 ? ~, e/ Y( H, K( Z& k dwB = (DWORD)( pLight->Ambient.b * 255 );1 X0 J0 f8 z! Y6 v$ U6 H$ b
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( Y' h) U- K4 Y# ^' I }
: Y8 v1 j% c3 ^; T2 y }
% q/ S$ }, y5 t+ S4 p5 o( q+ H4 o1 { }9 h3 ]' n" q" ^$ T8 c
else6 s1 x% h% G/ s8 G6 T& u7 A4 j3 W
#endif
; U# j+ T+ R. ?8 \
6 b; S2 [- X6 ^& U' x if( m_bIsIndoor )
2 {: h4 d7 F6 l- F+ F {8 \# {, t& g; [ W
if( pLight )
5 p0 c- ^6 G6 j. _3 B {
0 b) a( {; ?; c1 _5 Z // à??μ oˉè*
1 s. \4 L; s, S/ Q6 i pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;8 _8 }% P& \) V: R' ~# P
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;; G( A1 {+ S& D, M
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;% ]# C" f4 I) u' n
* F1 X' L2 K5 Z6 H4 z9 L$ n& Z // oˉè* ??à?
$ B0 F7 R* O1 [) \# y. R1 e k pLight->Specular.r = 1.0f;
- O# J/ y3 W( b: d# D# Y+ \ pLight->Specular.g = 1.0f;) k6 S& n1 X# c6 |& H1 _
pLight->Specular.b = 1.0f;) j* A. w1 B- D `( s e
// àü?? oˉè*
F! V, I" f" V( V& N* W pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
: ~. C `" q, Z- N9 a* H6 x pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;# _* B1 F' ]3 D
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;' Y% v5 H; Z( x/ D+ T# N
, C4 c+ d- A4 K" k- @* f9 Y" q+ Y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 F; w" }1 A3 t2 M
{/ ?2 P! _: T+ O5 S" g1 {8 R6 S
pLight->Diffuse.r *= 0.6f;
5 c* e& L, B* E8 S9 y pLight->Diffuse.g *= 0.6f;
9 R2 }# _4 B8 K, S pLight->Diffuse.b *= 0.6f;
5 U4 ?$ f) D, s/ l5 [8 ` pLight->Ambient.r *= 0.7f;
" n U- e) e& i | pLight->Ambient.g *= 0.7f;
( R) w+ _5 g. J2 [/ O! h( o) i pLight->Ambient.b *= 0.7f;
& Q V8 T# r' s$ c' k) T; c }
1 H0 E" ?3 i& A% y/ G$ b( m' w# I+ X7 p% u, V+ j
#if __VER >= 15 // __BS_CHANGING_ENVIR
5 Q7 F/ |% A" D" N. J6 M2 A" r4 I if( g_pPlayer )) D. u6 b# D9 D) Z" m6 G
HookUpdateLight( pLight );
% d; D8 n+ }! U0 V- ?4 n/ m6 \#endif
2 c; }! Y2 F; }/ l, n# L# C; z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ [: L5 F- y! @
3 ]% w6 L: \5 Q, Z2 l, N4 b7 P pLight->Diffuse.r += 0.1f;
& r% Y) ?8 y m* R( F0 w" h3 T pLight->Diffuse.g += 0.1f;
" ?/ L2 T# t4 @ pLight->Diffuse.b += 0.1f;7 m& M3 q5 o- {# e" u/ p' h9 P( n
// oˉè* ??à? ( K( Z3 L0 h+ \/ f# n: [; `' z7 j2 j+ b4 {
pLight->Specular.r = 2.0f;, H! k2 P/ }3 ?! b& C! _
pLight->Specular.g = 2.0f;
0 T- ?8 s p$ F7 D3 t8 ]' h pLight->Specular.b = 2.0f;
6 y3 m# e& i( a7 N |# V, @ // á?oˉ $ X, W* o: u! J6 I& T: u: o2 C
pLight->Ambient.r *= 0.9f;1 E* F( A6 t7 E- W3 F) J
pLight->Ambient.g *= 0.9f;
, s# u, e. X# X0 Z2 x$ y! ? pLight->Ambient.b *= 0.9f;
6 o* P8 Q( S- G, P) y( l2 m% I4 P2 K) ?+ @! c$ w
memcpy( &m_light, pLight, sizeof( m_light ) );
. {' J! ^ M! w% z1 y% ]4 e# i: Y& P + Q6 L0 t# C( K) e0 `6 F* {3 i- H6 j
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
! M3 x. Z I: ]/ \, ^% A' X+ B5 M o pLight->Appear( m_pd3dDevice, TRUE );3 n' C% S' r1 g* Y6 n& S3 m
' B, Z! B* C) c( c4 ~8 s DWORD dwR, dwG, dwB;
; h, b( O+ w" M' X0 L- o dwR = (DWORD)( pLight->Ambient.r * 255 );
( K6 d7 l. w4 p0 A8 R# w dwG = (DWORD)( pLight->Ambient.g * 255 );
. ], k. N# ~2 e3 j0 k3 O" _ dwB = (DWORD)( pLight->Ambient.b * 255 );8 f/ s9 O4 V4 t* P/ t- m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' a: a( G! G3 |9 i% M7 | }% m% b6 |) a% v
}
' p4 i E% |/ C% R- m else
' K* ` q6 p3 e3 _1 w7 }4 P3 O6 M {' c* m r- E. \) n- k5 n* j
if( pLight )1 W$ d' M8 z, J2 O. c( k! g
{
; L c4 I7 F- D, I" ]) ^9 Y+ V8 \
0 K: ?4 d: j9 X" H1 R int nHour = 8, nMin = 0;6 ^) \+ F% Q6 [5 q+ `# |
#ifdef __CLIENT4 f5 U5 G5 i ~1 S* i1 J F8 ^
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. % f- D/ F* f( K5 X: b: V
nHour = g_GameTimer.m_nHour;# X! {! X+ ]9 F. \( S3 x& k3 e
nMin = g_GameTimer.m_nMin ;
/ E! N4 a% G1 K6 }8 J: P/ ?2 s" n #else; _- M/ g! z1 r7 K- V4 O7 j
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.- G, S( o# E8 O( x- W; ?
if( m_nLightType == 1 )
. ^. |* g! X# l: O8 h0 g nHour = m_nLightHour;
" ?. ?. D) e' \. E #endif
8 c5 V" y7 U- j; _& L% _/ d nHour--;8 T0 j4 }( f/ j5 K# A
if( nHour < 0 ) nHour = 0;
. j7 Q0 L& X) y- R3 ]" {% M( [6 z if( nHour > 23 ) nHour = 23;
1 i, C* S7 G! k1 s: ~5 a% f& r5 f" E" r: O5 l2 Q
//if( m_bFixedHour )0 W: H, I s4 ~; A( Y1 t" T
// nHour = m_nFixedHour, nMin = 0;
0 y) G2 ?: @' [# C1 m# ]$ @7 z LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ V" \- w9 W7 G$ s2 o) j
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
) U1 U. `" S: F# j# a" L3 { l K Y K& Y
//m_lightColor = lightColorPrv;6 _9 v! G4 Q% ?( K7 {& a; p
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
) T: r8 }7 {+ A4 H* R5 v) u0 \ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;# Q+ s/ v# M& }" o
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;& C0 f0 s; g1 E5 ]8 O" m
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;) g( W# m. T- L2 ]' M0 j
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;0 B1 e" z& Z6 Q8 f2 H
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
! g" n3 a0 \# _8 ]5 G( } // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
0 Z6 {: a. d7 B5 Z( G4 ^8 e- z! y
// à??μ oˉè*
: u% _3 v8 W5 V5 p pLight->Diffuse.r = lightColorPrv.r1;' X) s p$ D1 _0 o3 u* Q
pLight->Diffuse.g = lightColorPrv.g1;
) e& @( M I+ l: x9 G _ pLight->Diffuse.b = lightColorPrv.b1;) Q5 ~9 Y' U7 G. F- Y
// oˉè* ??à? 4 v) ?" _) U% Y8 e
pLight->Specular.r = 1.0f;
4 \3 e9 I, z$ y/ O! f% Y pLight->Specular.g = 1.0f;
8 e6 O/ X* G) i" K& t/ z- C/ ? pLight->Specular.b = 1.0f;
0 n# }& f6 G) Y+ V# K // àü?? oˉè*
/ K. j, O* k8 U# k+ _. f1 {4 l pLight->Ambient.r = lightColorPrv.r2;* T% c. m7 v$ p1 t. @' U' i7 U
pLight->Ambient.g = lightColorPrv.g2;; c+ B; a: ^* T7 w2 M# H
pLight->Ambient.b = lightColorPrv.b2;) X( ^' |) T; Z! u* l0 C$ G# M
! E6 k, D) W( N' s
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
! K& u5 d: W4 Y$ r {7 T7 t7 w3 ~% f1 O! W( n% F5 I2 G f+ J
pLight->Diffuse.r *= 0.6f;% C. l3 u: I9 z# b
pLight->Diffuse.g *= 0.6f; i3 x: {7 v( R! j- _/ e5 w
pLight->Diffuse.b *= 0.6f;
- [. ]9 X, V# B, p& ~# d# [! u pLight->Ambient.r *= 0.7f;8 m; n% Q. T* y# ^9 r& ]
pLight->Ambient.g *= 0.7f;
$ p- Z/ w. `6 B0 Z3 j* l. J/ d$ D pLight->Ambient.b *= 0.7f;* i7 \- I- l8 B4 {& L7 l) C' x
}& I/ x% U2 ?' u, c
+ a; U8 y. ~4 h
#if __VER >= 15 // __BS_CHANGING_ENVIR% p P- B7 n9 K* X6 m
if( g_pPlayer )1 j) y; R* ?9 B6 U6 p' o+ I5 s
HookUpdateLight( pLight ); 3 X& Y% [ x; `, f$ A! D% O$ |( {( P
#endif# _3 W8 y9 |* m5 ^
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 M( l. C/ K& R$ z. m/ Z% \; \) l5 k( L$ v V; |
#ifdef __YENV7 W1 k4 _: ? J8 L. n: d
pLight->Diffuse.r *= 1.1f;
) C) H; {& b3 U& e pLight->Diffuse.g *= 1.1f;% E* ?* r. k1 B8 k1 ~
pLight->Diffuse.b *= 1.1f;
2 t% }+ }' U3 b: @0 X' r // oˉè* ??à? * ?8 A1 j0 B6 k- T1 `3 ~0 I
pLight->Specular.r = 2.0f;0 b. o5 X4 Z7 s" v, I
pLight->Specular.g = 2.0f;/ J+ W# y, ^( q1 S
pLight->Specular.b = 2.0f;; [4 T+ ?0 _4 B, j! T
// á?oˉ 5 J! q7 R) H n2 S5 Y8 m# X6 A
pLight->Ambient.r *= 1.0f;; J7 l# Q: j8 k" b
pLight->Ambient.g *= 1.0f;
3 m( o+ R8 n3 _, S pLight->Ambient.b *= 1.0f;
3 m# `/ w8 i% R+ p# |8 K#else //__YENV2 x/ w. i/ O& C
pLight->Diffuse.r *= 1.1f;, H0 u7 `4 ~* B' v$ }" |& v
pLight->Diffuse.g *= 1.1f;% d7 U; K2 D- O$ p9 U1 `
pLight->Diffuse.b *= 1.1f;. o" t9 K0 l, k) U8 e
// oˉè* ??à? 1 h. M2 `% C) I' i2 M4 A
pLight->Specular.r = 2.0f;9 B/ {9 P! y4 h5 r0 S5 g0 C W
pLight->Specular.g = 2.0f;1 i/ W# E0 U1 `9 g1 z* c9 g1 e2 l
pLight->Specular.b = 2.0f;
' {4 y e9 Q% ]+ C8 p: p // á?oˉ
( r+ N4 k% x+ M9 z$ N( [9 i) i pLight->Ambient.r *= 0.9f;3 L: g; n# L% Q# u1 R+ S# t
pLight->Ambient.g *= 0.9f;
" B* L" R7 u: ~* t pLight->Ambient.b *= 0.9f;5 u6 R; f) X x* N
#endif //__YENV
! A5 l2 C2 j+ j, z z3 k D" y& u
( J% }$ o' s3 b. b ]. T memcpy( &m_light, pLight, sizeof( m_light ) );4 M; `! ~! {/ j
3 w* Y; {& Z- {3 Z1 Y
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);( v" P& H" r% f4 J
D3DXMATRIX matTemp;4 @/ ]1 ^# a! Q: U
static const float CONS_VAL = 3.1415926f / 180.f;& T$ G8 k/ z6 t- A7 @
0 C' ?6 y9 C) J. s3 n" k D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);! P2 j; A: R! b0 W! W/ G4 e3 h
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);- R% ^3 V" Q* I$ n- [2 K' T! v
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
3 U- ?2 V/ ~& x# c pLight->Appear( m_pd3dDevice, TRUE );( y/ A0 T) x9 O `
! y: ~0 _) C" g' U9 D4 z // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 G0 }# w( _) E8 f" D& e // D3DXVec3Normalize(&(vecSun),&(vecSun));
7 R% D# E$ v2 B- M // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
& g5 a8 b9 l! B
& G# t+ k8 c1 B* x8 ? DWORD dwR, dwG, dwB;
" @3 ]2 s |9 x dwR = (DWORD)( pLight->Ambient.r * 255 );& G/ P! q5 t! v; o7 P
dwG = (DWORD)( pLight->Ambient.g * 255 );/ Q. o! @% p r- |
dwB = (DWORD)( pLight->Ambient.b * 255 );
1 P2 j# ]) _9 U, J8 R3 f dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, P; K) L( `2 W& t. O }
3 k7 R, N5 W9 I# ? }
! B! ]# Q' h& V% D7 n. E; ]0 Z* m' P/ }' w9 B
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );5 _/ @5 x9 m) A* {2 T4 R, k' M
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) );# F3 e/ W: i* B' d7 Q
::SetLight( bLight );
" |1 I# W% L1 Z+ s( ?; ^2 p- i/ g* U- j" P$ }8 p l0 b6 v
// ±ao? ?D?í???ó á¤à? . m% [* f3 h. f: H3 k' V* X( ?
m_pd3dDevice->SetMaterial( &m_baseMaterial );
$ x& T# Y7 ?1 o9 F) j/ n( Q$ |
% U2 @, {6 F3 N. f; J: m#endif // not WORLDSERVER0 `8 ~% T S3 F' C* L' f! H" S" r$ i3 j
}: u& {. H5 `2 j$ O0 W- ?
并更换( r: W6 M9 C( {( X- S: U
Code:) J2 \& }/ p' y/ C
__FLYFF_INITPAGE_EXT9 v; M7 N6 D5 d. H
定义
! q t# H8 `. y! ^1 T! i; k* @
s/ E: j7 y" v1 D) n. n, h3 W9 m. U" W9 G/ e& I) \, M9 s
, M( w* @) q6 l/ W ^0 w* }5 d2 t
' A# H/ w( F2 G- G1 n
现在终于删除我的狗屁加速...
! D2 c7 ^- ?& y: ]5 L' L) ^3 d
% S9 [/ Y! o3 R, k$ r; a2 U) X T2 a5 I6 J
8 d" {! {( ?2 e# a3 s |
|