|
|
食品车:5 m- B1 o0 J: l( a$ t
尾翼:5 u/ m: i- \( W6 D j8 _9 K
) A$ Y) U( ^( B1 A n+ D4 Y1 F
代码:
1 `& G1 g" Y6 pCWndAutoFood::CWndAutoFood()
* B& a/ x: b7 e{+ P6 o( B7 m" `
m_pItemElem = NULL;
X; d- ^6 z& T6 B* ^ m_pTexture = NULL;
/ L4 }% {( w% n/ Y; [. ], i bStart = FALSE;
3 V# T; [; q: ]: }# C$ W}
9 ~. i* r8 M4 | J
! t1 D. A- z( Z( U+ \1 v% n1 G2 @" YCWndAutoFood::~CWndAutoFood()
6 f8 i) Q8 A( z2 g! V{
2 O" [8 B: Z$ i+ ] AfxMessageBox( "AutoFood ist gestorben " );# f! z- G% P- c- j8 r6 Q; X4 `$ h
}/ D2 Q- g2 X. a0 f' M X% w" e+ m
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
; J" S0 ^ c. u; y2 g# p{- k1 M' J, e q. U- @' ?
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
# o4 Y1 d' I/ D1 }6 t% j}
0 Q) g7 s+ z7 N6 \" q( {, i8 M" w% l3 H/ X9 W- g
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )! a8 k8 b5 `( c6 L
{& @3 ?6 y t' a! _ j# n
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 r! ~6 C% L; {# f) |( g! n
CRect rect = pWndCtrl->rect;: Y4 A/ C. B p( ^, y( Q! v0 v
if( rect && rect.PtInRect( point ) )9 q" K- H: V+ P" R# i/ p
{/ p6 H7 X% E7 ^' B
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
& D h" R6 T4 x if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
9 W8 i9 r, r: \ l3 `$ u# u {1 e/ J1 m, D# k4 |( M7 X9 ]- ?3 A5 G! {
if( m_pItemElem )
3 K6 t2 ?) i% Z) U {" U8 ?8 I6 @" D5 n
m_pItemElem = NULL;
' t+ q5 z$ |. s: A. R }# n! O* c. v) q% u
m_pItemElem = pItemElem;
: z- z) L$ ]* b; r6 U m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
Y5 K- x! h+ d% U, ` }else{3 L& o* O' U- W
SetForbid( TRUE );
6 n0 o5 X) s+ s% ^$ g& G5 N1 I8 T }4 g7 l0 V: _2 i1 A8 v
}else{- U( u" L l8 d2 ]( L, {
SetForbid( TRUE );2 a: b5 t5 v" g6 C2 `& M, r
}
7 H6 y( B) Z0 [) y. ^0 Y return TRUE;
' V0 f4 b, a6 d* G6 g}* J0 p8 g, C$ X' i" |& ^; Q, \
* B7 X2 ~6 o5 Q4 N3 _- u$ oBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
0 Q9 w8 J& L P2 C3 A6 R9 H% C{
: S7 _0 w, k+ v4 }! a" I' }7 \ switch( nID )5 \5 i( s, \ o- `
{
# S) v& Q( ^: S1 e case WIDC_BUTTON3:
! e* Y* F+ z3 K% Z# W {
/ y* t6 n6 d8 o6 F% L bStart = TRUE;
: c& M) m4 s) J* f break;: B# A i, a$ W9 M
}* C* y8 Q9 I3 T: c9 J- w) g3 i7 s
case WIDC_BUTTON4:
0 @. D7 C& V/ j. @$ J2 l! i; j ~ {
8 j% H) y1 ~- r8 T4 _# j K bStart = FALSE;
5 d6 Q& }+ a' ^& A break;
! _; |- a' @6 B" {- q }* A E, r! h8 F4 g$ P2 ~ u
}4 O! i/ ~0 _7 { [' u6 L4 O
return CWndNeuz::OnChildNotify( message, nID, pLResult );
0 j& o: W6 B8 e) [, ~3 R7 h} % E) {. N( ?+ ?8 [- P" o3 M2 M+ |: c
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
; L5 c3 [3 B* v& H' J0 n{. ?) b! R: l# V2 j
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
- P* r3 ~$ _0 @ if( bStart || !m_pItemElem )
J2 V7 ^3 O6 h3 k" V8 h | {, {/ B" `$ }" q$ k
pBtn->EnableWindow( FALSE );3 `( F2 B- s0 B* O2 R
}else
" J# |; H) n* m" P- y pBtn->EnableWindow( TRUE );
2 z% P" e- p# I$ B( m Q3 J if( m_pTexture )
" M5 e! B/ i% K- R5 V7 H6 Z2 m( p { W& V R; ^! ~' ?, z
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );4 M$ e. {# Q" e+ [8 K
if( wndCtrl && wndCtrl->rect )
. [% O4 a; ~+ u9 P2 e f. e {/ W/ \# H" W9 M
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );" ?* J! L0 U$ R. V6 y! r
}
3 I5 n. p& b7 p! C6 N, q' g }' Y2 A3 w9 V' r2 b
}7 S+ D q }" P5 V0 ~# o
6 Q% e! I9 X7 P' z5 E
BOOL CWndAutoFood: rocess()! I2 V. A3 Y' e' y. J( i* H& e
{
! ~! U; j3 }2 b9 R1 p if( bStart )* a: f8 h( h) M) }9 C) {
{ Y% a8 P( E' n0 F2 J
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )& J/ d% f7 H! Z! c& b
{
" r# t2 G& a1 L4 d7 m1 B if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )0 f! L8 U$ ?6 L( D
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
3 j$ f/ N# W0 v, n% y }else{! B# C. O3 s( p3 n) c$ `3 i$ E
bStart = FALSE;
8 j, z Q1 U2 ? m_pItemElem = NULL;: [# }+ O- E& g9 J, K/ Z T
}
& m7 ^* n, Q6 E- Y }
' Y2 W* }& Z( I6 p return TRUE;
& B5 ~$ x: B3 I+ j0 q}& s2 l6 o* x( V4 i+ k& ?9 r
2 J6 R0 a1 t/ [5 m/ F2 |+ g- R登录视频废话:
0 z" v, c/ I7 [. W8 w5 f* U: E尾翼:# O$ {$ n0 Y8 x1 _
: F) n( C4 ?4 y代码:
( @+ r# Q6 Q9 s7 G8 A: y. a
) ] W' Z1 x! t, N- Y/ z8 {) A7 Xvoid CWorld::SetLight( BOOL bLight )
8 F; Q, k; M# c& n. i) O8 K4 kdurch8 @# d+ o+ f- W$ T, A# J& r# E
Code:6 ]9 G, X/ S/ D( n: A
void CWorld::SetLight( BOOL bLight )
3 I0 y; B' ?0 |! G J6 |{# ^9 j9 x4 [' W% Q8 k. Y" t
//ACE("SetLight %d \n", bLight);# E0 t" C. S5 ~3 T7 s3 V$ n8 v
) S' R7 ?8 v" E P- |3 E#ifndef __WORLDSERVER
# d {3 c' J! S! w3 b/ f7 Z DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);) m% Y1 {" p& w/ N5 \
CLight* pLight = NULL;% k; k) U# ^. ^
" S6 G+ S! G7 q6 ^
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );+ _9 P5 E. v- K
) l2 i, ~/ A+ _0 J8 U pLight = GetLight( "direction" );1 {1 t' C7 F( w7 Q
2 j$ f, R8 d# t D" R1 X; a- Z) E#if __VER >= 15 // __BS_CHANGING_ENVIR
+ A0 W- o; h4 b y$ N1 x) u# i if( g_pPlayer ){
8 `. N' S9 |: Z0 ? ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
+ O' g- N# Y) i; D4 z) i$ d if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!5 p; D7 I! u$ d- T, Y
{8 x& r) f5 W7 f, l" W: v; o. y
if( pLight )
R) t4 Z- B5 P3 i6 H8 \; r {( o$ ~4 _7 O- O7 M& _
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
8 ]2 J: r5 ~& d0 K3 r1 ?3 q7 Q3 U pLight->Ambient.g = pInfo->_fAmbient[ 1 ];& X* ]5 ?. b1 E8 C8 B \6 y0 E
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];' G& x* Y" ]; N" V9 q
* t) A ]% V; t pLight->Specular.r = 2.0f;
1 n" ` o8 o6 Q( Y; |$ J- c2 n pLight->Specular.g = 2.0f;
2 a0 ^- I/ l: y9 L3 y8 y, `9 x pLight->Specular.b = 2.0f;+ x- I- O% Z5 g- c0 U9 b
5 P' E3 K, i1 x3 _8 U9 _, q
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];0 I! E- d! A0 r* J) F6 ]2 C! T/ u
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];/ S7 ^0 W: Z6 ]
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];: B4 A! _9 L/ N0 y2 Y
: D A2 X- k/ A+ N) G HookUpdateLight( pLight );
3 P/ `1 v( ]- O( V0 Y
+ I' `% s E2 x& y U; _ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) i* A$ P& G" F1 H2 o
8 X% X! C% ?! k& D pLight->Diffuse.r *= 1.2f;& I( k( _ U3 k6 H0 K: h( k
pLight->Diffuse.g *= 1.2f;
/ I% W4 t1 o, r" B) y E pLight->Diffuse.b *= 1.2f;# M9 k& [. G% U+ k4 Z
% Y! ~) `7 n! ~; o- u pLight->Ambient.r *= 0.8f;4 Q3 |% d% g0 `
pLight->Ambient.g *= 0.8f;
H) I4 @2 w: P$ @2 \0 l5 y$ E pLight->Ambient.b *= 0.8f;7 D' e6 O- l7 ^4 e
# L; Z! S( g; i7 N% s: K
memcpy( &m_light, pLight, sizeof( m_light ) );
2 ~; {0 _6 v# {! s& B! z0 M6 h$ }8 W) i1 a2 C4 m- @8 O
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 X1 I; }+ ~3 U( N: ?' q9 d D3DXVec3Normalize(&(vecSun),&(vecSun));- b, |6 z5 S- X. |8 W7 h
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' b- f3 W# m: `+ r' t& h Z; b8 |3 I
pLight->Appear( m_pd3dDevice, TRUE );
* J/ @( c9 P+ {! f. P# K
3 L' A" W3 d9 L% U, V DWORD dwR, dwG, dwB;
- b# I" `( k5 D7 m dwR = (DWORD)( pLight->Ambient.r * 255 );7 h y; d; @: \3 J: |- ~) ?
dwG = (DWORD)( pLight->Ambient.g * 255 );
( n" m1 o, o) ?' C2 D8 Q5 G) t dwB = (DWORD)( pLight->Ambient.b * 255 );
7 F" E4 {- x' a" S0 P$ L dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );$ E, i* }1 a/ P. d+ [" ^
}
" a X( Z1 G7 r, U. T }5 i# S2 [7 n1 V! ]% ]* O
}
& U8 J# P8 a0 n. |; r* Q8 D else0 y$ ^. i* j9 l N4 J
#endif ! w' a( {& m/ n0 J" ^2 n$ ?
8 x4 |% G4 k7 c& T, u6 c! ^
if( m_bIsIndoor )
# k8 ? J( P# x* u3 S. k0 k: L {
0 C# `$ a0 x4 `& U if( pLight )2 V2 Q, j$ H* t4 k. W: S
{
6 P8 ]8 u! ?2 B, H5 z' H3 B // à??μ oˉè*
, e J y K3 J. L) R pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
. {/ H# Q/ j* e7 h2 h3 P5 a5 L pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;6 y( o( p& j* q& s4 I( `
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;% c" I! R; F' \6 ?
* ?* d) W; d8 \$ S
// oˉè* ??à? ) B2 ~4 h( R' w, g( v
pLight->Specular.r = 1.0f;% W) ~/ { s1 p& p: m H
pLight->Specular.g = 1.0f;
$ W m' D1 Z g2 p( P O" _ pLight->Specular.b = 1.0f;
9 I# L. u' L5 X8 L5 x // àü?? oˉè*
" ]5 R2 V3 c5 H A! V& j pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
2 ~0 G$ x; u( p1 j q1 C& V( r pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
, h8 B2 y; [. ]4 P7 k8 O1 c pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
9 y0 S9 k) o2 K* R$ O0 J
) J: \) V$ L) S% N2 P, j' ] if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
J( h6 O! b( ^) ]1 W- q {% ~8 Q) }- Q' W4 a
pLight->Diffuse.r *= 0.6f;
4 { K4 o! l/ M/ T% w8 k pLight->Diffuse.g *= 0.6f;
" [. |# Z5 R# W* P pLight->Diffuse.b *= 0.6f;
& b+ Z+ A( ~$ O z pLight->Ambient.r *= 0.7f;
" `! t0 @, _5 \ c. g0 h( C pLight->Ambient.g *= 0.7f;! u% T6 D" T% y5 X
pLight->Ambient.b *= 0.7f;
# Q7 H* M7 F7 _9 s3 b D3 k9 k }' I: U4 G' d5 G: {4 P: Y. {: T
% Q- |9 p( s3 _' z7 b& q% K' }0 W' Y#if __VER >= 15 // __BS_CHANGING_ENVIR
: Z# n2 ^/ p% s# r& L if( g_pPlayer )8 Y, d+ ~% w3 K& d; Y3 x- s7 B4 k
HookUpdateLight( pLight );
5 e1 J' z5 R; ]#endif
' a7 P. S: `9 Z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* [! U8 Z8 V$ V
* L# R" `$ e* k e+ s8 F& R pLight->Diffuse.r += 0.1f;
$ s3 h3 d9 P2 |! j8 S7 O6 h# t4 ~, R pLight->Diffuse.g += 0.1f;. g/ j/ B% c* j: h$ Z4 Y- N
pLight->Diffuse.b += 0.1f;- T2 w8 V; x; H6 p
// oˉè* ??à? 0 A7 _* w7 F* _
pLight->Specular.r = 2.0f;
9 R1 i0 l1 c/ g9 F9 G2 Z7 g5 e$ K pLight->Specular.g = 2.0f;
( X I |& y7 |2 ~ pLight->Specular.b = 2.0f;/ z0 O" ?8 n, Y; v5 h
// á?oˉ 1 ~! p/ G$ m1 R U& X$ Y" C) G) g- T
pLight->Ambient.r *= 0.9f;
- X f! `5 ]/ J pLight->Ambient.g *= 0.9f;2 h H$ o" q) z. u0 t$ T
pLight->Ambient.b *= 0.9f;
2 v1 h6 V& N( G* T+ V9 ]: o7 \! o4 j: o& @) S+ v6 `# D# s# S
memcpy( &m_light, pLight, sizeof( m_light ) );
$ j/ s( t+ `, ^; y- H; v9 R
, g+ a6 z& ^% J' Z4 R pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; W3 W% b* Y4 ~1 ]+ u+ B' x5 ], W
pLight->Appear( m_pd3dDevice, TRUE );& R. L) r! }, |. _6 a
2 s$ d! G% l! ^+ b
DWORD dwR, dwG, dwB;
! t/ a" C7 V% Z! K7 B8 U3 M dwR = (DWORD)( pLight->Ambient.r * 255 );! s. s$ G9 q2 h6 u/ {- v
dwG = (DWORD)( pLight->Ambient.g * 255 );
7 e1 J% Y: U0 }6 `& | dwB = (DWORD)( pLight->Ambient.b * 255 );
. N: s* h0 C% [9 Z! y6 T dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) G" }2 f6 U# i& L( g }# i! |( @! {* t* m
}
% P0 L% \* E% \) @$ ^ else
+ `6 v8 N+ Q) q6 ~* \ {
6 ^* X/ @+ o7 |0 \2 k) C2 Q if( pLight )! X r& Q; S; p( W
{
2 s! T% ]( g6 j p, i
# X# ~, E2 K' [+ w: L/ | int nHour = 8, nMin = 0;' r; a: i# v; v8 |8 O' f6 Z' @
#ifdef __CLIENT
# T" N' y, {1 q) o; g& h f3 ?+ b // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. % C( H6 ~: ] V/ i* j7 Q
nHour = g_GameTimer.m_nHour;
4 A. ]) U/ `2 Q5 z6 ] nMin = g_GameTimer.m_nMin ;' s" g( i$ ?1 i% B
#else4 @2 A. m" ~ u% ?( o3 Q0 p
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.3 L$ |& j! @; R3 u
if( m_nLightType == 1 )
! p" H: ^! k0 C. _& _ nHour = m_nLightHour;+ j3 D3 M9 Q1 D
#endif
: c z( R: @) I( J nHour--;: t6 t- o7 R# b& G- z5 \
if( nHour < 0 ) nHour = 0;# L) B/ w: g/ a% h
if( nHour > 23 ) nHour = 23;
$ v# j7 V/ y/ e/ A' B; j: O
* y6 a4 X S) i. \: L3 I, n- ^ //if( m_bFixedHour )
: Z% ?( z; @3 f/ [# `) S8 U // nHour = m_nFixedHour, nMin = 0;
s- M8 j; m# H* Z6 h/ i- t LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
# [1 d; k7 _) A LIGHTCOLOR lightColor = m_k24Light[ nHour ];# w, p. d; `" u- R
1 r3 o1 r9 _5 H6 c2 g4 M
//m_lightColor = lightColorPrv;. K7 K! r: n( _/ a* _# k
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" z3 ]* Z5 I, M/ j0 o+ t. i0 |
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
" ]; l0 U2 `" p5 H3 {7 a lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
7 a* i8 \5 q+ N O1 ~ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 h: X. I7 y4 j, K/ T, \( d lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;! G" v" H4 B% U
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;1 b) B9 l- A& m: J$ u3 K
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)* B; }: Q/ r% ~0 y8 {0 ?( V9 F: X* A! u
6 |/ t2 V% M/ C // à??μ oˉè* / W% c0 j8 b% w, G, o0 g
pLight->Diffuse.r = lightColorPrv.r1;" s; {) u( k5 R# d9 N8 {
pLight->Diffuse.g = lightColorPrv.g1;) h* k) z$ V7 k& K- F
pLight->Diffuse.b = lightColorPrv.b1;+ u3 y" S0 C: _" m0 k2 O7 J/ a
// oˉè* ??à? ) F) D* k4 Z* v
pLight->Specular.r = 1.0f;
0 r3 o0 M- f8 ~( j( u pLight->Specular.g = 1.0f;
4 }4 A, N8 i9 C9 v [' X pLight->Specular.b = 1.0f;
% [* q4 \9 m# u: s- {+ `7 M // àü?? oˉè* # R9 T4 C7 R L: @7 `5 l; U
pLight->Ambient.r = lightColorPrv.r2;3 L2 o3 D. {! [8 [- {; D) c
pLight->Ambient.g = lightColorPrv.g2;: T) k- g9 O: y, O7 u1 R
pLight->Ambient.b = lightColorPrv.b2;' p# N; F+ S. B$ s" }/ {
7 ^2 q6 m. g3 t' N7 r% m if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.9 t2 X4 W7 ~5 e; W
{
6 w# e) x a! X3 _$ Z pLight->Diffuse.r *= 0.6f;
. _. z+ W! D& v: ?& Q pLight->Diffuse.g *= 0.6f;5 A* t9 L! N7 G( |
pLight->Diffuse.b *= 0.6f;
$ k% Z9 r: o7 L$ O7 X& Z pLight->Ambient.r *= 0.7f;
* _9 _& |' M) d$ b+ ] pLight->Ambient.g *= 0.7f;
) q8 u( n7 t4 Z& J6 J" J& c pLight->Ambient.b *= 0.7f;1 t8 a- w: n6 N0 {% n
}' O7 y( \0 p, y. X% f, N
# b1 O- t, P) F ]#if __VER >= 15 // __BS_CHANGING_ENVIR
, n4 ?# |6 x2 w# Y# O6 c if( g_pPlayer )
! B9 W+ r4 o& }7 X/ w" Y: S HookUpdateLight( pLight ); + ?( g2 w) A/ O) y3 y) g
#endif" S" `7 ~) ?. M+ e" v% i% p* o! o
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" k% I' R, l; r7 T M* i
7 m. O. c! ]* w( |5 b) a#ifdef __YENV5 R! b4 m5 V/ i3 k
pLight->Diffuse.r *= 1.1f;9 H/ E0 e5 u- M; N, q1 g9 d; n3 f
pLight->Diffuse.g *= 1.1f;% d; g) p7 F' n- V9 u
pLight->Diffuse.b *= 1.1f;
( N7 q. v' ?! A* q3 L l // oˉè* ??à?
7 d% B1 F- D5 N& I4 q2 X1 { pLight->Specular.r = 2.0f;
0 [! w+ m: |) g$ u% w4 Z pLight->Specular.g = 2.0f;% d' D. T( @: F
pLight->Specular.b = 2.0f;
2 {* R \" u+ l7 F // á?oˉ / a% C8 ^9 v/ q$ X l- i
pLight->Ambient.r *= 1.0f;" _8 f8 f7 z, _7 F0 B! _( C
pLight->Ambient.g *= 1.0f;
" Q6 E$ F& {9 \: z6 j pLight->Ambient.b *= 1.0f;% @ ?, q9 f4 d6 F9 ^+ i, H; m
#else //__YENV) o s5 v# U) G! M9 z; c
pLight->Diffuse.r *= 1.1f;
' c. X( a1 v% M! {8 G$ U pLight->Diffuse.g *= 1.1f;
0 `- `- T$ s | pLight->Diffuse.b *= 1.1f;; w$ ^& l& u, ?7 l+ z7 B
// oˉè* ??à? , n j; k) S* n9 a8 n- w
pLight->Specular.r = 2.0f;
* B' T L5 b2 e0 L pLight->Specular.g = 2.0f;& ^* i8 N+ G! T! W* Z1 k
pLight->Specular.b = 2.0f;
3 ~8 O" |2 V" }- Z* i4 {+ D // á?oˉ 1 {9 b6 P" d, _; N. O
pLight->Ambient.r *= 0.9f;
8 `2 \: G4 s3 g pLight->Ambient.g *= 0.9f;
0 G- ~% {- u, p4 F4 D pLight->Ambient.b *= 0.9f;! W) B* B* g& R0 f. d+ w
#endif //__YENV
2 T& Y3 {0 h( \3 I$ m# x* P& o 4 c% w/ P+ B6 I0 V* h' S
memcpy( &m_light, pLight, sizeof( m_light ) );) D+ t6 B: V! V* S3 `# Z0 a/ G
8 E5 d$ U+ V5 V9 l* t! L8 V! g6 z D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
# N4 E8 ~1 w( x. e D3DXMATRIX matTemp;; B4 f9 I- R% R# Q4 [2 P
static const float CONS_VAL = 3.1415926f / 180.f;& i0 y8 u% w- U- a+ X7 b5 z
+ [* y! ?4 n& a* ]/ @" s' D D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
) l5 `, C$ Z9 e D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
9 i; u, X" t: V' O L8 J9 m& R7 v% ` pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
: F' W1 S/ U0 C5 F pLight->Appear( m_pd3dDevice, TRUE );
* u: [! O/ m& u7 U0 \- [! V( b
( W4 R8 q) I& m5 w // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
' k" N! U8 w! C' I7 D% E% D/ B // D3DXVec3Normalize(&(vecSun),&(vecSun));
( r3 _7 |2 I4 Z7 T+ Q5 h. X K // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
4 C1 i d) P7 \2 I+ k' v5 H4 n( @; U& U$ C
DWORD dwR, dwG, dwB;
8 w% n9 l! H3 E0 R dwR = (DWORD)( pLight->Ambient.r * 255 );7 N* [2 E) S P/ |
dwG = (DWORD)( pLight->Ambient.g * 255 );
1 r& d$ V4 ?4 L. B ]1 V6 Z3 X! l dwB = (DWORD)( pLight->Ambient.b * 255 );
( R& P. x a/ P2 J dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ' B& B1 z! z }9 m0 y: R
}. L* g# P+ g* N. \0 c. b% \8 E
}8 L' v" R$ \7 r" [( ?& \
5 a. c( d* D0 M+ K) @ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
# {% J2 I/ |, c/ t( J8 j; K: o0 _ 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) );
" d1 [$ `. I7 D% e) w ::SetLight( bLight );
: s5 M9 V- X' I/ ~
1 A z- u7 d- x5 e7 m! }3 r) [ // ±ao? ?D?í???ó á¤à?
# T) _( M4 n1 \5 X% d( C m_pd3dDevice->SetMaterial( &m_baseMaterial );# T# A* y4 F: Z% C8 E4 b! |
K2 g0 _% E$ i9 d, o' B3 w+ o
#endif // not WORLDSERVER
+ q' r1 x: Z5 W0 F9 V5 d}" n9 e' R$ V5 |5 [' Q) ]5 j* f
并更换7 \0 G# B0 r ] t6 C% j n
Code:0 O6 ~2 ^3 d& b% K
__FLYFF_INITPAGE_EXT5 ], u# c- n; V3 c( q- [# ?! I
定义: B0 [8 c: R, k: t$ P- {) R5 F5 w
- w: `- T# e* h, D+ |: r9 \" A& z: |0 B& [/ @1 K
) r0 h& X, F* g! d: B+ o/ u. M) k: _
现在终于删除我的狗屁加速..., b s% [- ~: ?: d' Y' u
4 E: ^& @! A: L0 c8 [! a! I; L. |$ |+ c, G$ M+ e
! W3 V' }4 e) C
|
|