|
|
食品车:+ ~; ^. I* D" a$ _
尾翼:
* P6 ]2 V( Y1 X/ v; S: h* Q! @* e+ v, t+ y# ~+ j& ~+ B
代码:
- e4 Z, J5 s/ sCWndAutoFood::CWndAutoFood()
2 J! C4 |8 S/ D! \7 O5 o{
$ K ~& H e- q* `: P; X; M4 d m_pItemElem = NULL;4 p C' D9 A9 \. {9 w
m_pTexture = NULL;
& I8 _, m9 t0 j# [& W bStart = FALSE;* ^6 B% N+ A. l7 d* A% B0 m
}: L4 R/ E2 K# t: e2 x
; K6 ~: p# t$ t: _; GCWndAutoFood::~CWndAutoFood()3 I4 o# h3 G4 o- }: F" e& g% c
{5 x2 {) D/ \; z8 Q
AfxMessageBox( "AutoFood ist gestorben " );
. t" E+ X7 c5 D}
4 m+ T" j0 i9 V$ ?" d( yBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
1 z7 M0 ^5 I* R# t{
% \) o( p1 {5 B0 R. t$ h% p return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );/ n. S2 v# n( B+ X+ u% F
}2 D- y; P g4 y$ a& p: B6 n) U
7 i: |- N) ]/ B! D/ ^; RBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
1 ]# M% D! k1 E& x{6 W; l% t6 a9 u( I
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& {% z2 _. R: O- r C: {4 m CRect rect = pWndCtrl->rect;" R$ r1 P) E9 `! M' S
if( rect && rect.PtInRect( point ) )* K9 l, s' E! r! s
{
& Q v4 e; |4 i, K6 C8 ?# g" Y3 D CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );; E8 L1 [: F: w3 C" p# O
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
4 j6 \2 f2 m% g$ s( [( \0 c {
; b1 x6 J3 Y& H if( m_pItemElem )$ z4 l9 ?+ z) Z! b0 k
{
2 A `& F: K, U! W m_pItemElem = NULL;
' Z# p& { g1 c6 Y1 ^) } }; o+ s e# y( d. P3 H/ Y
m_pItemElem = pItemElem;7 k' R% X6 ^% u: I N B: d
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
3 e6 g3 `( Z4 S }else{
4 g2 }( v# X0 Y- X' Y* S z" Z SetForbid( TRUE );' P) \; S# f8 S9 D
}
/ q5 Y& t# o% X; k4 x# d* w }else{
- {. s/ p! M3 _/ ^ SetForbid( TRUE );
; E- Y4 U$ l/ f0 r }" U0 J" Y3 a# ~: R0 v( h8 m
return TRUE;
# d/ P {% m$ w8 _; g. R5 s3 g}
8 p* Y1 D' x" x! E3 l
# k6 v1 ?: d; f2 J Y; H+ K% ABOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )" Q2 o/ R4 {# |1 o1 s
{) Y) q( J% T$ _' k) F( f: c
switch( nID )
9 t7 \( Z L' k2 o5 L$ Z& ^6 Q {
& P. y# x( [+ `. J j case WIDC_BUTTON3:
$ `9 y6 ^8 o% X4 m- R {/ \) t5 w8 e9 P: {, p4 A
bStart = TRUE;" {% P) T; E& v% N5 l1 a
break;
7 v9 h3 T0 `- e+ g- r! e$ G4 e8 C }2 }+ R# _4 T) `0 X
case WIDC_BUTTON4:
! l2 ^2 l$ G9 Z9 H' G: Z' O5 U {
: Z6 T9 T1 A2 \+ D# i$ U- l bStart = FALSE;
5 R4 ~+ T6 a5 U( p: ^8 } break;# Q) `2 L0 J* Z
}3 x; q9 q0 e1 @( S# o2 x; q- @8 ~
}
& L+ `+ G3 K: K return CWndNeuz::OnChildNotify( message, nID, pLResult );
9 V% L5 o* t7 {' F1 |# u+ {- c}
. X9 N2 c6 [: |4 A# evoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
4 H* V* J, f/ y3 X4 {: C# a{, L3 u) a- j R9 Z& O! r% T
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
, ?- |; Z: ?0 R3 c: k if( bStart || !m_pItemElem )
8 T) C+ @) V7 }! f9 r8 Z {5 W- Q+ f. l0 N' @9 Q# y( o
pBtn->EnableWindow( FALSE );4 b( ]" Z; { O1 Y/ I# L7 z" G
}else8 F0 c( |7 w1 x" h: z
pBtn->EnableWindow( TRUE );
# Q N0 P6 V( B if( m_pTexture )
" Y- p/ ^9 K6 D: L% L$ C5 d% v {
. v6 ^/ k' Z* E+ [3 | LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* G* u0 K7 M8 j4 E" J0 a% [- S
if( wndCtrl && wndCtrl->rect )
0 p/ k% o! u" }, B {. q+ e0 `/ V; L
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
- `; U' c! w6 w7 t, M+ K: {# { }0 G/ i: n% U1 S6 `
}
' f) F9 f% k8 i}, h* T9 K* V N3 t. V- m0 I3 i
! b. n6 p+ J" M2 k) D a# R% V
BOOL CWndAutoFood: rocess()
) W# F. C0 X- r" G8 Y: ?{
" B u Y7 Y5 a x5 \3 f% e if( bStart )) j+ l, |" {) ~6 i: K S
{
, R* k; g% {. T' l3 F) |$ U2 A if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
?( \* P% Z1 }& d1 s/ i* w {
5 f4 {- Q1 r& T8 L. 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() )/ C/ |( M$ N( v6 k( T4 H
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
W) q+ s7 [' H; r0 k; y Z }else{6 F) x2 E# t* O
bStart = FALSE;5 P4 l5 o6 J' L i) D
m_pItemElem = NULL;
- g$ V- t) k. f8 H }* |# `& u! y: }* p% n
}% f& |* [9 D( \( O5 D
return TRUE;* Z. m& X: p2 }9 ?- t' ~, X
}9 {$ ?# U& V% C/ \! k
% G6 W3 y9 ^" h7 l, e/ ^$ ^登录视频废话:
# ?, B4 r8 g: ]' V, _- `尾翼: `- ~6 v5 o/ m6 ~7 V" _2 x
' r0 e0 H% s2 T! A: b5 o1 \代码:/ y$ `2 T% h# C: P% w
: S9 ~- R$ y) }9 Mvoid CWorld::SetLight( BOOL bLight )& I" O# v! v$ J) y B
durch+ W1 H8 D: b& X5 ]4 s; M2 N
Code:
2 G2 ~ | M' f% E5 mvoid CWorld::SetLight( BOOL bLight )
3 j! Z0 x5 |3 Q |{- L, t' W: R1 u# [ v- M
//ACE("SetLight %d \n", bLight);
! C! u0 |7 x3 H! v3 r1 b) D7 @ & j! d" D- y2 N: i c3 r3 t6 [" b
#ifndef __WORLDSERVER
% [: h7 _2 f0 Q" t: g DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
3 a" n0 }2 C! E/ L! {* w CLight* pLight = NULL;
* w1 r9 C. W9 u4 B5 e1 j' j& M( F
3 m& [. u% P) `2 ?) T D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );! t) r2 S- `2 w1 m! A7 v2 C" s
1 C8 B& `3 ^# [ _( b2 G( x; s0 E
pLight = GetLight( "direction" );! i- C! k7 D1 C0 f1 |( f
- f B7 S' @1 `1 c5 b
#if __VER >= 15 // __BS_CHANGING_ENVIR
% b2 U, l5 ]3 u0 Q if( g_pPlayer ){
$ h) p" t5 m+ L; I% S& r; ` ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
1 c- t) W4 v- q/ J7 L4 k8 m if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!" v. K* x8 R) g5 V
{$ }' C& Y a$ t9 G8 M
if( pLight )7 b; p# J! j; _( I5 C( \, S! {; }2 y
{
: R7 i8 s$ w: l0 ]9 c5 ? pLight->Ambient.r = pInfo->_fAmbient[ 0 ];/ E( E$ p: n' I: y8 l2 y
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];+ |$ y8 s+ `. M3 ^
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
: b* A$ K5 [- T; ^1 b. ?) y# F3 n
' b/ C2 @' _4 P& B pLight->Specular.r = 2.0f;# T1 J8 v: p1 }: i7 F
pLight->Specular.g = 2.0f;
% E) ?& g1 ?! m6 d pLight->Specular.b = 2.0f;
/ G$ u7 B5 o$ d$ |# |/ N 6 `3 \6 D9 _$ K# p) h! w
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];/ m" V' j2 `6 C( M: c5 L
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];" S6 n9 g m7 I! M2 J
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
, s+ ?& d e P" g4 h8 a3 w
1 ?0 W5 R- G* M$ }) ]- C HookUpdateLight( pLight );
1 R2 j6 t& @. x) s/ U9 g) V ~- V2 t _* S# v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 x" y7 J8 e+ J( t! w$ }0 R
5 \) U; _1 g/ O( @' O$ w pLight->Diffuse.r *= 1.2f;
4 e+ v" b5 O R E1 H) ^4 a- H8 r pLight->Diffuse.g *= 1.2f;; d9 |6 [8 }* m8 S3 m3 J2 V
pLight->Diffuse.b *= 1.2f;
5 s- V5 _( v2 V M$ f6 j( e" X. m. `
pLight->Ambient.r *= 0.8f;
/ P: _8 A- C( X pLight->Ambient.g *= 0.8f;
1 J7 ~3 R1 B) V! @ pLight->Ambient.b *= 0.8f;0 i( K8 c5 K5 U7 A' h( e$ l' p
/ X3 [! ?9 _$ j/ X* Y
memcpy( &m_light, pLight, sizeof( m_light ) );
9 t ?# l. w8 g2 s$ i
2 v0 `/ V( a4 M; t: R w4 b D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% ^: [3 }/ Q7 e3 ]$ S2 ~, |% W/ Z/ D8 S D3DXVec3Normalize(&(vecSun),&(vecSun)); Z8 C9 u: E% s1 J& `- M
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 [7 m" w+ O. Y$ @+ H
pLight->Appear( m_pd3dDevice, TRUE );5 T: N! d+ m) v B4 ?
4 k. v& }8 _7 c& O DWORD dwR, dwG, dwB;( a0 A- ?2 F- M, R, i' m; s I" }% I
dwR = (DWORD)( pLight->Ambient.r * 255 );
- ^: i: q2 s' |7 H2 w# f- V dwG = (DWORD)( pLight->Ambient.g * 255 );
) g) R; g/ c. t/ N* f dwB = (DWORD)( pLight->Ambient.b * 255 );
2 b1 K" t- s M# ?/ F4 }& R dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) F8 I9 f+ P5 Z! I& c( g3 H0 h2 S1 e4 P
}7 @' r- `) Z( H& c5 |- g
}( c2 A% [" Y( R8 c5 Y, v$ T& o! p
}
8 C; u Y; H' q8 P1 t4 P" t else1 d! y; `7 k. i& r3 l' i5 P
#endif 8 R. Y3 m2 B0 I" R: R2 D3 T2 A1 Y
& Z. p4 s& L0 j* [
if( m_bIsIndoor )6 x1 E/ n) z9 ]$ y* x4 O; k
{
# Y+ A2 R2 Y; C+ Y if( pLight )& D4 G6 c. l K" f" L# d
{ - k, w8 n2 J4 P9 }( Y3 P
// à??μ oˉè* ; B5 a' f: b$ B
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;* t. Y, M7 H/ `- Z
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;& s" }3 O9 ~. f) a
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;& i2 _* X7 V6 N# l+ B0 X$ ]
% Z- F0 p. p& U! U // oˉè* ??à?
+ E3 G% L2 ]+ v* a pLight->Specular.r = 1.0f;' E$ A$ ?: y; m: y4 t/ v
pLight->Specular.g = 1.0f;
. t$ |) [! h9 l! \' _ k; f pLight->Specular.b = 1.0f;
- l& g: l5 G" B8 Y+ I6 j9 D; l // àü?? oˉè*
$ |: W, e1 p7 I( [0 y pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
5 `' C/ K1 {; e( J4 \. d+ Z pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;. `( ~8 {. ~8 v5 f/ x7 W
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
; h, f4 ?+ Q: G4 ~1 T/ `. T J! `6 d% c1 K9 Y. a! T. n
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- `5 B9 ^3 q2 _; V5 b {+ o0 }, d' x% X ?5 ?# i
pLight->Diffuse.r *= 0.6f;
! \# M2 b3 F+ e$ y5 f* m5 j, I pLight->Diffuse.g *= 0.6f;# ], n7 s2 E; s8 Z8 Q" G. X" Z
pLight->Diffuse.b *= 0.6f;
9 g O+ E( J% T, w pLight->Ambient.r *= 0.7f;2 c! Z8 V: F7 ~* J3 s
pLight->Ambient.g *= 0.7f;
3 ^/ t% a4 ]4 S pLight->Ambient.b *= 0.7f;! \1 q5 h+ v6 j$ W9 W' R
}
5 p* z4 z2 s+ p
" Z, w9 h, v$ t0 f#if __VER >= 15 // __BS_CHANGING_ENVIR6 j$ J. Q5 { v. d
if( g_pPlayer )$ X6 v; m9 B2 G
HookUpdateLight( pLight );' g1 K! K: | k: F* O7 |" E% E
#endif- M2 z3 q- S0 H5 X$ j% w' f
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- _4 S5 v# ?1 j3 s
+ m6 x* {+ o: S1 L. a% V* ` pLight->Diffuse.r += 0.1f;0 s$ \5 ]& P* P4 Y. I
pLight->Diffuse.g += 0.1f;
( f+ ]) y1 H6 |; {" F, E pLight->Diffuse.b += 0.1f;; b9 L" @$ ^4 o' u$ G
// oˉè* ??à? 4 Y( _+ h- x! q! m0 z8 S* F* C
pLight->Specular.r = 2.0f;
7 T. }2 c& V3 ?& i6 n pLight->Specular.g = 2.0f;( J8 R5 K2 y& _2 j, a5 Z: K6 P
pLight->Specular.b = 2.0f;
& ~+ b; j) _- V% |! d5 J // á?oˉ
- W9 ], V4 X! }: n2 o0 v7 t( V/ T7 U pLight->Ambient.r *= 0.9f;
' W4 h9 X. d- {$ ?: \% G& ~' ^ pLight->Ambient.g *= 0.9f;
/ _4 H7 J* Y( k' W% D& j" d% E pLight->Ambient.b *= 0.9f;2 p) Z5 X. m3 q4 w
3 h) S# n5 f, X( M memcpy( &m_light, pLight, sizeof( m_light ) );0 l( P, ?# t2 u4 q
/ j) |+ f4 {* H* x( }/ T: j$ L8 K7 ] pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );& t3 O. p5 M5 c' b2 E; V, t9 u9 x
pLight->Appear( m_pd3dDevice, TRUE );
) a! y, W) {, }, g+ N, y, U - s: e+ W( F0 l8 S$ u
DWORD dwR, dwG, dwB;
$ W4 ~( s5 B0 \2 f! a dwR = (DWORD)( pLight->Ambient.r * 255 );
8 U3 \ w& C' ]' P dwG = (DWORD)( pLight->Ambient.g * 255 );0 R" N4 C) {* v
dwB = (DWORD)( pLight->Ambient.b * 255 );) h& d: ~0 n) S( c7 a5 _- g
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );( I! V" n* o0 C( ^, h2 D; w) B
}
: i. N! w; o3 J( a$ m9 q }
1 o. j' o2 _4 t else" |# e7 i2 i( [+ E1 q3 y
{& M: M! q4 p/ Z4 o
if( pLight )
2 u8 J. h% x. N @3 S" m {* Q2 [# e7 X3 O) v% J: O
) e' T& w# d6 |- S* Y7 d: s
int nHour = 8, nMin = 0;
6 Y9 i# d# W m8 G #ifdef __CLIENT8 l) }7 }4 V* n1 z* D* z0 t
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 1 {/ c& R& H i
nHour = g_GameTimer.m_nHour;
# {; E" E4 o+ J( w4 C6 N3 O( } nMin = g_GameTimer.m_nMin ;
' a& R/ m+ I$ J7 @0 v1 U #else
+ c9 s, t o% M) i8 m, e8 L // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
- W/ x0 F4 L, }) S if( m_nLightType == 1 )5 M- q+ {- Z3 {+ n- N% B: z
nHour = m_nLightHour; u% r7 f9 R$ j# z* L' Z
#endif
- N3 U4 R! F% v' _( d3 a nHour--;0 K# i6 A( Z9 E; h _
if( nHour < 0 ) nHour = 0;
) z0 {: t& r3 J* c if( nHour > 23 ) nHour = 23;- x: {8 x; {4 |- A1 X& a# @
9 }! i' l. J5 Q+ j% j; ~
//if( m_bFixedHour )5 P a% h1 a! a9 ?
// nHour = m_nFixedHour, nMin = 0;
$ L) E' Q h: e$ ^* V* Z! k+ P9 A LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
/ z5 \) F% O( G, M LIGHTCOLOR lightColor = m_k24Light[ nHour ]; g1 G' J& Q! ?5 X5 j8 L
! s4 N! m8 X) d
//m_lightColor = lightColorPrv;& l& J' S6 q. o3 W
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;* \- {# @* H% {7 D
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
, u2 X" ?# Q( ] lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;5 O) z& J! c" S' `" D0 r
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;; g/ n) ]8 i5 X4 a6 S& C2 R' F
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;; V1 h5 r+ k$ U6 x" l
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;' Z% ^) O+ r- s; ?8 G6 N# \. W3 l g
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)) g+ ^, D. m2 G2 u5 n
9 \2 l. e& d/ V( z9 L& I2 J9 y! F* n+ u
// à??μ oˉè* $ v l4 k. b" z3 s
pLight->Diffuse.r = lightColorPrv.r1;6 w/ G( Z# W$ m9 M
pLight->Diffuse.g = lightColorPrv.g1;
" D! W. f# b+ {! p9 ^) ? pLight->Diffuse.b = lightColorPrv.b1;& X1 x7 g" D" t j3 U `8 d+ i6 P# W
// oˉè* ??à?
2 [/ J) Y9 R3 J+ X C2 T pLight->Specular.r = 1.0f;0 d+ ^; x- U! l/ I/ h/ M
pLight->Specular.g = 1.0f;) k% C! t$ z1 U9 |. q
pLight->Specular.b = 1.0f;' s7 p: k2 l" R$ |
// àü?? oˉè*
; d+ }/ E: u8 e- k l+ k" Z pLight->Ambient.r = lightColorPrv.r2;5 t$ H: L3 @% r$ l; H5 V
pLight->Ambient.g = lightColorPrv.g2;
: Z! s% t, K; \% Q/ R pLight->Ambient.b = lightColorPrv.b2;3 W1 d! z. d$ g9 U* K/ h+ a+ K$ G
* I- E |: a+ O; R
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
! q& h! i! S; p3 o' b/ ?# T {
8 ^* u( C' [$ p. \/ W8 y! e1 ~ pLight->Diffuse.r *= 0.6f;+ m4 ]5 \8 y3 S2 J! ] x0 o8 F& Q
pLight->Diffuse.g *= 0.6f;
- N/ T k1 S7 |7 i% d( U$ L$ } pLight->Diffuse.b *= 0.6f;
" [, X5 U$ u8 B4 C" C. d4 F pLight->Ambient.r *= 0.7f;
# W$ F) c3 X* E' ]/ |3 f7 i+ ?6 H pLight->Ambient.g *= 0.7f;
7 v; t0 M, w4 ]5 g6 J8 X& f. a2 G pLight->Ambient.b *= 0.7f;- k( W3 q8 }$ t
}- V$ f7 O1 L: l' `
8 v: p/ ~: ]% ]! M$ D' p6 W) s
#if __VER >= 15 // __BS_CHANGING_ENVIR
/ K/ j) W7 p5 K! L. w if( g_pPlayer )
, g. t" O ]+ k# E: [) m/ { HookUpdateLight( pLight );
9 x) h. P8 o6 I0 f+ K#endif6 L& w, x8 j; b' G( O! ~) d
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, M, y G3 s' W# G( t, i' E7 n
2 a5 K( t0 B+ j$ R9 L
#ifdef __YENV
+ n) x% G3 h6 ^ pLight->Diffuse.r *= 1.1f;# {8 ]- B% H: W5 Y) _
pLight->Diffuse.g *= 1.1f;! }. e" H! f0 ]- X
pLight->Diffuse.b *= 1.1f;
: J! ~* F" W Z6 R // oˉè* ??à?
! {" K/ H0 `( b: V$ q pLight->Specular.r = 2.0f;1 z& D. T2 T I; T; t+ o3 t% Z7 D
pLight->Specular.g = 2.0f;8 {4 E" `3 k3 v. \( Q
pLight->Specular.b = 2.0f;
W' D9 C6 q% _! v // á?oˉ
# Z6 i* U- }2 H pLight->Ambient.r *= 1.0f;
4 E+ r/ O1 [. O9 V5 ^2 ^, u pLight->Ambient.g *= 1.0f;
. X; |) f* Z* e2 A+ R& u pLight->Ambient.b *= 1.0f;
8 S* C& Y- m. X+ B#else //__YENV& x! ?$ x; M5 ~% d0 E; p+ q
pLight->Diffuse.r *= 1.1f;6 ?/ B# {% B* k* o5 B+ E2 D2 ^
pLight->Diffuse.g *= 1.1f;
4 U7 ?' Y) u" C9 a. x! T pLight->Diffuse.b *= 1.1f;
% o" _; p8 o3 U5 U7 k // oˉè* ??à? ' Q) B2 H7 M: t8 Y, d6 J& W
pLight->Specular.r = 2.0f;
2 E2 t+ m1 e% @ pLight->Specular.g = 2.0f;
2 y* |* |7 I" e( F# U pLight->Specular.b = 2.0f;2 Y$ G( _" u! `! {
// á?oˉ
' ?( N/ Q+ ^2 v pLight->Ambient.r *= 0.9f;
2 g( @+ o7 _% a1 H& ]3 m6 I pLight->Ambient.g *= 0.9f;/ P P9 W/ O7 b' l; [
pLight->Ambient.b *= 0.9f;
2 o3 r; N" ^4 S$ `- V1 r#endif //__YENV & }6 ]( w2 K9 j9 N" q' }7 Z
0 g/ O6 \: ~- }5 H' ]( ~' G0 }/ a memcpy( &m_light, pLight, sizeof( m_light ) );
1 U i7 h# d2 ~, K d. j* ?" o! r6 i 6 P1 I0 I6 _3 K+ l6 W, @6 q1 P
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
- K4 h1 `& k+ W, k/ p! m: Y D3DXMATRIX matTemp;
t& _' {7 u: e6 i7 \! a static const float CONS_VAL = 3.1415926f / 180.f;% p3 Z1 E- \" p S6 S
+ s' p' f) G0 i: n8 z7 r
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
3 w1 v& c9 q q4 }1 e; r3 f D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);) A8 _( h( o$ X: {* \! }. k1 D
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 R5 Z( [9 _% m0 I8 T9 `
pLight->Appear( m_pd3dDevice, TRUE );( |! J( Z1 n0 a# ? x& k' U
U* I6 \4 ^6 y2 Q- a // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 j B1 }: v) e& N // D3DXVec3Normalize(&(vecSun),&(vecSun));
! n" b6 i: V4 z; o0 T$ W/ e // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 m- J, b. d$ l
. j) U! t& b9 ]
DWORD dwR, dwG, dwB;6 x/ f4 H: G' d5 V# u! p$ `
dwR = (DWORD)( pLight->Ambient.r * 255 );
: V* F1 V2 ^6 V+ ^ L dwG = (DWORD)( pLight->Ambient.g * 255 );
/ u, Z$ J3 F& b; I4 ? dwB = (DWORD)( pLight->Ambient.b * 255 );
: [8 l2 R' c" @+ \: ^4 y7 B6 N3 r dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 E; I6 i8 s: k$ f6 H' L, h }
1 O# d- c" ]% i: y) h9 c }: W& s5 G' u% }( ]
/ ?6 a9 ?- X! l- d+ W m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );+ m" c1 `% ?+ t3 X
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) );
* W' |% C/ l% e* a ::SetLight( bLight );9 {2 k. m# P2 A
' p4 j% ?' s3 t3 g. K: m( R // ±ao? ?D?í???ó á¤à? 4 m2 Q5 I# o" K" O3 R. D
m_pd3dDevice->SetMaterial( &m_baseMaterial );
0 e9 l8 q, R: r/ f6 u $ x) v2 f# ~# L1 D) y% p
#endif // not WORLDSERVER
/ U/ z; X$ F3 k3 S! w) C$ r}) j- o8 t2 c! [, u% N' D# i. e
并更换
% T( o' ]& H Y7 E. a0 D' \Code:+ X: s! O0 T1 g# x7 h
__FLYFF_INITPAGE_EXT1 ^5 }) {. p" [" q
定义
7 ~8 B/ V6 {" ^: F; [! E' s' G
4 Y5 e% t& x+ w% v( o. D& D- K& e
( j1 @4 q4 V) Y+ I8 [6 F
+ n u4 Q# W, `现在终于删除我的狗屁加速...
( V; t5 \% U. J: A1 X" `( \+ X3 ? f/ u+ H
" f4 Y n* B& D$ S9 C6 t+ h% Z8 G7 ~- y( ~
|
|