|
食品车:* S+ N% Z- `1 W, v) q) \
尾翼:1 x$ ^% r% N$ Q; h. Z: B
4 E: T& a: Y$ Z# d0 y
代码:
2 ~3 [1 @0 W) |CWndAutoFood::CWndAutoFood()6 F/ n. O; F' k2 D' q3 r/ D
{
, U% c% s8 D. y; X m_pItemElem = NULL;% E. f" g7 ]' Q: L
m_pTexture = NULL;
# T( a# \8 |1 c. P: M# c1 }+ E7 O! J bStart = FALSE;
! V' J0 C: j' i/ u! p( e7 r}
, b$ _8 e+ v, ]& w" H( _$ e+ {: b M& V0 j i$ k# e2 W
CWndAutoFood::~CWndAutoFood()
; I# C- Q0 n- j/ w{
/ Z& q" ` u1 z# l3 k5 @ AfxMessageBox( "AutoFood ist gestorben " );
& F7 I3 g! O$ B) M8 Y1 ?4 o}# ^' g+ m( `( X' T1 K# @
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )5 e: k7 Z) a; a, i
{
: |2 z5 M( z7 b. H5 D) j& U# X return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
6 y" E! K* k1 L5 s j# Z9 W) a7 z}9 C; ^1 w0 A' i
) a) j. N4 ^. z. H1 m$ w5 r
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )" T0 i' F! @2 f. L& Q7 ?
{" k1 p; }2 k9 u% r1 D
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );' W- `1 j1 \( S7 |, b% a
CRect rect = pWndCtrl->rect;
, Q6 q5 {/ A# C7 O) i' }+ v if( rect && rect.PtInRect( point ) )
4 C. H6 @0 Z6 } b {9 t8 M( K' f7 Z- p
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
: R+ I) J" @5 C: m- m9 P, g- q0 r6 _ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ), u5 T0 E; L$ g5 d! Y$ ]5 y9 j
{
8 L# o" s8 }, A' ]+ t: L* { if( m_pItemElem )( T5 Q: D, _, u$ V/ |4 ]
{7 K) A) Q0 j) C. {) R$ Z4 S
m_pItemElem = NULL;
8 [: Q% X( J5 T) S9 k }
+ ?/ S2 Z# r0 L2 `. z m_pItemElem = pItemElem;. m+ z5 T/ H1 N2 E r
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );8 Z2 s" v5 l3 T4 T0 u v
}else{
: |9 A( K8 Q4 I# w6 M" m SetForbid( TRUE );- S0 j; u4 {" M1 L. u
}
7 {/ o: k; u1 u& _+ ^1 e+ ^ }else{
3 Z" ^! Z5 d' L6 N+ X& H SetForbid( TRUE ); @1 _: V) J( q" G. }
}
# a# L5 h/ Z4 V return TRUE;
# v3 S1 r4 v; j& g q2 s}
7 t5 u- [+ V: z6 J
' w/ m) t6 v7 l# |% e$ X$ [BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
+ ~" h5 j. {$ j$ ~{8 F' [& ~/ J: T) w0 ? W
switch( nID )( B* J. t$ m$ |9 F1 @
{
* x+ n5 J9 A: e& Q' J case WIDC_BUTTON3:8 \: t) J0 W3 I' p. w$ D
{+ _' w! c8 C7 {- P2 C% G; S
bStart = TRUE;3 t+ c+ Y- B7 O/ v& X5 O; \% q
break;
2 o' O4 |% N: [. L/ N }8 F5 ~. v7 D7 s+ \1 j3 h1 E9 i
case WIDC_BUTTON4:
6 G2 N4 R" Y Z; K1 a* W {
, v5 _/ [' V/ J, y/ s bStart = FALSE;
0 J9 w* V" t( }1 Z) ? break;
! x) G& m2 I/ a% s9 U6 K0 A! J }4 P. @ \& a7 j; h! }
}" w3 z1 L& v0 n K+ p+ Q( {
return CWndNeuz::OnChildNotify( message, nID, pLResult );
0 F9 Y5 A3 @3 }6 W- @}
K! A2 l7 S0 B- T2 S4 zvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
. V% u( P9 e) Y% ]* D{
( }* _/ Q8 q7 Q! y$ \2 e CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );) G; z9 t& s" {" {* l
if( bStart || !m_pItemElem )
$ s1 v/ ` G& ^9 N0 b0 K1 a: ~ {4 Q" K2 C- \# @# ]) l
pBtn->EnableWindow( FALSE );
( u3 J5 V+ A% Z4 P }else. s) } R) T$ x% n9 ^+ `
pBtn->EnableWindow( TRUE );
' y. }7 {7 f0 Q7 @ if( m_pTexture )
0 v$ K/ F( s7 T% a ?2 d+ { {3 V! b2 T- ]( ~/ V, c
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ a5 S1 c( Y+ n: k! s( m
if( wndCtrl && wndCtrl->rect )9 I% R- \$ u4 k2 m7 S1 }/ |, T
{; E) X+ c7 t; G/ ^$ v
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );& T9 _+ ~9 W" [
} ]5 A+ B! P8 }& F9 M$ M
}; f6 p8 E: l9 }
}
6 |. j1 A0 L; O; |) m9 s7 i
& D) ~; W$ ?/ O6 f; F) G0 y( `BOOL CWndAutoFood:rocess()
6 V# q$ Z% _1 Q7 B/ i9 g{. U0 ?: ^, o0 @
if( bStart )
, P7 L" {+ f7 P5 `+ n; }% |) [6 Q {# }0 n2 w( q& I$ B
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
4 p3 C# F! L, p1 Q0 _ {
: O7 B9 t" N! {- C1 @ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )9 h- v2 H* k0 S3 X6 K
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );# N+ i4 z4 T: B) w* n
}else{ y9 Z* j3 l* t! ~" V; @
bStart = FALSE;
- a$ a' M. `9 n5 q m_pItemElem = NULL;
5 F# o) V- N) n- _ }
/ q: s7 x6 D+ ^( w4 N }0 {. l0 q8 {: m
return TRUE;" ?( c$ M2 j* U% T: A$ }' a# o
}& D1 O5 h$ n( Z$ Q" [/ W$ W
. X# r3 ~& l; q# K' S- e, S, [登录视频废话:
0 a$ ^, F" e. Z9 q7 _尾翼:
- P D+ Y' D/ ]* g4 x7 Y! q( {; ~1 k9 V; W: K) y
代码:
$ ?2 ~% _* d+ n$ N% y1 H4 f1 q q8 T' e% i& k7 M
void CWorld::SetLight( BOOL bLight )
, U7 L, Q2 y wdurch$ ^& h/ N' @. J' n! E3 Y
Code:
8 O' A& a' ]: T' p4 a4 r G! qvoid CWorld::SetLight( BOOL bLight )
9 n' P/ V8 f- ?9 U{
; A* p% p" k/ v. ] k6 `8 q //ACE("SetLight %d \n", bLight);
3 o$ O7 ^: I% k( L5 S% S& K9 G
2 K+ \( i+ C8 f2 ^: r) v- V#ifndef __WORLDSERVER
6 t2 L8 a# y5 C' h3 M DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);4 W0 u3 q, {+ K
CLight* pLight = NULL;; {6 }# {& N, o0 h8 f7 \
1 ^. {. W3 b6 U3 s! l0 w D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
5 [$ _ r( D$ w3 U9 p, c3 D: j. e" T8 c
pLight = GetLight( "direction" );
( b" F5 k3 E; I8 v2 [3 r' s1 Y
/ z+ {& A" `9 @, |- C#if __VER >= 15 // __BS_CHANGING_ENVIR
5 [ \$ {+ I8 @" l2 y: T if( g_pPlayer ){
: W/ N6 Q# v! t' P8 R ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );, \$ \% X3 x: l5 ^: l K" Q
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!1 j! a! _- ^1 g6 y2 {
{
. Q/ c- h. V* t+ o* j* A0 \" n if( pLight ); s' h R4 P2 s w% h7 t
{
5 E% ^; s0 ^, L2 H' R pLight->Ambient.r = pInfo->_fAmbient[ 0 ];! ~8 U4 C3 ?. z+ J
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];. k, z$ o* D/ X
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];8 M" M3 g/ ?2 X- ?1 [* n) @; h- _! Y
& z) u3 x0 P2 ^# S
pLight->Specular.r = 2.0f;
/ Z6 s6 O' ~0 v pLight->Specular.g = 2.0f;3 }2 B$ V$ H( y( ]' r; `0 `5 y
pLight->Specular.b = 2.0f;
$ e3 i3 w% r- Y
; Q5 A! F- h7 m4 } pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];3 P& e5 q) C/ v
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];9 T7 {/ L/ n% t; E; k) z
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
9 g7 Z4 |! ?$ l- R& P O& j2 w 4 o# T( X { i% f5 m$ f
HookUpdateLight( pLight ); : @7 C6 n- V3 b- c" p& [
/ s. v; L; a; @& K memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: C E) F* s" E1 ] S8 Y: ?- U( o
4 O& U I( J& M4 e: j/ {0 Z3 e* a5 \ pLight->Diffuse.r *= 1.2f;
/ ?* d M/ |8 d/ N( G pLight->Diffuse.g *= 1.2f;
! `- H- L [2 S5 b M5 r4 k# S8 [ pLight->Diffuse.b *= 1.2f;
. s& @# F6 r. n7 A# b, r
1 ^; B9 `; y/ e5 C, G pLight->Ambient.r *= 0.8f;
/ b/ e7 V# ^! D+ K8 Z7 l7 K pLight->Ambient.g *= 0.8f;
6 D# p1 R @* U5 [" k- I pLight->Ambient.b *= 0.8f;
! w' n' d2 H2 T# Q- g' Y ( J8 L3 i g* Z7 @& w# \! L
memcpy( &m_light, pLight, sizeof( m_light ) );
$ f! [2 l3 G" U
. \, I3 k1 K9 T! M- C0 | D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' h# R$ G; p- {) q! |( j& I8 v8 @
D3DXVec3Normalize(&(vecSun),&(vecSun));
5 `6 O. ?6 d9 t+ m: C pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
+ B3 o% H/ D4 D& q3 { pLight->Appear( m_pd3dDevice, TRUE );
) R1 F9 B: E2 {7 r' p& _1 a
9 Y' |1 c! ^, J# T7 l9 L DWORD dwR, dwG, dwB;- w2 r! M4 r; p8 C1 L
dwR = (DWORD)( pLight->Ambient.r * 255 );
2 }2 m$ |% z, ?2 S8 Z0 X2 Z dwG = (DWORD)( pLight->Ambient.g * 255 );4 ~( t0 N3 d% C( `$ n. h2 x W& j
dwB = (DWORD)( pLight->Ambient.b * 255 );
) ^; `5 d! J) j0 r, e" I/ M; E0 J dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& T# j/ E- d. F9 j7 H
}
! ]! c8 q1 m& u! q( A" L3 V+ O }
" w' \" ^; W4 g& ^, K }/ v" b- M$ B, o2 r: R
else
6 y2 Y1 ]4 ~/ } Z' Z; Y" x. v9 \#endif
- k, v" s: t. J) [
/ D' D# a( G# r* I& X7 P: P/ D! w if( m_bIsIndoor )
9 m* U" o) j4 d; P( @/ q {' P w5 Y4 v( c( M$ \# w3 \
if( pLight )
7 @- |% `; J9 U2 q* a" n {
7 u/ I/ j' ~" l; ?) h" U // à??μ oˉè*
1 x; {- ?( u' b. A5 E$ x( k3 v pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;1 N1 P% J8 h* N7 }! K0 j
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;& g$ F) z' ^4 [# e- g5 F, z
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
; f7 Z/ }, k1 l6 h$ g! @. O+ W0 l6 N, s
// oˉè* ??à? * _$ Q8 U6 Q, k! H
pLight->Specular.r = 1.0f;0 I1 I7 Q M9 n. r# W
pLight->Specular.g = 1.0f;# [: K$ G0 Z- j! N7 ~: [
pLight->Specular.b = 1.0f;
9 j& {1 c4 J" a" ~ // àü?? oˉè* 1 G, [: E2 l, [! L) ]! ^+ }/ j
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" t$ V* c4 J8 o! D" T pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;7 H7 v" A$ v. H' u$ H& P% u2 |4 b+ O3 J
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
9 F1 O+ C# `- e) k
. i8 v6 ^8 V9 a0 X) k if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) Z+ l* \' }/ t+ t% n* E
{
/ |) k% ~# c/ d* N0 u pLight->Diffuse.r *= 0.6f;
- z/ Z l% B ~$ }. c pLight->Diffuse.g *= 0.6f;. A, v- U$ I6 D4 g
pLight->Diffuse.b *= 0.6f;! R, K7 _! q' D& {! ~% [- m* {
pLight->Ambient.r *= 0.7f;
' g6 H: d+ c0 g |! `8 @% u2 t) v pLight->Ambient.g *= 0.7f;
/ }9 p2 x3 L, f, p4 N pLight->Ambient.b *= 0.7f;
2 i# D( {6 ^& } }
0 k, v1 F5 r/ R# v7 q T2 Z q& S3 E r- u" S
#if __VER >= 15 // __BS_CHANGING_ENVIR
6 E* G: Y4 E2 W! A; P if( g_pPlayer )
+ y1 ?6 b! A6 v& s HookUpdateLight( pLight );. W* j. J7 U0 u+ j
#endif
7 c6 \. H: b& W memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( }: k2 L# i$ c7 R7 p: D
. s6 b1 [% T" _7 i& j8 N5 q7 P3 |* _3 s( _ pLight->Diffuse.r += 0.1f;( Q8 L4 I' A. ] q" r
pLight->Diffuse.g += 0.1f;
8 Q6 N3 X% O9 K2 G pLight->Diffuse.b += 0.1f;8 h/ X" z& b" N% s: Q! J- d" p) O
// oˉè* ??à?
0 M+ m( {$ n Q8 i pLight->Specular.r = 2.0f;' Y* R3 |6 x; N" T* `# p- O# W/ B; b
pLight->Specular.g = 2.0f;6 b' B7 I0 @1 y2 \; N: v' W& H+ G
pLight->Specular.b = 2.0f;7 |3 b9 F, b2 M5 V+ s
// á?oˉ
" v; Q! U) K. I w! [0 B pLight->Ambient.r *= 0.9f;3 M( K: }# {4 H! H0 [$ N, q
pLight->Ambient.g *= 0.9f;" I: F" O$ p1 ^ V/ Y: ?* n$ [* {4 c
pLight->Ambient.b *= 0.9f;
4 ~! ~* a' H L
- I& l( g( l7 s4 P6 }( z6 j memcpy( &m_light, pLight, sizeof( m_light ) );8 V u/ _% B. n/ O4 W' c
# q$ R% ]' a. @, c0 _ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );4 a5 X! N: K ~
pLight->Appear( m_pd3dDevice, TRUE );
+ j7 L9 `/ U. h + d& I- t, o3 u1 k+ D2 H! A
DWORD dwR, dwG, dwB;- ?6 x$ ]' F( I- o
dwR = (DWORD)( pLight->Ambient.r * 255 );2 @* D0 F4 K: f
dwG = (DWORD)( pLight->Ambient.g * 255 );
. T4 ]$ h( G2 Q dwB = (DWORD)( pLight->Ambient.b * 255 );
5 I! n& L/ [# z2 X+ q5 s7 o dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! S7 V* c$ t+ C1 p8 G& s
}
: O% \; k$ w$ L% ?. T3 z5 J3 u }" N" I3 d6 ?+ U& u8 \
else/ a, L/ T9 Q8 \$ U# B6 `, R
{* P$ J# j5 y0 S+ v# |4 D! a
if( pLight )
; M/ t( P& k$ J( e k1 x& I0 R {3 D% s* J+ m7 P
$ a2 z! l4 X1 \
int nHour = 8, nMin = 0;
+ b0 L H8 g- O. B8 y; @ #ifdef __CLIENT [1 F/ p) ^1 t; r& o, _
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 4 P/ L4 p! V( [3 S# z! B
nHour = g_GameTimer.m_nHour;
2 l: Z9 H6 x8 |9 W5 V nMin = g_GameTimer.m_nMin ;
8 {, v7 A2 Z$ i0 s9 Y #else. W7 Y9 d/ y7 e0 \; Y4 f
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
1 q/ x# m5 l/ _% D3 E if( m_nLightType == 1 ), q4 Y A4 a- {# R5 f7 h
nHour = m_nLightHour;
9 Q7 b7 B' B0 U# V+ C6 ]. Z #endif) X2 R( g K* m j" R
nHour--;& @+ e8 G: a8 y. |# [
if( nHour < 0 ) nHour = 0;5 z" ~, V; [+ R) C4 p+ h
if( nHour > 23 ) nHour = 23;
3 D5 s; H, Q; j4 ?! r5 x1 o2 u; j2 Y- F
//if( m_bFixedHour )8 }1 ]5 c1 g4 }; a
// nHour = m_nFixedHour, nMin = 0;$ ]9 r4 k& W( c, y' A6 ~+ ^, b
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 T# m; E$ g7 \& R# D
LIGHTCOLOR lightColor = m_k24Light[ nHour ];* d9 R: N" E4 L: j
, m7 m5 X% X+ J* V; y: b
//m_lightColor = lightColorPrv;
( G" \7 c L& I: K# W8 m0 a lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;. h5 h. ~% X& G5 L6 F& H
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
8 w1 X: `" a7 Z, Z0 b. ` lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;8 G' N3 D2 ~8 F1 o! ^
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
5 s& m9 |: z. N. C0 m; ]/ b& K lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;: K s7 ?6 s" Z" f
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
/ t6 ?, Z U6 Z& V // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
$ m4 E7 N5 o6 E0 j
# ^- o, N( P$ I: p' E* D // à??μ oˉè* , h. ~) A K; J: p8 `# e* o0 v1 m
pLight->Diffuse.r = lightColorPrv.r1;5 g" p. N4 X t( s8 @ I& N
pLight->Diffuse.g = lightColorPrv.g1;
# T/ H' q2 p$ o- U8 ?" g/ _ pLight->Diffuse.b = lightColorPrv.b1;
* r9 X7 R9 g' ~9 [3 G1 k+ j* B' ? // oˉè* ??à?
- v r+ o$ d3 \( p, L' m( ^ pLight->Specular.r = 1.0f;+ Q, r6 Q# |/ ~+ S& _% @ B8 M
pLight->Specular.g = 1.0f;
- i0 ]5 V& ]% F6 A7 o& t$ ^ pLight->Specular.b = 1.0f;
$ K+ j' q' q' F# m; k1 b0 u // àü?? oˉè*
, e, M& E! o, }2 Q3 v pLight->Ambient.r = lightColorPrv.r2;& Q! c2 [% x% h* s5 `5 N! _+ U0 _
pLight->Ambient.g = lightColorPrv.g2;+ ^5 |" M! I+ n& w) P# J9 s
pLight->Ambient.b = lightColorPrv.b2;
m L: [ E+ h) M- K9 j4 R/ N L" t2 o. V( x9 X. y. n
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; E0 i# C: [$ w
{! j- ?1 v, P, W" E; |2 n; F
pLight->Diffuse.r *= 0.6f;
+ x) l) |/ d. W pLight->Diffuse.g *= 0.6f;
c" O% M9 {% G+ p9 @8 y( f! O4 N pLight->Diffuse.b *= 0.6f;! p5 n$ b- _, Q% b7 A, ?
pLight->Ambient.r *= 0.7f;6 J f7 b3 @( O/ A
pLight->Ambient.g *= 0.7f;. w- H9 l. K2 g. |3 V3 }
pLight->Ambient.b *= 0.7f;
, q, E% b" ~. B" h }
# P" x5 a) n; j8 T( n) H7 f
; h/ K4 h q6 m4 K7 g#if __VER >= 15 // __BS_CHANGING_ENVIR6 j5 w+ p+ _; q+ |+ F
if( g_pPlayer )- a% k2 e, E5 e! b1 a, G
HookUpdateLight( pLight ); 6 j) I9 S2 O( I
#endif
. M% W: ?6 ?, {) A# ~ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
) P! |- n+ K+ `/ a+ P8 D4 A- G" C) V. G5 s$ D
#ifdef __YENV
' H; r7 y* U$ ^& E pLight->Diffuse.r *= 1.1f;. n; w6 F+ g5 |1 O" F, R
pLight->Diffuse.g *= 1.1f;7 K9 f4 ]4 \4 |) M& D5 }
pLight->Diffuse.b *= 1.1f;( e# p; T# B j8 x5 Q, l
// oˉè* ??à? 9 [) ?, ^" {8 l6 b. Z1 e& z4 w
pLight->Specular.r = 2.0f;' a; ?' w; u- y
pLight->Specular.g = 2.0f;
' N( o. u! ]6 c1 d pLight->Specular.b = 2.0f;& R) N. z% G- v" T( d1 j l, z
// á?oˉ * [9 R _' W7 D G% ]7 A/ S
pLight->Ambient.r *= 1.0f;, Z" ^- W$ x* ~' i& F
pLight->Ambient.g *= 1.0f;
: j2 w% v2 Z8 L/ j/ D pLight->Ambient.b *= 1.0f;% n+ T# N/ q% n1 Z* K4 C9 o3 E( D
#else //__YENV6 }' \' m; ^- H3 V A4 g- }
pLight->Diffuse.r *= 1.1f;
% ?) G0 ~) a. c. { ?) w4 F, _* U pLight->Diffuse.g *= 1.1f;
, h1 Z+ F" ]. F$ r) _ pLight->Diffuse.b *= 1.1f;1 i/ b# V3 Z" `+ r7 d( @$ n
// oˉè* ??à?
4 b$ b$ m! `" ?8 k3 f8 n# e pLight->Specular.r = 2.0f;2 j. A9 e$ @8 n4 C
pLight->Specular.g = 2.0f;8 A# P+ u2 n9 m* i
pLight->Specular.b = 2.0f;3 [) ?; |) R/ H7 W; z$ K
// á?oˉ % H% W2 c2 O6 t& m. B& w
pLight->Ambient.r *= 0.9f;
! n# M3 N" F6 a- g( Y' d pLight->Ambient.g *= 0.9f;6 p# f# U$ h& L( L5 h6 _
pLight->Ambient.b *= 0.9f;! v9 ?$ t1 d2 `4 P9 [6 p+ i6 [6 Y
#endif //__YENV
( K5 |: s2 s, k! u! p) N
$ o) v8 F/ G/ L memcpy( &m_light, pLight, sizeof( m_light ) );7 X0 N( L9 k: R t
; y; i9 g/ |7 _( m/ ~: b
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);$ t. z7 V8 h1 U3 h9 q, k
D3DXMATRIX matTemp;0 X/ C- [4 S& P+ k- C$ e( _$ A, `5 b
static const float CONS_VAL = 3.1415926f / 180.f;- h# n( u7 N& R, L0 ]& z' M
; ^& x* {8 c5 C3 f+ r
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
9 G, a8 u+ `9 U$ D8 ~ D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! ]* X$ m0 g# S6 L7 N: s% P
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
! h0 E2 \2 p2 H pLight->Appear( m_pd3dDevice, TRUE );/ x, C3 B- @* x- Q% U9 x2 {
, B3 A- m5 _& t3 {$ M+ Q6 E // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);! t! X! Q7 X* q, h; A! l: ]# F
// D3DXVec3Normalize(&(vecSun),&(vecSun));/ i7 c$ O' I4 j4 h0 z
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); . C# ^1 T1 l N
& Q9 C1 J! Y w ^. ] DWORD dwR, dwG, dwB;
/ G, l3 E7 z/ R0 E- O dwR = (DWORD)( pLight->Ambient.r * 255 );
/ m; M v: M+ U2 V! R dwG = (DWORD)( pLight->Ambient.g * 255 );
% _2 n4 t" U9 k8 z: H9 M dwB = (DWORD)( pLight->Ambient.b * 255 );
" E% m4 u" o4 ^2 O1 ]. a dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 8 O# f/ f+ H- L4 }& D* _
}
6 R. B9 M' g0 }) n; D/ K# P }
+ o/ l5 @0 k) ^1 z3 L) D3 G- _
" R* I7 P+ V H' K! v) w m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );9 v5 p8 `& V- T8 a; O# o U2 K
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) );) F G' O* P( D4 e) b$ g, E+ W
::SetLight( bLight );: S4 C- x7 C$ T; ^; f$ P6 v
$ f+ N& \ j% Z. b* E" s$ r
// ±ao? ?D?í???ó á¤à?
# A' Q6 }- _. y# Q* g, X$ @ m_pd3dDevice->SetMaterial( &m_baseMaterial );+ ]% C! Z( z$ y& g; n
* O8 \+ U' j7 O* g9 L4 }#endif // not WORLDSERVER: ], d J7 t$ R# q* z- ^' e2 J6 W
}- f3 }1 H( y; N! O
并更换
1 i b V$ `5 m5 Q: p: ECode:
% C7 H) J9 [6 X__FLYFF_INITPAGE_EXT
0 G0 _: y& P% B2 }" V- C定义
3 g1 c$ I7 R& Q0 L9 f7 R# J/ D2 | }8 [. c' n. g! s# o- N c
* ^3 r6 m( w! a+ f+ s
$ H! W' M2 Y O$ f2 c2 f7 a2 l0 |9 y# a
现在终于删除我的狗屁加速...; v. l) N$ _' A9 c& f( z, ?
6 E2 X z* \4 F5 l9 ?
- d4 f2 \8 [7 a3 K( V& Q" T! m
& R$ G0 c3 I+ N2 @: _0 V4 R |
|