|
|
食品车:2 b% i5 g( q# j/ M
尾翼:
( S K/ G( Y* _! }# j2 T/ l+ Q% ^
代码:, b! X6 U3 z& H7 |+ W- Q4 c1 O
CWndAutoFood::CWndAutoFood()- b7 W* j8 [: l& B
{
, R1 \: D1 S* Z' p* n ?4 m' o) {( r m_pItemElem = NULL;5 U% _2 N4 c3 P( b7 X& `
m_pTexture = NULL;
8 v; i! g% D+ }2 Z$ A) z4 c! d2 @; a bStart = FALSE;
% v( N: ?1 r( u" _7 M& v5 P: t+ @}5 }$ h' d7 t3 V
& |& F2 L) _" ]8 @( O
CWndAutoFood::~CWndAutoFood()+ H& L+ A( ` ?. s9 I$ I4 P9 C& b
{0 A4 l5 R6 V" @
AfxMessageBox( "AutoFood ist gestorben " );$ B, A* ~, @- _7 B) U/ a8 V1 n
}
/ F, g/ W- ?$ x+ bBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
! t9 s2 a. E4 I) o$ m{
2 R2 I- a9 ~: Q0 j H6 |* u8 U e return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
, h6 u, b: w3 V z4 u& O) _}, ]' s" `8 @, H% K+ E
* s/ m1 R: F+ r1 A( u7 ]- |0 ]- UBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )4 i0 M8 A% F5 M7 N. C# h) \. z
{
* T7 q+ x6 I8 t% n% Y LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 R6 [; s! b6 ?3 E9 D CRect rect = pWndCtrl->rect;1 u/ ?8 |1 w* c; e8 J
if( rect && rect.PtInRect( point ) )4 g" ]2 o u4 `# J, k) A7 J
{
# W0 w6 v" {2 N# L8 D7 Z7 `: I CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );$ ~0 P3 T" ]) m4 l% |4 D
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )5 M. E, |$ j2 @7 s2 }$ w D
{
* e& X5 Z; \! O$ W& j: H1 A if( m_pItemElem )
. |! h$ B4 s9 a& D, n4 ^4 h, n {$ E+ u/ w5 t8 Z5 |/ T
m_pItemElem = NULL;
+ z7 \& M5 p' W) H; |1 k }% k9 r& h2 ~, `& \
m_pItemElem = pItemElem;1 g1 E. l( @& g# W9 D: @/ L
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
: |% ]' d7 [4 z% }/ ? }else{
m' I; T* x' S) ]9 a9 K; t SetForbid( TRUE );
: x% K# A9 o5 ~1 n4 h }$ p4 B. W) a" j
}else{- S* G+ c7 m1 D0 H: G
SetForbid( TRUE );
3 a4 t3 S" V# K K; o8 d, j8 S- t' e }' ~$ r! q$ W" R( p$ w4 o5 O
return TRUE;6 F( r. C! w% [5 c7 l) T
}
" m9 v& |, h. |4 W. ~) d" K; R7 l7 z- o9 ]
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
5 B# V4 f3 n) ]+ W8 g{! k) ~6 K/ h" j; l7 y
switch( nID )
9 H" k& R! }! H {
+ `8 n* W: S: V$ ?; ^- s case WIDC_BUTTON3:
. P' X/ B( ?# T0 v& P+ a {
4 X1 c1 G" H3 B" b, H bStart = TRUE;
1 D6 A# @' q' x8 m* c1 \' n0 @) u! m, f break;1 r$ L2 |$ r3 e
}3 u5 L0 l8 ?5 Y
case WIDC_BUTTON4:
% S+ M! X, X: b7 S4 E. t7 V1 b {* Q a9 t, h- s( b: o/ j
bStart = FALSE;+ n+ u4 R$ F5 i! `
break;
1 |# r% D6 ], z: Y9 v }
) G5 b! H8 r1 D& u/ {8 |% H }
3 X% F( h8 r* S: ` return CWndNeuz::OnChildNotify( message, nID, pLResult );! l4 n7 D* X+ S) i% _$ M+ W7 k
}
4 j) T' B% K) ]void CWndAutoFood::OnDraw( C2DRender* p2DRender ), O) S$ ?9 P" I+ P6 V( l, U- B% O0 [% Q
{
) W1 @) T0 J/ t: n% }, w7 C; U CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );7 D b5 C1 u9 k3 {& f
if( bStart || !m_pItemElem )
% u: s- U4 P6 W+ X, k {) C! s) Q6 Z4 |1 ]
pBtn->EnableWindow( FALSE );" o4 T& t, f0 R2 r& ^
}else' r8 J6 d5 O* h' o1 z' C- A
pBtn->EnableWindow( TRUE );
( V0 O9 P5 \- w' x( a if( m_pTexture )
7 U, v. _/ F, o7 k7 Q {
- Y! u$ v, u2 C' _ LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( N M( n0 j+ m: T4 i- D$ C if( wndCtrl && wndCtrl->rect )& k' d% g& P1 r( T/ l
{
+ v e0 [# a2 k2 r: W" D. l m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
$ E" m- i7 b3 w9 E9 x5 E }* Q& f; U# n3 _, m! J6 i
}3 Y* j+ }3 ?7 e* z: S: p! x! _+ F
}1 ^+ T/ y4 H1 J" {+ V. G5 ?8 n
( B9 m. m5 T2 I' @9 {BOOL CWndAutoFood: rocess()( Q6 T; d( `* w8 N( F- y
{
( r; ?: N# _$ U2 {- z$ x if( bStart )
/ \' i/ p2 ]# q+ S2 [# Q% M {
8 }2 ?: {, u; L$ q3 r3 ^ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )4 [- e& g1 N3 y9 s1 }
{
; c0 l( g1 k( u/ } if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
* g" `# T& V9 N7 e g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );) f, E6 \8 w; A; c N8 x6 d9 }$ E* D
}else{
; L# E- t6 x! a" U. ? bStart = FALSE;
* I: G( T# C2 E2 y9 g: ~ m_pItemElem = NULL;+ k* ?* D8 l- F
}
8 M9 R8 y$ i6 a8 A0 B }
3 C R/ ^% a7 o$ _2 L/ V+ j. O return TRUE;
3 `: f# o9 @4 _7 F+ s' |/ R}
4 T+ X) C( c g' k8 B: `6 W9 [
& [3 C! G/ e/ Z( s6 _/ g) d& W2 _登录视频废话:
$ l# Q& c, ^. O# T1 v0 d尾翼:
. b( ^5 X4 @% c# P) s+ |4 O7 p" h4 O8 e$ V1 N9 X6 W3 Z) U9 \2 @
代码:
, t, V, h$ t8 v7 b& ~
4 t. q4 d3 R7 O/ I% o) p8 Vvoid CWorld::SetLight( BOOL bLight )! {& S" C: u) {2 ]% N5 w( f
durch
* [- }7 B8 m; D! N; ], a9 Y0 BCode:. A! k- k, o2 f
void CWorld::SetLight( BOOL bLight )5 h3 b3 S: H" G' s
{* O9 ?4 V2 Y; B* K n" ~1 A0 L8 F
//ACE("SetLight %d \n", bLight);! \6 v. B* T6 T3 P* y
& M8 C' O" ]5 x# @' J#ifndef __WORLDSERVER
) l4 T D5 ?) W) E' S3 k DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
' U( C& w2 m7 w: Y' Y/ M CLight* pLight = NULL;
: C8 H" a7 E3 [. x1 l# M
7 M, E+ T& z- `5 Y2 b& a/ d D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );" n, X) m8 Q, u
# F) A' v7 K6 h. G
pLight = GetLight( "direction" );" C9 S+ V, i) B0 g
5 F5 b% z1 b2 Y! q4 r! ], z
#if __VER >= 15 // __BS_CHANGING_ENVIR! q$ `& f) v+ b7 k
if( g_pPlayer ){, G4 K, n( T Y* m% e
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );# J( V: B7 l. b e6 y
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
+ Q- O% x2 o3 e9 S. y3 H9 a {5 V' i7 i i1 b
if( pLight )
" C6 ~! F# j7 I" E O! Q& N6 f {- `( u4 `- \4 `5 N1 [% f% ^ D3 H. Z
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];) X( j* L3 U1 `2 h* N) n- N
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];# v' Y! s, F& a6 M! L5 {
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];7 f7 O y- ?3 Z( W6 u4 u
. d9 w6 R! X- n; e pLight->Specular.r = 2.0f; n6 R$ ^( i% t6 p" R! }( U
pLight->Specular.g = 2.0f;' V) D* W; T( c4 x# P, I1 R7 Y4 v! w
pLight->Specular.b = 2.0f;! d/ S2 C7 U! g% o; w
& k% S* N& d$ t4 E pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
! w" A' ` s, y/ ? pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];( X9 V) E$ l4 r/ m3 A
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
n/ ~ ?. h! j 8 {7 c) ]1 m V# G- j
HookUpdateLight( pLight );
# T) x' k( k5 t8 }' D. M. u0 j6 Z& T0 S3 z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; y s. m: I$ G- y
: d9 _. I5 T' e: G; @ o4 ?# p pLight->Diffuse.r *= 1.2f;/ g+ P' D/ m1 G7 N* p
pLight->Diffuse.g *= 1.2f;3 d' x; a. C# L) \8 \1 V9 b
pLight->Diffuse.b *= 1.2f;
' \9 E3 r# Q1 i& X4 n! x" _5 x4 B2 J5 e3 ]! z; V. k
pLight->Ambient.r *= 0.8f;
0 m/ p! e$ }( e pLight->Ambient.g *= 0.8f;: z3 {, ]3 O7 H) U8 q# F9 e7 k
pLight->Ambient.b *= 0.8f;
9 _. E& K3 M8 p& M" A
2 s) f X/ r; s% Y memcpy( &m_light, pLight, sizeof( m_light ) );
$ L5 z) w) M. r& {7 ]* [6 _
0 m& _) J0 |2 M+ P' X D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" a' K9 z3 B9 x6 r- n/ r
D3DXVec3Normalize(&(vecSun),&(vecSun));
* M4 P" m& C5 c& M7 x, |# a( C pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
4 K: J2 y3 S& ?- N. K4 ^) g1 w pLight->Appear( m_pd3dDevice, TRUE );* u+ C) Y- J3 K O( P% a6 _
8 k. L* Z3 Z# o9 P
DWORD dwR, dwG, dwB;
' M. j% f l$ Y, T; x dwR = (DWORD)( pLight->Ambient.r * 255 );
. j* t/ N' p) ~# M7 x' }# g* s dwG = (DWORD)( pLight->Ambient.g * 255 );: B) ?' o& @+ t2 s7 Z
dwB = (DWORD)( pLight->Ambient.b * 255 );
* B: }3 U: p) { r) m' s dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) o% Z: x1 B/ X, ]
}
5 N; W, w4 p( K* j: ^ } u5 _; r4 n6 {3 _0 A$ k$ }3 J
}) o6 ?7 |: z. m, Z
else
. n- L8 X. m, [' y* s( k: G#endif
- |& D& {. G- y0 W, f" V+ `$ e) \$ W: U3 ]% J5 ^1 Y
if( m_bIsIndoor )
: A$ g4 x6 Z! I9 y) { {
) U& s6 ^" b: V, E2 A W if( pLight )7 w* x" U! j; H3 ~/ O
{
- W' o7 h$ o3 a( G1 c // à??μ oˉè*
1 D- i- v" \5 _1 ^# ] pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;/ r- O" U& ^- A5 W1 T9 t: Z w7 n
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;6 |9 o% ?) u3 W0 s
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
9 G9 C. `* T3 p. r6 I: J% [( t8 j. d3 E4 h; |6 H& h
// oˉè* ??à?
3 f% o0 C' m: Y* h& ~9 h pLight->Specular.r = 1.0f;# `' ~$ f# r5 M2 ?5 o
pLight->Specular.g = 1.0f;
" t( o( {! n7 G. R pLight->Specular.b = 1.0f;
3 O3 T7 @ a& C: U // àü?? oˉè*
! z! j, m1 y% e2 [6 O' H5 E, w pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;6 T, \; {) ~, Q$ Y
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;# N' m/ J2 w! c L \/ h$ j
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;& l7 b! \% I2 G# ]
6 O% ?: t6 @( O8 D if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 ]3 N8 q7 ^- a' O" q
{2 g: I7 C( B0 X+ C- y. l8 b, a9 O
pLight->Diffuse.r *= 0.6f;; K& }4 H, d$ k4 q$ k1 i
pLight->Diffuse.g *= 0.6f;* ]" B3 @6 s8 F o) W) k( m
pLight->Diffuse.b *= 0.6f;0 k1 h$ W0 q# \/ T- Q, Z
pLight->Ambient.r *= 0.7f;5 U b7 }9 x; f) b
pLight->Ambient.g *= 0.7f;
9 O+ T4 ^) m6 c, t pLight->Ambient.b *= 0.7f;
6 v* h4 k# n% K, |" K }/ ]: A( L5 l3 t+ A4 @
& T! Y& F) |: v: z( v7 C! k! d/ t
#if __VER >= 15 // __BS_CHANGING_ENVIR
& Z# d- C6 q: u8 j* U$ k; ~ if( g_pPlayer )' T* z O6 ^8 Y3 |3 {
HookUpdateLight( pLight );
( R! s0 E( Y u#endif
9 m7 p' b. ~& b, J. d8 k9 j0 R6 ^5 T memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 y% ~, {2 ~, f9 q, s/ J7 v7 U1 q9 z) a$ W
pLight->Diffuse.r += 0.1f;( N# o8 B8 w: F+ Y; c( G: u
pLight->Diffuse.g += 0.1f;
1 ~% N+ O/ [) d* \% d* v pLight->Diffuse.b += 0.1f;8 }- x6 T% g* y3 c$ |( f. b
// oˉè* ??à? 8 t5 P( r6 I0 u7 a3 r
pLight->Specular.r = 2.0f;
/ J8 a, X6 X' r% J* Y8 {" v pLight->Specular.g = 2.0f;
% T `0 V, A5 q6 F( l% L8 \8 W# R pLight->Specular.b = 2.0f;
" B! T! M4 k: r5 M7 }1 D // á?oˉ 8 F$ M% h# z3 H
pLight->Ambient.r *= 0.9f;7 H- u% V/ c# w, s
pLight->Ambient.g *= 0.9f;
/ @7 l4 D# n C$ f pLight->Ambient.b *= 0.9f;
+ `1 S2 @9 i/ L3 z1 e
9 g5 g) E. P- o! L memcpy( &m_light, pLight, sizeof( m_light ) );
D2 H& c6 D# n( b, ` i
! @ h8 U: y- o! B0 q pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );# M- N' p( Q0 i, R* b/ s0 `% E
pLight->Appear( m_pd3dDevice, TRUE );
/ c9 d- n+ X# G% [2 g. o, ] , W8 Z6 l( x# @
DWORD dwR, dwG, dwB;% C/ h7 H, _$ g1 |6 t1 R& ~
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 S5 N4 @7 x" Z) d% ^1 y dwG = (DWORD)( pLight->Ambient.g * 255 );7 G- ^* R8 e& D$ ~! |$ O$ i! x
dwB = (DWORD)( pLight->Ambient.b * 255 );
8 P L5 B/ q V, Z1 O dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 K. i6 O o- R4 ?1 V }: `* U9 B& M4 o' n1 J
}7 e3 B6 r/ V5 n8 T1 x
else. D+ y+ h. L7 V9 y3 r* ]
{7 B* {( p4 e/ L3 |+ R) T! N, B
if( pLight )
4 q1 _; I# _$ g {
1 Y& }) N: G$ O E2 v4 K
1 }6 X0 B, I5 {& y int nHour = 8, nMin = 0;
, Q: `5 T% d3 L6 E #ifdef __CLIENT- B- x5 B4 i5 o2 o% X# F1 ~4 ~
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
+ o" i( o9 i/ d2 a1 | nHour = g_GameTimer.m_nHour;- k, }' Q6 g6 q9 T
nMin = g_GameTimer.m_nMin ;% g" d- I; |& C4 v8 t3 u8 w, w
#else0 T4 w/ q* J! U: }9 b
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
3 f3 t# t F+ N0 P: ~ if( m_nLightType == 1 )
' K9 W1 D" U3 s9 t nHour = m_nLightHour;
v/ a2 k+ J5 K, m9 g9 `7 }. S5 e/ t3 C #endif
4 {* @& y. x3 } nHour--;
' F" K! B$ G, P8 r7 l9 ?9 [0 ^ if( nHour < 0 ) nHour = 0;
/ D) K9 w9 K8 f" L) [$ @ if( nHour > 23 ) nHour = 23;
0 ^1 \8 A I+ q8 d7 J9 S
2 ~" K7 b. C2 ]' Z) L //if( m_bFixedHour )
+ l3 x9 v2 L5 H // nHour = m_nFixedHour, nMin = 0;' D+ y$ h1 h. U- X
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];! q" n. O9 Y' U9 U
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- m; J/ Z. c D4 s( }; C' V
, U* Y" ?* o7 D) K+ D3 s //m_lightColor = lightColorPrv;
/ Q. T; O7 I2 B( _ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
X2 g/ I0 U; B \9 |3 ] lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;* R1 v) _/ s, W# y0 `5 ^5 t) u
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
# U. d9 ]2 e8 N% b2 C8 _' j lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;! i, P2 G% ` P% U4 o: F" x
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;1 ~4 a# \+ g5 W g: K' m6 |
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
$ _7 r0 U, n. n9 z0 h // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)! W5 m6 E6 J6 y8 v# r) k
; M. \2 v7 q R' m // à??μ oˉè* 4 F! Z% \+ U2 ^* }% R
pLight->Diffuse.r = lightColorPrv.r1;3 C, a& N. F7 J+ \4 |# ^
pLight->Diffuse.g = lightColorPrv.g1;. W' Z& K/ W# ?
pLight->Diffuse.b = lightColorPrv.b1;7 h( x" d- o7 [4 L! B
// oˉè* ??à? 4 {& h8 S$ d" t- Z9 g- X4 l
pLight->Specular.r = 1.0f;
! [6 X" k' L; Y8 w$ [- T, [0 R pLight->Specular.g = 1.0f;
4 A: P/ u+ X# s2 M9 t( l3 `5 b pLight->Specular.b = 1.0f;7 R/ W0 r# D" S- A0 \
// àü?? oˉè* # z- C% l$ m+ [6 n$ j9 k% N
pLight->Ambient.r = lightColorPrv.r2;
5 u9 A* H5 C# L4 { pLight->Ambient.g = lightColorPrv.g2;$ y& {2 K h7 D
pLight->Ambient.b = lightColorPrv.b2;
$ v1 X9 q9 N6 }( `1 n/ Z
( k/ n7 |/ ], _ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
q$ x, u! y u- {% N- o% L {
1 g$ F$ s) k8 [% b, Z% B+ P; s pLight->Diffuse.r *= 0.6f;1 n! R, Q6 o. B3 `& y9 k4 X
pLight->Diffuse.g *= 0.6f;
& o; z& }; f7 E; }$ n. L9 _" X pLight->Diffuse.b *= 0.6f;
, z4 ~$ m$ E9 g6 F$ P pLight->Ambient.r *= 0.7f; f2 }- @9 R2 @" i
pLight->Ambient.g *= 0.7f;
8 @" ~% L: x+ Z/ |9 k+ _0 A, w9 z; u pLight->Ambient.b *= 0.7f;- S, m: G" c& ?3 P5 y; }7 s
}
6 i5 y& H2 s9 \" b: X; D" w $ z2 D" w7 C+ Q
#if __VER >= 15 // __BS_CHANGING_ENVIR0 K+ c- |1 H: H6 d+ \; r
if( g_pPlayer )
2 H% i: f( c6 P. o) a7 K HookUpdateLight( pLight );
5 [: ]: t/ U* R* \- \#endif" |; E9 B' h: \" @0 O) e
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% N/ `7 M8 ~) g o# W$ d
' { J4 X5 ?1 F6 @) [+ u" e#ifdef __YENV
1 T6 @2 j! n, v9 A5 f pLight->Diffuse.r *= 1.1f;' O9 C; l9 I- n* ?
pLight->Diffuse.g *= 1.1f;
* H P9 C: k: m9 L pLight->Diffuse.b *= 1.1f;
! t: ~+ S* p' x% W1 W( d // oˉè* ??à?
3 K6 i8 N% K2 b pLight->Specular.r = 2.0f;
7 R' c& V1 @/ | pLight->Specular.g = 2.0f;4 j) P) i8 k n, T
pLight->Specular.b = 2.0f;9 L; j. c' q; n/ ~6 C$ I
// á?oˉ " i1 |& }: k) t
pLight->Ambient.r *= 1.0f;
9 O/ l. N5 R) g) `2 o: u& z0 Q1 ?, o pLight->Ambient.g *= 1.0f;# T( u+ N5 c% P0 A0 g& o
pLight->Ambient.b *= 1.0f;- A' ?# k5 w* l* e3 b" v" R
#else //__YENV
0 `5 i6 G- Y* x pLight->Diffuse.r *= 1.1f;
# y$ H( V6 {$ j3 d' U4 Q pLight->Diffuse.g *= 1.1f;
" V& {. ^% I ~ pLight->Diffuse.b *= 1.1f;
+ K, }! o3 K$ q4 m // oˉè* ??à?
; e2 r3 [3 e7 ~/ } pLight->Specular.r = 2.0f;
* [/ e/ [: I& b5 g/ e0 c0 d! C% J pLight->Specular.g = 2.0f;8 w- ~: z5 y- f' J9 `* V* G7 R; \
pLight->Specular.b = 2.0f;! x" |+ J) g- N' U8 o/ m; T
// á?oˉ
0 S9 `( W# M6 l4 d0 e$ g2 y1 | pLight->Ambient.r *= 0.9f;- E) i" v% E3 ~
pLight->Ambient.g *= 0.9f;$ _8 x$ [" F! a8 j; K0 L! }/ m+ E
pLight->Ambient.b *= 0.9f;
) @, e! F$ X8 y9 ?1 o' \$ p# e4 Q#endif //__YENV
! ?6 m: V- A" U3 w+ s/ l7 ?3 R r; F% t6 W" n3 c) Z @, c
memcpy( &m_light, pLight, sizeof( m_light ) );
o, E) [9 z4 u5 b1 |8 y 0 R7 w9 t c. P, g; g8 W
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
) i4 B( d2 {) k% [: J; R D3DXMATRIX matTemp;% ]2 |( [+ k& N6 y! _+ ~& h, K" v0 Q
static const float CONS_VAL = 3.1415926f / 180.f;. c* m+ }2 ^' K: \( c
5 `# l$ C) ^2 K/ R1 C6 j D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
2 J) v" x" P& r/ g% _+ z. ] D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
! d6 e( C- z7 J" R6 N4 o- j pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ( B, b2 s6 \/ {7 \; f9 U& p/ J
pLight->Appear( m_pd3dDevice, TRUE );
0 d" @$ \- _7 X/ U* m- h' }: m; v& M7 c
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
" t% |# s" ~" k) _. Z; J0 y% L* H // D3DXVec3Normalize(&(vecSun),&(vecSun));
9 l# u8 q& U, ^/ r& H( }( P0 ^ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* d0 i: C8 C. W( k
" e" _8 |. h+ |) A DWORD dwR, dwG, dwB;
; F# ?) a1 D' S% V0 b. V. r* Z dwR = (DWORD)( pLight->Ambient.r * 255 );2 t% S1 U8 R1 A% G0 ?: M+ a
dwG = (DWORD)( pLight->Ambient.g * 255 );% g7 Z& w: w( i! w) _" U
dwB = (DWORD)( pLight->Ambient.b * 255 );% t4 f( \5 Q: q; B; ^ Y! y4 P
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' O6 |( x9 k' O* `: a3 ~ }
' ~; S+ `% E) z }
. V/ N6 Q7 G. L! K( v8 ~) s% _+ F. D8 h: B/ W% O
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );9 H4 n5 o* |3 _ e2 ~% \7 g0 S
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) );, b3 o: m, K6 S& U4 y( d0 ?
::SetLight( bLight );
; S9 Z: A6 \) P
4 @ [1 i# a6 C" D2 v4 h // ±ao? ?D?í???ó á¤à? 6 r3 u' f: Y4 W" z3 ~
m_pd3dDevice->SetMaterial( &m_baseMaterial );/ H" Q! g' s' o9 Y1 v' J V% K8 h
4 A: E5 ]" r$ Z+ s$ a#endif // not WORLDSERVER7 _% m+ d5 h( ^& a. N0 t3 F
}
3 ^& p7 W& q! s% l; X并更换* s, }% O# w2 G+ S4 u* }: E5 G
Code:
9 n0 T' R5 N2 h__FLYFF_INITPAGE_EXT
/ C' f- S& P# V定义
% d5 Q( `9 H q4 T! q& O9 W; ~. x' V0 J; u" v" m, }
, z9 u9 h F& | i d
2 N% k& T! v2 ?3 J6 U! i9 M
( `( o" m/ M% p; B( b: S现在终于删除我的狗屁加速...9 e0 z) h( V+ t; Y
" O/ _: G, ^+ O+ j9 j4 t* |' L/ R! l; A6 x- |% X8 O
* y; c N! A4 @8 @% e C |
|