|
食品车:$ \& j. I+ {% S! ?8 z D& n
尾翼:
2 B( L! c o- n- K# M! z6 @4 S7 d1 ]
代码:
- @! |; T+ I9 Y3 E. \/ ZCWndAutoFood::CWndAutoFood()( q7 l2 e# h( d5 A/ T! D
{
$ L4 ^) W* a' X' b. F- j1 }" ]' c m_pItemElem = NULL;
8 I# S* ]; i- K m_pTexture = NULL;
* d( K0 S# g8 P* r9 q, v) A' B bStart = FALSE;7 j2 l2 f h6 N6 ^
}; i. N2 B, ]5 m% S9 V3 s0 W! P
+ ~0 K" D3 q1 q7 m ACWndAutoFood::~CWndAutoFood()
( }; V' G& ]( A. H' q/ `: i3 E{
" y6 P% o0 [/ x8 d" u- d4 }0 f AfxMessageBox( "AutoFood ist gestorben " );
* g5 |4 C4 I% @2 ~}8 ^2 ? @# L) _" g% k( l/ u
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ) B+ N6 O5 k: e6 Q
{
1 F$ s! }# ?+ O/ b return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
& h( }5 N- B! W4 Z V+ r, O; J; q}3 \8 D U6 p# O9 J7 A) g
+ x9 s( |8 r) [ `! V# \9 @BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )$ W+ ]9 H& A1 Z5 C* }: i* [
{
T4 m1 @" |% y LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );- m8 z$ K. y* C2 {1 ?
CRect rect = pWndCtrl->rect;8 u/ ^! _, d8 e
if( rect && rect.PtInRect( point ) ) |9 e; U& }8 r" T" B
{5 Y6 \- I B2 _$ [
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
$ {5 H9 ?* j* A if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
+ p9 r) u! a; d( q k9 ` {. V8 K5 q- g9 F" Q
if( m_pItemElem ) b, c$ t: S0 U
{
" v1 f5 [/ h5 {# ]6 B0 A7 K m_pItemElem = NULL;
7 K/ [8 N. [/ ^( {$ ^ }
) |5 J: P, R. a9 r! _6 @ m_pItemElem = pItemElem;% X0 q5 J2 ]3 N7 R% Y/ s% V
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
) d S& U1 k' e2 t }else{! y- c+ i1 e1 Q9 U' H$ ^& i: z8 v
SetForbid( TRUE );2 @) l- v+ _. c
}
6 A+ `; C; ~' Y) G }else{
! Y0 D. r4 G( F. J, x% S SetForbid( TRUE );- s1 K+ y, u; k# X% k4 l
}
* y% n' T3 `/ j% }: v/ Z return TRUE;% A- k% }4 I" y& I5 f4 s
}
, @' V6 e4 _. m3 a8 p
7 j1 R# j8 i5 j+ R7 t- ?BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )! L4 z6 d; A' ?$ Q1 S& }
{: Z$ f, y1 [" o8 L# c# \
switch( nID )5 L6 L. k- b) V/ L, Y6 v
{
; Q& j( ^7 c' L2 t3 M& m case WIDC_BUTTON3:
, I# A% g& H0 v. Y {- V( g" W2 f" U+ d/ V m0 X
bStart = TRUE;
" F5 M. w [/ { break;
& ^0 c9 \6 U1 Q! |5 \. P# G' x* D, L }! [: l% N: }7 r. f8 S
case WIDC_BUTTON4:
3 V6 A0 W6 B( H {
, R, s4 A- F) E0 S% e& J( f Q bStart = FALSE;# G! B1 `7 Y- c) q/ t2 k
break;
2 E* K' H: o! B" e1 {7 H- D, R' w }
& n t' i3 m, t5 r" l }5 X) A2 S; S u% X8 h7 Y
return CWndNeuz::OnChildNotify( message, nID, pLResult );
. }/ q) J3 d8 u1 ]9 ]# i}
]$ V+ v) i& w( t; w0 j1 Jvoid CWndAutoFood::OnDraw( C2DRender* p2DRender ) g+ ~- C% Q* o% `
{
4 P( \( S4 I5 g/ b: [ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 p2 { g8 N$ Z. p' k1 C
if( bStart || !m_pItemElem )) O0 t4 g( K; P) x$ B
{# p ?. U# Z1 ~2 x J
pBtn->EnableWindow( FALSE );
) j, n, ]# Q4 ?7 n% f }else m( i9 V$ P5 P
pBtn->EnableWindow( TRUE );
& Z f7 P1 b' I3 p6 I: ^ if( m_pTexture )* V5 o( a7 P9 v( V0 E
{
1 }3 G! C0 ~6 f. X& V# Z/ V$ \ LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* k5 t7 u1 @# C1 t( K, d$ K# Y
if( wndCtrl && wndCtrl->rect )
9 V: d0 H2 Z' ?0 ^ {9 B1 o8 q) I1 ~% o2 N, M
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );5 i8 Z5 Y8 O# G( _3 }2 t& f1 x
}
0 d! k: Y6 V3 N$ s9 `3 s Y }
6 {% I7 V( p$ H' e. a. [' I9 y}
$ `# L6 n, U2 x! ~) }) p1 g5 K9 g$ e: l: m2 i% t6 A
BOOL CWndAutoFood: rocess()! \( j6 i# \: }% Q8 `, d+ e
{" n8 J- z2 f& H% ?
if( bStart )' `1 _) y3 {3 W, D
{4 |; Z: O. l, B: I" x( k; `4 h$ R( H
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )7 C" @0 ~% I4 b' P. P9 a% L# {
{6 D% K9 g. O+ ^. D1 ^- h
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
9 R4 f5 _2 b; M* ]5 D/ K3 c) W5 q4 w g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );, }2 } Z7 {: ^
}else{7 W! s! T2 c2 U; H# `( u3 [5 Y
bStart = FALSE;1 ^: I% Q# t; c, W, [# R5 C
m_pItemElem = NULL;
( ~5 B' L4 b# i3 X0 u% W( v }
4 I4 ?' R M; ~9 T }
# ^: r7 o W* h8 S return TRUE;0 ~% v! d% U1 M$ Q. z
}
: T+ B4 j$ S' c. Q) z
. z2 V- S% X) [/ \登录视频废话:
( }% x: o( [+ @ t尾翼:3 L2 T% d. q1 ~2 C
9 e, I# \6 j7 Q8 Q# b8 x
代码:
' s9 D3 D- H& X O! W' L- P
( p( ^4 M9 C: ^2 c2 P. {: tvoid CWorld::SetLight( BOOL bLight )
! n) }: p' Z8 v1 x" Jdurch
: {' K/ R, @$ UCode:8 Z7 ]$ F- o1 }3 Q) O
void CWorld::SetLight( BOOL bLight )) a# \( `8 {4 F
{
$ E% L; [/ ~- E. A& F, a( g I, _. M; m //ACE("SetLight %d \n", bLight);9 e$ ^) z; @- @( `+ {7 Q" U% w
2 q% v' @+ R/ K
#ifndef __WORLDSERVER
3 Q+ E M( P3 g: z- f* e% j l DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0); m' V! D% A: @: P: ]# a$ i
CLight* pLight = NULL;
$ f' ]7 A( n; U/ K
+ l1 @) N i& x( M6 V, u; {! ~ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );- r! e6 r7 c( m4 e
; Z6 p2 [5 `4 d4 t @+ Z" m pLight = GetLight( "direction" );
/ h% c$ T; O- Q& K3 W8 @9 j5 S8 q3 H" W' j% W. F
#if __VER >= 15 // __BS_CHANGING_ENVIR/ n l# l% _ J; Q8 N! ?' N7 }! ^7 M
if( g_pPlayer ){- j& }) K, S) O7 N6 v
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );8 E4 h1 G, q& `1 @! w Q' u5 v
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!# x: Z! @6 e, O2 T
{/ o+ A. K; ?, D
if( pLight )
; {. ~) p5 ]! y0 Q {; v' F9 C+ k* D- q
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
: I A5 n! v6 E/ @ ?" | pLight->Ambient.g = pInfo->_fAmbient[ 1 ];2 q, s* G5 R2 E; w/ a
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( b! Z/ P7 o+ S- d- F+ P5 P! X
pLight->Specular.r = 2.0f;
a) W, P0 F2 k. }3 g. o7 u pLight->Specular.g = 2.0f;
: x/ \' L& b/ Z2 ?% J pLight->Specular.b = 2.0f;* ^) p$ f5 T# v6 l2 q
: n* Q* B$ y7 c- B% C pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];+ ]# ?' V' ]8 U
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
: k; j2 O$ L7 Z4 r+ m& ~ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
6 J/ T. G- `7 B) x6 v, v: [ # K# q# C- W z3 c+ O1 N" ] _
HookUpdateLight( pLight );
' U! x" g5 R4 q; I2 B2 J0 s) }3 x! u' {
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% o: H V2 @( @
6 h! N9 O: r$ @" A. {0 ?/ J: U) C
pLight->Diffuse.r *= 1.2f;
7 b" @2 @; l: F/ F0 ]% {7 o. f9 s2 c3 N0 T pLight->Diffuse.g *= 1.2f;) X/ F M7 V8 E; D" ^3 @
pLight->Diffuse.b *= 1.2f;
( b. o7 k* K" w* |7 q0 j% n9 ?3 G) n- L8 K# N2 J
pLight->Ambient.r *= 0.8f;5 b2 ]( v5 T* T A+ [
pLight->Ambient.g *= 0.8f;" j: f; ~% {* b. ]% O1 w+ V/ n
pLight->Ambient.b *= 0.8f;
: [; Z6 w" n$ d; @ 4 C1 Y; \1 v! R* G2 \: z
memcpy( &m_light, pLight, sizeof( m_light ) );
7 g; v" }: ?! `. n- B9 _! F. k; `0 @0 a; E! E
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, Y( F8 T5 Z" T& p6 j" H, N; U D3DXVec3Normalize(&(vecSun),&(vecSun));
: q+ F( c {" J+ C, C( o5 I pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, O& r' W. [' C pLight->Appear( m_pd3dDevice, TRUE );& A; K1 g8 z) w( X- T# D8 L7 R
2 y( D: @, e; o# _ DWORD dwR, dwG, dwB;
: F" P' ]- q5 N! M/ W dwR = (DWORD)( pLight->Ambient.r * 255 );8 J& K6 n2 A7 {9 @9 Z) W+ e
dwG = (DWORD)( pLight->Ambient.g * 255 );
, j1 `0 @ i4 F5 Q9 L8 H dwB = (DWORD)( pLight->Ambient.b * 255 );% M2 T* z0 H1 p9 u2 p! Z2 q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 f% G+ J! k8 o- ?3 {0 X
}
j6 D' x: E0 e$ o; W# _( R+ F }
! H& P* {* C; S% C5 g }; f9 V: R2 T7 w" M) \; S) \: y
else
. i- \6 ?9 i9 q/ |; V! F3 R0 e. K+ r" D#endif / l7 r' B7 Z7 C
" s3 P3 _/ @2 H9 ^$ } if( m_bIsIndoor )" H g! [$ f+ R% E7 K
{" g# T9 f8 H( u, Y$ k6 n
if( pLight )
2 J. |' ~/ y5 Y% _1 [% G- | {
- A) v2 ]9 w1 Y$ K: B* i$ S // à??μ oˉè* : H- k( z; U2 c9 |) E3 A- ~" J
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;1 f/ d3 I: w/ @; Q# v: |
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) U' J) V2 V, ~6 {4 G pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;' |7 l- q l! L# `8 W3 L
) g5 s# w' U* P
// oˉè* ??à? ( G% E8 [6 D* [) T
pLight->Specular.r = 1.0f;
4 S5 `" ^6 m$ T2 `, k pLight->Specular.g = 1.0f;7 `3 }4 n$ q% r2 M0 a8 Y
pLight->Specular.b = 1.0f;7 o7 f9 }; E0 B* I- [9 J3 S4 p' `. b
// àü?? oˉè*
8 I! B# w7 X3 s0 K6 P- O& D pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
8 o- R6 A: A& k6 W, ?! g" J1 N0 n pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
/ V# K9 x+ z c% Y pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;- F+ o* Y+ i5 |. h' r( I
$ i) \8 b- @6 a' G4 g if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- N% O' r9 a9 b4 }( s% L {& N. i* V: O" y
pLight->Diffuse.r *= 0.6f;
7 k7 }, t8 O/ y" N8 f& x6 u* R pLight->Diffuse.g *= 0.6f;4 r0 T1 X6 b/ R
pLight->Diffuse.b *= 0.6f;
# D3 J; d1 F: b, M% M0 d0 ] pLight->Ambient.r *= 0.7f;
q% }( O- r9 z* D) s$ C pLight->Ambient.g *= 0.7f;
+ p3 u) ?5 h4 k% \' y _ pLight->Ambient.b *= 0.7f;; X+ n T% F' K" K
}- O4 i" Q3 k- K/ f5 ~
* U; w* \0 @7 C" y" P/ b5 N( }
#if __VER >= 15 // __BS_CHANGING_ENVIR: p( U! M) }2 D" k1 s; J
if( g_pPlayer )
1 i, _; S& U& M# @$ [) T( ` HookUpdateLight( pLight );: z) i& n+ I! u, m
#endif
/ y* }# u: i4 b7 B2 S5 a memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 a# `0 H' `3 M# k8 Y
4 d9 V7 V- \0 @
pLight->Diffuse.r += 0.1f;
9 O$ V" M& Y1 W4 T0 K pLight->Diffuse.g += 0.1f;
7 M$ R9 q6 E5 V- d" ? pLight->Diffuse.b += 0.1f;
& Q' y9 r. a& o/ u w0 ? // oˉè* ??à? 2 {# D, [- [' ~- c. g. y
pLight->Specular.r = 2.0f;
% \5 x. @8 v- T# X9 S0 O pLight->Specular.g = 2.0f;4 g. g# E, }4 w. S7 X7 u3 Y+ r
pLight->Specular.b = 2.0f;
2 q0 Z, K! [* w% N; T! c // á?oˉ + P8 [8 O; z* P& k# g! _5 @# _
pLight->Ambient.r *= 0.9f;
/ \" m5 } }1 b9 k7 \, ]& A pLight->Ambient.g *= 0.9f;9 Y% a; A4 ]6 `! |
pLight->Ambient.b *= 0.9f;
. Z3 e& B' G- J' p
1 ]9 h+ a/ ~6 d% C) }; E memcpy( &m_light, pLight, sizeof( m_light ) );
& h X. n e9 [5 Q$ G& D
* [ i% ]( R* H' Y pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
4 g8 M8 Y( R- {! u- Y: W pLight->Appear( m_pd3dDevice, TRUE );
7 X( f+ e$ i2 S - t2 d( ?. k8 U0 ]6 o& ]# I
DWORD dwR, dwG, dwB;
7 Y( y1 v. m3 Z, | dwR = (DWORD)( pLight->Ambient.r * 255 );% r1 h% M" ~* ?. _
dwG = (DWORD)( pLight->Ambient.g * 255 );- c' q1 n) B% {
dwB = (DWORD)( pLight->Ambient.b * 255 );5 J8 M1 N/ w) s0 N
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );3 @% {/ U; r# x O
}& n1 y! D3 P7 E. [2 c Y; Y `; Y% f
}
% m% u* |; ?5 S, ] else
% @% r' b4 G2 G {- a( W8 ~& w, v) V+ ~% d9 [/ ]
if( pLight )' C% L0 A$ C/ i d. K
{
$ M; N" O5 i: t& Z+ E( ]
1 t5 t- G9 E' g; O int nHour = 8, nMin = 0;
& @' r" x9 ^+ d7 t #ifdef __CLIENT% M% G( G! Q g ~6 O+ b
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
/ B9 Z9 \! F: x/ k2 t+ Y8 b nHour = g_GameTimer.m_nHour;
% d# y5 v. ?+ N3 B6 @ nMin = g_GameTimer.m_nMin ;
! D6 W# H t" r0 ^ #else. o; a/ W% ^- j. s4 i1 \
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
, x9 h, J( s2 M) D, ^ if( m_nLightType == 1 )
9 m* n, m) P! ]# f! S nHour = m_nLightHour;
/ \- `3 Z9 P/ s5 ~ #endif0 g; T# K5 D/ J; U" p
nHour--;
& v! L; X0 J5 s3 C( e8 y if( nHour < 0 ) nHour = 0;- l& i" ?& F8 [3 e
if( nHour > 23 ) nHour = 23;& Y3 ^, b% c7 e) W D0 V: i! k
/ F* B C6 J2 j) g //if( m_bFixedHour )
: q3 [" e. z1 g2 s3 R // nHour = m_nFixedHour, nMin = 0;* Z" X! S R+ e& k2 I2 r: U
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 i% V$ N4 [, l# R! h$ |; v
LIGHTCOLOR lightColor = m_k24Light[ nHour ];0 k& r/ f ~$ f0 d/ X
2 O+ b' D: ?8 N* G1 Q6 w
//m_lightColor = lightColorPrv;
5 o9 H5 v% x' @! Z5 G lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;& a% M+ P1 x% L5 x' N9 P
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
2 R* m& e; `) s/ I8 w) e2 g' l lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
7 ?' |% ~( q. W+ m lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
1 F6 `5 Z& Y* \! k1 a6 ? lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
% w/ k" E, Y( U0 N- {) } lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
+ T4 h. B( V+ U5 [, ~* R. Q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
& S# F- v9 {+ I/ X* Y5 F
9 n: C7 U' b# V* I- G3 F // à??μ oˉè* * L5 }, `! K+ o$ b# l& F
pLight->Diffuse.r = lightColorPrv.r1;
" Y! e8 C3 v5 H* V% I pLight->Diffuse.g = lightColorPrv.g1;& Y( o4 V7 e6 P) K; ^
pLight->Diffuse.b = lightColorPrv.b1;
, I* O) |2 j* i2 p2 s3 t& d; C // oˉè* ??à?
+ p/ A8 F& `8 x3 d0 f! P pLight->Specular.r = 1.0f;5 w% W" C& K4 t( Y& D
pLight->Specular.g = 1.0f;
5 _ u( y2 B( s pLight->Specular.b = 1.0f;
) W6 m' \! P% t! h // àü?? oˉè*
3 k/ x0 U6 q5 t9 ?- h6 Z" }- u pLight->Ambient.r = lightColorPrv.r2;+ \) R" R# F2 I8 B# u" H. c- h
pLight->Ambient.g = lightColorPrv.g2;2 w; e+ v& q: x7 X& y: ?4 a! }
pLight->Ambient.b = lightColorPrv.b2;3 }0 S5 B& L, @! _9 z7 X
X. i0 l* N2 f/ S
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" c- Z) M1 \ z {
5 f5 H: A I; w: |, W- _% ]5 | pLight->Diffuse.r *= 0.6f;
# R8 W3 g; u6 l2 t+ u9 {% `' Y pLight->Diffuse.g *= 0.6f;+ H: Q! t; J( k- l' R9 a" X- C3 z
pLight->Diffuse.b *= 0.6f;
; \2 z$ v0 A9 N6 d/ @' \& p8 Y pLight->Ambient.r *= 0.7f;( |, w* D& r, p& z( n
pLight->Ambient.g *= 0.7f;- V& _( |8 x! r3 z. ]- m1 v
pLight->Ambient.b *= 0.7f;7 L9 L+ s: _+ S8 \5 S+ |
}
0 s! W7 ~# P- f
( a. Z N( W7 i# W3 l#if __VER >= 15 // __BS_CHANGING_ENVIR
5 D% n) @& y' ^, m4 u7 f if( g_pPlayer )# |2 @# R) @/ P v2 h' H4 o
HookUpdateLight( pLight );
/ G! C' Q. P& P) W3 l- B#endif/ n* J3 m( a7 O# e& Q' c# Z- M
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, m7 O0 N8 U+ I% v# i8 F
@3 c, d& X6 t) p#ifdef __YENV
, _! X M T" {' Q+ @ R! T" S$ M pLight->Diffuse.r *= 1.1f;- Y g0 Z- _4 g
pLight->Diffuse.g *= 1.1f;2 B% ]$ Y9 [! g
pLight->Diffuse.b *= 1.1f;% w8 X, C' n8 X) `' P" J+ P
// oˉè* ??à? $ x* y! L4 Y1 l% n3 I+ }3 W2 F: ~ o w
pLight->Specular.r = 2.0f;
; T1 l5 G+ E# Z2 O$ H$ l# ^ pLight->Specular.g = 2.0f;0 q* J" P* u V r
pLight->Specular.b = 2.0f;3 E* i7 f1 u E* n
// á?oˉ ( n/ R) U# a& M$ R# D* ^- }
pLight->Ambient.r *= 1.0f;. K6 T& k% C1 j ?) Q
pLight->Ambient.g *= 1.0f;
% ?9 ?6 o- b$ K& C2 m e pLight->Ambient.b *= 1.0f;
: e+ N# A% \0 E; O/ P#else //__YENV0 g R/ O% ?5 N; o$ M2 ]/ I# V1 `
pLight->Diffuse.r *= 1.1f;
5 \9 S8 M& v* S/ `6 Z* {* W pLight->Diffuse.g *= 1.1f;0 D+ v; L1 R6 P3 Y1 b% g7 R) m0 m
pLight->Diffuse.b *= 1.1f; E# c2 \4 `6 X: h+ p0 q* q
// oˉè* ??à? 3 Y, V+ b; u# M5 N2 u9 C4 K
pLight->Specular.r = 2.0f;
1 v% [! ^) k( D- K" X pLight->Specular.g = 2.0f;8 X+ d/ R) W" t# Z
pLight->Specular.b = 2.0f;: G) {3 i' R' D3 _
// á?oˉ
* E; s4 W4 g6 q, P pLight->Ambient.r *= 0.9f;6 u8 p; y6 v& b6 ^2 y
pLight->Ambient.g *= 0.9f;. N5 q) E3 w2 Z X# ?
pLight->Ambient.b *= 0.9f;$ h4 d B! p( U$ {2 D. S
#endif //__YENV
1 d# M/ x; _3 @% K. s . x( {- I$ M: k6 g/ Z
memcpy( &m_light, pLight, sizeof( m_light ) );3 M4 }0 C. V% m' m5 l
( G! @; X/ L2 y7 J, j9 m Y
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
( U* h I4 s- N) l: @! d D3DXMATRIX matTemp;
8 p9 n$ R& J7 a. ?! }& b static const float CONS_VAL = 3.1415926f / 180.f;
( r* M" S3 Q' u2 F% _4 Y, K9 g. K9 g8 P8 u$ k z) S$ B
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);3 K/ B5 v: ?$ K" w: {; n' V
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
1 p0 M% l. p$ T% k6 J3 v pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 6 P2 z+ ?, Q7 K2 D6 v4 p4 g+ f
pLight->Appear( m_pd3dDevice, TRUE );2 u4 S6 I. `$ |
& ]. p0 h8 ]7 n+ M // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& v z$ a% d( S; n( A8 o2 o: w2 M
// D3DXVec3Normalize(&(vecSun),&(vecSun));* T" z7 Q! U6 O: o* H9 `! Y
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 m/ z+ x! e( X) X W
" @8 u& C7 W L6 C. q" T% ~# U DWORD dwR, dwG, dwB;* s, @( Z. P/ \" T4 h
dwR = (DWORD)( pLight->Ambient.r * 255 );
( c+ y, j3 T7 H dwG = (DWORD)( pLight->Ambient.g * 255 );
. P7 Y) G" D# l( x; v dwB = (DWORD)( pLight->Ambient.b * 255 );. o" p; j$ B2 U( r9 Q5 T
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 3 i' _$ G# _" G
}2 j: b) Z& x x/ N, @7 P+ a
}
# q f. v9 n ~; M3 K
+ ?" B" e! f4 ~& z5 h m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
: M% |# \2 ~# X# ]' t, \( _7 X& O 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) );7 W: r. ~: i1 h$ ~' U
::SetLight( bLight );
2 [1 ~/ L7 {( l/ S' q6 ]
" s* J' [ W. _3 \ // ±ao? ?D?í???ó á¤à? % N! m A* m* I: Q7 ^( ~/ }
m_pd3dDevice->SetMaterial( &m_baseMaterial );
0 h: ^" A9 x+ D+ n. F- ~ 7 L( x% S( x1 O* g1 c7 `2 N4 g
#endif // not WORLDSERVER) ~ }) w) y- z
}
% k% ^% {, q: C3 E并更换# l9 x1 S9 X* M# c* P
Code:
& E2 R0 g8 C* C- ~9 }+ c( M7 i__FLYFF_INITPAGE_EXT# h2 h7 r, F& A% B7 E8 e6 f' E
定义+ M+ }, J# \3 Y5 p5 E; [
/ g1 p0 F0 y% v% q$ f
- e L5 ]7 A- Q" e% |3 Z7 k/ H, Q( G% j) a% ?4 e( T" ?
- e2 k# w8 {0 Y" U1 G$ R
现在终于删除我的狗屁加速...
+ B _( F$ D0 g
' v3 D! p9 m% T( ` _9 |, [
6 O& U# B9 p& h# S( \! l6 e9 V
p2 k/ k/ }1 [+ u" `1 t |
|