|
食品车:. u4 G. \1 S7 U5 |, t) o* T2 }
尾翼:) d; ?. w" a# I" d: [6 ? S; W
3 p% f- w% p v代码:) ~3 S \7 }( O
CWndAutoFood::CWndAutoFood()4 }! l2 N8 E& ^6 `3 ~' }5 z ^( _
{. u1 B# G( b/ A: U
m_pItemElem = NULL;
7 Y* O: Y" l7 p- i' R3 F2 ?4 P+ H; ? m_pTexture = NULL;
3 e+ ~) ~4 J, v) h- F bStart = FALSE;7 F8 z _* }& h/ t8 N4 W
}/ f4 h; D1 q: I$ h: d# K5 n
$ F5 p: ` b5 nCWndAutoFood::~CWndAutoFood()% Y& ]4 d. {1 O" H9 V4 x. r
{
4 V* ]: t. \3 ]- X/ d3 f AfxMessageBox( "AutoFood ist gestorben " );
7 R2 T) u. z I- E}
4 x( X/ J0 U, s$ J- r( IBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
& |+ p; \9 j4 L- }' ]3 @{
$ l% v. v! L3 j' j2 m0 Q! z- M/ e return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );* g& \8 p* H S: t- O1 h3 ~
}4 F: e; z+ ~; k6 ?! z
& L+ c: M# I0 h! N; Z- j" ~/ K2 ABOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )/ h, m' y& _9 [# w: e
{
5 E. x) x R# E3 c# | LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
" o% q% |, N: { CRect rect = pWndCtrl->rect;) a5 s. G' P# a) B6 d+ `
if( rect && rect.PtInRect( point ) )
$ @, V1 s# S& h1 x# D7 r {
# O# L6 m7 b8 K/ u CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
$ {% @* u1 N8 F if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )6 S5 A# F% N. l, W9 s5 z
{
& m# n3 T0 x+ s; l: r% a if( m_pItemElem )
6 ~3 { T; Q9 C {, Z5 `+ G; n0 P5 e- O
m_pItemElem = NULL;
* B% n8 S8 O; N% ] }7 J4 g8 m1 ]" C7 Q$ T2 N/ B3 V
m_pItemElem = pItemElem;$ J- Y" J) B& |/ i7 q4 T" g$ ]0 M
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
$ ~5 l: i, i3 }& h6 j0 M }else{7 {( {7 f; Q- ]( \
SetForbid( TRUE );
3 f+ X6 E* _# R7 g6 Y x }- ]9 Q; r9 E" n" K, b
}else{* q4 Y3 p- U) F6 m
SetForbid( TRUE );
6 r0 a Y* W1 s' p }
. a- U I1 s, v4 \ return TRUE;# _- s9 h, z3 }7 Z1 ~
}
* ]) P9 r3 ?8 t) p, g/ q0 E* O6 h9 |6 D
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
# [, }4 {! }% x: u; i! S{7 e# M2 X- r" m# U+ d
switch( nID )% V( a/ o3 h/ V* D9 ?! D! H3 \
{0 u$ y' ?# ~( x: |) s
case WIDC_BUTTON3:
0 q- ?3 g0 ^* I {
+ G. Y( l; O5 |: N! m, { bStart = TRUE;9 e0 C9 o" o4 Q% X
break;* B/ `+ {7 E) z+ F2 \) f$ _
}
' d. O: U% A" s3 v6 f% M3 ` case WIDC_BUTTON4:% Y$ f; W/ ~; d4 T0 J$ {
{
7 Z( G! Q* E" a4 H( f bStart = FALSE;9 h9 S+ Q" t# d: u# A
break;
4 k9 i2 n) u7 A$ G" J4 C }$ Y, \( e: U7 r; u; E3 D
}
# S% v) C3 s A' b return CWndNeuz::OnChildNotify( message, nID, pLResult );
, U5 O' {; ~; |; {+ ^) J3 w( Z} 7 O# Z8 b+ H5 u5 s# i6 y
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
4 E% O% k# `$ N& j& C1 p6 g' t{0 F1 K/ s2 k* d" C, z$ k# o
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );4 j! T1 r+ a! w9 K. W9 \4 x, Y8 a8 W
if( bStart || !m_pItemElem )
9 S2 e/ w T4 z! D" p3 m" r; B1 a {7 t, Y) W% C' j$ H& O$ q
pBtn->EnableWindow( FALSE );6 U) }0 T# l- T, `4 j' e {
}else
, \9 {0 ]: T$ r( m$ z+ A1 o, B+ z pBtn->EnableWindow( TRUE );
& I9 S' [2 E9 D$ _, Q* @; r if( m_pTexture )7 U8 B, F) J( H2 M i7 Q
{: B& r& K3 @1 `8 @
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ R" c% e" W$ b
if( wndCtrl && wndCtrl->rect ): m+ l0 l& d: X+ n/ _
{" m- ~& x+ r) A- p* \
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );) P) L% O8 }/ Y/ u4 f
}* P: m6 f2 N1 ^
}
7 ^( d, L9 D- }( c: r}
+ j) q5 k& d. M& u1 @5 L# k6 r7 Z R4 S5 X5 m
BOOL CWndAutoFood: rocess()/ B1 N1 C# J' I3 t/ W5 B
{
, l6 t8 T! ]1 S% c; | if( bStart )
9 q! ^* r$ n3 [6 I& s. _8 c {
7 j2 x4 e8 k- ?- A8 @ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
6 Q# z8 M8 P4 M/ j, H0 U$ t { p5 c' ?, s! A; C+ U! a' V
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
/ X- V( ^. W: R* L& i4 W g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
8 p& W$ [! J! D6 J7 y0 @ }else{4 F- n/ @ n% K7 J2 j
bStart = FALSE;
1 C4 z- P* B- x9 S$ Z m_pItemElem = NULL;/ B8 A& ]" f8 W3 {
}
, r# r% Z, y1 ^7 V }( b. u4 R" R! D4 ^
return TRUE;
$ j# b1 J% l5 N9 s$ [: \' V& g}
& z8 d }0 l% ?3 m8 E% H/ `1 E$ V3 X! ~3 z
登录视频废话:
5 F" m$ p. G4 v尾翼:
' N! v4 P& J6 m9 m' V1 a, H4 A. H6 X. a( h
代码:
$ p, ?8 G9 F ?$ N% B' _
C- P) S `& M8 _) _9 K6 J# ^void CWorld::SetLight( BOOL bLight ) y( H) p( i+ s Y1 V q6 ]
durch
6 U% H# z0 c+ @+ S3 n9 L% h$ wCode:! E- _+ [0 ?4 ]; H& P( c I$ i: z
void CWorld::SetLight( BOOL bLight )
, l5 @5 j+ G8 G, h5 l w{0 _; H/ X9 g7 ^( `# I+ ~5 k$ @9 Q) O
//ACE("SetLight %d \n", bLight);* R$ Z% I$ M1 t
: h' o2 z, i! l$ l4 B9 t7 l; `#ifndef __WORLDSERVER
6 b3 ?, r$ C) J6 }3 p7 Y DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);* @. X4 f! v9 V
CLight* pLight = NULL;
7 w. _; C# b8 ]. g* {
* x. K# }# g/ ^$ c8 q1 D6 { D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );$ x2 ?- O0 P' T3 h
# ~" i& K& g1 X- y
pLight = GetLight( "direction" );9 i# |0 u2 C0 M! k/ t7 C6 k
) V+ w6 a( I3 Z7 Q1 M#if __VER >= 15 // __BS_CHANGING_ENVIR6 u: f; ]& k4 e# }3 f
if( g_pPlayer ){3 }5 k: s, s+ {2 \8 F* w" M& J3 G
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );7 w' ?* r, H. N8 g
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 K: z x; m0 h
{
5 n% k" \; H0 d H% [ if( pLight )$ ]6 ?, d* j% r
{
, U/ q" L8 F l1 k5 Y! V. j pLight->Ambient.r = pInfo->_fAmbient[ 0 ];9 u% e2 U# R. z C: M( W
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
3 h- h# y2 y0 d3 a1 _# ~% F, {- l pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
$ a6 p3 r; t& S& @; O7 S3 X. Q. d4 D( ]3 u$ L
pLight->Specular.r = 2.0f;
# A. J# [( S: ^ pLight->Specular.g = 2.0f;
/ s: ^! S: r! h. E. S pLight->Specular.b = 2.0f;
( C, B7 R" `# d$ m : w2 `5 t3 S0 l
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
( m# z9 v: z9 l9 a$ t pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
K, m `: a* N pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];6 s0 A M( C+ w# p, Q& j# A
6 n' j" e# U ]8 \0 x R* I HookUpdateLight( pLight );
3 L1 z9 _8 O" Z3 @1 R1 X# l) I' k
1 V! u3 b& h: ~% v memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: _8 ]' z( F* V# L
6 b7 M/ P9 M0 T/ D+ A$ e7 H pLight->Diffuse.r *= 1.2f;- p* f7 g: |+ W; X* Q# O4 t& M
pLight->Diffuse.g *= 1.2f;
9 a* z5 v9 i1 q( e+ x8 L7 I pLight->Diffuse.b *= 1.2f;8 S& {0 i/ n4 u# O7 w. l
) G1 A" ?# c6 G4 r& E% P4 R- ] pLight->Ambient.r *= 0.8f; u2 E$ k) [& ~; X& j
pLight->Ambient.g *= 0.8f;
& M C: H, r0 ?0 ?7 Q9 s pLight->Ambient.b *= 0.8f;5 N4 D/ K, ~* S! I6 \0 e0 n& ^
' k0 O* f1 K. P b8 J
memcpy( &m_light, pLight, sizeof( m_light ) );
( q, J3 c% w+ b% B) ?! |' `/ J+ Z5 s1 p6 c+ u5 n3 i
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
n6 l* j+ p- k; U1 S& w3 n D3DXVec3Normalize(&(vecSun),&(vecSun));
# C: E0 k- f! Y3 q/ U pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
! F; D' `: f* a$ {, g' c m, _ pLight->Appear( m_pd3dDevice, TRUE );
3 f. N3 r1 M7 e) o7 u6 Q, C* g 8 M0 B$ l2 G y, ?' @
DWORD dwR, dwG, dwB; c; m- B% E* z, Z. z- U
dwR = (DWORD)( pLight->Ambient.r * 255 );
3 X) z2 Y0 [& s6 W dwG = (DWORD)( pLight->Ambient.g * 255 );
2 ^3 y% M; ?/ n: i) u dwB = (DWORD)( pLight->Ambient.b * 255 );
, X, a+ a$ u4 i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! D) I1 O6 Z1 I }3 s4 `% |; P; e8 y$ J
}
3 d" j0 T p/ s }
' m- V l$ _% L) W else
2 u- L5 H4 o8 o$ e4 }6 C% f#endif 4 D" m$ y( P+ j' P0 W; h
! y3 E# h/ W6 H$ @" Q: @
if( m_bIsIndoor )
. O6 n1 i5 g; y U$ l {
" Y8 c' @ m7 T# @0 k if( pLight )! X0 d# c+ p F! g# b4 G% o) E
{
$ ` k$ A7 c% Z0 l5 [5 ?2 y // à??μ oˉè*
$ z3 ^, N3 t2 V& Y0 O pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
* R* p2 ~8 V- c( U) \ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;! Y$ t; P ~8 o; k/ K5 R: P0 N1 T
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
3 Z0 e+ ?0 e0 ^6 ~ V# J+ b$ }( ~. l' @9 s
// oˉè* ??à? ) ?. l! k1 m* @+ J
pLight->Specular.r = 1.0f;
/ l \" v. J' H, I5 t9 {4 g: j pLight->Specular.g = 1.0f;8 X- x$ R! L- H3 }4 t9 A; |: m
pLight->Specular.b = 1.0f;$ b6 u7 V1 Y O) Y' p
// àü?? oˉè* , X3 ^3 F% q5 r& A+ C
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
. R* k3 R. H1 \+ ^0 |; G% K pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
: B% O/ S7 X: p- D5 L* y pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;! d5 q* F" M( S; u7 B4 N6 c- L( ~+ P
6 h; V t n X2 `2 p% [7 S5 b if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 _' t4 u! N6 M7 P: H* w7 k0 K
{
0 m) F$ M- U1 V pLight->Diffuse.r *= 0.6f;# U* [5 {7 X" `: c B
pLight->Diffuse.g *= 0.6f;- _" s2 E: Z" S7 p# R4 ~. }
pLight->Diffuse.b *= 0.6f;3 A; S7 I+ e8 e/ P L: Y2 h
pLight->Ambient.r *= 0.7f;) F' L) a W5 E/ w! O& |6 w
pLight->Ambient.g *= 0.7f;4 t, K3 T9 ?% E
pLight->Ambient.b *= 0.7f;
- \4 q3 W, t( T6 Z }; Z4 ?) c; T4 v% W
6 d8 |+ f3 b9 G( B
#if __VER >= 15 // __BS_CHANGING_ENVIR
: }. j: F. b) M. U( { if( g_pPlayer ): @8 X3 Q3 ]$ h! ] U# P/ r
HookUpdateLight( pLight );9 W# M: x& U/ [: u. [, X- Z
#endif# K g; |0 i1 [$ z C+ b0 G* W/ q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 z3 _. H3 M- A+ h) A0 ^' d4 X; w
6 c( f: w) r) G pLight->Diffuse.r += 0.1f;! n3 c g' U3 M2 D
pLight->Diffuse.g += 0.1f;
- d# M8 e0 `: d& m: M pLight->Diffuse.b += 0.1f;8 a0 \* r: t4 b' S% y( Z( y
// oˉè* ??à? 4 l" f- r. Q" h5 u5 ~
pLight->Specular.r = 2.0f;
" x5 f6 b+ N) }! B# W pLight->Specular.g = 2.0f;
3 a5 r- w6 Y0 G k9 n8 Z pLight->Specular.b = 2.0f;" O; d6 O: n6 f
// á?oˉ
: P1 Q/ Q7 B6 \8 a( C6 {* ~" C pLight->Ambient.r *= 0.9f;
5 F/ t. ]& L- G8 K pLight->Ambient.g *= 0.9f;% y4 g2 f# t9 _
pLight->Ambient.b *= 0.9f;
/ x" N; j9 z( u3 L( J/ X# z% Z7 v2 o. k4 J# l
memcpy( &m_light, pLight, sizeof( m_light ) );' F9 M. n' q, o! C; q
/ T8 P# m6 \7 ]- S& @ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
# l7 e6 f! i, y; Z pLight->Appear( m_pd3dDevice, TRUE );
6 W( B9 G) u9 V8 n# Q+ A2 ] & t0 I& s4 j: _0 n& }4 z* Y ?
DWORD dwR, dwG, dwB;
2 g. T3 h" P) e" [- W7 o7 M dwR = (DWORD)( pLight->Ambient.r * 255 );
3 E+ E% L3 J3 ~# Y- c+ z dwG = (DWORD)( pLight->Ambient.g * 255 );
D5 c. [! y# J; @ dwB = (DWORD)( pLight->Ambient.b * 255 );# z: R0 J6 s& R+ a, |
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ q( R& x9 Q+ q, {& ~ }2 u3 f' h8 o9 R3 A! ~1 C4 ]7 g- r4 m2 n& k
}
* m+ l( J6 t, Q- @) N; M else# u9 d# ]; X" h
{6 e( j$ ]1 {( A5 p- Q$ k& o# i
if( pLight )
`5 M- X0 @/ y* W2 ~0 J. G/ v {4 V! W. g6 J. W0 S/ J
# c$ m6 K8 Z# n
int nHour = 8, nMin = 0;
9 a% W- q7 \$ x# Y# i1 R% y #ifdef __CLIENT
& p- X: N, b! ~( V // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
- ~4 x( F9 v, b, ~) [% C+ q nHour = g_GameTimer.m_nHour;
4 |! B$ ]4 s* b2 g6 A nMin = g_GameTimer.m_nMin ;
& k& m0 |% p* n* b #else
8 c3 K( I1 i0 Z, G8 M* G' ~ // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
* a& Q" ^, J* _6 d3 }1 M6 t if( m_nLightType == 1 )$ ^+ W) Q* a- `
nHour = m_nLightHour;
5 L, m) m% u$ H4 |. Q% H+ N! B #endif, ~- J& X7 M) a" g
nHour--;
1 P" A D3 e$ t# N- K: _ if( nHour < 0 ) nHour = 0;
, e3 y* D7 F8 V; J- ` if( nHour > 23 ) nHour = 23;8 P& R) W( S7 e- X3 @+ y
4 K. \9 i* ^, |6 R5 W2 G# A //if( m_bFixedHour )
, E. A. G9 p% i# E$ j // nHour = m_nFixedHour, nMin = 0;1 c; W2 h7 h" V; f
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
3 i; W' S- F/ ]0 _* ]! N LIGHTCOLOR lightColor = m_k24Light[ nHour ];
; d! Z" V% n; X ]/ |1 Z
8 R1 Z, j' h7 F" t% O //m_lightColor = lightColorPrv;- D y1 a/ H' o* L; A/ F; T% s
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
% _' H0 y9 P; f2 { lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;7 `& N N+ W4 }& P1 g
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;9 t p; R' w# N7 c- c( x, O
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
' k8 U; v, z7 y% J5 Q lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;2 m* }) o9 S5 z* B+ l
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;: n# J, t: s2 ?! j
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)) M; U& A' ~2 Y) f$ s$ t
2 E* I m( i9 C; T6 f6 g! ? // à??μ oˉè*
: X. J. X4 t# w5 R$ d4 ?+ D2 J4 J* m pLight->Diffuse.r = lightColorPrv.r1;
! h8 \; W0 N% N: h' U pLight->Diffuse.g = lightColorPrv.g1;: m: d0 |2 z' U* m- p
pLight->Diffuse.b = lightColorPrv.b1;
% O. t3 K+ {3 v) U9 q2 [. n7 A9 z // oˉè* ??à?
# p: d3 k" j* H+ q pLight->Specular.r = 1.0f;
( L. u$ E {4 d/ p2 Z pLight->Specular.g = 1.0f;
; B9 z+ E! ?) G; z( Q pLight->Specular.b = 1.0f;; u4 K, z/ N0 e8 T
// àü?? oˉè* 0 s; f, w8 u( l& e s
pLight->Ambient.r = lightColorPrv.r2;. U* o% B2 X- l1 X
pLight->Ambient.g = lightColorPrv.g2;
/ ?% G3 R m, }$ m8 K/ d$ j3 ]4 W pLight->Ambient.b = lightColorPrv.b2;
d& a. ]# y9 F0 j4 y S' G5 R) x! t* }
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
/ g8 t& ^. L. M) E& w0 r {
6 |3 [! U$ j6 |* T+ `* [) ] pLight->Diffuse.r *= 0.6f;
. P$ A \! ^$ G. b( d9 ^% K! G; I1 V pLight->Diffuse.g *= 0.6f;
- C } m1 k* R: ?" M: p7 i: | pLight->Diffuse.b *= 0.6f;
5 I- v; `" s, E pLight->Ambient.r *= 0.7f;
3 A7 D& |! s- W0 N* } pLight->Ambient.g *= 0.7f;9 x! ~6 h! P+ G; h7 c7 S+ _
pLight->Ambient.b *= 0.7f;
* k6 |0 g. H$ m3 h0 z' b$ n }
d+ h) w1 A5 D) s; y: t# D ) n# p, B R$ s+ q8 T
#if __VER >= 15 // __BS_CHANGING_ENVIR* n# k" e' A- R, D
if( g_pPlayer )2 R' ^( u0 Q5 M% h2 K' F
HookUpdateLight( pLight ); : j; |- O) R4 O! f. p
#endif9 i4 _. q6 h6 u$ J3 y6 F9 S
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );/ K. G+ Y" D; Q/ N3 k/ M7 i j$ X4 ^
. H; l. b% H6 |) I0 b
#ifdef __YENV: A: ^9 p& Q# g9 A. z3 [
pLight->Diffuse.r *= 1.1f;
6 E0 A; x+ b0 }2 [+ K pLight->Diffuse.g *= 1.1f;7 @) g; t" K, S9 P
pLight->Diffuse.b *= 1.1f;
6 Y; t. F, t" x( @$ p // oˉè* ??à? / R; ^6 f. g/ q3 G; V, J3 l
pLight->Specular.r = 2.0f;8 L4 O9 S1 `5 f' l5 Y1 |
pLight->Specular.g = 2.0f;3 H7 ~; R( E# \% [$ ]) o& B
pLight->Specular.b = 2.0f;- G1 w ]% b3 m& M! ?; S
// á?oˉ * E+ C# S' J$ t# w$ I
pLight->Ambient.r *= 1.0f;
( T7 e2 G% D# R8 l" g pLight->Ambient.g *= 1.0f;
$ U3 g; `- E# w5 i6 q9 ? pLight->Ambient.b *= 1.0f;' d; ^# ]9 y# a- S: z2 W* X" f( u" @
#else //__YENV4 ? q% {& { R, Y' g6 Y
pLight->Diffuse.r *= 1.1f;
6 }/ F) W; N1 d+ P% l" O% d pLight->Diffuse.g *= 1.1f;4 K8 F$ T. c+ t: _" w" {& V$ d
pLight->Diffuse.b *= 1.1f;
# p. ^4 O9 Q. g) X5 p' A1 U' ] // oˉè* ??à?
1 b( r: U+ A" V( x5 [/ P$ s$ P pLight->Specular.r = 2.0f;1 y! a$ V8 y9 f ?+ x, r
pLight->Specular.g = 2.0f;
- n4 o' L# m, X4 \5 f+ x# I pLight->Specular.b = 2.0f;
& M$ t0 n% L( U( J, P0 A& [ // á?oˉ ( j2 ^1 C: ~3 E: ^( |) S) C
pLight->Ambient.r *= 0.9f;
; w+ v; V( \" D! ^ pLight->Ambient.g *= 0.9f;! e- T. n0 V* U; S" E u @8 v$ ]
pLight->Ambient.b *= 0.9f;! w3 w$ j7 n+ y+ V8 M6 |% S, G4 V/ t
#endif //__YENV
7 F. c. Z" v% C6 ~9 G% F6 D; n
, |% k' ]: i: \0 C" Q memcpy( &m_light, pLight, sizeof( m_light ) );: h7 e7 o2 t: k5 L4 P
5 O- |. z! F4 X8 E! O: \* p D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
) {" m3 |- E% Y1 m6 [. g* r5 X D3DXMATRIX matTemp;3 a9 J" @' X! W& ~, H: S
static const float CONS_VAL = 3.1415926f / 180.f;0 b1 P6 P; T* p% I+ `
+ R9 ?9 R* y5 a# Y- S
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);, u( ]) H) J+ _, Z4 c# Q* I. T, }
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
* K- m! x' B. j! O5 C pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
+ ?8 Z1 R8 }5 `- L9 V6 V( G pLight->Appear( m_pd3dDevice, TRUE );
( D( M# i" `+ x/ N8 z
/ |, g g& I& n4 m7 m // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);- b3 r# v, T5 w
// D3DXVec3Normalize(&(vecSun),&(vecSun));
$ d1 h, F$ B2 G3 g, J. S& ]; o // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. z% c; z; Q1 B% u# n
- e; u) D3 F7 y4 P' a) v/ y DWORD dwR, dwG, dwB;
* x2 g1 w) w" |( C- l1 o dwR = (DWORD)( pLight->Ambient.r * 255 );
; e( _+ A% @6 F* g) A: b% \$ G dwG = (DWORD)( pLight->Ambient.g * 255 );
v8 ], ], r7 ]2 K dwB = (DWORD)( pLight->Ambient.b * 255 );6 r% m6 ~- v1 Q
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 3 \$ D2 r; u# Q2 n& V( ~
}
& b' I5 S$ s. ?( | }
* P! ~6 o/ b8 R* W
" v5 b( \/ Z' @( e7 ~ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight ); ]( O0 c0 I9 P- t
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) );( W6 K5 O5 u% X3 \ y+ x* h# u) Z
::SetLight( bLight );
5 q& @' E( ^8 p! @* a* d! G0 n% z+ y' U" g1 M2 Q5 k
// ±ao? ?D?í???ó á¤à? $ v( p; b k. F
m_pd3dDevice->SetMaterial( &m_baseMaterial );
0 L* S; f& e+ h2 Q $ b, @! s7 z! l4 J7 O+ j
#endif // not WORLDSERVER
3 O' ] D8 l9 n( w3 K. R}; N8 c; h& h1 |
并更换
$ d; i% q+ T1 _# B2 N1 XCode:$ R+ X z9 e# S; ~! D4 X3 q3 N
__FLYFF_INITPAGE_EXT1 |% @+ T% ~# V" v% h& e
定义% X- L% s6 Y( C
. t/ Y5 u# X4 r. [( w; Y
" J- n T. {: \+ {5 {
1 l+ [: F5 T* ^* j' S! ]3 \+ R# p( Z' W
现在终于删除我的狗屁加速...8 E# _5 e7 a! K2 d, @
8 y- Y" t! z- U/ x5 d8 ?+ K; z% x* Q; f' `+ b
: y7 ]# R2 n$ D* \& ^( n
|
|