|
|
食品车:* }' i# w2 V& E- N
尾翼:8 ?+ a0 m8 ~) S
, v7 C% @7 c. c, N* q2 U9 ^( E代码:7 y# [5 N9 N) \
CWndAutoFood::CWndAutoFood()- {$ B# J8 B9 M/ l. t/ e; h
{4 [! h g/ d% m) ]: [1 ]1 ?
m_pItemElem = NULL; ?3 b/ b" }' q
m_pTexture = NULL;$ ? T [4 u, q0 ]# P F
bStart = FALSE;2 s" |+ X( u: }) m
}" [1 S$ v F3 S* j( V: g( i& _
) B1 x- `* M2 t4 N- s! gCWndAutoFood::~CWndAutoFood(); {- w& Y6 h. T! n# v8 L1 G! O
{
8 H1 X& z% w" q( R2 [( J8 O4 q AfxMessageBox( "AutoFood ist gestorben " );5 a% z$ N$ u6 e' n9 K/ e- o
}! i) z& r0 `* j" N5 b- |
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )- w. L/ V8 S D6 q1 T6 N p6 n2 L, m
{
- v( L9 i) ~& k4 c0 \3 j+ S return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );( H/ ?7 H# |$ u: D' i5 ?
}
' F+ |" g2 y1 `7 [5 r z7 l4 x* e' G |* ]* @; G6 v
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )% }& q& b: E/ f$ B
{" y: b$ f- s3 R: p) a1 P! n. p
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );8 ?, k; O, N( Z. ^* c) m
CRect rect = pWndCtrl->rect;3 T/ p0 G* n3 C% o+ d& B' A
if( rect && rect.PtInRect( point ) )
1 n$ k/ L3 B5 N {2 A1 C m: U' x# ^, o5 o* G, t
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
) U; a' J" X1 m if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )' }: H+ r) m. O: U1 y2 k( w
{
( |9 i* x! {+ w$ z if( m_pItemElem )3 {9 |- H- c2 U1 u/ ?
{
8 L3 I$ A' p$ \$ [- s m_pItemElem = NULL;
9 X3 f" [( B6 n }
3 B: ?! D5 H4 Z; ?% o m_pItemElem = pItemElem;% m' d7 ^$ @# o6 L2 N% W: B
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
2 Y+ S2 }6 h- ?. ~0 I1 B( }$ Y) I }else{& D) k# R! d+ n8 C$ {' w9 H; J
SetForbid( TRUE );+ A7 ]- L. ]8 I' Q V3 r
}& g) a- \+ v; F. ]
}else{
' j8 c$ b; R2 g5 [/ F" ^- t SetForbid( TRUE );
; f3 @9 V% Q/ k }2 K6 E q* k' m' K9 u8 f( X
return TRUE;* X$ d+ s* M; Q4 L& I0 [; k
}2 f3 y8 @, ~3 x) e+ S+ W0 C
& D& j& h* T/ P8 U1 \" L- |
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
& _5 i6 a" _* e8 P7 T0 V{
8 s2 c" S. a5 F0 _4 Q- H switch( nID )6 B/ q0 V( }: Z) N
{5 X' |) u* V: m/ [. t
case WIDC_BUTTON3:
9 b! s: G* Z) p4 W {* V2 Q& Y3 I' {% _$ L4 U+ {0 ~
bStart = TRUE;! L" r) {% d* U
break;2 @2 X6 ~3 d3 @9 i. Y6 y
}$ a$ A1 u# H8 ?5 R8 G
case WIDC_BUTTON4:6 V" _2 x# R4 Z% K, e& N- T
{
2 N% b" i% Q m) W bStart = FALSE;
[: v) [! O0 M' x. ]1 L break;' d" [' z9 N& l0 k) O, |( M5 t; q
}
1 c; v# ~, y/ J- p, O" [* H }
6 g; E# {, r$ }! [$ y return CWndNeuz::OnChildNotify( message, nID, pLResult );4 ]! b O: q4 n) j+ K
}
V6 _/ E* F* qvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
. i: C c/ p. O. k7 Q% H{
! l/ l8 G$ x' j5 Z" [- E H CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
9 M4 F* r6 {( O3 |/ ?. t; X if( bStart || !m_pItemElem )
( w, ~: S# U" X& Z5 O {; l1 o4 C! Q/ _) A. D
pBtn->EnableWindow( FALSE );
9 L2 W9 o8 y! ?. Y }else( v6 \) o; m. K' i) V
pBtn->EnableWindow( TRUE );
3 H7 S6 u% [( u. F9 | a: W if( m_pTexture )/ \$ A: c |% @
{
: h% A, w" Q: a0 ~# f" G1 m, ^ LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
* Y( L$ t l' x$ K2 N* b0 C if( wndCtrl && wndCtrl->rect )$ U& k8 F6 X* z8 X' U
{5 i" q8 g- ]# y1 c: i' x! n% N
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
0 M: X1 w! @. m5 \ }
/ \: D6 J% w0 k3 j# Y6 t/ H }9 f* r3 m( x9 B6 P5 B L
}8 \7 d) W y( k1 s
% U4 }7 d' T6 X# ?$ jBOOL CWndAutoFood: rocess()
3 e6 B/ r. F/ _# U% o{/ B% T5 d ^$ w* y2 c& M4 S
if( bStart ), p9 `2 L- v# i% Q0 R2 j) M& L& L
{6 E$ ?$ \$ D) A+ ]# N1 ~
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. A4 o) o6 W8 d1 N/ ?+ L {
. h2 M7 U- v# 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() )3 e, p: |% i& V! ]/ s+ r
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );+ ^) C0 a0 W3 G9 i! c7 [; B
}else{: d$ U, x9 q0 a( V8 U! I
bStart = FALSE;$ J- {6 }% [9 q9 y7 x
m_pItemElem = NULL;
# c, T) j9 \5 U1 [) b }$ B1 d2 N Q/ r2 M- L# L
}4 S5 e0 D4 e7 O
return TRUE;
$ h5 T3 U. u# R8 E0 ^7 m}
4 W+ c! O5 b" R) G1 i( {
& G" _, V4 u! r8 }4 G登录视频废话: Y/ u" c: z5 |* l# x2 b% a
尾翼:
0 ~9 d' V/ C" M
7 V+ i" f& y* `1 U代码:
6 E, J7 f7 E4 }, d) w. a/ C2 N7 b
& s+ E2 m7 k+ q$ }, s5 gvoid CWorld::SetLight( BOOL bLight )
. r! I8 `1 P0 j# o: p& D* g8 S S1 zdurch. u; c7 p( V- \( {7 }
Code:: D2 Z3 j p s3 ?# k% X
void CWorld::SetLight( BOOL bLight )
. d. O5 r# i* q, v' e0 }7 a{
( H6 w Z! R" O/ D3 x9 Q //ACE("SetLight %d \n", bLight);# F, g5 V, Q) a V5 I7 p
X6 H) e- q) z8 z f0 Q#ifndef __WORLDSERVER ' w7 z2 G. A- x0 g0 d8 N. C
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0); ?, e' I7 B q
CLight* pLight = NULL;
: y. Q4 s, l) X+ s8 ^$ D4 V$ @/ r8 x2 W4 c$ {) _1 r
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
; h! P5 `* y/ a* ^; |$ o6 n- g4 ^# U( c" m
pLight = GetLight( "direction" );- q% j* g" m6 | V
$ x; h/ ? j9 Q: Y# i
#if __VER >= 15 // __BS_CHANGING_ENVIR
9 C8 w: g. {' M+ v+ M if( g_pPlayer ){
d6 {; F; u% A ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );- v: D5 t- F$ ^& p2 u8 V! f
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
1 p# m) q, e; Y8 S {: D6 D* `( y3 P1 L
if( pLight )- a# R6 t4 d, o6 O0 l: U* R
{
9 q" }7 n3 O, M4 I: z9 U5 D pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
- ~0 L' d# ?- b; Y x pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
: R) r: D; w2 `+ A& | pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
C9 b( Z$ ]4 M3 P4 Z* s8 m" P: o
6 w J" A! L9 R" ~7 t pLight->Specular.r = 2.0f; p( j! p+ N @3 `# o
pLight->Specular.g = 2.0f;( V, x9 f0 V: h
pLight->Specular.b = 2.0f;# m p. e& x, g( z p4 R+ m. a
9 w9 a- E& m0 Y: B, o pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
D& K' P. ]: b6 E pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];% j3 ?4 E4 ]) q- ?
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];1 i2 b' ?, U6 n4 d0 P
* z/ G8 j+ n# l; H' }2 f HookUpdateLight( pLight );
) ]7 T) k4 w' C+ L
% e. s* _$ s" d0 W5 M; n- N memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: Z0 a& y; d; Q3 D4 r8 {% u 9 T2 i% Z) A* T" C( \
pLight->Diffuse.r *= 1.2f;
! \4 ]5 g c' K4 |/ I pLight->Diffuse.g *= 1.2f;
- B5 V% }7 l# V: W pLight->Diffuse.b *= 1.2f;# j5 D* y. U" L/ [/ p
' E2 \% F1 ?# y i4 M pLight->Ambient.r *= 0.8f;
$ ?- v8 y* d2 D pLight->Ambient.g *= 0.8f;" R# ]! G- h* u- l
pLight->Ambient.b *= 0.8f;" U9 u, P6 U0 T! I+ D. L. F$ C/ l& x
) E2 N+ w6 p6 d9 j- J4 V
memcpy( &m_light, pLight, sizeof( m_light ) );
/ p4 u ?( k/ {( X! O& s" t* O% T* P7 V0 k. Y: v! I; `7 e
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# Z4 v# C8 ^0 X! ^* } D3DXVec3Normalize(&(vecSun),&(vecSun));
: s7 k8 @* r) ~) J8 M pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 f S, d, K, ^$ S( J1 u+ [ pLight->Appear( m_pd3dDevice, TRUE );6 S+ U7 e- Q1 m+ J$ g" d
6 U' F% f# j9 M. |" g/ I9 w e
DWORD dwR, dwG, dwB;- d* g1 ^# |4 Z
dwR = (DWORD)( pLight->Ambient.r * 255 );
5 O3 ]# y& Z4 H* V+ G) c. Q dwG = (DWORD)( pLight->Ambient.g * 255 );; m( n) p# G$ W% N5 g+ H
dwB = (DWORD)( pLight->Ambient.b * 255 );2 D. N( G/ N" q+ F# D0 ]
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
. @6 v4 M4 x5 b }
" D2 }- h. A& l, B( \% q3 h' s }
6 {0 A0 i' M, Y7 Q }" A% r$ G- M4 L' p
else* @: [% M3 G# i4 I/ B- f" y2 L) a
#endif : ~ x/ i; K; x) r! l
) Q) P5 f; L x x. `) C
if( m_bIsIndoor )
- ~8 U9 g! ~. U+ j {
1 B+ I$ l# ?2 R- C) j1 Y2 e if( pLight )
J. Y5 D1 J q- ]8 d( M# A { / ]& M' ^0 E3 m& a: P
// à??μ oˉè* , a* P! z6 g' L: b9 e/ Q) o
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;2 r2 k# X+ o* P: U9 V
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
; v3 n6 E k( f pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;6 t9 t6 b8 `( Y+ {) z8 m
V: z& V: n, E7 i' O/ a' F* A
// oˉè* ??à?
D. O9 H# {* c- U' d pLight->Specular.r = 1.0f;
# ]# O* }% P* i pLight->Specular.g = 1.0f;
6 ?( S) C) B% y pLight->Specular.b = 1.0f;9 A# ~+ W. s; I& T/ H
// àü?? oˉè* 6 z9 o3 a2 x; ~- q, f) K7 n
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
& W' C" F3 P/ Q- O3 E" h. ]( A+ \ pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
6 |( F9 A9 }. w2 r2 W( ~ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
4 q3 v P5 P [! ]7 L0 Z/ ]: S4 o6 _( Q$ H* ?
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.' T! n% p _; t3 G: e
{
+ y" H( m3 Z& \6 B: e y pLight->Diffuse.r *= 0.6f;" }$ x- g, W; Y. t
pLight->Diffuse.g *= 0.6f;
2 `7 h# O: j' y: `$ z9 i: Y pLight->Diffuse.b *= 0.6f;
- W0 Z1 W. Z" G) |2 W pLight->Ambient.r *= 0.7f;' W. \( f% z3 i( u5 O
pLight->Ambient.g *= 0.7f;
, {, U F4 j% X4 L% y7 }$ J pLight->Ambient.b *= 0.7f;
" W' L$ a/ N' }, x3 m* z) d% A }
0 b5 k7 P# V1 r- `) N' Y
3 T) O/ b9 F5 g9 _- Q7 X3 q8 q; S#if __VER >= 15 // __BS_CHANGING_ENVIR
: `4 j* J5 X; i2 ~5 m2 q6 i if( g_pPlayer )) `. i; A" r/ ?2 r, [# p
HookUpdateLight( pLight );& j" L9 e8 h% y* n
#endif- Q& T1 M1 I( d+ ]
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
$ q: c4 e: P6 y' ^$ ?* S% ?
. N, b1 F( I' I pLight->Diffuse.r += 0.1f;
+ y1 |0 D; \. ?, d6 j pLight->Diffuse.g += 0.1f;
) m0 T$ j1 a4 o# u pLight->Diffuse.b += 0.1f;
; O5 x7 Z* A, F. `' n* E // oˉè* ??à?
( J4 f9 |0 u+ z pLight->Specular.r = 2.0f;
' v$ N O8 d0 q& ?+ @+ c) f' N pLight->Specular.g = 2.0f;) K! Z" r% j4 q( n2 o
pLight->Specular.b = 2.0f;
& J: t4 s9 K2 t8 h: S/ N4 B // á?oˉ 3 ^! L& [! X! j- @) b: e! z# f
pLight->Ambient.r *= 0.9f;5 O3 c% T/ j' V
pLight->Ambient.g *= 0.9f;
; X5 J& w* ?! A5 b' u$ a% M pLight->Ambient.b *= 0.9f;
/ h" o! w9 K5 {# m9 U0 x f- N6 _/ Z! N
memcpy( &m_light, pLight, sizeof( m_light ) );) M! }) E& ]1 x+ r( l. G
" J- Z# y: B% n! R
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );" @ g+ B* ]9 R% d6 b
pLight->Appear( m_pd3dDevice, TRUE );' t$ e9 G% }6 k f
8 \+ ~+ `6 `4 v2 W DWORD dwR, dwG, dwB;, T) D/ C+ H# J1 \5 ~* h; X
dwR = (DWORD)( pLight->Ambient.r * 255 );/ r, K I& L+ C0 T4 @9 f0 M
dwG = (DWORD)( pLight->Ambient.g * 255 );0 ]' p4 ^6 W4 G+ v
dwB = (DWORD)( pLight->Ambient.b * 255 );
+ t6 R+ q+ |; K; r( B/ ^* C. U3 ~ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ e- Z: n Q0 R- y+ ]: C; ?0 B
}5 D2 C- V+ f# h6 s, p7 Q
}: e# r, r4 j9 H8 j8 K" ^* Z% Y
else' c9 ]' C9 U( V1 v, a ^" A
{
" r- U# I8 v* s1 ~0 n9 r+ E: { if( pLight )
6 ]2 k0 U$ X' ]6 ` {0 I4 ^( g* D7 l* L4 @5 W8 N9 d
" H3 z( d q9 `& \6 w( u int nHour = 8, nMin = 0;" E# C) k- k! d# Z' w0 O
#ifdef __CLIENT
% }6 z2 i, l M" W, [0 L2 A // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
8 T, ]# {) G) h3 x; ?" D4 _8 S nHour = g_GameTimer.m_nHour;$ t% k! [5 K& r; {5 F) e8 u
nMin = g_GameTimer.m_nMin ;
) M" ]- ?2 T* e #else# W) B' h4 H' K8 a% K4 ~3 F
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
1 T( ]0 Z) }/ ~: y if( m_nLightType == 1 )6 }& k+ R! R! `; @% J3 p
nHour = m_nLightHour;5 T' V- E# G: y
#endif3 P2 \4 Z Y, H5 [
nHour--;
: F+ c v4 w& S( D. ~ if( nHour < 0 ) nHour = 0;
) n% |) j0 E0 }$ A0 P if( nHour > 23 ) nHour = 23;
. `9 }( m- q0 t8 [
4 T& L' B' I; D& T! C# m' o //if( m_bFixedHour ) v& D/ _1 C# K/ o
// nHour = m_nFixedHour, nMin = 0;
0 Z5 k) W# ^" n8 x. a* Y LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ y' a2 p# y& ^2 j1 x% o: j$ ~4 O
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
' G) n; {2 |4 F8 j' M' x
4 w- V' V3 ~* }: R4 Y //m_lightColor = lightColorPrv;
8 ?( x0 r% ~8 \) {; ]* N- p lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
% M4 x9 L5 y& e lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;* G: m5 G% v9 U! d
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' K, v% ^+ Z( ^, T+ N1 T
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
- |7 F# x2 q5 ~ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
, N9 {8 v$ p8 A s& h5 O! H0 C lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;& {. J# w- y8 B1 w
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)! T" P' m* N8 N- L- ^& r. A ^* R6 G
2 ?4 V0 P% O n
// à??μ oˉè*
- V; t2 u, Z2 i; @* C) s pLight->Diffuse.r = lightColorPrv.r1;
) v( C. b" o1 \% q% K I: l pLight->Diffuse.g = lightColorPrv.g1;0 b8 u" s, m* y; N& ^! W1 q; ~
pLight->Diffuse.b = lightColorPrv.b1;+ D- Z" S% o4 Q; r7 n7 E) Z" R% _" P
// oˉè* ??à?
/ I1 R2 T( q0 n! c. R pLight->Specular.r = 1.0f;7 E1 M7 u8 f" ~5 J( s# V' W7 i
pLight->Specular.g = 1.0f;1 V$ ^6 A) c; q. X
pLight->Specular.b = 1.0f;
, A; t: a" B! x! O9 j. H8 ^3 ] // àü?? oˉè* ' {3 i, Z2 \- B: @6 _5 O. s
pLight->Ambient.r = lightColorPrv.r2;
6 v0 K- X) ] S' J$ n0 t2 m y pLight->Ambient.g = lightColorPrv.g2;+ [2 S$ t( x6 d) s! N
pLight->Ambient.b = lightColorPrv.b2;' q" c$ s; \9 ^2 ?2 i# D
2 R( Y7 A4 Z: t8 m8 \
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
% `' o5 P% w* i7 z2 N% g0 { {- W5 M6 W% J2 o- a1 L
pLight->Diffuse.r *= 0.6f;1 c; T" P2 p) o! `
pLight->Diffuse.g *= 0.6f;
7 O6 {9 w6 ^/ M% i1 n4 Z pLight->Diffuse.b *= 0.6f;
F6 K& e# i' H! ~1 S pLight->Ambient.r *= 0.7f;
, ^; C9 I8 v8 F: C+ O; p; X5 M H pLight->Ambient.g *= 0.7f;/ K" ~* b/ \" [: p
pLight->Ambient.b *= 0.7f;
5 t( Y3 X! O. R9 c W3 c }4 y" Z' `+ m0 F: b& N: d
+ L9 z' L/ x2 {( v+ I) T
#if __VER >= 15 // __BS_CHANGING_ENVIR
5 x7 t8 z& e. ]. ]7 r1 Y if( g_pPlayer )
& B- C6 V2 j1 B! G9 N HookUpdateLight( pLight );
# u, J: z+ D' E#endif
* ^! p: d! q0 I- F5 Y8 m memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- ^, h) R0 B' l
, u' O, G; p( ^$ o8 E
#ifdef __YENV
9 x( e5 [# E B0 }$ }! K4 O pLight->Diffuse.r *= 1.1f;
% j/ m$ B/ h9 |# L! z1 C; R2 }6 J" u* k pLight->Diffuse.g *= 1.1f;0 ?0 g( |! j4 o* ]: W- S; N- V
pLight->Diffuse.b *= 1.1f;
7 v- E$ U) X" E( D // oˉè* ??à?
; ?( L$ c2 v; w D; [9 B# ?$ { pLight->Specular.r = 2.0f;
" i, z8 s# P, [- U+ x pLight->Specular.g = 2.0f;
+ U7 U; O4 ?9 \/ Z pLight->Specular.b = 2.0f;
% {8 ?8 X: ~' [ // á?oˉ
: \! G1 i! {) t- G- K pLight->Ambient.r *= 1.0f;) z4 _ P# t4 i, J! A' P! }9 N9 A
pLight->Ambient.g *= 1.0f;% R1 W/ U$ C6 s5 e$ N0 F" ^
pLight->Ambient.b *= 1.0f;# h. N) \2 p; ?9 W
#else //__YENV7 ?( {( Z( n7 a0 L, m
pLight->Diffuse.r *= 1.1f;
) N1 I& h) q3 d+ z6 Z3 } pLight->Diffuse.g *= 1.1f; x* t; y% J h2 T
pLight->Diffuse.b *= 1.1f;; C! A9 s* h8 u% \, v' {
// oˉè* ??à? ( M" H: y p4 d4 D7 N% L: Q. F
pLight->Specular.r = 2.0f;
9 d4 L& }! m1 @# n' s3 t pLight->Specular.g = 2.0f;! `4 g- S2 G, K) }( U' J
pLight->Specular.b = 2.0f;
2 s3 Y+ u E# x9 L // á?oˉ S$ u4 @% m& e
pLight->Ambient.r *= 0.9f;
- h2 K4 k8 Q) K9 B pLight->Ambient.g *= 0.9f;
- x: Z) t$ a; G pLight->Ambient.b *= 0.9f;
, s. B- l% g1 |3 _% C' J#endif //__YENV 2 Y- a0 p- q7 M
8 r: O" y" u; V' |' f. D( G9 A+ O memcpy( &m_light, pLight, sizeof( m_light ) );
- m9 W: J! `# }1 M; W - g2 j' J2 Z8 n4 L1 R: h: U
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
! x! I0 w1 d5 b4 Y* f" A% w3 s D3DXMATRIX matTemp;
$ g3 R* T4 w& }8 [1 v static const float CONS_VAL = 3.1415926f / 180.f;
6 u% [, V" P2 d( D3 @
. N- b6 _6 m) ~( ^9 s3 q; A) [5 A D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);9 T5 i: u* U$ \0 W$ ^
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
3 ^+ T, E# b: B. ` pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
/ Y, E3 ^! \& f9 l pLight->Appear( m_pd3dDevice, TRUE );
+ i& E( _ P/ ?3 `5 ?" Q0 l% ^- W
6 i% ]: D% p% H. H // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% C5 h$ x! @/ V4 Q // D3DXVec3Normalize(&(vecSun),&(vecSun));! Q3 d H+ X- U8 L/ S) J {
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 9 H$ u9 z' T, E$ ?" g
4 e/ a; E) Q- Q+ G2 j DWORD dwR, dwG, dwB; b* U& }2 c8 [, g! w7 {
dwR = (DWORD)( pLight->Ambient.r * 255 );
@4 \! z, X, `! l- `' Q) a8 S dwG = (DWORD)( pLight->Ambient.g * 255 );
0 B6 R" p+ t" Z! | dwB = (DWORD)( pLight->Ambient.b * 255 );% d. s/ Q5 z$ z5 l
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 B/ f w0 W4 C9 i7 n+ m }* t4 Y9 z' a3 P" g
}8 K& g+ w/ A/ x- x1 [
( }6 w- X. M; X( ~% S m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
6 t) E& v0 c1 t0 \7 z 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) );
; O" w3 F+ K! z( x ::SetLight( bLight );' s) c% |7 ?4 j3 O4 z9 w# x
' r, y7 D R' Y. I4 P
// ±ao? ?D?í???ó á¤à? 6 v5 F' t9 y( x0 ]
m_pd3dDevice->SetMaterial( &m_baseMaterial );; M2 q6 O( g* K/ l
! U2 d# ~, g9 S, y. z
#endif // not WORLDSERVER
6 c# S8 b. H ]# V- e}
# @6 J# J. [% }& G# o/ F并更换/ Y# o) h( a A# v0 p- W. Z/ H0 k
Code:
$ l5 a2 M7 |. W* K1 H__FLYFF_INITPAGE_EXT
8 F- Y2 R9 m- k* K* K0 o5 A定义
; W" `! d) k. o- p; ] p7 t6 v1 C' G2 m! g! q' G. e; Z
. H; X y4 R: ?! P. m
! }" X) d) K; R
' _! U' I4 S9 M现在终于删除我的狗屁加速...
( y% R. {- r1 g2 \4 C0 s* h, [5 t4 ~( B
: M7 m% f) j* t2 E
, r: @0 A( Q/ P, M" @7 Y |
|