|
|
食品车:1 s( u' `1 J% g0 f, Z' g
尾翼:
8 E' w! R6 u+ j$ ]. ~6 J0 n6 T- Q' ~7 B. ^( \
代码:
3 Z/ J" I* f8 h( a, F1 JCWndAutoFood::CWndAutoFood()
& k/ p% k& L: ], M* l# q0 K$ P. Q{
+ |7 Z" b) o, E% p2 I m_pItemElem = NULL;
& J3 m, ^6 E- m, y( ?1 T: T* ~ m_pTexture = NULL;$ \& d; q' a2 k
bStart = FALSE;
* q* y: s! q& K2 @, C, e2 {}
( w" j5 s' e9 y8 Y* ]6 ]6 h/ ~+ I0 q
CWndAutoFood::~CWndAutoFood()# A# Z" }- h" m3 n! a" z
{
8 m6 j+ Z0 Y6 w/ {1 U0 _ AfxMessageBox( "AutoFood ist gestorben " );
& o# }' l- T( i# e}
3 x: L" F: `+ ?8 A( eBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )5 z# s7 e+ o3 j" t! \' A2 w; u* |4 k
{4 Q/ P& o G. T/ t1 Z+ d$ K* b. `5 z
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
- n, j- r. I0 {. A" J1 T}( W9 y' n, x( Y" k
' g4 m/ Q7 ^0 B' Y6 e& j" u
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )( n7 c' I. U5 ]4 ^& ?
{: L2 x: z' `7 o8 v8 w
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: G* k) O j4 f+ g9 v1 _! T3 D( U
CRect rect = pWndCtrl->rect;
A% m4 w6 [* p: h if( rect && rect.PtInRect( point ) )
* P4 T$ V0 `* O" S8 A" e) ]' z4 u& Y {
/ e7 K& A0 d4 w$ x0 ` CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );# m0 T/ T/ p/ ^5 o( p
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
) l1 `/ i6 J8 j3 |; r {& \+ u2 S9 s4 V
if( m_pItemElem )
: e2 Y) j0 f- G {& o# T0 P5 ?7 M' D9 |. a' c
m_pItemElem = NULL;
; S- P* ?1 V, Z; r5 d# { C }
* E5 p7 j( ]" Z. a6 k; p. k m_pItemElem = pItemElem;% U& @. ^. q7 Y7 d% g& J
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );3 Z7 m! J. X+ J
}else{
& V2 Z, Q N( Z6 {' F1 f SetForbid( TRUE );0 y: z2 [: e( H2 Z+ [4 l; w
}4 J1 X: @# C8 E/ N3 ]8 M9 l
}else{
1 Y& i6 A4 R! V/ `# A1 p3 A SetForbid( TRUE ); E3 I) D3 P2 |* Z7 W0 ~+ V
}' ?/ ?$ k- X' e( \! A$ _& f3 B
return TRUE;* T5 C2 z# l5 {, I
}
1 }) e7 `7 z% D1 z0 E; U$ e- m' b0 |; ~% B1 k6 l% G9 @
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )! e8 D* C' F" X2 l) I0 ?
{
, J5 g# b) o% q0 ]. z3 O switch( nID ) N3 B+ s" D. {9 e3 w. ^/ G/ \1 A) Y
{8 X+ F' ]% S- H: E; K
case WIDC_BUTTON3:
( p7 J: g3 C. {2 f0 f/ T" W {; a7 n# V# j8 {% y* }6 r
bStart = TRUE;
/ U1 D9 d: S7 I+ D break;5 Y) c5 R! @7 B( s. y0 ]& R
}6 }$ X/ ^4 `$ ? E$ a2 O* M+ z
case WIDC_BUTTON4:. F: A# K$ }8 O/ G6 Z, f
{9 `: `) B( t" E* T" t/ g
bStart = FALSE;
4 l5 a) }9 }) t break;
9 ?! Q& l# I4 J, X4 P3 M$ {1 E }
4 }! b+ O" Y- G; G7 u6 k" q }, M8 v7 b6 t) N3 m
return CWndNeuz::OnChildNotify( message, nID, pLResult );
; j' [ z6 O4 x" | _2 M& ^}
. w( M% R% L/ b9 P4 U5 f/ ?3 f" Jvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
( h$ z1 u4 \9 t* g( ^{' c) P% W" H8 F/ J" A
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );8 W/ n9 v8 R3 z, o& `
if( bStart || !m_pItemElem )
5 s& K" ?3 {8 h+ e& t0 w {
$ E2 X$ `8 L6 B- g0 y! ] pBtn->EnableWindow( FALSE );
) @( ` }- X4 `6 y: Y; C }else6 Z! g) Q! o& W; A1 |6 ^3 L6 t
pBtn->EnableWindow( TRUE );
5 ] a, R# E7 I! v/ A* ?) M if( m_pTexture )
$ F4 i$ h4 T& |$ D7 b# O {/ G: J. x5 C: g/ R- c8 I! Z8 \
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. M) {1 F5 ]0 B# X: [4 ^& R, E if( wndCtrl && wndCtrl->rect )
1 b& ]& n* r1 l7 g4 ]- S( ~ {
) D0 V1 c1 X) Y. k' s/ x/ V m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); E9 E7 h& {" O6 b3 d N
}
' \ L0 v* g1 E6 z, A0 o$ R }
2 j0 O; d, E3 ]. g& {}
3 V& I; M( Z" v2 v' i% X6 L) |- M; P% L5 \8 O& `1 X
BOOL CWndAutoFood: rocess()5 d/ ^& M. k/ b, E5 {% |& `3 G
{
" d, w) G: R$ S1 m6 R0 h+ j if( bStart )
% d/ ^+ ]- Q+ ]# O$ k$ O9 M {
* B( P e2 z! C4 W# a if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )4 }$ |8 |/ Y# h: e' T( _
{, \# O$ a$ L( k' N9 J1 ^1 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() )
; P& J9 K. X$ ?; q& {0 ` g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );/ m& b* u0 M- l S
}else{
$ N1 m4 N, p- g9 m bStart = FALSE;+ H S3 v! P$ x
m_pItemElem = NULL;
( V9 A5 A U+ r2 { }
2 Y" {! P6 y$ [. E# [1 W$ h }
# ?2 \/ r$ Z4 t return TRUE;# x1 P$ |* a6 Q8 H: `
}
" ^/ G1 T C% {- l/ t
$ u1 a4 [9 _5 W0 e登录视频废话:% a$ d/ ^# I# V+ h0 h) F! a
尾翼:
* H1 [/ t4 l% h+ {4 A$ }5 F
. A" A* F) T! Q- E0 |代码:5 O5 J2 g! [* j" ^8 e9 B! u
, v- C* Z7 o/ ^- U/ l# }0 @
void CWorld::SetLight( BOOL bLight )) n5 \/ @1 x3 E1 M6 W3 L' A
durch& e" k7 A" J- ~! d6 I
Code:
$ N# c+ u k. Z8 f+ v2 Hvoid CWorld::SetLight( BOOL bLight )) y4 y9 r2 S% T9 z) [; N7 g
{6 r0 |( W# ^# d, j& }
//ACE("SetLight %d \n", bLight);: u7 m- K8 _. W7 H
# z9 u( d7 R& G3 L K' }
#ifndef __WORLDSERVER 2 Z3 Z: T2 F) \- {
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
! `: N! O4 ^1 n- b4 Q9 V* v CLight* pLight = NULL;( D; i/ h6 i' U" p8 R4 w% J
$ \% O! `6 F) T% O( `
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
: q$ J- n$ g" o4 R& _0 n6 r2 d$ ^* _. ^/ N1 [/ g+ C
pLight = GetLight( "direction" );
8 l5 T: n8 A r
5 v# o7 o5 @# y$ y0 l#if __VER >= 15 // __BS_CHANGING_ENVIR
3 k E& R. l7 c3 ~! B if( g_pPlayer ){
4 D& b& _ A# q: b# ? ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );4 }* N; R8 ]8 m5 Y, J; }
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!. G9 R% s4 f9 g- P. y6 K7 r; F8 `
{
) F! b9 `: I$ Z8 W7 B$ Q if( pLight )+ _% i6 C! r, P/ i
{
4 y. Y: e( M8 D1 D( f7 A4 V+ \ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];- C! @; W+ ] n1 l. r$ b
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];, L, k, j6 V/ T* n" |
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];! l2 p) E. L& @8 T) F& ~- b7 {
! A' T5 }+ h( N- s7 g pLight->Specular.r = 2.0f;& ~+ t, p1 S8 K* b. `
pLight->Specular.g = 2.0f;) ]3 p7 u0 n) a* O, O2 X
pLight->Specular.b = 2.0f;
! m* U9 h2 i' Y$ t; C4 w 6 W ?; w0 L% x! g* H
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
* e7 Q. _: ]6 b+ ?2 K* O( y! J pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];( n: c' [ c6 J
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
" t+ |$ j. R& C& b. x1 i' I! G$ F; ? . a O5 C. c# a+ V- h
HookUpdateLight( pLight );
: I; N0 Z/ n; G* ^+ r/ j3 M" [9 F; B( J8 n |7 C; q' A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& ]& [" B0 h* b, R& `7 c
4 c# T' v: [& q7 I$ V& ] pLight->Diffuse.r *= 1.2f;
/ q; i$ e2 {! j6 V pLight->Diffuse.g *= 1.2f;& D E. g4 @9 z1 @8 I1 L; {
pLight->Diffuse.b *= 1.2f;) C, Z) p/ S# d1 X6 ~( P6 i
8 p0 \7 S0 H8 t& m4 ? pLight->Ambient.r *= 0.8f;
1 Z2 O+ d& z) c6 y$ @0 T pLight->Ambient.g *= 0.8f;
. k; C/ I6 m/ y% h. z7 T6 u) |4 k/ | pLight->Ambient.b *= 0.8f;' [, V- u3 o8 |# j
' s( L. j+ F# k% m* l
memcpy( &m_light, pLight, sizeof( m_light ) ); n$ b$ u$ V n5 h4 `6 P, O
$ m" x! Z5 F3 C2 I. c/ `+ H. }4 l8 W
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
- y. n3 v i8 x D3DXVec3Normalize(&(vecSun),&(vecSun));! a7 D8 z! l f6 ^& G9 \2 @
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / v4 M5 t/ ^( a) P/ b
pLight->Appear( m_pd3dDevice, TRUE );
# ]5 H. I3 s7 C* Q1 y# S 4 W0 {) c) g, k, V3 j
DWORD dwR, dwG, dwB;
7 `9 X0 \9 O4 d) z8 }( T9 H5 O dwR = (DWORD)( pLight->Ambient.r * 255 );, g, U: l* M7 F& w- D6 H* d
dwG = (DWORD)( pLight->Ambient.g * 255 );2 W( c) U1 J. v# y
dwB = (DWORD)( pLight->Ambient.b * 255 );
5 E* A7 v! ^: b dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
% }( k7 \& b: m5 \9 I% B7 o }. ?/ W& V5 [- B9 G$ m) s
}$ B) g( ?; R# e1 @# h
}3 y5 M% o9 ~8 e! G* E" G+ ?
else& g* ~0 l9 D- ~! m' c1 _1 Z
#endif
, U, A/ q; [5 ?, T, s" x0 S3 |. p
5 i# a+ T4 P7 E, b2 H& S! K if( m_bIsIndoor )
. c/ e8 i; M) `- N1 n+ B! h {
0 M& T) L2 o+ ? if( pLight ) t* E* ^2 d; B. T
{ + \* q3 _/ U; j" `
// à??μ oˉè*
" X' s, S% a1 z H- X0 u1 Z+ J6 ? pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;" q% n: I0 H) d, R+ P! i+ D
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f; P& u; p# N- t2 Y
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;) j" \6 p' Y/ b" u& W" m
0 T% `! m8 R' Y! x4 B // oˉè* ??à?
( z j) T; Q7 q5 B. F* y1 ^ pLight->Specular.r = 1.0f;
. J; w b, T1 l8 ?' [7 p" u pLight->Specular.g = 1.0f;
3 v% Q& {0 [' _$ x$ w pLight->Specular.b = 1.0f; Z o; K; E/ P( F( M; n+ J
// àü?? oˉè*
9 U# \0 q. n5 [; e) p) \ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;9 K1 w8 _$ f& w
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
( {' v+ S- k6 f/ e4 a pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
/ Y8 [: {$ N4 b9 B0 q
; i- O3 X W8 v. y' G5 ]( v4 x if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 |/ _" M, r( z3 ~3 I; E; Z2 B+ S
{) O( m! u: k: {7 ?
pLight->Diffuse.r *= 0.6f;8 U7 F2 c3 e! Y9 v- J
pLight->Diffuse.g *= 0.6f;
9 S% n% H1 ]# x& J! ` pLight->Diffuse.b *= 0.6f;
7 o; F( z2 a: k0 S) A2 i" x pLight->Ambient.r *= 0.7f;& T. Y# k0 J0 X* o1 L
pLight->Ambient.g *= 0.7f;( d7 O# G/ U# U7 ]# ?' N
pLight->Ambient.b *= 0.7f;
& c0 N* c6 \ {) y }# v9 \' `' b7 M) U& F' b6 l/ u
& W r; B, p, s% g* C4 | W& Y
#if __VER >= 15 // __BS_CHANGING_ENVIR
# d! s0 t! T! [7 ^) B" i if( g_pPlayer )
% w! Y6 c& e" o. n HookUpdateLight( pLight );
0 L8 ?; m' i3 m: d! _: V#endif' `3 t( A: k8 X' {, c4 V* M
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% w4 [4 ^2 R9 ^4 z- s
: `" {% W" g: s& |
pLight->Diffuse.r += 0.1f;9 P0 v6 `5 Q5 |4 v5 M9 f3 [4 c
pLight->Diffuse.g += 0.1f;
1 ~9 i/ C. [# s8 i pLight->Diffuse.b += 0.1f;# _2 O+ u9 s8 j+ @
// oˉè* ??à? + K9 n: i6 @' l1 X1 u
pLight->Specular.r = 2.0f;
0 p# S$ O( L- u& Y4 i pLight->Specular.g = 2.0f;
7 C* }+ n! \+ M7 ^ pLight->Specular.b = 2.0f;
) Q0 F% @4 j, ?+ G3 q S* T) } // á?oˉ
/ A4 `6 m8 a1 R- x pLight->Ambient.r *= 0.9f;) g6 W# p, ]+ J- g2 a4 x
pLight->Ambient.g *= 0.9f;
! I% I) h8 z- c5 C; r4 g& M" e! r pLight->Ambient.b *= 0.9f; T: B Z0 U* a) T& A' N+ W7 E1 h9 \
/ w1 U% g& L$ t7 ^3 W# Y
memcpy( &m_light, pLight, sizeof( m_light ) );8 i1 ]: \# X( L$ d; A
6 S) ^/ C9 _3 `/ r3 Z9 \
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z ); F. L1 x- W+ ^) `" G( q8 \
pLight->Appear( m_pd3dDevice, TRUE );* V) J" K4 g( D' H
. O, g, u5 n4 t; o
DWORD dwR, dwG, dwB;; v$ M4 u2 V. V; P8 D% x, t* k
dwR = (DWORD)( pLight->Ambient.r * 255 );
% F0 B' V& a6 U dwG = (DWORD)( pLight->Ambient.g * 255 );; ]/ p; v" I# I
dwB = (DWORD)( pLight->Ambient.b * 255 );
8 c% c8 h2 S4 L/ T9 K" m dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; U0 q1 L- J, ^- x$ y" p: c" K }+ @2 z, u2 z( y5 R- g! E; F
}' q4 K; Y, a+ M- d. Z
else
9 c0 b6 m) Y! | {
) R' s, J7 b' q( l0 g) G if( pLight )+ m- V* w/ {2 J4 s
{
9 Z; T! }7 o3 z. t" |0 A; ~" p
c# C2 S6 Z3 T- x0 E int nHour = 8, nMin = 0;
7 n9 y) D' g2 d6 v5 z, G' a #ifdef __CLIENT6 W9 [% @5 n( O, B
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. , @) a' |$ y) k7 W3 S( T" M7 L
nHour = g_GameTimer.m_nHour; s5 j+ C6 g, a
nMin = g_GameTimer.m_nMin ;
1 k! ^4 @8 A: S #else& H% U* d8 M9 f( R6 q% u
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.4 |' Z, j0 b% Z! j8 k' F
if( m_nLightType == 1 )
/ r$ K+ c6 ^4 o nHour = m_nLightHour;
) c- Y$ m V; w- o; E# K* H8 @( C; s/ F #endif
8 T8 D* i; Z r8 ?7 G nHour--;
8 ` c: p4 A! ? if( nHour < 0 ) nHour = 0;# F3 I5 ^+ D$ B, g* o+ g
if( nHour > 23 ) nHour = 23;
$ D) H' s5 i) e8 F* ~
# P _! u0 T: |) l7 [ //if( m_bFixedHour )
& Y1 ~* P' Y$ ~" S; j2 B // nHour = m_nFixedHour, nMin = 0;1 B f c/ ?$ D2 o& Y1 |0 u( j
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];8 }; X# J' Z8 k9 Z$ I' b
LIGHTCOLOR lightColor = m_k24Light[ nHour ];; q( u- b8 d9 w# o' `2 O
. U' b; U: u5 d6 l
//m_lightColor = lightColorPrv;$ U$ I: @8 O7 u) k7 E o8 p
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
% k3 p% M, y" p: b1 L* [ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
) p; r" o! z; Q) i4 m% u$ u lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
, K7 K0 ^. ?5 [) N* n7 j% f! a lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;* _; t8 W d% [/ u$ p
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;1 K+ B, o9 k4 \, V3 ^& l
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;& P+ v' v; \% V0 Y" y1 d( S
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol). E* ]' n- t* @! W3 R ^
) A! ~4 d Y6 S, \+ o) p // à??μ oˉè* 9 K9 W& c: _. N' x
pLight->Diffuse.r = lightColorPrv.r1;; t3 c# e. e' m+ j
pLight->Diffuse.g = lightColorPrv.g1;( @) k3 v. r4 V8 `
pLight->Diffuse.b = lightColorPrv.b1;+ j7 \5 u- w1 c# K% ?3 q3 n2 b
// oˉè* ??à?
+ c9 ?/ E' T* Y+ B( r# e$ C$ ? pLight->Specular.r = 1.0f;; N$ q5 u: y% F9 A& B& u
pLight->Specular.g = 1.0f;- ?3 E& ^' U$ j9 S
pLight->Specular.b = 1.0f;
; {/ y. \. S& d // àü?? oˉè*
8 B0 q& b& G5 u A) o( W! c$ G pLight->Ambient.r = lightColorPrv.r2;- K# n9 i! x$ y9 u
pLight->Ambient.g = lightColorPrv.g2;
$ |& d: b( F6 y- ?1 P. D' l9 u pLight->Ambient.b = lightColorPrv.b2;
# q' J" _: {7 B- y
# R ?" G5 L e: r2 k2 ]% S if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 N4 Q& P" u b! c1 v- G/ _7 P {# {- S+ K7 O+ b4 T9 Q
pLight->Diffuse.r *= 0.6f;8 O! \) m: {& f
pLight->Diffuse.g *= 0.6f;: Z4 m* ^) X% z' X% b
pLight->Diffuse.b *= 0.6f;% W8 f4 t" _7 w# ]
pLight->Ambient.r *= 0.7f;. O) p( s, B8 Q, w8 L: n& \6 x% U
pLight->Ambient.g *= 0.7f;
+ M, g8 ]8 L+ O# Y# M0 K& K/ e/ d3 s pLight->Ambient.b *= 0.7f;, K1 ?7 ]/ o! _! r" j/ ^
}
- a2 ^7 @/ w' F& R8 y. |" v ; E/ q6 B& e( ^/ G
#if __VER >= 15 // __BS_CHANGING_ENVIR/ v }6 s0 g* J) m7 l
if( g_pPlayer )* _9 K8 Z6 V) G1 b% ?+ A
HookUpdateLight( pLight ); ; M" I/ F6 b4 ]6 A3 `) O2 L
#endif
# G. g9 f' ^3 v% A Z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 s9 }6 H# Z2 V' K, [ d
4 D. e3 C: w# i5 f#ifdef __YENV
: H# f3 y3 z9 a) {0 G& }- _. f- [ pLight->Diffuse.r *= 1.1f;
9 v& v4 Y B8 D# \1 l9 h# \) \5 D pLight->Diffuse.g *= 1.1f;9 O3 [9 I" s ^. L- O
pLight->Diffuse.b *= 1.1f;& F! ?$ @3 z4 @$ O
// oˉè* ??à?
% t/ K9 R& Q& y: T pLight->Specular.r = 2.0f;% {7 Z" `. T: u# e! g7 o
pLight->Specular.g = 2.0f;, b. l: d; D: S, V' N( q
pLight->Specular.b = 2.0f;# e: [2 g% b; p L) C
// á?oˉ . s+ |6 c8 z2 N& B. Y
pLight->Ambient.r *= 1.0f;
. x0 [% Z! X4 |0 C. c pLight->Ambient.g *= 1.0f;6 i4 M! O: U3 a6 ?" R3 ~5 D& [
pLight->Ambient.b *= 1.0f;
$ c: E- L; y( J; K3 F! B#else //__YENV! l+ L% w4 p* }# U# [& g
pLight->Diffuse.r *= 1.1f;
5 t9 R# l2 I4 y' T pLight->Diffuse.g *= 1.1f;! [9 a! A7 [7 @# `0 G% @4 U
pLight->Diffuse.b *= 1.1f;7 Q8 E. w1 N6 j& f- w. s/ a
// oˉè* ??à? ! {2 f$ s! F: o# k" E$ X# M* D# C0 r# U
pLight->Specular.r = 2.0f;
. v% h( v- {/ q% q pLight->Specular.g = 2.0f;
9 M( H: V4 G; i$ E% [! r7 n8 S pLight->Specular.b = 2.0f;
: D( d8 [( i) o ]7 u' P // á?oˉ 5 F8 V3 y% u& c- Z, N
pLight->Ambient.r *= 0.9f;
" `* m6 b1 T: R: k& ~ pLight->Ambient.g *= 0.9f;9 Y4 c/ y3 k6 s- r
pLight->Ambient.b *= 0.9f;
! J$ x/ g8 G) H$ ]' M. A# l4 w$ `5 o#endif //__YENV
" \' o8 D7 \6 L" q+ o7 w , ]8 d* b8 ]2 J9 B* g) p$ D9 L
memcpy( &m_light, pLight, sizeof( m_light ) );
- h0 M3 W8 r [3 x0 U+ q- M 6 x% g5 d3 L- n' W; t( w7 K
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
. B+ G- w# V4 _" @; L: v; t$ s D3DXMATRIX matTemp;
% O) \1 r0 C0 A0 ? static const float CONS_VAL = 3.1415926f / 180.f;
3 B$ c% E( N) s# ~# h( f9 P. G: d" B* k6 i W' b7 I
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);9 N! b- x# E2 @8 Q$ |$ Q
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& h/ L. P/ w1 a3 W. [
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
2 ^) m/ H4 c' z) U- l' \7 L5 q pLight->Appear( m_pd3dDevice, TRUE );; M# x& I) a' I
- L/ d1 D# Z( G D // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);, z0 S" Y5 q' V5 s7 k( l
// D3DXVec3Normalize(&(vecSun),&(vecSun));
; P- ^ K0 G( p3 @ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
" H; U6 |9 \2 a& P- a' y' P. Y- ]
4 V' d9 V3 K; o% P F; a DWORD dwR, dwG, dwB;
# L* y b' c7 a dwR = (DWORD)( pLight->Ambient.r * 255 );6 Q+ E( a& m$ u
dwG = (DWORD)( pLight->Ambient.g * 255 );+ t( t9 z( a6 m( e7 S% l
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ r9 G* Q- d+ a4 A: c5 P dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) O1 _3 a: @, H+ c; ^8 K( V0 h# t
}0 k) D, X2 b6 r9 V# k: k% [ J! C
}3 ^; c6 p$ l' n' y7 h
" H H2 K j6 W) W2 Q* o
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );+ H) q' `: y" 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) );$ L& L0 {% N& \# u
::SetLight( bLight );
) y* Q }: r1 E( U2 w! c. W! p* w. e1 ~% S2 C1 x
// ±ao? ?D?í???ó á¤à? . Z3 \3 b/ R ?& S- W* g! w8 _
m_pd3dDevice->SetMaterial( &m_baseMaterial );
J' q% |5 l$ R+ D7 a2 e, ?' g/ ~5 N . P0 X. G- P/ s
#endif // not WORLDSERVER4 h) k v* m$ j
}
0 v% z/ @7 D* Y- D% v并更换/ T+ L( O; x4 _/ ~7 i$ K
Code:
5 q' T& g1 Y8 J( X5 j__FLYFF_INITPAGE_EXT7 N$ p; Y) x6 V& d. k
定义( {$ Q H8 ^! B
$ j- I: G1 v9 \. Q/ I& V" d8 a0 N
1 t# Q. ]/ ^, ~- ~9 U& P7 b) J
6 g5 [, K* {4 W0 m: Y5 g/ \4 q
. `" ]# V. y+ D现在终于删除我的狗屁加速...8 E# M/ ^8 n' }! q
- ~$ Y* W, {4 O+ n+ H9 C0 m0 k& ~: ^8 o* h3 I: {
# _. h- z1 I1 f# y
|
|