|
|
食品车:* u7 ~+ k9 W4 @* H; t7 e
尾翼:
. R% b0 `8 }/ s- a" s) g7 F) e: B# v: s7 U( L. M" E, {
代码:
0 O& B8 w0 \6 u I0 e/ OCWndAutoFood::CWndAutoFood()
* p3 Z3 }! y# b% [# }{; z2 z3 o) a" a; k
m_pItemElem = NULL;
5 X' F0 D8 `0 o" u m_pTexture = NULL;; ~& a' ?! ~/ P" u
bStart = FALSE;6 _6 a: {' i" V- c* d: D C
}4 A/ m/ `. i1 N1 D/ d+ V' W, c
& V! i4 d7 C$ N* {! \: C
CWndAutoFood::~CWndAutoFood()
! ? u$ L5 \! F1 V{% m1 d/ F2 Y2 h
AfxMessageBox( "AutoFood ist gestorben " );! R0 y/ [$ Z1 @9 [' G; N
}7 r3 Y; I' s+ P' ], \! \0 R
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )9 T1 r# _* ^, Q- t, V$ o, R
{
4 A% T: l! \1 X* F4 C5 W return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );, l: p% Z9 T& ]
}* ~" A+ D$ k! i: Q' a
$ Q# K% a2 R" r% c1 D5 yBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
. v4 E. ^0 v7 Z1 K _9 x8 L{
) U$ S) H H4 V8 J4 q/ ` LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );' O6 G* M: s- s" V* S4 z
CRect rect = pWndCtrl->rect;! k8 }& a$ ]+ U4 W2 s/ s
if( rect && rect.PtInRect( point ) )6 l3 ]. ^ l) t
{
! o" { a5 J( ?/ v6 o0 G, ^ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );. s9 `5 V) u# U' C; I1 H
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ). B$ Y3 c4 D6 ~4 N
{2 Y+ j7 @ o g. x
if( m_pItemElem )
$ q1 _" W" M! z6 Y {
! d8 d' g) ]8 K5 b6 _# z4 n m_pItemElem = NULL;
$ i; b6 w7 i1 g, X }5 V7 I& D# G y# E' w N2 p
m_pItemElem = pItemElem;" E- W4 [" w: M4 a
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
, a1 ?& ~2 `) d7 {# @6 H& p) H }else{
$ g w8 `1 z) p: s* H SetForbid( TRUE );' |0 k& h( P. k$ J
}
. d. c- Y3 O5 e! F }else{
& L) p: k# {8 H. U8 q; m. R6 Q SetForbid( TRUE );
3 I2 S+ ?( F5 M" X }; U9 @5 E0 P4 B" H* s) R, J L! Y
return TRUE;
1 G2 D4 B! x3 k}6 G( c q5 f' K1 o2 R
' W9 L1 r7 ?* |5 W' RBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )# s3 q' l3 h; j* D+ Y
{5 t2 d$ J9 B5 V' F
switch( nID )
- K0 _" c6 f, V0 H% w! B+ I0 L2 } {$ [, g! e" T; e3 Y4 E: v
case WIDC_BUTTON3:- ~! x* O% p2 Z% D
{. l4 c( s; }4 W: z6 G* d
bStart = TRUE;
4 Q9 Y, T' K" X! C' N2 u break;0 c/ w. G7 ^! T# N
}
) R8 f0 n) }. i& m+ U0 T case WIDC_BUTTON4:
5 M( ~8 ?3 [* M# d8 [ {) q3 [& t. X9 v. Q
bStart = FALSE;' D- e+ q3 s8 `' |% `& F" A
break;
; N( O p; |9 I% c0 }9 u) W8 O6 k }+ i- _: D# R% {: ~% X( e
}
1 Q8 l) }- Q4 q+ M" j return CWndNeuz::OnChildNotify( message, nID, pLResult );
/ [8 t9 i0 f: u) z7 U! J7 ?}
* z& _/ L. K. h. |void CWndAutoFood::OnDraw( C2DRender* p2DRender )3 P7 Z# c( g# i3 s
{6 S2 d% f6 B3 }/ \. X2 M! l+ Q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
/ B& n8 ?, Q5 R' E, o$ _: \- M if( bStart || !m_pItemElem )
8 r- M: l( H( Y& c: a! r {
9 R, O j b" I" Q pBtn->EnableWindow( FALSE );
# [# x4 [4 x/ C4 E/ J8 ~9 H }else, U# B3 Y3 [- L7 q. J! z8 A6 a
pBtn->EnableWindow( TRUE );- s5 J$ y3 C' d8 B* K. M
if( m_pTexture )3 r6 C# H- S9 v- j& M9 e
{5 b$ a7 G$ c3 e) B7 v) }
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
9 C& Y4 [3 U2 m; I( F7 R- z if( wndCtrl && wndCtrl->rect )) p3 o* _$ ^% H, F
{
* ]$ `, r$ e! B. W! N m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );+ a5 T& @& O! ^5 m
}3 r+ M0 T+ b8 n# e. d& q9 g& n
}$ a) k( [% p; s
}. b* }7 C* [. u3 ?' D' U
8 O% O: Q3 s9 x& D
BOOL CWndAutoFood: rocess()
, h, O! Y7 n0 d( M: A+ H{
6 j1 j+ m' o2 y% s( E if( bStart ) K Z! U0 L @2 M1 ]# Y, p. T f8 T
{ R+ n+ Q) }. E% t; j# ?
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ): S2 W6 P5 K& J1 D1 K
{9 ^ C5 ^$ F0 W/ ~" k, y
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 Y# M; x9 a$ C, a0 y g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts ); E( ~; @% w) |/ q) Y/ {
}else{ X$ {& i( |' i3 e" t; a/ l& d
bStart = FALSE;+ \8 c+ k! [9 x
m_pItemElem = NULL;2 m7 @9 f0 h/ W/ z' @* }! X& H% R
}/ O# x0 \2 g1 ~6 x
}" O; U: w% j5 F+ q1 R( s0 t
return TRUE;
) R* F" b/ s3 p: Y; j0 `9 o}
& z4 l+ b1 y1 R
. d6 Y3 x8 M- `" U/ u& Y* e登录视频废话:5 T9 q3 B' _9 I5 L! _! W) S
尾翼:2 D T% B2 p9 |5 h2 f
P- t8 H" L$ A* H- [! P* o6 h
代码:: K0 ?3 w- [8 k
6 Z! f5 m( p# x; A+ D, o6 G# ]5 S0 Bvoid CWorld::SetLight( BOOL bLight )" O) W, g( E$ _8 u% o* ^
durch
9 ^6 X O9 }- i$ ]Code:
$ U2 l. Q. p5 w! X, \! pvoid CWorld::SetLight( BOOL bLight )
/ \, u- u! x- ]5 T7 D) P( t2 w+ o{
. g% f/ f# d5 r //ACE("SetLight %d \n", bLight);$ F# g6 ~/ t% [9 i- f
' K$ F- z, G1 j% X8 ?" L" i) v) x; T
#ifndef __WORLDSERVER : A# ?- T. f; V& Z
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
]) q% A0 D+ p4 M- t8 ?/ S CLight* pLight = NULL;
7 t! O" y, \5 w2 y1 _% N* V q
; O) J8 a# K3 y* | D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
6 I4 c$ f# Y" @- r H1 b1 e* E/ S1 z* O' m; ~
pLight = GetLight( "direction" );
7 _/ p; J! y5 T% |( P
: z1 q/ z. X2 Y, {, f4 f#if __VER >= 15 // __BS_CHANGING_ENVIR# u! |$ k' M& Z5 q3 l: R& }( _8 ~
if( g_pPlayer ){ s5 J$ O$ q% s! T- V8 a* R
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );5 e, K$ j; g' I8 |
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!4 D$ ]* W e7 |, s2 N
{
) m2 L9 q1 m) _0 e5 ~ if( pLight )
6 T1 [' v. w; m8 m( g' g6 ?) J {
+ ]% i/ c2 S0 X4 V$ p# U! b$ Y pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
& B% w1 L- D# Y pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
2 W+ m" l \) ?3 O( J( k* Q pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
# E+ R) x6 T/ [: `8 V8 D5 P
" ^/ ?8 K) h) Y pLight->Specular.r = 2.0f;
# K1 u q6 F. O. D, k1 e4 a pLight->Specular.g = 2.0f;
+ O) x8 V. E# [& `4 C: f' I" v. w pLight->Specular.b = 2.0f;1 R3 _7 g- q5 [' R! v
3 A0 F( |* g- n pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ V* ~8 C) |. X G* m6 N pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];: P# d$ L1 U7 N7 y4 F7 j! i! @
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
4 X! ]+ G! u* y X0 r
: ?$ h. Q7 o* J, ]% D HookUpdateLight( pLight ); * h& @: X( u% Q2 t0 E
2 w6 P L$ \! I' y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 z5 ?/ V9 A2 J0 E. O, @; ?8 ^
" U9 \# F$ e% P. v( O6 |
pLight->Diffuse.r *= 1.2f;$ @6 \! h2 C! S- A! p
pLight->Diffuse.g *= 1.2f;3 g- M. O' J! c' y- o5 z
pLight->Diffuse.b *= 1.2f;
: {% a3 t% D+ W" T: ~6 {5 b- W# f/ {6 Y# @! ^6 K1 ~8 @( ]
pLight->Ambient.r *= 0.8f;
# z9 Y& U# A4 g1 X7 c: W pLight->Ambient.g *= 0.8f;- F: T; }# A; ~. ]
pLight->Ambient.b *= 0.8f;6 C* O' \2 B1 b
- _$ y) v4 h3 r' n {# ]
memcpy( &m_light, pLight, sizeof( m_light ) );
/ B! ^$ P4 D# ]1 O" E3 t- u) [: k1 Z3 p% Q0 K& N( R/ H K
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 ^$ H7 O" x: c- o& }; o; Q
D3DXVec3Normalize(&(vecSun),&(vecSun));8 u% a/ w- A+ U; T: e _2 Q$ ~
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 S& [) t1 T0 R
pLight->Appear( m_pd3dDevice, TRUE );' G8 }6 J/ {7 j. A; r' G I
: P a* m8 v2 q: A% h
DWORD dwR, dwG, dwB;; Z0 |* E' u& R5 z
dwR = (DWORD)( pLight->Ambient.r * 255 );
: b2 n' d4 Y' X. N. U dwG = (DWORD)( pLight->Ambient.g * 255 );
2 a- w! n; ?8 m( B8 t dwB = (DWORD)( pLight->Ambient.b * 255 );
, }: P3 T2 @4 B5 q- L) H2 H dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );/ D% o5 s6 ?5 u; U" ~
}: w$ b6 N( _( c1 a( b7 g
}
) Q. ~+ [. J7 R1 Y$ a }* r% A2 ?& P) z1 ~
else
; Q0 m* h) {$ m- i#endif 0 K* P: D6 Q V+ u1 G: H
& E/ ]9 _* V6 _ M: U3 B if( m_bIsIndoor )# B/ `6 c8 q" a% s! G- M7 `
{
6 j' n2 p: E+ N3 g+ J6 D if( pLight )$ [! m4 n7 a- ~: L( h& p4 j
{ ; X4 d; Z' ]3 z, i5 E
// à??μ oˉè* 8 O) A3 P0 L1 N( V0 O6 \
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
0 r% i5 x6 K1 b9 s; ]+ B! d8 ] pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
* V, c5 B) x7 ~* L pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
9 B: ]- z6 y; X- V% K" A. X% X7 ]! e* n/ `" ]* y
// oˉè* ??à? # g0 h( a+ ^1 T: i7 q& i- x' Q2 T
pLight->Specular.r = 1.0f;
# m+ W' ]' Y# b& U pLight->Specular.g = 1.0f;
# u2 g0 i4 i5 {2 \* P0 v pLight->Specular.b = 1.0f;
8 s1 O* Y% T' b0 q // àü?? oˉè* 5 H J" q$ P* E5 |' V1 [5 R
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;9 r: y; _1 ^0 {! d5 Z; H
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;6 h% T" x/ O2 u" z/ z
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
6 _- @+ o0 o( |4 w
! j& j; s2 a' V1 }- X if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
; V# ^. ]5 o& @2 ?7 y. \ {
" J/ c9 n8 T) X' G, ^5 E pLight->Diffuse.r *= 0.6f;
9 ]6 q+ |- }' C! W# S pLight->Diffuse.g *= 0.6f;
# Q C3 U' g/ t" G pLight->Diffuse.b *= 0.6f;5 B P: }2 ?6 s# r8 j
pLight->Ambient.r *= 0.7f;' B/ B% X5 r/ E5 L6 |- K/ R
pLight->Ambient.g *= 0.7f;3 t" D, p7 f; ?
pLight->Ambient.b *= 0.7f;# w9 t: O9 Y" h4 ^6 [4 w3 Y
}7 i- E, q8 h2 B: K6 N6 w
( ?: U0 I+ n+ H, X- Y8 h9 W3 m
#if __VER >= 15 // __BS_CHANGING_ENVIR
5 N$ @# T/ y8 |( w if( g_pPlayer )$ c8 ?' d; P8 {- I! F2 C
HookUpdateLight( pLight );) s' g3 @4 k7 f" e
#endif( F) A, d4 J# d1 d8 |
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* M2 c6 w8 Y0 K: r) q: _
% D6 |3 V( C4 e. p2 a6 O pLight->Diffuse.r += 0.1f;
; X: F$ ~) c4 x. s pLight->Diffuse.g += 0.1f;% ^/ v7 [# C0 d. }( W; G: F
pLight->Diffuse.b += 0.1f;* f% n4 Y2 v+ `- }, e
// oˉè* ??à?
$ e7 t- z9 r) M. u3 p% g+ g pLight->Specular.r = 2.0f;
6 c( d7 X7 C8 q! Q! o) A pLight->Specular.g = 2.0f;
/ V* [5 F5 t8 a2 ]! a5 _ pLight->Specular.b = 2.0f;
( u' q% X0 n5 w6 D- t // á?oˉ ! w4 ~( A4 a$ I% E) v# Z. X* t) ^
pLight->Ambient.r *= 0.9f;
. {3 l. j$ y* y6 I( Q pLight->Ambient.g *= 0.9f;
' o8 \* p7 Y8 Q7 [7 S, j pLight->Ambient.b *= 0.9f;
$ E4 x( T9 ]1 u6 j G" x- ^. j, n4 Z! ~/ \! G
memcpy( &m_light, pLight, sizeof( m_light ) );& D" s+ w( J* [$ F! r
, B( Q1 r6 D3 f( k/ K! x# F7 u
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );" b: Y6 o/ u9 x. ^
pLight->Appear( m_pd3dDevice, TRUE );
9 m' `- N* l, T
! [2 h3 p$ _% X* S DWORD dwR, dwG, dwB;4 p5 i, I4 I$ u; a/ c7 w
dwR = (DWORD)( pLight->Ambient.r * 255 );
# |7 v$ a8 i# ~$ y0 b dwG = (DWORD)( pLight->Ambient.g * 255 );
# V3 A& L3 R! G) E- Z6 R dwB = (DWORD)( pLight->Ambient.b * 255 );
; F6 e4 d- T# U dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 F- h4 x% d* c9 h9 ~6 o4 L }+ d1 _ i" E( M8 }- J* \0 u+ s/ i/ |
}
% s/ C; _6 L1 X/ _+ X3 V! M else
9 g- p a! j2 X, }3 f9 _" [9 t1 T2 D {! C& r4 J$ S; i/ K
if( pLight )6 @3 l$ o, V) |4 G
{7 ?* p9 ?' j w" X; g% `. C
/ B7 z( k& x& N; \# D
int nHour = 8, nMin = 0;
$ e g. ]! V; A4 @& ]2 K #ifdef __CLIENT
0 r1 D T: L2 F0 ?: L0 K# p // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
4 H/ `5 A' w" Z9 ]. {4 Z( k5 w3 W nHour = g_GameTimer.m_nHour;, A$ [. d! R; w) l
nMin = g_GameTimer.m_nMin ;' v6 o4 |& a; g; d/ G5 O$ K
#else
0 Z, c1 ^( P/ } y% ]2 q" x // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.8 E( L! N6 z8 z* g8 D& N4 U1 I! f
if( m_nLightType == 1 )
$ Y9 G, m. E1 p2 B; x# R/ X p nHour = m_nLightHour;1 \2 }5 e& t$ r: A
#endif C1 M! ?, n3 J1 a* Z" ?
nHour--;
$ L8 O) {9 a( z: H if( nHour < 0 ) nHour = 0;' ~" v9 O% k: ]
if( nHour > 23 ) nHour = 23;( a; u! L! g s) {( j
1 t3 u" \# C" q p1 y //if( m_bFixedHour )
" R/ n% m! z. B* U // nHour = m_nFixedHour, nMin = 0;
9 _6 w) z# ?( a% w! V# j1 z LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
) N) y+ k: _1 b* d/ J4 j9 G4 @7 z LIGHTCOLOR lightColor = m_k24Light[ nHour ];
5 b1 \9 N+ N7 P, z( _( ^0 x3 q
- m/ u0 |% ^! N9 O3 k q/ O //m_lightColor = lightColorPrv;! g8 L' J4 [( Y" x. l1 N
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
3 a8 t( z4 v0 L) J/ J" z, O7 D% K lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;8 t) Q7 g* W" K4 O; K
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
v* ?+ h$ Z, _- k lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;6 m3 }& f8 @) t0 |' a$ B. L+ L2 Z1 {
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;. }, Y8 C$ Q b) X' C% L
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;0 Y# {4 Z& \5 j
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
# P: u+ D3 e2 A
! M/ n5 ^2 W5 d2 h // à??μ oˉè*
; N! Q# m8 F# ? pLight->Diffuse.r = lightColorPrv.r1;. y+ y! {# }2 _7 V
pLight->Diffuse.g = lightColorPrv.g1;
7 \- \3 R% a, ]/ V) q pLight->Diffuse.b = lightColorPrv.b1;
, p" I2 O4 E. G; g/ f% Q // oˉè* ??à?
% y" o" s- ` q: b" t pLight->Specular.r = 1.0f;
3 R/ P x# v& {% O pLight->Specular.g = 1.0f;
: F' K# P( W) ^7 [; n pLight->Specular.b = 1.0f;
6 q/ J6 i: U# r! x$ j2 f$ b6 ?8 n // àü?? oˉè* 7 \! R$ [6 h# ~
pLight->Ambient.r = lightColorPrv.r2;
6 i2 F2 Z. G6 ? pLight->Ambient.g = lightColorPrv.g2; R% h! t: Y0 q" u2 {6 a
pLight->Ambient.b = lightColorPrv.b2;0 z. Q* u( L" g) ~+ M, m
! \" u7 p9 U% B8 C& y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; h! u( o/ T, C/ `3 ~& g4 R1 ?
{
$ t8 ^8 w) ~- [" R- v pLight->Diffuse.r *= 0.6f;
+ S! ?# f: `" o. b( z# s- D pLight->Diffuse.g *= 0.6f;% R+ O+ q% [& q2 x9 G
pLight->Diffuse.b *= 0.6f;4 k7 B/ j. {( T; F
pLight->Ambient.r *= 0.7f;; j, {2 Y, l4 K0 t' ?9 k! C
pLight->Ambient.g *= 0.7f;* C0 S2 b: J1 Z7 j# [
pLight->Ambient.b *= 0.7f;
Y6 k6 ]" w! o4 y. X% I }; e5 J9 e: q4 ]
, B$ r- ^* O% Y& N; A* E+ [5 e( f
#if __VER >= 15 // __BS_CHANGING_ENVIR
: e% B+ F. y% Q7 Q( n2 g5 c& C! l if( g_pPlayer ), A& t/ d1 F: T. ]8 Q& l' q
HookUpdateLight( pLight ); 2 I" F3 o( Z' m1 {3 |
#endif6 q5 `* V" ]; [7 Q0 m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ E# K' Q% z8 }% j: u( d
6 ]/ |" W6 w( v, _4 Z7 o: k/ V2 G2 b#ifdef __YENV; S7 E$ I8 l& g
pLight->Diffuse.r *= 1.1f;
1 B4 T: H+ c( d: y) b; e pLight->Diffuse.g *= 1.1f;
* j% Z. E/ h: u$ z6 ^2 L pLight->Diffuse.b *= 1.1f;4 U8 ]/ U/ R+ t3 q
// oˉè* ??à?
y4 y" v: M+ T" P. u pLight->Specular.r = 2.0f;- y4 n2 B+ h( X/ K) ~, \$ s( r
pLight->Specular.g = 2.0f;, R8 b' L' O$ [, d
pLight->Specular.b = 2.0f;3 }" j6 T$ Q3 G& F* _
// á?oˉ " P- {4 N2 D t; m: c- \. p
pLight->Ambient.r *= 1.0f;' F' K9 Q8 J$ B# M- E+ ^
pLight->Ambient.g *= 1.0f;
' L8 l' m+ @% ?/ _% g pLight->Ambient.b *= 1.0f;
- ]1 E/ \' N3 e" w6 X1 m. s#else //__YENV
& Z* D6 L6 N+ V( o- a4 p; i pLight->Diffuse.r *= 1.1f;
. E8 W3 d+ s" |" P2 x" { pLight->Diffuse.g *= 1.1f;
- J* z# T& c! U; D pLight->Diffuse.b *= 1.1f;
, q/ R. k; a, P( j // oˉè* ??à?
: F5 X @+ n" ^ pLight->Specular.r = 2.0f;
& `5 {( G! k8 z. O7 X9 P pLight->Specular.g = 2.0f;
" H' C) n% J; C& E3 h- @ pLight->Specular.b = 2.0f;
4 l- y" p0 F8 D) L' } // á?oˉ ; ?7 n4 {3 v5 l% {" d3 s
pLight->Ambient.r *= 0.9f;
1 k+ ]2 m4 B7 s$ V" G8 J5 _2 I pLight->Ambient.g *= 0.9f;
4 H3 [9 B) p6 j" u! R. Y0 M% ? pLight->Ambient.b *= 0.9f;5 e: d1 X, V+ m+ w5 X( ]& G
#endif //__YENV ( E z" x+ b+ w6 {
6 o- U& O# y8 e' T& H, {3 B
memcpy( &m_light, pLight, sizeof( m_light ) );
& T1 c- p9 n! n. T- G
h/ T; O; b+ f; { D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
4 L4 Y; w9 U* ^; c2 l: j D3DXMATRIX matTemp;
9 L( C2 [: ^7 v' {( d9 W static const float CONS_VAL = 3.1415926f / 180.f;$ D5 m2 N3 o% _& V' H
' S" K- O( B q2 C, J- r D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
2 G9 I1 p1 L6 o8 g8 x: [+ X$ Z9 Q D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
+ q( s2 U! o, `' u, m pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - m1 c2 K- S n5 J- o
pLight->Appear( m_pd3dDevice, TRUE );9 q; t% ]1 ^# T. X$ t4 A
# f( O, | k9 D3 V9 \8 n, ?
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);/ `- x4 d* A# W, h
// D3DXVec3Normalize(&(vecSun),&(vecSun));
- V+ F q6 u+ F# z5 i) w6 L4 S. M // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 b4 G+ P. l6 A% D/ v/ l( t
7 F5 O" V' x0 H# B DWORD dwR, dwG, dwB;
8 k P/ S. P3 ]: E# Z dwR = (DWORD)( pLight->Ambient.r * 255 );& A p+ O9 c7 u, y( ]9 b
dwG = (DWORD)( pLight->Ambient.g * 255 );
, Z3 F* {" v4 p* a7 X8 W dwB = (DWORD)( pLight->Ambient.b * 255 );! U; B, o/ \1 {: R
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); # `0 H: H4 i$ a' e% ?: S' A5 y. ]
}
! E0 x8 w6 [% _6 C' N* W }
3 L7 R9 _2 O" H. r7 M8 e) K. b% z, S3 x) W% j, o; r
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );" h( r$ [+ M Z- j4 w
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) );5 O5 e) d* a) B5 H+ y+ n. i
::SetLight( bLight );' h$ l2 r/ L* ?# C8 x
% a, q# b2 N7 f" X // ±ao? ?D?í???ó á¤à? 1 A% h/ p* c' R* l
m_pd3dDevice->SetMaterial( &m_baseMaterial );
6 [: ^( a8 K1 `, N! Y* V" e
- C% I* m. n2 V+ z; T& j) [- h#endif // not WORLDSERVER
! G7 V' M! s# Y# k7 C' z}
# u/ I/ ^& W8 S, B' p A7 `并更换
9 `( P2 }$ a$ F* k1 {Code:( l0 X, l8 ~% i% R0 x
__FLYFF_INITPAGE_EXT+ w7 v( _5 r; g9 X& D3 A
定义& ]4 |# N0 F4 f7 p% y; [
" R9 T! q. ]9 N" \# \
. K# V; O2 d# R$ e3 W! Q0 |+ [ U
0 N2 R4 Z0 r; w1 T
3 V# s/ z+ ~1 [- x/ X现在终于删除我的狗屁加速...
2 ]1 ^- w* }! p8 H& t' y
, {! i' \& a) X9 {: R5 ?. z+ b3 `+ ?
% H: F: ]+ T% b; w9 }% f |
|