|
|
食品车:6 Z1 m, E* B$ j6 \8 l% p1 t
尾翼:1 K; X3 e1 E$ u5 j- L
& [8 Q7 ~) g/ v+ _! m2 H5 A
代码:6 `# i9 C1 @2 y( F5 l$ p
CWndAutoFood::CWndAutoFood()" S" B# {+ p8 U- \# F+ k
{# a$ {+ D1 i% R, L3 d8 Q
m_pItemElem = NULL;9 K- t( ?+ X& k: R* H6 W# c8 i
m_pTexture = NULL;2 m6 Q) a: e7 P* |$ I4 X$ A
bStart = FALSE;5 u9 l/ D" c- p/ A1 h
}+ Z+ v" P: V1 l. b8 t- H, a' {
8 k; [% d* M% Y6 }: k3 V' j. VCWndAutoFood::~CWndAutoFood()! t. d, z# ^* Q! |
{
0 z p8 R" P' G1 { AfxMessageBox( "AutoFood ist gestorben " );' k5 v. v, K) u+ v, W* V
}7 u4 ]+ j! f- A) Q$ p
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
( g; g m0 t2 C5 e8 k6 ^{3 C+ b& q- U( E9 R7 M4 L# Q& y; y
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );5 ]6 F$ ]3 @1 @2 L d0 V% u1 e
}5 M$ \3 W4 w" D |1 n
& X' ] a% Z) i9 w# K$ }* ^- | b
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
- d* s1 A8 t, r+ L# H+ n{
% }1 {4 G8 a$ ` LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
+ \) d. s" Y) u* E CRect rect = pWndCtrl->rect;
- W; a0 p" d) o: U; I% h7 p/ P if( rect && rect.PtInRect( point ) )6 |2 Q3 G( O0 u$ r
{, g, H# c) q3 ?' S( [
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );% ?/ w0 {( ]5 ~
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )5 p$ N; v2 J0 w$ C' {
{6 R7 ~4 Q2 F2 X" S+ G6 E
if( m_pItemElem )
+ r. c0 A% a3 W7 N; v) I {, u1 p/ V+ d% v, D2 B! b
m_pItemElem = NULL;
9 \$ D" ~& N- I# p3 k4 K }$ Z! F) ?9 t, ]# Q( F
m_pItemElem = pItemElem;
6 {1 m1 o) C0 Q, ]8 [ m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 U5 c+ I |9 G: ^/ | }else{* G/ s1 x0 r: c$ @- q
SetForbid( TRUE );0 J6 B/ p# `0 X: q7 d9 a, ?8 |) _
}) ~- G+ q5 Z8 y7 h" j. x6 c$ @" g
}else{
! Z) m* I% h! c _ L! B SetForbid( TRUE );# }( |- A! v' F$ i* {8 o
}2 a/ U+ {5 U" D; X
return TRUE;
+ z2 z9 `, g1 N6 k. N2 C5 ^( f}
9 Z+ N; T, Y& e. q" i5 R! Z& w4 a) B7 B! W; E8 Y% h1 T( D3 R
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )7 i3 L0 p! |- b: y
{
; k$ u: j& w4 ?" U: Q1 y switch( nID )9 C. P5 k+ X4 @/ U6 i! q
{
- B, j3 }! @7 ^* E, {. H: j3 Y case WIDC_BUTTON3:
9 W! ?: m" h" ]" h! Z/ E {1 p# J5 z! ]* p# Z
bStart = TRUE;
, F1 F/ L# [9 N2 @ |$ o& [2 o break;% {1 A) T4 |4 n. o5 d
}
: }! c/ Q; H+ c! @% V. n case WIDC_BUTTON4:
/ H0 [# T |7 k/ T4 Q' R4 Y( Z. v {
. ?9 U' M: T# D+ Y& S bStart = FALSE;( G+ ?$ Z& H ^% t
break;
, \4 t) I J- t/ B! h- ] }: c0 t7 L* z) ?% V
}
/ @4 g* @2 a" m% y- X: i5 r return CWndNeuz::OnChildNotify( message, nID, pLResult );
# Y, e9 M6 g' q) o' r# K+ s} 9 w8 v# M; x2 a% J n% B, u
void CWndAutoFood::OnDraw( C2DRender* p2DRender )" G. ?( M7 s) ]7 O$ ^) X7 \8 [
{
" m Q# t4 J+ k" ~+ ~8 X CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );. U0 m* |( d! M2 q( K- s5 `
if( bStart || !m_pItemElem )8 s) Z @1 o: e6 J
{
1 D/ G) Q& i$ K/ R) \5 Z pBtn->EnableWindow( FALSE );9 V$ f: J) Q `3 v
}else
: q2 J* m3 N M5 m) _2 Y8 r7 V pBtn->EnableWindow( TRUE );. c+ _) q' O6 u* q" a' L7 G3 ?
if( m_pTexture )
4 p' G% G& y8 Y5 ^. d& S {
|7 a$ ?* G4 f+ B- v7 [6 w) C LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' ]' \' D) ^ E# u8 A' }" G if( wndCtrl && wndCtrl->rect )$ }8 h, G1 z3 V
{! }3 n$ v) O7 f0 d: n$ S% c
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
7 }8 v. u. g* T( X0 N% b4 u }( M4 F# Y& D1 M7 ~3 H
}, b2 {+ P' J! b% b
}
( Q9 J! g7 W \! p8 O% d( ~
6 \9 }, M, a, O$ |# VBOOL CWndAutoFood: rocess()
; X! y% c+ ^& J& H9 B{ j) a8 ]" O J, [
if( bStart )$ C( ?9 K$ @$ L1 X- e
{
~% ?4 ^8 P+ T7 x) N if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )+ Y1 x0 F/ h, r( t$ d4 q3 m* m% g
{
$ w" r" S* E1 T' x7 h5 U$ p. r7 V if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
$ l! s1 O! Q& Y( T" j# O* Q, E g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );$ S& T* z- q; s& h& ^& b5 a$ y
}else{
* n8 u" r8 O0 A. Y bStart = FALSE;7 `& j6 M( {, f U* {0 M
m_pItemElem = NULL;
- ]5 a5 M; H% ~1 f" _- l6 O8 @ }
, r q; n# ]/ o! p/ c }, y2 I: r5 y; W# N! N9 s( t! f
return TRUE;
! K+ g# Z/ b/ P9 J' J}8 O; S/ C$ c) w0 n
7 d0 d* V" ^/ ]; s& [, ~" r登录视频废话:
, F4 X( O, ~0 T2 p尾翼:4 W2 K1 R# d' ]
2 q! @' }7 ]: w3 P# V代码:
& |3 v" r, b% H7 U
; V! ^ M" ~5 s1 B- {1 w8 z: rvoid CWorld::SetLight( BOOL bLight )( \$ l. Y) S0 M6 ]
durch
, W( [5 `( j; \Code:
5 t/ @- f9 c4 S4 C0 d; Svoid CWorld::SetLight( BOOL bLight )
( _6 o+ r; @- N5 i) g$ R" ?{
0 D# E2 T7 Z$ O //ACE("SetLight %d \n", bLight);7 E0 H" g' ^! `
( W2 B& f! A2 P3 Y: P: A
#ifndef __WORLDSERVER % {: H5 n% C( y$ q
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);. C6 j7 \" _2 l8 Z' w) u
CLight* pLight = NULL;
, E* V1 G2 K- Q* |/ [2 ]1 J$ E
& V! k$ o4 c( q* v D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
) A/ V9 C: x; H/ Z, R" d$ ?$ R
' O7 |- B* R! ` pLight = GetLight( "direction" );! ?% D. l& T5 \1 Y, b
, X8 X& B+ S3 @. I: q/ u#if __VER >= 15 // __BS_CHANGING_ENVIR( _2 O7 m5 |. m! y, w# ]
if( g_pPlayer ){9 T0 j; O8 ^+ T( p: V, F
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );9 I3 ]3 H5 ?$ O' L% D1 J+ P- ]
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!( N' j0 @: o3 y6 l: c% R
{
3 `7 z, T6 O5 K# P( g. _ if( pLight )# \. r# r$ b( ~7 H" K
{8 G1 T$ Q3 E# N' d/ j/ P2 o
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
/ U3 f9 w& d) j# H1 A: F) R pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
1 w& j5 f( W4 z/ o) E' a% m5 U7 Y pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
4 ~9 w. T8 \7 S2 M% a; t- D, x/ o9 K. W( B
pLight->Specular.r = 2.0f;! v# @, s# a+ x& ]7 q' e7 f6 g
pLight->Specular.g = 2.0f;
. v4 V- j/ ^( c/ u! c* J pLight->Specular.b = 2.0f;5 q! ~" t0 y' [9 z$ O1 A8 T0 P
( v; p* U* h5 p. u: G
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
4 _. H* p& E+ c# M5 U2 d pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
5 Q4 i' U% [2 L: b; } g j0 O% x pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
& K$ U" m! u9 o2 f7 H8 ]
3 M7 l$ G0 [6 E1 L6 q* X HookUpdateLight( pLight );
7 w+ k/ y# h- z4 h6 m9 s8 h6 E) K. u- Z* Q0 ?8 ~
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& B. r# b. M3 X: J; M1 K( d
7 N/ L3 c8 c9 z/ ^ pLight->Diffuse.r *= 1.2f;- d s) T2 M+ X& r
pLight->Diffuse.g *= 1.2f;; y( G5 E* O! r% J) |* m( d e1 h$ M
pLight->Diffuse.b *= 1.2f;3 L* C- Z! A5 C; y, Z; [) b" ^! b7 p5 H
. j6 `' O# z( t4 y2 X
pLight->Ambient.r *= 0.8f;* H, S8 \# n+ V
pLight->Ambient.g *= 0.8f;
A% H4 G% i8 T3 C) M2 X$ N pLight->Ambient.b *= 0.8f;" h! U' \% X$ e& l" ]
, [+ ]& P# i* A& t2 ] memcpy( &m_light, pLight, sizeof( m_light ) );
5 o8 P% S# d: I% ~# ~, m1 w& u( S l4 l/ V* ]* ~6 }
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
3 f% p8 Y1 b- I8 h, H D3DXVec3Normalize(&(vecSun),&(vecSun));
4 c5 z- P4 ]# q9 O( [$ m4 I pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
6 O* u: l, ^4 B7 f% g. t pLight->Appear( m_pd3dDevice, TRUE );& T/ a) \) v; a$ \
% C! [1 k( X" ^/ L- o DWORD dwR, dwG, dwB;
1 m; e! J4 z2 n( q dwR = (DWORD)( pLight->Ambient.r * 255 );& |7 |9 f$ Y$ `/ f) F* l
dwG = (DWORD)( pLight->Ambient.g * 255 );/ q0 D- a: K* X, u2 p1 ?- p$ Q
dwB = (DWORD)( pLight->Ambient.b * 255 );, S; |: U4 ], d, [7 X% k! P
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );0 Y) D9 u3 S4 o M% R4 @7 w* f7 f
}
" C) Y6 m) v& ^+ t( Z }
2 q" I6 J8 V( Z- T }6 U0 l& p2 J& J( l4 ]8 G
else$ m" |2 \, Q3 P% i% X
#endif
( N0 c7 Q# H" l$ f) `' P% ^( F- R7 q! a7 H: C
if( m_bIsIndoor )
0 U; w+ s J, t# D4 r. h {& C9 M% y- L- n' ^% i5 _* @
if( pLight )
, u1 {' d# X5 j. Z, G, d {
$ x! y" Z1 f0 M" b // à??μ oˉè* , H5 G! x1 T- A9 E9 R4 }, ]) a/ ^
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
7 T- g8 s& e0 S) j4 |# {. D; [2 S pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;$ R& L' i% v: s9 V3 @/ `2 g
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;) u/ a( q9 Z, w$ q/ Q& v/ X! Y
' D' q" c' U' ^% W- s3 p5 H // oˉè* ??à?
5 p y$ T5 J# F+ Q pLight->Specular.r = 1.0f;4 D3 A! m, t* c/ _& h/ t$ Q* B
pLight->Specular.g = 1.0f;0 Y* K3 r! P# c& d7 N2 L6 U
pLight->Specular.b = 1.0f;
/ v: I# Y; O7 r0 b // àü?? oˉè*
) i, Q' b/ M& p; ~& D& O/ T% ` pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;( J1 Q+ Y# h. V. L# |! n7 H* t8 ?
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
' U% ~( m; Y, p5 m( |. ]7 e pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;/ E5 v6 J+ J6 Q2 L- |0 g. M$ |+ |# O
! _" Z, [* x6 P! j- h7 S if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 T6 S% n7 e3 X5 X5 F {
/ Y% x* _' ]. K- r7 v4 \ k pLight->Diffuse.r *= 0.6f;
7 |: @5 i& M5 v7 u( d4 V4 a pLight->Diffuse.g *= 0.6f;4 \! U1 g. K g7 V6 i. }
pLight->Diffuse.b *= 0.6f;
# Q' S' D1 X% Y: y1 b' z pLight->Ambient.r *= 0.7f;( E1 i$ @1 z* s! A7 f
pLight->Ambient.g *= 0.7f;2 W' |( m3 l n8 u/ d0 e
pLight->Ambient.b *= 0.7f;
: p* ^: }/ @( \" |' f }
0 f! Y3 Y& q" ^4 {& b t
. w) J* }0 ?1 o, ]! G#if __VER >= 15 // __BS_CHANGING_ENVIR
' X- ~2 m& e/ n5 Y5 F U) d, Y; _ if( g_pPlayer )) g1 O; g$ J3 j; u6 \: Z8 Y: F1 e" m
HookUpdateLight( pLight );( [+ B9 Q" J( x1 y2 o# a7 ]
#endif- M( ]' D& Z8 x, ~, u% D6 P. u) f+ R
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) A8 J$ A: t7 P7 Z" G# a2 F
, s1 W+ w4 P. | l) K: Y pLight->Diffuse.r += 0.1f;3 i2 ?, o( l2 Z( g% Y
pLight->Diffuse.g += 0.1f;
+ N" Y4 |$ u5 r. E" h, q! U' r pLight->Diffuse.b += 0.1f;$ z) K: [! Y2 Y) [
// oˉè* ??à? % w# {6 \3 i% G1 A$ n
pLight->Specular.r = 2.0f;
/ H3 Z5 C; @+ T4 c# r pLight->Specular.g = 2.0f;
" N- D( G" _0 p pLight->Specular.b = 2.0f;8 Q( M0 @8 T* e; b
// á?oˉ 0 b, @5 O$ J ]+ O- g, l- `' ^2 x9 u: i
pLight->Ambient.r *= 0.9f;1 V* R( X2 y; V8 z0 q( g% x y& S
pLight->Ambient.g *= 0.9f;
8 k" S( o# q: E' j pLight->Ambient.b *= 0.9f;
. b1 e+ d Q. u0 l0 ^5 f& ~: @& |$ [/ G5 h' _2 C+ B4 K6 k& D6 C" n
memcpy( &m_light, pLight, sizeof( m_light ) );1 c+ F& [' y* J
# P1 a2 {, _3 y$ S; o pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
: L0 r* M3 R+ [: |! ?# [ pLight->Appear( m_pd3dDevice, TRUE );/ x3 E% U$ J; X i- M" Z
* ?( ?! i1 \8 J# t6 e) Q6 r& b# v/ L' y2 e DWORD dwR, dwG, dwB;
6 O6 d0 N& [: L& K# J+ J D dwR = (DWORD)( pLight->Ambient.r * 255 );2 ?' M2 M: c# P
dwG = (DWORD)( pLight->Ambient.g * 255 );2 \. [( h! z2 U+ \, q
dwB = (DWORD)( pLight->Ambient.b * 255 );* d: N( l! Q" m2 \
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 P& ~' B; ~; I
}8 P1 ?6 o5 `# p% X
}
, w s6 O3 e) z7 y else3 H2 G# r* J: y) t
{
5 |" j& Q4 Z. t& l6 ?1 y: m. k if( pLight )
& c, B0 u# p, q& {1 v- V/ v% t {: P9 f$ l) _& p0 V( H. l
" ]2 d9 T6 D! g int nHour = 8, nMin = 0;
1 k7 m9 w* G. I* Z+ z #ifdef __CLIENT' L/ F8 f6 o' O6 ^
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
0 p# p% }: z' G0 X nHour = g_GameTimer.m_nHour;1 D5 D( }) m+ y& I: z$ ^4 \
nMin = g_GameTimer.m_nMin ;3 z/ K- w- K8 [) l- O2 M
#else
' g5 j7 v7 Z8 A7 ~3 I) o // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
7 I! v: X$ ]9 v- i6 _) G% e if( m_nLightType == 1 )
' I5 g/ z$ D5 x/ d9 A7 r nHour = m_nLightHour;
6 X P" R1 t7 o) ]. k6 V) U$ r #endif
1 {+ f0 p. \, f$ q) @1 v; r* u5 T nHour--;8 b( n9 h7 w8 h* i1 o# ^4 Z
if( nHour < 0 ) nHour = 0;* O8 R0 K2 F0 R& Z" p. Z
if( nHour > 23 ) nHour = 23;
. e R2 M& C4 c# u$ d( {( D6 z$ L1 _
+ U( z% ?/ r' s1 C5 d //if( m_bFixedHour )
}6 l0 K) E1 ~& S4 D // nHour = m_nFixedHour, nMin = 0;
0 t) X2 P U! ~( y9 y! c* J LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];; Y; I# O5 u& g" _; g v8 f: o: V
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
* u; r! X6 M8 v! z. | m2 K0 i. [
+ w# p% m9 Q7 Q; s5 _+ i" A1 t/ K //m_lightColor = lightColorPrv;4 A! ?& I) \7 N& s- Z
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
' ^* X# N" F" R4 z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;; m) @* d* Q3 j/ J% x( P v' u& L( L( G
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
+ M% E7 m6 @/ R* f1 V6 {0 j lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;+ O5 x+ k5 m0 \. V) b
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
; @6 P4 R9 D3 q# n8 E+ j% A1 @8 b' n: _ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
( f0 Q( E( T1 V0 K3 A, W, B // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)5 i2 U, o7 s8 y0 o4 R' ~
' D$ b+ |' e6 E9 b3 {% l
// à??μ oˉè*
( T, f3 u* D2 r- G5 ?5 T# l8 ] pLight->Diffuse.r = lightColorPrv.r1;6 M+ C! Q* l1 K6 Z2 ~* F
pLight->Diffuse.g = lightColorPrv.g1; T* A: R) Z7 m: q+ m" \3 d' N
pLight->Diffuse.b = lightColorPrv.b1;# T, y. m4 _7 w( ~3 h. L
// oˉè* ??à?
# P- Q8 F3 ~$ B8 k9 x7 c& L& J$ W pLight->Specular.r = 1.0f;
4 `3 W; s5 e$ |5 F pLight->Specular.g = 1.0f;1 `/ D% \8 S! h8 P+ _4 |' O1 v2 [
pLight->Specular.b = 1.0f;+ `" x, d1 e# C
// àü?? oˉè* 9 m% ]) M9 I% k/ I6 q6 C) A( i/ c
pLight->Ambient.r = lightColorPrv.r2;( j, ]5 ]" `( h9 _
pLight->Ambient.g = lightColorPrv.g2;5 M0 Y. i& A( z( l; }5 G' \
pLight->Ambient.b = lightColorPrv.b2;
1 |) w5 K7 e$ X, A7 q6 L" `7 Z; H6 @5 V& m7 `
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
9 G c1 I l3 g' h Z {
+ b% Q6 G6 Q4 A$ Z. C+ L pLight->Diffuse.r *= 0.6f;; e- N2 k4 e; ?$ Z, C/ g) k
pLight->Diffuse.g *= 0.6f;6 K" n5 n- [0 X: ]; @
pLight->Diffuse.b *= 0.6f;
& g# F) z) n, S& p$ v pLight->Ambient.r *= 0.7f;
/ R: ]% q5 W' z8 P) {* h. P' U& K pLight->Ambient.g *= 0.7f;
/ ^# \$ H6 I' Y: A2 O4 s+ U pLight->Ambient.b *= 0.7f;
3 X/ Q( J9 C1 |, K$ e1 n }
& N4 I$ w7 u1 |$ C+ B6 m o% C3 m7 V
3 H0 G1 i' |& F& a, B$ o* I: |#if __VER >= 15 // __BS_CHANGING_ENVIR0 |. G8 e3 R/ K1 f) D4 S! q1 N
if( g_pPlayer )/ Y& X# X! r4 I1 g) ]
HookUpdateLight( pLight ); }* H$ f2 F, M+ K2 v: e/ G0 H
#endif
" q8 m6 o8 a" ~1 V P1 c memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- f% B0 S6 k" S8 I- V8 x2 W# e) [
#ifdef __YENV% k' e8 }1 }( _8 t; V
pLight->Diffuse.r *= 1.1f;
/ b; t! P. h0 g' _, v a# [ pLight->Diffuse.g *= 1.1f;+ h& @; w8 J; f
pLight->Diffuse.b *= 1.1f;
* t3 k, E# x0 b, y, ]4 n1 Z // oˉè* ??à? . `) T+ T8 n" G7 t. H
pLight->Specular.r = 2.0f;: V; J3 ^3 u" g
pLight->Specular.g = 2.0f;5 M0 X1 w& \$ O4 @( `- y6 v
pLight->Specular.b = 2.0f;
6 i) y! t) P. z" E/ ^ P& K // á?oˉ - d! B) ?( d& l* A$ ], x
pLight->Ambient.r *= 1.0f;9 E `4 f6 Y/ m2 {! {
pLight->Ambient.g *= 1.0f;9 h8 u: J* r9 l2 Z
pLight->Ambient.b *= 1.0f;
) A5 V5 A' J u/ |) ^#else //__YENV
% ]* p3 X) {2 k pLight->Diffuse.r *= 1.1f;% ?0 f8 c5 [* ^
pLight->Diffuse.g *= 1.1f;3 S1 B$ y4 s! q1 G2 [3 o6 B" m# V+ w
pLight->Diffuse.b *= 1.1f;
; p, \. }0 ~3 i5 U6 I // oˉè* ??à? 0 U5 I, F, N& I& s, u
pLight->Specular.r = 2.0f;
: S) M$ ~1 Y" @ pLight->Specular.g = 2.0f;" c- a1 e4 j; v1 r
pLight->Specular.b = 2.0f;
* @; e0 ]: j6 Q! @: V! e; H // á?oˉ
' g; {& v" E1 A8 P" J4 r pLight->Ambient.r *= 0.9f;
) s: H: C& k* L f: t% R7 Z4 ~! j3 X pLight->Ambient.g *= 0.9f;
! J3 ]5 c' x. ]* C, D6 c pLight->Ambient.b *= 0.9f;
- Q6 s# K3 f' P8 c$ ?2 m9 Q#endif //__YENV ' M2 U) J3 A8 K8 n, [) a+ w6 l
4 f& N; `2 _ l; e1 X# m( ] memcpy( &m_light, pLight, sizeof( m_light ) );
9 s7 T; Y+ j( w% J+ v0 ^, d , ^6 Q: T/ }8 _& M9 s2 w \$ u
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);2 z% A9 n2 f% E) s3 U3 y( N
D3DXMATRIX matTemp;+ ]# x. }# b: @2 T$ B1 w% w8 A+ {
static const float CONS_VAL = 3.1415926f / 180.f;
1 n9 \% J1 Y9 l- _' J% v
# g+ \' I) R9 E* u8 h* y e3 Z8 G D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
6 g, l$ u, \5 ~$ C1 B3 Y D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
/ s' j" w7 h8 _) @1 X pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 _# v' m2 `! e* L5 ~2 b) p, h" }: ] pLight->Appear( m_pd3dDevice, TRUE );
; w) Z' a% `9 b( ^: H& |9 v2 Z6 i$ e0 K0 A5 q
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);# n6 N2 U4 Z8 a M+ @8 k9 d
// D3DXVec3Normalize(&(vecSun),&(vecSun));
3 t* n; S/ y9 ^ _3 b // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' o+ N9 k3 ~. Q- b. d: C+ F7 o& c* ?4 V P7 o9 G
DWORD dwR, dwG, dwB;
1 o7 J% s) s: I$ B! E dwR = (DWORD)( pLight->Ambient.r * 255 );, m8 Q3 h! T2 L4 g
dwG = (DWORD)( pLight->Ambient.g * 255 );" E$ [. U+ G q+ t$ y5 v
dwB = (DWORD)( pLight->Ambient.b * 255 );
" C; t; A, v4 \+ t; I dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ( `) ?9 u+ X2 a* [# c: e
}. v% ?9 N" Y- z9 N3 y
}4 m: H4 B( o8 Y6 a
2 P/ I1 J3 x0 d) B5 A) g
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );% f2 S7 ^4 f: G* {: D
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) );) y3 M. f) k. G0 j1 U* \$ ~! H
::SetLight( bLight );
9 l1 Z% K' T" r. x& e2 Q* {
5 ?1 n8 v+ C; z! y/ @9 j9 | T" } // ±ao? ?D?í???ó á¤à? # {2 H4 z6 L) Y: l- W# B
m_pd3dDevice->SetMaterial( &m_baseMaterial );/ L# D N' U$ x/ W/ d* v
2 Q, C( N* ]8 f0 A
#endif // not WORLDSERVER+ |! R* [' L" Q ^& J6 |- p k# U2 H
}
% b7 u4 ]7 T4 N q并更换; ~2 t: c5 ]8 J1 y
Code:
4 Z# N6 L& W, e8 F, Q__FLYFF_INITPAGE_EXT5 \# {7 P$ {% f
定义& T& L' e8 q9 Z9 I4 l3 w9 b
+ Q8 m2 t2 v& y0 r0 p. B7 O- h; S- z4 I6 y# O% B3 M; Q' E
9 }/ y9 ^0 i; m; |* N% \& f+ M
* i, _. T' u! \: M9 h4 c- W" s* D9 N现在终于删除我的狗屁加速.../ z2 b; }' F, L' [
( a4 @8 b; Y5 {) f
! B* _+ G& j! E- O! R4 c5 C
) O, D. z/ P9 w! `/ e0 D2 a |
|