|
|
食品车:3 x$ T; ~" L8 X2 ] u" O! j9 N) {
尾翼:
$ H* f: I: @6 G; g! c5 i0 ^: a7 u, L$ k8 y5 F7 K
代码:+ K% r+ c; j, v
CWndAutoFood::CWndAutoFood()2 ?% x# I3 o8 x1 o }! H
{
2 | k4 Z0 V( G2 Z, @5 {# W4 B m_pItemElem = NULL;
: a, _+ ?/ ^! N5 B" A+ E- [ m_pTexture = NULL;
4 k# @: y' b, Q) F! _$ Y8 X# i- l7 [ bStart = FALSE;
* ^/ I; B/ B; \: I! `! Y}" ~( y0 l Y3 }4 H& c" n" W- {9 `6 @
) f) d4 t) T, B# H2 _0 @
CWndAutoFood::~CWndAutoFood()$ z9 Z3 s6 w; v7 C" Q
{
, r; m" f; U& [ S* }% D( A AfxMessageBox( "AutoFood ist gestorben " );
o6 w' J$ \, h3 t7 [0 v, T}
7 n8 U& k) P( R' L, n0 f: jBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
# q2 c" y, z! A( J{1 `" @9 e$ |5 m* y% ?3 [
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
( W9 e/ p& F$ i/ K8 k}8 H, X% B7 p6 \. f, s4 O1 ?
( j9 t) j, n# K$ n4 `
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
/ e6 z8 m) R* R7 b* v{
* A8 _) u1 U3 Y3 j) }. x1 T LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
}7 ^/ w/ ]- L. @ }. T2 ~, N- s: g& } CRect rect = pWndCtrl->rect;
8 s% r' S# J) P o* x$ Q if( rect && rect.PtInRect( point ) )
$ m6 q3 C% [3 h: v$ ~, X" } {$ ^1 B+ q6 A+ z4 m0 S0 O; Q6 h
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
/ Y- B& ?% e' d* w if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )3 {( Z( T5 s/ M; ?' ~
{3 T3 ?; W; }( A" E
if( m_pItemElem )
9 J' G8 e) k$ [2 [/ m {" ?/ s. {9 k, l7 n! w- E6 }; G1 ?
m_pItemElem = NULL;( V+ }' R4 n/ m% Y
}
% X' F6 M6 q: P. ? }: `3 _ m_pItemElem = pItemElem;
! I0 r% ^4 m" u m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );' Z8 v5 P3 O* _. @7 {4 b8 \4 Y
}else{! n2 I" S1 L& n! U W* [
SetForbid( TRUE );* M: V3 V: [! M8 i1 Q. ~- g5 b
}
0 U' e& e- _5 ?- T' E0 B6 c }else{ h( H( u+ N8 U% S, ?0 B. y( H6 M
SetForbid( TRUE );6 d8 z7 l5 D% W" o7 F# D
}
/ f0 _ s8 ^2 V: H return TRUE;
+ ]7 Y2 {9 F* u. p9 f% C}
+ }2 w, W" o& `" P; T0 M
V6 d! J5 F. M" U$ G' n( Q! NBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )1 A6 p( |, C& |8 Y
{6 j: [9 I! v. m0 v; q, I
switch( nID )
0 K+ H0 u: V4 L6 d9 Y& B. z {
$ Q0 H( W6 x9 d8 e case WIDC_BUTTON3:& q+ x: _/ |: R( G" y
{
- D. y* @# V& |; s+ s* s bStart = TRUE;* T# ^& P9 `. W1 k
break;% p! x7 v) W1 i2 \' G
}
/ z, M3 l9 P6 q- f# F case WIDC_BUTTON4:# {( H3 m# A4 r9 K( u& B
{- Y. T6 {# J9 h' r2 K& v
bStart = FALSE;
; U3 h$ U& N7 z, y+ ?0 }& O break;
, k. t) N8 K6 H6 C8 t9 v }" l& Q9 |) F% T+ L# A: S0 d/ h
}5 P* A5 ?, I% c o1 `
return CWndNeuz::OnChildNotify( message, nID, pLResult );
& q! P: d8 N) a$ e+ q} # j" y% e+ M( L4 p, g0 b% F6 ]
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
6 |7 n m7 V& z T{
% T: V- a( \2 l4 {& P3 M& N CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
4 J2 b+ n9 i3 [' M if( bStart || !m_pItemElem ) e8 j3 d- o8 s
{- [! C2 w8 j- _8 U) G9 L
pBtn->EnableWindow( FALSE );3 f" P9 F( K! Z. M6 E+ X
}else# k; f4 t! B" r0 s9 n. q! G# {
pBtn->EnableWindow( TRUE );9 F: `, s. L. m( D5 |' l3 i8 K
if( m_pTexture ), ~: I' `" ]& C$ L* r
{$ u( C6 f# G, U* h
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ Y! g2 F: H! E/ v* @
if( wndCtrl && wndCtrl->rect )* o. p8 o8 B4 s, W
{& V' s, e1 c7 J/ O( N3 E0 D
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );- a, S( r- ?/ w, R2 f! ^7 Q
}
% |& }% r( Z+ U: T7 K }- ]5 ?+ m5 |) s* V, y4 b$ Y
}& u- v2 h+ ^( j; r2 {. V% H' g: C2 {
?0 k* f T, m4 L$ \- x7 [
BOOL CWndAutoFood: rocess()! G+ k! C1 u. {" K, B
{' W P" s9 t5 q* W- y6 I0 R
if( bStart )
% U' m4 [3 m S2 _, G5 z6 d {
6 {; f- f6 }' w8 }4 r( {1 U if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )2 _; e+ n/ G7 g. A, H; j7 i; G
{3 ` N* t; b' M* a* E U
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )" ~: p1 L* r3 {7 K
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
7 F& g3 u# e6 l4 `, P }else{
1 u. X) B% K) f0 h* x9 q v* b/ a bStart = FALSE;6 l- v; {8 E0 V4 g$ }) ?
m_pItemElem = NULL;0 R' i z# y& H' G- G; N' [
}
; B% D4 n+ o3 Z6 ?3 F) Q s }
1 q9 |& X* N1 J7 X; p return TRUE;
J. R+ _' Q6 E: K. r}
5 Z3 K/ l4 i; w' ^4 n
8 [( w2 X! I/ z9 A' P登录视频废话:
& ]% O' v" F2 c/ z尾翼:
3 |9 I9 p, X! l# _( F; Q0 X
4 j9 K) D7 F l" g; i: Z代码:; w2 }# X9 Z6 }3 Y
, s; q9 q8 e8 O2 J, K/ t, J
void CWorld::SetLight( BOOL bLight )
1 s+ G2 } H4 ~ Jdurch
. E0 J. b2 r7 D9 v# M$ i ]0 U6 a- ]Code:
& b }9 a# m& M5 ^) _; X7 Jvoid CWorld::SetLight( BOOL bLight )
9 P. I1 h& ?5 m6 E2 D{
1 l# L7 n, f S- n) g% t //ACE("SetLight %d \n", bLight);
1 k6 }1 {4 y" K
4 @) l: {5 F8 Y+ U/ ?$ v/ J* g#ifndef __WORLDSERVER
' g# r" s6 h @9 } @+ V DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
% U+ T3 p5 K) x; M CLight* pLight = NULL;
; o: ~& O) i( c/ d+ ^7 X7 ~/ e$ d- J2 V' g3 v( g
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );- g2 e: F0 R7 k8 \% F, p
' \' f9 z. D/ {4 _ pLight = GetLight( "direction" );, m4 Z: B, g2 [8 o- A$ \
( x7 _6 L2 p* C
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 B$ {" M+ `9 _6 a- ^" {% K if( g_pPlayer ){& r1 X! c6 J; ^* x$ m
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
! L& x; u9 y6 n# |6 M; `4 a- U if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!/ V- m0 _% ?+ Q7 U, a4 q- y
{$ ]4 i7 [% A# ?: X" J5 N
if( pLight )3 ~! f- R* U# {9 D% c' w: e) u7 \
{
6 l5 F4 j) ]! I. ]0 o9 A pLight->Ambient.r = pInfo->_fAmbient[ 0 ];+ l; O. ?" M4 Y- l0 ]5 [$ A) `
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];- J2 ?8 @. ~9 r$ W6 }& j
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
- `* W% E7 d8 [
0 ]2 | X) D1 B+ _ pLight->Specular.r = 2.0f;
# p& z+ q- t, C5 b6 ~0 T pLight->Specular.g = 2.0f;3 h% X' H( m9 z$ k; G
pLight->Specular.b = 2.0f;5 K5 S# @' x3 E
3 ], X; N+ {; K2 ^9 V: r pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];" r/ |/ h- O) Q
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];9 d4 N1 t a$ t
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
5 ~ v( Y# y, S z: Y
! s, l5 f' u; L x6 P( A3 e HookUpdateLight( pLight );
4 S4 T2 U% i- v8 [& f* q7 x3 K5 K: z/ @, x* b+ q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 A* p* T# K! _' c, u
& }0 _* c# { v, I
pLight->Diffuse.r *= 1.2f;0 m2 t+ C8 m1 q, j. g( V) C
pLight->Diffuse.g *= 1.2f;
' [, T [2 ~; f( c n) J pLight->Diffuse.b *= 1.2f;" P/ }4 A8 f- A1 e( o. o
* f& S+ R: q! Z2 s: i" _* U
pLight->Ambient.r *= 0.8f;* H+ Q9 T, O3 l( S+ }
pLight->Ambient.g *= 0.8f;! S: \1 T; {7 H1 q2 }
pLight->Ambient.b *= 0.8f;
. ?' W; n- }1 H3 a% O/ p* |% E* v
& R' o* p& ^; N ^( I0 Z! D9 w memcpy( &m_light, pLight, sizeof( m_light ) );' T! [$ `9 C; H' P9 t b
6 K( W2 e9 G9 E/ F* |/ ?8 e: }0 N D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 R1 `+ P8 |& |6 y
D3DXVec3Normalize(&(vecSun),&(vecSun));
, r. k! l! M2 a; c, p- W: Y6 u pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' n* ]& M0 T8 h
pLight->Appear( m_pd3dDevice, TRUE );* Y2 Y% _, t1 } n$ @" f
/ |0 l V0 e/ ]. l% |7 {
DWORD dwR, dwG, dwB;
, c" O* L1 k4 C9 _ dwR = (DWORD)( pLight->Ambient.r * 255 );
9 |: ^" _ ]6 W- ?6 F4 Y dwG = (DWORD)( pLight->Ambient.g * 255 );
+ \0 T) i% ^! \( l. t9 x, O8 v dwB = (DWORD)( pLight->Ambient.b * 255 );
' l5 `5 N; G+ k- g, j dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); I3 K5 w& { I, x
}& A5 W0 w! x g, K$ s
}3 V2 x; C) {3 @( D3 r4 r8 t
}2 R }4 D6 L( u, D$ d
else% A4 t; s; W& x" g4 a' ?( R9 Z
#endif 9 q# \' u+ ?3 v( o2 m5 U8 H$ z7 W
3 P* p& f, v& ]' n6 b0 @) t
if( m_bIsIndoor )
1 A4 y+ U' Z' p% c e T4 @ {
6 W @$ ]: D& P4 U+ C1 Y; v- N2 A( { if( pLight )3 f* I* _ O: X$ C. g6 g
{
! W' E" p8 R9 g" O! o // à??μ oˉè* % ]1 Y/ c5 @+ b( b! ^* M
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;! j6 `) W4 a A0 y
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;! ]2 k3 g* f* e
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 d K7 [+ K; j2 C3 K
; E! [0 t! c7 w( u h
// oˉè* ??à?
2 {, u* q) n" }1 C pLight->Specular.r = 1.0f;
& i3 |: @0 \1 _8 W2 Y# M# Q pLight->Specular.g = 1.0f;% q9 ^2 G. y3 u1 a: `4 u1 u
pLight->Specular.b = 1.0f;; Z3 k5 S+ z$ X; P5 `
// àü?? oˉè*
5 D3 B8 w9 z6 Y9 Q& s6 @1 W, R4 y pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;! T& G3 A2 B( s0 I; z
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;, Q. a4 c* |) u; f
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;) R; n( s' t6 @3 R* j
! T3 A( B1 a5 x2 G( P: O if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 @: ^2 F* Z7 @1 U0 F/ a0 l4 a
{2 [! f: n5 {- E" T# v
pLight->Diffuse.r *= 0.6f; f2 _* m5 N- V4 o
pLight->Diffuse.g *= 0.6f;
* j; t9 h( F4 F' o5 T9 ^ pLight->Diffuse.b *= 0.6f;
' H1 n a3 ~( q2 @) m) l# D pLight->Ambient.r *= 0.7f;
, Z e* Z$ w( V: C pLight->Ambient.g *= 0.7f;+ P k# b. R0 \' o! Y1 I
pLight->Ambient.b *= 0.7f;3 z5 D% x/ `5 X4 _5 A' V
}
# X0 y! |6 S! ~" z, d( P0 a' I6 @* N$ U' U7 t$ z6 z* f
#if __VER >= 15 // __BS_CHANGING_ENVIR
/ n, J, h1 U3 _# U5 ~ if( g_pPlayer )! c; I$ [3 L, U$ i2 P7 g; v6 @3 I
HookUpdateLight( pLight );$ L4 T' y/ T' K- ~' C* b ^
#endif
$ f; }* G4 u+ n7 J2 l. [2 ` memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );1 M5 M) {- k: h# P ~) c
0 |# t& m R+ c' T, o% @ pLight->Diffuse.r += 0.1f;
5 `: ]# Z3 A! V3 d- U pLight->Diffuse.g += 0.1f;
& T5 T# p- r* x x5 r pLight->Diffuse.b += 0.1f;
, Y: }+ L. j) ?$ d# y // oˉè* ??à? h8 z' F9 @5 v
pLight->Specular.r = 2.0f;, l Q. T2 G1 D4 A/ z9 W
pLight->Specular.g = 2.0f;9 Y( Z& i; S; t
pLight->Specular.b = 2.0f;
, _* t% f) G. z# G+ _0 n // á?oˉ . C) P' F5 u+ ~( @+ K( @8 q+ V
pLight->Ambient.r *= 0.9f;
. G: ]- B. m' ^9 @/ y" s pLight->Ambient.g *= 0.9f;5 y% h$ G. X# m+ p# D7 J
pLight->Ambient.b *= 0.9f;. ~$ d0 Q4 M% ~, v0 _5 l8 w* `
: |' e- B7 P h- z5 V
memcpy( &m_light, pLight, sizeof( m_light ) );
) N6 U# K# |$ r/ y; y2 I/ f% v/ A 2 ?, D$ S' n r# m" Q: \3 v* A
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );" ^$ y/ G% ?5 z' ^- }) E' I6 W
pLight->Appear( m_pd3dDevice, TRUE );: s0 _' @* _* X% |% U
7 p5 {$ [7 Z: H& s* l, C DWORD dwR, dwG, dwB;. z/ T5 u {, p
dwR = (DWORD)( pLight->Ambient.r * 255 );
, ]( ~' s3 Q& e6 q5 J dwG = (DWORD)( pLight->Ambient.g * 255 );; _ o s: I* M1 o# u* G
dwB = (DWORD)( pLight->Ambient.b * 255 );
+ h; T1 e; k. g7 O- i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 p0 ]& s: ?0 G! i
}
2 T9 q" }! z( e& x9 O' u7 ` }0 ?% r; q4 d. ~+ I% X$ l
else( T7 S$ b6 W% w- c9 B8 A
{
( g- [3 m2 R0 p6 o# Y* d if( pLight )1 u# h" z0 N- C$ P, L% `' w! G
{3 n0 J: @6 g9 q( i n
/ l l; r& ^6 Y4 N e% \1 I int nHour = 8, nMin = 0;4 m+ ^/ m6 [( t# O% [
#ifdef __CLIENT" K6 _2 Y4 I9 T0 g
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ) A C! P! {7 l( F
nHour = g_GameTimer.m_nHour;
- d' i q$ E, [/ A% } @% r4 Q: Q& h nMin = g_GameTimer.m_nMin ;# z! [3 w& \5 q; i5 z; A$ [) [: o
#else
0 W& g8 x( j$ [/ y* X // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.# _8 @- b6 B/ S
if( m_nLightType == 1 )4 _/ H# B7 E# E8 t: T& O
nHour = m_nLightHour;
$ M; t, j) |: X* Q+ Q #endif
7 P: g$ @# K, i3 ~5 F nHour--;
' w+ `) ^4 D) e9 O) g! j% i if( nHour < 0 ) nHour = 0;* t6 z8 Y. ~3 h" f
if( nHour > 23 ) nHour = 23;- V3 M# i: ~6 c! X
7 [! ]2 B5 R! g) } C6 o9 `" i O //if( m_bFixedHour )7 H" `9 j$ ]; s& K* x3 d) c: m
// nHour = m_nFixedHour, nMin = 0;6 } _" _: O* K: w+ b7 [
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];! ^& r1 _9 k$ p/ A; V7 l+ w. B
LIGHTCOLOR lightColor = m_k24Light[ nHour ];7 G l9 p/ R0 x
$ L' d- Q/ q# M U6 n //m_lightColor = lightColorPrv;5 I0 a j- U% l& e; A, d, K; y
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;, }2 h6 {; Q+ ^& t
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;. u; {$ u9 N% v! G' T
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
$ }5 M- W8 _& _/ k/ _' d, c lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
8 F- }$ o$ K5 f9 M) q. ?( i a& E lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;; w. n" F5 u/ t: c( e4 P
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;3 f0 d ^8 u) n1 @
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
7 a" E% b8 ?5 c: h. A4 @5 U/ f& a4 C" [. p- a. Z) T
// à??μ oˉè* ! M. |5 l* P% Y( a$ G; j6 m
pLight->Diffuse.r = lightColorPrv.r1;
& G% }& v4 m1 @2 V, }" s pLight->Diffuse.g = lightColorPrv.g1;" _; l0 V# ~- i0 k2 s5 ?+ t
pLight->Diffuse.b = lightColorPrv.b1;* V' B* T$ H$ X0 s
// oˉè* ??à?
0 t7 ?. G9 [* ^6 I( b% q- r. g4 y pLight->Specular.r = 1.0f;
5 [1 d( ^" T& O4 v( t! }8 j( V pLight->Specular.g = 1.0f;
/ m( r. W/ p7 i3 G4 o7 o: i pLight->Specular.b = 1.0f;
$ ?( n& T; B4 k: [/ G8 z9 |. q // àü?? oˉè* , y/ G- c$ ?0 I% h+ K6 r4 ]# _
pLight->Ambient.r = lightColorPrv.r2;
2 Q d6 Y7 X! E; E" @' U. ], H- Y pLight->Ambient.g = lightColorPrv.g2;
/ y! S# I7 }" i: m7 f( t) ?# o pLight->Ambient.b = lightColorPrv.b2;) ?' Q" L q, o5 s% m
# ~. L' I' M$ O/ h5 O7 B: C) D if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
1 K, Q7 \ ]% Q3 ~ c& p {
' d: S7 L y) t. v v pLight->Diffuse.r *= 0.6f;
; P, G3 W7 ]4 y4 q+ e pLight->Diffuse.g *= 0.6f;" F# ]6 r5 e. }9 b6 C
pLight->Diffuse.b *= 0.6f;# H# R# O! {. a- s0 X
pLight->Ambient.r *= 0.7f;
' l1 y: {1 [: I8 T0 x0 z$ k! S) {2 s+ t pLight->Ambient.g *= 0.7f;
! Q' c4 h, K/ T' x pLight->Ambient.b *= 0.7f;
* O4 G/ A6 `9 [: a u }
t' n X: A- T' C5 y2 s
& J; z, t6 a& b2 E0 D9 P$ F* _#if __VER >= 15 // __BS_CHANGING_ENVIR, q7 [( y3 _5 Q- L: o
if( g_pPlayer )
" }2 `4 M5 h, J5 l5 p S4 g. ` HookUpdateLight( pLight ); # Y; S% E+ o. W, ]7 X! o
#endif% l% ]' Y4 r4 b( R5 _
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) U, H% _$ Z/ T+ N
# i! S n! F) {, f4 I, o, \2 G7 Z/ m
#ifdef __YENV8 ]3 A$ G3 l ^0 Q
pLight->Diffuse.r *= 1.1f;
! ?* ]% k: Y2 o" b b$ R- Z" k pLight->Diffuse.g *= 1.1f;
7 L6 b) N& E4 n% P9 S pLight->Diffuse.b *= 1.1f;
1 u& O8 K0 W' C, E9 W3 {9 K! P* z: D A // oˉè* ??à? $ z" _0 t4 K) z- G0 Q# v* s
pLight->Specular.r = 2.0f;4 U7 u2 x5 A G+ F
pLight->Specular.g = 2.0f;) N( R; g- |2 b
pLight->Specular.b = 2.0f;$ _: M. \& ]6 \, \
// á?oˉ
! J; o0 K" e0 _2 K+ x pLight->Ambient.r *= 1.0f;
# k8 |! _+ g( `$ B) w8 B S- f pLight->Ambient.g *= 1.0f;) X3 D8 _8 \5 N8 r7 q# F
pLight->Ambient.b *= 1.0f;
: J0 X$ |5 Y/ f8 \2 P& ~- U/ W#else //__YENV& H- s: W6 P3 M- h
pLight->Diffuse.r *= 1.1f;
" o% ^" @4 Q$ ]$ U1 d- u pLight->Diffuse.g *= 1.1f;, n' D1 [" Q3 d; V& X" u
pLight->Diffuse.b *= 1.1f;
1 a+ \ j) `/ N, |. k7 S3 D3 M // oˉè* ??à? 8 D$ W* [+ Y3 }% j4 }
pLight->Specular.r = 2.0f;& I8 F6 I5 \0 V L& E+ ]" S! }
pLight->Specular.g = 2.0f; O; K# T G) x' \
pLight->Specular.b = 2.0f;
8 J! Z4 ~2 `# J% c# } // á?oˉ 3 U2 }* ], `+ q
pLight->Ambient.r *= 0.9f;
. P6 v. \2 l% P+ n pLight->Ambient.g *= 0.9f;
, h' Y4 I5 ^+ x pLight->Ambient.b *= 0.9f;. [6 W! Z$ \* a2 I# d) @4 o a- l
#endif //__YENV # a4 o* y: Z- \8 q3 {/ d- S
2 J1 @- X1 G1 b7 D
memcpy( &m_light, pLight, sizeof( m_light ) );
: _! u( l& ~ J& ?3 E% @
' p2 |2 Z1 d; j6 [ D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);( d' k% A. @% m1 y5 o8 ]
D3DXMATRIX matTemp;+ k$ k+ U/ U( b# V
static const float CONS_VAL = 3.1415926f / 180.f;
4 e g0 ?7 z3 x8 P1 h1 [; V3 c
" Z: _6 Z: j# ]9 @$ E* O c D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);3 c+ W. f/ n! x8 Y' J
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
% X& \. o$ o% _) p pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ' s; r1 ~. i( w C) @3 _
pLight->Appear( m_pd3dDevice, TRUE );. n: N6 g0 C3 ^0 T3 M, h* D& G
/ @ o9 U5 I2 l, |: ]( p# n // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 z, W6 _: \" p" u6 q4 X' ?- | // D3DXVec3Normalize(&(vecSun),&(vecSun));! P3 K1 ~ {& Z& R
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 ~% y% |! t3 ?; `3 u- O
+ ^! n8 k# r& S% ^5 O2 y" W DWORD dwR, dwG, dwB;9 d- k/ B/ Q- f" G" R4 A/ w3 r
dwR = (DWORD)( pLight->Ambient.r * 255 );
( g! o/ _& M; k6 c4 P6 e8 j dwG = (DWORD)( pLight->Ambient.g * 255 );
9 z# }4 z& |# J/ S- R dwB = (DWORD)( pLight->Ambient.b * 255 );7 z1 n. u) z: r$ G/ w1 C
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 l4 _% g9 B9 r* C7 R7 I }8 _' T. y, v/ G* |
}/ i% a( f4 M# [/ W0 ` v
0 I: s1 H) i( Q0 v+ ], R, Z6 I m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );2 r; @/ J, N+ y
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) );& D, z# O, T8 J
::SetLight( bLight );% h- F/ B* u3 C8 N, p
3 D- V3 [' N2 E- p7 J
// ±ao? ?D?í???ó á¤à? , e! g- S1 o1 S$ W
m_pd3dDevice->SetMaterial( &m_baseMaterial );; e% D- F8 g H# r
5 m1 E2 X" [" a! P3 f5 O3 i
#endif // not WORLDSERVER
: w9 V4 {3 f- j8 w}0 Z( q) P0 d3 H" a3 c
并更换
: x7 H4 ], \9 S4 X4 Q2 E, jCode:4 e6 {5 s' C6 t; u) ]" l
__FLYFF_INITPAGE_EXT
% ^+ C" \/ \ o/ o定义0 R! }% F8 ~" L( b+ U* i% D& u
% ^+ F' P. g$ y8 `3 G
, D0 A- @; Z' w/ C- l2 D3 z% {% J
: |3 E, A" M5 `
& C, j( \) } P+ ]
现在终于删除我的狗屁加速...% K2 c7 N% X9 y- `0 M
5 {! d% B" `' W% Q: U- T% m
0 a8 D$ {; y# }+ n
4 [! c6 N0 C" Z, U, V4 l8 K |
|