|
|
食品车:- m+ ~4 b) B9 ]/ P* @; P+ V
尾翼:
: C3 R- m3 \9 @5 R2 h" J0 Q f% P( r* D; i% E) k7 t1 u P
代码:
7 f( B: w/ v2 L# c% ^4 [# T$ vCWndAutoFood::CWndAutoFood()0 h; N+ a+ U# h2 E, q
{
- I" B# p/ i- [% r% e m_pItemElem = NULL;. V) f- |) q( ^+ _1 z
m_pTexture = NULL;
x) N4 N- u" O/ _ bStart = FALSE;0 e9 y: f0 @" R/ y2 a
}
5 {5 m& |% e1 x9 b" }' c
3 k4 s' E, ^' c1 K" H- f8 a8 JCWndAutoFood::~CWndAutoFood()4 k/ T" i& b6 K# j5 n8 X7 t8 W
{
' S. v' H b4 \ AfxMessageBox( "AutoFood ist gestorben " );
/ y& {2 t. Q' e2 E}; \* G, v' w8 n3 n4 @
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
1 A3 L8 ?: T4 Y/ L{: s4 P. a. y. g& a; I* L+ N( |
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );/ a; A+ A6 _% j0 \( v! {
}7 l; l* S2 Y) H1 `
! M6 N2 M9 P, _; B
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
7 `0 A: q% W' ` q# f y2 w ~{
# x- W9 H8 H7 U/ s2 \ LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );. `8 b4 k+ x5 [! ]5 ]% b& N E
CRect rect = pWndCtrl->rect;
5 Z( C" j6 [3 ?# ~ if( rect && rect.PtInRect( point ) )$ Y0 d5 Z) r. R: \& G# J6 r
{
9 W$ F$ S4 M: T2 e& | CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );9 |" Y4 R, I4 e M( ?7 [
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )# O' \, Z* ]3 [; w8 k `
{
# P- _9 @8 N' ~6 F. E: n3 m if( m_pItemElem ): i$ ]3 _3 G* ?
{
& W0 C# ~, x4 g m_pItemElem = NULL; o5 Z. X) U& t8 J0 r p |
}
% I# R4 S' J5 R, X: }# \* ^$ B# j' y. w m_pItemElem = pItemElem;
/ z& p+ Z: z& y) i m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 Q# K9 a$ g, |8 s2 [ }else{
+ [. L) H3 F' c$ Z& R9 b$ R SetForbid( TRUE );
3 g. ~5 G0 P4 _6 q9 |) Y% Z% l }
: I6 q" x! W( o* M }else{
/ @' u4 G# V8 x* |, U SetForbid( TRUE );
, \$ f6 V Q X0 Q& Z7 [1 B! T }
9 X7 c/ l& x) P return TRUE;+ a% p0 f; w8 ~4 J% O! [
}3 W' ~6 b# u! g
# T! e5 N b$ D8 o8 D( f: Z% n! p4 P
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
, e0 Z7 [! V! l6 g5 Q" D/ X{
' I) {% ` Z5 S) B& ~ switch( nID )# u- i O9 m3 r% G$ A
{0 |6 _/ l5 T5 @
case WIDC_BUTTON3:: O9 k6 C+ B4 T6 W$ u3 B
{4 ]1 `7 Q- k3 ^3 f. }3 U! C$ `+ { g
bStart = TRUE;
9 }$ g* W7 E6 D$ h break;+ z! ?( g+ w$ g4 i; x% I
}9 |- R/ D, a9 U! c4 y
case WIDC_BUTTON4:
! H, n6 X) I: p$ {/ F0 x" U {5 Z7 g2 J- g/ |4 p4 o# I
bStart = FALSE;
4 s6 Z$ m" i, Y# y! P$ ^ break;
9 p" j0 Z, ~: t" |# x6 v }
5 l* K. o* I' F9 w# A# |& N; ^ }) }$ ?0 u2 T; T. u$ t! W
return CWndNeuz::OnChildNotify( message, nID, pLResult );0 i3 j- ~5 J. \- m) y
}
- ]5 }- L4 F) }1 o2 q' ?2 Mvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
1 v( e! w4 ^7 O# N6 P& D p{% @7 u: x4 Z0 \% m; k& D* N
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 ); H, n: J) z M' _& ?; @
if( bStart || !m_pItemElem )
2 v% w% H# |. W+ v- @* R {' A& u# }- t* ]' k2 w1 G
pBtn->EnableWindow( FALSE );4 ^- w# H4 H1 g
}else# K4 R0 l6 m8 _, i6 w; e
pBtn->EnableWindow( TRUE );2 T8 A8 l F" F3 g8 O$ b1 R) J
if( m_pTexture )6 ]' W# B' E9 q" s2 i7 ?
{
# p2 t. O r) W0 s& L7 i LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );. X' U( h5 s+ A* Q$ k% e
if( wndCtrl && wndCtrl->rect )
( o. \1 Q0 g; b( D {
' E6 q4 k* T# o8 ?* R( B6 f m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
K0 Q; M2 f, X0 U; r }) z$ @: |1 c$ R. U
} j3 C* o" s7 b* p) r- r2 X' g# J
}
9 I2 a2 P& V- E2 u9 w( K& U/ m
' z$ ^. v n8 Y- FBOOL CWndAutoFood: rocess()8 c f) ~& g4 L9 |' P7 |( D3 m! w, W4 y
{
; q- o$ G3 v5 v6 H# O- C# ` if( bStart )4 N% l4 ^ R: @. y6 V/ d3 i5 e2 }% k
{
+ q7 R- O) u6 w- I I9 } @* J- y if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
3 g6 q% J" `/ S {
" T6 U/ Z& k( Z+ b3 E if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
$ U9 Q# {3 s/ [3 v ]" b0 N; Y. T! r4 Z, s g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
( x6 l1 E/ c% J- L" a }else{
0 I/ l, t Z' f C! Z bStart = FALSE;! r; u+ d8 D5 N! C" c) c
m_pItemElem = NULL;
9 G6 {( w& h! x2 |( g }. D; w0 `; a' |2 [ X) p1 g- G
}# f: s6 K k, B5 C: ?
return TRUE;
$ U, M8 L) e. R# ~! C: q0 g& r}4 [, @" q9 @& w- f
- o: J) ?$ I2 c1 [) T
登录视频废话:
, E( C, F$ I5 R2 Q1 s尾翼: i m! x" i K7 n- t( j, `
8 ^9 X4 R+ ]9 d: D5 Y代码:2 B/ j% _! b5 S
) O/ l/ B0 w5 C) b8 o4 [void CWorld::SetLight( BOOL bLight )
: i1 g y' L5 l* B X: idurch# n& u9 B1 N) \, q
Code:
+ S: H! | F& S" J" Dvoid CWorld::SetLight( BOOL bLight ); i1 ^1 l( t; U- [( _
{ v- u4 l' N7 W$ L
//ACE("SetLight %d \n", bLight);6 b/ O, o8 r# N' [% r
& B: Y2 E* E7 ]$ c+ ^8 |1 A' k+ ~
#ifndef __WORLDSERVER z! F" j( V3 e S" X
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
+ l2 `( M; R5 Y- @2 O8 t CLight* pLight = NULL;; W$ h; ~! R$ _7 S( ]
& z8 j6 ]4 R8 U6 k8 [& S
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );5 Z9 O0 q8 T* @# V- m0 g
% d4 R% E" X# Z8 b2 E; o pLight = GetLight( "direction" );
3 R P6 n; P/ W) {5 y/ F7 L i' i( T2 ^' l! m% f
#if __VER >= 15 // __BS_CHANGING_ENVIR$ a' u! {. }+ i6 w3 |* k+ g; Y) Y
if( g_pPlayer ){
3 O, W2 x9 d% ` t# d' _" P ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
" m, ]; g6 g' `& T* L5 l7 r, J# e if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
8 o1 |; T% i* n4 G! I( ?2 W3 o- P9 U {
( c( f* U5 S( C if( pLight )
! Y# @# x; q# G; ` {
1 g. _8 f' B% G, a- t pLight->Ambient.r = pInfo->_fAmbient[ 0 ];$ f& ]5 k2 y* X
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
1 o3 k8 @ u% W) \) c pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
5 N& g! p: V$ ^* {5 k6 [
2 F& \; @& T, w5 @ pLight->Specular.r = 2.0f;
7 e% p, Q" [9 A( ~: |/ H/ K, V pLight->Specular.g = 2.0f;
4 j" P& y' ^1 R2 L6 v pLight->Specular.b = 2.0f;
! ]* ?3 b* Q* S( a0 T+ z1 a! a. w* }8 M ' l) _0 P- V0 \; e
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
: }" b( v+ a2 k* O pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];7 B* i' o5 c. l- S7 o6 g9 k+ h7 Y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
+ q4 ^5 Z. Q- v+ Z; W9 }7 Q1 O $ L0 P' C7 v' B8 b
HookUpdateLight( pLight );
" S$ o( J# T7 E2 C
6 o- p. a% C* x2 h memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
W7 }* n7 w! Q9 ]0 Q% y : n; A1 J: \5 \; e# `- n
pLight->Diffuse.r *= 1.2f;
* M8 A N9 ]" m" K7 m' J X pLight->Diffuse.g *= 1.2f;
- e( ^4 j* a$ O! K pLight->Diffuse.b *= 1.2f;
5 i' `5 N3 ]& T0 `7 j
; _5 w6 W5 c2 ~9 U" j: C7 K pLight->Ambient.r *= 0.8f;
% `( f6 H0 ^0 t6 F& X N/ i pLight->Ambient.g *= 0.8f;
]7 Z9 _+ v9 x; U9 \ pLight->Ambient.b *= 0.8f;, z8 K) @7 k V6 r7 ~
6 h1 j3 C- n* a# |% P' Q
memcpy( &m_light, pLight, sizeof( m_light ) ); {4 c# W; [! V+ _6 ?
0 T! @7 G, d7 b D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 _0 [: V1 `: p8 \ D3DXVec3Normalize(&(vecSun),&(vecSun));% \+ B6 p; f6 d+ h, S+ E. r9 w
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ( l# B6 \+ ]7 b4 a# o; N+ Y, g5 ?
pLight->Appear( m_pd3dDevice, TRUE );
/ a' D1 _9 |2 t
. g: w* `6 j$ Z& x q6 W DWORD dwR, dwG, dwB;/ U% e" O' Y& S8 h8 |% B- ^
dwR = (DWORD)( pLight->Ambient.r * 255 );
- f# l, J( K/ F dwG = (DWORD)( pLight->Ambient.g * 255 ); D* R6 @8 f0 q4 e5 b0 Q% U5 { s
dwB = (DWORD)( pLight->Ambient.b * 255 );
0 Q5 ]6 z7 b4 v9 c dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 v) G, y( d a, T/ u B }
5 L) n9 N* A. r! L# a p) V( ]2 ~ }
! {( b+ ]: A- K" B' F" H }- k/ T y* f# k' f; c& L
else: a5 R2 H4 O* a5 ?6 v
#endif
: N# B) Z! x( y2 {! n5 [4 r; j" j0 [+ B6 u5 B" n
if( m_bIsIndoor )3 ]8 l! N; I% W( p; b
{- n1 i; f- R. G- F; z1 d
if( pLight )( |9 P D9 T$ |8 S/ V$ \$ p* w
{ + D: s* \$ v" n
// à??μ oˉè* ; I0 m) ^9 _. [- \5 J7 t
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;: b" T9 Q) p. x5 I' W1 B8 |+ c+ m! m
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
, J o: w: i+ J3 k* d6 r* _7 V pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f; p7 J5 F. ?# x$ k: h8 w# }
% o8 q3 E S- o // oˉè* ??à?
. R0 ]' g3 b. r4 C8 o) B; V pLight->Specular.r = 1.0f;
9 [) t* K. h0 {: V. |7 Q4 e+ t pLight->Specular.g = 1.0f;
' w, }/ A/ P, S) Y) X pLight->Specular.b = 1.0f;7 o: ]* \6 V' n! q4 M4 _9 x2 R
// àü?? oˉè* ( B# B U: H6 I3 {" K
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
3 E$ p) p7 j' s8 Y: B7 A pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
3 |& E4 V5 y: ^' H8 R0 C pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
) n8 W. h ]/ f4 k5 _1 |" {# j% p$ v8 W, d8 o) Q# K( y; ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 @) ]7 r* [5 u3 `( }6 [4 w! k7 }. Z
{' Q& e' L9 ? _ C) w+ I/ X1 | D0 c
pLight->Diffuse.r *= 0.6f;
2 O1 d d! K1 k pLight->Diffuse.g *= 0.6f;( b$ K) C3 ]- ?5 G! r6 z
pLight->Diffuse.b *= 0.6f;
# j2 p- \3 h% @5 J+ T: _0 {5 l pLight->Ambient.r *= 0.7f;
; Z8 O8 I& N$ z1 E p# d pLight->Ambient.g *= 0.7f;
1 [0 ~3 N1 t: a! C+ Y; u9 q* i9 V) o pLight->Ambient.b *= 0.7f;
* N& l* Y' V+ s# F }
$ u6 i3 ]6 Z: y6 V4 p4 n- V5 l. Y
#if __VER >= 15 // __BS_CHANGING_ENVIR, L+ a- F* ~/ Y6 ~7 X, c% y9 C7 t
if( g_pPlayer )
5 P. E% h. D0 t4 @# U( |2 J8 j HookUpdateLight( pLight );
V3 V3 Z" \7 r# q- `# x0 K0 Z2 I#endif3 N: ]8 O1 L" }8 @: y8 b. m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );* ]6 ]' e: P7 d0 O
8 W' y% w9 n, }4 A
pLight->Diffuse.r += 0.1f;
0 E% T* I8 F, ? P2 g; H4 m6 F pLight->Diffuse.g += 0.1f;2 @# `& Y- g' v2 x
pLight->Diffuse.b += 0.1f;& D5 B* E3 W+ C; y- Q+ D
// oˉè* ??à? 7 r( X6 Y% e* D/ f
pLight->Specular.r = 2.0f;
- p+ H J" N e1 j3 V8 x$ ? pLight->Specular.g = 2.0f;. U$ @, F+ n! m
pLight->Specular.b = 2.0f;) S8 Q" t7 Y1 ^ T* k6 v
// á?oˉ
3 O# R. t% v3 L: n/ j pLight->Ambient.r *= 0.9f;3 `7 F. Y v+ b* d- x. P% b7 e' m) J
pLight->Ambient.g *= 0.9f;) A4 M/ H% \+ O4 e ?% c
pLight->Ambient.b *= 0.9f;
6 Q% Y- |0 |6 f* S- p9 Z
: T6 B, B& M) \ P' |# z3 }6 z* ~; k memcpy( &m_light, pLight, sizeof( m_light ) );, A" t6 Z. r7 [' n$ s
( j% S4 J3 ^8 j% J" _, V pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
" g2 j( S- y( a, X: N) L7 }; I pLight->Appear( m_pd3dDevice, TRUE );+ E/ }" J) g' D2 M
3 A3 ?" A- J# [0 J* ?- C* Z
DWORD dwR, dwG, dwB;
( a2 O. b0 a7 Y# G$ D0 ]9 J7 d# t4 R dwR = (DWORD)( pLight->Ambient.r * 255 );
) h5 q9 e" X) D& D7 ]0 b' W dwG = (DWORD)( pLight->Ambient.g * 255 );- {* O/ r& E1 y7 O
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ I0 G, a. F, f: O2 N0 v# Z dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ {( Q* \0 K) A( H) ^ k }9 g/ b4 W# F: m8 A
}
! P, Z. m5 s8 Y+ e$ [7 l else
' n; v) V: S6 F { b! F/ b/ F" ^: w1 F
if( pLight )
) F n: ? o8 A v9 @' \; V; G {
; p- d, Y5 J8 o7 n! P6 C ( [8 G+ @, |! S- d4 f' b( t+ O
int nHour = 8, nMin = 0;
* l E: k% k* X2 p( y% C #ifdef __CLIENT
5 `' h7 K; A5 n0 b' D+ \' a" {0 p // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
, k) P# |* K+ w$ z# x: k7 I nHour = g_GameTimer.m_nHour;- O) C/ ^0 ~7 T$ z* c
nMin = g_GameTimer.m_nMin ;
' u3 F+ Q8 \) F #else5 {; x: [3 \: P7 S* q' u* w" Q' {
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù./ _. ^; A) l& _9 ` d! B; ?0 c
if( m_nLightType == 1 )
) @* R& `( ~2 H& f& b) Q* K9 h6 e nHour = m_nLightHour;: O: z/ g2 K/ _( O
#endif
% R. V" T$ I* h/ r5 s# q8 _3 [ nHour--;
9 W# t C& ]& ^2 `9 I if( nHour < 0 ) nHour = 0;
$ ]/ J" H0 k3 v9 H# G1 } if( nHour > 23 ) nHour = 23;
; R' a* x4 A4 h% G# j) Y; L/ o- z6 l" o _( Z
//if( m_bFixedHour )# ~4 o' N7 Z. c" z3 E
// nHour = m_nFixedHour, nMin = 0;1 h% h- p3 L" S9 e. M
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
* |0 I/ S- t) ]% b LIGHTCOLOR lightColor = m_k24Light[ nHour ];9 A3 [& \; j C& k
( g7 o2 r( M$ k- g8 H //m_lightColor = lightColorPrv;
8 `; J3 E9 ~$ m; s/ C) c# @ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" y4 b; v# M) |
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
. G7 ^1 N2 X! q7 p Z# U2 m/ ~, q3 f( \ lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
$ N" p" C+ H: F& J* f) |$ C lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;' w1 ^2 _5 w1 c2 {; O0 i2 ^$ }
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;3 y+ ]! X4 e4 k4 I' ~# X3 k/ V
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
9 t! r8 c! `. m+ k' }% k/ m ` // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol); v t+ U" E4 U+ A
' }! m: N& G, Y) ^7 M$ v; H& o
// à??μ oˉè* ! ~1 n) A/ I" e- U
pLight->Diffuse.r = lightColorPrv.r1;6 `6 D% J u- a$ E4 z# e+ X
pLight->Diffuse.g = lightColorPrv.g1;) f2 r0 M: j0 E* j' _
pLight->Diffuse.b = lightColorPrv.b1;
+ A6 f$ c: I, z' d# U0 V* t5 D // oˉè* ??à?
! v& N: {; l/ {1 R) O2 N8 Q4 t n' d+ V/ w pLight->Specular.r = 1.0f; t# i$ W. t; J
pLight->Specular.g = 1.0f;
. y K8 S3 [: e3 U. d: ^ pLight->Specular.b = 1.0f;
: k; ]/ | D+ k( _6 { // àü?? oˉè*
7 n) h M* ^* `+ C7 ~ pLight->Ambient.r = lightColorPrv.r2;
1 D9 ?6 O* h+ y0 s; b pLight->Ambient.g = lightColorPrv.g2;/ E) y, y" F$ p) s
pLight->Ambient.b = lightColorPrv.b2;
1 s& c# A. S# z$ _
3 E3 W) S2 W8 v( K% ^ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.& z$ \% _. e, R6 P# L
{ E& Y) I* `* Z9 D: ?
pLight->Diffuse.r *= 0.6f;
7 [2 {. z: y2 R pLight->Diffuse.g *= 0.6f;+ t3 u, r* q% O( v; _' S+ G' E
pLight->Diffuse.b *= 0.6f;! d& Z) Q' V6 i3 T
pLight->Ambient.r *= 0.7f;
& d) k9 }5 W& `7 Y) g9 P pLight->Ambient.g *= 0.7f;
% Q! {% e( x4 E; O& e8 P7 P0 ?! C pLight->Ambient.b *= 0.7f;
6 I, C. N! R1 U% y A }
, V/ W% R- d i5 G' P" c- d
& m3 |1 Y; i' w( l8 X& J1 ~- M#if __VER >= 15 // __BS_CHANGING_ENVIR, q7 u, S( {" K
if( g_pPlayer )3 x) `7 Z m: l: e" g; D6 S y1 r7 ^. Q
HookUpdateLight( pLight ); 3 e, [% Z. `) s8 Q
#endif1 m) z/ k7 y9 o( V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
1 ]- q" V# j7 i* @; e+ v: |" d; ^* z& u3 C6 L, R* c4 E; c
#ifdef __YENV
/ G5 K$ Q4 E- D. w. G pLight->Diffuse.r *= 1.1f;
6 s% o( u; v! v/ D pLight->Diffuse.g *= 1.1f;, {0 i# ~# Q0 y* I
pLight->Diffuse.b *= 1.1f;
3 t, i/ Y# Q v9 g // oˉè* ??à? 0 \& g1 Y6 { Y- a9 Y3 R; e
pLight->Specular.r = 2.0f;3 G7 w& K8 h" R, x% v: T4 v; y
pLight->Specular.g = 2.0f;( n* ^: \2 S; R8 q/ q
pLight->Specular.b = 2.0f;
9 I% J1 G1 c, [8 j H! C4 @; X // á?oˉ
3 M& h5 D3 ]3 R7 ~3 L% q* h6 w0 P pLight->Ambient.r *= 1.0f;
- f; Q, ^, T3 u% T3 O4 b3 L4 R9 r% B pLight->Ambient.g *= 1.0f;
* ^) R r( u- q* _" |9 a pLight->Ambient.b *= 1.0f;
" S) l* k% a2 x#else //__YENV
( r9 N3 f- i( \% K" v" J o pLight->Diffuse.r *= 1.1f;5 g/ q6 w y( h% V! x$ @7 ]. ~
pLight->Diffuse.g *= 1.1f;
) `9 B6 f0 L8 z w W( H/ R3 R pLight->Diffuse.b *= 1.1f;
* W& v; v1 _8 `0 O6 T // oˉè* ??à? 3 e6 Y/ C4 G5 {- b; h2 Q# v
pLight->Specular.r = 2.0f; D4 f5 K2 o4 F
pLight->Specular.g = 2.0f;
* Z# _0 c8 M2 }5 r- ? pLight->Specular.b = 2.0f;
4 o, e3 w% b: e // á?oˉ 4 U* `7 Q8 _. Y& `
pLight->Ambient.r *= 0.9f;* O) @0 ^8 @4 r& t% z& }6 s( }
pLight->Ambient.g *= 0.9f;7 u. q7 t) ]1 M/ v
pLight->Ambient.b *= 0.9f;, |3 Z) `) W5 _) g3 n) [5 b" c
#endif //__YENV ) r( V+ P6 j" I# }6 j/ |
% ^2 P3 k3 E) K1 q8 j
memcpy( &m_light, pLight, sizeof( m_light ) );2 i. i$ V8 ] s1 x
2 J# U- ~" ]& h8 ` y; A" p
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
0 z6 y. F; [ t0 u" C m D3DXMATRIX matTemp;
3 z4 l8 C7 s6 K& o! o; v static const float CONS_VAL = 3.1415926f / 180.f;" K/ W" e+ n* b2 X: n- g& D; @$ L; f
5 @: A4 @5 r, J7 G# C1 X6 t/ ~ D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);9 D5 F' H2 Q& E9 L" A5 G" Z4 L
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
: G) D. ]9 R4 y0 Y# D/ v pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - ?* d. D: J3 Q
pLight->Appear( m_pd3dDevice, TRUE );6 l; y. J' K# J" @" W r/ @+ B
" D9 E3 S, K2 i) m$ X
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% a/ U9 f+ b4 n // D3DXVec3Normalize(&(vecSun),&(vecSun));( f/ O7 k1 g4 x+ P
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 z4 F: [2 z* g4 p
* K+ \) N- q0 j% y2 c0 S4 d
DWORD dwR, dwG, dwB;0 ]/ W" R- D q5 E' y
dwR = (DWORD)( pLight->Ambient.r * 255 );2 w2 F# n: t' s
dwG = (DWORD)( pLight->Ambient.g * 255 );
X4 w; j* T! d6 j% w dwB = (DWORD)( pLight->Ambient.b * 255 );2 e1 D3 @' p6 g! c- G6 x1 C- }
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ; d, Z3 D: L( E# t+ r2 N8 M/ E6 h# B- H
}
& v) ~7 D; p' t" v! W; b; I i }
$ e7 d2 `+ {3 v( v+ ^* \- {9 A# s2 F3 Q5 F3 |# G; N
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );# j, `8 Q0 X3 L, \9 @/ b- c
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) );
& B+ n( ^ p6 g) e- u* y ::SetLight( bLight );0 C/ {. ~- ~* s
3 D6 V: H6 b" J9 M$ e // ±ao? ?D?í???ó á¤à? 7 p+ L- b2 F* I* a
m_pd3dDevice->SetMaterial( &m_baseMaterial );
- [& n* I* m$ g' F4 d+ V8 a
1 Y! \$ l/ b. h#endif // not WORLDSERVER1 r) ]* ?% R: f/ ^) H
}
0 C0 v5 Y+ w7 Q3 D! b+ L5 |并更换
) L. I ~# L W+ OCode:
; w9 s$ y0 d5 X9 J7 r__FLYFF_INITPAGE_EXT% u1 A8 V7 y: y, A& Q: L
定义
* V' M! j' ~$ V8 \
! k9 t3 W7 ]* O2 R% a1 ^; i
2 Y. E6 k! d* ?- c9 G; A" c: X
. c* z" Z7 l8 F0 e4 T' C* x7 l
现在终于删除我的狗屁加速...
2 A- y% [% W6 `! _
- Q8 w. a0 x" B2 \, @. j! j# Y6 f: Z/ |# z
8 f2 J+ {3 s8 R" E+ } |
|