|
|
食品车:6 L# p3 L& N6 `" a
尾翼:
; X/ u+ T$ x7 w* J7 K* l" c
C7 b' l% m, p6 Q代码:
7 z5 v4 x U# i! M7 {; gCWndAutoFood::CWndAutoFood()
4 Q' ?5 y. @2 o7 I$ k" ~{
0 x: ?: j6 d9 |1 q! }- b: _/ S$ c8 E m_pItemElem = NULL;
+ e+ L6 h+ i2 V/ Z m_pTexture = NULL;: Q( N, O$ N3 V+ B5 B
bStart = FALSE;0 _( O, D6 b( a
}% m2 W, B* A% j+ g% e2 ^
; n& R& c: D$ }
CWndAutoFood::~CWndAutoFood()2 X2 _: ]8 z% O6 |5 Z+ u8 J. `
{
4 @+ ]7 \0 M+ w" U+ \, a AfxMessageBox( "AutoFood ist gestorben " );! ^$ V8 x( p; S- m
}" z Z1 F% @# N& O
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
/ c* }, j6 H' p& A' B{
! a1 L; ?: @1 g2 _. y return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
4 E2 U0 w0 A4 n" `+ i5 Z" V3 d}+ J5 v3 u" }$ W& j5 P) U$ ?
, s+ K s$ F1 z4 u4 `
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )0 Q `7 c+ O" |
{
3 P. o3 A0 D! P LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 H# N' Y" R# u# k CRect rect = pWndCtrl->rect;" E1 z. s; q% N$ y: u
if( rect && rect.PtInRect( point ) ): @! d [2 A: y' L+ v+ |, _/ I
{$ L2 O0 W- \- _* W9 K
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
& K. b( L6 |+ _ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
- ~* r& m! M* O5 M% N {
t0 E. x M, T: g2 Q9 X if( m_pItemElem ). W: y2 x: L' |4 ?
{
; Q' Y6 f. e0 ]1 Z7 Y- S3 w3 s m_pItemElem = NULL;8 Z2 o' r& w- G+ k: W1 F
}
' k2 C: X" B0 q. n; K1 T w0 |/ E. l m_pItemElem = pItemElem;, k3 w8 [4 _( R
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 R* j7 H" n' n4 l" n0 q, j }else{
) e' g. x: ^ ~( P" I SetForbid( TRUE );
4 t' s" h" n0 w' d" d. ^8 J5 T2 f2 A }9 W7 P8 c8 [* z6 ?7 Z2 n
}else{& p( e, P" ?7 @4 ^4 m, x4 U
SetForbid( TRUE );. j9 v+ |) f. g5 a/ g
}
; x( v& P9 R$ ^9 I1 O return TRUE;
3 l- T/ p& f [; Q, n; S}
+ c) T2 A; \2 B( S
( E- ^; M( [) O6 S9 u H; HBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
5 {4 n" m- v1 I{
- h! x. \& @. E/ ^; z2 `# v switch( nID )
& n6 F1 T+ D# `( H' v {
' Z7 e; |* F% w case WIDC_BUTTON3:
: g' F; s+ Q& w3 S$ z {! H8 f$ Q( @" ]( l$ B- q9 Q0 P
bStart = TRUE;
; W8 D3 S( ?* v Z4 Z break;+ N0 g$ A, q) q' [$ L) G3 D; }4 ~
}
$ k& A4 }. F9 o7 u8 E- v5 Q2 w case WIDC_BUTTON4:/ k9 w w% b+ L1 t4 `" X
{
- M7 |+ k$ s; J! q3 `) X; J" v bStart = FALSE;
! d% O+ I4 |8 \, r! S6 ? break;
# @3 z4 `; v* P0 g) { }$ R" k3 y. R. I
}% t% U( G% v8 U R/ _! D
return CWndNeuz::OnChildNotify( message, nID, pLResult );- i$ a) N# `9 S! z. u$ ]) B
}
N& S9 d& N" d$ B& e' ~5 F8 ovoid CWndAutoFood::OnDraw( C2DRender* p2DRender )6 K0 F" P4 ?! c
{0 v9 d% Z1 ~+ H2 K8 h& ~3 p; Q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );- R4 C# B' P. g- I
if( bStart || !m_pItemElem )* d; f0 A5 J, o% `& q3 q# C
{
( Y( b- o' j# `; {( ` pBtn->EnableWindow( FALSE );
5 w7 O5 f2 ~) b$ X: ^: c- W }else
+ U1 U; ]0 U' Q+ v) \+ s pBtn->EnableWindow( TRUE );& `0 w; E& g& N: c2 l, `; h: a
if( m_pTexture )
( c' K) h2 s4 k. m {2 h2 L. r7 H! o
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: `) x2 u# P% p# r if( wndCtrl && wndCtrl->rect )
* J0 K! @' c: I; h# l/ y/ s {# c& k$ t# X, B7 i+ N+ W
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
# ^+ m" ]# J! e" q" W1 r# q" N }
6 V7 Z K& E" a& A }' Z1 Q3 f" k: {9 p- ]" m" M
}/ e, j# M/ a+ f' h. y" W! E6 i
l, |' ^; \7 h" [- U3 T# p4 P# S9 \% y
BOOL CWndAutoFood: rocess()! f& M, T( V" \3 j0 r' W
{5 z3 M, _8 u" a; I! d" N! Q
if( bStart )
2 @/ A0 w D2 F {
* l7 d, j0 A$ _ D9 u3 i3 W3 F3 W4 ]5 _ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )7 z) @, y o. |* X/ Q
{
# S9 C0 J( y9 D if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )0 k; f% ] J: C! d8 I Q* j
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );, c7 o7 n& T2 u9 h" G. `
}else{
% I! a: G! Z" t! F$ y) R# O bStart = FALSE;, \& D- h- q# ^3 k4 X3 J
m_pItemElem = NULL;6 O5 L" F& \, E" M+ c
}. P9 y2 Z8 }+ C3 s: ~; s
}
# { ?9 a# b. g' x: o9 c) F* ?# B return TRUE;
9 f! L" R+ d9 w n2 f5 Z}
$ e) s$ D- E' i& N6 V6 G# {: F4 V
登录视频废话:5 q- N- n8 @- K- t2 \
尾翼:5 M; ~0 u: N- N: Z) W# U; n
+ [3 x. _9 G- h& ]& o7 y
代码:
! _! l/ y5 I; _( G1 O% X0 m: X6 t! E/ S- [2 e4 E+ k5 ]7 ~
void CWorld::SetLight( BOOL bLight )6 T7 k& u# ?- F1 p1 o! }0 O
durch3 d* ^ ?) ^; x* U: K# k( X
Code:
# r2 C. U: B' g7 o. n! [void CWorld::SetLight( BOOL bLight )
* ]3 M. K$ D, z7 d1 V! @9 u" r{2 Y6 y' a6 g4 \
//ACE("SetLight %d \n", bLight);
& ~+ [7 K$ f* a9 l A; }$ I6 A % e7 y4 k( y; D; U! N
#ifndef __WORLDSERVER
8 h' X* ^; b n2 W3 l3 q* D7 ~ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
& L8 ? f9 q5 ]( u3 x CLight* pLight = NULL;
1 u9 r" |) u: _* A+ B5 N# y
* Y- U; [" \& h& N D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );) |8 u/ `( P! ?% n4 K- l
0 K& q, U0 T. I' B% i/ r* u, P% t \ pLight = GetLight( "direction" );) n) x, E+ U- C% D" ~' f
+ V( J7 d3 q2 z$ F; i [8 C
#if __VER >= 15 // __BS_CHANGING_ENVIR
% D8 b: T0 R9 \6 C' k if( g_pPlayer ){
+ W7 m$ j4 ?8 q; i ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );/ m6 a! Z7 K2 J" p( b. N6 k
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!: M) k$ {( p6 o. k% z+ q
{
! k9 W/ D+ O4 W if( pLight )
; e( |- N+ ~; B {
' g8 C! o" f* \$ u; b pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
) A9 C) {" Z h' D( v+ _* n+ r pLight->Ambient.g = pInfo->_fAmbient[ 1 ];/ d" Y5 c! p$ Z! J! m" L* B. W
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];( V% [4 d- v+ g, g( k
5 m3 t8 `1 v1 B0 a( g- m
pLight->Specular.r = 2.0f;
" E, S) ?6 t) U- \" O: d pLight->Specular.g = 2.0f;
5 X6 n: Q2 \- s% F6 a- O; b$ m6 m# u pLight->Specular.b = 2.0f;
" \% s2 q$ A5 Z$ X
0 W) A! C* I: e& w4 ? pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];8 }4 R+ e+ u# w; N9 w6 K, t
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];, p' e& p7 j9 _- w/ d; G5 g
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
! k- C& D% _) \3 @
5 G/ u1 @& a0 `8 ?( D HookUpdateLight( pLight ); , O& H0 E6 |- Z% E; V6 ^3 G
# _/ m# S6 K f" v8 o memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, k& N* W% B9 |3 q. u- x1 s9 M 8 C* ^& ^& {2 s
pLight->Diffuse.r *= 1.2f;7 {2 }9 d5 S3 Q5 {6 n% l) o1 J+ _1 ^
pLight->Diffuse.g *= 1.2f;
$ e3 r9 U r4 Y x$ ~ pLight->Diffuse.b *= 1.2f;8 V7 |3 I/ o, S n& h. b
& O, w# f. w" }! {* j pLight->Ambient.r *= 0.8f;
5 |- J G" U8 h3 R' H9 p/ r ] pLight->Ambient.g *= 0.8f;; d7 h, l$ O( ] D
pLight->Ambient.b *= 0.8f;
I& _6 _$ a- P. p
/ p6 B! n' Z0 C memcpy( &m_light, pLight, sizeof( m_light ) );
) S% N6 p7 V+ @6 A: {
8 Y/ S9 G- n3 w: N$ m+ v D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
9 {# @) I6 }7 u( F% o, U- k D3DXVec3Normalize(&(vecSun),&(vecSun));* G/ S, n% ?; C" x6 x
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 5 { E# w# @! S- X+ Q9 C, O
pLight->Appear( m_pd3dDevice, TRUE );
7 |* G) z- k$ V4 F / l/ r0 N: k- z" c) l
DWORD dwR, dwG, dwB;0 M1 o4 h. X- Q
dwR = (DWORD)( pLight->Ambient.r * 255 );( m/ D( [$ |* [2 `
dwG = (DWORD)( pLight->Ambient.g * 255 );
& a: F: C H: e* D dwB = (DWORD)( pLight->Ambient.b * 255 );
8 E! O% h+ F0 I% z3 o- k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& ^/ A" j% N& y% f
}* p ~( K9 ^5 m3 L6 S2 _7 s7 I
}
4 y7 U( S/ Y. D: x# Y% {. d9 Q1 } }- Q: Z% M }( e
else
0 j& i2 D C, s$ b- z5 y: `#endif
/ h3 ?" g m8 @! ^% b$ s6 i) P/ t: c4 ?
if( m_bIsIndoor )
' H3 ?. {6 \9 B& p8 Z* q {
0 x' j5 C( m1 I) ]$ W+ E# f if( pLight )
0 c3 R6 y& I% M$ w b5 H {
$ s& I. Q" p3 B; ]+ b; D // à??μ oˉè*
% @6 G, j. g+ g8 w. b2 e X1 N pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
/ b; a: a I# x' J* s1 Q0 m- r pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;: o. n0 E! Y& M1 d( d. ?5 w0 A
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;8 c' {* Y$ p2 K o# G
* |- W% ^0 I% \' z
// oˉè* ??à?
' S, R# D$ j3 [7 k6 m+ ] pLight->Specular.r = 1.0f;
7 F. ?7 D6 J, ]. h" @ pLight->Specular.g = 1.0f;1 ^# U: n7 J7 ]/ j/ e
pLight->Specular.b = 1.0f;+ t+ S* [& `6 B+ s6 S7 s& Y' y
// àü?? oˉè*
5 u, ~1 j9 P f pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
7 E5 I4 O7 F( u pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;' w$ _6 \" e: y3 }: y j
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;* y% Q( c# Z4 T4 L9 t
) z/ x' W* [3 x; }2 e! i; g
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.% D J9 S- s/ S
{. Q- s$ M, F' p# p, j8 ~" f0 \/ M
pLight->Diffuse.r *= 0.6f;# F4 j$ v+ M J. k. w2 r' |/ j
pLight->Diffuse.g *= 0.6f;* A0 c2 o2 h9 S8 L5 j! r
pLight->Diffuse.b *= 0.6f;: a7 u$ h- |' P# {
pLight->Ambient.r *= 0.7f;
( w0 s+ [. q: ?9 i. ]8 q: A, Y pLight->Ambient.g *= 0.7f;+ F/ g1 Q* u# k. m
pLight->Ambient.b *= 0.7f;% ~ q: m& D- `# Y2 c0 h2 z# L
}
+ P8 r7 h: e& h H1 D X- h
8 G5 i3 s. x5 z) s% C#if __VER >= 15 // __BS_CHANGING_ENVIR3 E' M7 j6 s0 v) r; B2 L1 f
if( g_pPlayer ); O7 X. c. ?! U l6 `( G
HookUpdateLight( pLight );
2 A! t* m H# \, Q; s3 |) [/ Q2 }#endif
" i4 M( B" Y+ Q: ~ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' W$ X8 f$ [$ x- {8 J/ o8 _, B6 G7 u$ _3 e9 t
pLight->Diffuse.r += 0.1f;+ n" L0 p+ [9 C; O( H
pLight->Diffuse.g += 0.1f;
( Z& R4 d5 ^ W q, a* q, U pLight->Diffuse.b += 0.1f;) I/ K/ Z) {0 q: U. S4 e2 P
// oˉè* ??à? $ X9 {7 R' U4 w. o
pLight->Specular.r = 2.0f;
- V/ X6 B; n: r- F+ Z Y pLight->Specular.g = 2.0f;( P. S, d, w1 L0 ~& r" }
pLight->Specular.b = 2.0f;
# D- Q) V3 Q( a1 q9 D. B. ~4 L // á?oˉ 9 A+ l3 E: P$ [/ `
pLight->Ambient.r *= 0.9f;1 U' M8 g+ ]. r
pLight->Ambient.g *= 0.9f;6 c* v# a2 o# m- [6 Y! ?5 _
pLight->Ambient.b *= 0.9f;2 v' r6 a# b* ]$ O: [; l/ _- e
/ ~5 k7 Q- o- G; n3 B memcpy( &m_light, pLight, sizeof( m_light ) );, i( @; G# u; q! z. s* a, S
u9 L1 L8 Q/ L pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );' h# L( _+ {( F5 J9 _ c* k& b
pLight->Appear( m_pd3dDevice, TRUE );
( G, S8 p0 D4 Y* \. x+ Z : x! O; d4 L+ ~9 Q
DWORD dwR, dwG, dwB;
+ s; x S3 R( k# r% c8 q dwR = (DWORD)( pLight->Ambient.r * 255 );
2 W7 D9 u+ g; Q dwG = (DWORD)( pLight->Ambient.g * 255 );: ]9 }! |; H+ V% ?! l z# p
dwB = (DWORD)( pLight->Ambient.b * 255 );+ V: s5 d& }, o; M5 ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ p+ B$ B. x9 z, D# a t1 S; Q }& K2 r$ B: d0 h
}3 C M+ h9 x. D, m l1 Q- v
else
) j% Y% @/ u! |1 x1 i( L# [% ~' P; } {. H0 s9 Z- @ x$ M
if( pLight )
9 d, i) O# v) H { F8 M a/ K. d5 _6 u R
) r. s' [ H2 S* b) I int nHour = 8, nMin = 0;; x6 i3 [/ E/ {" a4 Y
#ifdef __CLIENT
9 s! \6 H, O8 g+ ~ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
" F: J4 E* Q; s nHour = g_GameTimer.m_nHour;% ~+ W5 Y' L" c: c [
nMin = g_GameTimer.m_nMin ;4 W2 J8 X* X& y3 z+ O
#else
" T' [ E" C0 e* ~4 `) g5 Y // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
8 V! K8 d7 {/ m+ z0 ~3 K w if( m_nLightType == 1 )6 r2 \$ `$ r/ w/ ]$ d
nHour = m_nLightHour;: @0 Z( E& H8 O
#endif
& [# z" x& }/ \' I5 V& f* b nHour--;( K9 j8 m# v) U6 O1 d
if( nHour < 0 ) nHour = 0;
$ Q% R: \' m, A! B1 F T if( nHour > 23 ) nHour = 23;
% A4 r8 A0 D% `; B. E4 V! E
2 j& h7 x5 f* }- R- i- ^- I/ R //if( m_bFixedHour ) F% u0 w8 l" G. F! ~4 F
// nHour = m_nFixedHour, nMin = 0;
/ ~4 ?: D# U5 |( a& L" ~* c LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
0 b* o9 V- J( D' z" I V/ x LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 H. a6 ~' x! X1 Z- U" F
4 O+ h/ e# x5 i3 p0 |
//m_lightColor = lightColorPrv;
- \4 `* e: E* J+ ?9 O# Z$ X4 } lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" I$ D6 E+ w: K* q: E X
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;; S# a6 z8 Q3 v) {4 }
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
- }9 I) G7 j* V8 x, }( U1 D; U lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
+ a2 L# q4 d/ { b" C5 @5 M5 Z lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;& m: a6 g$ w8 ? p! F' d k6 U! a; N
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;6 H1 s) ^. Z- ` ?$ B
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)0 S/ c8 v( P! w' a0 y+ M4 M* e+ [& E
7 x% j6 x# c* U s( R // à??μ oˉè* 9 m) c- M4 ~. M9 s& \3 m D
pLight->Diffuse.r = lightColorPrv.r1;
7 V; r# n& z- b" D" r- H! o pLight->Diffuse.g = lightColorPrv.g1;
' E5 H. C3 J) F) Z9 _% Z pLight->Diffuse.b = lightColorPrv.b1;' e2 r' ~; f8 _; r, K
// oˉè* ??à? $ Y2 \6 P2 o' E( k/ Y' @+ x
pLight->Specular.r = 1.0f;2 t9 Y$ @, @6 E* X
pLight->Specular.g = 1.0f;
d: b) |& b. o. C: q pLight->Specular.b = 1.0f;
( g' i# v3 ^+ g+ t // àü?? oˉè* ) Q0 n2 b. y o8 M) Y- P
pLight->Ambient.r = lightColorPrv.r2;( Q+ u6 _( G- Y; ^
pLight->Ambient.g = lightColorPrv.g2;& F- B" n& o/ W" I* T. D
pLight->Ambient.b = lightColorPrv.b2;
' o0 q, d3 I; o& \* C
% U! Q: F; }6 q3 n0 @$ \1 Q8 J: a if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" r5 x7 {7 Z+ R# L# G# F {
, C- l& }, q# P/ Y pLight->Diffuse.r *= 0.6f;
2 Q W2 X) C# [ pLight->Diffuse.g *= 0.6f;3 g) q& J' E& w9 \
pLight->Diffuse.b *= 0.6f;" X4 A4 X& h. ~7 e+ B
pLight->Ambient.r *= 0.7f;
3 J4 T, I S1 H3 d; P0 _% K pLight->Ambient.g *= 0.7f;
/ E; U9 K) Y6 b; i# Z9 B5 h pLight->Ambient.b *= 0.7f;# ~1 g1 q4 Q% S; j. e1 q. I% y8 C
}8 x# g- k8 Y/ }7 {3 t% G1 l
& n* ~0 u6 |5 @ ^+ Z& s! B$ q#if __VER >= 15 // __BS_CHANGING_ENVIR
/ \* `) ?, H+ g8 U1 [8 O if( g_pPlayer )+ q% L/ w. ?# G. g& m( X7 u$ ~, g% W
HookUpdateLight( pLight );
. k3 A" O$ u5 i1 { a#endif" @) ~0 R! N3 n& {
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 C! t2 j, p& C# Q' z7 c
5 x% u# n9 q; [5 n* c0 g; H1 V# I
#ifdef __YENV* o& V' M* a' J- N' p: I9 a- e+ K
pLight->Diffuse.r *= 1.1f; l) R; E$ @' @ h/ d* H. c
pLight->Diffuse.g *= 1.1f;
+ u/ [1 V$ V% l* d7 u3 l pLight->Diffuse.b *= 1.1f;
' t! T* L5 x( S) D4 l& U w- t // oˉè* ??à? 6 |9 R# s; {# l$ ^0 I
pLight->Specular.r = 2.0f;
8 M* R b7 }9 |8 _1 S5 ^ pLight->Specular.g = 2.0f;" R* d' |3 A9 I5 ^; ]
pLight->Specular.b = 2.0f;* w5 s- t) A9 A& |1 Y
// á?oˉ
, [- ~- `- h& K5 r# F0 Z pLight->Ambient.r *= 1.0f;% E$ X3 X0 w4 o/ z3 ?- t2 N& f
pLight->Ambient.g *= 1.0f;: i8 F- q* F, t. n4 v
pLight->Ambient.b *= 1.0f;' @5 Y' B. x- Y( k/ D- p1 D
#else //__YENV
' t8 ]( P& i/ r7 @! L/ e9 e pLight->Diffuse.r *= 1.1f;" a1 x6 a, T7 E
pLight->Diffuse.g *= 1.1f;
- l: {7 ?; \1 Q# j% T; s pLight->Diffuse.b *= 1.1f;3 Z% Q' k, W% A8 y d
// oˉè* ??à?
* J' l* X9 G* W1 o1 J! r+ k: u5 b pLight->Specular.r = 2.0f;
E- X# @: {1 D8 R) Z7 v4 H: [ pLight->Specular.g = 2.0f;
6 n% D% y0 P+ U: ^; c; d pLight->Specular.b = 2.0f;
0 e6 o4 L; s2 `: X2 }8 J4 f // á?oˉ
0 G4 G( c% V3 U" x( _$ Y pLight->Ambient.r *= 0.9f;# X$ L e5 l& O4 d O" ^& D4 T
pLight->Ambient.g *= 0.9f;4 E$ \6 |" U( D. _7 [$ B* i
pLight->Ambient.b *= 0.9f;2 \' l( Q. v3 A- Z
#endif //__YENV 6 @, B5 w3 \. P9 P+ D5 H
- O5 c6 k3 e2 O9 e3 x5 N( d% ~& h) W
memcpy( &m_light, pLight, sizeof( m_light ) );( @! s9 n Z4 c9 W9 `8 L* Q
% V0 t6 ]) }/ ]7 B9 ?) F
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
x- \' { u, {, f D3DXMATRIX matTemp;1 v! R* q# Z/ m" v8 Y8 o8 v
static const float CONS_VAL = 3.1415926f / 180.f;
( ?8 Y$ \8 b; D* k" I/ X
- M' f5 ]- \! H$ K D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
1 w) E x) C6 w0 [% L D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
$ ^) E7 G2 q: S! R* v& Z pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
+ j/ [! i/ X8 a5 ^. J3 G; Q pLight->Appear( m_pd3dDevice, TRUE );+ o: _) V" G& c. l3 k2 y# T% h% X9 j
: ~- `# h" e" a) ^
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) ?! J5 \, s, i- ^) C+ W0 O% \0 d // D3DXVec3Normalize(&(vecSun),&(vecSun));& F0 [. L. `- D( H
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 4 \. z" q! ?) ] n3 h0 q9 \% m* k7 ?
Y& t2 `* f4 [) ?2 s/ q# i& h- ] DWORD dwR, dwG, dwB;
9 \* e5 u" f! x E" D. Y6 D- C dwR = (DWORD)( pLight->Ambient.r * 255 );
) V1 a( x3 X/ h8 y) `0 J8 B dwG = (DWORD)( pLight->Ambient.g * 255 );" V8 d, n$ P* p$ U" ?
dwB = (DWORD)( pLight->Ambient.b * 255 );0 \; B6 o g2 A$ ?0 r' ^3 G
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 1 H" j1 u o: H2 D2 }
}
; F* U! p. b3 M' W. B' p }3 r+ n0 k/ d% h, d; E( h) w* L! q
/ k8 I. e- D1 T5 F$ L* J% j' K9 \ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
5 R, x: W) g) K+ p3 K 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 h% g+ Q; ?* N+ I ::SetLight( bLight );- [, _4 M, H8 B9 z) j* A
$ r1 N4 b8 W( e. l1 A0 C
// ±ao? ?D?í???ó á¤à?
% n6 q( A/ Z; I5 I8 b2 f! y m_pd3dDevice->SetMaterial( &m_baseMaterial );# g4 M0 C6 e( K: E+ H1 l2 l
" E7 N0 o! K* T! X/ e7 U" e& m4 J& N9 B
#endif // not WORLDSERVER% T" C' t5 L! _# N/ v! C1 N+ ]& t
}
0 X- B2 K, q6 k" N) a: }并更换
. S* h5 ` ~9 A5 x/ \5 SCode:
- w4 i# D& l/ s6 h: ^__FLYFF_INITPAGE_EXT
+ ]. V' I$ \# M% y; M定义
, J* u& {& k4 ^: e. O
/ C! _9 w$ S3 {5 H6 j* M& e& \$ l6 t' U$ Q0 G! Q9 e
1 s7 ~% ~6 q5 A, V
( z7 ?9 n( c0 @现在终于删除我的狗屁加速...
$ J* B6 c: a% L* n% i6 f% {; n- p- X; p7 U; I" S; L4 m6 }2 t6 s
6 u* m: K: H# g! E9 L% C* H$ r6 q
" l9 @, O( U" ?9 ? |
|