|
|
食品车:
. Q( v; P5 i& c: ]0 ~3 M尾翼:
+ x' h( @8 W+ U3 Y! {) m1 O( D$ c- r0 R. V
代码:5 K% L; [5 @8 J; q/ n s
CWndAutoFood::CWndAutoFood()
! S& M( Z4 T: g5 B( d{
R2 A" x1 n; P, Q2 k5 Z3 S8 s) M m_pItemElem = NULL;7 @7 U) ^# W: a) U- [; H2 S2 j5 ^
m_pTexture = NULL;
$ k L2 t6 ?4 Y& R) | bStart = FALSE;& I9 K9 f# X* X
}
1 q/ v) J* d+ Q6 v3 `
' C f \/ v* N C# @5 q* T; k/ ACWndAutoFood::~CWndAutoFood()
) x1 b' q- `0 m+ s; b1 g0 d{# A# ]# D& V: X" O# a
AfxMessageBox( "AutoFood ist gestorben " );
' Q+ Y* V6 q7 Y: {}' b8 v3 x$ {& n; H4 p9 u# n5 c& j
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
2 f$ t( S& P8 c. b2 f: N5 c5 h{
6 c/ m0 z' ~; B return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );, i7 t" k1 w8 B9 ]' s
}( P# X, {9 P. @# _* c4 Y/ R6 c
6 {4 {* B; G) {0 E; K( n" dBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )5 j' [: v) ^& j6 a
{
0 G M+ |$ j0 J) T% C8 g LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
6 I% g! W1 y7 u1 r' ^ Y4 m, Q CRect rect = pWndCtrl->rect;
+ c7 M% t- }3 s) w; n. R; }$ d0 ] if( rect && rect.PtInRect( point ) )
( z% S( y4 O O- i7 A6 r8 w {
. {4 @: M/ `2 y! A' q CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
& [( c5 n! d# c$ k" ~; ]+ ^' L9 B' T. f if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
$ I9 }6 C# t3 m, D8 X' x) R" @ {
2 ?, S: t6 x8 u) R6 E0 [ if( m_pItemElem )3 J9 E9 t& D$ _% B! T9 U
{
# H* a( C$ F. G& A( ` m_pItemElem = NULL;- s+ I5 n3 A3 s. s
}
& w0 E. i' `; ?. r: h m_pItemElem = pItemElem;% V" ]$ ]. z5 x
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 n% v1 `! b1 m/ p8 y' R* E }else{' n! Y% i) ^: b* n
SetForbid( TRUE );5 S7 Z- W! B/ ]3 z4 o6 A! |9 ~& Z
}
r! ]# O4 @' l }else{
9 b/ B) ?) p8 L4 U A SetForbid( TRUE );
* W. Z' c1 E J6 P, i }
# Z; l- ]- x. P) M return TRUE;
5 H' W% b) J3 o" D4 `}0 I$ U! J5 ?& |. G# U4 e) ^! X- l
/ C" _& D& D) L% W0 M' y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )- l( i) H u. x( E* q6 ~* H0 R9 `8 f
{- k8 c/ `9 Z7 V6 I6 O# d
switch( nID )
8 u- E; |- z* g6 K& ~ {
3 y8 m; l" W. \3 j case WIDC_BUTTON3:
Y& x* |' ?, g4 U- H7 T% U% E/ | {1 H( {6 i; f5 G* z* d7 ^8 B! u G* Z6 Y1 ]
bStart = TRUE;. }% f1 [) Z* X
break;
, W t6 j" C. t% u& G }
9 \, } Y0 r% I, S, T' _9 N case WIDC_BUTTON4:$ M2 P4 i9 L" q" U8 m: @) T/ p
{
$ f1 Z' b. O; Y4 S bStart = FALSE;3 }& x+ a: \9 I6 H/ V+ x
break;
! M3 Z1 Z' a" v( m; g* V }8 ?. q" n2 O K' B& n+ K C f2 z
}7 g: Q; k" L `& ]( h8 `3 N" f
return CWndNeuz::OnChildNotify( message, nID, pLResult );
8 k/ t* i' j8 b' U} 4 I2 ^! j3 r% p6 _' P
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
% G) b) m# H& i; G$ e9 ]4 v8 o{; F% [& B3 }; Y2 Q0 a+ S
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );9 k1 {0 u5 y) \ r& y: Y
if( bStart || !m_pItemElem )
! i; t2 Q! p' G# p, Z {
" c% q2 Y( w8 o* Y: Z7 w pBtn->EnableWindow( FALSE );
* q9 h* x, |1 f8 k% ^8 L4 @+ P1 P }else/ H+ ?+ [6 p; p1 C' A, E
pBtn->EnableWindow( TRUE );
, c# x5 V8 O9 q& ]; @* f if( m_pTexture )
) ^1 e- m: D) _- X, v {# n, t B9 w+ z5 n
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! ?1 b$ C$ h F0 p8 ^1 L+ O if( wndCtrl && wndCtrl->rect )
2 c. Z. j g/ V ? {
2 Y* Y" Q Z5 U6 E! b# v9 x m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );2 f+ U& f" `2 Q" n# i% [
}
4 Q' ~# t* n0 u n! ^* D8 r } s8 ^ {7 ^3 e" L
}3 j, _2 N5 P; k, e* L7 n
- `3 Q) a6 E4 }! a) d3 l& y3 \
BOOL CWndAutoFood: rocess()+ @7 k* {. N' j$ H& n5 K
{
. q1 Z9 \& D- Z( S1 J. |7 C if( bStart )
4 A+ c3 I+ x: n2 n7 J {
( G6 H$ Q, d* d2 b if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )$ F+ F6 b" U/ A
{1 @# \' z, U0 v* R/ O
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )& s3 L8 _! N+ E
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. P$ Q$ Y1 u5 P% ^; i" h3 X' V
}else{1 m4 m, p, }6 o1 h9 P" [ w; k
bStart = FALSE;
4 S0 w7 W5 M3 d6 Z1 }+ l+ ? m_pItemElem = NULL;) j4 Q0 ]5 C& v# t- e1 M
}
0 Y% A- V/ r; B }) E$ Z- z0 j, ?" S/ @( [+ ~
return TRUE;
4 X" g7 E+ B7 f3 m}6 A' @/ l3 f0 j4 y( ~ r; V. w
+ S' ?7 d; D& E B$ J$ h ]3 V& E
登录视频废话:
) P c" H* V# ]尾翼:- p2 I, A/ Y n9 F5 C
2 Z$ G9 q( y' L* T ^4 Q( E
代码:. Y# x) m) D. q. u5 i$ m* d7 C" Z
7 r8 ]9 m+ H4 [
void CWorld::SetLight( BOOL bLight )
5 P; C1 n5 R9 z2 A6 \1 qdurch. R- c/ x( m2 N0 {+ i
Code:
' c: G, A4 W0 I! }. j1 pvoid CWorld::SetLight( BOOL bLight )" b' V# v% R5 x% U
{
4 `! ?* J: K9 p //ACE("SetLight %d \n", bLight);7 k6 w5 @3 F4 [
( `4 i# x, K$ R; {#ifndef __WORLDSERVER * z, d. a. R4 p# E& o9 \
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
1 {& E- {% d' q0 Z$ [; ? CLight* pLight = NULL;
/ y5 M" S% L, s9 C. T: V' N4 Z# N( c2 Q
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );0 @# N# P {- _! ]! T0 `) T" n
, }) D! ^ `$ A& e+ _5 ` pLight = GetLight( "direction" );3 P! l9 B& s% @* s, F
5 f, S$ `7 \1 x
#if __VER >= 15 // __BS_CHANGING_ENVIR
: U, d& k( a$ Z/ a- x! X8 y if( g_pPlayer ){
& w& p7 [% X7 y& v5 g7 C9 D" e& j1 G ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );$ K ~& E5 C" G& |
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!; J/ G8 Q3 X* e" M# u. T$ {5 H$ E8 x
{
! T* _0 @/ ^2 B5 ^ if( pLight )
, @7 }$ T0 N k {
6 J+ ~5 @9 l( v7 S' t) i6 x pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
0 F9 k: d6 p; T( T% n pLight->Ambient.g = pInfo->_fAmbient[ 1 ];; r! o9 {& L2 v; e+ p% V
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
& W6 u& V4 d. M+ G6 L
# s4 N3 W9 P7 K7 }9 J) v pLight->Specular.r = 2.0f;% L* X) z6 m' N* z6 @! Q6 g/ F2 p
pLight->Specular.g = 2.0f;
6 D, G3 a! B' K# n" `) n9 L" |8 i pLight->Specular.b = 2.0f;1 q' Z1 S+ b1 }; T; w# R5 P
2 ]3 ]4 c+ K2 a; f, I# x a
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];6 B) [: m1 b' q R7 Z$ j, ~) S
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
6 i/ ?! i& _3 [0 A3 q; H* N# r pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
M, m4 A6 I% }3 D
# {# `- }, B" j/ H; e HookUpdateLight( pLight ); % H1 c% [6 X( J- W# E2 W
7 c$ p9 r- z6 M! | memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; h' n/ u+ X1 K: K8 V
2 Z6 ~2 {+ j& O' Z7 F
pLight->Diffuse.r *= 1.2f;
l p3 |: t. b+ Y$ D pLight->Diffuse.g *= 1.2f;
3 m8 v4 ^, M) a5 U9 x" W pLight->Diffuse.b *= 1.2f;
, I0 z/ T+ v3 z2 t
3 s( b1 {6 v5 ]6 s/ |0 h- R; N pLight->Ambient.r *= 0.8f;
- g, C3 Y1 {9 C& [+ @1 w9 x pLight->Ambient.g *= 0.8f;
Q5 J1 R+ P3 [, X) Q3 R+ C pLight->Ambient.b *= 0.8f;
u j3 _8 I, e/ M. v9 F, W
h* U4 v& i r& U memcpy( &m_light, pLight, sizeof( m_light ) );
* _. m4 m# ] t" E2 J0 h) A+ I
( t `- D; O: Y3 c) k D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);5 R- e# ?+ ~4 f" U
D3DXVec3Normalize(&(vecSun),&(vecSun));
7 a$ W* l& n, n2 U7 @# m6 L pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 4 e* F- U$ D* Q( x. A9 d' E* K
pLight->Appear( m_pd3dDevice, TRUE );
0 n! j R. i& ]! K2 W / A" l" G3 K8 U! ~9 U. e4 [
DWORD dwR, dwG, dwB;; |- D8 `* Q6 p7 q5 |0 S2 F
dwR = (DWORD)( pLight->Ambient.r * 255 );
7 h B( w3 L7 J, l- B E4 c- Q9 Z! ^ dwG = (DWORD)( pLight->Ambient.g * 255 );
# b% i+ ~4 U, d9 O& X dwB = (DWORD)( pLight->Ambient.b * 255 );
* ~1 L' P3 H& n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: P& t/ H) V) n+ C( l }
0 ^% t6 z7 y' s+ I } r6 `& t9 w( v
}
7 @5 N: I) A1 W! I; z C else
0 _5 x# X+ ^* ?+ Q$ ]#endif 5 s' c( S9 E& _3 L
* R! h3 l1 _6 t6 H6 @# b2 g
if( m_bIsIndoor )% y: q$ b) T9 I* O
{. i- q' J* ?( y2 _# U
if( pLight )' F7 B7 l, B/ u; ] W* F! }
{ F! i( o- E! u; [/ c% I
// à??μ oˉè*
+ K4 Z u7 i& z0 O. {" _2 c pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
5 v% V2 Z: s( v9 W8 T- X% g7 G pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;) ` ^0 g9 U( ]4 D
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
7 K# ~4 y" H* |( ]2 i" ]. T% Y- ]0 F" Z" ^$ j+ i
// oˉè* ??à? ) D k8 K# n% \8 i
pLight->Specular.r = 1.0f;3 V' W: ?. o( d) m9 p
pLight->Specular.g = 1.0f;$ u3 s' x- z$ I! a. `3 V
pLight->Specular.b = 1.0f;" G3 `+ a5 N! p; `/ A, m0 k& V
// àü?? oˉè* / S/ z/ b. I2 t' ?; n
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;* A: H }1 b* a7 x) T
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;& m) A- ]+ x' X1 C; c
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
( O4 J6 @8 Y" Z* |# m/ ?4 D5 W' t3 f: k
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??." t2 d# \6 I+ P7 _- S( p% r
{
8 @; d# F1 v Y( |) d1 | pLight->Diffuse.r *= 0.6f;
5 v R9 D' {' |' a' M; g1 M pLight->Diffuse.g *= 0.6f;+ w5 s# s9 @; S+ F
pLight->Diffuse.b *= 0.6f;
; l) F3 G5 U3 e( H2 F8 I% M- S0 ~8 { pLight->Ambient.r *= 0.7f;# n2 s2 L$ r I# K
pLight->Ambient.g *= 0.7f;
8 P& }2 D( c+ C- f4 y; T! F pLight->Ambient.b *= 0.7f;
! L8 x5 ?0 i8 g5 T }
" D9 p5 Q" [4 Q
' t3 O3 c2 s3 @- ]0 U#if __VER >= 15 // __BS_CHANGING_ENVIR* g7 j6 z9 m/ E$ o, ?6 Q* c) A
if( g_pPlayer )4 k/ y$ W. Q) l4 ^" F
HookUpdateLight( pLight );' u8 Q- Z+ J$ W0 p# d. l
#endif- Y7 L7 {) t4 M& l3 L u \/ z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 S/ K* B3 Z( ]8 Y. n4 C& `3 F% S" n j2 ]9 |; r
pLight->Diffuse.r += 0.1f;# ?4 r% i2 J/ O" ]6 O
pLight->Diffuse.g += 0.1f;% q" C! h# R* t' D: {% H
pLight->Diffuse.b += 0.1f;" |+ `: U3 s n/ P* I C
// oˉè* ??à? / X! ]9 F, n) X9 f, Y) s0 O
pLight->Specular.r = 2.0f;
3 e3 L! H9 `6 \0 q/ a$ s/ c pLight->Specular.g = 2.0f;
2 C5 F; v! C m" H# u9 }. } pLight->Specular.b = 2.0f;1 F7 S6 o4 }$ u# L0 m
// á?oˉ
( U) Q6 V5 Q! g' s pLight->Ambient.r *= 0.9f;! u4 Z* ?7 v: c$ j) @
pLight->Ambient.g *= 0.9f;
) I9 E" F7 [, {" v: W7 } pLight->Ambient.b *= 0.9f;
1 N$ X' m- [+ F! M3 W3 I8 _8 Y! h3 O6 j9 _
memcpy( &m_light, pLight, sizeof( m_light ) );& e2 @. y, R$ m5 z& I! [" W
6 { [' z" Y1 [% n pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; d# Q% z$ G) G( t" r6 Y. x
pLight->Appear( m_pd3dDevice, TRUE );4 A1 y5 e& e7 K, y; ]$ z; f
& d! M' T" q. a/ Z- d: G3 x
DWORD dwR, dwG, dwB;& [. r- N8 ^9 Y0 f. x8 M* _& Z
dwR = (DWORD)( pLight->Ambient.r * 255 );
7 ?8 E' v4 `, u8 R V2 [ dwG = (DWORD)( pLight->Ambient.g * 255 );: `0 \" @% b% `$ T' i4 w! W
dwB = (DWORD)( pLight->Ambient.b * 255 );3 K* ~& X; p* V: K3 g" |, J* P3 [
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ _: u% }- P. D6 U& a. d
}+ |5 v% ~% H, X; A/ I# X L
}
1 o$ T \; g1 B7 i/ t) ^ Z else
# P" G8 A# S D4 I. b& J! f0 c; q {
- u8 k' @- L% m if( pLight )+ o3 u9 S* o5 F) a/ X
{: q" }$ a, K6 T f- k$ q' E$ T4 L. j5 i
# Y9 R i( O& g: @, S; j& M
int nHour = 8, nMin = 0;
- a2 R* t; m5 h/ ]8 r7 L* @ #ifdef __CLIENT
, ~# G9 g2 T" i% d- d) D* T# p. u) Z // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 7 l8 C7 c' r9 k+ A' P% k
nHour = g_GameTimer.m_nHour;6 z1 H, D: q2 q- [6 ^) K
nMin = g_GameTimer.m_nMin ;: `! I8 [& c5 |$ a3 P
#else
( X; }* P5 Z3 V // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
. T# t7 o- B d0 f: v if( m_nLightType == 1 )
& W; k* _. z' r0 O+ Z nHour = m_nLightHour;0 R& T1 n" D& A2 W, u" r% R
#endif( M( H. e; p: x2 _, Y
nHour--;: P; @8 |* b3 c I
if( nHour < 0 ) nHour = 0;8 Z$ p7 ?# v& O# {
if( nHour > 23 ) nHour = 23;
& Z" p& j) @% V! \5 d! Z
9 G- |9 c Z7 p* o7 B //if( m_bFixedHour )
2 z, v* [) ~$ ^2 p. P // nHour = m_nFixedHour, nMin = 0;+ v! T( _6 \4 v; D. t: X
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
) P! ?" u# S' u- M; M8 _ LIGHTCOLOR lightColor = m_k24Light[ nHour ];1 V6 m1 l1 y4 {) @4 [# X1 \+ w, m
X8 z2 X( J) I) d3 h4 p4 c+ N
//m_lightColor = lightColorPrv;) X# N- { [4 G8 E0 a, e
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;: J& M. e/ g% Y+ x' w! G
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;1 z/ f+ w# ~* a/ s
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;3 c! p, F1 Y# R" y% @, @
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;, V3 I/ ?. n z8 J: o8 W# t
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
5 K. L. I5 M0 q5 Y2 C5 K e0 q lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;+ i+ I" ~3 R0 Z, W; C0 R
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
, k# D* E$ E6 P
! s( D) k; P: V' }* g4 I/ t, Y2 \ // à??μ oˉè*
& x# K q' Q8 ~3 n/ k, @ pLight->Diffuse.r = lightColorPrv.r1;
+ U2 d t$ M1 K! o2 B% x" G pLight->Diffuse.g = lightColorPrv.g1;
8 b/ h0 N8 x4 G# a T$ E* Q" s6 A. ? pLight->Diffuse.b = lightColorPrv.b1;
5 h; g0 v) F9 t // oˉè* ??à?
6 E+ z/ I8 Y. N7 `3 ?3 f pLight->Specular.r = 1.0f;7 z5 V+ A8 t7 I4 R
pLight->Specular.g = 1.0f;! {3 L4 ~' [+ F9 j+ [' v A
pLight->Specular.b = 1.0f;: G* P6 ^/ E0 H8 c/ V1 I+ ? k6 Y
// àü?? oˉè* - k( z: Z* R. Y: Z: j G
pLight->Ambient.r = lightColorPrv.r2;; B; ]8 u3 d/ l* l! g) q% [' p7 F/ l U
pLight->Ambient.g = lightColorPrv.g2;5 c4 `; i: L/ C# `+ R
pLight->Ambient.b = lightColorPrv.b2;9 [) m! B1 w% b, [6 u
7 i8 G2 j4 t9 V9 ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 N3 C0 F& G* y7 |/ z
{
3 J; i7 x, U3 w6 D+ q3 }, I" ?9 h pLight->Diffuse.r *= 0.6f;
* V8 ], O& y7 K pLight->Diffuse.g *= 0.6f;
, |! B w% W# q/ V pLight->Diffuse.b *= 0.6f;
% `" `! L$ r# a2 ~: J, y- p pLight->Ambient.r *= 0.7f;
. a$ z. q- L# Z pLight->Ambient.g *= 0.7f;
* N9 T7 V/ @6 ^0 |/ A9 h pLight->Ambient.b *= 0.7f;, b7 z( V) O% k* s
}8 ~! G, E) R) b/ @& h: O. h
# D0 p4 O0 w( \& j: M8 e#if __VER >= 15 // __BS_CHANGING_ENVIR3 q7 T0 [. o/ e2 r3 v! n) K
if( g_pPlayer )
7 T; o2 i) M# _: @ HookUpdateLight( pLight ); " ]0 Y0 t' m7 _3 v! m2 l; A
#endif
1 k& C2 p2 x4 ?5 b: m* Y7 q% _) l memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 N1 J8 W: l* A3 N( g
( q4 j$ D9 z* d3 G' K) a
#ifdef __YENV
# g; J* ]4 C8 g; O& @ pLight->Diffuse.r *= 1.1f;6 P8 y+ L# e3 Q$ T6 c" r1 G
pLight->Diffuse.g *= 1.1f;
3 |8 l3 x6 ^- ^ pLight->Diffuse.b *= 1.1f;
/ T2 B. E4 F2 t, M; v/ `) J // oˉè* ??à? 4 M- y1 Q+ Q( a5 U( I c: e: i# r6 }
pLight->Specular.r = 2.0f;
" n7 B" W6 M3 k0 ]0 l pLight->Specular.g = 2.0f;, X/ Z4 a+ U* n; G' ~2 D
pLight->Specular.b = 2.0f; H7 I5 ~2 M& n" K
// á?oˉ ' e" H" m3 J- ^ |# u
pLight->Ambient.r *= 1.0f;' Z0 v. c2 {- ~. b& Y* ^
pLight->Ambient.g *= 1.0f;9 {2 q6 \: k7 |4 z- G+ d
pLight->Ambient.b *= 1.0f;
" U9 H1 X: ]% n0 [" b- k2 ]#else //__YENV5 U6 |6 {' ^1 Y/ h% _, t2 d
pLight->Diffuse.r *= 1.1f;
% }: ], E) m6 d7 G5 m! j pLight->Diffuse.g *= 1.1f;
& v' D* e7 i2 v6 b# T- g' N4 ^ pLight->Diffuse.b *= 1.1f;8 i9 a& Z0 m4 O3 L1 b* v
// oˉè* ??à?
" F, X; A3 }7 ~2 G* t& e0 W pLight->Specular.r = 2.0f;9 `5 r! V- I9 ?/ A. b
pLight->Specular.g = 2.0f;
o8 G2 A2 i! |! A/ L" b) |% O pLight->Specular.b = 2.0f;7 x5 |4 r& @0 m
// á?oˉ 5 L% B# {. a t. B' f* T. B/ H1 o: d
pLight->Ambient.r *= 0.9f;
9 B2 w4 n# c3 F6 O, `7 ] pLight->Ambient.g *= 0.9f;' @. k6 ]- R! }$ Y$ N
pLight->Ambient.b *= 0.9f;
; X7 F2 T. t$ j! l3 j: T/ T#endif //__YENV
8 z4 Z3 t) w5 ]5 B" |7 l# Y 6 @* T. g# k# E7 r. j1 L* K
memcpy( &m_light, pLight, sizeof( m_light ) );; e& |+ T! f% m+ u" C) H
% u9 g+ o# \" W6 P D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
7 j# K% `7 t+ G* m9 x D3DXMATRIX matTemp;
, j4 Y& k5 t, \ static const float CONS_VAL = 3.1415926f / 180.f;% f9 ^: z3 E5 _0 A7 M$ E0 R: L
0 _% i: |/ C$ M. H9 } D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);* t. [8 _( V+ |7 `( W
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);+ l! b' s$ a" ?
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
( w1 x7 a [, i pLight->Appear( m_pd3dDevice, TRUE );, y$ o T1 n$ k, h
+ G5 l% |/ l4 i7 T. K, k4 c4 V // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 S! J: E# @, v6 T. | J // D3DXVec3Normalize(&(vecSun),&(vecSun));
: P- a- D9 B$ f- m- c$ U7 h% I // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
; R2 n" d( R9 ^# M
7 j' N& N- w$ F7 Q* H5 I- m# L" | DWORD dwR, dwG, dwB;
1 @; O) O" T+ Y( m7 \1 I: ?( R' E dwR = (DWORD)( pLight->Ambient.r * 255 ); |' s; J& D) t
dwG = (DWORD)( pLight->Ambient.g * 255 );
! D6 Q% N& f5 @8 y2 n% }. [ dwB = (DWORD)( pLight->Ambient.b * 255 );# ]6 j# O8 @( c& Q+ A, l2 k+ `
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); . }; j+ c+ ^2 X5 `0 v
}
$ S4 E% u8 P$ t- L$ W6 M& T }
! T( w. W) p) X H2 Y `0 q W
8 E1 r! g& B1 V+ G m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
" \6 i |8 C, h! K! n 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) );, u5 z) Y+ f8 l3 j, c
::SetLight( bLight );3 ?8 B7 Z3 V( R- {3 p1 E
1 \: ?6 g3 J( \5 K2 b // ±ao? ?D?í???ó á¤à? - e. i p) e, o L2 }6 F
m_pd3dDevice->SetMaterial( &m_baseMaterial );
' J8 k2 W) T7 a2 e% W ' }; Q# v# Y! X
#endif // not WORLDSERVER+ s @- D0 } t! V) ]
}
' h8 o+ g: A" f- b7 d0 m并更换
6 V1 r7 Q/ }( V# F' b* n- b; DCode:
; K1 W/ {& Y, }+ Z) f9 ]+ s* N__FLYFF_INITPAGE_EXT$ U5 k5 r0 f$ H4 `( H6 h. Z
定义
1 l! O2 J" [6 a: F7 M5 T0 `1 @. M3 \- _0 b2 a
0 \& Z' H( P& c, s. w: O/ F
6 L+ _: Z3 {, ~# J7 q7 {! s
@ M2 G' q+ }现在终于删除我的狗屁加速...
7 N" r) y( B& a6 h4 l. t! G- e# B3 Q. {: o
6 c- _3 G1 D9 u2 c! B, U+ n
* Z, n m0 @' s% `4 y; W |
|