|
|
食品车:- S" ]- c1 X5 n; w9 ?+ J9 r$ O
尾翼:
i! p# K% B) x
+ O2 c: W# J/ |! s9 J代码:
# o: ?8 a) |# O4 d1 \CWndAutoFood::CWndAutoFood()
3 \. \/ P0 p+ d{" l# K& K% v" L* V) ?4 v" _
m_pItemElem = NULL;3 _! z6 s1 K& y T8 Z
m_pTexture = NULL;
- `( r" y7 P8 V0 V/ U bStart = FALSE;' f$ O B0 {: M) k$ Q
}, y: t) ~& c9 y: |: L3 ~
8 [! g& k2 \' K
CWndAutoFood::~CWndAutoFood()' b1 ?" L. `9 l8 M3 @9 y# C
{
0 r) g' m$ e- x1 n/ J+ [: ~ AfxMessageBox( "AutoFood ist gestorben " );
9 k& _& ~! `8 Z6 m}. a, Q! Z- ^; t) @9 G
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )! l% Q; H8 u1 {! A( [+ p& ^
{
) O/ k) F) q4 a1 f$ H5 N, C: ^. s return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
* e3 }1 {. h; a% J/ F, ?/ e9 g- t}' m6 `( H. K( k- g; ~' _
2 R, X" w, E7 w4 v- jBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
b# a1 W+ [& v* M{
& ^, f- u$ p1 o- X2 v LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
$ e0 c; Q1 J. P. e8 } CRect rect = pWndCtrl->rect;
+ [ V7 U- f) a t* ?8 f( _ if( rect && rect.PtInRect( point ) ), o/ {, C, J6 n. R
{
4 e |* Y0 f n! |: X$ H+ Q CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );$ F* `. b3 a& r) l0 k, F, R6 {: ]8 s
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
g* Z4 N/ w# M {+ I2 q9 ]+ b4 b6 X- K; q, X% K: q
if( m_pItemElem )
$ B3 v6 m* I+ x7 V: b# M ? {$ I+ {. Q' ?4 U7 r, P7 d' F
m_pItemElem = NULL;$ M' t% W$ g( }7 X' N
}
$ X! ^5 I/ K" G$ l% A- i8 p# n- H m_pItemElem = pItemElem;
9 Q8 N* S6 P- E3 G. R% A9 h/ ?8 h9 P m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );& l, }" \0 d9 m* q7 L7 s
}else{- A0 R7 P/ \2 A' ? Q
SetForbid( TRUE );
+ i3 ?) q7 W( w }" y7 }0 p0 Z) y& p
}else{/ d+ X! \: F! J) d) U' N; y
SetForbid( TRUE );! r2 ~# H5 H$ x9 w: ^! M. e2 Q( \ `9 F
}
( b1 W: M; `3 }) ` return TRUE;
$ `$ y) _6 M/ w! P" R5 ?}- M: |7 `% G. D' d' a9 A
" S- G# L- P) d X/ a7 _BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
+ [1 B" u4 j0 |. g& i2 M) G{. r" ^5 Y6 D, w1 G: L4 O9 [
switch( nID )
8 ?5 [! g# g0 ] {
' M- g2 l. T1 ], Z case WIDC_BUTTON3:: h% q! H# Q8 A4 S/ P9 H# a# w9 j
{3 P3 @1 X/ d9 X
bStart = TRUE;# ?$ |: W4 y) u3 e5 L; i
break;
9 `' S3 u% y' b0 p& {1 m; D }
, J' R, ]& z; b3 }/ z4 H case WIDC_BUTTON4:6 f: u7 p( |6 O
{' _3 A5 n2 c- g9 h% H; H( C! B
bStart = FALSE;
# X7 {; \% b, e7 L. I! U break;
5 o" V7 L: }7 B5 r/ |0 m' F0 b/ j% s }
+ k6 M0 ~; ^, L9 J0 |2 b- w6 @ }0 f- y4 g3 e5 |+ ]# g3 L3 Y, n& t
return CWndNeuz::OnChildNotify( message, nID, pLResult );
/ l1 Q6 [; F5 B3 o6 H, J# o, P$ I}
/ j, Q/ p" U9 r) r( x: svoid CWndAutoFood::OnDraw( C2DRender* p2DRender )1 J4 ]5 H6 L% W z/ p, u& G
{
9 U& A f& i" z2 V CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
0 S' a* }$ Y6 G if( bStart || !m_pItemElem )
. e3 y& T7 A( b M {
' |8 `# v' |( _0 Q pBtn->EnableWindow( FALSE );
* w+ D' L# p2 W( ^9 z) Y, v( z3 S }else
% v# H! T, _4 w" q pBtn->EnableWindow( TRUE );
/ C2 L$ G0 p4 }3 }$ g if( m_pTexture )& f8 q8 I) H2 P' y- f' n9 r
{2 J9 {2 h6 u5 `% i m
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );( F0 x3 a' v& y$ W* o$ m0 h
if( wndCtrl && wndCtrl->rect )
4 g5 D7 A" \4 X1 U& p& _4 ~ {# Q8 \0 n2 m, }) ]% T
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
* @; S: ~' p; N4 X+ B2 O }5 o/ L# t+ m' u3 a8 H2 u
}
" l H* ~4 f- W# p) @ M N}" e; ]. Y1 h- M$ I: f! S
! [; ^" H; }3 S- V3 _
BOOL CWndAutoFood: rocess()+ P) o+ x" K3 {/ q6 W* l/ [
{1 @; g' r3 r& d2 }2 Q
if( bStart )
6 X. o4 i. c; n {. |- K5 E! G4 r, y. a6 X# ?: e: r
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
# w' u. f: M) @" L0 m {
9 F- B, L8 g7 N) u9 F+ 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() )
( T3 X+ x& {7 P$ g% L+ P, N g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. n6 B) F/ k" S. W# X7 ~6 X' a" s
}else{% x O, K8 G% v5 r( I i. u& Q
bStart = FALSE;
1 D: Q3 v6 c4 y m_pItemElem = NULL;
1 C6 U9 F# S. P% T+ @0 I }5 Q; r5 i. r' v: t
}$ C1 T8 a, H- _1 A v8 f
return TRUE;
r3 r: U$ m& Y, k+ _" ~}
' V8 {1 E. i2 s/ B% W* X0 i5 ? E' M) i
登录视频废话:
( {" A; `" J2 G) Y9 S5 B尾翼:
( G7 M& S% y/ O$ S7 f/ M2 M% E# V4 W) ^% W8 I/ p
代码:3 g2 h3 W- g/ i3 _
6 ?* W0 S# H4 f2 Uvoid CWorld::SetLight( BOOL bLight )
( O, B; ~- Z7 Y0 z; E+ z5 I1 X3 r4 Udurch
/ W8 @! ?. m# xCode:
9 o% d' s$ U+ t0 j l& J: L4 cvoid CWorld::SetLight( BOOL bLight ), a' R/ x7 O' d
{5 ?# B4 I, F* n: d: V/ Z, e
//ACE("SetLight %d \n", bLight);6 x4 U1 H+ w8 {- B5 L3 V
, ~* k6 N$ R% D#ifndef __WORLDSERVER ; B( s% `2 n9 ~$ s2 z
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
4 g* J# m- e/ i! g# |: y u8 |: y CLight* pLight = NULL;
% J; e* F, L/ }0 ^( N! O
. y* ?' m4 b! a2 u2 O7 { D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
1 [" t) D8 H2 w- \! F- ^4 W
# _0 \2 P0 I- u5 T pLight = GetLight( "direction" );
; G) a y" S ]4 }' ^; X; ^0 D! i r* v! g
#if __VER >= 15 // __BS_CHANGING_ENVIR
, l s3 n0 A3 U/ U. ]3 G0 q2 _1 @ if( g_pPlayer ){ k0 F" A% \" c1 ^2 e
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );5 \. Y/ k1 d$ ^# `! _1 v9 \
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!9 b/ B* t3 `- Q7 n8 Q/ z
{
* h" [5 R5 |+ t/ B1 ~ if( pLight )9 b5 a9 N' i& W3 g
{, ^! o9 b5 N3 t( Z3 u5 y* E4 O8 R7 b
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
4 E# \" a& X/ T pLight->Ambient.g = pInfo->_fAmbient[ 1 ];. F* l2 E( Z3 z* D" u5 c
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];( \% C# l$ |; b/ j3 o
2 [& b+ e! \3 ` pLight->Specular.r = 2.0f;! x4 L! @, D8 ?9 t) O+ z7 P2 y+ f
pLight->Specular.g = 2.0f;( W8 [3 ^4 D4 \9 `: Y& m+ N9 h0 m
pLight->Specular.b = 2.0f;
% C' L9 a" L) T6 u: j # H$ T! M I' m7 O- k9 Z; \" X. _) u* e
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ w+ C5 r+ [ \: ~% u3 _9 \ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
}! {' l) X+ n pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
; n) Z; @4 Q& w) q6 C& H % _- p% u5 C! b% _" u1 V
HookUpdateLight( pLight ); + D% H* W7 C/ r, i' y" G
: r8 y. N; V7 Q/ f1 ^
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ b! t5 A% S; x: d- _% L 5 m% U& x* {6 s7 i* B$ _6 m" M
pLight->Diffuse.r *= 1.2f;
& S, t; A( A0 z8 }4 Y+ x pLight->Diffuse.g *= 1.2f;
7 v2 i% L: `. ~6 F0 W pLight->Diffuse.b *= 1.2f;
! o9 s# ?7 L4 N/ Q4 M! G' T" R) B2 g
pLight->Ambient.r *= 0.8f;
5 E6 C* m! \8 [ pLight->Ambient.g *= 0.8f;! U2 n8 d5 K; k0 o3 l6 w1 c: b
pLight->Ambient.b *= 0.8f;2 t* P3 q& C( z9 u3 f4 t* Q. a# J
7 z/ T( R- O7 p8 t
memcpy( &m_light, pLight, sizeof( m_light ) );
. W) l4 f) A F; u- N0 r0 f9 g( s& B7 r. H8 M9 V1 D# x/ z
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
5 Q' t6 j1 M, T0 R9 c D3DXVec3Normalize(&(vecSun),&(vecSun));
& h! m4 p: P6 [' n pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; l0 }7 b# z/ z6 \; y
pLight->Appear( m_pd3dDevice, TRUE );
" Y9 C8 L8 Y3 a! U
4 v8 \! I) P& I) k6 u DWORD dwR, dwG, dwB;: C, {! `: b0 a8 i) |
dwR = (DWORD)( pLight->Ambient.r * 255 );, A' o7 k0 K" Q k* M/ R5 D
dwG = (DWORD)( pLight->Ambient.g * 255 );
4 u. W1 i/ a' s: k$ @, S7 ^7 L dwB = (DWORD)( pLight->Ambient.b * 255 );0 j$ K$ G( T- E2 A& A
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 | w% b( j# U1 ~4 o8 o/ Y1 O6 d
}
* U* p; z& r( w" { }. ~4 V. ?, y2 W
}# ]- J. c2 |6 d4 a' S( c
else/ T, w$ S+ m( H; v9 d& z, v
#endif
& Y: P6 y2 W$ K7 {4 q5 w; A$ o8 m7 C1 G. v
if( m_bIsIndoor )( J3 A' B2 l' F; N9 w6 C3 z: {; m
{1 w5 X4 B' x7 W
if( pLight )
* B+ o" o. r3 p/ d D4 S- ^) I { * J3 V1 Z( g0 G9 f; E, A
// à??μ oˉè* 4 I1 W5 Y, J: I
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
1 Q# o5 H! M( t' T4 w, \ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
9 m$ K" R4 Q8 |8 S& J$ c$ ~ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& x9 k: `6 V+ [ C: b& f5 ^7 f
; O5 T, q' U9 |4 M2 y* p( G // oˉè* ??à? $ N8 s! g! P5 o6 y$ { M
pLight->Specular.r = 1.0f;
6 }# L$ k( c2 Z" I pLight->Specular.g = 1.0f;
# V/ [( W9 ~2 h pLight->Specular.b = 1.0f;( V9 d% Y) T; K4 ~1 z
// àü?? oˉè* 7 V! u2 x4 R# @( g7 d0 S6 C
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
8 V/ h ]2 B1 M3 \" D; e$ S5 _ pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;1 @7 `' u7 i! }5 E, _& [& o
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;9 A+ G$ s0 X, n" @) [+ Z
2 n: k$ N# {% b! {% m0 p
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- N* L4 P4 n. ~$ p# B3 ~ {; c, B, I. E( i9 M, ?1 q
pLight->Diffuse.r *= 0.6f;) I/ W7 a+ t1 |1 i/ x3 H6 K
pLight->Diffuse.g *= 0.6f; F* u5 P- X* z& Y) j
pLight->Diffuse.b *= 0.6f;
^9 A( Q! C% R5 y2 f# |+ C pLight->Ambient.r *= 0.7f;
4 `6 F# a0 t# a4 j, Q0 ? pLight->Ambient.g *= 0.7f;& {5 p. l7 k9 C0 _
pLight->Ambient.b *= 0.7f;) G! D& l! Z! [* V4 F
}" [6 _2 b4 ]$ Y; T8 Y" D3 U
: d6 U9 Q/ n/ A#if __VER >= 15 // __BS_CHANGING_ENVIR; P' ^% C, e& ]: L. A
if( g_pPlayer )" U& _" I3 n/ d2 B* F7 Z
HookUpdateLight( pLight );
. o) ~; D/ x2 I# n" T7 v3 G' L$ n#endif
3 H4 z7 _: u5 w, A! ~ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 l0 d3 W( O2 A5 m
; O; {5 I y% ^ pLight->Diffuse.r += 0.1f;9 G' Y6 f1 H3 z7 f( C* t$ }
pLight->Diffuse.g += 0.1f;/ r9 r8 L6 S" }8 \" p
pLight->Diffuse.b += 0.1f;* N$ w% W' y" u& x& D0 K! Z$ E& n+ i
// oˉè* ??à? - M6 w8 k( Y3 Z g" ?
pLight->Specular.r = 2.0f;
% x# z$ }2 d' v pLight->Specular.g = 2.0f;5 ~ V7 L% F' }6 }7 {
pLight->Specular.b = 2.0f;
" Z: c! x% ^2 ^. s // á?oˉ
/ b, J$ c3 O) r: q9 A j u+ R! ] pLight->Ambient.r *= 0.9f;
. b1 X& s- v" W, Z pLight->Ambient.g *= 0.9f;
1 h! f$ i1 l, } pLight->Ambient.b *= 0.9f;/ J: `3 ^7 M9 y* o
2 v1 _1 B, s& G# C B/ o$ q( h
memcpy( &m_light, pLight, sizeof( m_light ) );
7 B! v$ h3 o, z% Y 3 u; K. q, i* N# @
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
$ e/ H$ O( E' t! y! e" e/ i pLight->Appear( m_pd3dDevice, TRUE );
/ ?0 M8 D1 j0 }; H # _7 D* x w4 \' H6 e6 r: o9 x
DWORD dwR, dwG, dwB;0 ~0 b5 x& z7 h( X" @
dwR = (DWORD)( pLight->Ambient.r * 255 );
: z# P) Z) l) G( x# ?( D dwG = (DWORD)( pLight->Ambient.g * 255 );/ i; d; _4 K6 a5 @
dwB = (DWORD)( pLight->Ambient.b * 255 );4 b$ L! q* k1 [- H$ o
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' n. X; E3 R" R8 I# z }! a$ P/ ^% _9 t) D
}9 G# k1 a7 E' P* {
else$ y( a: r* v* u, H* y% B3 d) f* n
{( K4 ~# w" P( E/ d, O7 D7 ~
if( pLight ), T6 z2 j4 J( ^# Z
{9 J" N' ]- D& i* ?6 H4 l1 S- J6 i: I
# h2 S2 h! h. n" e: G int nHour = 8, nMin = 0;
( v- [* N: |7 m, I% Y1 w5 e #ifdef __CLIENT
9 h$ l2 m2 ]/ d* O( N // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 6 u5 a8 `4 L& k' a
nHour = g_GameTimer.m_nHour;
& S# E+ w7 H0 S/ b: |* w nMin = g_GameTimer.m_nMin ;
0 ^! { e. B3 I0 D" B #else6 t# f$ _. e5 P L9 O/ F/ G
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.; l* e2 |4 z8 j, N. v; q5 C7 t
if( m_nLightType == 1 )
, S/ T- T) G5 Z1 W5 \ nHour = m_nLightHour;" C* h& M% J* l
#endif
; J- L0 h1 P7 I7 x0 H nHour--;
# I# F- F/ v" c: L, p, n) ]0 o if( nHour < 0 ) nHour = 0;) u( U& |; n7 R
if( nHour > 23 ) nHour = 23;$ {! v1 L0 B$ X2 C/ @
9 V2 j5 Y& H) f0 Q+ |9 \+ m
//if( m_bFixedHour )/ l: i0 c9 b+ I
// nHour = m_nFixedHour, nMin = 0;
f7 k6 n1 Y6 z- d6 x# M. J* {! ? LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];/ k% S/ \# w( D
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
9 I( W0 T# R2 x# ~/ `( H. B* y. `( ]5 ^. R( U' G
//m_lightColor = lightColorPrv;
1 R: p# O) I9 n' M' m/ O8 M& U lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;4 F4 s9 [& l @8 f9 B2 @, Z/ ^8 W; B. E
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
" ?2 e2 Y7 s* \, J% u lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;0 E F. c/ B7 g1 k7 ~5 p& s
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 |$ J; Z* R, c& f4 O. i lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;1 b/ |& L* i0 f, O2 V. r
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
# d& u" x- {2 _0 C+ G! w // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
: q1 y# i c4 `6 {& A) C- h: v, j- r- V: M! R' X5 F$ W
// à??μ oˉè* $ }0 n* r8 s( h# ` x- b6 p* U
pLight->Diffuse.r = lightColorPrv.r1;
4 o% C7 x. a1 v! X* L* H pLight->Diffuse.g = lightColorPrv.g1;1 b W* U8 \( u; x
pLight->Diffuse.b = lightColorPrv.b1;
& x# g- T+ i0 z9 \# t/ h6 r5 ~ // oˉè* ??à? $ r1 g' H2 q: ^: Z+ d
pLight->Specular.r = 1.0f;' \$ ~+ M# t u% |7 _
pLight->Specular.g = 1.0f;
- ]4 A5 J) o& N0 r pLight->Specular.b = 1.0f;& a& S7 q R1 E) p! ]
// àü?? oˉè*
- C7 m3 q) J$ X pLight->Ambient.r = lightColorPrv.r2;1 G5 w0 w( e/ ?" ~! o" r* X
pLight->Ambient.g = lightColorPrv.g2;
/ h4 w! }6 ^7 x3 l: v pLight->Ambient.b = lightColorPrv.b2;
: f2 H+ Z3 K: W5 u
$ M2 h% {& `% d8 W& T" w if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 Y" s! x9 a1 Z$ I {: K3 ^/ B( \ V% Y0 F
pLight->Diffuse.r *= 0.6f;
, ^6 N: @+ ?) e& ~. ?0 Q- Y pLight->Diffuse.g *= 0.6f;
) m' W/ G0 O. j* N/ R- r) W) G pLight->Diffuse.b *= 0.6f;
5 C+ L" L$ ?6 u4 O' t3 f pLight->Ambient.r *= 0.7f;
/ `: N( ?+ X$ m9 |6 z Q pLight->Ambient.g *= 0.7f;
9 v9 a- C' t3 N7 f: ` pLight->Ambient.b *= 0.7f;
2 {7 b; j# J6 L3 D, @" U5 X }# N, j" d8 w0 ~ ]
9 e# t# C, Y- f# u' L# R. H. r9 X
#if __VER >= 15 // __BS_CHANGING_ENVIR& e* k# d! p/ p! [6 G% W4 P9 D' M1 \
if( g_pPlayer )' p) m5 m, g. l- |8 T
HookUpdateLight( pLight ); 9 U) K1 E* C: e' b* N0 Z' N9 V
#endif4 Y6 L1 R$ j6 @6 ?$ O
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ U) c4 ^/ S6 E7 {9 c9 R8 p% J6 a6 }9 L
#ifdef __YENV7 U8 j& k) Q y* y0 l
pLight->Diffuse.r *= 1.1f;
" l- n2 y4 }- s# [ pLight->Diffuse.g *= 1.1f;
# o( u0 R, U, J pLight->Diffuse.b *= 1.1f;( F+ }" c% l, f+ P2 K" \& I& T$ V
// oˉè* ??à? # S0 K: v$ T6 }9 }; B* n4 P( m, q
pLight->Specular.r = 2.0f;6 j% @4 }" R5 j1 v. r
pLight->Specular.g = 2.0f;
) k. I: p2 @' J( V# I pLight->Specular.b = 2.0f;8 p7 L3 k$ r; q) P
// á?oˉ / i( n$ g5 |; D# H6 B1 f
pLight->Ambient.r *= 1.0f;& c+ Q$ \0 T* a* a' M) n. `
pLight->Ambient.g *= 1.0f;: i, X* l+ r1 `9 v
pLight->Ambient.b *= 1.0f;
; u6 u$ `, ]# c: B#else //__YENV
]8 u4 b+ u" L, g# h pLight->Diffuse.r *= 1.1f;
$ {, g: W; a! D( h- m) T$ w pLight->Diffuse.g *= 1.1f;- _$ B- l- }9 }+ I6 o+ e# Y
pLight->Diffuse.b *= 1.1f;% A& q- D B; N8 \
// oˉè* ??à?
$ \7 y6 j$ \, D( u8 I2 v pLight->Specular.r = 2.0f;. h/ ?5 `% @: `% g, Z
pLight->Specular.g = 2.0f;4 `' B$ ]" |7 d% J, S
pLight->Specular.b = 2.0f;0 R% _6 [$ K1 g% u
// á?oˉ ! C) s: O/ E, R5 G
pLight->Ambient.r *= 0.9f;7 V$ S3 q0 ^6 s' {; {0 {, {
pLight->Ambient.g *= 0.9f;( P7 V4 J! Y+ {/ U; F
pLight->Ambient.b *= 0.9f;. D3 J9 H7 n: u: w% n% E& v9 ^
#endif //__YENV
4 q6 d9 S6 E! l( ]/ ^
! W* V1 A* G) c' Q0 n3 [ memcpy( &m_light, pLight, sizeof( m_light ) );
- L' d6 L) F* ^; g" ` 5 E: c B3 H4 n% B3 V2 \2 \
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
% I- c( L" `1 ^/ ^0 l9 r) k D3DXMATRIX matTemp;
# ?8 Y, m8 Y. ?0 c3 Y y9 M1 h/ N static const float CONS_VAL = 3.1415926f / 180.f;
9 E" N* [' @5 X- w n
U, \1 b+ L1 C6 p" l; e D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);, {0 \, p5 ?1 u7 B& D( o( |) D+ n
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
( j) \2 k6 M$ u pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ! b* l) C- c5 r! D3 B) V! {
pLight->Appear( m_pd3dDevice, TRUE );
& p% o& N' s6 G/ l$ g, ~% N: y r3 q& k7 { j @
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 r$ `* k4 Z1 [
// D3DXVec3Normalize(&(vecSun),&(vecSun));
& z2 h2 L* l6 K+ w: W1 t- M // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' f1 e$ J& M2 S
6 G: n) H/ |- s5 u7 |+ Q# e6 I% u DWORD dwR, dwG, dwB;- j5 D$ Z4 B! Z
dwR = (DWORD)( pLight->Ambient.r * 255 );8 t( G& F0 m/ f
dwG = (DWORD)( pLight->Ambient.g * 255 );
7 {3 l& Q. \! c5 i5 @; d+ n$ b4 b* B% ` dwB = (DWORD)( pLight->Ambient.b * 255 );1 C6 q; f8 D! a* i! v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); - P+ U% \! r/ ?; `, R
}# U2 ~2 C+ |: O- H0 c
}
+ K3 j, @% s5 \7 s' j: b+ [3 Z# t, _% M3 m: \
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
4 C( }9 y: S# \1 g0 P) \ 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) );$ k! f, ?8 Q) l" A- G
::SetLight( bLight );0 w4 d. a& ]% G% e8 r# v9 A
+ [" I$ q) |& c s! s+ g // ±ao? ?D?í???ó á¤à? , w" c+ p- o4 K# ? j, [( C6 K
m_pd3dDevice->SetMaterial( &m_baseMaterial );
3 _+ _, N4 q) ~& |
' ~3 |0 b; d& K. h' @3 R1 _#endif // not WORLDSERVER( l% O8 g7 F) d& c* T' \. E
}
- W$ P7 m8 Q( m并更换 A9 U" ~* H; d4 w+ g: Q6 T! G
Code:
' x$ [, \3 v4 P/ }1 ?__FLYFF_INITPAGE_EXT
, o& _0 J- A( {+ K定义
) j- O- c ~& n4 C
- F' N0 l S7 v- `" V
0 g6 x& `3 {' G# ?0 n
8 A4 d4 T/ @8 j: d! Q/ [+ O
) D. |4 S3 k! g# k( I" R% g: }现在终于删除我的狗屁加速...
1 N2 P* \, m& T9 H* w7 B6 _ C8 h6 Q& g Q4 P M, ?# Q
7 Q& _' T* x$ S4 _( x+ I3 c
0 ^6 [8 Q; K7 a. D, `+ a6 _+ }) h |
|