|
|
食品车:- c2 i1 d( @# o" Q) D' Q
尾翼:
1 l8 H+ \5 M2 w4 L+ V' J% T$ s3 _3 `6 ~5 z8 B
代码:
2 X7 W! g- k% j6 H1 hCWndAutoFood::CWndAutoFood()) w. q8 m$ Y$ z2 r, k5 _
{
" N- j3 S3 u" m m_pItemElem = NULL;
+ D3 `% g9 U. r: K! l6 } m_pTexture = NULL;
+ y' H' y* }% K7 T/ V2 w bStart = FALSE;; {6 O6 m' Z* W, j# R- z: y
}
7 _3 x5 u7 V$ E; R) F; ~
+ V6 f2 G5 ^+ n' HCWndAutoFood::~CWndAutoFood()
& x1 v' o* _- Q+ G% v% s( F$ x{) Q8 [6 W2 F1 F
AfxMessageBox( "AutoFood ist gestorben " );- a# `! T, {3 B# t
}5 B( `) k& v# P/ g
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
3 t2 r0 {3 d# x! K' T: f' o' a{6 w6 t3 X O8 r* z* b% \
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );2 S5 e- a9 V3 `: m/ V6 Q
}
; O, V" d1 F- ^, q( I N2 c8 V7 M
/ a$ H8 R3 h5 m$ [7 @3 q8 O6 u6 w' b sBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )' I* |8 E2 T" q6 A
{
/ e+ L% P T- _$ ?! H LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 {; j# p; e% a! j; Q2 L CRect rect = pWndCtrl->rect;" C1 p/ L+ j8 E) s% X+ i
if( rect && rect.PtInRect( point ) )
6 u: m X! M S" {# B, y1 R- A {
" o" Y8 T1 z* b" G! t, c' ] CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
2 [6 Z0 \9 `) M; [; H if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ) h, O1 H9 y) b
{
0 `- Y( e* z( w# A% {5 F p8 I9 G$ x if( m_pItemElem )
6 Z" b6 ~! |( I% x" w, J {
# ^6 I- U0 r7 ^3 M, }5 V m_pItemElem = NULL;$ g+ h5 k5 p$ r2 c7 E" r5 J
}
. @0 e. R2 E- `5 Y. P! P o: g m_pItemElem = pItemElem;# S1 f; X* o$ Y+ {
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
F5 |( A/ i8 L }else{. N; h- o8 C; A7 W$ r; ^3 C
SetForbid( TRUE );( J& a# v0 w9 V4 P# M" C" f, m+ V- @
}9 t8 X: A2 {! d" C: t
}else{
( U: l" d- ~& a& w1 s) _0 F SetForbid( TRUE );
! g+ C+ ] C9 y9 B$ N' Y( p( H& T }/ [2 r& d2 }/ O P% A/ v% z
return TRUE;+ o1 F$ B% c, f8 ?
}
+ R0 ^( ?9 I3 @
6 u8 ~6 S# I$ B% R, [9 Q9 T- K) WBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
3 S- s0 K1 z* u! `{4 O9 w2 W' Z: T! f0 `' {* t
switch( nID )
/ x' J( P: V6 K2 S4 m% u. U {
2 P+ h- f; w' x% A: u case WIDC_BUTTON3:
4 I3 B2 @4 G9 O$ ~* Y5 b4 W/ q {
. x7 ]" ], N Z$ e0 K4 S bStart = TRUE;
# l0 Q# U: L+ i9 z& D/ y8 f break;
: O4 t8 R! J$ ?0 d }
; Z* ^ a5 l' C case WIDC_BUTTON4:' m N9 ~7 d5 x) W5 V
{( r9 H9 A1 p5 L" ]; Y" g
bStart = FALSE;9 {" _+ U* H; j! l6 e
break;
/ g: _- J- M& r4 u: ^% o }
( @/ ?. ]' d2 f' p3 |0 B }4 n1 N$ B# m; W0 _8 m
return CWndNeuz::OnChildNotify( message, nID, pLResult );
/ W; v) ]( h& x$ m' `: M}
1 R! h+ ?5 X+ r% K% y, \void CWndAutoFood::OnDraw( C2DRender* p2DRender )
& n- \% Q/ M" a{
2 n5 C, i X0 q CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );" m- ` @% ]: M- ]' n2 b) x. J, W- e
if( bStart || !m_pItemElem )
( D' |$ Z. T$ K8 M {
4 P5 D0 W5 G# P9 J2 F pBtn->EnableWindow( FALSE );2 `4 F- a$ e) Z0 ~1 q/ @1 c
}else
1 g& v [6 @+ b( H pBtn->EnableWindow( TRUE );: W! f9 p# M1 o, u9 B
if( m_pTexture )+ b2 u; J, o: C' r$ P) L
{
; t9 X8 O0 e, `3 l LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 [: R4 A: M+ W! q! E: D if( wndCtrl && wndCtrl->rect )
" I4 ~0 x+ ]/ |8 G {, {% I" m: ~5 j4 c
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
& u+ J) {: H8 }1 a }( G7 w6 W& k8 n+ G- G7 p0 Y. k; r. g( c
}' d, `. {4 g+ V1 ~
}4 _$ u4 H' _# \! {9 d& ~
- _2 a" F, U3 N" Z8 \
BOOL CWndAutoFood: rocess()6 r2 {3 q& _1 Z
{8 S0 F! I5 n5 v7 v* w; k% ~' A
if( bStart )/ y+ w8 B) p9 D# b6 K
{. b0 n1 {( V; F$ D
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
& d/ L0 X6 O' L/ I8 z5 i {
( D& U/ {' P4 N, {6 A/ I if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
- W+ t! P' M$ B3 I& L g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );* ]8 `' E8 g j+ ?( Z
}else{
. o* z6 ^8 p4 k bStart = FALSE;
6 I, Z, P* E/ H* i h m_pItemElem = NULL;
4 E: V N7 D1 T5 @0 m& N0 c* N7 D3 t }
. c7 U4 [7 s. A `' W9 ^# Q; f }; p0 Z* u6 E0 d5 l, _
return TRUE;6 ?9 {3 s% d: s: L- Z/ Z
}8 N4 m) U' ^& |
D8 v" B7 H8 b/ |3 F登录视频废话:
$ F" @' V+ v3 X. O+ L尾翼:* b2 _2 z' X" w& P
( w( j# D" z4 u1 K9 ?
代码:5 B9 c- ]0 h5 y4 c. D x
) n* I B4 U; z( E
void CWorld::SetLight( BOOL bLight ) E, F4 ]; A g
durch4 m& G3 e7 O* X4 v& R3 s
Code:
- r3 x$ @6 b1 \- }2 } [void CWorld::SetLight( BOOL bLight )
; d' E6 o9 _ e& w* f{
5 E; ]4 u) \7 y9 |! G" t% F //ACE("SetLight %d \n", bLight);
, S/ p0 P% B2 i4 g
0 X3 f& ~+ ?2 C, V! t) Y$ |9 G4 j#ifndef __WORLDSERVER 4 u0 f4 B" H- q! c+ d, J
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);0 g3 q$ R$ K3 ~* M' \/ F' v
CLight* pLight = NULL;/ U6 P$ R# f* ~' q% I% c
/ K, E1 E' |& `7 t; B$ }1 u$ y D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );4 A" R$ J; [) F, f. b) T1 b
4 X8 i. ]4 j9 G$ |3 m
pLight = GetLight( "direction" );9 @4 U3 j; U u) z0 M
: C& w: b1 T( n+ n* Z#if __VER >= 15 // __BS_CHANGING_ENVIR- G/ ~; P! z! F2 g5 H
if( g_pPlayer ){+ F. s9 y3 g7 ?$ {. d6 s) t
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
, ^% A; J, s5 j, w: x5 ` if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
; N: t7 U# ~4 f" t# Y {
9 @) H, ]' |- R3 l1 Q3 y0 r if( pLight )
- F* c1 @) o, n% T5 r8 R { {7 i* W# Y0 ?
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];% S0 @5 X3 M$ f% Y7 N+ @
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];2 ^/ N' L9 M" \& a# c& Y
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
) U! B$ L, X4 I* ~! e
$ v" R: d3 `+ U# @+ I8 G pLight->Specular.r = 2.0f;
( X7 K, X% b: c+ k: M pLight->Specular.g = 2.0f;
$ r1 G& o) ?; p4 Q: A% F pLight->Specular.b = 2.0f;
! d( n/ f* ?& }# Q4 S/ Z1 m8 B1 J m* o2 Y5 G4 t; J
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];( s& i! N% D! h+ u; S t
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
/ I- c4 L4 u' U" P pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ]; }+ \+ X y8 ]
8 M! k+ ^# n; M% X8 K HookUpdateLight( pLight ); $ _1 }( ?, \/ t& g1 P- v- O0 p0 c
- _) U, k) E/ J3 m/ C! Y+ C memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 X/ Y2 P6 w w9 M) U
- t! S3 | a, O3 Q2 i% ? pLight->Diffuse.r *= 1.2f;3 \1 h4 t( q P% q
pLight->Diffuse.g *= 1.2f;% I2 c& X( C1 b; G0 S
pLight->Diffuse.b *= 1.2f;+ s6 y8 g3 j" r& _' u' z
+ p9 o, n5 N, N' Q+ Z/ n+ I9 } pLight->Ambient.r *= 0.8f;2 s3 }/ O; @* Y u4 ~4 M
pLight->Ambient.g *= 0.8f;) Y; e2 T* [' [' R
pLight->Ambient.b *= 0.8f;. M) s8 @# U G u# u
7 ^+ M$ e4 |1 {' Z5 L9 x memcpy( &m_light, pLight, sizeof( m_light ) );8 ?! Z! R$ j3 h
+ J. s4 c) V& L- b4 N+ Q h D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ k: i, c5 S& \8 ^
D3DXVec3Normalize(&(vecSun),&(vecSun));+ @4 X4 q- C) j0 V$ L
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' e# i) l1 ?# `4 |8 ]- c) z pLight->Appear( m_pd3dDevice, TRUE );
( ^- e3 o1 s# W0 i1 } / q3 }% S7 O) C6 u
DWORD dwR, dwG, dwB;2 Q g4 O8 V# K- W9 Q- r) G6 T
dwR = (DWORD)( pLight->Ambient.r * 255 );/ G/ j4 O+ w: R
dwG = (DWORD)( pLight->Ambient.g * 255 );
5 E8 ~- | o+ A V dwB = (DWORD)( pLight->Ambient.b * 255 );! p+ H. J3 x f: q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- E" G' g( m1 d9 J0 A% K
}- [8 b, q9 a) z h: A) `& a8 O
}
$ ~! _4 I: y9 D+ C4 B( D }- d2 Z& w" u7 j" l, L
else/ e) [. v. {+ m. s$ z
#endif
. i7 a5 @; b. n
$ |9 D* P: l6 M5 V9 [, a j, c if( m_bIsIndoor )
; M$ f+ U$ U- f, |, ` {
5 F( c$ @8 z$ m& X% z4 k. ~ if( pLight )) k3 y) J+ D- K# h ]5 v
{ / i4 u- a" t" o( [/ l: R7 ~* {4 t, X
// à??μ oˉè* 9 @. t/ u2 I8 j$ W4 Z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
5 F" S3 W) \ }( T7 t. c, F! Z pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
8 C, X/ G- C; E& c0 r" ?4 ? pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;$ ^: o: Q! M7 ~8 R" E
" U+ a+ c$ R7 ^1 W1 e' C7 t // oˉè* ??à?
0 C- ]. P7 m$ e. J- D pLight->Specular.r = 1.0f;
- J8 B! I( ]: _5 [$ K- |7 J9 F- E% W pLight->Specular.g = 1.0f;, G) y6 N+ s6 |8 c
pLight->Specular.b = 1.0f;
4 `! w. N# X+ Q. E // àü?? oˉè* + l! [* w% R% w6 q
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
: o: o+ F+ o+ U/ Z5 V* \( k4 w pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ a6 Z* ]4 }$ V; _ E6 L. [, `
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
; c5 N7 g% H2 o2 N; h: N8 ?* g& J+ B* Z+ C U
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.: Q: Y% u& x0 i7 M1 r; `7 M3 t
{, S. o: V# m# n# f/ n7 S0 r
pLight->Diffuse.r *= 0.6f;
( l3 z# @7 W( b! B' ~ pLight->Diffuse.g *= 0.6f;
$ H- |8 t3 M9 w0 R% p5 K0 M pLight->Diffuse.b *= 0.6f;. G" C8 S, b) N8 C# M6 R7 C) }9 O4 I
pLight->Ambient.r *= 0.7f;
2 T. t6 a2 T( a! v3 d pLight->Ambient.g *= 0.7f;8 u+ a0 ?/ Z3 K
pLight->Ambient.b *= 0.7f;' U! r* k/ j- h1 s; _3 J
}! @4 i. D3 Q7 q# | C- S8 R
9 A U# p" o: d- L+ ~#if __VER >= 15 // __BS_CHANGING_ENVIR
5 o" u9 _" k9 Z3 B6 l; a if( g_pPlayer )% l7 l' k: @; O7 Z
HookUpdateLight( pLight );
( i% `0 }" E1 a z/ f, {; I) Y#endif }1 S' w( x: k
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 K% c0 P7 h8 {. X6 L4 o4 k4 ?
2 d6 v2 n6 D T$ G0 Y+ R3 H
pLight->Diffuse.r += 0.1f;
! |/ E# F, S5 d; B; d5 b1 f9 W pLight->Diffuse.g += 0.1f;, q% g3 X' f- o+ J. ~+ e) B
pLight->Diffuse.b += 0.1f;0 A V6 i! T5 A- x1 u Z
// oˉè* ??à?
7 v! \7 v% [: Z; \ G& R pLight->Specular.r = 2.0f;
+ }" Z' ~! h& V2 p pLight->Specular.g = 2.0f;
8 G, V: L# R H5 ^. w" _* K% M pLight->Specular.b = 2.0f;' ?" J9 K. X: ~$ Q0 G
// á?oˉ
% j$ b: `% M( Z1 D' p1 e pLight->Ambient.r *= 0.9f;8 @5 ]" A: j" b Z! y! C. x
pLight->Ambient.g *= 0.9f;
5 \! i" [5 m- K) \8 P8 { pLight->Ambient.b *= 0.9f;
; m/ I/ n' H. k# |$ D0 J+ c$ X& o+ N' `% H
memcpy( &m_light, pLight, sizeof( m_light ) );
5 z: C! N& ]0 \9 C' b ! R. V$ [+ d! v$ S
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );8 j4 e) g% N4 F1 p" Y" {: t; k
pLight->Appear( m_pd3dDevice, TRUE );6 G% G( P) e3 m: C& ?& R7 I/ @
0 d- w& t, G( J2 H) l8 _ DWORD dwR, dwG, dwB;
/ i. k+ ^ B% K4 Z# S% R. `2 J2 Z3 ^# [ dwR = (DWORD)( pLight->Ambient.r * 255 );
( {- }2 w4 t9 x" O/ T# N G dwG = (DWORD)( pLight->Ambient.g * 255 );0 K! I- h0 L1 j' }' p! g, r! M% s
dwB = (DWORD)( pLight->Ambient.b * 255 );
, w- d/ B4 H; Y) r7 y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) z' @ v# L4 a% f }
- l" C+ k0 A" Q: k6 i" N } x, K" p: w8 x
else* o* F, g% W; B- W* i8 R" t8 l7 Z* T
{
# ]; B4 |1 V( B; \ q+ A r if( pLight )) x. h$ N z/ a7 I' W6 ~0 g
{
^ V, X. O i& s, T5 S
( Z, B- Q) d: i% G" M int nHour = 8, nMin = 0;
# H1 p4 O+ w4 C% G# @ #ifdef __CLIENT
& d+ w d4 T) N* o3 S7 |0 ~ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. & _1 ?) K" Z0 u3 V. b
nHour = g_GameTimer.m_nHour;2 t+ t$ j" |+ z: r
nMin = g_GameTimer.m_nMin ;
5 O. a$ _/ c, w* O #else& j- }% Z* _& T
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
+ L- m) p* o% C; X/ s if( m_nLightType == 1 )
2 M0 s4 D i: u4 Q! ?. x& [ nHour = m_nLightHour;9 n, v7 [- t7 C5 y$ a' q. {
#endif
- K7 _( J }/ i: e: |8 S9 ?2 A nHour--;
9 R: ~/ z0 o/ m' y8 a) Z if( nHour < 0 ) nHour = 0;1 D6 D# r# \ B, J
if( nHour > 23 ) nHour = 23;6 g* v5 ^. a; E8 D. O1 f& p
3 ?9 i5 X& R0 Z //if( m_bFixedHour )
9 [; k" L+ H$ a; L9 S // nHour = m_nFixedHour, nMin = 0;
( d2 |( _3 g, y) \ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];! i0 c5 Q8 |: U2 |& I r+ Y8 E
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
, p3 X# G& x( b! [. Q+ @( j; \
! f& e% t# {' M G; l //m_lightColor = lightColorPrv;" l Q5 K0 R7 e [7 y6 _5 c
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
; s* e! M6 J) U6 F1 d$ e" s lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;6 g2 j K0 F$ }" V, |) R
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;0 n) k& W: s9 P0 b' Q& Y
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 j3 r3 Q" e/ R1 H, H lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;) |* \. \* `0 J! ~6 L
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
; |9 t6 L' e X* V // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
( r/ R7 l& L& u7 E3 R: r7 [9 n' F
5 N% N/ Q$ N0 U( }+ T" {+ p, K // à??μ oˉè*
& }$ I# S* ]8 r& T pLight->Diffuse.r = lightColorPrv.r1;6 [6 ?5 \# ] I* g7 p4 f8 [3 k
pLight->Diffuse.g = lightColorPrv.g1;
# e4 q- e1 D* f6 a2 ?, W pLight->Diffuse.b = lightColorPrv.b1;9 S0 M1 M9 Z9 G' u& {8 J
// oˉè* ??à?
0 x+ |# J* b- P1 J! U% \ pLight->Specular.r = 1.0f;
2 J( K5 t7 l. M2 K5 G pLight->Specular.g = 1.0f;! f1 ~8 X, b. {3 c0 v7 p" n% x
pLight->Specular.b = 1.0f;
$ d7 e/ W$ F: K) H // àü?? oˉè* . i7 W) B! }0 R: v
pLight->Ambient.r = lightColorPrv.r2;
j" N6 [4 D2 v0 e& q4 ^. V pLight->Ambient.g = lightColorPrv.g2;
2 P0 H. q6 k6 w% g, e* a pLight->Ambient.b = lightColorPrv.b2;
/ H8 J( I# Z" o) H; p; \+ q. @6 C: Y! M U
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; b6 \3 t# W5 t$ w
{- R2 I8 D/ B$ K9 z9 R
pLight->Diffuse.r *= 0.6f;: |9 X. e; X/ c
pLight->Diffuse.g *= 0.6f;
0 N% {4 L& A0 ~ pLight->Diffuse.b *= 0.6f;9 D. ] J. y0 `6 E
pLight->Ambient.r *= 0.7f;
5 r3 ?7 u+ |; H$ R; ^ pLight->Ambient.g *= 0.7f;
1 q& \7 B7 _& m pLight->Ambient.b *= 0.7f;
+ n0 v9 @, o* ?* [0 `+ Y$ b }/ ^& {6 Q# k% X$ o2 o' W5 u6 l; x# [5 n
; i" p/ G! x; s* E, ^; t z% _
#if __VER >= 15 // __BS_CHANGING_ENVIR
' k' h+ H+ O/ ^2 j# U if( g_pPlayer )/ r8 q, t2 g/ m- J
HookUpdateLight( pLight ); : a) b, ]8 e9 W w% W. L
#endif4 w' l" q& n% o/ {
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! ^, p0 M9 |4 o+ a) K0 Z1 k" b/ t
) S9 Z8 [" u Q+ B8 S
#ifdef __YENV) A' Y/ r/ q- q9 C+ g
pLight->Diffuse.r *= 1.1f;
; m- x* ^+ p$ v9 }& @' ~ pLight->Diffuse.g *= 1.1f;
2 g9 y7 |+ {- |8 T1 d1 N pLight->Diffuse.b *= 1.1f;
) X9 l9 w$ A3 R& T/ H* I& V+ [' { // oˉè* ??à?
, r8 b5 ?0 Z; p; ?! ]' ?; |! z pLight->Specular.r = 2.0f;
- r* Y- a, v v pLight->Specular.g = 2.0f;
. F3 I- N3 L, _4 z: G9 r V; S pLight->Specular.b = 2.0f;
% K1 l1 u+ Z: w: d% }: h // á?oˉ ' r3 Q0 R& Z: q; K3 S0 }
pLight->Ambient.r *= 1.0f; _% B2 b% J k7 P- b7 Y5 z
pLight->Ambient.g *= 1.0f;! Q& Y' @+ Q, D. e
pLight->Ambient.b *= 1.0f;
+ P2 B Y4 C2 _6 l, [1 i% N" S#else //__YENV
$ t0 M$ K8 g0 L5 l, w# c pLight->Diffuse.r *= 1.1f;
0 V6 [) ]! z" F" e' K1 Y pLight->Diffuse.g *= 1.1f;
9 z2 @) d. y6 D pLight->Diffuse.b *= 1.1f;
8 i/ B! k/ P# f, v7 h5 x1 D! M( Q5 U // oˉè* ??à? " o- k/ i) [* q: W8 B
pLight->Specular.r = 2.0f;
& [8 |' D6 w4 M! p+ p( E L pLight->Specular.g = 2.0f;
1 y. }" N( e% z: h3 b7 P: h# k pLight->Specular.b = 2.0f; F" G: N3 j3 w9 l( ~
// á?oˉ
4 M* |/ O' Z' Q% q( H' \ pLight->Ambient.r *= 0.9f;
( K5 m b6 y& u1 f2 a& g2 B+ ~1 u" | pLight->Ambient.g *= 0.9f;
' m/ t4 X& y) V9 t7 c- a% n! P' X pLight->Ambient.b *= 0.9f;6 S( ~% K3 o5 \ t: a5 l
#endif //__YENV
6 Y/ {% E/ X) F ! ?! E, U1 c7 T, K
memcpy( &m_light, pLight, sizeof( m_light ) );( M7 \2 p6 O4 V4 e
j0 `6 H. X7 i; i( u( a |
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);* C5 [$ n2 {/ [7 {; k
D3DXMATRIX matTemp;
# f8 \- `3 x( K4 ~ static const float CONS_VAL = 3.1415926f / 180.f;
6 X6 U4 P/ J N6 d! B0 p7 G8 v
, e+ X3 H' o' D; k+ y- `% N D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL); x4 |0 A4 q, s$ Q
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& L1 E7 M# i, _& y; T" H. h7 v" _
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
# S5 ?" D2 ~# n) e( R" w2 D" G pLight->Appear( m_pd3dDevice, TRUE );
6 ^& E3 i! Q+ G; Q4 C& A( o2 a/ T
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
" j2 o* s _: X // D3DXVec3Normalize(&(vecSun),&(vecSun));8 C5 I' \: e! D# L8 {8 p
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 7 M5 V( Q6 x, R, g+ a$ W
4 F; k0 o8 r+ E! i e5 U/ I9 x
DWORD dwR, dwG, dwB;+ k# T1 t4 v" O
dwR = (DWORD)( pLight->Ambient.r * 255 );
+ o- O- s: l9 b( i2 W dwG = (DWORD)( pLight->Ambient.g * 255 );) F) c% E5 A7 K5 z' a7 n2 {
dwB = (DWORD)( pLight->Ambient.b * 255 );
# L9 \& T6 v3 {2 z8 K z3 W! w1 P dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
4 l$ f9 E- @* e5 n0 H8 { }
+ W: F) T$ F. Z+ |- c3 s }. A/ Y& \( R& [, Y, ]
) v: c2 {9 o) |& \ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
# d( e @3 _4 B/ ~3 ^ 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 z5 q) Q, }4 n g4 L7 G% j! [ ::SetLight( bLight );( P5 a7 Q; l% r% T$ m; t: b
( z7 x7 I1 f2 { // ±ao? ?D?í???ó á¤à? 2 @8 P* d* L; _4 a0 A
m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 z$ [+ v5 y5 S h' s0 L7 v ; _; F. d& H3 t7 p9 F. ~0 M
#endif // not WORLDSERVER! Z2 O. W+ y' M0 k+ H/ e
}
, z- F5 N# w: P/ m, \并更换" h* q# M q* L# S% c6 B! [
Code:* l: s" b* s2 k" Y! }
__FLYFF_INITPAGE_EXT6 I5 c3 S. V2 {- U9 P- c% g
定义
3 ?& p# H7 F) l( M8 ?$ V% C- C# e8 P$ r$ l4 ~5 \% y& e
- p6 w" U9 o0 d" W; l) a& N+ e1 r1 [1 n( i8 C
?! F; _' b4 r: m r: C; L现在终于删除我的狗屁加速...: ]8 c4 A, s6 n; T
7 i0 K+ u5 @+ q- \# N. a& S. w( r
- x$ @5 A+ P' y
. b! E1 m: e( i6 _; ? |
|