|
|
食品车:0 N( D1 V% v& b. ]
尾翼: v3 \7 E4 T; n8 I" c7 V/ O8 {/ A
" K6 G1 u# W& M/ V7 }! r# ]
代码:5 d, E! `3 G! C4 P R* w
CWndAutoFood::CWndAutoFood()+ ?0 [" d5 L N% P) o) X& r
{' F2 v1 K7 i6 p- Q9 k U
m_pItemElem = NULL;
5 N8 Y/ P) a- j! X# h* U7 } m_pTexture = NULL;
& v0 w: K6 _) d( f+ e bStart = FALSE;
5 P. A* n- \1 ]( V3 D/ w! D7 b# e}
% e. s: i( v) e' V; |/ G P9 c1 n3 q7 _+ I3 j `
CWndAutoFood::~CWndAutoFood()
4 B7 P' N" J, M/ u5 m8 N9 S{2 R% v2 e8 N8 V
AfxMessageBox( "AutoFood ist gestorben " );
; q$ o9 j; o5 o+ m$ R}
! b7 J5 y$ j. E( [+ p; JBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )# N) O2 O2 r) @; T3 v) T
{5 A R9 r/ A `3 v, p
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );6 W' n* n% X) i! A) Z/ g8 O4 ]
}
! Y/ Y( N: ^9 g( R1 |* R; W L5 B' h M' R3 b, O; I
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )9 m# ^) `' Q7 G! y
{
1 n) l8 Z3 F N0 Y LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! q, J S" p: a CRect rect = pWndCtrl->rect;
" x6 R9 N' E) r$ _6 L( H; I( v if( rect && rect.PtInRect( point ) )& n; @: e1 u. Q5 _6 \$ p* u
{. J2 ~2 z4 _( v; G
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
" U( f% ]. \) U$ `4 N if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
1 D' s K' `! P1 { {# ^* r5 U0 g4 i$ b- I2 C' d
if( m_pItemElem )
; u( m7 i6 e, @7 f3 Q {0 B/ M, ^* a Y& y- k/ W. J4 s
m_pItemElem = NULL;& W8 s1 ^- G) C) }% F4 V
}2 u% Y0 h; S$ W8 @) n W
m_pItemElem = pItemElem;0 k$ ]: }' t+ ^( X$ |2 c
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
a8 m1 w! a: x }else{1 I. z! n. z5 [4 y7 n7 v# g
SetForbid( TRUE );
/ X& @0 W3 j) P: D1 \ }
/ F5 J* {, L% }0 @ }else{
# h% R% E, b5 [) j4 h3 i% V2 b SetForbid( TRUE );3 }) ^0 N- k5 @! S& P
}
- } g, } k s' A2 I$ p return TRUE;& n' U) n! W: @6 V: y1 [
}
. Z r. {* ^' }
/ b7 f: r7 @; _& I. JBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
$ _1 o6 Q5 B4 T! B) l( h, }3 H{7 `+ s- Q7 q! E3 _- g) N
switch( nID )
0 b& O1 T$ F# f* }% w0 } {' ?0 Y3 o6 P: d+ ]( r+ h5 `9 f
case WIDC_BUTTON3:* r9 O, ?4 o5 T3 Z" ~
{! U. w% b! O: `8 D6 n2 f/ q W' A
bStart = TRUE;
6 B D; @# k7 D1 O, g( Q break;0 E7 b. f( v- f O/ S, J
}
' w/ i5 [1 o' E* _* z4 M case WIDC_BUTTON4:
0 n( {# d2 o& U4 O- Y5 ^ {- t) f( C/ l$ ?8 R, C
bStart = FALSE;* H3 ]% m5 J h3 T: K4 l
break;
/ V) g- k/ k5 P5 H+ Q }. n: ?3 w2 y! Y+ h
}
8 B, f8 V U4 G( c- j1 l x return CWndNeuz::OnChildNotify( message, nID, pLResult );/ m- A* \9 k2 [/ O6 T' @! H7 B# g
}
$ J. ?( K# P0 ~$ @2 G# |void CWndAutoFood::OnDraw( C2DRender* p2DRender )8 e( u# C, u% K* M, S; ?
{
, F I# @* y: R3 P0 E* N CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
1 @9 p) t9 H0 g5 l3 D1 i if( bStart || !m_pItemElem ). C$ @. W/ k, T. B& ~) B
{
& P/ ^+ K% n3 `8 `- ? pBtn->EnableWindow( FALSE );' z( l( a- I1 ^0 `% X0 u& c2 }2 D
}else/ N3 X/ C9 m# G9 c
pBtn->EnableWindow( TRUE );' d9 S$ t' j# Y9 z# g6 i
if( m_pTexture )9 ]. _8 E Z) q- ]0 b
{
) U& \, T5 [' G A& Z. Q LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% i1 ~" Q( Z5 X& _: G0 S7 v% E/ W% x
if( wndCtrl && wndCtrl->rect )
# W1 j7 z* b6 E, E( N# n {
\/ L+ u7 i3 f4 Z" Z! k1 G5 _ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );7 N4 y9 d0 U9 g
}3 M0 r6 ]) Z8 G3 j" i; Q7 r( {0 c
}
: n5 i7 h* U2 M* O9 K}- r2 v; w8 J6 C- x/ ?3 b
; c1 Z$ Q* k& C- p P2 y
BOOL CWndAutoFood: rocess()
' I8 G h" r6 M, M8 B{7 F! I4 W% C4 ~( O; K
if( bStart )
, R; f% t1 m; p7 n {& j+ y: G9 J& u( f
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
2 l% g- [( W' L( C {
1 ?/ t6 ~6 ]' L9 G+ {8 r, g7 ~- Z if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
Z9 m: o4 V$ j0 M+ o g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
% X0 Z$ l6 F+ `: I' t J, T }else{7 R* @1 a! b: l6 h
bStart = FALSE; b6 e, r' w5 e' i
m_pItemElem = NULL;' k+ b9 g" ^2 R, o5 L( z1 m
}
% Z4 _/ q1 r! J& o, w' \( |& T }
2 y; N9 n4 U' v6 ^7 d return TRUE;
2 J! _2 t; p0 G/ c}4 K- M; e; X7 U0 i3 B
. S# M1 e! [1 V/ d" G* j; L
登录视频废话:
8 F T4 D, v0 S" Y/ h! M6 h9 \尾翼:5 C- v/ f! G3 N% S. D
8 _' N+ `* M% _; S3 G" |
代码:' q/ P3 S& K$ j ^0 T/ H
3 i G6 y3 I% x* p( h& d
void CWorld::SetLight( BOOL bLight )
$ e7 u3 ~6 v( W) ?/ }# ]1 xdurch
7 F, J0 i! F1 L. ~Code:
6 T$ y9 c* Z) _) U0 Bvoid CWorld::SetLight( BOOL bLight ); A; c- H6 m# p/ M
{4 U" ^; Q1 M2 f8 l
//ACE("SetLight %d \n", bLight);) |( D3 w2 U! x8 k0 K1 h3 g
' B# f# K$ k7 S#ifndef __WORLDSERVER
$ x, v* X" h) a, t& }$ ]9 h DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);3 G/ A2 m( Z7 w5 ?; j
CLight* pLight = NULL;9 l& Y- U' U( ?5 F. n
1 C* t) E- f( c& U; z8 i* w D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );" W0 B$ x! T2 z7 E
0 p; `0 z% [2 s- D/ n4 S3 |7 \
pLight = GetLight( "direction" );; W+ A% Q, L; F6 F* y( D, \ Z, G( `
' k9 u) E3 N$ g5 V% C
#if __VER >= 15 // __BS_CHANGING_ENVIR
; L7 g6 }) }* }: z! t* Y if( g_pPlayer ){5 E. J- b! ^* w5 r; R$ c
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );- d0 }% R) N* L% `* r! l; [3 h
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!: I0 F1 l8 D: a! r" a4 z8 C0 M
{
0 j2 a. Y) m" e" F0 c: h/ d if( pLight )7 J7 k5 T+ ?* r8 y6 D2 F3 Z
{+ T* t3 [' j4 L
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
3 Y- H4 o8 P8 L# n pLight->Ambient.g = pInfo->_fAmbient[ 1 ];7 T5 q0 S0 Z( Z: h- D
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];& d t5 a, S2 g1 O- ?# \) W
' [( e* X1 k1 |0 T( [# N7 h/ y
pLight->Specular.r = 2.0f;8 |9 o% q1 r; B* j t
pLight->Specular.g = 2.0f;- [# U& l; ]' P# e
pLight->Specular.b = 2.0f;7 B/ H1 b" ~# \, w( n& Q% t
$ b# |! k! j" N: i
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];" F4 y K3 p8 ~; J M2 K
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];/ d# C- }4 H" t2 [8 E4 O
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
4 {) j; ~6 E) h7 k+ m
5 c9 n, n2 H4 [% k9 {, t HookUpdateLight( pLight ); 2 \% U4 P6 `9 e: m7 R6 E
. B/ j' r& ~ l O: a4 f1 o" @ M
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. [" T! v5 v" _, a( J
0 Z5 }) b* x1 Y$ H% y4 u n
pLight->Diffuse.r *= 1.2f;) O0 j2 S* o1 P0 L9 u$ d2 K$ d
pLight->Diffuse.g *= 1.2f;; d- @$ V9 x+ U2 D( q7 a8 N. \7 S
pLight->Diffuse.b *= 1.2f;
+ Z1 z4 D9 _+ T4 e6 o+ e5 u& Q3 m$ s5 H) j
pLight->Ambient.r *= 0.8f;/ {+ q2 L6 S! _! [& [1 P- l7 j0 @3 z
pLight->Ambient.g *= 0.8f;
/ c8 l( {2 T7 ^( z/ S2 p. K0 o pLight->Ambient.b *= 0.8f;% ]5 J; h0 ~$ }# o0 ]8 B
9 ^& y2 H5 X' Q memcpy( &m_light, pLight, sizeof( m_light ) );
4 \, X( P4 ~1 [: T; I
/ C. R( Q; D3 u( M# K4 R4 R D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
' l& L- ~# }3 V( w5 ?/ ?# @ D3DXVec3Normalize(&(vecSun),&(vecSun));( M) X$ Z3 }6 g: G5 y# r
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 7 D% p5 x: x, z9 _6 R/ Q" t
pLight->Appear( m_pd3dDevice, TRUE );
9 a; M! S7 g" M6 |
5 Q8 M/ Q, z) G3 c. H& `" _; x DWORD dwR, dwG, dwB;& I# A+ \9 k2 n
dwR = (DWORD)( pLight->Ambient.r * 255 );2 P/ l1 M' [9 P3 f
dwG = (DWORD)( pLight->Ambient.g * 255 );
& l1 X( j+ |, k" b; E, H dwB = (DWORD)( pLight->Ambient.b * 255 );
& [5 r* G) i$ X) R" _ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) f7 k. d1 I2 v% u, p
}
, f, Z. D h: ^! F% u }: |5 T: E) O/ ?$ u( Y
}$ u( y7 k8 q9 _/ C
else
. e E9 E. T. l N1 y! ~#endif
- X$ B1 A" R( n5 c+ }" q& [
0 x* M% ]' R) h5 v if( m_bIsIndoor )
' T H( ?9 F, S- x5 ~" v# y+ f {8 y s6 P/ Z1 D) l& F0 o7 V
if( pLight )" j* a1 U2 N; e7 \8 J3 `5 Z" x
{ 3 U5 r3 {+ J* T
// à??μ oˉè* / w* ^5 k. R6 l3 W: j0 ?2 p
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;% `: m8 o. L3 [1 J( i9 ?, n
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;/ z1 ?# i2 M* k/ ^- d4 T' Q
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
$ P9 K4 V: i; M1 U1 d! J/ t9 {% K8 `. k4 B1 V }
// oˉè* ??à?
7 K7 W. n+ o! Y/ a$ f. l1 H pLight->Specular.r = 1.0f;
0 l2 K( G0 Y( u. b/ g7 S pLight->Specular.g = 1.0f;
: }0 d' K Z! X2 l" o pLight->Specular.b = 1.0f;: @4 P4 C- `1 V
// àü?? oˉè* ' r4 F1 h3 E& I& H
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;& G. X2 e& J& F) u ]! n9 ]
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;5 R7 @* p# N. [8 \5 l
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;/ c$ k/ M4 _/ B3 [: j
# e) I7 B$ [+ G6 d+ }
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.. f; w& H) T: N' Z& V$ e
{
# q1 A' J0 f+ v# Q6 o" L: N1 ^ pLight->Diffuse.r *= 0.6f;) e5 C- E7 u7 A( H W# C/ \
pLight->Diffuse.g *= 0.6f;
( R3 D/ t/ Q2 S4 R! Q o& E7 j; w pLight->Diffuse.b *= 0.6f;( o+ w; q4 v$ l
pLight->Ambient.r *= 0.7f;( [7 U2 d6 N. J2 @
pLight->Ambient.g *= 0.7f;
' r9 O) t" B2 N4 P pLight->Ambient.b *= 0.7f;
* z! j! X! p% v5 ^3 X m }
, x% ], F* P; Y0 k3 L1 _0 m {2 S7 r3 T. M
#if __VER >= 15 // __BS_CHANGING_ENVIR( T$ R- m" D! r6 {+ u
if( g_pPlayer )
! B, u) E( I" [% F8 p6 Z" \ HookUpdateLight( pLight );+ Y- q9 e C$ g$ ?/ R
#endif8 q! b! M# y: K( |/ g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 Y$ X2 Q4 F) u) W9 Z& i. {# | F: x: l0 h* G9 M# V
pLight->Diffuse.r += 0.1f;
% z( S, h- ^8 k; a; Q8 {1 \; B, h' O pLight->Diffuse.g += 0.1f;0 J% g" I7 w* ^, \0 o
pLight->Diffuse.b += 0.1f;
& g9 r6 t2 {" W% Y# G* y // oˉè* ??à?
- a/ R- x; @9 h! I6 |( ]" T0 R1 e pLight->Specular.r = 2.0f;& s- F4 u H7 U5 u2 C* ~3 h6 o7 v
pLight->Specular.g = 2.0f;
, _ P3 k/ ]4 P7 T% B6 H$ Y2 j. t pLight->Specular.b = 2.0f;
% S3 o: [) l' h S# Z% t6 \5 \ // á?oˉ
4 r+ B& }/ l6 h* t% g' m) n% H pLight->Ambient.r *= 0.9f;: n. V* ^3 [) Z" X9 k
pLight->Ambient.g *= 0.9f;
b, \) Z1 r& B$ U# @ pLight->Ambient.b *= 0.9f;; L- k. h5 Y8 z) K9 d4 z
5 A. Q, [$ q2 Z8 U Q
memcpy( &m_light, pLight, sizeof( m_light ) ); `4 V& N3 j. s5 z6 s
! O$ r: j( X# k9 w) c pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );/ m' W. y/ J. s5 h
pLight->Appear( m_pd3dDevice, TRUE );- @- o3 N5 \/ O6 z; t$ k7 T
, Q/ F/ _3 Y0 B+ V9 \ DWORD dwR, dwG, dwB;- M3 g# m9 K# k6 E
dwR = (DWORD)( pLight->Ambient.r * 255 );4 [) y6 ~. g m, W% E
dwG = (DWORD)( pLight->Ambient.g * 255 );8 x% f; \( I+ H) W2 V7 K
dwB = (DWORD)( pLight->Ambient.b * 255 );
# `0 P; Y% H( J n8 i" {$ K dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! _, C4 K0 b. T1 Z7 o M: Q1 Y( k) ?
}: L- I4 H( J; T$ r
}
% I3 t+ r& r; u* D8 m% e- W else; \: s8 P& p& d# k: z
{
. N8 z8 N8 |& W" y if( pLight )& ~0 z# ^* t9 k* A8 \' v2 j5 \
{" z! r4 J1 j: o. M% Y6 y4 Q6 |5 X
7 z; ^( S g* D/ F; w A int nHour = 8, nMin = 0;0 O1 f0 H% T2 g4 Y% a8 P' o+ s
#ifdef __CLIENT
4 [, c# i' w: h // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
9 j4 w% [, \9 O% h! X; E8 E nHour = g_GameTimer.m_nHour;
; W4 \4 }6 {7 m9 l- [& r nMin = g_GameTimer.m_nMin ;: l6 g" u m" M$ e7 o; k' }
#else* c6 f3 p7 ] {7 D2 v$ z9 ]! H
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.$ f, q& `3 r: Y! V6 C, A
if( m_nLightType == 1 )( X) u# F( U1 _
nHour = m_nLightHour;
8 E. _5 o2 B) J% V #endif# @. }3 W+ X& F/ ]; p/ p! j
nHour--;
/ S" `! l2 d; Z3 j2 S b) H if( nHour < 0 ) nHour = 0;
8 F2 }: j g4 z0 f if( nHour > 23 ) nHour = 23;
N# _; ?0 m& N3 G* Q' ?0 z9 b' @2 y# I8 Q7 w" Z$ F( [% D7 \
//if( m_bFixedHour )
9 `. a5 _5 z7 v: T0 ]% P& H' z6 W- L# n# { // nHour = m_nFixedHour, nMin = 0;
, q0 u( w' ?- d' [' u8 T LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
v/ O! ?# u' V, p: M7 A LIGHTCOLOR lightColor = m_k24Light[ nHour ];$ J4 E7 ]( z# Z5 A: T* F
4 s: `/ X* b9 f; u4 O& P //m_lightColor = lightColorPrv;
& [( j( ]3 F/ M4 `9 @ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
- Q! P5 x1 R9 v( w lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;2 i( ]& d8 U$ r
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;' M" |3 F [# W
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60; Z9 h/ L1 z, @) @5 v" e
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;+ q7 G: _9 @# d% v
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' p) m$ {, J$ o* [3 G
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% F( g8 ~2 u% c# R/ C
! b% e8 V) F9 P3 ~( s! {. S // à??μ oˉè*
- ] A7 A7 g6 p% J- e9 _ pLight->Diffuse.r = lightColorPrv.r1;
) k- j0 {: {5 j- y; q/ T, H5 o pLight->Diffuse.g = lightColorPrv.g1;3 V# A l( t, P5 S
pLight->Diffuse.b = lightColorPrv.b1;
. D, h* m# D. T/ R& W% A# k // oˉè* ??à?
/ w; @. q v% S# } pLight->Specular.r = 1.0f;
: `2 X+ d2 E c) Z9 l pLight->Specular.g = 1.0f;7 k! T$ ~" C5 N. M. k6 ~' F5 H, o
pLight->Specular.b = 1.0f;
5 R5 O1 q% r& y // àü?? oˉè* 4 d# O, ?8 y$ W q
pLight->Ambient.r = lightColorPrv.r2;
7 c4 s" g$ G9 W pLight->Ambient.g = lightColorPrv.g2;
, M+ @# Q# g& O pLight->Ambient.b = lightColorPrv.b2;
8 ~$ {9 ~+ L% `. ~2 g- m
. I1 i' q! C% |* I if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.4 j. V% J( [4 @' n; c7 a
{$ k0 f* d3 i) p
pLight->Diffuse.r *= 0.6f;& C P1 o1 ~$ }+ T6 ~5 K6 x
pLight->Diffuse.g *= 0.6f;9 W3 H h. f3 C! {+ x
pLight->Diffuse.b *= 0.6f;
- f7 v; i ?% J) I' k6 C pLight->Ambient.r *= 0.7f;
; @3 \( n5 q* {7 a8 C( y7 v pLight->Ambient.g *= 0.7f;
( {7 s0 |# d& K5 X2 Z* K pLight->Ambient.b *= 0.7f;9 i1 S+ z* A. H, g" h
}
3 o5 M$ @0 k: `7 |5 g * h4 C% @" B0 H+ u9 R
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 @- T+ ]( Q# h$ C if( g_pPlayer )! Y! T* w/ @* i9 ]4 U% i
HookUpdateLight( pLight ); / n2 o0 @9 v, V) V: Y: {
#endif
: Z: e( r% C$ t memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 d# u5 }2 }7 B9 W
+ w6 y/ ?+ M6 h2 q$ X#ifdef __YENV6 S% g9 g7 ]/ T4 N
pLight->Diffuse.r *= 1.1f;! T8 e! z( P$ N' c7 h8 o! J5 _
pLight->Diffuse.g *= 1.1f;1 n6 I' i# J) F5 ~: ]
pLight->Diffuse.b *= 1.1f;2 \7 r: S* ]0 [# r% k9 N; ^
// oˉè* ??à? - P" Y( P' o) R' m7 O8 x& U
pLight->Specular.r = 2.0f;
/ _ r- a. ?$ c) I' l" C' h pLight->Specular.g = 2.0f;5 @7 Q7 O+ R+ l2 [. e, m" u& D
pLight->Specular.b = 2.0f;( c9 j4 Z" O/ \& o) T
// á?oˉ 6 x0 l/ u9 L* o, d! Q
pLight->Ambient.r *= 1.0f;
2 z! Z( W$ h0 p# }4 z4 w( j pLight->Ambient.g *= 1.0f;
( r* ^. L5 x4 T) @/ u( ?2 { pLight->Ambient.b *= 1.0f;1 e' H% x& w) W W- S
#else //__YENV
, x5 T( L4 b C7 h5 \3 a pLight->Diffuse.r *= 1.1f;
' J0 o6 M; u: A1 G# q5 I% v9 C* { pLight->Diffuse.g *= 1.1f; a5 n7 n8 u5 A
pLight->Diffuse.b *= 1.1f;
4 I A# X* w6 ` }: Q( P( s // oˉè* ??à? 3 Z3 V# a5 y+ F7 V9 j
pLight->Specular.r = 2.0f;
! |' w- |+ l; ?+ t/ F( _. A pLight->Specular.g = 2.0f;
8 r% Z B9 g7 u) v8 m. k pLight->Specular.b = 2.0f;
$ a( o- Q1 K6 M+ a // á?oˉ 4 }% d. P% p' J. t4 O F
pLight->Ambient.r *= 0.9f; L" R2 f$ l( _" d+ o8 p" y) ~
pLight->Ambient.g *= 0.9f;
& ?! r( E" D: b pLight->Ambient.b *= 0.9f;
( L4 K+ |0 ^2 o8 ]& g, L8 y#endif //__YENV , [# C7 f, r) G& g7 w
$ }% r3 J4 x2 C! W. \ memcpy( &m_light, pLight, sizeof( m_light ) );
4 y2 `0 }% m) D 9 T% F* p3 p: a V& }3 H7 m
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
* S! h7 o- g' I. J D3DXMATRIX matTemp;5 g- J4 W; s0 }4 T! a4 ]$ X. E
static const float CONS_VAL = 3.1415926f / 180.f;
1 x$ U- Q2 v9 \: s3 y) a$ f" V y, T, ] n3 O& C
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
- O9 @) p, C" H% w; N" _ D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);/ f$ a3 D5 j3 P0 {* E+ U% j Y
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
! F) I) H0 j7 g. ^" t$ f, t: Y pLight->Appear( m_pd3dDevice, TRUE );8 X8 g$ u9 H7 y* |2 J- N P' ?; e
* R: K" G% P2 G* u // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
. G8 v# S$ B1 N3 P" t3 Z, i, K // D3DXVec3Normalize(&(vecSun),&(vecSun));* r- ` S* a; ~
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); W" ^: S2 Y6 b2 p
. R+ f+ D7 G+ n
DWORD dwR, dwG, dwB;. p5 V% X1 }/ [3 [& [. c
dwR = (DWORD)( pLight->Ambient.r * 255 );& q5 E" y& [) p
dwG = (DWORD)( pLight->Ambient.g * 255 );
, J3 _) z* x, ~ u* d) `8 d dwB = (DWORD)( pLight->Ambient.b * 255 );6 _- o* [5 M, C4 t1 X: L
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, R% \! |, {8 Z$ \1 [' a }/ q$ [/ J1 i; U4 v
}
; n5 |( [" i8 n* d! j1 R. j" I' o ]
) b9 x! {* R# C6 j0 p m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );8 F. v/ Y* y7 n, ~8 I. H
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) );
0 ]& n: A- ^/ q! Q0 w2 Y ::SetLight( bLight );
' q/ U0 R+ L9 |+ L' Y& X# M; {7 c8 ~( r0 i7 ?0 J1 x& F- E
// ±ao? ?D?í???ó á¤à? ' c8 ~" o1 {1 i3 j: G; A
m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 |: _3 L7 E, I" i/ D $ }" R% L5 S C$ G$ h# z; @. C: }5 s
#endif // not WORLDSERVER
7 n* e. ]. f+ s! n. K0 }0 E. x}5 K) l8 h8 b1 D3 f5 Y
并更换3 i# H4 \2 K) \2 T0 h7 f. Q
Code:1 F: {7 J% X! }' j$ }1 c2 P# n- d
__FLYFF_INITPAGE_EXT
( O* V: U6 O5 V9 K3 E$ A# l定义
+ `* ~4 E4 J. N% a$ A/ b" K: n- L/ E
% O" p* G" F: `, M6 D
8 c% p6 y& ]: S3 ^+ \; v! N+ E+ j7 u3 i+ a7 H
现在终于删除我的狗屁加速...- t7 O) M) I q; c7 a
" }+ C) g7 V+ b1 R7 d4 N
! c3 O) ^$ i# o9 D" O
9 `0 `( t& @- o$ q$ d. ?# j t |
|