|
|
食品车:2 j& H4 G' p" p0 E( N. Z
尾翼:
9 v$ E7 C+ C4 n3 ^% ]& s+ B0 U4 j0 A: u& t6 w! ~+ S2 b8 s/ t
代码:
7 m& a( Z8 ?' C6 `8 lCWndAutoFood::CWndAutoFood()
# \* U- Y0 w7 j! ^ G6 v{
& t1 D2 f7 o' z m_pItemElem = NULL;
, q) p5 N! W) l: P1 X' h4 \# t2 q m_pTexture = NULL;3 V, L+ V& s! m: ^
bStart = FALSE;
# q# \7 C( ^6 k}
7 H R/ h5 Z# G1 k9 s3 R, Z/ w
CWndAutoFood::~CWndAutoFood(): i3 ?1 v+ U/ d- Q @; p1 [- C
{
3 q, h* O4 Q+ R$ F AfxMessageBox( "AutoFood ist gestorben " );. X; W& A6 A. ^' o6 l
}
) v: E( r1 U0 Z$ B" ~( SBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
! j$ B4 x2 \5 z* V7 |1 R{9 q% [# i2 M1 v
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );5 V$ e* C! ?5 u1 E/ D% K b @
}+ W$ u% q( a1 x! y3 e b J: V2 R
( d; r+ J. x d
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
" Z/ c* ]' ~7 L* X7 i% c9 s# k& Z{
$ G2 \) D" [3 i* \9 H& B% ~: G LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 I o8 @4 K0 E9 G9 m
CRect rect = pWndCtrl->rect;9 W+ i1 w g; D; ~" K1 h0 o
if( rect && rect.PtInRect( point ) )
9 m% c* F- I& X$ W+ Q; B {
% |8 Q3 P4 N( x' W o+ ~ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );# C$ u( I+ C7 b( ~
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
. j' u2 K2 i% E n/ ?. u Q {" c( t* V b, t/ S" w
if( m_pItemElem ), k" ^8 t2 D7 ~- J4 r
{
/ m$ G5 Y" }2 U1 Z5 Y+ i$ Q7 _ m_pItemElem = NULL;
% X# G* L# C% ?( Q0 P2 [( p- W; r }- B8 _" K2 A4 G* d$ b0 B
m_pItemElem = pItemElem;. Z! k9 f: g/ O+ w7 z( N& Q
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );6 N* k* j6 m" g& ^; S4 `5 S
}else{1 q' E2 E: }& r- }# z/ ^1 }
SetForbid( TRUE );: S1 q9 A, o0 D( K, B( }: _3 M
}3 q, r y% F6 \9 f% D- T( F
}else{
0 M$ E8 n: \' `; y* O SetForbid( TRUE );& o, r3 M& ?. q; e/ @% K
}
/ a, Z, v7 N$ C, n return TRUE;4 g1 r4 y" q4 ?8 X8 m: n
}( ^1 ~# h; v$ N0 d# H+ n/ ^+ V5 b: S
$ w$ }( M5 }$ J" cBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )6 j+ G) h8 P* D7 f8 |9 b: ]/ T
{
0 K* ]9 _% `! p0 A! m switch( nID )
+ H* U2 Y5 I/ h {" d) ?- n2 \* U- P" `
case WIDC_BUTTON3:% L! D5 d- J, ^$ x7 K5 Z
{+ q+ d8 P1 T% B9 _; G3 ~$ P
bStart = TRUE;
) N( W2 O7 u w. ? break;
& X. j0 @, m& z' |7 C) {+ v }3 a' N$ |+ Z: j6 r) |9 _& j8 v2 `# X
case WIDC_BUTTON4:6 w9 t& U1 C3 h9 A; H
{2 j! T! Y+ g6 Z+ }% a! ^
bStart = FALSE;
; T/ X* s7 ]) u2 x break;
# g* t6 S' L' L+ c }
* O) j0 A, L+ g7 a( Q/ u: ]3 N }
$ n9 |. u# V8 } return CWndNeuz::OnChildNotify( message, nID, pLResult );- A: @3 \0 L9 M, K
} ! }& T z: y3 [
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
; ^4 E$ k* V- F* Y# L{$ ~/ J3 t( N3 J' q" f6 {- P, Z
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
/ a/ Z6 p* r2 Y8 @: V if( bStart || !m_pItemElem ), M7 m ]; T1 i4 i$ h" i, u+ z
{2 L0 F0 S. c( i" j8 @
pBtn->EnableWindow( FALSE );9 e: l, d, `9 v2 ~3 G( I
}else1 k! I/ G" f4 x( K
pBtn->EnableWindow( TRUE );9 q# j/ ?2 Q- R- @0 D8 W$ G" ?' ~+ q
if( m_pTexture )4 x: F, Z; s; m0 i
{0 v: w- S+ k; `- c/ U3 J
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );1 T* ?7 I+ T9 v9 u, ~
if( wndCtrl && wndCtrl->rect )
! p. h$ A; r- R: G/ y- v {
' i5 I$ h! g2 g& p+ P7 t m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );; o; g6 m6 l- I
}
" ~+ ?/ n' _/ }0 R2 l }
; G$ S r2 {- m5 T& g}3 [2 m/ Y0 F5 z6 m
0 _' ?) P- r+ n' b# _BOOL CWndAutoFood: rocess()
8 `- ?7 {% X2 ?+ f4 g, @{; ~6 [/ n* A4 e4 T) v, k
if( bStart )
, f; k+ V6 o) H0 }5 r {
% X/ p& l1 T! q$ @6 V. @ if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )% C/ s$ R# ^& S7 g V
{
! L8 ?* J( `6 U# C( @5 t if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
0 h! I9 Q7 l, Y/ M g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
; M; C! j2 U% a }else{: k$ J( F- {2 q Q- X
bStart = FALSE;
6 w2 Q6 z" j4 p5 O# r$ x m_pItemElem = NULL;
z7 c2 V0 |: e i, R }5 L2 Z, o* D$ J }$ O8 l4 z
}
% {" o" k* d8 k+ ?; J return TRUE;
( d/ n' V$ I/ m}
; {5 _3 O! P0 V2 k! V( N+ I G3 I/ n7 E
登录视频废话:
; ^# s, z6 m' d6 P尾翼:
( s* ]( Q5 S/ _' J1 S4 _* I
+ M; L2 p {5 Q$ ?/ k# Y* j; ~1 w代码:0 q! y9 M: R* ?9 J9 b( L3 L1 H
; u4 r4 S2 x) T( @; A8 h
void CWorld::SetLight( BOOL bLight )2 k0 \, \9 x" O6 @0 y
durch
6 Q! |4 P7 ]' J1 a; }Code:
" f9 x7 M) o: [! Q ^4 hvoid CWorld::SetLight( BOOL bLight )
+ y; t w% h! y' |, G9 ~{
4 p. L! y( ?+ _7 x //ACE("SetLight %d \n", bLight);
. y" i! m8 h: m+ l, ~7 |
0 s) K$ W# v/ x m6 C& k* e#ifndef __WORLDSERVER
+ S& x5 D7 o- J; I- Y2 h DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);: Y3 I, V* T- W# T) ~2 Z
CLight* pLight = NULL;! j6 |% [- _! Z% n, {
% X' y1 F" \! `: I' k D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
! c+ t, ~9 K" j! R& R U4 l. {' F8 c" t; C8 F
pLight = GetLight( "direction" );
' z$ M1 U) `- d# `$ v, q. s& ~' t) m8 O( t; P/ }' ?% X
#if __VER >= 15 // __BS_CHANGING_ENVIR1 _ B- W* p6 K9 V" ~# Q0 ?6 V7 ^
if( g_pPlayer ){# E" s+ y0 t% v7 d5 Y
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
( @: u% w5 j& L' c+ x) n$ g% e- a3 { if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!1 i& v E6 _, J* O/ D* {2 t4 H, h
{
. g$ U- o4 B/ m: l& D if( pLight )
1 \# j! E: _6 c+ m/ J, L {" I& x6 M- i! e; _2 k: u
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
; P# J' {4 O* V7 v9 a" M pLight->Ambient.g = pInfo->_fAmbient[ 1 ];/ ]4 \* v9 S" ^4 [5 h
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];7 z) |* k! M3 b, R4 f# f
' E/ T2 J( Z+ b pLight->Specular.r = 2.0f;
- D$ H& U+ Q2 v! v2 {" {( H Y pLight->Specular.g = 2.0f;' ?+ s" v- i( c
pLight->Specular.b = 2.0f;
' S, |9 J5 V k
; A( K& d! U$ \- l, N2 G0 l/ K6 g4 z* ^ pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
0 W+ z: _8 R; @ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];6 J, J: ]# Y+ C: \/ Q0 Y: ]
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];# c' G( I# X; \3 C: N4 M" u9 c
$ H1 h( Z7 B- w. }# B( u7 g, r% V
HookUpdateLight( pLight ); 1 }; @* U& ]% x) j
1 Z" _" y9 P" ^
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 W* A% P' ^- \' O. N5 K" e/ _
* h( G3 A4 e$ s$ p m$ z) Z pLight->Diffuse.r *= 1.2f;
7 T: r h' f* ~( C1 z- ~4 a pLight->Diffuse.g *= 1.2f;3 f) a% g5 `% w A
pLight->Diffuse.b *= 1.2f;9 h% m9 Y6 x$ d) t% ^1 C2 k
7 Q- D- _) Q9 [5 L) G7 E pLight->Ambient.r *= 0.8f;( u% o7 v! I G9 V, r
pLight->Ambient.g *= 0.8f;
# S# ~) n4 V7 a, I$ U5 w6 v' l pLight->Ambient.b *= 0.8f;. w L$ j [6 e# K
7 T: N8 u0 X9 {* h3 V: H memcpy( &m_light, pLight, sizeof( m_light ) );1 `& ^- ?2 _4 R y
& F: p0 `2 X3 R% f D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
9 G: F1 D$ k$ ^ D3DXVec3Normalize(&(vecSun),&(vecSun));
/ o! X! ^1 }. i" Y pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 8 l& c8 S2 _; B! W- s, A# k
pLight->Appear( m_pd3dDevice, TRUE );2 e& Y6 M% U3 g7 Z) j! g* V' ?
6 R7 L2 M1 d I+ ~1 W* X! x+ U
DWORD dwR, dwG, dwB;
6 u! q. I( v. K _ dwR = (DWORD)( pLight->Ambient.r * 255 );9 {0 y9 b! ^ L6 V3 b, w
dwG = (DWORD)( pLight->Ambient.g * 255 );) G1 ~# x8 e4 n6 J# _
dwB = (DWORD)( pLight->Ambient.b * 255 );' Z; X7 L/ h& C) h& K2 |
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );; i5 ~2 |& a9 j* m& A8 C
}( [7 L @8 X. W* k6 u5 @. C4 v- q
}# s/ t2 i8 ?) Y8 M# T" E2 G
}
6 Z, m2 C1 ^& J$ \; X else
# z9 i5 p1 K; d- ~+ _8 _6 F! n#endif
; Z# D9 ~0 i6 j; x9 P+ v) _' M; e. T# Z3 H- m/ I
if( m_bIsIndoor )+ f. y2 f/ S# \7 g+ n' H2 ^ |9 O
{
( o' \" c& b+ W4 `* c( f if( pLight )
7 m0 @+ r8 Y( Z; r) R4 J' F+ u {
X' l' f9 h9 X# N4 [ // à??μ oˉè* * L0 s: K' W% L
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;1 k0 g" i, N# m; D/ o
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
! x9 j. V9 O- R$ e9 U pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;- u2 k. O( E0 ?8 R
2 d0 Z0 ?; z( m$ F
// oˉè* ??à?
- z/ f+ }. v; E+ F9 r# c( ] pLight->Specular.r = 1.0f;
( m: C1 [8 x3 J( V( K2 P2 b pLight->Specular.g = 1.0f;
; X* Z+ F- O: K pLight->Specular.b = 1.0f;
* M3 i+ G1 }# N ~) a6 a- R* m // àü?? oˉè* ( \# @9 g9 b, W1 K/ ^
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;* h) Z+ |. J8 t1 G( i
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
7 j0 E4 J% B* i J: V pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;. c9 T# Y8 _; _
. }" Z2 y7 r) |0 @& j if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# k6 u" c; q3 D$ u0 M- `* \+ B
{$ Y% W/ {4 V0 G# b4 b! |
pLight->Diffuse.r *= 0.6f;
3 k' ]! I/ i, G4 v8 L pLight->Diffuse.g *= 0.6f;
; J+ o4 ]: u) B3 E. c' | pLight->Diffuse.b *= 0.6f;
/ G6 k5 o' x0 R4 y1 ]1 T pLight->Ambient.r *= 0.7f;
0 Y2 |5 }$ K0 z, [* q0 s Z; v pLight->Ambient.g *= 0.7f;
8 {; X9 @$ S6 \' `7 t3 H& c pLight->Ambient.b *= 0.7f;
$ I) P' p+ b W, e% v }
8 k8 j3 I; ]: N) s/ g3 T" O4 @% D7 _# s: ?
#if __VER >= 15 // __BS_CHANGING_ENVIR* r; M ] O V# E$ b2 }
if( g_pPlayer )
" p+ [$ _- P% }- M HookUpdateLight( pLight );8 F+ T0 z, m) {9 C N0 r
#endif
; F1 v8 f3 y9 K4 r+ o; ]4 i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );3 s" u2 [$ A* ^0 v9 [ M' Q9 R% s
" p2 K8 ?- \$ I* i; a pLight->Diffuse.r += 0.1f;+ ]7 K1 k. @% t4 T
pLight->Diffuse.g += 0.1f;1 L9 U9 R, j& ^
pLight->Diffuse.b += 0.1f;% |" Q! b' U1 h) M6 @$ l3 w, {
// oˉè* ??à? 9 ^9 O( ?8 {% {7 C" k9 t# n
pLight->Specular.r = 2.0f;' V! @: E6 e& A, A1 P
pLight->Specular.g = 2.0f;
( a7 u4 K. z( \" _$ { I pLight->Specular.b = 2.0f;
- l6 o P- Y* J+ h // á?oˉ ) m8 f4 w2 T' k, k* _
pLight->Ambient.r *= 0.9f;
) ~8 \* T! |* H4 K' V4 S pLight->Ambient.g *= 0.9f;
7 Y' U* \8 \' S: _4 d pLight->Ambient.b *= 0.9f;
7 ~. {: K8 |& O7 O) F' K5 a/ u' O- g9 N: b! [, F% M* v0 N
memcpy( &m_light, pLight, sizeof( m_light ) );
; i3 u4 { R! \% v9 m0 W
4 ]% H7 B. r, U- v pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );7 ]1 U4 ]: i$ ^/ c1 T
pLight->Appear( m_pd3dDevice, TRUE );) r. b, [" b! Y, ^$ v
' i+ c5 v, A: s: \" ?* M
DWORD dwR, dwG, dwB;9 E7 J5 f: _2 d: d8 A4 V
dwR = (DWORD)( pLight->Ambient.r * 255 );' h& S. P" a; ?' e5 R
dwG = (DWORD)( pLight->Ambient.g * 255 );
& ]5 j9 \. N3 g( ^ dwB = (DWORD)( pLight->Ambient.b * 255 ); ?% H5 ~) ^4 h; T" }- E, ]6 X- O
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, s7 F9 `1 Q9 c* E$ }* p) _ }
8 ~. K! `/ v$ B+ |- q }
/ `. a5 I9 _+ S else% ~4 g( ?' J9 J+ y7 x: Y
{
) M9 G' c3 }3 u$ X& R if( pLight )6 M1 S$ X- X. S4 R' C
{
, j2 i* o2 S+ ~7 C3 ]1 E/ y, d 5 o2 b7 z9 V U3 f1 U
int nHour = 8, nMin = 0;
" R% x) D% d# i0 f& H6 y4 j; k3 S #ifdef __CLIENT L7 T: p. _ A T L$ \- k
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ! x" i5 l& I S/ _# N( D7 k- ]
nHour = g_GameTimer.m_nHour;
1 H0 H: A2 T" Z nMin = g_GameTimer.m_nMin ;
# a! ^/ e" M% @ c# i& _6 M #else
9 b. X+ p$ @$ k, o5 E; e0 x // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
- H' L) v* P# h& F: Z L$ z if( m_nLightType == 1 )+ h6 ^% q% }2 F8 R4 a8 X( W
nHour = m_nLightHour;
' x5 X3 q/ s$ j$ ]* w1 y #endif
% |' R* |' }4 g" A0 |, L nHour--;
; c+ m s. E- O2 c% C, X$ Q if( nHour < 0 ) nHour = 0;+ y ~3 p$ g+ Y( s7 e: F
if( nHour > 23 ) nHour = 23;
% H4 M. F' o$ u1 M2 |" e
: ?8 k) j6 F* K" } //if( m_bFixedHour )) {; r5 S! r2 c' N$ R' }# s+ ]
// nHour = m_nFixedHour, nMin = 0;
5 @7 F/ K* T; z LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];; a; C4 z. M P% j+ u3 ~
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
( ^; s- B9 o+ }+ I! j
6 R" |7 g( Z5 X //m_lightColor = lightColorPrv;, W$ j" `% F; z8 w( R5 m
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
# g% H( e! J( D/ H- l' a% C# D lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
) p5 m6 z8 L" a lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;+ ~' b7 d4 N$ Y+ z
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
1 G; U: ]" T7 c) n- @8 i lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
$ S. N9 o1 ~3 n3 A lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
2 ^- h! k7 G% I+ s; u // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
, {; I/ u5 P; Y9 X1 H$ K9 e& `% y7 T f& A
// à??μ oˉè* / h: d H* `$ \7 \3 o
pLight->Diffuse.r = lightColorPrv.r1;
5 t8 V' c' ]3 f7 K, S pLight->Diffuse.g = lightColorPrv.g1;$ D- L! L( \. M
pLight->Diffuse.b = lightColorPrv.b1;$ B5 G# I' H& B: {0 w7 D0 i
// oˉè* ??à?
5 C% E9 Y- ]! O3 K" r; x- X pLight->Specular.r = 1.0f;
7 ~, R; b: X2 s! E4 M9 C( e pLight->Specular.g = 1.0f;
6 M7 A4 h1 l! l' c+ N! ] pLight->Specular.b = 1.0f;/ g: V6 f* G7 u$ u/ M* p
// àü?? oˉè*
$ e% I5 T a0 F( S6 F2 D' e pLight->Ambient.r = lightColorPrv.r2;$ q! ~! c5 h8 J- }4 q
pLight->Ambient.g = lightColorPrv.g2;
( i# Y0 a9 d- K+ E2 e pLight->Ambient.b = lightColorPrv.b2;
; L3 r0 i4 M+ Y1 b0 g- i6 h% M3 x/ @2 |* \: h- M0 y
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.3 K$ Y! a9 i7 F# C. e. ^* G
{# H! y' s- A7 u0 `8 _
pLight->Diffuse.r *= 0.6f;
& F( w6 g! Q4 D7 P' e pLight->Diffuse.g *= 0.6f;7 l6 w4 R* q O% l" s a# ^
pLight->Diffuse.b *= 0.6f;# T: R0 R; I1 O2 J
pLight->Ambient.r *= 0.7f;6 Y3 T' Q Z9 S0 `8 M# Z
pLight->Ambient.g *= 0.7f;3 G/ A' x, K( m4 f
pLight->Ambient.b *= 0.7f;
( d# |! S) k i8 J _' H4 ? }
9 C" [, r( X3 M3 U $ u4 M! y, @( ^ ]/ e( i; n
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 D/ b# q w& ~* s% F if( g_pPlayer )2 A5 d4 n3 P( y9 v" ^
HookUpdateLight( pLight );
* D% W3 R0 x7 c1 r6 D6 b. i#endif9 Y! B7 L0 ~$ H/ F. d9 w, V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 C% i! N! ^" y" K, Q5 O
+ {3 Q, A7 Y+ h: T2 Q#ifdef __YENV
% L q9 z2 z( u' i pLight->Diffuse.r *= 1.1f;9 M+ g4 G% Q$ N
pLight->Diffuse.g *= 1.1f;3 r3 E+ z5 R V- @7 W+ B
pLight->Diffuse.b *= 1.1f;5 t9 M( I, I, Z! T( i
// oˉè* ??à? 9 I& g4 i' f& m
pLight->Specular.r = 2.0f;* v N- }3 i+ a- X2 v8 {
pLight->Specular.g = 2.0f;
, e. \# |. k6 a' E! X3 _ pLight->Specular.b = 2.0f;
9 I: w. _' g' ]" } // á?oˉ
/ M3 l) T( }: ]" \ pLight->Ambient.r *= 1.0f;
+ A! c" n/ D( g9 e# T$ ` pLight->Ambient.g *= 1.0f;
1 v: m+ k) k2 M h2 b: T& t+ W pLight->Ambient.b *= 1.0f;
) h8 h& x; b8 B3 e" f, m' ]& |#else //__YENV. c8 f& z' {% f! r9 U0 r
pLight->Diffuse.r *= 1.1f;# R; E) ~ [/ q6 X( {6 ?( `
pLight->Diffuse.g *= 1.1f;0 J4 v1 g7 ^: }2 \. Q- A2 ?1 d
pLight->Diffuse.b *= 1.1f;
" ^) b+ d- Q4 @; A7 N" A // oˉè* ??à? ) y/ V" |% ]0 s/ M( q& A
pLight->Specular.r = 2.0f;. }6 F+ ?- e! L1 B
pLight->Specular.g = 2.0f;9 n; Y+ U1 C( ]" |4 W# b# J
pLight->Specular.b = 2.0f;/ R4 q- S/ m: [& n" I) ?# W, X8 ?" w
// á?oˉ 8 Z' R3 w* H! F
pLight->Ambient.r *= 0.9f;/ P- o( D$ T$ Y0 e7 O8 r
pLight->Ambient.g *= 0.9f;
; j8 g: R+ m4 ?- ] j$ l pLight->Ambient.b *= 0.9f;
& g. @7 a1 @/ Q1 ?1 N! y" ?; K8 [0 }#endif //__YENV 6 g; X$ x7 Z t) ~( c$ t
9 {7 W1 X# q E+ M- P) N. m memcpy( &m_light, pLight, sizeof( m_light ) );! b6 _ v9 V7 ~" G7 t
; J, x9 |+ W) H8 i& U, A' N
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);* I0 ?9 M5 Z, Q+ l8 A$ U5 w
D3DXMATRIX matTemp;6 O$ }) e4 l! D# {: w
static const float CONS_VAL = 3.1415926f / 180.f;
8 N+ D# V9 D# j7 B* h+ A& s! ^7 Z* [2 d, ]! G/ m* J/ ~
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
- Y/ l5 b# T- ~" q! S$ [6 M* p D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);2 I, o; s' @1 l; \. r1 X
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 9 |7 @( p/ W+ [: m
pLight->Appear( m_pd3dDevice, TRUE );
~9 K. j0 b% K: ~3 Y6 h; l3 x+ V! w0 J
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
& ~9 E6 ~6 G) n' B, V' E, v- V // D3DXVec3Normalize(&(vecSun),&(vecSun));
6 v6 F8 w; d6 Y1 G; Z // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 5 d+ r4 F: y% w
9 |. {- Y1 S' K, ?9 d2 C% A DWORD dwR, dwG, dwB;
: h7 z3 L1 D h) M9 d1 D0 O. S dwR = (DWORD)( pLight->Ambient.r * 255 );1 \1 F6 P4 C1 l! P) q& \
dwG = (DWORD)( pLight->Ambient.g * 255 );6 E E- F2 T% J1 I: U# L
dwB = (DWORD)( pLight->Ambient.b * 255 );% X1 S% H9 g' c; G& w1 b2 J9 r
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
N9 ?+ H3 q, h, { }
; w1 v0 a/ n5 b% T! @ }
: O+ J# {7 R! b
" ?$ y# Q# I4 | m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );8 J7 y* _: Z% ^: d
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) );% M3 E$ z2 u, ]6 c) j4 S3 `
::SetLight( bLight );
7 H. p( [6 {: n. T( w
# v. |" z3 }% q // ±ao? ?D?í???ó á¤à? 9 Y3 j# D+ z+ D2 D( y9 L
m_pd3dDevice->SetMaterial( &m_baseMaterial );6 U, c. a8 C# |4 e+ t
( n& _: [$ s1 T0 E5 P% t
#endif // not WORLDSERVER
+ e' C7 H9 z" A) W5 J( i9 }}* p, s8 N/ _, h' l" ]2 E
并更换
9 x& r1 ]$ F, F: W, P3 _6 eCode:
( l7 f! L/ G F6 B3 X) A3 E2 k__FLYFF_INITPAGE_EXT
1 d) W; \' C- A0 h' L* a定义
" M! v! f1 c$ _, y! e
% b0 N; E$ F1 v, {
' U1 F# X/ t4 s/ j ^' f. F0 J5 }3 h; J: v9 T9 A5 F
* x! u+ E4 c4 U) W$ T
现在终于删除我的狗屁加速...8 e4 G- c0 I7 ^0 v4 B
& I$ T/ z: h' w0 a7 T
1 K8 _+ Z1 a- I9 E6 l8 Y" ?/ q: z0 Q% D1 K* {5 Y9 t, i
|
|