|
|
食品车:
& [5 h( Z R8 Q- w! E. _" Z尾翼:
' z) p% `- g4 d; y
7 A, `* ?: k' v代码:
4 G" G }' |- R) @# E0 Q$ SCWndAutoFood::CWndAutoFood()
! t. Y1 y; G$ e D# I1 y: S, Q{) N' R5 t) O' W7 L( v$ Y, n% N, O
m_pItemElem = NULL;* _; m+ ], O7 T4 B, c# K% \" p
m_pTexture = NULL;% r4 |$ c: T, {5 a" {
bStart = FALSE;
p, L$ H- _! E7 _9 }! i1 i}+ r |; h2 ^; {6 i" H
- r$ v' J: x$ ]7 v6 t0 G. |CWndAutoFood::~CWndAutoFood()0 F6 B9 G f7 a# r, U. H7 R! {
{
3 B; @# Z" p, {* ~ AfxMessageBox( "AutoFood ist gestorben " );
; X( r- R* W" L" G+ n) ?4 e$ F# k* G/ p}
' s. p% A: X& kBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )5 u0 V9 f7 S" N; t" I* M
{% D0 z* h6 d& h, H
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
8 i$ p% r a: `( M. v" b4 S! t$ w}6 [- X) s# s1 i& `1 \$ M- B7 J: y
/ ]5 h4 _+ T9 l X; ^! eBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
' h+ x( L! Z( M{' K9 K" }2 C" r5 Y, q/ D) t
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 c( U$ \6 i: y1 G) j" t# x
CRect rect = pWndCtrl->rect;9 y5 r( Y3 u5 ^
if( rect && rect.PtInRect( point ) )( [5 `; N2 U# n- w1 `; f, D
{
) y0 i1 k1 _% |0 [) q9 J) ] CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
9 S! J: O+ ~5 T4 R* {% C if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ) |9 z1 R Q! O2 _% B6 V9 [
{
+ E1 j5 T+ l# `' a2 b3 w. W7 M5 E if( m_pItemElem )+ o; C+ j" H2 O
{0 u$ A# ]% T4 T
m_pItemElem = NULL;% }0 ?$ J1 I& v# o% J
}
$ x6 L2 e6 Q9 H3 W4 J: p* Y m_pItemElem = pItemElem;
9 {8 I+ B* g/ ^; i( X$ } m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );' A! @. H3 Y" ~
}else{
: f4 P5 W/ }" n8 n, W( ^ SetForbid( TRUE );5 C* @; c" [; }$ s/ m0 M
}
. a& L. F6 r% S2 [+ A5 {) W }else{
; Q* [, [4 f2 @( } SetForbid( TRUE );) m/ l- e( b6 \; _1 \) ^
}
5 D3 e: P( [1 v* F# N& u return TRUE;
" i$ B* I1 D" R) T/ U5 C. a& E' N}
q) b8 j6 f1 F8 d
& b/ r, e {; N3 w( Y& Q& K aBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )8 ^8 i8 ?6 x. H0 `8 c8 X
{% n8 i& T7 ^7 m K# M6 w/ W
switch( nID )- w1 o" I4 Z" V' U! \0 E" u( D
{
6 |- n9 _: S' }8 w+ ]4 @ case WIDC_BUTTON3:3 G9 f f3 l) ]3 Z4 G N+ U" L
{
4 r( E, m9 F' |' c7 u ]* c bStart = TRUE;6 {: \1 f! L- F* |2 Y: }
break;2 P* S& s. H) {; S* M4 ]; E
}
+ q8 u1 v" q! x3 T$ D* z M8 X case WIDC_BUTTON4:
# q+ k, f: Y$ `) Z {
* d2 g Y1 S8 v$ J/ e bStart = FALSE;
3 m7 V1 |/ v# h5 T: z P. J break;3 s/ t ]/ Q# H+ _7 H3 m
}
, q" r$ Y0 M. Z }- a1 h5 N5 b1 f6 }7 A/ {
return CWndNeuz::OnChildNotify( message, nID, pLResult );
( K$ _ Y2 u: q) o} * C# T2 ~5 V0 m( [1 \ T1 I# k: D
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
3 z! Y5 ]* F. i; n) P6 H9 ~3 @: H{4 G& ~# _' ?. b* s- E& t
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );6 Z& r6 w( Q4 i9 y7 E: c
if( bStart || !m_pItemElem )' y+ \6 D; m4 e% X+ ^! n7 d
{
4 P8 D; a* F# @6 P( \8 `8 d9 c pBtn->EnableWindow( FALSE );9 r! j# p3 E; ]# R; \
}else4 Q* \' i* n w# o' O/ F
pBtn->EnableWindow( TRUE );
6 {; M1 x( n I5 g# a& d S4 N" U- W if( m_pTexture )
7 V* g% @! W3 t5 m" i {7 E8 e9 t6 y0 k
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; x& }. v' z+ f+ j1 t if( wndCtrl && wndCtrl->rect ). M# q, l8 s9 a
{/ ~8 ?- d# R" r( Y, ~
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
% t* v+ M$ g7 @- G: c- \" L } e7 Q' G3 X' n3 J4 B
}' v; _7 t9 L/ R x g3 h& ]
}
' e6 F/ P+ P8 p* P' H" k# l7 J- @, ]/ B- m' M; a+ B8 S
BOOL CWndAutoFood: rocess()
& J9 i8 `# ^8 T2 `{
# ~8 e' a# ?+ J7 y/ e6 A' c if( bStart )
# S8 A' A6 u' ?. D4 y( v& x {3 b7 U( a1 U: ]
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )+ E( x! w/ y+ Z2 _" i- Z* k! a
{+ v9 E0 x0 s- T% V7 R
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
8 O+ c3 f+ v4 S, k/ n g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& }0 _6 L1 P+ i9 a
}else{
9 v8 L. M- x! q9 e6 e bStart = FALSE;7 a+ _5 `0 e9 p) ~
m_pItemElem = NULL;
& |. X3 E4 B# ]% C! k }
! P( |) O4 Q7 r! k8 n }2 A' g& X$ _- L8 O% T2 q: {9 _
return TRUE;- o9 {6 H8 G3 l: e
}
/ ]5 C/ b7 ~' v8 c' w$ Y8 O0 p
& b; l% J/ j$ ~登录视频废话:
: ]& ~- u3 ?. a6 f* o' {; A尾翼:
& _9 M& \* n' s/ {
7 C* r& U. |- E代码:' Y- M5 o$ U4 \9 f
; g. C% d) I' g6 S$ F( wvoid CWorld::SetLight( BOOL bLight )
" v3 y- [' n% F+ Udurch% K3 B! t8 P" g0 }# g1 Q: V
Code:
* |5 W: i/ z h5 o; _" Q" h8 yvoid CWorld::SetLight( BOOL bLight )
3 S* I( s3 f$ i1 z9 A{9 b" w% y% K5 m+ \, a
//ACE("SetLight %d \n", bLight);: [8 U# Y4 X* n1 H1 R% ~5 k8 L
2 I! Z3 K2 e4 x9 D#ifndef __WORLDSERVER 2 ?2 W7 Q6 J6 }# @ a
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
/ [2 h( {) {* D! [$ e" [6 \- F7 _ CLight* pLight = NULL;. V1 ]# U8 D0 K( H7 U6 u- i! k5 e
4 x. O8 r1 Z d/ G7 o D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
5 _" ^! v8 F: v1 t/ I5 u% J S" x! c h- ]7 i1 f; p
pLight = GetLight( "direction" );
9 l3 @3 @& N) N( M$ D' H& L' p/ v3 N. a7 [$ C# h; a4 H
#if __VER >= 15 // __BS_CHANGING_ENVIR% H: K8 u, E+ x: g4 s
if( g_pPlayer ){
+ ]2 J3 W/ ] g1 B4 x" w ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
5 T- w; H* J* \4 \0 b9 ]3 M if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!# \! D/ U$ Y: X' A/ C; a
{/ [1 n) r* u% L0 T: K8 O
if( pLight )
$ c( T3 M8 ^0 d& S2 c: N0 W; s0 Z {
0 K2 Q+ c7 ^2 `% H" L2 |: K6 U pLight->Ambient.r = pInfo->_fAmbient[ 0 ];9 h+ ^" s# x& I7 Z1 F% M
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
8 I' @! c1 F7 }4 z4 C pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
6 f( o9 N& [2 m) C5 @+ Y$ T) G
# C3 U" Y4 k' N& ^ pLight->Specular.r = 2.0f;; ~) b" D) w% f5 R
pLight->Specular.g = 2.0f;! o& _+ g6 b/ ]
pLight->Specular.b = 2.0f;, V( Y/ B! U8 i" l
" j9 t- u; ~" x; O% Z
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
0 T$ Z- i7 s9 ~1 w pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];3 w/ l6 o' J0 K5 R* r
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
1 O3 N* J( ~- y * w8 o( p1 {' ^* u1 V" o
HookUpdateLight( pLight ); 1 d/ h9 O) H3 G1 e1 v; M
1 O! P: c& }( R$ q1 l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 p# G2 J N( ~5 X+ O! q
- |2 P5 j- c4 r* x
pLight->Diffuse.r *= 1.2f;
: {( Z5 }& `: a( Z pLight->Diffuse.g *= 1.2f;
$ _% c6 { }: v3 m pLight->Diffuse.b *= 1.2f;
! f; s s* s4 ^1 k
8 w6 n( B7 c$ E6 V- J. O* |. r pLight->Ambient.r *= 0.8f;
: {# s, i. s4 Q3 R2 [) r. V pLight->Ambient.g *= 0.8f;
1 ?" D6 t; v: Q# Z3 r pLight->Ambient.b *= 0.8f;
7 B9 K4 W, C' \( H' c4 m9 c/ y7 ~ . [" d' I! F6 H
memcpy( &m_light, pLight, sizeof( m_light ) );
0 |4 j" R/ o+ X) W4 Q+ x1 u
0 T9 u/ a' }' R A/ i1 y D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);9 r$ m- `. F* x' W3 q# q6 J; u
D3DXVec3Normalize(&(vecSun),&(vecSun));' |0 V: \4 ?9 E0 u$ ?: h( u
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
+ ^# P6 {. k, G4 U; j pLight->Appear( m_pd3dDevice, TRUE );
) b& O* x5 F, T* L) D- ]( ~- ^0 E 6 k, f0 b! `5 K9 X
DWORD dwR, dwG, dwB;. N4 ]% f! n4 S& B
dwR = (DWORD)( pLight->Ambient.r * 255 );
# Z- Y: b+ r. b9 m9 F! c2 [5 e7 M dwG = (DWORD)( pLight->Ambient.g * 255 );# @" Y, ], r% r( P* a$ Z
dwB = (DWORD)( pLight->Ambient.b * 255 );( \8 X; l4 s9 k' Q1 Q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* a& g6 R3 Z( U* B6 { } a4 h C$ C+ ?) W
}
% r8 @8 A+ w/ B. Q }. z; ?* N$ J* I* m
else7 Q! P- f3 q0 R9 Y1 b
#endif
, w* m3 r# B& N; r4 U
1 l4 C' ~6 Z. K9 X( i, ~7 L! y: Z+ ^ if( m_bIsIndoor )
8 K* A7 z4 J- G4 m( a' j% S {+ V+ N# I, L5 Q1 ]+ Y# M0 }: z
if( pLight )
; K' U2 q3 I" ^. M! H) F { & n, j" P. T$ v
// à??μ oˉè* 5 G8 t) B5 A+ o2 l
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;* u, h1 d' Z3 z. ]. }
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
: P) T5 W" Y( r- [2 t pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;' E: ]7 o. X1 D, x7 F1 f% f
" T5 C) D: D3 v6 h6 E h4 @( R) ]
// oˉè* ??à?
% m) u. v% U8 ]' n9 d pLight->Specular.r = 1.0f;
+ x, A# ^. S( E5 E+ X6 j! W3 }) e pLight->Specular.g = 1.0f;
/ |6 B, p1 E0 N1 f- G. z pLight->Specular.b = 1.0f;" l: x" }# a6 u: N& e- P0 _
// àü?? oˉè* 5 o) |( P, ^3 k- i3 T" q: X$ U
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
7 T2 f4 m9 L7 x0 f9 e+ m' p pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;1 ]( i1 v* o- X" O) l) I3 X
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
; ^% i4 ~4 o7 S5 Q( T5 r0 P# X6 ?. v) o' \1 N$ |
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, Y9 V/ G$ H: ]1 \7 f {' z! b( M% X- S H$ E" z
pLight->Diffuse.r *= 0.6f;1 k* `# i$ {; r" u& o+ b. j
pLight->Diffuse.g *= 0.6f;
4 S, N. e. T8 {1 Q2 U7 P pLight->Diffuse.b *= 0.6f;- j! N" B1 O. K1 [4 n
pLight->Ambient.r *= 0.7f;
% ~; \2 f2 \3 ^5 g4 m( Q pLight->Ambient.g *= 0.7f;
8 N& B8 b+ r& O+ Z8 H" A1 ` pLight->Ambient.b *= 0.7f;
: `5 H+ `/ A$ ]- H8 g( t' G- `! ` }# X4 f4 j+ w9 O5 j! `! B7 o. n
0 d7 \ g& N9 a* k j
#if __VER >= 15 // __BS_CHANGING_ENVIR
6 \+ y m" J& L( Q if( g_pPlayer )
: U# u/ j& b) |# J! P- W, j HookUpdateLight( pLight );
' B+ {! l! v7 Q' e, E! n" A- A% M#endif7 ^) O: b9 d. ~# [
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ o- n+ v7 F8 R6 t+ B
8 n1 y6 c# U6 _ F- n pLight->Diffuse.r += 0.1f;
8 m- A; B4 [' `! ] pLight->Diffuse.g += 0.1f;. c" K; V" j& h% B: {+ k0 L6 f
pLight->Diffuse.b += 0.1f;4 ~5 \! _1 A) r
// oˉè* ??à?
- E, [0 B& ^- }4 J- N8 B pLight->Specular.r = 2.0f;
+ b9 c0 l9 _, |2 Y( ]2 w' U pLight->Specular.g = 2.0f;
h. i# |& z8 f$ o/ W pLight->Specular.b = 2.0f;+ n. g; ~; i& d. B0 ?! e: ?
// á?oˉ ) u; {8 E% |" Z7 z9 x# N# \
pLight->Ambient.r *= 0.9f;# t& z# N9 f6 {) a9 W+ X
pLight->Ambient.g *= 0.9f;4 u/ X- l6 l4 ~ N
pLight->Ambient.b *= 0.9f;' ~% W# W* m/ w
@, l# ^& K1 a, ? ~' H/ J
memcpy( &m_light, pLight, sizeof( m_light ) );
/ ]7 E Z% `- x8 H , i! i0 J; w& d( b$ W/ r
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );/ |+ o. p# ?% _+ j
pLight->Appear( m_pd3dDevice, TRUE );. s; d1 _0 e$ u# E) Q& @# e$ n
, w6 s3 K! V% t( N+ |9 c! J4 Q
DWORD dwR, dwG, dwB;* P+ u; t7 ?$ [. X5 u) t8 N
dwR = (DWORD)( pLight->Ambient.r * 255 );
9 r+ d( x6 R0 v" p, h j9 e dwG = (DWORD)( pLight->Ambient.g * 255 );- @% R' ?) h9 j' ]
dwB = (DWORD)( pLight->Ambient.b * 255 );2 U r; l( \: j3 I, ]- j
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, T% D p4 G$ w) J n* F }2 }& M0 H& k+ [( _
}9 m( [% Y* l: p+ h4 C3 ?
else% T; A( W; t4 | a% w$ \
{
) `9 p" \+ j- D& |5 ~0 d6 i4 L& v: ^ if( pLight )
4 M, ~' ?. k$ q7 J {% m& y* y% R3 Q' U% j* t
( d4 Y+ V3 \$ f' m# Q. {7 E
int nHour = 8, nMin = 0;/ x& z% Q* _6 ?$ U' S4 H
#ifdef __CLIENT. Z2 {+ c/ h/ l" K
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ) T. e0 b+ k- D
nHour = g_GameTimer.m_nHour;8 h2 J$ D, P0 o/ H/ [" i5 g- U
nMin = g_GameTimer.m_nMin ;4 w+ J. S7 S; |# ]4 h
#else
/ S/ {5 {7 p, c S3 W // o??o??′? ??°£à? m_nLightHour???* °?á???′ù. {# {8 e1 z+ w: N6 T; G
if( m_nLightType == 1 )" j# d) Y Z! d' P7 J) ~+ j/ r% K
nHour = m_nLightHour;
- h/ d9 e, a$ ]2 W. p% p3 T V+ B #endif
: [0 O3 I8 S( e5 y6 R2 _ nHour--;
6 n9 }: X5 _% {% e6 g: T0 L7 G/ C. e if( nHour < 0 ) nHour = 0;* A3 X2 h: j+ m( y: M
if( nHour > 23 ) nHour = 23;
5 d" K5 m" f; j1 ~) |% L
0 ?/ O* V) \/ L+ q5 T //if( m_bFixedHour )
* d8 k8 w- W" R! {( G6 l, D // nHour = m_nFixedHour, nMin = 0;
. y5 K+ `7 a: u8 F% q LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];) H! |( t9 r* A
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
9 M( C* n3 `: ?! H1 k) h3 `3 s) e8 w1 j
//m_lightColor = lightColorPrv;" L q. O! H5 B: W
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! F9 B" l+ n0 @' c5 Q. L lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
3 c1 j8 m# k7 f lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
# O/ W* f8 ?$ B( `, f4 Z4 }: x lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
1 C& v, V9 i) D+ V, o, b A" h lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
3 } s" @, c- D, h lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60; c( C# }. `" R0 k# ?, l
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol); M3 d! e& c4 X/ ?, r
, |# i- _0 t+ x // à??μ oˉè* ' x s! x1 A/ [; r
pLight->Diffuse.r = lightColorPrv.r1;! P G; f) B, v" W- J$ j3 ~4 ~
pLight->Diffuse.g = lightColorPrv.g1;
* J0 f8 h. M9 i$ k9 f& p pLight->Diffuse.b = lightColorPrv.b1;! ~9 [! x7 a4 |4 T- j. B
// oˉè* ??à? # {: o8 E% o9 G+ r7 L
pLight->Specular.r = 1.0f;3 h! @# `2 \, X. N. _. u0 }
pLight->Specular.g = 1.0f;$ B* t8 [0 R5 P) i' V0 M3 C0 m
pLight->Specular.b = 1.0f;; p$ x5 s& }; g) O6 O* l
// àü?? oˉè*
4 S7 C' f+ F/ Q$ E# R( R# g pLight->Ambient.r = lightColorPrv.r2;
$ v! ^2 N7 N8 `. u+ `& f pLight->Ambient.g = lightColorPrv.g2;7 J3 H ?( y' J+ u4 m; G/ h9 k
pLight->Ambient.b = lightColorPrv.b2;. a2 e0 J9 r. ?5 {- m
8 v8 z# k3 O" f if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% a/ @: K5 {: i
{
* ?! P9 A O+ n% L# P pLight->Diffuse.r *= 0.6f;
, Z; ]4 b* h$ _) X$ H% n/ n pLight->Diffuse.g *= 0.6f;
& s; C. B: n' [2 F0 i3 F9 J5 | pLight->Diffuse.b *= 0.6f;! h& s2 B; ~/ \ T. F: W7 a5 o
pLight->Ambient.r *= 0.7f;
- G( d( c0 O- _( l' \6 s7 B3 I; ~ pLight->Ambient.g *= 0.7f;
; E, ^$ {; b. V, [ P/ P$ e) W pLight->Ambient.b *= 0.7f;
$ W/ E' w7 w3 k3 q' a7 D% S }3 F4 G2 x9 |2 S$ {. V
4 [6 g1 P0 K1 h. }, L4 |#if __VER >= 15 // __BS_CHANGING_ENVIR/ C& U1 z4 R4 J# B
if( g_pPlayer )8 b- o/ F4 t( x! |: { [
HookUpdateLight( pLight ); 8 ^% @( ^7 f; D% N4 B9 w
#endif
" ?9 A7 w8 n# D/ U( _ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* f$ _6 v. w1 ^, X% ]6 v3 s# M+ M4 ^
, `1 C8 p- q8 V6 p#ifdef __YENV
0 c. v. u, X |" \6 \ pLight->Diffuse.r *= 1.1f;
+ A! t8 p5 ^, c! _& u9 M pLight->Diffuse.g *= 1.1f;: |9 z: b5 g. T/ [( C$ E8 ~9 q8 ~0 V
pLight->Diffuse.b *= 1.1f;
! N# w1 V* U3 `5 r5 @ o3 i // oˉè* ??à? 6 I& u6 r6 ~/ K
pLight->Specular.r = 2.0f;
7 v0 s7 Q5 Q7 d7 l8 ^ pLight->Specular.g = 2.0f;
1 @4 B# v3 U1 |/ k' N pLight->Specular.b = 2.0f;, H" a+ p. J+ g7 ]
// á?oˉ
1 x s8 b5 K2 h pLight->Ambient.r *= 1.0f;
3 ], ?0 J7 T( t8 K& G pLight->Ambient.g *= 1.0f;# n. W/ U. e7 d' r, G# d {
pLight->Ambient.b *= 1.0f;
: Z! `2 X2 ]5 b" q, _#else //__YENV* D- B( I2 h& R: D% Z
pLight->Diffuse.r *= 1.1f;4 ~' Y. W) D) B* q& {* X' K- c
pLight->Diffuse.g *= 1.1f;
9 G' v9 O, o( C2 H pLight->Diffuse.b *= 1.1f;$ q, o. z( d: Q- g5 r" \
// oˉè* ??à?
) `" b6 ]; j5 T4 Z. _) t$ G7 D& X pLight->Specular.r = 2.0f;
* m6 r" p2 i, L' }. ]" [8 E pLight->Specular.g = 2.0f;
1 E, G' g& Z0 A# l6 T pLight->Specular.b = 2.0f;3 d4 i6 F G9 w. f0 ^
// á?oˉ 7 _4 M9 \9 F% M p. y+ C
pLight->Ambient.r *= 0.9f;
: F& e. F& }& i" d8 t8 _ pLight->Ambient.g *= 0.9f;
% v0 [4 B8 A) t0 n+ k h; ^ pLight->Ambient.b *= 0.9f;
' }# _/ `# M2 X/ K5 b: j" X+ O3 X5 w% i#endif //__YENV * G6 Z- A' M- d, s1 T* C9 b
9 s+ s+ K- Y% b* [2 C memcpy( &m_light, pLight, sizeof( m_light ) );9 t8 m! \9 J o- F) L
9 _9 b5 h/ b$ S* R" W+ _ D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
# G' g! u$ c1 x W- k5 J9 J3 C6 @ D3DXMATRIX matTemp;
+ p5 `( U. e2 d. P$ h7 I: _ static const float CONS_VAL = 3.1415926f / 180.f;2 R. B0 @* q0 n
7 l K* `' P. U D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
2 v2 L+ |( Q' x6 j D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
4 l5 W# z( J8 L; {+ @ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
" U6 k. }1 ~; ?( u# F8 @+ v! C7 D pLight->Appear( m_pd3dDevice, TRUE );. B" l' w; U) ~
; \1 e; i! t3 m3 |3 h& c8 S( I // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
]- i/ A: r8 ~8 k0 { // D3DXVec3Normalize(&(vecSun),&(vecSun));
2 l" j3 r3 p2 h* p/ A- Q) D // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); # }8 E/ Q. @1 W! C
* _2 s @9 e0 h% l6 ]" F
DWORD dwR, dwG, dwB;
4 C* i. ^- W8 `. _% g5 {+ H% C dwR = (DWORD)( pLight->Ambient.r * 255 );9 @, G2 w9 w( j5 ?7 w0 Z) Z) z1 D. ^
dwG = (DWORD)( pLight->Ambient.g * 255 );9 v; Z O" {* Y- w1 T+ Z8 j
dwB = (DWORD)( pLight->Ambient.b * 255 );
! n+ i! s d! q. E& N% E dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 o+ f# {. w. I: J- S+ F }* t2 o* }( g; t" U
}' }& o: O0 V! N9 m
V/ W, A J: @' ^- y! ~9 x. p0 r
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
5 f) R7 M1 ]/ y 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 }) }% ?" T; c& d2 m) L, x. k ::SetLight( bLight );5 {8 J3 ]7 x% S' _- N o# P
$ Z r% E0 e! T
// ±ao? ?D?í???ó á¤à?
K* l2 d4 U' r+ x3 X9 T: U: D0 Q2 ^ m_pd3dDevice->SetMaterial( &m_baseMaterial );, g/ t& _% Z6 r0 W1 w. F
2 O! |5 R! o) q3 Z" v
#endif // not WORLDSERVER- `1 ?# \ _) g) }% ~
}
& e; w1 w; [1 G并更换
7 x2 x3 m; L& y5 \Code:
9 c+ A6 K0 U3 k7 Z6 L5 N0 p: k; p5 h__FLYFF_INITPAGE_EXT
9 T9 d k- d5 ]( D2 W% ~9 u定义
! N! x, z" e |. a
4 l; a( [" a x* m7 z1 J( q9 o y2 P) \- N Z5 z
0 I; b1 k6 N( {8 p( w8 w
8 N+ Y9 m0 _2 r0 E) l s' [" S5 V现在终于删除我的狗屁加速...7 ]1 _- Z: B+ y$ B2 X, W* @/ A9 G
9 V# [/ _: f& _# s/ W7 T% Z. O4 Q- G7 i! |! u" t _
! V; t% [$ p$ I% ?; L; B+ H |
|