|
|
食品车:! }: n- x5 X. E& H
尾翼:" Z! `+ h" S7 K& ]$ S! s
. y' x6 y' G8 \
代码:
" T7 b) e; a: X& _. D. g; RCWndAutoFood::CWndAutoFood()
; |9 }8 ^6 V; n/ A! P' y{
; c$ P* K) m! j m_pItemElem = NULL;
, m# N7 c+ G8 ]! m m_pTexture = NULL;
9 ?/ i% t- e- h A. g bStart = FALSE;
' L+ S3 Q- O; T: z3 C) j7 Z: }}/ M+ \; q2 Y# N, b9 e& _) K3 M
0 h ~: ~. z! d6 t% e1 v* hCWndAutoFood::~CWndAutoFood()$ G' M$ R+ X, B! ?4 Q- x- ^
{
. N, `1 e1 g: Y& b# k0 M AfxMessageBox( "AutoFood ist gestorben " );- M% G2 T, D: M3 \* X
}
' C! K1 m4 l4 F7 m- L8 bBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
7 R! f `8 b" l6 k{
- }5 u7 A7 _' a2 z" Y return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
3 ^' B" e( K1 w# k}0 F# A1 N3 }) ?! N
) A2 j [! H' R% |" E. {4 H
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )3 _4 N; Z2 P, Y9 f, I7 ?7 j9 a
{
# M% B& l" \4 T ~7 X" y$ g LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );! h8 q$ v) u/ Q
CRect rect = pWndCtrl->rect;
# o7 i0 l0 O9 }% z$ H* } if( rect && rect.PtInRect( point ) )0 p$ T/ _4 d7 t" g( m0 p
{
& t; o% K& P2 A2 ~3 Z0 e CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
1 X' U% E) C6 q+ g& D2 [" c# a if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )8 T" g4 J6 ]& [4 h8 u& w3 I* x/ X
{" v$ V" ]6 h1 n8 u9 Z8 L* q
if( m_pItemElem )1 i* V( ^+ ?# ~
{
* y5 O4 A6 ]+ E3 K: x m_pItemElem = NULL;
; ~4 W- i, l' Q& J }! E- K# }& T p' L$ \$ H1 R
m_pItemElem = pItemElem;3 X4 o7 Z# C O9 A
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );7 q3 w7 n' Y& j3 O( @
}else{' [5 c$ G# ~$ W* f- z$ L
SetForbid( TRUE );% f; ]% M: l: O* k
}/ t. I9 G$ C. i- J# a3 U7 r. U; `8 b
}else{& L9 T [( K2 ^8 P
SetForbid( TRUE );
9 i( W+ |5 [0 l3 n8 Z1 r& a }4 B8 k( @/ T4 @6 T; w
return TRUE;2 P( y7 {: P" D& H2 A- [
}
* ^+ u, T5 _5 a) d* U; P, ^+ t( ^; q) H, |8 {* {: J8 e% K6 X
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )5 w R; u! H# E1 V' w
{
* |; ~; n0 [8 o( z5 y( z- y switch( nID )* t4 ~) W: z. d9 X+ H7 V- H
{- j1 s% Z( ~( |. ~# O! S
case WIDC_BUTTON3:2 ^, B" t9 s- x$ z$ V7 F( a' t9 Y
{
: l( s2 k: h/ ~& c9 t4 T bStart = TRUE;# \3 F9 t' _8 H+ Z
break;* [. i0 `9 B+ w+ k. h
}( h; V! Z% X9 d7 R- Z+ ]
case WIDC_BUTTON4:+ `: @& G! G9 p4 L( j
{
7 }) D* U% n l5 z% _- i Z, V bStart = FALSE;( L8 @3 {' _8 b* t* r) |
break;
5 \9 N* t" x3 Q; Y4 o! z* N }! r# ]7 b' \' L- s
}$ |2 [8 ]% ? N: M s, D
return CWndNeuz::OnChildNotify( message, nID, pLResult );
8 @5 l; O7 Q7 X+ q}
- ~1 ?) g. n% }6 Evoid CWndAutoFood::OnDraw( C2DRender* p2DRender )$ c. R/ Z5 ]2 C% n1 u
{
7 ?# r, [2 E7 Y, i" Q8 F8 f5 N8 F' q CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );! S' v) @4 x* X( G2 A" E
if( bStart || !m_pItemElem )# A. X# E3 {/ t) `
{, f# p' }- d! W6 C
pBtn->EnableWindow( FALSE );8 y9 w, `1 W: i, e) D
}else2 ]/ z8 p& S! p x' F
pBtn->EnableWindow( TRUE );$ C5 \' S* X& E
if( m_pTexture )6 r! N9 v, o1 w1 _' t: q
{" \% u: e0 p; _" I$ W3 q: K
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
b z5 h4 P- v- W t' k if( wndCtrl && wndCtrl->rect ), B4 ^9 y/ | ?- l# L: |) s
{6 q; \9 o1 G% x; \ I- ?
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
0 \6 e. `4 S6 Z. e9 l: T# h* Z }
2 ^2 ~; K$ \4 ]% r, |/ X }
- y$ n: |' N1 J' N2 A+ \5 ]}) w# e+ I) C; b+ E3 F2 X4 c* O
! v/ X2 c* _3 ~0 j. a! R3 D4 IBOOL CWndAutoFood: rocess()8 ^+ k( `% ^: k. R" I! h9 j/ s
{" G4 d( y7 ^ z3 C) a6 M
if( bStart )2 a; R: q9 z1 Y& a
{
# ^ {& _. ^; G if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
. B! M: C3 j" w3 F& d0 c {
; H# N- R! F0 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() )
' f% \, s; A* W" |# v; F$ F g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
3 O! W( q' v3 u0 D* S; L8 g4 O }else{; q |( W A" r% t9 s" P
bStart = FALSE;
! m4 e* _7 Z+ f' M7 }8 J+ C1 } m_pItemElem = NULL;6 O" F# u, Z8 V9 V% |
}
( s, K6 [! j& O7 T }
0 d; j1 j& r9 M" j return TRUE;( x \" X7 g6 `) X4 v# i7 @1 Q( K
}
5 @- N, T$ H+ X
8 E, f$ ]# o( f# A6 E) m! g登录视频废话:8 @# _, A) l D
尾翼:
j5 p8 F5 U1 V/ u# Y, J. U" I! K
; ~* Z" W2 I1 ]& F' B代码:
1 I' P5 u8 m- K2 ?: T% o- w' s6 j& G1 ] F5 L1 J
void CWorld::SetLight( BOOL bLight )
$ Z. m; d; u- gdurch
, {. O$ u3 s- `- @6 Y6 F3 kCode:( i$ }6 U5 _: M/ r% |
void CWorld::SetLight( BOOL bLight ), T8 v* Q3 ?. n
{
8 W9 Z7 G- S( n1 y' v, p- }1 Z //ACE("SetLight %d \n", bLight);: w7 t0 }: t+ W4 ^# b
% f# w5 T# l' x6 K
#ifndef __WORLDSERVER % M, ~2 o( E" S4 |' ^8 E
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);% Y7 o8 g$ ^/ y/ X n) L
CLight* pLight = NULL;; K- P! a. b0 y- ]+ s3 ^
8 V5 X. i: _0 _: T6 r, c( l D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );+ Q' m+ u6 B2 r' ]! ~7 t0 P8 Z! ^
/ b' b3 u# n% w& k3 V pLight = GetLight( "direction" );* o' l1 g$ R8 g8 F: H
# p, Y, t8 F& {% s3 D7 h$ d#if __VER >= 15 // __BS_CHANGING_ENVIR8 {4 s3 R" ?5 [
if( g_pPlayer ){
' }/ m8 T1 B% B% u. N/ g8 _1 W ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );* j4 Z# X: j$ @4 @8 V
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!9 C# {$ p+ v A# d% D7 s7 P7 N/ m, E
{
; Z/ F P3 Y5 l" t% |" u if( pLight )3 i7 F8 `. `6 X" P# ]: H
{
- G6 r `/ `! s* n/ f pLight->Ambient.r = pInfo->_fAmbient[ 0 ];9 ?! m" l5 i4 J3 { p/ K2 ^. t* @
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];- o2 ^# D R% A
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];. ?7 V6 c7 n$ `: t( `8 ~
% J" U6 L' m" P
pLight->Specular.r = 2.0f;
" a6 c, t2 b+ [/ J pLight->Specular.g = 2.0f;
& b/ X9 c. P) | pLight->Specular.b = 2.0f;
' m! | f5 @- e I2 d2 o
) p$ L# d- E+ |" a/ ?- E pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];9 k, p/ E/ a) ~# C+ l6 W/ j' k
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
" _+ K- X. x: K. i' |2 D pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
: z3 `* U- i0 G: o7 n & A; f) }7 L- u. W- f/ y' d8 r
HookUpdateLight( pLight ); ) i- R# X4 z- N: C* m0 [3 V8 B
; |- W2 y- x! O! c
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% S- H+ _, y4 K; o, L/ X) _
0 [7 V4 y/ v+ b e pLight->Diffuse.r *= 1.2f;
. ~" u) _4 _! z. T# B% S& O pLight->Diffuse.g *= 1.2f;
/ ?0 R# P. e, f9 }9 y1 b pLight->Diffuse.b *= 1.2f;
" W8 W1 H! a, { x+ h9 w- b8 d+ R0 J) n9 u8 w' m; }2 _: Z4 D
pLight->Ambient.r *= 0.8f;
/ l2 k' B3 y% P, h0 Q$ N0 ^ pLight->Ambient.g *= 0.8f;
$ g" g! _% N" U& Z7 A3 u pLight->Ambient.b *= 0.8f;/ @5 V( X6 p: }4 P
2 o" D- K) L* Z: Q0 ^ memcpy( &m_light, pLight, sizeof( m_light ) );. t1 a4 j0 B5 `" }* Z. Z
/ Y1 z. ?( J; H& ] D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);. Q/ F0 u" L- P* ~
D3DXVec3Normalize(&(vecSun),&(vecSun));
; t; n' k: S7 R8 m* _$ s pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 9 N, x6 F: N( u9 c; \' }* g
pLight->Appear( m_pd3dDevice, TRUE );
% X! A2 n, m8 T3 G9 F/ i% w 7 g! l% E! \/ \/ [9 L/ b
DWORD dwR, dwG, dwB;
! ?$ k7 B- W( m3 z* O3 E, | dwR = (DWORD)( pLight->Ambient.r * 255 );
& t& ?- q* o. G* ] dwG = (DWORD)( pLight->Ambient.g * 255 );
+ U, E( G7 ?7 n5 s/ @5 T$ p9 e dwB = (DWORD)( pLight->Ambient.b * 255 );
6 w# j# l& ~8 Q7 s dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% s# w. J" [$ V+ k- o4 g
}! i+ _. G6 |% p7 r, X+ p
}
, H: r" V; P& d8 s }
2 Q. k6 x( {1 z2 D& ~ else8 Z9 E8 ^2 W+ C+ T/ ]
#endif E0 r4 s4 h/ k; ~! M
2 U8 ?( ~( {# ] k# X Q6 Y
if( m_bIsIndoor )' h7 n& w8 Y' ]9 n
{
; _, \# M8 P& i( O& f y+ i if( pLight )& m! [! x I8 F7 `
{
: w$ X! e1 W& O // à??μ oˉè* 3 R- n1 J6 ?2 T; l1 _
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 Z* s# d* u: c0 r3 T- \& O' s
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;2 R. x) f9 x% c w p
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
' G: L6 d# l& S: @& \7 c1 F7 S" U4 g. ]$ _
// oˉè* ??à?
% a: q1 }- ^' @, ^" S pLight->Specular.r = 1.0f;
4 B9 i/ ~. w9 K1 N$ W4 A pLight->Specular.g = 1.0f;' Q, H {# t1 t3 b9 U
pLight->Specular.b = 1.0f;! J# ]. m$ h, o# |
// àü?? oˉè*
3 q" H; }" m6 l( b5 `$ ^" I, V4 W pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
, b6 j" L# Q4 }; J. H pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
y$ Y8 g% m1 ~* I, K pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;( I5 ]2 ]& `" K
! A8 |) s/ l3 E! m if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
e# z+ B- N6 c( A7 ~# D) ? {# g' a! c) w3 _
pLight->Diffuse.r *= 0.6f;: m5 B% Z1 V) o1 Z1 Y% ?) Q- O
pLight->Diffuse.g *= 0.6f;7 O4 N. K- M0 m2 S( s
pLight->Diffuse.b *= 0.6f; |# `- Q, j! ?
pLight->Ambient.r *= 0.7f;: K) `0 M- C$ R3 g& h4 |
pLight->Ambient.g *= 0.7f;
/ a( O+ Q) k0 O3 _5 D6 g; r pLight->Ambient.b *= 0.7f;
* i1 i& p( Q2 N! H }/ P+ a# o. \3 a3 r* f6 i
/ J- { d2 B, D% B* \1 e% a' J2 _
#if __VER >= 15 // __BS_CHANGING_ENVIR
" m4 f4 q$ |' |/ } if( g_pPlayer )
! D: @! ^8 T$ F$ W2 Q: F# h7 l HookUpdateLight( pLight );. h8 B% b; K* a& R# O2 q
#endif
$ l& z; Z% H8 W( ?4 N memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
& g& e2 C, l1 G+ f1 y4 m6 t$ \
0 k$ f* [1 A7 p pLight->Diffuse.r += 0.1f;$ ]) u3 B; P8 ^, P7 A
pLight->Diffuse.g += 0.1f;7 `6 h, ]2 C. f; B
pLight->Diffuse.b += 0.1f;
5 ^3 C4 Z1 B1 P7 g- k* i // oˉè* ??à? 1 g4 D0 F/ J* H
pLight->Specular.r = 2.0f;
& g8 @7 G5 n9 R1 ]4 W pLight->Specular.g = 2.0f;+ L( \+ s/ x7 h3 [% e: I
pLight->Specular.b = 2.0f;
$ g) t2 v4 A. b R# t // á?oˉ
1 j- G- ]6 d+ S2 x7 }3 q6 m6 v pLight->Ambient.r *= 0.9f;
' x8 u2 g( }) A+ r0 `/ p1 S pLight->Ambient.g *= 0.9f;
6 B; U9 Z/ W" J' X" h6 Q+ s pLight->Ambient.b *= 0.9f;
% n& ^: C- l. a0 T7 Q9 I( l/ z2 |$ ]' f& V+ s+ ?& |
memcpy( &m_light, pLight, sizeof( m_light ) );
; k( X( A6 w8 y z+ B2 f. _' A " z; J/ z0 U% @8 U; l4 |
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
% z0 ]9 g& V u pLight->Appear( m_pd3dDevice, TRUE );0 u. N! U# ~2 |) e* _
0 b' W1 O* ^! m I+ z# @4 @6 w DWORD dwR, dwG, dwB;- j5 e) [8 J/ y: q- K8 B
dwR = (DWORD)( pLight->Ambient.r * 255 );
) Z r% l2 }5 i1 x dwG = (DWORD)( pLight->Ambient.g * 255 );
/ y5 r! P& c- p; w6 t1 L4 k9 F dwB = (DWORD)( pLight->Ambient.b * 255 );, Z* J, O8 E! J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; t4 {( N% Q, @5 ^ }4 @, H% U1 j% _6 D* A
}
5 o) u$ q8 S9 [) m else
1 X& M* Z% v% W# {* | {* c5 g3 h9 h0 o, z- Q6 t
if( pLight )
# n8 u. {! y# @+ L' a( q8 N0 |9 @ {% o% z* `& t/ b- E M7 W
( o7 z0 ^: k1 b# F! g$ N- S3 s
int nHour = 8, nMin = 0;
2 P U& }, @( W1 k #ifdef __CLIENT1 k/ j: K' R/ h: K' C
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ) @! W N6 I3 E7 g% Y; l( h
nHour = g_GameTimer.m_nHour;0 r7 k1 s$ O ~$ }, f3 D& ]; V
nMin = g_GameTimer.m_nMin ;
t8 d8 t5 p7 Y$ v" t" u% {! c #else. b4 ?0 `5 F+ D" h
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.; P7 _6 D& m; e$ }# P7 L5 m) c* s
if( m_nLightType == 1 )
9 R; u' |! F. x& E7 w nHour = m_nLightHour;# u8 l9 ?( u6 ~2 m. B b
#endif/ K- Z' V {, F' H! K( {
nHour--;
+ g7 {9 v; f7 b if( nHour < 0 ) nHour = 0;
8 P0 I0 l! O3 m1 r: B if( nHour > 23 ) nHour = 23;9 o3 a4 Y! e) k! M8 `& u2 k
- m+ |) W' @" ?
//if( m_bFixedHour )9 H5 z/ g1 n$ [- Y+ H7 X m
// nHour = m_nFixedHour, nMin = 0;+ ?" s% b6 K# @; l
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
- J* n+ j2 e: b+ O3 O8 P1 | LIGHTCOLOR lightColor = m_k24Light[ nHour ];
5 U- a- v: f. H! z
% s' {2 z D: @# D //m_lightColor = lightColorPrv;
# b2 s: }, S7 U( _6 C0 k lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
% A2 W% g; c3 C. s% {' L4 s' L lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;: u% |; T' w, E. x# ~/ {
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
- G8 R3 C! R X* S lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
6 _" h( ~+ Y5 Z3 R- @4 R+ z lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
4 F* i9 ~- K9 h- y1 [1 e2 H( \ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
" \0 v& W+ |0 a2 w* O$ q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
* ^2 S+ b+ K7 `( X' `/ ^' B& V& U8 k# q$ U6 I+ W+ a
// à??μ oˉè* 9 v4 C z" ^8 G
pLight->Diffuse.r = lightColorPrv.r1;
# {- t! @% O& E, n' {6 {0 |7 } pLight->Diffuse.g = lightColorPrv.g1;, e+ p3 ]. x- t6 G: h! p
pLight->Diffuse.b = lightColorPrv.b1;& w7 e; ^ g7 F4 z9 n& O
// oˉè* ??à?
, X; t Q& }! ]+ p' t0 m pLight->Specular.r = 1.0f;4 j; Q2 F: A& Q% M2 N) o
pLight->Specular.g = 1.0f;! t3 ~+ L- x, k# P1 z$ R, R
pLight->Specular.b = 1.0f;) a5 p. E! w5 @3 E
// àü?? oˉè*
6 q& b/ t4 [: [4 B3 A pLight->Ambient.r = lightColorPrv.r2;0 V* L: m8 n; c2 g8 f
pLight->Ambient.g = lightColorPrv.g2;! h) x. Q- m) t; ?
pLight->Ambient.b = lightColorPrv.b2;
3 D: Q3 J( C1 n8 k. K5 K3 C/ {* S
( `/ E% {7 x7 Z2 E. b7 i7 F+ L if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- D" p, U% B1 u6 @. t8 H
{+ p5 w& P3 _6 V& \3 u" W4 d
pLight->Diffuse.r *= 0.6f;9 \; X$ N [8 a+ r& h! z
pLight->Diffuse.g *= 0.6f;
5 g& V7 E+ F: T* G3 h pLight->Diffuse.b *= 0.6f;
! h& G) O2 Z; z9 ?- x0 x X$ `/ ?9 R, x pLight->Ambient.r *= 0.7f;+ O; b8 M( H) A. q; [
pLight->Ambient.g *= 0.7f;4 r0 N3 `; }. T1 H/ x
pLight->Ambient.b *= 0.7f;0 B% R& b# n1 _
}, J; |/ U) d, ?' E, K7 h6 V
* D7 I) K2 f+ T- E# s, P9 N#if __VER >= 15 // __BS_CHANGING_ENVIR
9 V+ g- b0 V) y h. } if( g_pPlayer )2 w+ q0 o, B+ Z
HookUpdateLight( pLight ); 0 g( P) X% ? l) B. H) O
#endif
" K; L1 o3 }2 \4 O memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: g. `; y/ w2 g; L9 t* F" S
4 A5 }6 t) [2 h) m2 f7 I
#ifdef __YENV) e' s1 c' x% N
pLight->Diffuse.r *= 1.1f;* b' e3 K, `% p4 T- N/ ]$ Z
pLight->Diffuse.g *= 1.1f;" Z2 ?. u( V" q* ]# H' _$ w- o) J0 ?
pLight->Diffuse.b *= 1.1f;0 h& E- @$ e5 p5 M0 }. \4 f
// oˉè* ??à?
& V, A) U* L7 H1 r* { pLight->Specular.r = 2.0f;/ V' e1 C P+ r# V
pLight->Specular.g = 2.0f; ^/ v1 A; Y8 `9 m, s: x9 W
pLight->Specular.b = 2.0f;- R4 p' `9 Z* {. H, a# J0 \
// á?oˉ
) g! d6 `9 O9 a pLight->Ambient.r *= 1.0f;
6 h2 C8 Y$ @3 w7 D4 B pLight->Ambient.g *= 1.0f;
) Z W, q$ n2 h& c/ u8 e0 k2 } pLight->Ambient.b *= 1.0f;- g' _4 S1 l9 [( U' G
#else //__YENV; m* f% z* O2 j' ~! z
pLight->Diffuse.r *= 1.1f;9 p, ~1 m2 K& N8 }8 ?; ]" `
pLight->Diffuse.g *= 1.1f;
5 n g* ~. s0 K: W$ L" P! ~ pLight->Diffuse.b *= 1.1f;
@6 J6 ?% ^& G7 z // oˉè* ??à? 4 e u* A- p& n( t( m7 d# n
pLight->Specular.r = 2.0f;# K# F) b5 {5 M8 B4 F0 g U
pLight->Specular.g = 2.0f;
9 ~6 ~- Q7 z# C# R! z% X | pLight->Specular.b = 2.0f;; Q% k# r1 V* s
// á?oˉ
# g5 W) C: s B: {; T pLight->Ambient.r *= 0.9f;
* {# {. v2 p# U pLight->Ambient.g *= 0.9f;
' C" [2 B' x' [0 N H& f pLight->Ambient.b *= 0.9f;
3 Y/ ^1 k, Z! d8 u7 }& }$ @#endif //__YENV 1 b5 b5 }. I' ]! E1 L1 \
& g: M0 L* X" s( V/ F
memcpy( &m_light, pLight, sizeof( m_light ) ); o8 a& _6 u% }+ I/ m0 g
5 v/ J, _$ a8 ]& }. o& h: V* X D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
" _7 k: D5 w: ?9 h2 C6 r1 ]7 ` D3DXMATRIX matTemp;4 `) z3 \) u+ d& } I
static const float CONS_VAL = 3.1415926f / 180.f;9 i8 t4 p( p' x8 T
7 Q% K* E* E" O
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
( w, s; u n, u# R+ g D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
+ ?) ]0 j/ g. V pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
% p; F$ b# A) u; H9 [& p" x pLight->Appear( m_pd3dDevice, TRUE );% x( J' i9 m+ W3 Y
0 z5 {6 R: j4 F: n6 _+ a // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 l4 W# f+ t+ ^
// D3DXVec3Normalize(&(vecSun),&(vecSun));0 Y4 C+ P, h2 g' q; Y7 ?
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " W" N, Q" Q! y& m! \/ E; l, b4 k
% k! Q+ {) g- M/ p DWORD dwR, dwG, dwB;/ R& i% y& P& k! l- c# L4 w7 v9 \
dwR = (DWORD)( pLight->Ambient.r * 255 );7 s; y& \! H1 g, \ K0 W/ t8 Z" r! Y
dwG = (DWORD)( pLight->Ambient.g * 255 );
# ]$ x) f# u+ u6 t# A, v4 j dwB = (DWORD)( pLight->Ambient.b * 255 );1 q: V3 a- S v: z+ s. M+ d
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& |2 q& |+ Z& f5 {" u }9 o4 t6 L, J! L/ e
}
& h: G* t6 S8 _& i: Z* b7 ]2 w8 d) x% i& s, C* {
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
* R- C- U0 h4 B 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) );- s# M) q# z. _
::SetLight( bLight );
6 r3 t% X3 |+ `; k2 z7 v& `1 L, x6 U4 g1 }# W3 X$ e" H
// ±ao? ?D?í???ó á¤à? 6 d8 E* W' P1 B7 L" p8 E+ K
m_pd3dDevice->SetMaterial( &m_baseMaterial );5 x3 o7 I# Y. ] J
3 a/ A N5 y3 T5 V7 p#endif // not WORLDSERVER3 V* m7 I- ~' S q3 \
}: G6 Y; r) h7 v: s
并更换( \: s( }% R. k
Code:
% d; j$ B* k/ u/ `) @, A__FLYFF_INITPAGE_EXT0 s5 W- p5 `; w" u
定义3 u5 a4 _# w3 Q% S9 i# N* R
0 P0 D, l, G/ ~" \
( F7 c8 t( A4 @+ q9 D
2 u/ S% b. M& z4 }* Q
/ j& m0 D' ?3 c. ]8 ^现在终于删除我的狗屁加速...9 w8 q0 E) A5 K. U
; L: ^5 S$ K; I( i' I7 s
* f* d/ J% o2 { s
, H" k2 m% R' e% P' z% U2 L4 i |
|