|
|
食品车:
! ]/ q H4 P# ]) a. H( J. I, R! ?尾翼:+ ^/ ^# C. w2 S1 P2 @
% j, A2 S! \& G2 E2 {4 \% V- m代码:
% V2 `9 v% U2 m$ v* rCWndAutoFood::CWndAutoFood()
& ~/ T# N$ r1 g$ H" \' P{
* `5 W& w% h \; [- L5 l. a. V m_pItemElem = NULL;
3 r: t! j/ B! a3 l( ^/ L V m_pTexture = NULL;
4 b# g( [" j; u9 b& U4 p2 o bStart = FALSE;
2 `+ g2 b& z3 h5 I: x}
9 o* h7 H# J: i4 s# m6 A& P8 r/ @0 C* j1 I! Z
CWndAutoFood::~CWndAutoFood()* \5 R7 V# F9 W3 h
{: Q& X) Y5 E+ R4 A% f8 a
AfxMessageBox( "AutoFood ist gestorben " );
& z- v7 f' _4 h0 M" {: U8 d}
$ f( V& F4 A% Z( NBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )) X# A2 q: ~" u. N3 Q
{
, d' \! j1 b$ V' A& O7 J+ n return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
8 U1 V" b! ?, I& H S2 `}- [9 ?1 e) M& b' r4 _; G) s( z: v
5 d2 [6 j& U9 C; N. ?
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )# R; S% o3 S( X, N
{
& O) s0 V* Q. L- J X3 a R LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
) D: k; N$ l( N! e CRect rect = pWndCtrl->rect;
6 ?6 o( i+ G, F o7 m4 G if( rect && rect.PtInRect( point ) )- ?$ T1 J2 ?5 f2 J/ ~) X- @& e0 ~
{
0 l3 @5 w1 d8 Y/ P9 ^6 E/ p- } CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
0 K+ c# Y* s2 B5 H* ` if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
* i6 Y$ F- Z# J) C {
1 s- A3 m% ]; _5 Q if( m_pItemElem )
5 o3 x; n7 A: g# J) O! Z8 l {4 S7 r# q4 ]0 { d- S
m_pItemElem = NULL;; r0 @ {3 L ~! W8 K1 y, Y
}7 x; b x! P( b* e- b6 \
m_pItemElem = pItemElem;
8 }5 O; O( A/ Z9 {# L" n m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
H7 i# h! s6 ^% I& |* {2 n, ] }else{
: H1 h+ ~5 ~6 B) b4 ]: @1 l, y% W SetForbid( TRUE );
% P; g6 F& M5 u) h% J0 e2 C) { }
7 g+ @; z7 N3 u7 q" x1 {2 O# {' l }else{" M3 U1 p) k& D' J a* S6 q
SetForbid( TRUE );
! H2 |5 K y5 N+ e6 i6 Y }
& P4 T* i0 f9 R) F2 S0 } return TRUE;
& m+ { q# @ b; B# Q$ @6 e}
! r4 o. B1 O) c! O2 d: r/ E& ?' X( G7 S
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
# C! m! R) a8 U' ~4 {# n1 z6 J' L, ^4 k{
0 Y% k) L/ V, i |- G" Y( F switch( nID )
/ r( I8 R' y9 a; S4 I* a {
# H, l* D m( M, D' O* k case WIDC_BUTTON3:
. x) `0 G5 b/ w3 R& S& u% F' s {! j# j& w9 n; v3 _0 {. K1 m
bStart = TRUE;
0 ~% m8 m, M# K8 ?8 t break;
1 m! R# C) M8 D/ H# g0 G }' i' Z, M4 P% s% F! [) K4 ?
case WIDC_BUTTON4:
( b' T' O( A# a, h" J {8 c6 V! A8 z5 D; ~9 Z9 r
bStart = FALSE;3 Z, G0 Y' v9 x" B0 f$ v3 ?
break;
+ @. f9 p- r2 w4 f: h }1 K ~- C9 {. K) @* h' i
}6 |: {6 l* @" Y8 s! r6 I% R
return CWndNeuz::OnChildNotify( message, nID, pLResult );
% M- r$ v/ D+ X" G, [}
5 E' A. |, P8 [* Y+ N! z0 Qvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
' f: p( x2 A- ?8 A- ~{
6 {$ y5 [3 {6 ^) m# I CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );9 I( f6 Z4 P4 Q6 Y7 X& D
if( bStart || !m_pItemElem )% J0 {; r9 U5 ~- x
{
( q* H7 s" }( ? pBtn->EnableWindow( FALSE );
, R4 x( @' _5 h9 o5 {. y }else4 L8 A% A8 c# M0 ]1 J+ i
pBtn->EnableWindow( TRUE );
! ?! k. z0 v; O" g2 {6 j' t if( m_pTexture )
" @8 Q# E" g. X1 `; b Q" O. P6 J {( |* D4 x0 a8 i. G1 L% `
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );( v: U' `( n% ^- w& i1 t' m+ [2 ]
if( wndCtrl && wndCtrl->rect )- z* o1 r$ N2 e! u2 Y2 \- K1 ~
{
' q5 O2 M: b4 m/ w1 z+ P8 U m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
7 K8 P. l6 v" U& D7 h: Z }
8 N9 n9 Y, m, y5 A6 ^; F# C* l$ i }
1 l1 a: P* X1 r1 c+ u}( `. `$ O w# k- C
) K$ t% b8 [% m5 p# KBOOL CWndAutoFood: rocess()1 j( ?' }; f3 [- t; L" x" [. v7 v
{9 U1 j3 |7 C) J, I* w
if( bStart )& E* v: w$ U3 q! a
{
9 @( Y# O t. C6 M! Q) Q if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
3 m9 c6 V! d- U0 R: k1 j3 `4 w {5 l- r7 {0 N% h/ i
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
! w3 y7 v e+ K$ U8 X g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );5 S& o E9 c; D3 G0 S2 ] k
}else{
6 s5 t* Q8 K, D/ z bStart = FALSE;
. l5 Y: \1 B! Q. w' U4 X m_pItemElem = NULL;! @4 c' A! Q$ s# [* k W
}+ M" I! [3 j0 b
}" O# a4 @* T% N- f- U
return TRUE;
' g+ S1 G8 R) V$ U; y8 Y}8 V6 g$ y7 @& b9 d
6 e" K6 W, ^2 M2 I- x7 p H
登录视频废话:
( m* @; W3 s( ]; c2 r尾翼:
* c0 T6 Q" G; j$ j/ r1 ]( p7 k1 L. H; R
代码:
3 y6 U' G5 ], C2 [* O
" q/ g1 y. g" Uvoid CWorld::SetLight( BOOL bLight )
- C+ A& z, O, a: B+ cdurch
! W, e: T7 v& Q* Y' L! CCode:
! [7 g" J* C! I9 u& j7 Nvoid CWorld::SetLight( BOOL bLight ): Y1 p' a6 A4 F9 m+ `
{
0 `( M9 {# B- c% n8 a0 w7 F //ACE("SetLight %d \n", bLight);) q3 N) ~0 w* e+ [
$ M% c ]% U+ m3 H2 j+ V' y7 e4 J4 h
#ifndef __WORLDSERVER 2 i: @" v6 c O1 t' F Y
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
7 v4 m: T9 s" q CLight* pLight = NULL;) g6 C8 u p0 K5 l) h# s3 y. b4 z# u- c
8 i: Y6 U4 m: G9 g D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
/ ~+ p9 o4 `, ] E2 Z& _& U* q( c: b' V& [$ Y
pLight = GetLight( "direction" );4 M6 }) z9 q: J& n/ L3 ~
2 o9 H8 Q0 j( \4 U, J5 Q#if __VER >= 15 // __BS_CHANGING_ENVIR) W% m( i" V$ v; U8 r
if( g_pPlayer ){
6 Q* i7 I! d& J ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );2 s. T, f$ P K% P
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!! b0 H7 k9 t2 S6 p* V. l
{
/ S3 i+ f( J% ?( B, ~- X: T. Z4 x if( pLight )
9 P' r8 a- r$ ]7 K4 _ {' X* x# U a8 s/ Z
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
2 J w3 k7 }6 y o3 T pLight->Ambient.g = pInfo->_fAmbient[ 1 ];; n! M0 |5 k! O2 E$ A! f
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];4 s" U7 U8 i) `6 H) {8 x; \( P
! j+ E4 v( e2 S0 P) N g pLight->Specular.r = 2.0f;3 c6 e4 G& L1 D& _4 V
pLight->Specular.g = 2.0f;
: k; S0 J9 p$ ^7 @3 ?, w, {4 i pLight->Specular.b = 2.0f;
5 z0 N, {3 @( E9 Q, I 9 H* j' S1 J0 _. a: h/ K
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];( F8 E/ Z2 a u! ]- a* R& \
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
% ~* s9 ?/ n# s pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
8 e: o# K$ u; P3 e- s' s6 d - N: ]! w5 n0 p0 N
HookUpdateLight( pLight ); ]& B1 x$ T0 u- G+ a& n
3 h3 F4 ]# H7 l. b" r memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; i0 d- G$ N5 l: a( A1 @ / W& I- A. Q. h2 m+ @; e9 q
pLight->Diffuse.r *= 1.2f;
5 P9 O) i. l0 Y J: P pLight->Diffuse.g *= 1.2f;* L; B. h4 U& |6 o% s/ e( f/ O( o
pLight->Diffuse.b *= 1.2f;
9 ], \' r! m! k6 t l$ T* f/ h, ~4 A: U, B J
pLight->Ambient.r *= 0.8f;
9 N' E; j2 A. K0 l pLight->Ambient.g *= 0.8f;7 w1 W3 i& X( m! r7 p" q' O* f
pLight->Ambient.b *= 0.8f;2 \: t3 g5 W3 {0 F' |3 c
) M0 L4 a3 S( {9 B memcpy( &m_light, pLight, sizeof( m_light ) );/ p2 ^1 }# ?6 a7 T* z3 @* u: s6 @
/ v P, W% L6 c6 S3 B ~) }- l, A D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' j' H, I3 Y8 v4 ?' G' j1 N$ S
D3DXVec3Normalize(&(vecSun),&(vecSun));, Y( \* l$ s2 i- K
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); % Z4 x1 w7 R2 H# c
pLight->Appear( m_pd3dDevice, TRUE );
( _' B. m/ M! ^% w7 k % }$ A# }( e9 g! J
DWORD dwR, dwG, dwB;& M- o" c7 D$ K+ J
dwR = (DWORD)( pLight->Ambient.r * 255 );- [! v A! H/ ?6 K
dwG = (DWORD)( pLight->Ambient.g * 255 );
$ Y) o T# T7 ^0 n dwB = (DWORD)( pLight->Ambient.b * 255 );
- v, a; {7 L3 N( I dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );2 ^3 a S- v1 y# S- U. H" K
}' b ?7 y1 q9 p5 p1 q
}: { A8 t. u' L( v) ~6 I
}- P: n4 x5 R, e Z2 a) ^! m
else
# a4 o8 s: a6 C: ?% F1 O: {#endif ; L5 g9 Z9 }5 n) W
" d. K1 K! y: t3 U4 A# m9 Y if( m_bIsIndoor )7 L' j* U( t% K% t, X0 {. v$ K9 e
{8 }3 d1 m8 d5 c* L; z+ E
if( pLight )2 q) l8 m# ~" K; W* a
{
+ g& F9 z3 i5 E5 m6 r! }/ H // à??μ oˉè* 4 R/ }$ r% q) {+ Z b% X( a, J" s
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;' f: b$ i) _# d1 A; f- N
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
; K3 r: V) H9 n, i a pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
1 D0 v& s5 E5 ?7 Y+ s
3 l9 K. k. J1 {8 D // oˉè* ??à? + Q5 m2 _' ?/ ~" `( n$ j9 ^* g; C* l2 m
pLight->Specular.r = 1.0f;
2 P+ |$ r+ j. ?; w pLight->Specular.g = 1.0f;
0 |1 s) n# y: Y pLight->Specular.b = 1.0f;
% x8 h4 s8 i5 m2 A7 ` // àü?? oˉè*
, _; P% w+ p8 R0 ~' F& b pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
' |! R1 l1 b0 {; v: ^7 G pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;+ B& c& q* x% b4 d/ u9 p
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;+ ^1 @0 l4 W) v5 c+ [5 M
* {6 U9 d, A1 L7 e
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
9 X9 C# h+ ^& \( I+ o* b. @ {
! x2 M! h) f9 g' W pLight->Diffuse.r *= 0.6f;
% k, c& [% q5 n. Z3 t8 c6 g9 ^ pLight->Diffuse.g *= 0.6f;0 `8 t9 A7 K5 D) O) |8 p
pLight->Diffuse.b *= 0.6f;* O2 Q) t( A/ h2 F, I. h
pLight->Ambient.r *= 0.7f;
a( M0 i2 g9 k# Z pLight->Ambient.g *= 0.7f;5 g- L: }4 ^: ~( v' M
pLight->Ambient.b *= 0.7f;* p7 D& H, P) v. J0 Y& n
}2 e1 ]. a" I5 w+ b
! I- \! e1 o1 M& w#if __VER >= 15 // __BS_CHANGING_ENVIR
# _. u. L% p% s if( g_pPlayer )
! {1 {0 y q8 ^9 ^ @ HookUpdateLight( pLight );0 N! e: w. h) }; H
#endif% m' Q! C! w+ _6 q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, l. N4 x% i- N2 N, T9 c }: ] B: X7 C: D1 Q3 ?+ I
pLight->Diffuse.r += 0.1f;
1 {( q3 @) [ B) ^ pLight->Diffuse.g += 0.1f;
$ [/ @" P5 U* Z' r pLight->Diffuse.b += 0.1f;$ h; q) k. F |/ k8 k4 ^* C
// oˉè* ??à? : v8 k9 l: N. G8 R7 Z) U, W* ~
pLight->Specular.r = 2.0f;' n+ u4 q+ p& w6 V. x3 }
pLight->Specular.g = 2.0f;; U" o% R3 ]. D9 v4 }
pLight->Specular.b = 2.0f;* Y, m5 Y, z! T7 H7 M4 f0 W
// á?oˉ + R1 l6 t! u: R J7 J
pLight->Ambient.r *= 0.9f;
* K4 O) {1 n* F" n% O2 o+ X pLight->Ambient.g *= 0.9f;" ?: c! D' M: ^5 b r
pLight->Ambient.b *= 0.9f;' G0 A# l* ^. K
- E" N% h6 N. |# J6 H
memcpy( &m_light, pLight, sizeof( m_light ) );9 A4 h2 ^2 c# J: l p3 [
0 j0 \9 V( u1 J$ \! ] pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
% O" H/ h$ H, w" `/ @! U) G pLight->Appear( m_pd3dDevice, TRUE );$ ^) j; A) }& B/ w% N& e5 a w
7 [4 a E; K, x1 Z( [0 ~
DWORD dwR, dwG, dwB;
`/ U, F& \) n6 B8 E1 x dwR = (DWORD)( pLight->Ambient.r * 255 );4 I8 o5 ~2 t8 z+ y
dwG = (DWORD)( pLight->Ambient.g * 255 );
" w* v3 o9 n P1 H. J4 [ dwB = (DWORD)( pLight->Ambient.b * 255 );! d! N" m R4 K. N c
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 ?) F* ?. [* _/ f1 x8 P }
) L1 ]8 [" C# V+ J4 C0 d! _" b7 o' B }
; c+ C* `9 F& V9 }: K, u$ } else- I6 X# r" t9 f/ @! s8 f
{
+ G5 M- E; C1 c4 W if( pLight )
5 {! R' ~- m! N5 A( a8 d' H, w {
5 a G5 l4 j( {$ j6 t
3 R! Z; H. x- a6 Q+ [; @% ` int nHour = 8, nMin = 0;
% t% |# @3 ~# y; Y' N) R #ifdef __CLIENT
# }! |' Y8 V2 l; B // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
$ B- v) m; l$ A nHour = g_GameTimer.m_nHour;
8 D* ]6 Y l" v nMin = g_GameTimer.m_nMin ;5 D5 \9 S3 J F7 F' Y6 ?
#else" G, [: S0 D( V+ w
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.# r" h/ y! X1 U8 z7 z5 a9 P5 D: {
if( m_nLightType == 1 )! y {. K0 l6 h' A8 \9 {
nHour = m_nLightHour;
" T9 y- C5 f4 T& `8 f #endif
$ \7 J' d# B9 y9 L* z: k nHour--;1 }' Y3 A7 ?- E! [" S) H$ J4 ^
if( nHour < 0 ) nHour = 0;
* c8 L! i2 |& Z3 A: u; L) J* s if( nHour > 23 ) nHour = 23;1 Q, p% r6 V1 u4 L. g, ^( _7 {8 I
& E' ^, {" a9 T) D6 @3 h' S //if( m_bFixedHour )
/ e3 }" g; z# \6 n- k0 N5 a // nHour = m_nFixedHour, nMin = 0;9 z& V$ D, R# @, _3 C( e7 z
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
( x8 W) E1 W Q' U. M LIGHTCOLOR lightColor = m_k24Light[ nHour ];( Y2 O. i9 T% g6 c
9 Y6 j- T. \# J8 w" \) a& @: A //m_lightColor = lightColorPrv;( {6 p+ N4 p( ]5 |0 F2 N, ~( o0 U" m- |
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60; N7 ~) d6 A+ U+ [: t
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;' G. M( i8 q% [/ y* B$ u4 D
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
5 K; `6 _1 t9 L+ [* F7 O. r0 T& A lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;; R I) @$ |' K( \& O2 Q6 X$ T
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;' M$ N2 E1 B" D! _ }, p- I( {
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
# q( V5 R; t! T- V6 } // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)2 b% |( U3 j$ t6 ?- r
3 b% G Q, z+ } // à??μ oˉè* $ r: y! L# A$ \' i7 E
pLight->Diffuse.r = lightColorPrv.r1;
7 K7 X# o* j+ l2 h, ~) N pLight->Diffuse.g = lightColorPrv.g1;
, ~% v- y! t k- X0 c q: v pLight->Diffuse.b = lightColorPrv.b1;
( U+ x d+ B, T: p" U( S // oˉè* ??à?
' y# @0 B* a8 S% B' K8 K4 }" q2 c, [ pLight->Specular.r = 1.0f;- M: {; J( \: ^5 s. x2 k$ Y; W7 P' I' b
pLight->Specular.g = 1.0f;* P/ a( C; C. i/ u4 d ~4 k
pLight->Specular.b = 1.0f;) j2 e* \( K# o ~/ @7 v
// àü?? oˉè*
5 n9 q1 q/ o) n; T' ?/ B2 a, t4 u6 s pLight->Ambient.r = lightColorPrv.r2;9 V" [, P# f1 h
pLight->Ambient.g = lightColorPrv.g2; b5 z3 Q; [3 r! r$ ~* j
pLight->Ambient.b = lightColorPrv.b2;
/ i p* b0 H. L3 v0 m' }
9 v, @; B3 ^! x& e5 h6 G, n5 I if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) U' f! x. f% X9 G
{2 S, V {: {! b( }
pLight->Diffuse.r *= 0.6f;, ~, t0 S% D6 {7 ~( W
pLight->Diffuse.g *= 0.6f;- o! V, g8 b' W3 ]/ F1 {
pLight->Diffuse.b *= 0.6f;9 M* y5 } G; X$ |" |
pLight->Ambient.r *= 0.7f;/ L8 z. U4 a. E( m! S. @! Q
pLight->Ambient.g *= 0.7f;
5 T( A# Y; D; ^! ^) f pLight->Ambient.b *= 0.7f;1 U* z d6 T; K4 Y5 a: ^" M
}! b# c9 m3 `' |! C/ H. ?$ Z* z* v
; W4 {5 Q: O" n. }0 p$ b" S
#if __VER >= 15 // __BS_CHANGING_ENVIR, U- N+ ?$ G# O
if( g_pPlayer )
- z& P7 f/ P/ H/ W( Q4 l HookUpdateLight( pLight ); ; E- a9 y4 X9 d' h
#endif
8 q. ^, D4 x1 \! P1 P- v1 T8 T memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); k: N$ G# `# c4 \ n" U C# g9 p6 T
; v" { n/ r9 o. F. K( D3 X# V/ s#ifdef __YENV
# h& E( P) Q$ M, |1 z; u pLight->Diffuse.r *= 1.1f;8 h9 Z3 |6 X! ~! r2 ?" c/ v
pLight->Diffuse.g *= 1.1f;3 V# r; ^& j* P/ U& h
pLight->Diffuse.b *= 1.1f;
3 {9 d. Q0 [! F // oˉè* ??à?
) ~5 D5 W1 Q8 |; L2 _; ] pLight->Specular.r = 2.0f;
7 P% A$ S8 L. E- M. r- m pLight->Specular.g = 2.0f;
4 t- r2 }/ d% A. q* q pLight->Specular.b = 2.0f;/ [4 C* H, R9 k3 u& u) P/ c
// á?oˉ / K# w+ r5 S) b0 F4 o7 g) t: b
pLight->Ambient.r *= 1.0f;. S/ F4 S2 T2 @, c- ^! M8 w" b
pLight->Ambient.g *= 1.0f;
) H# ^. j" Z' |4 k* {' a" M- D pLight->Ambient.b *= 1.0f;
* [# ]2 b: N8 G) `4 j/ @#else //__YENV
+ x/ o5 U! k5 R, a5 B pLight->Diffuse.r *= 1.1f;* h: F& p5 q& w" {6 p( H: d8 _
pLight->Diffuse.g *= 1.1f;' j8 G- F/ S' c" ^$ P4 d
pLight->Diffuse.b *= 1.1f;, f7 D! K6 j' T) @
// oˉè* ??à?
/ f& @1 K& d; q, ~ pLight->Specular.r = 2.0f;3 `1 s& B1 t. `4 t/ n) P
pLight->Specular.g = 2.0f;- Q, y5 }" g& |. M( Z
pLight->Specular.b = 2.0f;( C6 Y1 P5 f3 i0 d: n. U! G
// á?oˉ 5 H' i6 u9 O; {0 y$ B
pLight->Ambient.r *= 0.9f;( a0 _: w$ ]2 V. S' n
pLight->Ambient.g *= 0.9f;! g3 ^; [5 s( ]* S p- i* f! v
pLight->Ambient.b *= 0.9f;& ~0 `/ t: b% n; \1 d0 i9 X1 p
#endif //__YENV
* y8 I0 U ^# o- b - H7 `4 Z4 U; s/ H
memcpy( &m_light, pLight, sizeof( m_light ) );
* l6 m/ Q. k$ Z) e s: f8 t+ u ; |' W% `2 F' O- ~; k, y
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);$ j# U& i9 }! z9 h3 U9 \
D3DXMATRIX matTemp;
- [. ]" G4 y: j8 U$ I2 ]2 |% a+ a static const float CONS_VAL = 3.1415926f / 180.f;
. {* u* V7 ^" y, z" a# U: ^
6 Z1 K/ a3 d: i* _# B D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);7 ~$ x$ |( W+ _ r+ r2 a) V
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);/ x/ h( T& l* E# W! k
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 7 V) Y3 S% [/ ]" s7 F2 T# a
pLight->Appear( m_pd3dDevice, TRUE );
' ^6 N/ v+ v% q# a! P9 r( [. b) V2 W0 E& p
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
3 P X4 }5 O5 K! X8 m% C0 J // D3DXVec3Normalize(&(vecSun),&(vecSun));( y- _9 C, n: i' l) u
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' e! O, f0 ~" y# Z2 h4 ?, z5 c4 p1 p3 G1 w' J& g+ k/ o
DWORD dwR, dwG, dwB;
# [4 h# V7 p$ C% z1 Q9 } dwR = (DWORD)( pLight->Ambient.r * 255 );
( ?% @6 {5 X% U9 M9 b dwG = (DWORD)( pLight->Ambient.g * 255 );; u; Z+ W9 Y$ @2 l5 @+ Z$ C
dwB = (DWORD)( pLight->Ambient.b * 255 );
2 l' A% c; [) X dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 r8 s: b h4 N% \ }9 }) G0 j2 @/ u) ^
}) [; x/ ? S! O
8 H; A9 ^1 t8 v. f0 E: ^
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );) h& T, W! X; 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) );
& y; @) \4 v$ C( c M$ ]' ? ::SetLight( bLight );
Z( L# U! ^/ H. U7 i
( R( \% C4 n0 p6 l4 A5 V* l$ ] // ±ao? ?D?í???ó á¤à?
v, h4 {$ Y K, r m_pd3dDevice->SetMaterial( &m_baseMaterial );* y9 l8 A* G( R0 D1 b/ _) P9 L
$ O# Q7 s y3 u3 B; Q
#endif // not WORLDSERVER6 f' D6 e+ Z% x
}
; u7 ^7 M7 [; O& P, k1 p并更换0 ^# p4 A% Z$ B
Code:/ J5 C/ q9 j( p" @# H
__FLYFF_INITPAGE_EXT
4 X! T1 H- D& i& @$ w0 s) Q& Y: W定义
) k) E* c5 `0 L& C. Z$ L/ S- p# r+ b* N# E6 V V
7 c. r/ U- G% A _ }( O5 O k. j. G! E7 E
6 M5 L: M7 ]# M4 ^现在终于删除我的狗屁加速...6 q- j5 ^8 F9 O6 L* C* r: S1 T
$ z2 @5 Q, G# C+ g/ B4 s& U
& E, l. W$ o9 U. G9 T9 Z1 m3 h- j: B8 w. L1 {
|
|