|
|
食品车:
, y* k- w4 V" B4 X' F1 o尾翼:
9 e0 l: M7 U( x6 H% {5 X7 s. L1 u) O% G/ l( J( _0 I w9 V
代码:: n% i3 u/ N- o6 _1 J
CWndAutoFood::CWndAutoFood()# y9 N/ o; O" N& n; A! Y
{
# j8 {+ W$ ?/ I m_pItemElem = NULL;
) D9 e7 X9 A5 I m m_pTexture = NULL;+ n L. l' Y/ K: D
bStart = FALSE;
8 ~: G8 B- n6 |7 r# n! k q3 G}% j: O# k% U2 U" C) U3 P% ]
: h' N5 G! j" \1 C7 A U7 _6 x8 F' v' S& B" SCWndAutoFood::~CWndAutoFood()9 w# r ~) m9 \! A; s6 X% r3 h
{
! p0 o% Q1 j8 m# `# Z$ |9 U1 I AfxMessageBox( "AutoFood ist gestorben " );
: k! y: v( ]1 M! y) O6 k7 [& ^! G} h8 n- H. R- y8 T
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
3 E" k1 \3 H- ^$ C0 G{8 P" N4 P) U; w7 X9 e$ h6 i5 c
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
8 o) w$ }/ q# E) ?}
! j, `7 S+ p+ V: @
$ g1 P* n6 c- \9 B1 ]( d1 { BBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
+ W F. K: t, H5 v1 w" _. W+ w{
1 `( p- Z6 _" r& s; q4 J6 }* K LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 i# F1 K; j: i; x3 E' Z7 r
CRect rect = pWndCtrl->rect;+ l" V/ w2 N$ \) P f! I! t
if( rect && rect.PtInRect( point ) ), z# V" |; y, u2 }6 a
{# g+ k& V% v, A8 b- m! {" e) p
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );% P0 S* U5 |& a. K8 b9 C4 t z
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 j5 i1 I5 `" `# r& L
{4 T; Q; x1 m$ J% m7 T9 E2 G
if( m_pItemElem )
) F5 a3 {0 v, [* D3 B. Y {* `: z& q: J: u
m_pItemElem = NULL;
. B) y- Q7 K( S# g, x! ?1 t5 v- s1 p }
$ O: i# \" s1 T! g/ i m_pItemElem = pItemElem;5 S$ n% M% j. L2 f+ [# @# A+ Z
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );) y- V3 C5 B: |! ]8 A/ o/ @
}else{: l& }1 {6 R3 n4 X
SetForbid( TRUE );
, D! K, Q3 q3 C% F }
1 s8 h: E& i; T2 X. S5 l }else{
7 _, a7 Y( @; V* s( s$ c0 H; ^ SetForbid( TRUE );
# `, N5 G/ ?, V& [7 V$ W. _) u }
6 L- {- b, E! T! X return TRUE;
/ U3 M* S5 a9 z}
" B Z4 O; y ]0 q. y0 C/ |$ H) ?, y; \8 p/ T C
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ): _0 k- t% Y4 G. W0 k
{
9 @% C. c' H3 }. n! e5 O switch( nID )( v' w% p, p. x9 `
{
( r5 l* j+ C! U- c case WIDC_BUTTON3:
; Y0 Z- C/ M- q2 y6 u {5 W$ v L- N. R1 j2 O5 @' d: X
bStart = TRUE;
- ~0 N$ q- W+ I5 Q break;
; h1 P; S1 @- J2 i- m2 Q }& S( B2 B( A/ n( x; [
case WIDC_BUTTON4:! S$ m+ `# P/ `( Q! g' l" s
{
& P. }- ~# I7 g bStart = FALSE;7 L4 M& O. |6 ?
break;
( X( M! {( [2 ^5 B1 B+ G. L1 N }' n1 e1 I2 U4 s7 G5 Z/ {
}" {( H, E) e$ K1 Z
return CWndNeuz::OnChildNotify( message, nID, pLResult );
( X# B* v8 ^3 p. u7 \$ }1 b3 S}
4 K) |; z7 v3 m- \void CWndAutoFood::OnDraw( C2DRender* p2DRender )
. Y3 l$ U4 v: h. F. K3 s1 x( A{
, w- p; o0 _2 M6 M2 z1 X CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );* j: B) O& U' ~' A8 F3 Y( A. ]; k {
if( bStart || !m_pItemElem )
! s& z& ^% X9 R! f7 Y {
0 B6 ~+ O9 W5 K+ _. ]: w( H$ Q" t i* f2 O pBtn->EnableWindow( FALSE );
5 J( j8 t- \' y( s }else
7 }+ U9 U4 |5 `! I pBtn->EnableWindow( TRUE );8 V# L! u$ I1 i9 x7 W
if( m_pTexture )' V: C* B! B9 l4 M5 g; ^; m, w4 L
{2 I! A, Z: J+ G3 `
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& W' L5 X; x1 m8 E2 V8 ` if( wndCtrl && wndCtrl->rect )0 G/ i, q7 W3 `3 P4 i# W+ X1 J
{8 w: r5 Y) P4 G6 d" j2 _9 K: R7 f7 b7 N
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
# L# A' V' b1 c. R }
% n, }" Z; H1 ~3 h" Q* { }
' G n- b) A6 w}
1 O3 T+ p' R8 T2 I* o7 z+ x
6 Z P$ b- F. H2 N* U9 lBOOL CWndAutoFood: rocess()2 e( C- i) i! B& o0 H# f/ j
{* D1 ]7 {2 s5 L3 h; c2 n
if( bStart )* ~. s6 M. t# }
{# V& n& `0 g7 U" E* n# T
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )/ ~/ a9 X# J) u7 e5 Q
{/ Q) J$ ^3 c) _8 H' P8 h- J5 Z
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
1 M1 C Z" W( b8 E8 |$ V/ g g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
+ I4 Q9 _6 z8 J3 r7 U4 q }else{
# |5 E3 s/ t6 Q% C5 z9 p: `; ]. N bStart = FALSE;
. l( V8 z: v. Q; y4 ] m_pItemElem = NULL;
: v$ a/ |, L5 n" R; Q/ e }1 K" }. k8 [5 D% H) v d8 U. e
}# u0 O1 }4 | b4 g( V5 y
return TRUE;
- x# p% s: U4 H* p: ]! a7 S2 z}# j3 z# ?1 N: n- T0 C
4 p/ x5 ]7 m( N/ d% N7 v- D登录视频废话:
V1 u$ l) N9 Q o6 E# V9 j4 a尾翼:! f* M+ a; u7 z2 d
$ w) N; B- G* t代码:
' q9 z f. G D f4 l' L- i. Q% ^( N4 s* J9 K7 Y! D1 k
void CWorld::SetLight( BOOL bLight )
2 n4 m, ?& Y& P$ w: Hdurch6 q9 S/ }. _ g% m# W7 v& R
Code:1 e8 X' W4 W+ p& W, ?( f1 D
void CWorld::SetLight( BOOL bLight )' \+ U, d% n% b+ _/ @
{
+ y( R$ f h5 a- r) H0 E //ACE("SetLight %d \n", bLight);; O. _* u' T( A+ V: \& J6 \# N
: }% k3 I/ a+ W+ t# K7 G#ifndef __WORLDSERVER
6 c! ]6 F5 I) l% e$ M DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
6 B; {* H, j1 a* r6 v& i CLight* pLight = NULL;$ R0 ?- o; g0 X& B
# _8 P" L- Z/ Q9 g4 P; ~ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
8 ^( ~$ M. {, Z1 N- @; |: ^# B: L4 S7 `# \3 w5 U- ]
pLight = GetLight( "direction" );
6 q6 C: L1 k" A; s: |1 c1 U" ?% d2 Z& o0 ]& Z" q0 S6 N
#if __VER >= 15 // __BS_CHANGING_ENVIR, G' n) f; r* D/ s) i* x5 p
if( g_pPlayer ){% E$ ]& ]$ c6 G4 U9 a6 X
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );7 }" u% o/ ^3 |) x
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
# n% E1 i, Q) y5 T0 D0 E. b {
8 [' f' S3 j2 {# j% x if( pLight )" P- F) Z C% ]) a- u: |, n6 c( z
{
5 D7 ~! I4 j; Z) S p& _% ~5 K pLight->Ambient.r = pInfo->_fAmbient[ 0 ];, y1 _) a. G7 k. Q* ^7 H
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
0 A% C9 z7 B3 z1 R5 P9 _$ v5 v pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
8 K* s3 k5 o4 f! H6 e
7 o3 d& O* v7 G0 p- d, D pLight->Specular.r = 2.0f;# ~- k) p, M/ n3 G% O5 L
pLight->Specular.g = 2.0f;
. C: t' D" V; V! m7 U u, H pLight->Specular.b = 2.0f;/ {& e, e! X" Z
' `7 Q$ t( o: b( f7 M# \- x& \
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
* m# t' D* t) P. w2 [ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
) \* k# d$ E' x* \$ S( V pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];9 w+ @: u7 S3 X& S V, T/ i
* e8 a3 T7 A- ^6 L0 H% J HookUpdateLight( pLight ); : M9 \' H$ l& K4 A9 b+ J
& P" a3 Y9 H7 ?6 p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- P# X9 }; k4 r' f$ Z* X+ P
5 J0 k; W) [( K+ T6 Y( Z/ R* ?8 S pLight->Diffuse.r *= 1.2f;4 g) v) R$ W* g( z
pLight->Diffuse.g *= 1.2f;
( j/ W- Z) U) w: V% l; x% N8 N pLight->Diffuse.b *= 1.2f;
2 T; _2 G) d0 l& Y% Y$ k. R
. O7 Q/ i- Y5 V& p; q6 c pLight->Ambient.r *= 0.8f;
6 A3 Z. ~9 l9 R4 v* ]% S pLight->Ambient.g *= 0.8f;
3 l. l2 e3 B5 \7 y pLight->Ambient.b *= 0.8f;; b6 D, W7 }. v
0 i b/ W4 p) ]& f memcpy( &m_light, pLight, sizeof( m_light ) );
" @" z0 a! o. ]9 X2 h1 H( j2 Q4 g0 c# c$ e) K' d1 \# y5 m( s( I! d
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
, ~& E% a3 f' M1 b' U3 l" A D3DXVec3Normalize(&(vecSun),&(vecSun));/ S- q# @8 K2 N, q! V+ ~. ?* x
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 p, U9 G2 A/ I0 f* a# W
pLight->Appear( m_pd3dDevice, TRUE );
4 j/ N6 i, x' Q; C/ ]! l! I1 e
- x& c* b( \8 p7 h! q DWORD dwR, dwG, dwB;- C3 X7 W' v* q) D& `( e/ ^, f
dwR = (DWORD)( pLight->Ambient.r * 255 );
; w D7 }! c: z0 S dwG = (DWORD)( pLight->Ambient.g * 255 );
' V9 ]3 E- R% t/ X7 x dwB = (DWORD)( pLight->Ambient.b * 255 );
8 S( I/ e0 c7 Z4 N# c6 |( \( [ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ~; ~1 @. {4 o4 u
}! M8 o5 j. ~6 u; q" f: a1 ~, e
}' n7 D& \ I# R* `! t9 b; ]
}5 K0 ]5 e, O& f3 M
else
, B) u {9 v* I& X6 j3 s% O1 `#endif
; m1 }9 B- L1 T
# I1 b& s8 S* m8 J% P* V if( m_bIsIndoor )/ a# U" ?% P9 Q6 I7 i% d
{
3 f6 w3 ?7 S/ V9 t% p( M$ k4 ]! p if( pLight )5 I0 d/ g- E+ R" u' g) d
{
, f4 p* g; F7 d( u, W4 K // à??μ oˉè* ; B2 V' h0 [# ~
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;. D. q$ I$ l! b3 i
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;, s% `0 ]7 `4 [3 s* `8 X
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;3 a I# k+ d ~- {+ o- Z
) S0 s" _% R, x. h$ ]; H
// oˉè* ??à? 8 S7 T$ f5 d* y6 [. O$ w
pLight->Specular.r = 1.0f;6 B4 g' V2 j8 n
pLight->Specular.g = 1.0f;
1 A* O; S8 h+ r9 ?2 v6 n5 W% ^ pLight->Specular.b = 1.0f;( V. K8 B* F& z9 U$ O4 c# H
// àü?? oˉè* / O I6 F- J% B/ {! b# `9 i
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" h2 M: H2 k8 H+ K9 W: M z pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
3 X4 Y, i4 X7 I pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
. i% s0 O: N1 h" E3 A+ H
; d$ \6 z' X: {0 F& Y if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 F9 g7 T' l7 E$ K% H/ `" N {+ w6 a5 l+ B3 D5 y
pLight->Diffuse.r *= 0.6f;$ D! U0 C* J/ O' O3 \& @- F
pLight->Diffuse.g *= 0.6f;; a. A: N. T1 b
pLight->Diffuse.b *= 0.6f;
: o. J$ u7 }0 I( T# B' y6 F* \ pLight->Ambient.r *= 0.7f;- ], {: y( n2 U, F: d8 \
pLight->Ambient.g *= 0.7f;
+ Y v5 o/ C# \6 }7 n1 M" [6 c pLight->Ambient.b *= 0.7f;* L! w) b; Q2 B, ]1 V
}
0 c* m5 L- x' j( q" j! b
1 _8 ?4 y2 [8 r/ n2 x#if __VER >= 15 // __BS_CHANGING_ENVIR
8 g5 r R/ N h( Q if( g_pPlayer )$ S+ g2 D' L5 }% V
HookUpdateLight( pLight );
$ m, O6 s) y1 K6 U7 D#endif0 l2 r: Z! k3 k4 c7 h1 t6 m5 {
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 c! a6 x2 X- m. b. ?
9 z9 r$ Y; d2 v7 \& a
pLight->Diffuse.r += 0.1f;
}1 c4 b' O8 o, L) e4 f) Q pLight->Diffuse.g += 0.1f;( \& G; C9 Q; V1 ^+ P4 E( E1 \0 \
pLight->Diffuse.b += 0.1f;5 \4 z2 i. K0 Z+ P& x
// oˉè* ??à?
$ J7 @/ D/ b: E pLight->Specular.r = 2.0f;( e2 V! o2 m- Z C/ w h- }/ z
pLight->Specular.g = 2.0f;
$ t9 Q2 ` N ?4 k3 x7 W8 j6 e pLight->Specular.b = 2.0f;
" S% E/ k" Z* n( ^8 S // á?oˉ p" o( K8 I( [3 ]
pLight->Ambient.r *= 0.9f;
0 u* j0 w, L# Q/ p- s ^ pLight->Ambient.g *= 0.9f;
# h) V7 a7 n5 {# N pLight->Ambient.b *= 0.9f;/ K6 O/ E7 c2 M/ {6 {& U3 g& M
o/ n4 N" T9 m7 U; E memcpy( &m_light, pLight, sizeof( m_light ) );% u& G+ G( N9 B O2 O
. T. @+ O, o1 d. |( Q/ @# W pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );9 C" w4 B! D; O9 l# L' e
pLight->Appear( m_pd3dDevice, TRUE );
) ?6 g" \$ _0 e0 D8 n0 W
n. G+ m6 K- z. e6 J5 _ DWORD dwR, dwG, dwB;
" f1 X7 `$ e# y# X. |' b( P dwR = (DWORD)( pLight->Ambient.r * 255 );; e$ a+ W, ~' y# |+ I6 L! {
dwG = (DWORD)( pLight->Ambient.g * 255 );1 l4 b5 i# X; ^+ Q
dwB = (DWORD)( pLight->Ambient.b * 255 );
+ K' [7 N) I5 w) i$ I2 L dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
/ f. D) h7 { x1 s' h3 P& P }: [0 O6 B. \$ V2 Y
}+ \/ |% J4 E+ R/ f1 e# J/ r
else( N1 p7 \) L3 B
{
2 l) x; _+ L, n/ J8 S$ }: n5 l if( pLight )/ I8 |5 |7 K9 A8 T. \9 H' |2 r
{5 ?1 N6 Z" t. Y3 r! \/ J7 t
; w+ h: I: r! T$ t2 l4 E7 |/ ?# E0 Z
int nHour = 8, nMin = 0;+ [ K/ v' {1 a" }
#ifdef __CLIENT
. z& Y. u1 ?( C* k" ~ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. - e0 B7 p/ M6 A6 s& ]. M8 n$ T
nHour = g_GameTimer.m_nHour;4 G; _( e5 g! a/ F: H
nMin = g_GameTimer.m_nMin ;
" E e9 } N z& m( u e* A4 Q #else
; C- R* I [$ A; `! j // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
# R4 q% {. r+ T' ~6 H$ x if( m_nLightType == 1 ): ]! w/ q8 S" U* |1 w. g' _- h
nHour = m_nLightHour;0 U! d1 [; v1 u& x7 j
#endif/ _" g4 X6 x2 A. d3 m/ I8 M8 t
nHour--;, J5 f; ^0 @ e ]. T; ]* n5 n+ ~
if( nHour < 0 ) nHour = 0;
& u9 o$ H9 [$ E5 Y if( nHour > 23 ) nHour = 23;
. \* t, d9 I8 U0 ~1 j! H# c0 O7 x/ N. U* S* s
//if( m_bFixedHour )
. y0 Q/ c' F9 ]. p* I2 G // nHour = m_nFixedHour, nMin = 0;# V C* V, I6 m. i5 @$ E% V+ h
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
9 R) B5 \8 n& r LIGHTCOLOR lightColor = m_k24Light[ nHour ];
3 o% m1 N5 E. i: k- ]
3 W+ Y# m: Q5 c //m_lightColor = lightColorPrv;
5 R. w% y" E+ r- r7 e/ B lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
' o# P" z. S) w1 z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
* F) ^/ d/ F) I" O lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;: u( t& @/ l& q
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;+ v/ o$ Y$ L. k3 c6 r
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
, w; n; J9 b! \1 a' X3 F# c2 _ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
8 s, z2 j% Y6 K9 ]: Z9 n' j9 D // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
6 K2 H) Q5 }7 i. E; c8 h$ @' \$ d+ O4 C( ^
// à??μ oˉè*
3 w+ _' _3 A! e3 @5 F4 [ pLight->Diffuse.r = lightColorPrv.r1;
5 A. o) L7 k& K/ j pLight->Diffuse.g = lightColorPrv.g1;7 R% d$ P! f, o
pLight->Diffuse.b = lightColorPrv.b1;
6 X8 G A! b0 }7 p, o" L4 k // oˉè* ??à?
0 y+ j+ P y1 ] pLight->Specular.r = 1.0f;
* `+ a0 b0 E. k. z; j" w: g$ Y! B pLight->Specular.g = 1.0f;
4 x$ g4 _9 l d pLight->Specular.b = 1.0f;8 Z* |! ?$ |% ]6 F( Z1 m1 ~- e
// àü?? oˉè*
9 [, E" q0 w# ~ pLight->Ambient.r = lightColorPrv.r2;
5 O0 [( c: U/ M pLight->Ambient.g = lightColorPrv.g2;8 V& O" t9 S; r0 }* t6 |5 F
pLight->Ambient.b = lightColorPrv.b2;
! D6 y: Y5 c9 K+ L( X7 S. @" e1 S( @: B& e
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.5 n, U7 v! w/ ?" Z( m
{
$ v _5 @7 A* F* O pLight->Diffuse.r *= 0.6f;
' g) b% k7 @4 j pLight->Diffuse.g *= 0.6f;
; _$ B# _" |3 K l pLight->Diffuse.b *= 0.6f;% N2 v z7 ]3 ~9 X n+ T4 ]
pLight->Ambient.r *= 0.7f;
7 V$ `/ C% V) U I% ~5 Y pLight->Ambient.g *= 0.7f;( c) a* k# b' O) |! ]
pLight->Ambient.b *= 0.7f;
: c! p$ [8 O: R0 \ }$ K( H! A2 p$ ^
! b! w& p: a+ k9 Z) k: i#if __VER >= 15 // __BS_CHANGING_ENVIR
2 @ m; P5 I: W4 k! B7 S6 _ if( g_pPlayer )% j7 u+ w$ h2 w; _7 E
HookUpdateLight( pLight ); / U) @, \# \: A4 v+ t+ s
#endif
/ O& i2 b% Y7 z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
% h0 c& ?& b5 H3 S" v. b" o E9 X1 i7 I% \! I- ~
#ifdef __YENV$ b; G" y- z5 v! H0 @; X: p
pLight->Diffuse.r *= 1.1f;
2 B0 |, B- k2 }" ~8 W pLight->Diffuse.g *= 1.1f;: Q: |7 Q) v' L0 K7 O
pLight->Diffuse.b *= 1.1f;
- k+ a. J8 n6 p/ g! N* N // oˉè* ??à? : E8 O9 _& \! V( h- I
pLight->Specular.r = 2.0f;1 j" T% @" ^9 t
pLight->Specular.g = 2.0f;! N& W+ s' s4 ?$ d3 o2 u5 ^
pLight->Specular.b = 2.0f;2 [2 @+ a. i9 x* i: h" b* ~
// á?oˉ [- L* t8 I! T2 m" N% N/ J
pLight->Ambient.r *= 1.0f;
" Q4 Y: y% i. s pLight->Ambient.g *= 1.0f;
9 X4 I0 ~3 e+ w; i/ p ~% ` pLight->Ambient.b *= 1.0f;! e6 a7 S+ r* c8 m( C
#else //__YENV' M2 T1 Y2 ?2 C8 a
pLight->Diffuse.r *= 1.1f;, q. I% @4 {6 S) I# E1 k" K3 i
pLight->Diffuse.g *= 1.1f;
& N# U2 f; J% z; } pLight->Diffuse.b *= 1.1f;9 a7 [7 C6 `* t
// oˉè* ??à? ) m2 A: f. Y# J
pLight->Specular.r = 2.0f;+ n% \ B& `* d5 k+ h
pLight->Specular.g = 2.0f;
& ]+ z1 B: k ^: P5 D* ~ pLight->Specular.b = 2.0f;# q+ K1 e$ [! i& I) m' w
// á?oˉ * \% B' [2 E% g( [& P" d5 k
pLight->Ambient.r *= 0.9f;
6 H% P4 m' h/ e O' ^5 n" A; e pLight->Ambient.g *= 0.9f;
G3 W8 ^1 Y$ {: Y. X# N pLight->Ambient.b *= 0.9f;
0 P9 g8 B4 k9 I% e; O( a8 Q9 y#endif //__YENV
. U6 L% i4 X1 D" @6 N- l . H* ~4 x/ C$ P, ^
memcpy( &m_light, pLight, sizeof( m_light ) );
5 Y( z5 D% U- m6 E ) z8 q7 P6 q0 \& U0 |
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);) @% s: y) u# o8 b" I2 ]9 G7 D
D3DXMATRIX matTemp;7 ]/ p5 M2 f, I7 V8 G
static const float CONS_VAL = 3.1415926f / 180.f;$ U& j2 r9 u4 b& K; z* k
9 S0 ]. s3 x1 X* Y
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);( A( V* ^+ k" o! M L
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
7 k8 i P7 L9 }9 J( |$ m, l' ~ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
+ t, x; p( p0 D: G* z pLight->Appear( m_pd3dDevice, TRUE );4 v$ O+ n! @. _. `
, q+ ~9 V. B% g, u } // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' R/ F: q) P; w- V
// D3DXVec3Normalize(&(vecSun),&(vecSun));
" U7 r. |& Z. K [1 ]0 L // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' E0 B ^8 s. d& T, ^5 @8 a! ]+ g
8 I( Y" E1 E2 T0 F6 c* y% q& l; N
DWORD dwR, dwG, dwB;
4 w1 y+ D5 N; ] dwR = (DWORD)( pLight->Ambient.r * 255 );
4 }2 f1 f: D% p; W9 w dwG = (DWORD)( pLight->Ambient.g * 255 );
8 @. y3 L1 k3 m) i8 M9 V9 Q dwB = (DWORD)( pLight->Ambient.b * 255 );$ E. P) w. {: m% l
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
8 O* Y/ S, ?4 _% P& a1 r2 w5 d$ \ }1 d* b, |8 ?* l6 G9 V0 Q
}' Z; F; z% b2 J4 y6 I
/ s" n# z" z; C1 q- X m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );- z( J+ }) Q$ M& w
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) );/ D' p- b. Z) U1 i( }% {/ g
::SetLight( bLight );
, j7 M, A5 R" h7 j" K4 L3 N
* g, C7 O% s! R3 d; @9 V( S // ±ao? ?D?í???ó á¤à? 6 h) T8 N* U/ n$ f; r% v' R
m_pd3dDevice->SetMaterial( &m_baseMaterial );/ H8 |9 s0 C% R4 B! v. _
$ ]4 {& `; h7 L& N0 C
#endif // not WORLDSERVER; I4 u+ s8 v, x* Z0 E. Y/ D; k
}: X P. A' g( _! m
并更换
q D9 k! d D0 W* eCode:; s6 e2 x9 G R! _
__FLYFF_INITPAGE_EXT/ t$ {8 z5 [' P* B8 d2 j! H& [( a
定义
. U- _' i* m3 W4 b0 R
& T8 N! q2 P0 d+ K7 R# X# G. z" g
. C9 [# ~# J' B$ [1 D) T/ O( l. g; Y' `
* n3 H& Q, g3 J2 D& D$ v3 N# H
现在终于删除我的狗屁加速...9 h) h/ w# V: J9 g2 Q$ Z
7 K1 k) L( M* u% C( C/ G7 Q4 H* X
7 B) }9 l/ p8 M( p
+ N) b& j. ^& C3 i# F1 U: A5 O6 n |
|