|
|
食品车:; Q! R1 e" U) ?, \
尾翼:
! \3 f' Z2 {. t4 s6 t7 k* k$ ? ~: w) G9 {9 g k" ]4 m9 h
代码:
7 P! ~( B$ \1 l' O i" ACWndAutoFood::CWndAutoFood()
1 G$ V" h$ @& O- D, _; q7 n6 h{
* r' w+ h$ W9 N8 A" E8 w7 M' S4 X m_pItemElem = NULL;
' ^" `$ [' Z2 |+ ?+ } m_pTexture = NULL;
- F- s+ O& c# h6 A/ x+ [ W/ w$ \/ i bStart = FALSE;
6 {+ [4 m7 V+ k: ` T$ P, s0 z+ [1 l}0 Y9 V, O& F8 S% \
7 z9 B& n# l; t
CWndAutoFood::~CWndAutoFood()
% }, }; }) S0 B! T{
# M* c" [$ Q0 C8 f5 ~ AfxMessageBox( "AutoFood ist gestorben " );) U& E' C- R' U+ U; L
}, L8 G) J" | L& l( N: s5 G5 U3 N6 P7 Y3 v
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
" \# y, i1 O/ {' }: L9 J+ ^{
" x; g( O; t. q8 X w- C" } return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
7 Y6 Y1 r/ l) f$ w1 {& |}
- g' x# _) A8 R3 i( f/ I7 a9 w. _( e5 x/ J
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
, h% H, w2 M! Y& ~8 r9 p {{4 Z; s h ]; h% k( n# U
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
# K# `- K1 H7 A S! e$ U" ]( G CRect rect = pWndCtrl->rect;
0 s4 x/ ?- S, }& |& I. N- i if( rect && rect.PtInRect( point ) )6 ^& N' ?+ H" ^" K& c
{! ?- L5 V" j# U7 d3 d$ _
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );0 ^2 d* c" [9 |, u4 w- N) D& T5 P
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
* @& S( M3 ]; Q* G+ e1 h2 w {# s; i% W) |& d! ` e, Y
if( m_pItemElem )
7 \# q6 U2 A( ` {2 ]+ C) O; q) @$ M
m_pItemElem = NULL;
+ w5 c. z6 @4 k. q3 V }2 I- }0 H% v1 W, \
m_pItemElem = pItemElem;
6 N! b' @2 e! @- N m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
& \8 D( C7 h% p3 Z# _: c }else{
7 D! H% k: n' q+ i% j: ]; S SetForbid( TRUE );6 \: S) j! V* ?' d7 r
}
, S# x& G5 e$ P. r8 u4 x! M6 M }else{
E* F3 R- c0 G# h* U- H4 t r/ Z SetForbid( TRUE );% }/ Z: }" i! S, T0 {8 a
}
N: ~! o" k; h: r return TRUE;
6 c$ S3 w1 {& a8 |% C$ P}
& c- A' U. V3 B( A9 f( @* l* [& B4 n7 T
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
7 ]8 O' h" [$ i, l{
' P; I# G$ o) H; ]- P' n switch( nID )
y* O- e/ }- U. M9 C {3 w* |) f: m: u/ m, K2 i
case WIDC_BUTTON3:
8 O& C" W8 s! t7 ~7 i {
7 q5 w$ N2 H# G6 \' S9 l) F bStart = TRUE;+ P3 d% z% y$ [( U
break;$ r; V- ^% H. ?8 ]( ]0 @- W( k
}
, a1 j F% a2 o case WIDC_BUTTON4:
( `, I( c5 q7 F( \ {
2 j; R: [; a# S; J$ B2 S; f bStart = FALSE;
3 E# a( _( @' g9 ?3 d6 J _5 C break;
+ t' H3 f4 w7 W y( S( S }0 }- W9 p+ `8 O
}2 l7 \# q7 `9 k* ^* X. @" N
return CWndNeuz::OnChildNotify( message, nID, pLResult );- _3 z( m& K! f9 ^. H
}
, O# U# U \4 _$ ]( q& Yvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )6 q( _4 d7 F/ J' G7 Z% d V( Z0 M& U
{
' ?5 _/ I, R0 U4 ~* b CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
+ V" o' q/ q+ B; d0 ~* j2 L+ B! p if( bStart || !m_pItemElem )
/ B, E. X7 ]* S, e- F! x {; p7 D; n5 Y/ k) E: f
pBtn->EnableWindow( FALSE );
0 [; L7 @1 h" i- O8 m }else
1 z: f+ [9 F) f) }" Y! G4 y pBtn->EnableWindow( TRUE );
: h7 K/ ]% u- ~- w4 n/ O" ~# @ if( m_pTexture )
$ `( r9 R8 U9 u, y {
" j0 b: }/ k8 u: O LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
: X$ \0 G. ^7 k if( wndCtrl && wndCtrl->rect )
' q2 g1 r. Z1 b8 X' F% \( q% W {& Z/ @ k6 \1 L5 p' W
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
+ u5 Z8 S2 x Y3 r$ Y. B7 g6 U% c1 w }
7 Y% R0 t/ M2 Q! E }/ P5 |( b5 I/ ~' ~6 w
}3 E& |- P, [' W( i5 x( v/ n. T Q
; \+ Y, V$ R3 IBOOL CWndAutoFood: rocess()
r' K/ [7 w/ S, v+ ]/ ?{- U4 Z- F% \, M$ D) a; f
if( bStart )( w& e( c4 w( q
{
e! g/ }) l1 I0 ? if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ); n' O/ D. S+ l7 t
{6 m8 ~6 Y- U3 X0 q
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ); K9 u% V- ]5 \, v- I# M' J
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. D5 c' j: v+ q1 K) Z4 Z
}else{8 n$ Z" g& q t, T5 W* I
bStart = FALSE;
) B. } J# `' v) g# C+ I m_pItemElem = NULL;
* e6 ]! A4 W, i3 | }, Y' ?( I; p1 E, j, f9 y& Y% a( a
}! F4 @* g8 k' u/ p* z$ }
return TRUE;
4 T# s' b! B+ `9 F3 N6 W}
, m6 K/ F2 X" ]) J. U/ s3 K1 a" [9 C& w7 N9 f% n( ^5 ~
登录视频废话:
& q3 h1 B8 `" W* K' X+ ~" o. o. f尾翼: {- l; V) i" J c3 _5 |
Y# U7 t. C2 p- t/ K: L代码:" o3 A2 v; [' T5 d; _) [
* Z4 I- w. m o( T
void CWorld::SetLight( BOOL bLight )0 x0 d' R6 M) j4 }0 S* n# b
durch1 G! ?4 b7 q0 N- O. p# a5 u
Code:" h) d1 L* |4 w4 ~7 X3 g
void CWorld::SetLight( BOOL bLight )6 r8 c; V2 ]% u& E
{
5 A9 K7 n2 T1 e0 a# F9 k @, Q //ACE("SetLight %d \n", bLight);
2 r3 e3 R* H( ]8 F2 c - h" U3 Z8 C3 p3 S3 ?( _! Q& q1 {
#ifndef __WORLDSERVER
9 _8 A6 g- E6 B2 D# u DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
( m/ f; v+ s9 l3 D9 t0 Q7 }) s CLight* pLight = NULL;
& y, V6 O4 X* o5 Z* ^$ A
: _/ Z% }& A) m; Q D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
0 y+ R: S7 b$ n7 _! V. Q+ |& T$ D$ W1 r" u4 X& D3 Z) ]9 |7 k
pLight = GetLight( "direction" );# ?9 f$ D, }, G6 ^, ~3 Q# O1 g S& w% F/ e
: Y, \8 H; t6 a3 ~" l
#if __VER >= 15 // __BS_CHANGING_ENVIR
8 Y$ y1 {2 M0 a: @: N9 j if( g_pPlayer ){& ?7 {4 n+ A* m' |
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
- M1 \& |# P" n5 g! G( w- S6 L* \ if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!! M8 Z. p0 E- q7 T+ j3 G* a
{
1 j! I; q& M. t2 d8 \+ ~# P if( pLight )
1 K. v" V- C$ O0 d {
( d2 c9 |& \) ^ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
" Z2 v8 O2 d& e4 T2 J pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
- X) y/ |/ y* p- s8 N" r/ u, ]+ H pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
. m+ n7 z' \4 j( W- _) Z0 o4 k- o; g8 K% y' J# [
pLight->Specular.r = 2.0f;
* q& J. `3 W1 I: `3 {+ p& r pLight->Specular.g = 2.0f;
' |& B$ n8 N. a pLight->Specular.b = 2.0f;
E! a! J* n8 f* w0 O1 E! D c ) r- f' [) l; Z8 T
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];* L8 }) W# Z0 G+ d
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
% F, C3 j6 J: C1 [ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];& b) s2 b7 l9 P0 A. t2 f- J3 ]
3 D% y) X5 Y9 L" g4 I. M4 O3 H- L HookUpdateLight( pLight ); + _( d2 O+ T: ^: j4 s
8 {# _3 q8 l1 I2 |* p memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. Q2 @& n1 y; n/ [( V
% t$ s/ M6 @3 o% k+ Y, w- x
pLight->Diffuse.r *= 1.2f;
% G7 A, I4 e6 Q' m6 F pLight->Diffuse.g *= 1.2f;
3 J7 L# j3 j6 v* f4 O pLight->Diffuse.b *= 1.2f;! N$ ?8 t) O8 y, v
' l/ @/ V! L! M0 t
pLight->Ambient.r *= 0.8f;
8 l6 ]+ l( g: z: m3 N7 C pLight->Ambient.g *= 0.8f;
, X7 ~' d6 `* w% I3 J# { pLight->Ambient.b *= 0.8f;: R4 n; K' r5 T6 L0 Q$ [
$ n; m+ Z& ]9 N8 g3 C0 j# C3 B
memcpy( &m_light, pLight, sizeof( m_light ) );7 u3 ]# \2 q3 F" O! [
7 p3 \) D/ u3 b, f7 J+ ] D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& M) `) K' r9 ^# v+ x: ^
D3DXVec3Normalize(&(vecSun),&(vecSun));9 }; R8 n* `$ e$ n7 i
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
) U" V% v3 ^. [; ]0 B; ]/ ] pLight->Appear( m_pd3dDevice, TRUE );
6 p# z c0 F4 c+ Y( { $ x7 h/ @& M7 C0 Z7 D# X% d% z [
DWORD dwR, dwG, dwB;
* I" G& H2 o; v7 j) |! P, N* Y dwR = (DWORD)( pLight->Ambient.r * 255 );0 b O3 K( o- ~0 U8 O
dwG = (DWORD)( pLight->Ambient.g * 255 ); C1 ]9 _9 K% x
dwB = (DWORD)( pLight->Ambient.b * 255 );
7 _% X) o5 l( P$ ` dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# v8 s/ D+ g6 X: }& c
}
- J- A( \3 R2 o+ U s+ e9 D. Q }
+ j. W/ O1 |4 Q. m1 [ }* N, r! d9 K D$ U/ S3 h9 B
else
2 h1 s1 t0 y( Z' z#endif
; i, `! n" T* b# z& w( Q* z9 H) Q$ }
if( m_bIsIndoor )
4 \4 J. s3 D( v) j {8 t+ a) ]2 t2 S/ ^$ [. ^$ Q8 n" [
if( pLight )
) p! Y; j- w8 q { 3 ~+ O/ m# p5 p9 n! H7 \
// à??μ oˉè* 2 _2 p5 Z& y* P8 l/ P( @
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;& ]: S5 Q" M1 u3 g* P2 W& s8 ?: N4 A
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f; Y, C, z' \; }3 z* l' q2 u
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;4 |# E) n, D' v
2 t* r! M& h# }3 Y! t4 T- R // oˉè* ??à?
+ @. i% H d# }- _( F( r pLight->Specular.r = 1.0f;
, a Z# e5 p6 ^- L8 M pLight->Specular.g = 1.0f;
6 k) _: T3 T1 [ b |/ y pLight->Specular.b = 1.0f;& z y% p( B# A6 A9 x
// àü?? oˉè* / J" _) ?2 T2 K3 Q
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
( o! A7 V. p! \+ N$ z pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
+ c% W% |0 @9 u4 S pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 @: }9 P2 U+ @0 z3 k! @8 B. w8 h
/ Y3 \5 C7 l( p' n5 G4 u
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.& U& G' r& T: L q7 ? q
{
. d2 i6 ?0 j w! D) g1 C p- F pLight->Diffuse.r *= 0.6f;
1 \7 r$ F& d+ G' ~" N pLight->Diffuse.g *= 0.6f;/ M$ v: O! O1 o2 w2 S. T
pLight->Diffuse.b *= 0.6f;
' ?9 C7 v; U- c/ M6 B* m+ A8 l# d! q pLight->Ambient.r *= 0.7f;/ @0 q$ H" x* C" f( C
pLight->Ambient.g *= 0.7f;9 c# r1 Q3 b% L t, T( c+ b
pLight->Ambient.b *= 0.7f;% E0 o( x/ V: s% {$ ^/ E; X
}8 \- E/ a4 h1 |2 _
/ X5 Z0 a7 a; B" A0 C
#if __VER >= 15 // __BS_CHANGING_ENVIR% s* e% h3 `* e
if( g_pPlayer )
9 ^3 m* |. `' R HookUpdateLight( pLight );
, T2 M% x: g0 V! |- v* y( X/ s#endif
* c7 Y2 J- H& t; _+ O+ {% E. M memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
+ \" x/ b$ h! f# V7 [/ C/ j9 E. t" i- y6 s: ^# O
pLight->Diffuse.r += 0.1f;
$ `* w; ^1 H/ ? pLight->Diffuse.g += 0.1f;
6 i9 B" x# _8 P; }; M1 u) @ pLight->Diffuse.b += 0.1f;
|$ W( y" N' `9 r0 Q) I6 j // oˉè* ??à? ( q1 j; m! P, k7 S( W; S8 a
pLight->Specular.r = 2.0f;
" _2 K+ V8 }% S8 `6 }& n pLight->Specular.g = 2.0f;3 o7 D, J2 b9 Z6 D1 u
pLight->Specular.b = 2.0f; B1 C/ L% w/ y# ]- x/ N
// á?oˉ * w5 O& E8 k* X2 x
pLight->Ambient.r *= 0.9f;
1 X" S9 P- r: U" B h+ U pLight->Ambient.g *= 0.9f;
6 |: K) ]1 W6 K" T! c' Z' W) ^: b( B pLight->Ambient.b *= 0.9f;
+ G7 s% e: t) \7 `
" S# ~+ U' ~' V( Q0 Q: m memcpy( &m_light, pLight, sizeof( m_light ) );8 x+ [8 Z( h$ i! e9 i3 y( U) r4 A
& Z$ |! J" K/ D: B3 m0 d. [$ O
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );% \: }' s& J5 [% Q a
pLight->Appear( m_pd3dDevice, TRUE );
/ u- Y4 S+ \7 l" o" Q+ T- p ' r% Q) l# e2 m
DWORD dwR, dwG, dwB;4 ^* m) y, S, J" K- p2 s
dwR = (DWORD)( pLight->Ambient.r * 255 ); p' @7 n% ~8 Y1 J$ G- v v$ [# K; S
dwG = (DWORD)( pLight->Ambient.g * 255 );
( s6 D% R. b6 S8 o dwB = (DWORD)( pLight->Ambient.b * 255 );# t D/ [1 G, A
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& K- D% O, O3 v/ q
}0 n2 s; r- r+ n- J _
}
& Q6 c! w0 u* a; L$ q( {% n else, ?* q& F- T" A
{+ B: F- I, X% D# k" K5 I
if( pLight )$ S" ^' k, P8 l4 h) I
{
! M" ~8 _ c% }5 T/ R+ ]& v
& G1 |. l$ l& n0 W# c int nHour = 8, nMin = 0;7 Q( v4 Q9 y3 q9 o4 N" {. M" i3 ?
#ifdef __CLIENT3 \5 Y6 _) N% J1 f/ }
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ( ]& M- u( X, j5 _( H
nHour = g_GameTimer.m_nHour;
, j0 s1 k4 D% A. I: |' T) z nMin = g_GameTimer.m_nMin ;
' I: t) x- l! _2 X* y" G# f #else+ s2 S8 L/ P0 {3 e. e, I$ ]
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.' W4 Y* \4 i7 a: F
if( m_nLightType == 1 )0 y* {& g# |0 h: a# J: z
nHour = m_nLightHour;
! n3 M& s; a, ~ #endif
1 `( e3 k; _, O8 } S nHour--;
7 i) i6 x/ P" j/ U if( nHour < 0 ) nHour = 0;
6 ?+ l* T0 L j# O& S+ b( g if( nHour > 23 ) nHour = 23;
- X0 y( R" q4 r# T2 k
* p% P/ A$ ]% i9 z7 c //if( m_bFixedHour )7 j6 ^, v. E& G0 C
// nHour = m_nFixedHour, nMin = 0;
8 {3 n+ O% t6 v* @% |% i* t1 Q LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
$ S! b. H$ d4 ^6 `- H: T; I LIGHTCOLOR lightColor = m_k24Light[ nHour ];
( _2 F s7 z, {7 O) N; }7 s5 A. F4 [, y* ]3 W! @
//m_lightColor = lightColorPrv;4 ?# u7 Y+ a* P$ h- Z- @/ d
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;) K( s( K9 M, Z3 [+ g M
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% A& |: V; i. x8 q6 [5 I lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;! x8 ~ r0 d& @$ J& n; ], ~% u
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
$ v9 { C6 V1 @' D y' k% k lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
0 R; n5 `5 L* U lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;9 h! [' n N1 K( ~7 o
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)6 b W, m( y& j1 `8 x
' i1 M( V& z6 D) j // à??μ oˉè*
# {1 C, Z1 w1 y# g) |8 A! Z pLight->Diffuse.r = lightColorPrv.r1;
# L+ W" L& u! G0 O pLight->Diffuse.g = lightColorPrv.g1;
- D J! M& I% [/ J+ H6 ~+ R8 ` pLight->Diffuse.b = lightColorPrv.b1;
9 r [1 ~9 O9 ]/ {" {; v6 v // oˉè* ??à? # j3 L5 v- U7 l) C( }
pLight->Specular.r = 1.0f;
& c; C1 |' P+ x7 S$ s pLight->Specular.g = 1.0f;
! s1 c: t! L* U9 v9 O3 ]% r6 m pLight->Specular.b = 1.0f;9 u7 E" b3 W `' _' Q# t6 b3 \1 I
// àü?? oˉè*
. }2 L0 R0 ]) R* C8 Z) O& L6 _ pLight->Ambient.r = lightColorPrv.r2;
' e% w& N' B* V8 B, X4 H pLight->Ambient.g = lightColorPrv.g2;5 ^4 U8 C8 i0 y) h
pLight->Ambient.b = lightColorPrv.b2; X/ K8 r- g$ g+ V4 s( }- q
* }2 p' J9 `% \( k8 I9 \: } if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 H1 V* N2 X, \! V7 C2 D
{0 o: [( H& R& T6 g. H
pLight->Diffuse.r *= 0.6f;
- |% D# c; @# f6 S2 j pLight->Diffuse.g *= 0.6f;! Y/ t |/ X0 N. Z+ B
pLight->Diffuse.b *= 0.6f;1 N0 A7 Q% z0 O6 p+ p; d, _3 |; L
pLight->Ambient.r *= 0.7f;8 Q8 ~2 W0 m3 e0 l1 g8 d2 m1 G+ s0 J
pLight->Ambient.g *= 0.7f;
V) v( @% E1 F pLight->Ambient.b *= 0.7f;. r' x7 m$ l1 [3 b+ g! c
}
: i/ c1 g N f) n7 |; b) U# e 8 C, G) M- x8 \$ P( ~
#if __VER >= 15 // __BS_CHANGING_ENVIR
% X' b& S' l# y8 @! H. w if( g_pPlayer )
- P) x- ~' ^, f$ I8 X HookUpdateLight( pLight );
/ v$ T8 [ @/ L+ U2 h" c#endif! |+ I' `% x% n& E1 @% t
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ S( w! \8 B+ C7 `: z! X$ I) K. P9 @. R# g; @! k# f# D1 W* Z
#ifdef __YENV% ~" h7 Y, ^9 X% x, U
pLight->Diffuse.r *= 1.1f;& ~9 q5 } Q/ n: v
pLight->Diffuse.g *= 1.1f;3 H* x, H) q9 g. O5 B- t
pLight->Diffuse.b *= 1.1f;
+ p# A$ J3 F6 s3 j g // oˉè* ??à?
' C# Y, D; Q3 S: ~ pLight->Specular.r = 2.0f;5 u9 u" C9 ]( j2 }9 u
pLight->Specular.g = 2.0f;. ]: [2 D J# f6 ]1 k5 H$ s
pLight->Specular.b = 2.0f;3 R! U/ r4 ?" u$ T
// á?oˉ
! n: ]( [2 g' V# y# u. `3 p7 b3 E8 B) d pLight->Ambient.r *= 1.0f;' {, d a% R( `/ c% \5 w
pLight->Ambient.g *= 1.0f;$ h/ {4 h3 }6 J! a& X% D
pLight->Ambient.b *= 1.0f;/ R* m1 b9 p3 q# T1 U* ?9 q2 n
#else //__YENV
" p7 d6 q! {$ Z pLight->Diffuse.r *= 1.1f;
2 C/ P( |4 U( w$ k2 B) e pLight->Diffuse.g *= 1.1f;0 c$ S4 U6 R0 x5 S/ z3 J1 j
pLight->Diffuse.b *= 1.1f;
. y R( q# |; N% ?4 |. H; M/ K, v // oˉè* ??à?
! {9 A1 p* w' B4 c$ O" A pLight->Specular.r = 2.0f;$ ]/ W# S( G6 _& s
pLight->Specular.g = 2.0f;8 T3 e% c' |" ~4 l6 I
pLight->Specular.b = 2.0f;
8 P& O, q0 H: O# o# Q // á?oˉ 9 G/ D* }7 a2 W3 q
pLight->Ambient.r *= 0.9f;! g0 e2 c$ i+ M r$ _( f- A: T
pLight->Ambient.g *= 0.9f;$ t6 W* e4 \! O ^/ r/ m5 ?5 k
pLight->Ambient.b *= 0.9f;
. S5 c5 m' `7 j. h6 n$ E#endif //__YENV
, i6 E6 I% n! k2 _% c( k 7 {; V! D1 n0 @! G; r3 l$ C
memcpy( &m_light, pLight, sizeof( m_light ) );
+ t3 z- [+ M' d- x+ y' c+ O) p
/ N& N5 w( f1 y, H+ A* O4 l D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
: c$ S- K& ~) n" d$ ?+ ? D3DXMATRIX matTemp;
7 M, ~7 a H7 R: L. @6 U1 i+ c" B8 @2 I static const float CONS_VAL = 3.1415926f / 180.f;
7 g% k3 n7 Z/ |$ Z" v5 Q1 n! t2 I
3 u& P# N: G$ i8 d& c. t- D) k | D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
9 o L# b& B$ {8 Y+ q+ w/ a- l9 w D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);( E1 R4 F# s$ {( V/ f
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ) Y& Q* J- ?3 Z4 D9 s4 C
pLight->Appear( m_pd3dDevice, TRUE );
- g- r, N3 t$ I; K' X3 x
! a. ~& o: {& t+ w& F4 c k3 z { // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
* d/ X: m$ O- F- k: P1 x: l! L X // D3DXVec3Normalize(&(vecSun),&(vecSun));/ p) k; u. T2 f; B$ S% @9 y
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 T/ {; } r$ Y5 C; D: B) g$ K
( N1 J% U4 ?0 h+ i- t DWORD dwR, dwG, dwB;
2 \' v/ S, `. @8 o0 o i dwR = (DWORD)( pLight->Ambient.r * 255 );
8 H" V# h/ ^; N1 o! x# H3 y- o, Q dwG = (DWORD)( pLight->Ambient.g * 255 );2 g" _% a' w/ w \4 \0 u# n
dwB = (DWORD)( pLight->Ambient.b * 255 );
g [4 i& ?# l# p dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); & c# @* o* y7 A3 ^; O# n7 [6 f
}1 ~: z/ Z* S, G5 H! H3 V8 {
}
1 r6 O, x9 d" s: m/ `* k; b2 R C
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );) ]4 f9 Y& C7 H
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) );9 ?* ]4 O: J( u: ]6 e
::SetLight( bLight );
1 Y9 i# P" w5 R, ]9 Y% G: _! |9 k* c) B! l0 _; ?1 F* P! `
// ±ao? ?D?í???ó á¤à? 8 Y4 F8 O# E* H) l7 ]
m_pd3dDevice->SetMaterial( &m_baseMaterial );3 h8 C) }* w$ w8 j0 m3 W
% z8 l: I+ ]7 d5 I. a/ c& c#endif // not WORLDSERVER
4 ^/ y0 ^4 p6 S: t, L" u}, F* |: L8 Y& I( q
并更换/ L3 o x+ X5 e. L( `* C! E
Code:
t0 q. q1 o8 i: l% n W__FLYFF_INITPAGE_EXT; E$ P2 Y& K. g( s
定义/ {8 M4 G8 I# C
/ [6 x, c. z. |
9 u( M% F( l. v1 Z3 y: p9 L
. p. l" q$ j+ U% N: q/ b+ i/ F% ` V( y# R. T
现在终于删除我的狗屁加速...: M: j% P1 Y M3 z/ j/ a- i
E/ ]4 W$ @! o5 q5 M' w' T' C
P+ }1 M. U" O- F% r& b+ r6 C8 P3 a
|
|