|
|
食品车:7 v+ Z/ s. q# _' P
尾翼:
^1 i+ `! C$ r8 f0 |( C& l: ^2 h( C, r0 R- z2 @/ P
代码:# k& R; n. X* Y" A; _" M
CWndAutoFood::CWndAutoFood()
3 w6 f: O% H) A9 a{
+ H6 p2 B- v( E( Q4 M! a m_pItemElem = NULL;
+ {+ [, c$ ?, m$ E) `& Y' U m_pTexture = NULL;* r# H4 A" c2 ?2 j
bStart = FALSE;
- z/ [" K6 h" e ]0 G/ ^}
& |$ V& p: X6 m# c; x: j
9 J9 d! ^2 m" }6 w( D0 N, `CWndAutoFood::~CWndAutoFood()
8 Y" O7 \5 V% L- x2 ~{/ {/ b: |# m4 t N7 E
AfxMessageBox( "AutoFood ist gestorben " );
r% B1 |7 H& p7 r; O}
0 X! ?9 A9 t+ C d7 H" \BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
0 ]$ m0 X" W! |- \( \9 P{( e$ x! M+ K- `5 a
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
, B& c- H" C) r}- {' U0 T) k# [1 ^. y$ S
4 \* g! E( w* m8 |+ e$ yBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
( ?- \/ X# u( {9 s- S{
% l: D4 e; ^8 Q7 \, X LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, B' ^1 D, }, I! V# r. U4 \ CRect rect = pWndCtrl->rect;6 }) p+ Y h+ T7 C* z
if( rect && rect.PtInRect( point ) )' Q% Q/ J' i+ Z C7 q# W5 j
{
$ a) j( ^& r, t8 ? CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );5 H. T1 n3 M4 | f5 G1 `7 j
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
4 l, Q' |+ r8 X8 y, s {
3 f! q+ V: n1 x- n4 P* f: u" G if( m_pItemElem ), ~7 M2 f d- L3 `: `2 v
{
1 a/ \0 D" r& i# X$ D- ? m_pItemElem = NULL;
1 y& f \4 p7 \ }. s- w9 c+ |0 r
m_pItemElem = pItemElem;" w: Q7 x7 N0 B6 q4 o2 y
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );; U; X5 L+ a$ r- X$ I" R
}else{
# ~( s! G4 I3 d! d# ~6 k. Q6 y SetForbid( TRUE );9 `: f3 |9 U( [2 N" K9 w0 g9 b
}, X" k- O: a6 `) L
}else{
6 p# H6 P- ^! w: c$ N# P SetForbid( TRUE );
1 T+ m! E5 u, s. s; s w }; ~$ w/ e/ N7 O+ O l
return TRUE;
! [( \6 n5 T* T" X/ u* G}
6 z2 \# t7 F5 L$ D6 i
4 g5 _5 W3 K! y# o6 S$ [BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )& c9 x/ M) d& V' F8 @- y' E/ r
{/ a" S+ ]: d# v+ m0 y- P
switch( nID )" w8 M$ G3 r3 }8 L6 h$ E5 D
{
; n; @1 w5 e' F2 z: L1 P case WIDC_BUTTON3:* z' k4 u/ X" g4 I8 p
{- o( r- B5 [4 [: X
bStart = TRUE;- K3 `- Z2 q8 T1 m4 ~
break;- l+ h/ K+ g6 ~# l) r" l
}
$ ]1 q3 j9 [" A* ? case WIDC_BUTTON4:7 I1 X1 B M# U6 e7 p- [8 T
{; g, l8 g P) E+ N+ X) k
bStart = FALSE;
% Q3 Y7 c. w4 q8 K% S+ S break;/ _, ^1 v# X- G5 x6 }: E
}
" _- Q* |) ]7 T/ v; W2 G" n1 _ }
: V _ k+ D1 L9 C) t: h7 |$ ? return CWndNeuz::OnChildNotify( message, nID, pLResult );
' X; j6 M4 j9 v} % t. d5 W7 O$ ?7 v
void CWndAutoFood::OnDraw( C2DRender* p2DRender )6 h/ _ d3 ~, N5 d3 D
{- x$ P4 |# ] z, C8 P
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
( c+ Y4 r! l" c4 X- Z: Z& E if( bStart || !m_pItemElem )9 h- |3 h* B9 |* h, a
{8 E+ ^* T* Z. c$ m; i; E
pBtn->EnableWindow( FALSE );
, I$ ^- ~0 I/ {8 ~ G% d0 C7 K+ P5 ` }else9 [. `: f( o- I
pBtn->EnableWindow( TRUE );
* W& D1 e3 m& h, d: I, p0 ?$ D; P if( m_pTexture )
- x( Q& V* V5 J9 I+ z+ D) n {
2 D0 @0 }6 M2 |8 e9 S LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& g# r; e7 J! f5 F! I if( wndCtrl && wndCtrl->rect )7 Q2 ?7 U7 }; M- H0 T; k
{
, F0 Z2 z+ v/ ~6 s- j1 t; v8 U* G. B m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );9 Q% }. H8 F4 l. D/ l% Z9 Q
}
* d( i! v! N) I }
# } m; a6 z7 u. Y J6 w8 A}, G- N, ]: \, t# q9 Q" n9 L7 K
/ w3 y9 |3 c& h2 A( aBOOL CWndAutoFood: rocess()/ j5 [/ O: I6 z9 ~/ [5 b. A: U( D
{. { {' ?6 @) v! `
if( bStart )
4 h" J! E2 w* H7 l8 H {
0 n( d! ~$ ]1 ? V9 K if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
9 i, _$ ~ C$ X' r+ v' j {
- ?. s6 c i; o7 j if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
$ D! A: M! G/ M z/ W* n g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& i- I, S; `7 F" Y
}else{ e+ b' p3 K% g( C$ @
bStart = FALSE;
1 {6 v2 }" {* T8 Y/ @2 K m_pItemElem = NULL;9 j- r1 u) W' m3 \
}
) A1 w1 Y$ P; q+ K4 b8 y }/ D$ @( ~: j+ z# K6 t9 F* f
return TRUE;
8 C2 p0 G( x1 n0 h* q}
. G- u* b/ A# ]9 s/ g, d
# ]" n2 ^ Q+ ~6 |8 T登录视频废话:' t! J) p* Q" \- @
尾翼:
- ~/ e' Z; ~3 C5 m7 ]) q l2 v) S1 P6 x1 ?
代码:* l8 D% I2 C% W, R4 B2 ?, z
( Z7 S1 M6 l: z, mvoid CWorld::SetLight( BOOL bLight )4 C3 x& P$ _+ z
durch
8 V- h* e& B! u4 iCode:2 G/ q6 Z D0 _" G0 Z( B O
void CWorld::SetLight( BOOL bLight )
2 c, }& O' Y5 W) D) G! q6 j7 f{
$ W1 `% X% ^1 M4 G" z% U+ }% d //ACE("SetLight %d \n", bLight);
) d0 x4 X4 a! k( h4 | $ {7 y+ X: _7 {! |4 {3 u' s
#ifndef __WORLDSERVER # v; J( A* b2 Z: Q6 i+ {
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
8 z0 C7 p t, q# N0 ]: Q6 T* d CLight* pLight = NULL;
& w9 L5 J9 F6 o+ Q+ [+ v
; I. s' ^0 l7 P6 m! I; D D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );5 ]3 |3 A8 n2 S) v0 I
8 n; q8 n- \0 \+ @6 q
pLight = GetLight( "direction" );
" w$ Q3 k7 i; n. }3 H. g
# f/ p9 Z' L+ z, g" S( @#if __VER >= 15 // __BS_CHANGING_ENVIR
1 o; G1 A9 _9 U5 h4 U1 T- ` if( g_pPlayer ){
" @; V2 T' f3 G8 Q: l ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );% }& g; e! ?0 w. J% q4 U/ h, u+ i# o6 k
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!( y: o" y. u! w* t9 v( f
{' T8 z( N& L* { E# j% C4 e
if( pLight )% o1 F2 t, C8 I% X. p1 k
{; ^1 W9 j [4 B( l
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
$ }2 k4 E- E# x& r! C; r2 d/ R pLight->Ambient.g = pInfo->_fAmbient[ 1 ];& P" b5 ?! s0 Q9 w
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
" Y8 s' q7 i6 r, I5 S
0 O7 k2 C1 T/ s$ w- P pLight->Specular.r = 2.0f;7 }7 s8 j" D2 L! `
pLight->Specular.g = 2.0f; s: s. V# s8 v9 H* X/ b o2 m
pLight->Specular.b = 2.0f;
1 q' x% z8 X% w7 H7 Z ( ^4 [/ c, d+ A1 t
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
' w2 g# X8 B [5 ~- c2 |6 N2 S pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];2 N. O2 h" u1 t7 G
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
& J! y3 V2 E4 w; b1 c9 h& f8 }: B5 d5 W
$ v* X, Z8 ~# `; b: V. m( ^ HookUpdateLight( pLight );
. h! {& `# _4 C& U
' m4 ~$ x; z* U8 m" z0 ~ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
2 J, _4 M; `% b6 {/ _3 x
3 x# i+ f- _: u+ Z pLight->Diffuse.r *= 1.2f;- O9 j( S2 L* M9 u' J
pLight->Diffuse.g *= 1.2f;1 y9 r9 P9 z. B
pLight->Diffuse.b *= 1.2f;- Q# b2 i" m) B% g: L+ w0 w6 }
5 k f3 I, l' v( M pLight->Ambient.r *= 0.8f;
0 `: z( J1 Q: L# z$ c# |! K3 K pLight->Ambient.g *= 0.8f;- C! d. |- k/ i3 D+ y
pLight->Ambient.b *= 0.8f;
3 f# P; V& G8 R3 J: g# \7 W+ y+ e0 Y 9 x; P' \9 K2 J" D. x
memcpy( &m_light, pLight, sizeof( m_light ) );
* J) s z0 F, n& B1 ^2 W: i- W
& u' J6 R$ w# V; Z; r D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);: H# f9 t: o. k# I2 b
D3DXVec3Normalize(&(vecSun),&(vecSun));. p/ }. s* r0 r1 n9 k, g# F
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " F6 `8 l! g2 A! E
pLight->Appear( m_pd3dDevice, TRUE );
$ E6 w8 _- ]6 A ; _% J& [4 e7 T9 I: k1 V4 @9 b# @
DWORD dwR, dwG, dwB;
; t% t5 h& r+ X3 n dwR = (DWORD)( pLight->Ambient.r * 255 );/ @. G: H) y; F3 T8 _
dwG = (DWORD)( pLight->Ambient.g * 255 );1 j: `. S+ S) X
dwB = (DWORD)( pLight->Ambient.b * 255 );
$ W8 x$ M! p! a+ t dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );2 n$ d. W7 x+ W' S+ x( Z2 t
}" M: {2 l1 b1 P* W6 z
}
$ u" _) r& D" {" m. o5 t }
s) g8 q( t, f0 ?# g, O else
8 a5 M) z) C- Y8 u5 r) Y#endif 4 i- k6 w9 |5 _$ e3 x7 G3 k
5 q: B h; N+ H/ ^ if( m_bIsIndoor )
$ F: C g0 |; H+ P3 A% Z- S- j: I {
, [6 u1 z, w& b8 c if( pLight )/ x4 w9 Z0 D0 [3 m d
{
* S% {2 c2 O f: g // à??μ oˉè*
E! i5 b7 q; r1 v z& O" `, C pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;0 ] @% O9 ~2 ^, n6 z6 M3 e
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;- U) C5 l% i- M: L- y$ ]% u0 c1 [/ D
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
/ C+ ]$ a' G$ v' `5 l' f. X4 |
- g6 j! |7 S* h! a) I" I5 h$ ` // oˉè* ??à?
6 s1 ~: E1 A( \7 F4 J# z pLight->Specular.r = 1.0f;
7 k" k3 H, `# C6 ^, @4 V pLight->Specular.g = 1.0f;* W7 k" N/ M7 R$ I
pLight->Specular.b = 1.0f;
: h, p" T2 t( ^ // àü?? oˉè* " P* r( R# X/ Q* v* m; H/ H
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
0 k. N' M1 B# t8 x0 [. s+ { pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;7 v$ `/ t: R. I% K3 d
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
& K0 {2 g9 n; s6 Q) K3 Y: O) i2 m# j3 a. M
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
$ E6 t" U! `0 H6 J. ?4 l {
" J; L( S( L) s% t. u: i pLight->Diffuse.r *= 0.6f;
4 _5 }" S6 M; A" ~: O* X, m pLight->Diffuse.g *= 0.6f;6 i7 A9 W, X; r+ c" w' D" a
pLight->Diffuse.b *= 0.6f;) a- x0 q( M9 A
pLight->Ambient.r *= 0.7f;
: Y$ j3 {* N6 C5 A0 A! o pLight->Ambient.g *= 0.7f;
, ]7 i! M; S! P- v; t0 r pLight->Ambient.b *= 0.7f;
; a7 p( V9 }7 _) T3 X0 [7 D }* t7 a) F9 C/ x
5 b0 F: E' ~2 V& _4 Y; Q#if __VER >= 15 // __BS_CHANGING_ENVIR9 K, Q+ a& N; \/ C
if( g_pPlayer )
/ Q+ g/ H5 q4 L" c; E0 s HookUpdateLight( pLight );
9 U6 ?; @' O6 R: e7 J#endif
/ u/ B* M, q5 e4 A memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 T, H% u/ H+ c, |! [. a6 d
: b2 ?6 F4 _" a' ?) J pLight->Diffuse.r += 0.1f;" z U3 s4 H) z
pLight->Diffuse.g += 0.1f;
& g( {5 s \: D0 J. [1 | pLight->Diffuse.b += 0.1f;
3 ` {9 P* E9 V! L // oˉè* ??à? + `# p2 v% F- \
pLight->Specular.r = 2.0f;; t) e# A: ~) |% i
pLight->Specular.g = 2.0f;
; _3 a1 F/ h4 R6 i( l' ] pLight->Specular.b = 2.0f;
+ Q# J+ P# H3 [ // á?oˉ
1 e9 R- w, W$ }# L4 |- l( [! Y# Q* [ pLight->Ambient.r *= 0.9f;
/ b1 @& Y* H6 J! O* V pLight->Ambient.g *= 0.9f;
2 i9 x3 b; U. ]) p: q pLight->Ambient.b *= 0.9f;9 j% `8 Q, P# R- M/ u+ B% O5 B7 Q
+ f0 [4 |4 D# `: G memcpy( &m_light, pLight, sizeof( m_light ) );3 D8 u* A7 s# O
& H* }) o! A6 G+ s! |/ _! f+ K pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 D" q- M0 E; {6 y, A" P
pLight->Appear( m_pd3dDevice, TRUE );
- Q4 w) E' \- q1 W* y
1 }7 @2 [3 Y; c6 P DWORD dwR, dwG, dwB;
. l4 T( i7 b" f3 \: K! P0 C dwR = (DWORD)( pLight->Ambient.r * 255 );
: X6 [4 r" S1 u8 p/ \ dwG = (DWORD)( pLight->Ambient.g * 255 );7 n& s$ @/ \0 W/ |8 P# [) ~
dwB = (DWORD)( pLight->Ambient.b * 255 );" m) A2 V1 ] n/ s
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* {1 E% h6 n% n- l% w( G- O }2 ~' U: X" z% P4 R* h
}2 E' u7 f) M. R( e: L( A3 M
else
* t; s( k: ^! n1 p1 [/ c {0 A0 w# K$ C5 S( i/ i0 N
if( pLight )
6 V7 O" `# F. m3 n& {6 Z3 d! n {0 W9 F1 N5 o; J9 y! y2 f- d
' m, m; Q, ^ z# A0 o! n5 g/ O
int nHour = 8, nMin = 0;
1 o. z8 t3 f/ Q #ifdef __CLIENT
% V+ g7 ?6 @" Z. j6 p( \* S // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
8 r3 B# m& q0 n0 Y1 x0 q* _% U nHour = g_GameTimer.m_nHour;
8 E* z) F$ u* r3 i5 q. j0 s4 | nMin = g_GameTimer.m_nMin ;
9 s0 k0 Z% S- [ #else4 ^; r; u/ O; K% c8 Y% q+ ?% l
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.7 }. {) \7 t3 p1 R$ \! X! T R. q" Q
if( m_nLightType == 1 )3 p% z5 W" P: v3 D& c) Q3 E: \' O! J
nHour = m_nLightHour;8 q' E6 [ P& N5 R: t. ?; z( m
#endif1 i7 C' E% Z% J
nHour--;
# N1 H( n4 ?/ I+ z" c0 K8 w) M if( nHour < 0 ) nHour = 0; m2 U# ]2 y3 D
if( nHour > 23 ) nHour = 23;) ~8 r" a6 A S# G: g3 m
: Z3 l* K" V* m: A( a //if( m_bFixedHour ): @- {" c) d- ~* d( X2 W- W7 ~* @
// nHour = m_nFixedHour, nMin = 0;
- W+ S! [4 @1 i$ P* i' P* W) [; u' E LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];, }: I% Q0 S% {& C. y
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
/ Z4 d1 ]7 ?/ U! y& j ^. Y8 Q8 O7 U9 D+ @2 q- p& J
//m_lightColor = lightColorPrv;
3 q4 Z( t6 b( c) J lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;; ^) e/ `* {' j' G% w0 ~
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
) S5 Q' w8 G; j. ~* n/ w6 F lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;5 i- b2 b' ~) R
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
3 ]( A$ Q" Z _+ Z lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
7 w6 a* ^" X( y/ ? lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;: O& a, K. i* }$ c# b" q6 ?6 V
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
! A8 y; y! m9 ^0 ~3 i6 _& x$ V: f
. z" O% i/ D! F) ]. x- p7 K // à??μ oˉè* 0 Y% k7 t2 {9 M& G2 Z- `9 {
pLight->Diffuse.r = lightColorPrv.r1;, M6 q3 |4 V5 s
pLight->Diffuse.g = lightColorPrv.g1;1 @1 q9 `! F9 |" V( @
pLight->Diffuse.b = lightColorPrv.b1;
. D% \. w& w2 ? // oˉè* ??à?
& o& `% S0 L, S% V) J pLight->Specular.r = 1.0f;- b" O/ w; V7 b
pLight->Specular.g = 1.0f;
! Q1 s- ?' \, x/ y' ]3 I pLight->Specular.b = 1.0f;3 q; d! C2 U+ R) q
// àü?? oˉè* & C0 O% b8 @$ F' d/ C( E& M& o
pLight->Ambient.r = lightColorPrv.r2;1 w) H. U& R Q( |/ K
pLight->Ambient.g = lightColorPrv.g2;
0 Z1 y9 X7 B& d$ @ pLight->Ambient.b = lightColorPrv.b2;0 s; h0 t" F7 n v) v: j
7 d3 b( _4 F) O# f4 `5 X if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* A$ K5 k( e" k; F# j5 o$ N# o
{' x3 d2 k" \; ~8 t$ t
pLight->Diffuse.r *= 0.6f;2 a, M$ l& Y. e9 H
pLight->Diffuse.g *= 0.6f;
# L% t" d$ B( l9 M0 b pLight->Diffuse.b *= 0.6f;
+ U9 A0 g( x& n; a, _ pLight->Ambient.r *= 0.7f;
2 ]; B0 D( m- Z% R pLight->Ambient.g *= 0.7f;
8 F6 j. Z* S- X0 z- l: a5 X. B0 Y0 p pLight->Ambient.b *= 0.7f;
: `0 B: \0 A* R; P }0 [ _5 J) E& h3 P) y/ j' c
. D) ^" c. a2 \/ }1 ]
#if __VER >= 15 // __BS_CHANGING_ENVIR
6 j4 l% |0 k' j. Y/ Z) x, e+ e if( g_pPlayer )
" N* \6 {0 p- j' i) a HookUpdateLight( pLight );
/ V2 i& T) T& o+ c#endif
+ r( b) F8 m) i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 [& S1 ]; a+ @' \: f; C0 B: @, n' A# }1 a
#ifdef __YENV
U7 z" ?/ [( r: R. n4 O* J pLight->Diffuse.r *= 1.1f;3 B5 O4 p! A( v3 @( ]" W8 D& d% {
pLight->Diffuse.g *= 1.1f;
9 w ^# x% p L3 R pLight->Diffuse.b *= 1.1f;/ o) G( q1 v( e. ~6 A# P
// oˉè* ??à? % p0 v/ O2 P4 \; z7 h: m' Q2 M
pLight->Specular.r = 2.0f;
7 A$ v: j2 [* z/ J1 Y pLight->Specular.g = 2.0f;
0 Q/ ]9 i, @; F pLight->Specular.b = 2.0f;
! D: r. B- r2 z+ v. W+ C6 C3 W // á?oˉ
' N! _; |7 l" m4 _ pLight->Ambient.r *= 1.0f;
$ q6 q; E: D5 y0 B pLight->Ambient.g *= 1.0f;
1 e% ^8 E1 V6 }9 _" u6 Q1 p( F pLight->Ambient.b *= 1.0f;
" b `$ z5 o4 b# \2 l#else //__YENV
' ^3 Y+ K7 T& i d) a7 k+ U pLight->Diffuse.r *= 1.1f;" E/ J8 L/ X2 `* @
pLight->Diffuse.g *= 1.1f;
9 Q: S: H k2 J- g! n pLight->Diffuse.b *= 1.1f;
# l; Z$ B4 k7 z // oˉè* ??à?
& M* u% ]% f' i% K pLight->Specular.r = 2.0f;9 ^4 G$ E6 O0 H) ]4 b6 T! i3 }
pLight->Specular.g = 2.0f;
- C' a: T" p" Q! L8 w pLight->Specular.b = 2.0f;! p( Y G5 O5 [
// á?oˉ ( O0 ?+ d3 I4 U; M
pLight->Ambient.r *= 0.9f;% L1 S ^9 K, Q
pLight->Ambient.g *= 0.9f;
% U s4 t! P) j. K pLight->Ambient.b *= 0.9f;" N9 k: \3 p4 L2 X- Q6 ~
#endif //__YENV
- l( G6 o( ]8 N2 W# I! a- n, U ) M$ y& M. n; q9 p1 L0 \
memcpy( &m_light, pLight, sizeof( m_light ) );
, u3 [- q- @# O4 m; D) ?' D " b4 \# Y: a. r5 ~! W
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);: P4 H* `- `9 C3 N3 P C) k
D3DXMATRIX matTemp;# t6 i- H. S6 h9 Y3 ]
static const float CONS_VAL = 3.1415926f / 180.f;. J; B9 M0 s% Z1 E8 B
8 ?$ Z+ j; F- X, I; J( I3 |# k D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);. H0 Z# L' \: Q3 f& _0 S
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp); D* x3 K6 Q+ H2 f* T
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); o& A& s, p W. w% B/ E
pLight->Appear( m_pd3dDevice, TRUE );
7 c$ @/ }9 q& M! r ^: R( y; S
& a. N. m7 \% J# |% B // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
" U* D5 Y \$ O M+ y+ N0 _" A // D3DXVec3Normalize(&(vecSun),&(vecSun));
( `. q( D) T) }; z7 H // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ! h- X$ x; q* @0 L
3 E- e% q$ m6 [. e s( _ DWORD dwR, dwG, dwB;! I7 G" `2 [% t
dwR = (DWORD)( pLight->Ambient.r * 255 );
; x8 `8 t- x" X7 j. y dwG = (DWORD)( pLight->Ambient.g * 255 );
& u; a) W, B5 r3 \! b1 U* I dwB = (DWORD)( pLight->Ambient.b * 255 );9 M1 f2 p7 X8 T& v5 f& s1 k
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); / n6 T* i" W2 a9 D+ I
}, e3 k1 v3 `5 s& k
}
, W% E1 Q2 e! k7 R" ]( F4 j- E) b* u! Q) l d
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
* A; O7 ~4 T: U+ z; L6 _: C/ u 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) );+ X" o, `, p' W- i3 ?) P6 }
::SetLight( bLight );+ x6 Y9 p; T7 Z! M% |. T8 @. K
6 m! o" K0 |# N+ z2 f0 o, U( {
// ±ao? ?D?í???ó á¤à? ' I0 t+ Z4 S. ^
m_pd3dDevice->SetMaterial( &m_baseMaterial );
+ X7 ^' Q; \# E' w& y; g1 r
8 _* r1 Z ?. g8 o" z# O#endif // not WORLDSERVER
/ [3 M) t5 X& R- q( [4 [. b# w" _}: `7 R c8 {4 p. l1 Q
并更换4 o6 ~! L- h& c2 [9 H8 s8 l/ Y; c
Code:
3 ^' \% B: X' L2 G0 m__FLYFF_INITPAGE_EXT4 U# k: h0 o0 T
定义/ @9 h% f$ j7 l( z" s0 }5 S- j
, k2 w+ S# N7 Q9 Q8 Z1 |. ` _; y+ [
0 s& J; u) W" J; @& T" r
7 _# w. z0 T. G/ h) j' w9 z D+ W, o' V
现在终于删除我的狗屁加速...3 v. B- f r% ]. G- |- t
+ L+ ^* n6 z( }+ P3 \: [
; x/ X& @, k6 R/ _5 ?( n
( B0 p7 l8 q M. d' p4 f' G+ D |
|