|
|
食品车:
' {- y4 w. ?- I7 k! P尾翼:
( s6 G2 Y3 O ]* o5 K* W, b0 v1 Y N5 O+ \' y7 L
代码:' v- M: R' N/ u3 l
CWndAutoFood::CWndAutoFood()
7 o4 }: m, r( a& M" L# R{
4 Q+ ?! M; @- t! u m_pItemElem = NULL;
: L$ ^( f; U5 F# \/ D2 [ m_pTexture = NULL;
8 \0 o1 c" A) O' g' J" _ bStart = FALSE;% z- k! M' N) I5 b( G
}
0 ]- L q# b; K5 X, _: O3 z# t% e; T( W: b5 T5 N& Y; L
CWndAutoFood::~CWndAutoFood() A/ v' P7 S# Y2 Z8 ~6 S6 [
{
( W8 F! u/ ~7 F: V- Y( s AfxMessageBox( "AutoFood ist gestorben " );
& E" V) o: J% Z}: K7 S' u o) I* p/ G
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
4 `8 P2 z5 C- Y# u8 \ B{
9 s! W- R+ v- q# z0 E6 l) S return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );9 i: f; R. j8 J
}
& b2 t- L& s7 J( z; z9 [, \$ k" d
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )* i6 a$ ]- g' O3 j! e! s
{
7 \: B2 c2 ]1 R/ @ LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 M$ \ k4 w/ v. ^. J8 K- q, T CRect rect = pWndCtrl->rect;/ e0 {- W' s* }, q/ M; s \
if( rect && rect.PtInRect( point ) )' J5 Y5 X7 ^1 V/ R. q4 |
{
5 z3 }, _" {# z- K- n( S3 S CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
7 A- x5 I3 s, M) Q2 K: t if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
: l2 o7 y& V- n) i1 V {
* T6 G+ J S, h% ~& V! S4 I if( m_pItemElem ), s; `& s" r. y
{/ K! r& K/ Y% _+ Y
m_pItemElem = NULL;
& D$ N& o8 k! d. M* S$ X }
* B4 ^& e' F! E) T. ]- ~9 C m_pItemElem = pItemElem;
0 { C' q9 \4 ~/ s2 p" B' ]* f m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );: W4 A+ J1 H$ c7 k; Z' J
}else{
3 z" x0 L/ [6 U) J5 S SetForbid( TRUE );
$ J# L4 y9 W+ \- ]3 p9 C i }! Z3 O. L! U; _
}else{
6 S7 r" i) A% w4 [- ^ SetForbid( TRUE );
+ H$ r$ }8 j( t8 h( T }2 m [' ]$ ]; ^' g" z2 J R
return TRUE;) ?9 U+ L9 C2 i# h
}: z3 C8 k: R& K5 R- d3 i
) g& l0 G9 I% s5 S2 x
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 T5 Z/ o0 H1 A$ S2 ~% L
{9 {) }+ u6 | H+ Y1 W; L5 Y% ?' U
switch( nID )
6 i* N9 f, ^$ K/ }" _% C) ` {# \% i$ q2 f( L% T6 K
case WIDC_BUTTON3:4 `, C* t# d4 ?% U# t3 l
{. M+ _. k5 a& B/ T3 M; k: j- `
bStart = TRUE;
3 ? W, H O1 G, } m5 T break;6 A z. u6 ^% x$ e6 w& h# ]
}
' A& B8 e: y- Z/ ? case WIDC_BUTTON4:& S0 S3 u7 U, z+ ]- {. L5 M3 n
{
% i& b2 N6 ]& Z8 P bStart = FALSE;
. c' j1 J; l8 R break;
7 ] a6 } X+ @0 I }" Z7 A# u$ k6 A0 b
}) n/ v$ {+ m9 K" e: i
return CWndNeuz::OnChildNotify( message, nID, pLResult );9 ]4 h3 g9 m1 P, O
}
2 q) y9 r. }+ U6 f1 F; r; \void CWndAutoFood::OnDraw( C2DRender* p2DRender )
5 h: c2 m" I) l; s4 y{$ J; { @" e, i7 x' d" q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
4 Z( }" X2 }' J" P1 S; ?0 K2 g Y, i; B if( bStart || !m_pItemElem )/ S! l0 C" W0 y7 `+ h+ h5 _$ x
{- b' X) M6 z6 ^0 ?: V5 @
pBtn->EnableWindow( FALSE );
6 G+ Z; E. ?" N, O6 C s }else9 D( D3 _' T d
pBtn->EnableWindow( TRUE );9 b; ~, b2 H n3 O
if( m_pTexture )
8 Q6 \( X1 P- T. [7 o) R {
# V m* p& Q0 s LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );& q% I$ \9 r8 ^+ C
if( wndCtrl && wndCtrl->rect )
) w I6 l. l8 _2 [9 i6 G+ ? {
! k! e6 S9 c& Y: P m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
3 C/ y. m1 \; P% d% B5 r# ~ }
2 t# T3 v% X9 j9 A/ `: m }
8 ~4 u: B3 \" Q. `7 `: D}! Q& v+ I' p: ~" X0 @* }
i! |% t+ z& S9 Y& d0 wBOOL CWndAutoFood: rocess()! `- c5 T$ @; D- R1 S
{
% f- u- L2 y3 o s4 U2 Z if( bStart )
) t& x8 {1 U1 k: U" R {
3 K! u. U$ N6 u& l" { if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
3 i7 ]/ u- F- P5 W {
7 g/ y: p9 A" @: | if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
- M9 M9 g6 I# W/ G g! Y' u! B& j g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
% h' I$ o% e* d# w) j( {9 a4 S6 J }else{
0 l L3 i9 f0 H0 Q+ c bStart = FALSE;8 e8 m, Q- o& l: g
m_pItemElem = NULL;% v9 K5 d" `7 c4 r
}7 y9 p2 q/ z% L: N
}/ \3 J r, G& F+ ?* d
return TRUE;" T, m9 g ?+ ~& ^
}
' z. S( r( {- o) X$ E# t2 J/ B4 F: w" Y U; L
登录视频废话:
- W( v9 ?) W- N4 I2 I( B9 T9 r尾翼:+ a& e/ |- d" a5 F" R5 h
; X; b+ ^3 c, G4 l代码:
# ~, P5 t7 l7 x- r* C
- ^' {5 M/ I* h3 I/ K- D& ?+ X0 E/ m9 x2 avoid CWorld::SetLight( BOOL bLight ); K/ E3 j- e; p, [
durch0 s9 X( J, S4 Z0 W/ ]; H6 G
Code:
. {6 K5 P4 E! ~) v, L$ Nvoid CWorld::SetLight( BOOL bLight )' ?0 B' J/ h! j3 U
{
2 Q4 j6 D! P1 X" l2 y //ACE("SetLight %d \n", bLight);
( R; [# d0 T. _- n0 v7 q% g" h
2 h5 v" F7 O* w, G% W# N# O2 q) ]#ifndef __WORLDSERVER
6 j7 U/ [) Z C) m0 s DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);. w/ @2 ~" n9 j: l9 g
CLight* pLight = NULL;9 k: L6 q" M* _
1 y; w4 F- e( q; p, s
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );3 f$ d; E# y/ W, M6 k( b0 i$ y; `
/ _: v Q5 a* f( G6 j
pLight = GetLight( "direction" );" O9 G" k( g. G9 _; R8 I
4 H' L$ N4 _- ^: S9 Z+ n# m" L3 p& t( g
#if __VER >= 15 // __BS_CHANGING_ENVIR
' M! H8 I8 [" W& j. Q2 A if( g_pPlayer ){
8 ~6 A0 U/ U' _7 J. z/ m ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );' V+ K8 e: p4 O* b* V4 z8 w u+ n
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ d3 x8 Z. p) M% y { l" u; M8 i9 ?: |
if( pLight )
) Z7 V( P, [/ ]0 @ {
& c4 K1 o( Y) C I# Y pLight->Ambient.r = pInfo->_fAmbient[ 0 ];' J0 Q, R" i& S$ }9 T$ x" Q
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
0 R2 E, N' y: Q+ E: W$ [ pLight->Ambient.b = pInfo->_fAmbient[ 2 ];" |7 _- q' v1 [7 {! H
/ @$ F! S1 k( L+ t4 o6 j0 k
pLight->Specular.r = 2.0f;" Q: w2 Q) I' ^+ r. O) z/ y l
pLight->Specular.g = 2.0f;
a5 o8 O9 V5 z7 ~' e pLight->Specular.b = 2.0f;- v# b5 `- R) E7 C- @0 n
" t7 [+ t3 H6 s( }/ r pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];! ?/ Y" R& _3 Q9 |. ]
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
+ X5 v# U. o! L. @! h pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
4 i {5 Q) z- s
9 b3 M7 ]8 x2 x* C6 U! F, n3 V HookUpdateLight( pLight ); ( z" a* B0 N) W) V! b) A* M
, m6 N+ {1 _1 v- G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- ^1 I& s, o# l% X! |& Z
; i9 A$ z7 p" I pLight->Diffuse.r *= 1.2f;
$ W+ _, t) a: J: T. u( v1 [ pLight->Diffuse.g *= 1.2f;
+ h# a4 }4 C0 r6 Q8 w pLight->Diffuse.b *= 1.2f;
/ F1 y9 M5 W' g
/ P, e$ a% Y* x' u, x pLight->Ambient.r *= 0.8f;
3 y2 o5 t0 H7 U+ p pLight->Ambient.g *= 0.8f;
* T3 C0 I+ B8 {: Z7 X pLight->Ambient.b *= 0.8f;+ O" l, J8 C6 m/ M3 P
~2 F. N4 C# q0 U* ^- ?) W3 d memcpy( &m_light, pLight, sizeof( m_light ) );
$ T9 S/ ?) L; [' c5 ?5 i4 v! i& j" A0 U6 p' z: y
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& ~8 ^; q9 b9 H. J9 N3 z
D3DXVec3Normalize(&(vecSun),&(vecSun));
+ J& s3 I2 \2 C' Q pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 u" p' h8 {$ V4 u. t8 d8 ]; }+ @; E& t pLight->Appear( m_pd3dDevice, TRUE );& G; K1 b3 n+ n8 [+ ?2 N
. M2 Z+ I9 }2 q6 \
DWORD dwR, dwG, dwB;0 h8 E1 U/ i/ `, {) D3 m; ]3 K0 L
dwR = (DWORD)( pLight->Ambient.r * 255 );& d5 D3 f W% J3 P
dwG = (DWORD)( pLight->Ambient.g * 255 );0 a8 @, _9 J6 z7 c5 F) r8 \
dwB = (DWORD)( pLight->Ambient.b * 255 );% |& z9 Y; N" q- S8 O
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 O9 Q. x; h; X; t* P }
8 w7 y/ r4 k6 p7 C3 V5 E }
- S# d6 G$ ]& n# @7 } }
5 J: O k2 j; ~3 ? else
7 A8 Q# j4 y- G- R#endif
8 o g! h$ ?# r% r8 @5 F7 b. i/ v- j
if( m_bIsIndoor )
/ N8 m4 p; y3 }* H {
8 }3 K$ ]1 A" p$ V) f9 h if( pLight )
/ Q% ~( D) }% W5 P" Q2 H2 Q9 s { 0 c& F9 h6 J! h$ Y( \. e( g
// à??μ oˉè*
w+ o# I1 U5 O' h pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;; ^# k3 A' |$ |& i& r# ^
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
2 H" x1 E8 L. h' T8 M pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;' }- }8 x5 N4 t- G. {
" x/ e o: u2 \% u! r6 o
// oˉè* ??à?
0 H' ^+ `) p6 S8 b pLight->Specular.r = 1.0f;
% p3 X; C( E; `' Q3 G; M7 r5 V$ b pLight->Specular.g = 1.0f;' ^: x% m+ Y/ I# }$ l( |
pLight->Specular.b = 1.0f;
9 L7 @+ }6 [! ^- g& M8 | // àü?? oˉè* ( y. G" t, X6 {$ F
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
+ V2 `5 u7 D9 s- c pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
Z7 m7 W* R" {! ^ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
; P7 D6 o+ } o+ g8 U1 a
! ] I3 a" a9 L( n, @# W if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 J1 e, S% l+ |# x$ w. @9 j+ M9 k+ o- O {
- [, k: o m" ~6 G( C7 \' \ pLight->Diffuse.r *= 0.6f;
, w$ o* j' L L# n7 y pLight->Diffuse.g *= 0.6f;* q" k( ^0 n L% x
pLight->Diffuse.b *= 0.6f;
: w+ |( b6 T, n* q. r( l# O pLight->Ambient.r *= 0.7f;- }9 M3 U# v& {/ e
pLight->Ambient.g *= 0.7f;; m5 D- J; |% v) @( c
pLight->Ambient.b *= 0.7f;1 }( D; h/ N9 m5 H
}) z! h. t& \1 s. R- j$ q! ?
$ Z9 p* `0 s& M8 n5 E8 m0 q7 o
#if __VER >= 15 // __BS_CHANGING_ENVIR
; U) Y% v8 T8 S- M9 ?1 _ if( g_pPlayer )
% G& ~+ I9 e7 b9 D- q+ r HookUpdateLight( pLight );% k3 A/ v9 M2 P! o. x
#endif, R3 @: I$ [8 U4 [3 Y1 `! i s7 L4 a
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' }# C; ?7 t' h% ~& }4 x, B% h$ B) x* l6 g, ~
pLight->Diffuse.r += 0.1f;/ |; c* k Y* ^9 i4 K: [+ p
pLight->Diffuse.g += 0.1f;( g: v1 Y+ @6 X+ K6 I
pLight->Diffuse.b += 0.1f;
& L0 ~' L5 p5 g( A; F6 T // oˉè* ??à?
; t) o8 N5 h/ s `* ?* d- h, ~; S8 W pLight->Specular.r = 2.0f;
* F" P3 L1 S+ j% N- h# {' L pLight->Specular.g = 2.0f;
/ z$ H% F& G8 H4 [( \4 q$ I pLight->Specular.b = 2.0f;$ w3 X9 ~" M& y' v* a6 D3 U
// á?oˉ
$ n8 a+ A0 J# R8 u3 o pLight->Ambient.r *= 0.9f;
6 `) x* w7 Q; T' s' N8 F, `& D pLight->Ambient.g *= 0.9f;
5 ~* J) o0 k1 k# ]6 P pLight->Ambient.b *= 0.9f;! Y7 Y- a& X9 H( b
* ~! K: z. o8 F) ]
memcpy( &m_light, pLight, sizeof( m_light ) );
5 I8 l2 L( E) ~1 e" }( ? 7 m* I2 K# m- d4 e |* [
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 l( Z4 k- C9 j$ a2 q1 n
pLight->Appear( m_pd3dDevice, TRUE );
`$ ^9 u5 H0 V$ K" y! @/ p! n
: M, }% m1 K' P1 b( b1 R) ] DWORD dwR, dwG, dwB;
1 }0 }8 b0 A, C% D. s dwR = (DWORD)( pLight->Ambient.r * 255 );
. x o: f% B1 u) g4 C' k5 g dwG = (DWORD)( pLight->Ambient.g * 255 );
/ {+ y; a$ {1 \4 n, O dwB = (DWORD)( pLight->Ambient.b * 255 );
; y8 \- [& p9 d- J dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' P" m% o! ]! O8 u; ? }& D( F z9 S0 a4 H& M' h$ j
} Y1 W( E& A4 C# C# L
else6 l _1 o2 Z( Q
{+ C9 |/ q, z- U5 B7 k
if( pLight )
# ~6 V3 M! B: x8 J {
4 R5 U/ k/ s/ j e) H: R ) \) i8 D" J8 Z: r/ u
int nHour = 8, nMin = 0;' L% c+ \& j) `0 w& T
#ifdef __CLIENT
$ W/ k7 U- T% w) R* l `9 s // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
- V1 ?: c: |9 L6 g& \ nHour = g_GameTimer.m_nHour;! U' v! l- n" h" y7 G
nMin = g_GameTimer.m_nMin ;
! @( T( d: [+ K3 c" M) G5 { J #else: s7 O$ w8 F$ z# T& f3 K4 V
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.% u' _- ?2 b5 D1 O; q
if( m_nLightType == 1 )1 o' s! H4 z, @4 ]
nHour = m_nLightHour;
7 d0 c7 c8 q; c3 M #endif% c: h6 v( J7 s
nHour--;) S$ u6 e' q+ d# v- v! E; e ^
if( nHour < 0 ) nHour = 0;
. M E: u9 H% B9 P if( nHour > 23 ) nHour = 23;7 t2 _; U2 \, H( j
1 l) g5 ]: z/ U* j& e. P) q //if( m_bFixedHour )% S; e: _* i! z$ W' {4 ?
// nHour = m_nFixedHour, nMin = 0;# Z/ x: x& E$ p4 i3 E8 m
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];9 b9 W$ }- i9 G' R$ ?
LIGHTCOLOR lightColor = m_k24Light[ nHour ];1 r* w- n9 ?; U- v
* M5 f' n$ C2 Z9 U, a! [( y8 H1 n. u9 V //m_lightColor = lightColorPrv;
5 Z' O! U# Y) U3 }# r# J lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
( c: ?4 c+ `1 H% y1 x lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;2 F+ r7 E/ W, n& Q4 x
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;9 n) r; y0 P+ H2 G& h
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
9 Q* r# N7 }8 b" L0 m lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;# V1 p" U5 I) v8 e; U- j$ W5 L
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
6 u: e+ v \( O5 g7 V% [; L1 B // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
' x$ u- _5 O, r- e
$ E* i5 A. ^5 ^$ C% y" p& W; L, J // à??μ oˉè* & P* x# m# _' |' \/ G) J, X7 O
pLight->Diffuse.r = lightColorPrv.r1;/ e4 ?3 J1 S( K- o6 L
pLight->Diffuse.g = lightColorPrv.g1;
8 g" E3 q x/ ^1 n$ @+ C/ [ pLight->Diffuse.b = lightColorPrv.b1;
8 I# d8 O! ?: e+ }- {$ _ // oˉè* ??à?
$ r1 g3 |/ o. u% t# x5 d Y) Y: E pLight->Specular.r = 1.0f;
3 |! \, J1 i4 H& j$ k" J! N$ l pLight->Specular.g = 1.0f;
; T$ k% ]* l3 w8 a pLight->Specular.b = 1.0f;! n$ q4 ]. j& J4 k# k. J) A
// àü?? oˉè*
) q; B! l; F, T- K7 O! w pLight->Ambient.r = lightColorPrv.r2;: @) k$ @' {3 o6 M
pLight->Ambient.g = lightColorPrv.g2;6 E. X: K9 I! T: ~! H/ p- _
pLight->Ambient.b = lightColorPrv.b2;. D8 s5 s9 s. X, R: w9 b& V" ~
/ c+ R. Z2 u( {% W& V& D if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
( o6 y( j" G* N8 W7 K+ `2 P {$ w1 W# _2 G+ L, H: |/ ^# _; T5 s
pLight->Diffuse.r *= 0.6f;
x- w7 c, H2 v, R+ r pLight->Diffuse.g *= 0.6f;' J. a, x* ~7 z7 X4 s" G3 ]
pLight->Diffuse.b *= 0.6f;
1 J& b9 Z9 ^5 W3 k: _* c pLight->Ambient.r *= 0.7f;8 X, {- L' O! \1 k' a& b+ N
pLight->Ambient.g *= 0.7f;
4 {3 M8 V( E/ {; X) K9 w pLight->Ambient.b *= 0.7f;
, P0 u) E0 m" { }: F1 k/ }; i% I. J0 i
1 H# O2 y0 }, k ?* r8 f! V
#if __VER >= 15 // __BS_CHANGING_ENVIR
9 ?3 b H3 s' z if( g_pPlayer )- u/ P) E$ x2 v
HookUpdateLight( pLight ); ; P5 Y: X$ d3 w8 k
#endif' D1 P. T2 T, X+ [6 j
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' d6 V* y6 g1 t5 `
2 Z/ [ C7 z5 n5 m. J#ifdef __YENV
" @4 X2 x2 C8 e. P# h pLight->Diffuse.r *= 1.1f;. y( i: I: E+ m8 F7 y/ Y* [$ s
pLight->Diffuse.g *= 1.1f;
7 H# A9 ^: c* T/ H3 B pLight->Diffuse.b *= 1.1f;- Y& M4 t- ^. o1 H" U
// oˉè* ??à?
1 }& h4 J9 G, y+ k5 D" w% D. y6 U pLight->Specular.r = 2.0f;
0 O0 r- M) B" e/ m pLight->Specular.g = 2.0f;
% C8 \' j5 c/ S4 e5 w3 A pLight->Specular.b = 2.0f;9 Y0 N& z8 T$ ^: t$ G
// á?oˉ 7 t, W! F0 k/ r& M, B
pLight->Ambient.r *= 1.0f;
) j- @1 O) {9 p( p pLight->Ambient.g *= 1.0f;
* h) A) s, B5 V* F4 g pLight->Ambient.b *= 1.0f;% \/ q. a5 C) }' w, S9 z
#else //__YENV
) S; S# q0 w- S! n' { pLight->Diffuse.r *= 1.1f;. J5 R+ Z2 j+ C, B
pLight->Diffuse.g *= 1.1f;5 Q- r5 n* J/ ^7 k4 L( [7 P4 Z
pLight->Diffuse.b *= 1.1f;
" F0 W" X- _* i, s; d( j. L // oˉè* ??à? 8 q7 J6 q6 _6 z6 K+ I/ F
pLight->Specular.r = 2.0f;1 ^+ J: M) o' A: M" I5 r
pLight->Specular.g = 2.0f;
3 K8 u4 l* p5 s, K+ p, [ pLight->Specular.b = 2.0f;
' Q# V, R+ u9 x1 e, l( g! D // á?oˉ : Q7 e. K& F/ e- F6 n& N, A4 A
pLight->Ambient.r *= 0.9f;
9 p% b0 T! v0 p8 N) V5 i; m pLight->Ambient.g *= 0.9f; z/ M, y& p8 F
pLight->Ambient.b *= 0.9f;
4 {, D' `) Q) R" X0 l! s3 B% C#endif //__YENV $ b, S- S1 E) y% G# |& s
1 `: ?- i& W6 \7 `' B; H+ u( F memcpy( &m_light, pLight, sizeof( m_light ) );
0 U- O3 J7 s/ Z+ D) r+ I x, t" ^
; x4 A. L- a4 Z% W5 ~+ `! w5 ` D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);* X& k, g* Q1 l8 ?
D3DXMATRIX matTemp;
7 ^, q% O( V: S& W; i static const float CONS_VAL = 3.1415926f / 180.f;
# @) w- ?. s) J" \8 Z) x1 C4 @* h$ I; F+ L4 R8 L
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);8 m& B3 w' U4 X8 w. S! ?( g( I
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);# }7 R9 e: {, b4 F" e0 b
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
. C j1 G! T3 ^, Q pLight->Appear( m_pd3dDevice, TRUE );" J8 y7 Q& x5 T; {* z" k
7 n) y9 q. w3 m4 m8 ~- e# j8 q- @ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ o# W; X; n. y# a
// D3DXVec3Normalize(&(vecSun),&(vecSun));
. N9 E6 z: H* b: T% K0 o: v // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
6 H0 X' n D6 J) e# C! V. H" W; W8 p* ^! V% Y- h/ W* X
DWORD dwR, dwG, dwB;
- W; d# Q0 n3 L' W dwR = (DWORD)( pLight->Ambient.r * 255 );
! n2 o C) ?0 _, i dwG = (DWORD)( pLight->Ambient.g * 255 );$ x7 a3 S2 G1 }
dwB = (DWORD)( pLight->Ambient.b * 255 );
4 Q, a3 r1 ?5 o: S7 }" K3 ^, B5 ^ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 ]/ [# m" D+ }0 Q3 [* V }/ O1 ]5 h5 K5 Y) e3 h
}9 X) d+ S" j; s; U0 G5 a ~9 g
2 e m" ?) B; B% q; e
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );8 o7 A1 c( z: A, ^4 ?6 ^) G& ]
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) );
4 A" H4 r9 H) \ ::SetLight( bLight );
+ z% F0 M. {- j) j. T3 p* c- ?5 J/ x% N& j" `$ s& c2 ]. d
// ±ao? ?D?í???ó á¤à? 4 r+ E% H% u# F
m_pd3dDevice->SetMaterial( &m_baseMaterial );
, n3 z3 z" G7 H0 M! J4 `
4 s7 [- ~$ b. ^1 m% {" k) {#endif // not WORLDSERVER
! _. b' U* `. ?% w2 ^* J}
|9 ^# V* R0 M& f. O/ k; q并更换" [. U; |' p6 z
Code:
5 Z, I7 g4 P3 e: g3 t__FLYFF_INITPAGE_EXT
- V. e) k7 o( N! G% @, q定义) @2 g; Y) \; O( A+ [: w7 H
& j" l1 v9 L T% U( o5 `! J4 z; R, \9 c
! V, W; |7 |/ c
$ ]4 s, S7 V% D0 n6 _! e s! g& N' A6 D$ i: `* ^4 t, j
现在终于删除我的狗屁加速...
4 f; b6 [5 U" D, U' y2 W6 O) X' Z e; N8 D
1 b+ u! F. ?4 F# y$ C# {9 I
% y) ?, E6 a5 E6 R |
|