|
|
食品车:5 j" z w% Z; q8 @
尾翼:/ J: g+ D1 x( u, b9 q
6 h* l) X* }6 i代码:
; o9 \: S. A( H. |) \, q. pCWndAutoFood::CWndAutoFood()5 Y7 z2 v2 {- ^6 d$ }6 W8 Y5 N
{$ M# e' c" [# A$ i) W/ R6 e1 s: c2 i* C
m_pItemElem = NULL;
/ m& m7 c8 _ K& e2 g! D m_pTexture = NULL;
; G8 ?. f4 | k) e7 m( I8 A+ l bStart = FALSE;
7 {0 J: q# ?$ W! F( g8 J* x8 F}
$ E" d/ {8 r5 F/ U4 L2 j1 d
) K, o7 [" o& M7 w+ KCWndAutoFood::~CWndAutoFood()
* ^+ ~5 |; \: w! J% W. M& g# d, `{
( k) r% b& ^6 b: o* D) J" U/ w AfxMessageBox( "AutoFood ist gestorben " );: R) t& U, O! I5 O
}- @" V8 ~5 x6 J1 _' {$ z n: p
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
' \$ h4 T m" `8 K$ Z{, Q4 O7 t! r6 C! w
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
) q0 b- w3 c, M3 I# R}; R: j& s0 u% I e" }& n- H: j7 a
- l' f$ [' q( Y# pBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )) w; m& d1 |% i( J. ]
{4 P% c9 |3 {! r
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );- K3 @; F& F( E7 o# i8 ]/ Q
CRect rect = pWndCtrl->rect;
+ s! h& F; }! @# ?4 Z g if( rect && rect.PtInRect( point ) )
?) X8 A9 C8 u+ D3 ?& o) I {
: a) K( t8 M" d) x' k$ [* H CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
* m, s" ^' C$ R, b- e/ ]4 R if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
* D% m) E4 B* X {
6 N9 m5 z2 t) V! x* X, o if( m_pItemElem )2 z3 c |/ A" P6 g! k9 E
{9 F l. L! b0 w
m_pItemElem = NULL;
9 c4 V; o" v- p: e" g$ V }8 K# h* u- J* X
m_pItemElem = pItemElem;
3 j4 h4 E! K7 ~3 D9 g! P6 P0 ` m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );2 k+ B5 D2 v( Q. [+ \+ u2 a
}else{
1 U, K0 v) P6 L, W SetForbid( TRUE );3 y/ q$ P4 B+ z9 Z+ Z9 l
}$ Z) s6 s! R5 a9 l7 b
}else{/ G+ Y- J9 A9 A3 N6 T) p
SetForbid( TRUE );
3 n4 J2 q# U) Y6 Z' {. R& f" g- h }
4 G$ k, |1 N7 F% M& f0 d' Q return TRUE;' A' W6 H1 g: G. \- v/ t, z
}4 V, P8 [* T! ^/ P# Z
; V, A1 j9 F+ t2 {0 } l8 CBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
1 S" R4 m% u Q( \) L$ }{
( J; s( ~/ k/ M$ }; I switch( nID ), E, I6 w# ]# M. C8 F' e% l( A
{6 X1 C% _' \( e* w% l3 L. u5 G* F
case WIDC_BUTTON3:& _) _: ^0 }# D
{
8 O2 [6 B7 E" C* q/ O bStart = TRUE;
* _5 h! y) o+ u) _# G! z; S' \ break;
- V3 p" X |" h* R1 \5 [; C r7 n }. N0 ^) o% H) R/ y4 k% E. p
case WIDC_BUTTON4:
0 j2 L- E# |1 N. \ { I/ r* {6 L8 C, X7 _
bStart = FALSE;% V8 W. N# \! Y) o9 I( h
break;9 A' R. u) P' H7 m2 E* m4 X
}
1 b! V* P% F1 B: E; L }/ }- d9 S( h3 V. R& O
return CWndNeuz::OnChildNotify( message, nID, pLResult );# d6 M+ L; X9 V7 X
}
: }0 `( v! G" _9 u0 y1 O' Xvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )2 |# q' p1 \& @2 W* `3 H0 |# l
{6 d# p- W7 K7 o- S7 r3 c, j
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );* R- M9 r T6 K0 B) }
if( bStart || !m_pItemElem )
$ u: ?# y& m3 n0 s; ]/ Q {- J4 R9 M+ g" R" w; D* B x! R2 A
pBtn->EnableWindow( FALSE );
& H2 A% U/ m) E }else) c; s* l0 Z2 W& q/ n5 Q: a
pBtn->EnableWindow( TRUE );
; @; g/ \0 @5 A. g; a if( m_pTexture )
* V% J7 Q( ^) ^( K V7 W* _ {& f1 s: X- F- b D7 h9 M8 z' Y
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. S& a" t8 v C( [" I2 L if( wndCtrl && wndCtrl->rect )
" T& i/ w# G" @; u0 `: ? {
5 ~# F. D* W6 e' [3 U m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
, M3 ?; z8 _6 c( i1 s }4 A; D! s2 L; w6 A+ g6 j
}
* @+ ^! r$ u8 R% w# c}
% u& o/ d) i4 l# ?, {4 J
0 ]+ ~! h( X+ x+ s5 P% S: g1 zBOOL CWndAutoFood: rocess()% [, o/ M; m( _! h0 t z3 B
{6 X: |, Z6 E. ~ Z+ Z
if( bStart )
6 V$ V7 S0 p3 m% V! B1 y {
$ f/ s2 X/ N& J+ s- b# V. m/ h if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )2 B; ^$ L4 A9 y, @+ i% W
{
& ~% _5 j8 i9 f( [% D: a s' a if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ), H6 @. f0 t1 G4 W6 @
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );" S5 R. }1 K0 C, o- ?; y; o
}else{
; s9 |# a" \8 j bStart = FALSE;
" M* j& y% \, ^ M7 ^! e m_pItemElem = NULL;
( p9 D9 g* E/ E }# M) s8 I! a$ J- a) Z/ V* R
}
" E! U j$ v% f5 G return TRUE;0 e/ Y0 g9 b+ C( C
}
# ?/ Q9 l9 q; u! n k9 w& u* P. O6 @2 \1 a& F d! W3 Z, a
登录视频废话:
9 h5 I6 X3 J/ H. x7 e尾翼:
, W/ q* }- f0 z2 C& |
; n9 }5 B/ N i" k. O) O7 p代码:6 `# D- C, y# |; F
& y# a4 ^8 q. Jvoid CWorld::SetLight( BOOL bLight )
! W" y1 p" ^1 x8 Sdurch1 P/ u C, p8 l8 r; h/ P
Code:- H6 w' H3 e" _- P
void CWorld::SetLight( BOOL bLight )
. i1 |- d" z; A{
$ Q: E' [( L3 [5 @ //ACE("SetLight %d \n", bLight);: L1 E& \9 D' G- s/ ]
$ S9 A) y7 E9 K& q( X#ifndef __WORLDSERVER 1 j& o. f# I4 G. R+ ~
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);( `* e1 _, u. q
CLight* pLight = NULL;
* t' ?) V6 S& j/ k* }" w7 T7 x
# Z, d$ {! t8 M/ \3 X( O D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
0 H$ ~3 s- B5 L2 R: a: I- @
. b- w* B9 v7 l. l pLight = GetLight( "direction" );
9 d; g, e3 Y+ h$ Q, A! f. R* X# {8 j
#if __VER >= 15 // __BS_CHANGING_ENVIR* |& t) \+ m: y7 h% Z
if( g_pPlayer ){9 @1 y! q8 U! C+ B/ R( z3 h8 |0 R
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
- c$ O* R) p7 o h/ [& W- ]3 \* U+ z if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
3 \0 S; S- i7 @ R7 W& j& O {& C. G5 V- n* I# G# d E( h/ x+ g
if( pLight )
+ o; m8 u9 n6 g |7 l% a% z0 D {
# d! |% i! s3 J Y. {2 F pLight->Ambient.r = pInfo->_fAmbient[ 0 ];* o' R+ o+ E7 W: L) b
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];' T! f) J2 o' P. l8 B
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];+ V. n- K! m. I8 g/ R" v7 Z$ }, E
; v, O0 s' S& B5 I% B6 g/ E4 E; K
pLight->Specular.r = 2.0f;2 c% X/ n" p( N: o& W
pLight->Specular.g = 2.0f;1 M. i( V( P7 @
pLight->Specular.b = 2.0f;
; b, u: Q5 _4 U; M
1 ^$ H/ p# g, O+ N pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];9 y0 B/ T' e7 t X4 B' U) [7 u
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! o# N% u3 F$ `, k' M/ P
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
. `* U5 l0 w+ f+ K( _, T
* ^6 U X% ?: X" T3 S/ u2 J HookUpdateLight( pLight ); 2 F9 I+ e5 S; W2 \6 A2 b' Q' O4 M% @4 b
7 d2 B1 ^: @! }( q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( a: k6 g$ ]1 z [- h
) t7 |4 C* M8 W5 W* @' K: d
pLight->Diffuse.r *= 1.2f;
: n: ^1 L* t+ d6 l W k6 f, w pLight->Diffuse.g *= 1.2f;# z- n1 Y; c1 t3 E( W5 c1 P4 Y' G
pLight->Diffuse.b *= 1.2f;
8 y: _ K6 y/ n$ Y
. |4 d; |! } F/ }' E& G, y/ E pLight->Ambient.r *= 0.8f;
8 [+ L( g3 S( H pLight->Ambient.g *= 0.8f;$ w0 S( o/ R* D5 Z- }2 \
pLight->Ambient.b *= 0.8f;" G8 x2 m% W3 [: h: B& f; n% E3 W
9 ?4 v: [* _3 O/ X3 z- Y; b
memcpy( &m_light, pLight, sizeof( m_light ) );
6 i7 F2 e* a7 T& H. n) D/ O
/ J8 }4 \+ ^ C: E D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);8 F( v+ ]0 W8 F# \; g4 P( D! W
D3DXVec3Normalize(&(vecSun),&(vecSun));1 m# ]4 ]7 F9 E" Z) m! o2 d
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; s- Y" o+ x: E9 [+ o
pLight->Appear( m_pd3dDevice, TRUE );2 u6 S& [; H, t
1 F% C4 b5 x, a. v; A DWORD dwR, dwG, dwB;
9 n+ \0 Z" K, ] dwR = (DWORD)( pLight->Ambient.r * 255 );1 F+ l8 ]- X, H: s. {0 H
dwG = (DWORD)( pLight->Ambient.g * 255 );
# c4 x3 I+ s, @ N dwB = (DWORD)( pLight->Ambient.b * 255 );
q, ~2 M, i9 H dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );) }8 K4 Y+ E2 c' q3 D$ N
} [" s% {5 @9 c# |2 Y
}
" b* l3 p: B3 d1 F9 I }
' ~& Y7 b! p; E1 {+ z: I else
% X: f& G1 c2 H }* p H#endif ( W* {/ y8 l; J2 j0 S1 c$ k2 l
& q6 e/ W# n P. H if( m_bIsIndoor ), c# z; x+ m0 a* k4 Q
{
5 Q N& S% C+ c# v+ F$ M- a$ h- a0 { if( pLight )8 B. R: H4 _% N9 N; x0 J; [
{ # \8 L0 L( ?; P2 G- p7 l/ o8 J
// à??μ oˉè* 5 |( x+ _4 J# Q% S/ _! b, f
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;0 i, J- w# x7 f# j9 j8 ?
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;" C( k C3 f1 T" ]: m7 v0 O+ p
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;6 |" e# o n r) {# R6 Q; b1 D# L
' H% o- _( }. a" X; B3 `
// oˉè* ??à? 4 ~. k3 D% y# t0 o- ^! G9 Z4 y
pLight->Specular.r = 1.0f;' n$ N! U, v' P0 _
pLight->Specular.g = 1.0f;
! P$ l6 I4 Z% u8 H7 G pLight->Specular.b = 1.0f;) g! k v {# v0 W0 e$ B6 M
// àü?? oˉè* 8 C* w6 A: F. C( e M' S
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;) P I0 C" S2 _- c: L9 h8 o! W- f. e/ L
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
1 i& ?. j( i/ j+ Q8 m: w+ h pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;" w+ J3 l/ Z5 W# f& m
* @# @( E) \# `% s7 y6 r. n if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
. b2 z/ Y& z( S6 h% c; b. } {
( H( h- H! r" N) L+ q# D8 T# s pLight->Diffuse.r *= 0.6f;
5 [( r c$ c+ K0 M0 x. s pLight->Diffuse.g *= 0.6f;
. v) I5 L5 R7 I pLight->Diffuse.b *= 0.6f;
0 W6 y5 |3 x* \: {, d7 {# |/ L4 E9 `# R pLight->Ambient.r *= 0.7f;
! u0 ^$ `0 l- ^( r3 p pLight->Ambient.g *= 0.7f;( Y/ m( U/ l1 B( X% |
pLight->Ambient.b *= 0.7f;
. {$ [4 K- Y C- i0 e- }6 Z6 H! W/ y0 ~* C }
L; a" ~! k4 E+ ~7 }. t0 v5 Y# ?; I( c" b
#if __VER >= 15 // __BS_CHANGING_ENVIR
- B2 J- ^* G8 n2 q' {: ]; L if( g_pPlayer )7 X- p. Y, g' b0 s
HookUpdateLight( pLight );
+ P8 k% ]- g$ }; Q4 L9 t; D" x. A#endif
6 S; U' i2 K, {+ |$ n; A. M memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. u1 Z1 K8 M3 m/ I
* m6 W) t& ^' H" r+ \. [, D pLight->Diffuse.r += 0.1f;
" I9 h9 y6 g" r1 l/ P pLight->Diffuse.g += 0.1f;
% _1 Y: C/ g0 a# F- x# l5 ` pLight->Diffuse.b += 0.1f;& Q% r" z0 I" R& w/ b( J/ g5 d
// oˉè* ??à? ) U* U2 A! b" Q& F# B- {8 Q9 K: P0 r
pLight->Specular.r = 2.0f;
' \/ I+ Q0 C' e& R2 D pLight->Specular.g = 2.0f;
4 A V; m$ b$ m% b pLight->Specular.b = 2.0f;
1 j! J7 S( V4 g! ?9 X+ ~ // á?oˉ 8 C8 s4 o+ [: s2 n- Z: ?3 {, Z
pLight->Ambient.r *= 0.9f;% e) @* v V: C, Y9 O0 o
pLight->Ambient.g *= 0.9f;
6 w& |9 G6 P& { pLight->Ambient.b *= 0.9f;$ H) r+ q& [4 `2 W# c7 H1 ]
* N8 _# [4 n: B! F% A4 ^ memcpy( &m_light, pLight, sizeof( m_light ) );. j, M/ D0 O, [5 Q
" M) U* q1 p) L+ a4 `6 P4 Z
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
1 d7 E' I* ~- D& C3 a) L9 P pLight->Appear( m_pd3dDevice, TRUE );
( | m2 H. t/ f 9 Z% S/ b9 i& ^4 N5 q7 P
DWORD dwR, dwG, dwB;' t; I+ D2 n9 r" ?- c8 b% O' R w( H3 I
dwR = (DWORD)( pLight->Ambient.r * 255 );
) p. y* _ I2 y# f( K, r' L& K/ R dwG = (DWORD)( pLight->Ambient.g * 255 );
$ ]6 r. ?* R: T4 b dwB = (DWORD)( pLight->Ambient.b * 255 );3 @7 d+ G# Z$ ^! R1 a
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 ]2 k$ N9 `4 z+ z7 Q$ X, }' e }
8 A) I( L5 M8 d9 ?# c9 w } V p0 w: x" `, l7 }% f( ] F4 V2 w- T
else
2 `2 E; l1 k' [- V7 B+ _; x) l {+ W6 ^7 I4 z# a! J) |1 b; u0 d' q/ ~
if( pLight )
+ L$ a% w! O( |5 y {4 l# k+ p4 w" K- N K. U' g
, Z0 ]' |) Y3 N. A int nHour = 8, nMin = 0;$ p, S6 U" n C; k% X/ a
#ifdef __CLIENT/ h4 u5 _. e0 Y* N/ @. o
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
6 ^% Z- |) y+ D& G Q nHour = g_GameTimer.m_nHour;
4 E$ u& U2 n5 w; y8 ]- K nMin = g_GameTimer.m_nMin ;
( S- r* X; i; f) \ #else
( m/ K" b- w1 }- W // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
6 o- u# L, C' E/ E9 |+ L4 x2 K if( m_nLightType == 1 )
$ H/ q$ j9 d- J/ |& { nHour = m_nLightHour;
8 U O7 @7 G4 r2 S$ L4 U6 a #endif
! \, ~& p+ h! \- q9 G+ I nHour--;
% _: L+ @2 ^7 G3 s) D2 j- C, z# d3 o if( nHour < 0 ) nHour = 0;
: o$ X+ ~; X7 p if( nHour > 23 ) nHour = 23;
0 u) \( Q. P; ?# l: L
8 i- |# _ G5 G! _% b: L* s9 j1 ~ //if( m_bFixedHour )" S6 R( g; i0 \, x# c" w/ F. P2 P
// nHour = m_nFixedHour, nMin = 0;
8 g; v: w) y0 t" W% D2 g8 S4 m- P LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
# H$ n: Y! B+ w LIGHTCOLOR lightColor = m_k24Light[ nHour ];& I/ C' t, |: @$ e9 J* P* J
/ ^8 e$ q J# P, a0 [9 _ //m_lightColor = lightColorPrv;/ K0 S" `: x' A7 C6 {1 }
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! Q+ z' g ?) x, ^; k lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
3 I' j/ c8 N1 J lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
; r& T% ]4 P4 F2 M" e0 D lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;1 |. i3 L$ p$ M7 z. B* X- T, q
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
4 x) P* w- d u4 G lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
v5 Q( O# }% H$ t2 C& f" @ r4 | // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
. q$ K5 ^5 K1 O! K5 z0 `9 s1 S0 n) W0 n' Z
// à??μ oˉè*
; y3 O1 d" s! u6 B. B R/ g pLight->Diffuse.r = lightColorPrv.r1;2 ]: }' Y) b" R: u/ e
pLight->Diffuse.g = lightColorPrv.g1;. y7 X, K3 ?6 Z! A
pLight->Diffuse.b = lightColorPrv.b1;
9 ^- H( s" A ~1 E2 u3 R Y // oˉè* ??à?
4 z: y: h" Y) E6 }. J pLight->Specular.r = 1.0f;
- c' a5 ]$ \- }/ g: t1 v N/ q pLight->Specular.g = 1.0f;& m+ }# W$ L% X
pLight->Specular.b = 1.0f;
( i3 r4 P, b* G, Y4 V // àü?? oˉè* 8 [' e2 ^, E u! s8 X% n6 ~+ y; o/ `
pLight->Ambient.r = lightColorPrv.r2;. b) E# X4 f5 `! b+ d( {
pLight->Ambient.g = lightColorPrv.g2;$ u+ v4 P5 }1 Q' p( Z6 ?& m
pLight->Ambient.b = lightColorPrv.b2;: s( J1 l- x+ S; P7 S! u
6 n4 ]' |" Q& C0 `6 X0 ?
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# J8 Y: n7 o j1 I
{
2 {3 f+ H# p9 c1 r4 M pLight->Diffuse.r *= 0.6f;
6 ~4 o! a* M, R5 V6 i3 O2 ~( O pLight->Diffuse.g *= 0.6f;& o8 U: X$ M3 S& _6 P7 p8 |; m
pLight->Diffuse.b *= 0.6f;
4 j7 |, c4 ?% y pLight->Ambient.r *= 0.7f;# g& D/ m* b( o1 o/ t4 A* p: |
pLight->Ambient.g *= 0.7f;
( x8 b p8 P1 i: v' F7 b pLight->Ambient.b *= 0.7f;
, a8 Y# |9 P. {% r7 L }
9 w) r+ g# |5 O& |; J & r3 _2 M, v7 c, j* y) _: Z* I
#if __VER >= 15 // __BS_CHANGING_ENVIR
, M9 z ^: }" h' w* [1 e' `7 d. e if( g_pPlayer )
; O! W) q1 Z% d. @/ b HookUpdateLight( pLight ); 1 I2 j6 s* I$ }) ?- V: r) _
#endif
* N1 {; k2 I0 d. b& F memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; W% C7 E8 ^- j5 t" `, u
+ b4 Q% N9 x% \9 N% s#ifdef __YENV1 i8 _ Y1 w/ o* R; n! `4 S: b, ]
pLight->Diffuse.r *= 1.1f;
0 h9 @2 C0 W5 Y; z! i pLight->Diffuse.g *= 1.1f;
8 n4 ?: ^* W' g: [ pLight->Diffuse.b *= 1.1f;
9 v' ]& k" O x! M! h5 S6 M& V // oˉè* ??à? # ]5 g; m8 {5 P6 G6 `
pLight->Specular.r = 2.0f;% s0 f' B' B3 ^; R9 k; q7 L9 n
pLight->Specular.g = 2.0f;$ p# [* E9 s$ U! F. g" h2 j. t+ B% j
pLight->Specular.b = 2.0f;0 a. d7 t( U3 M! W2 p( B: r7 r
// á?oˉ
1 o. _5 y2 S7 s: t pLight->Ambient.r *= 1.0f;& L5 }" n* A" y; G2 T& ]# U! ?6 w: T
pLight->Ambient.g *= 1.0f;, ?0 p3 |# y+ d1 [2 i: G" P6 a1 S
pLight->Ambient.b *= 1.0f;
1 B3 M' F* h/ Y" C& M#else //__YENV
& i. ]$ O7 g4 D4 A pLight->Diffuse.r *= 1.1f;, L! f. j: T5 v2 a5 |* Q
pLight->Diffuse.g *= 1.1f;/ M$ [9 X% d( D2 Q% r2 v; \
pLight->Diffuse.b *= 1.1f;
) f8 |. N8 Z' l6 N ^; T1 ?! Q // oˉè* ??à?
\! u! K! o" v pLight->Specular.r = 2.0f;
9 w0 S8 r! a Q% e. k! h& B/ x) k pLight->Specular.g = 2.0f;
$ }; Z4 R! F5 G pLight->Specular.b = 2.0f;% a- B" g1 L1 v& M
// á?oˉ + G1 V6 E2 y5 X$ P
pLight->Ambient.r *= 0.9f;5 g" T, S, o* h: m
pLight->Ambient.g *= 0.9f;
[ f& ~1 E' _ pLight->Ambient.b *= 0.9f;' k* j4 U+ f! b1 \2 q( L# {
#endif //__YENV
7 c% ~4 t" s8 U0 j* y: a/ W' W % R! Y2 j& u. C+ q1 S- ~
memcpy( &m_light, pLight, sizeof( m_light ) );
/ w7 g" ~, l# c/ g6 X7 ~( F
" Z5 k+ A* v% g& S, [& u D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
1 f: V& z- P* A D3DXMATRIX matTemp;
( y: H- u) ~. [' f4 l2 [; }: f: k static const float CONS_VAL = 3.1415926f / 180.f;# u4 S1 Z3 s {
2 X$ g+ i9 N% ^' b0 V6 ?! g, \8 E
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);' X, |) Y; [$ `
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
3 [- w1 C; Q( L- E3 T' s pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
8 h, N/ C3 ^/ s8 z7 ^2 n! r pLight->Appear( m_pd3dDevice, TRUE );& |3 ]' G) h/ Q4 q3 b* G+ E# g- @
' T x- y. J- y; D& Z' f) p G" h! } // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);2 `* N7 o+ n) G5 J: X
// D3DXVec3Normalize(&(vecSun),&(vecSun));
+ H, X( B) }9 u6 w; q# t" i // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , j: v$ p; K; ^; U( h
4 K* q) `7 c, T. G) [5 u4 @
DWORD dwR, dwG, dwB;
! P, X$ p2 q' _/ K5 N* B* F dwR = (DWORD)( pLight->Ambient.r * 255 );. c. C0 S: ^- q: s+ O
dwG = (DWORD)( pLight->Ambient.g * 255 );
. k. S8 k" x2 }2 ^2 c dwB = (DWORD)( pLight->Ambient.b * 255 );. f' X9 q% a* H8 B1 X, d
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
8 m9 K; V' M: s0 b" Z+ |6 e0 H% t4 z }: X' b8 X f; Y- {) B: m0 [
}) S+ F* X% s4 x) E6 [6 @5 k! G+ B
5 j" w2 o* M0 r% s- x# H, k
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );8 B4 x! P y4 A* O! z
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) );
8 c5 ~5 T: v/ b }: X) w ::SetLight( bLight );
2 `2 c" F J/ t. s) d X
3 l7 X% l4 D/ u9 [' o) H h) X // ±ao? ?D?í???ó á¤à? x! p' l5 g& @
m_pd3dDevice->SetMaterial( &m_baseMaterial );
2 [! O. D1 j0 w8 ^8 J
; G' V* d6 w* S4 J" A; F#endif // not WORLDSERVER: D4 l8 f0 \( \
}
7 A3 H, l/ p4 \8 H/ [' ]并更换
: r2 N9 f$ p' W" }" D' m% ~% Z$ BCode:
: I! M) s; @ c; L__FLYFF_INITPAGE_EXT# R" v$ k6 v0 w1 P5 p
定义
+ `' ?. P7 O' Y3 m% U- M" G) W* [! D8 N
1 u# [3 E1 E' `% x9 k/ |6 m& E, v9 q& a4 N5 C
2 o( d8 ]0 J4 U" @现在终于删除我的狗屁加速...6 f# h2 u4 Z" ]% Q6 h( o* D
, a# O K! n: J/ _# U! m
% h7 i3 e0 o# |7 |
! A9 h' n. L z |
|