|
食品车:
! m5 N/ c! U' z$ ~5 x$ J$ \尾翼:
" x' E1 |9 N" H2 _4 @, t6 C# m# Z) L* j6 Y5 T- P9 c
代码:2 E0 D4 z0 V6 s6 p
CWndAutoFood::CWndAutoFood()& C3 _/ n/ |" F
{
4 A2 r& ?2 L+ ]) g" t m_pItemElem = NULL;
6 ^! [# S9 f+ {7 A: J* h, | m_pTexture = NULL;9 P) @- z7 H* I% B/ G2 x$ \6 ~
bStart = FALSE;
+ q! J/ x' g4 G4 P b; [, I: m* E}' K* M5 n' _0 a, u" X! J& ~. A
6 m- V2 Q8 w4 ACWndAutoFood::~CWndAutoFood(); f) H. b4 Z! v6 R3 w. b
{
2 D @9 N# @9 u) X( p# k4 S4 { AfxMessageBox( "AutoFood ist gestorben " );
" D# h- z3 ^. N3 Y0 o}4 u& G( J" ~6 C5 k4 P5 a
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
& T+ s" s9 L, H/ s4 E: F{
; Y7 {+ h: e2 ?6 w* h9 q return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );/ h2 i8 z9 o5 l6 \% G0 ]
}" n1 e! t0 J+ ~- O, `' X* C: I
% g( H; y1 g) m3 P
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ). N% {- m9 m6 F, |; g" L" @
{( T5 q& m3 Q8 }" W) w
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
$ U. z9 l# A C3 P: [$ T CRect rect = pWndCtrl->rect;
4 K/ R* ]) n( Q. u) k if( rect && rect.PtInRect( point ) )% m g# [. S7 g" n+ S* F4 ~9 S
{
9 S& L; L( m+ w9 A# ]- s6 z CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );/ O9 `: Q+ |1 r3 Y( o' A
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 {# X2 [2 z" O1 G
{
2 O& m8 { u# q9 C9 K' F if( m_pItemElem )
7 W3 s5 ]) T( e" e# D3 m- e; E {. z% c3 G4 ?) t+ r' m
m_pItemElem = NULL;5 @5 u/ B! _! N/ i/ ^$ e4 \$ |
}
2 i4 l& h: A# e: a, ] m_pItemElem = pItemElem;9 e& @; A% y& f8 `$ G' H
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );# X3 T3 {) d$ C1 }. J7 U% Y4 c2 [
}else{" ~- b7 O s4 i1 A
SetForbid( TRUE );- S m" J0 W9 `% F' \
}
) K9 [! a2 X+ m" s% p; v4 ?' u- C }else{9 ^0 q& y; j2 D2 u# Q. m2 ?/ R, m" O9 T
SetForbid( TRUE );" q) l3 i4 L; c0 M3 L
}5 b! E! u! I6 Y& d @9 R. o; k
return TRUE;6 C' d: v# h8 q
}6 [3 B, V! T1 u4 y# J6 |; g; a. S
5 U2 \& Y1 ~% Q0 u/ ~5 P; e# i$ S
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
8 L" K: ~ ?% W+ O{! R" o3 i) O9 e( N: m
switch( nID )4 _7 i- }* R K1 b* t
{) t: G. }" x: e' B! c7 m; x8 u% H
case WIDC_BUTTON3:
$ Z: ]# r: f! A( g& E0 ^5 o) D {
* }$ l5 N( `0 |( L# z bStart = TRUE;
6 e$ k2 h# `& ~ break;
, T+ s9 i# p% @/ M }0 l) j$ P7 h1 X8 j& J% r
case WIDC_BUTTON4:
6 _3 ?7 |$ t5 c$ a( y6 d {! ?4 {* Q* ^5 G: p; h& ~% {
bStart = FALSE;* `. T3 E+ Y9 h8 n+ |0 ~7 j, [9 A
break;2 y% E2 A7 L+ H' z' R2 O% M
}- b* u% _0 I+ O
}2 g& o! C% {: `
return CWndNeuz::OnChildNotify( message, nID, pLResult );
7 X4 z7 Z9 l* _0 W}
/ p7 g8 I0 Y# Y* }% T2 uvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
6 d B# O' S- c7 \{
3 G$ a& i8 @$ W* P" ]+ c" K CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 o7 {+ N- x8 y; d, ~2 k if( bStart || !m_pItemElem )' M, E. U# u! H$ P0 G
{
: Z1 X+ X$ m( q' ` pBtn->EnableWindow( FALSE );
. T+ l. u% F6 P- W }else
- y& o& \; g5 b9 g* L' N pBtn->EnableWindow( TRUE );# T% y! _4 \; J' y8 Y G3 p
if( m_pTexture )
* L& T: P& o' r8 F8 J# J. X {
7 }( \7 K4 {) p& P6 p, ^3 N LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' v& \ S6 F' r& H9 C! w7 u( z: ^ if( wndCtrl && wndCtrl->rect ). ?' _+ A D" X1 \5 K m
{
* A9 `0 p9 D( d9 W: Q# N9 t8 P m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
: j* e5 v! L6 u }7 n) T3 |) o) x7 U( {' k
}$ _4 {+ J* }; C/ c: `! Y/ j0 Q
}! B0 a, E5 s* m1 Y
! D6 f& t s3 O: ~9 K1 B, L5 VBOOL CWndAutoFood: rocess()' J! Y3 B4 B7 z' G+ }2 c
{
7 T# B! H' Q6 s4 W- l4 J. G if( bStart )
( H. o' K7 S& g% ~ {8 a) e0 ^$ E2 ]8 y% O- O
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
6 @" ^; l+ {( N5 G# W {! a0 t2 ^ M. U! h% ], J
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
: i% d2 A7 \7 U1 {' A/ S g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );2 h9 o! p% m# D5 {4 I' v2 C) S
}else{6 e* [) p( ^& R+ Q
bStart = FALSE;
3 {+ y# x- h: w m_pItemElem = NULL;
9 v, {1 j1 b$ H. Z) Z4 o* z( d }
: c, F5 {& W4 S* D5 w }
; o, I* y h$ c P: l7 B7 V R; } b return TRUE;
3 z+ Z( ?) W8 @}& |8 O- Z$ s; K2 d( |8 U* W F) v
4 f5 O2 \! S# i7 M4 k# ?! a
登录视频废话:5 W# y; X# R* t2 K
尾翼:
9 A. S8 e& g" b: j* L% h. s1 \$ u# D! I5 t+ G
代码:- j e1 o& r; E6 R9 l
, b" ?2 Y2 ^3 f' o! {, I
void CWorld::SetLight( BOOL bLight )
, A0 u0 E! \ A0 m/ ndurch
1 a; J1 G) k; i% V% hCode:
% @% l5 Z; C) p; f9 m+ f+ ?. ]void CWorld::SetLight( BOOL bLight )" x% |+ R Y- G
{3 K' x. k1 x9 R" q7 a) `
//ACE("SetLight %d \n", bLight);
* v* r* D( z5 h: {* t' y7 a 0 g6 S& R- ~, w0 G- q9 d& r/ s v. O. T
#ifndef __WORLDSERVER * q6 \7 q3 \& p! e
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
2 Z% |* F5 \: ^3 s7 u; [/ l5 v3 w' s CLight* pLight = NULL;3 j) W2 h) {1 N$ ]+ D: w ^8 h
$ ^# ~- F3 ~+ w! u/ h& |# p D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );. ?, G h. k+ [7 E8 v
8 Y1 e4 d1 P! h9 X- @9 D- m0 i
pLight = GetLight( "direction" );
8 S# c% o3 X+ R- `4 e& ~1 B0 q: z; A" I) A" ]
#if __VER >= 15 // __BS_CHANGING_ENVIR; p$ T+ n" c3 W* G7 Y
if( g_pPlayer ){
$ @* p# x& a) r6 L3 f7 [ ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
5 r" k* C5 i7 B2 [ if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 Q* Z9 Z" t/ @
{
* I1 l- c: P# p, b7 W# O* m if( pLight )
! ^* [9 M- r. }/ e, z/ `4 l6 t+ v7 V {
: Y8 x" p! }* s# z/ j pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
p/ d& H9 H$ Z" u% ]1 | pLight->Ambient.g = pInfo->_fAmbient[ 1 ];# B3 c' s1 D: Z6 x1 @) `3 ]
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];2 P2 b! x) M5 M& f5 Y
) i) d6 N4 C. p+ _# D5 x) E pLight->Specular.r = 2.0f;3 u) @$ K5 H/ M
pLight->Specular.g = 2.0f;
3 O) e0 c5 P+ b# y2 h pLight->Specular.b = 2.0f;
: A$ v8 j$ K0 [+ D# F V: b/ j 7 F- k9 C( W* [+ N% c
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];1 R2 n- }# X% I
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];5 y. h. T' n2 J% D1 w& M+ {4 r
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];) v$ }! T2 A/ P) x x( {- x
; Y2 N% t6 H9 Q9 b
HookUpdateLight( pLight ); A; Q9 U, F, a! d' {* X, d1 `
% `% N% M; ~# O memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 F' E* E2 |! Q4 p- u( V
% h. v: `, q# Z pLight->Diffuse.r *= 1.2f;
) j' L q4 m) S% R0 O pLight->Diffuse.g *= 1.2f;
3 x9 b: u! x8 l R: ` pLight->Diffuse.b *= 1.2f;. S. o8 ]& B6 e1 _$ ?
% g- w) _& [% i( a9 ?' E
pLight->Ambient.r *= 0.8f;% Y6 n1 ?) v5 Z. d
pLight->Ambient.g *= 0.8f;3 W V0 e V4 P( m( ^8 Y
pLight->Ambient.b *= 0.8f;
" K1 `+ n* [2 y: g$ [: [. c, C
7 }8 K3 J% \4 j7 _ memcpy( &m_light, pLight, sizeof( m_light ) );
" K8 K6 B' r7 ~1 u9 Z) d+ H: @; I; Z7 O0 D+ _7 ?
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! ^& w4 h' s% ^
D3DXVec3Normalize(&(vecSun),&(vecSun));/ {2 E4 W+ e) Z( s4 h8 u/ j
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 w$ ]' o4 Y3 F
pLight->Appear( m_pd3dDevice, TRUE );9 j; {$ |. N; b
7 r# c- c2 A* ]& Q
DWORD dwR, dwG, dwB;
z$ v( d& b. e J- q dwR = (DWORD)( pLight->Ambient.r * 255 );
4 C/ a% ?/ j# `6 R4 Z2 \9 v9 g& x4 o dwG = (DWORD)( pLight->Ambient.g * 255 );" P" {' _* h4 m, i( g5 r
dwB = (DWORD)( pLight->Ambient.b * 255 );. h( G$ V, u1 k3 @7 a) H2 d* w
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 y3 y9 W5 O( R6 }4 r/ a2 V0 ? }
( m7 b7 {+ `& ~) L }2 l; L* \4 ]% H) a# a
}; a1 `6 V/ Z" o9 p! J5 W
else
1 t( _: X+ x3 {9 C8 B#endif
5 u: I! O3 e v2 m( n5 L! u5 P2 e# F* v0 E, x1 ^& O4 ~
if( m_bIsIndoor )% s+ y. b, l+ e
{
5 O+ i" ~0 w/ \0 Z9 M1 } if( pLight )/ N0 v1 g' p. E6 \) ^9 n2 R1 ^
{ 8 Q8 u1 b" s8 |$ `+ K. w
// à??μ oˉè*
+ m) u- x1 f6 z1 j; k; L pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;' h$ r; [. M+ @6 s+ v
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
& p/ N' E" l, g& R" c+ j( X pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
( I3 R) h) i9 ?/ F- D# r( V% V5 Z1 ?0 g! T# q' t& x! e) @9 i# L
// oˉè* ??à?
8 F& w0 Q2 T; u' F- L pLight->Specular.r = 1.0f;
% ~2 [3 z2 j+ S% d+ t; ?; @& U pLight->Specular.g = 1.0f;$ D6 [) J' [+ O; W6 ?8 j: |$ q
pLight->Specular.b = 1.0f;: F8 c4 S" a. t7 Q4 z0 D$ P
// àü?? oˉè*
, A' V& T7 d. E$ Z( N$ x2 D" B, _ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;: s+ L6 G0 y) U% x) U
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;) X0 Z1 x+ V& K
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
2 E5 \1 P' w' t" E1 X2 d: L9 q$ A; [
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
! R, [; ]" @: B8 I {
, {$ t0 q& x4 \$ }& |& ? pLight->Diffuse.r *= 0.6f;
4 b7 g/ O; f6 M% Y5 {4 E pLight->Diffuse.g *= 0.6f;4 a/ O# y3 y7 |9 [1 Y
pLight->Diffuse.b *= 0.6f;% e7 G' I# ^; o R( A& P
pLight->Ambient.r *= 0.7f;
g, B( J7 _9 f/ \1 g pLight->Ambient.g *= 0.7f;7 X) i8 I7 W" [* }2 N) ~
pLight->Ambient.b *= 0.7f;( M1 w$ q# O; L- w
}, H. W3 w0 a6 G9 _ {
' `% I( D2 y6 L) S6 t9 g- B, d
#if __VER >= 15 // __BS_CHANGING_ENVIR
. E- i. r' x% A5 w8 u5 ~$ \/ f if( g_pPlayer )8 R4 l2 ~9 c# M0 V6 `
HookUpdateLight( pLight );+ h6 a+ ^# r% s8 L+ i7 V( `
#endif
0 J2 |0 h7 m4 f& v& c, x memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; j7 T1 Z8 t! b: r, A% [
: j R( q) @. q. ?% B) \
pLight->Diffuse.r += 0.1f;
$ S* ^9 \- t6 K5 ?' w6 F pLight->Diffuse.g += 0.1f;* U' z$ f" R8 _3 }: D E3 T. P
pLight->Diffuse.b += 0.1f;
) f; w/ o" j& O! k- L( T8 m3 d // oˉè* ??à? 5 K3 L- h8 Z3 F/ M6 J+ ^3 t
pLight->Specular.r = 2.0f;
$ a+ D; L( {: I5 q& a0 e. r pLight->Specular.g = 2.0f;# _! _# ]' r$ P+ E" L/ e; z8 _ O
pLight->Specular.b = 2.0f;/ K5 x1 M* n7 {" W4 r9 p7 V- d
// á?oˉ
& T7 t+ K/ b7 W pLight->Ambient.r *= 0.9f;, m8 d3 p8 V8 b
pLight->Ambient.g *= 0.9f;3 N4 P' M g5 X5 [+ B
pLight->Ambient.b *= 0.9f;3 h; a/ W* {1 r" T
3 e' _8 U5 u6 Q# g memcpy( &m_light, pLight, sizeof( m_light ) );
5 }8 w7 A; v& w9 ?3 B* }2 ~ 2 ]' f2 c" G' g) K+ H( C
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
5 L6 ?% }' y7 n' `$ e, X pLight->Appear( m_pd3dDevice, TRUE );$ x# A# f' d P& s# p2 l) O# z2 L" m5 A$ I
# K% _" t5 U- A+ H$ n2 h: n
DWORD dwR, dwG, dwB;3 n, k# W5 I- P; q( a
dwR = (DWORD)( pLight->Ambient.r * 255 );
; B& u) b3 e! Q; F3 v dwG = (DWORD)( pLight->Ambient.g * 255 );+ L& g& r6 k+ {& {, K# \5 ?' }/ [7 G
dwB = (DWORD)( pLight->Ambient.b * 255 );0 Q. L6 i7 K( }% d& J
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- [% F1 @- `/ j
}0 k& c- k4 h/ @0 R/ y1 `+ I
}
3 o, \7 ]2 A* B8 K else3 r! Y7 E' R. p$ |
{
5 p5 V, J7 B& _ if( pLight )9 U% t j! ^; ^1 {) ?8 P
{
7 u4 R3 m) y/ ^3 i' G1 B+ p& f / V2 i7 H9 e4 y2 P4 S
int nHour = 8, nMin = 0;
8 G5 a3 K! l& U& ~ #ifdef __CLIENT
# t7 K! f+ j0 S1 f* k8 P; J8 ?* V // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
2 B; Q' ] m# f/ Y. B nHour = g_GameTimer.m_nHour;
4 K# \ U* d. r" \+ V6 z% G' [7 F2 } nMin = g_GameTimer.m_nMin ;: \+ Z) y# [# I) ]
#else
% I0 u" ?6 A x9 ^8 ?7 V& j // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
3 J0 N) a: ^5 M p: H! b if( m_nLightType == 1 )
- I# v1 R4 T: }. ` nHour = m_nLightHour;
, P2 N( S' [2 M5 U! K. U' ?# ^ #endif6 Z# E9 g& j6 ] o/ a$ `
nHour--;& d6 Z8 J0 l8 \0 e! e
if( nHour < 0 ) nHour = 0;
' ]5 {+ @$ y+ I( K if( nHour > 23 ) nHour = 23;
. |9 s& V% v5 c4 f' x* q# @
1 Z0 J1 o3 G7 l5 N //if( m_bFixedHour )
$ s8 @/ q F& }' v1 B // nHour = m_nFixedHour, nMin = 0;- ]: N/ [7 E- \0 B' v) ?! C7 V
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
+ m0 F: X/ h/ [$ J9 Q% Z C9 R LIGHTCOLOR lightColor = m_k24Light[ nHour ];
! S3 l/ @+ {1 f$ ?2 ^# J
% h0 l4 J- ?- o; ^ //m_lightColor = lightColorPrv;
! I7 m" Q6 g2 A- y p lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" Z+ O, Z4 H$ T3 B% Z6 }1 q
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;4 L) W/ ?+ \& b! {5 R5 f- U
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;1 @, T! D: T6 Z1 T4 T( ^4 _
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 A9 ^9 n* y9 h' K, j" w lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
# T. w7 g3 |4 g3 M lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;5 K0 _; ~1 d1 @2 p4 C& k8 f
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)6 C9 L5 {* l! }! V' L2 C' }1 V9 O
- f/ r" [0 P, a8 C
// à??μ oˉè* $ f$ k# D0 \8 w F
pLight->Diffuse.r = lightColorPrv.r1;& A' b* [" ?9 x
pLight->Diffuse.g = lightColorPrv.g1;
, y6 `4 V5 b/ b7 I pLight->Diffuse.b = lightColorPrv.b1;# P8 U9 E% C( t
// oˉè* ??à?
. J4 N2 m4 ^1 e2 R( J( Q6 f& K pLight->Specular.r = 1.0f;
+ h+ U. l5 A; \4 ^ pLight->Specular.g = 1.0f;7 y0 l9 l5 j. \7 W
pLight->Specular.b = 1.0f;
8 [, B3 k' w! ?" p$ Q% X& e // àü?? oˉè*
; `& _+ R" b+ @ pLight->Ambient.r = lightColorPrv.r2;
& u- l% n4 v; m pLight->Ambient.g = lightColorPrv.g2;) M; I0 e- ^- @0 n W! @' h+ O. G
pLight->Ambient.b = lightColorPrv.b2;' ]3 a' I5 t! r; p6 \. b
6 R( m! x6 Q6 V if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
9 n: l3 F6 @' M) W' c {
7 N7 ^( ]5 k/ q8 W$ n+ ~# f( b* ? pLight->Diffuse.r *= 0.6f;% ?, X1 \: t/ J" x9 R
pLight->Diffuse.g *= 0.6f; ~" r' U4 _0 R4 K" c
pLight->Diffuse.b *= 0.6f;3 t7 U" w7 j4 _9 _
pLight->Ambient.r *= 0.7f;
: \; R M2 z8 ]& i% Q pLight->Ambient.g *= 0.7f;+ @6 s; x! P- |" O \) o# t) _. @
pLight->Ambient.b *= 0.7f;
" {+ F1 K! O) \ }% {# b' \: e* P1 d
; |! o7 @ U2 @#if __VER >= 15 // __BS_CHANGING_ENVIR! ~3 f: N- B1 V+ R2 b- `9 f/ g
if( g_pPlayer ). B) G8 }7 L M3 b2 `; v
HookUpdateLight( pLight );
, N1 u2 X1 _" |$ C#endif
# _" l+ A1 M/ n8 x; G' b memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' ^. G5 z2 Q8 T( C. p) F
j& @& ~* |( Q+ G#ifdef __YENV# Z' o$ {! w( c. r3 Y0 [
pLight->Diffuse.r *= 1.1f;
8 B- R) y/ V4 l# }* b3 r7 t8 F pLight->Diffuse.g *= 1.1f;
. G0 C" g4 i6 @. U pLight->Diffuse.b *= 1.1f;" D. q; ]1 G, `7 [/ M; ]
// oˉè* ??à? : i$ s% Y. u9 H- ~! H
pLight->Specular.r = 2.0f;
# a- t7 M5 a/ k3 O pLight->Specular.g = 2.0f;
& s* p) Z k1 a# V/ a pLight->Specular.b = 2.0f;
! a$ ^% O, E0 ~4 S // á?oˉ
1 d5 V$ x0 p ?2 e" f8 {. b pLight->Ambient.r *= 1.0f;- D6 u( n- e! s4 R$ ]
pLight->Ambient.g *= 1.0f;# ?" g2 R! V6 ]1 A: E+ c6 p' O3 a; Y
pLight->Ambient.b *= 1.0f;
0 R. z& J2 a' S6 H#else //__YENV& x2 i1 P: _5 Q: j
pLight->Diffuse.r *= 1.1f;
$ i1 L$ n% ?" v" }2 \- F pLight->Diffuse.g *= 1.1f;
) d8 l6 U3 ?( k6 p5 } ~5 n# H pLight->Diffuse.b *= 1.1f;
; J0 g. Z' x* q // oˉè* ??à?
6 f. Y2 ]7 b0 h pLight->Specular.r = 2.0f;
) Q- W; E6 D* i& S1 U1 t( e pLight->Specular.g = 2.0f;9 I+ \6 J/ E; J% D5 H- [, w
pLight->Specular.b = 2.0f;+ M. J& w" s2 }6 o$ W8 P& ?
// á?oˉ
8 t7 V6 {% ? |' n P; A( s pLight->Ambient.r *= 0.9f;
; Q: j3 m& [$ T+ T pLight->Ambient.g *= 0.9f;
+ C" c) d! c( H. Y8 r# F, W+ [ pLight->Ambient.b *= 0.9f;( K6 ?* |$ C O9 x' R4 O! n
#endif //__YENV 3 W$ f0 b+ G- o% \
) I7 c+ l4 K# w5 } memcpy( &m_light, pLight, sizeof( m_light ) );6 i, i1 `( N% o! Z4 ] r2 b5 F
i& p9 c+ v$ ?! l. \7 q3 F D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
* L' J4 U% \% y3 U D3DXMATRIX matTemp;% m# f4 J# F1 A9 e( S
static const float CONS_VAL = 3.1415926f / 180.f;
7 b1 Z1 I: A6 e- B# [& B
- t) {7 p, @7 Y I! O Y0 W D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
$ V$ F h$ _5 c6 G D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);- r8 D/ A) x/ f! f( E
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
( Z# D5 s8 _6 W, g pLight->Appear( m_pd3dDevice, TRUE );' t: H0 B* o+ @" G" `: @ b: A$ V
, h; @- L# @+ {3 N
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 u( S2 h" ]# o9 Z8 t // D3DXVec3Normalize(&(vecSun),&(vecSun));
9 q8 ]4 ^' R$ ?# Z; S. j // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 7 k, C, W+ x! |8 S
6 t7 f8 i1 E3 R/ ]- q DWORD dwR, dwG, dwB;; h( w7 Z7 c5 P8 `
dwR = (DWORD)( pLight->Ambient.r * 255 );4 ~1 n/ p* V( f F! r8 r+ s
dwG = (DWORD)( pLight->Ambient.g * 255 );$ }+ R. Z: E b' I# v
dwB = (DWORD)( pLight->Ambient.b * 255 );
' a, \0 Y* Q: M0 E9 [4 h) ~ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); , t9 `! j5 j7 W( l8 O1 n
}
* P8 h2 b* h$ q }
k1 Y8 }0 E$ O" X# B/ Q# M" u) W m j; E- j- `# i @+ m
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );, \; t8 t4 V3 k$ v( b
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 ~8 N3 o6 g' F( K1 F( V/ B
::SetLight( bLight );1 u# t8 B" c0 l" h, p2 B1 D7 V+ {
8 `; c; K- x# K9 Z! m9 v x" c
// ±ao? ?D?í???ó á¤à?
7 o8 k% a) Z1 T( @. b' q4 H2 ] m_pd3dDevice->SetMaterial( &m_baseMaterial );
+ M) i F+ t7 S ; X% T& Y- a/ k0 f
#endif // not WORLDSERVER* q3 S6 A* n [* |
}
! K) c: i. \! B并更换
0 {7 C- ^( Z1 HCode:9 l, k, ], z2 y y
__FLYFF_INITPAGE_EXT% l( c p- W3 O; M
定义4 x7 o, a7 N0 N/ T6 S
3 u: k7 H, o2 ^8 I8 u9 n3 N* |3 Y/ k2 w' @5 c- z
4 Q5 x' Y. [% T# b
2 _) x- a/ T( E! i: W( d8 r2 x现在终于删除我的狗屁加速...& z* t$ o, W) x2 d0 o
+ U X6 O9 M" w, f' h3 p) q3 b
1 p; K4 u8 ~' d" @2 I$ u- o7 m- }2 B6 o
|
|