|
|
食品车:
+ B) f, ]+ t' C7 ~7 J尾翼:
" p c8 u( }; A* E+ O
6 j! J; n$ X9 h代码:% e2 E, t: i2 U; h9 I+ a
CWndAutoFood::CWndAutoFood()
1 q5 ]/ U9 [4 o9 }+ Y% Q7 j$ E- f0 u; s{1 v6 I! Q! r- G' p) H L
m_pItemElem = NULL;
7 |1 l; M+ r4 X. |) p) ]+ c8 _0 X m_pTexture = NULL;
( ~1 F: e9 s9 @4 i bStart = FALSE;: K! u! ?6 h! Q1 `! I
}
% o& ^8 D# s$ B! i! ` n4 G7 F- j& g# W' w3 z3 r
CWndAutoFood::~CWndAutoFood()
$ V. L9 }7 u h& r ~& D- @{
% ^/ e; m' N2 F9 e; u. G3 z" v( C AfxMessageBox( "AutoFood ist gestorben " );
& w2 A. r5 S# s* I% q}
, G. \ {9 o/ L7 F' q) \2 GBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )# n2 f4 ]# I. R3 B& J4 u4 `- R d
{/ x' l$ p; Y q) q. Z& X* Y
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );0 m1 u8 r2 t! U3 i7 h9 Y
}
) ^2 G* C% F3 T0 M w% R, F" _; W/ Q3 _
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
* O4 X7 c" i% f! i3 j{9 B" m' H* @5 H' }$ l6 E
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
* ]$ F ]8 ^: d1 t5 L1 s CRect rect = pWndCtrl->rect;1 u- r; N/ R4 u2 n
if( rect && rect.PtInRect( point ) )
, u0 ^+ m4 [; ]. H1 n$ Q- Z {
5 l6 n% e- A9 m* ?. L, a CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );! L: q, T9 F* x! q; J
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )# k1 ~; E( i& d8 P( a6 @
{' e1 a) M8 H( O" U! I& ]) ~/ v
if( m_pItemElem )
' O+ B+ K- B, M/ W$ n0 S% M {! @% q3 n9 x8 \1 {
m_pItemElem = NULL;
4 q6 D3 n/ |4 T7 C0 z }
$ J8 T" x! U1 D/ p6 A7 l% W m_pItemElem = pItemElem;& H7 r: p8 h ~! `; e/ _
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
0 M, i$ B) M8 R; X/ J }else{& `0 j) k% S. n2 o6 V8 }. ^
SetForbid( TRUE );
8 j$ A) k& \5 u2 ^7 o5 \6 e, ?8 T }# X6 ~: ^ A6 e$ j/ E
}else{% u/ N5 e( Q; T7 Q" ?
SetForbid( TRUE );$ M6 R7 H1 Q( T2 s! L; _
}
! U3 ?# ~' t8 z {: X% I9 j1 o' V+ w return TRUE;
% D3 Q z) I5 w}
# Z9 t4 ]7 K$ P$ m6 w
& s6 H" u" `: c, p- P, F1 j: h) f6 WBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
: y. N6 m5 d' r+ w4 ~$ F# k{2 v; Q+ S% ^' T* g9 G) v$ w
switch( nID )
?# ]; `1 n5 @2 I a {
, K3 _2 W- k& Q case WIDC_BUTTON3:- a F5 y! h' v$ i9 o3 W5 G
{2 y% J1 e" q: g; k( @
bStart = TRUE;* T- k3 [$ t" d9 E* L, {
break;
$ D9 g" @6 g. q% @6 ~ }0 E. Z& Z% E) X" Y% Y$ H
case WIDC_BUTTON4:/ U* [ y. V- `" K: t# D7 |
{% @5 C$ ~% N. t) _
bStart = FALSE;' ~3 j! G, d, e1 [$ K( u( W
break;
" |. {* j7 r4 I6 ?8 }. L8 S }6 U/ _* U* W; b/ S" P$ S" s
}
- N* y- k$ A9 h0 O$ s9 e return CWndNeuz::OnChildNotify( message, nID, pLResult );8 T! ]! v; f8 t7 x+ E, r1 y
}
( C+ ] y( n5 e' k" uvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )) L& {# b5 C( u. k
{4 a8 |/ u! F7 w5 ~) [
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );, }8 j p" ^! o' f/ D
if( bStart || !m_pItemElem )
9 ^8 O* o3 k' y5 X" E {
7 b0 ?) M' M. @- i& L2 c* y pBtn->EnableWindow( FALSE );" Z" v- I8 a- t" {' z! d
}else
3 z4 q' L4 y) R" l5 o+ |! f pBtn->EnableWindow( TRUE );% f: r/ D( z0 T
if( m_pTexture ), g6 i7 u( ]: l3 S, r# c
{
' Y$ K# U+ O7 ~ p" \+ R7 S LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );0 A1 `6 Q) L3 _9 d1 \( ?$ X" w
if( wndCtrl && wndCtrl->rect )' x- _& a7 I1 j' M, {4 g
{" @& n* l$ j6 }$ v0 C$ s
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );; R7 k8 g8 c" |
}6 j7 S* R7 c# K( P& L) m
}
& s( J, t% }# X# A" |$ q# A* @+ @}
; ~( u6 _! X( ]& U5 g7 }
# j% B+ L3 n# N, `$ x2 wBOOL CWndAutoFood: rocess()
* E% }3 \% a+ j& m{
9 E% Z: B& \5 x6 _ if( bStart )' K* _& ]$ n. t0 J: j, Q, {
{+ S9 n4 o1 a8 ~6 k' l
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )8 k! ^% K) v7 L$ X" C
{
- s6 }+ ]# J! V& S# G- g+ s E7 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() ) W5 [: [+ W2 d/ j
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
6 o( L9 _% T' a/ ] }else{
2 a) N; O* o- T bStart = FALSE;4 z& s9 o( {+ `* _1 Y6 w
m_pItemElem = NULL;6 `7 Z: x% F, n9 m' D
}# K- G1 r8 M! }2 x
}
; E- t2 n' y- {: s; ? return TRUE;
; H4 u X0 I- z3 j}
( W! Q, |+ s( ~! |; q' R8 X, b9 p" ]# l
登录视频废话:
3 _* f# P4 b1 T4 I3 z- }4 f7 p& @" q9 B尾翼:
$ G, m8 M- {- f0 c% w+ J0 r
$ {( w; N% g7 O代码:
% n( H" `: [1 V- S, g5 \- y4 Q) J$ H7 W3 L
void CWorld::SetLight( BOOL bLight ) |& n, @/ K+ ^) N/ y& W
durch
. t% V6 Y5 m5 e8 f3 w# q; BCode:: q& h: f( {" M% ^; _# d0 F2 u
void CWorld::SetLight( BOOL bLight )' z1 j2 V# L- T- N) Y7 J3 K
{
W# b# z# T, K9 C+ ^; r //ACE("SetLight %d \n", bLight);& w' c0 i* g3 C6 f
" I6 P) {& S7 I
#ifndef __WORLDSERVER
8 {8 @" L3 [# E. n3 o DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);, d* u) s0 A* M6 f" I
CLight* pLight = NULL;
9 r- a$ Z1 _, d) z, w: z5 C: F; X' ~1 y
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
9 B1 C% W2 n. G( V: f) V$ }& J; O \$ F, n, X1 n# A
pLight = GetLight( "direction" );; a3 U* t* V# K& x/ x, s
{4 c. u3 z& R# v* ?, x' t' g#if __VER >= 15 // __BS_CHANGING_ENVIR( D! R! m! z6 l$ }% z1 l' K
if( g_pPlayer ){& \6 ?9 p' j" S& e h3 r
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
4 m" U7 _- g5 \$ ]% J if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
& A+ R# y% B. k B: ] U {
1 V# J& X: }. ?8 V$ N, `5 I! Z; p# U- L if( pLight ): o0 V: p d+ }" P" [- m7 Z
{
9 \6 q; c% L3 f$ q, D1 E pLight->Ambient.r = pInfo->_fAmbient[ 0 ];6 o' F9 A4 A3 Z* H/ }9 Z( S" o
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
F. a5 W8 J: w; e* ]# A$ q) ` pLight->Ambient.b = pInfo->_fAmbient[ 2 ];9 Q' |2 A- y1 `& L+ c' H
' o9 p/ ?+ a5 e+ c pLight->Specular.r = 2.0f;
1 D% I2 c% P) i" [3 | pLight->Specular.g = 2.0f;& E' G; S) Y* y( w1 X8 ~. y: v, k
pLight->Specular.b = 2.0f;
6 X" b3 p. Y5 z# ` 2 x, }1 Z, n$ a/ l1 d" n
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];0 ~+ |: @. \+ S+ D9 a" W
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];$ U- X& v7 X" Q1 z0 H/ b2 ?
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ]; ]1 m1 X1 _3 @: ?% m5 E
3 H* n1 p* k+ f/ }4 p- O; _ HookUpdateLight( pLight );
0 s7 q) O' c' C6 s* \' T4 c: x6 f' b- t a' ^% |% G; I4 a/ n
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' e* Q+ Y3 ^3 \) H: S% J: i2 D ) x& i0 H3 c2 ]4 C/ r3 @
pLight->Diffuse.r *= 1.2f;5 w2 u9 v+ y( Y {
pLight->Diffuse.g *= 1.2f;6 \3 A* f/ u3 P% q) `$ k4 W: j7 }# B
pLight->Diffuse.b *= 1.2f;
0 P$ W5 d: e1 o& N$ ~4 @) }8 w7 N9 w3 c6 K& E
pLight->Ambient.r *= 0.8f;# j2 u a: B: Y( Y7 f3 g) z$ D
pLight->Ambient.g *= 0.8f;
$ \; j/ @# w& B/ D pLight->Ambient.b *= 0.8f;
0 l- O4 y/ _" M2 Y8 s I/ v' R 9 o' @3 I8 Q3 ]- D: V, E
memcpy( &m_light, pLight, sizeof( m_light ) );8 t/ \* g% `/ o* ^6 ^
9 Y [ y5 z& A
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
0 W" G" y- k' q; E) n. y( U; t D3DXVec3Normalize(&(vecSun),&(vecSun));: ]0 Z/ p- z* w0 g" E5 B
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " Z; o/ k, E3 U3 T, W' [0 a
pLight->Appear( m_pd3dDevice, TRUE );! ?3 b) M0 o- f$ E1 R$ o
4 n; M% A' g; f$ E# u" z DWORD dwR, dwG, dwB;8 d _" F: e! ^# s: ]) Z
dwR = (DWORD)( pLight->Ambient.r * 255 );
: o2 L& O0 G( \ dwG = (DWORD)( pLight->Ambient.g * 255 );
9 E6 b) H5 f$ E- Y' r dwB = (DWORD)( pLight->Ambient.b * 255 );
+ Z7 m9 K& F* m: N3 K3 L dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 n, h; b: e5 ~! r }
2 D) f1 }/ m3 E* ~' S4 T4 @ }
/ }8 [1 |7 j" _% q* e# ~ }/ z, v1 [- K4 _0 H
else' m+ z$ j' g& i: T7 s
#endif
! O- W* Y5 ?" _; n/ W) s5 C% J: N
2 n/ o' g1 l! A/ r0 K' x/ [9 d if( m_bIsIndoor )
: S. o: M e- b8 W# Y; n {
+ W5 |' j4 {1 C0 c2 V0 A if( pLight ) Y6 H1 \1 v3 z) ~, p
{
; [: V% L3 Y/ y' o/ A. U // à??μ oˉè*
+ ]0 f2 T; L" P( R, s pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;$ K; W' w D. {" u2 d$ a$ {
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
: O* r3 q! }$ L4 ]( [ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
+ @4 g; G4 n6 A9 C( S; e: c# C- H& w
1 m* \; t: J3 p F2 Z4 M0 t // oˉè* ??à? 1 B( N+ ]7 C, b3 W
pLight->Specular.r = 1.0f;4 ]( h8 V9 b. M5 p: G' r' f
pLight->Specular.g = 1.0f;
! U9 M, }* z. N& i4 `* O pLight->Specular.b = 1.0f;
4 b4 F6 I+ ?- D# f7 s // àü?? oˉè*
4 y9 b8 x+ W/ A! F/ w2 V pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;- V, |+ M* U7 e
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
1 x U( ~3 }& {' R- W, u8 @ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;/ I, {) Y$ }" y8 N! O4 ~
( y3 ], N& e1 s' \: J& ~6 C( S if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??." n; q8 ]9 b; l3 t
{
& W. @- ^9 O8 Y& S8 i5 }; m pLight->Diffuse.r *= 0.6f;* l7 x4 R; t. ]' ^
pLight->Diffuse.g *= 0.6f; u* _# z5 Z( Y& z3 b$ |+ F8 b
pLight->Diffuse.b *= 0.6f;
3 P0 D2 H- i7 R6 p* P pLight->Ambient.r *= 0.7f;
' f; v# P8 K' A+ }2 K3 M( G pLight->Ambient.g *= 0.7f;# M d, G- ?# D% c
pLight->Ambient.b *= 0.7f;
? C' R$ {- {% { }
7 V. s1 s# N2 L* ?$ M, c+ b- a7 K1 V; p2 c- R" R
#if __VER >= 15 // __BS_CHANGING_ENVIR s9 ~ l5 l3 Y7 r! L4 `4 T: e. J
if( g_pPlayer )
m2 i- S# k1 R. `$ I HookUpdateLight( pLight );
* l# L2 d0 J& P! e* f8 E#endif) @: [ o, I3 N) V( b3 V
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; L5 M/ G" t0 ^; E* ` F
' j, ]' ]# Y2 u1 ~3 P4 l* a }* b pLight->Diffuse.r += 0.1f;4 V) m/ s4 O7 ]# Z/ b$ w
pLight->Diffuse.g += 0.1f;
/ S! j) G: |1 c& g# e% T pLight->Diffuse.b += 0.1f;. Z* J/ F8 Q4 o4 ^; H( j
// oˉè* ??à?
" ^: d: w( ^0 W4 T. Q pLight->Specular.r = 2.0f;; l, |6 S4 L# I- ]; C$ Y
pLight->Specular.g = 2.0f;
' R; d. m& \/ P7 \; k' @/ N9 y pLight->Specular.b = 2.0f;
) o6 F; g6 v+ c // á?oˉ ) ^ N7 w. r1 J3 x8 l/ @! [) L2 w
pLight->Ambient.r *= 0.9f;0 K' S; K0 q) W V; @. L
pLight->Ambient.g *= 0.9f;' ?0 b3 I0 T. A& ~) l8 v7 u1 d
pLight->Ambient.b *= 0.9f; j) v7 z: C/ q9 I
. S* m9 w$ n# | memcpy( &m_light, pLight, sizeof( m_light ) );
6 K; \ G) k) |" N. p! ~0 {. m
5 k& ~: i; z2 n- M4 I pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
8 u. h$ Y$ S, h- e pLight->Appear( m_pd3dDevice, TRUE );5 V x/ D( ?1 O( g9 i
7 S9 Q' q0 G6 x- b: d/ e! f DWORD dwR, dwG, dwB;
1 @' }, c# f, b/ J dwR = (DWORD)( pLight->Ambient.r * 255 );
% H5 m6 k! o) J: A6 H( E' Q dwG = (DWORD)( pLight->Ambient.g * 255 );3 b8 o. u2 }* L* Z, j3 x
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ B- g+ g D! F- e dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
8 J" v4 C% i7 `) a }
2 s% ]* D! Y5 o0 { `) q1 H: M }* H# \# N2 w4 M
else
' K8 k6 d. w8 C3 O' l, a! ?& D {
6 w( L7 O" F8 h' k% i. J, o if( pLight )
' T. m$ p- e8 Q% k8 W {
) s0 c e$ |4 Z/ X( u# y9 G " M; C4 E9 F+ G) |+ E% _' q V, U
int nHour = 8, nMin = 0;
3 g/ Q& [# C1 R7 K #ifdef __CLIENT
6 n, k2 t5 [: L: f$ P // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
8 s: l! W- ~0 p, y1 g5 E nHour = g_GameTimer.m_nHour;
) l: Z% k4 t2 c3 Z, W, T' ^+ q. y nMin = g_GameTimer.m_nMin ;3 k2 z/ x% z; B) Z3 Y7 S% D% k9 {
#else
2 T3 j" a! m \9 \# n1 w+ y // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
. K6 z& n: J. | if( m_nLightType == 1 )+ Y8 U- d' P9 D8 d' j5 ]
nHour = m_nLightHour;
9 x6 x2 e& \# q- V/ O #endif
- u$ l6 i. l. D7 e" I/ ] nHour--;
: ]4 o- _( M1 W- J: w0 s if( nHour < 0 ) nHour = 0;9 S% H h7 V# Z. P: i& W
if( nHour > 23 ) nHour = 23;6 B- @; X3 f7 ^* W5 r- L
* X9 S1 M! ?2 ~5 s G
//if( m_bFixedHour )
. r- S" X$ n! v& o# y // nHour = m_nFixedHour, nMin = 0;% @& _, S9 H" k+ K
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
: c# [9 \2 R3 K9 p. j' x LIGHTCOLOR lightColor = m_k24Light[ nHour ];9 v! ]4 o- R( U3 ^
0 D v' G& R% O. r( |! `; g
//m_lightColor = lightColorPrv;/ u$ h& j; ?! h% M+ C/ O
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
8 D& B/ O3 T6 L2 t/ C& e lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
! R, o; }9 _' c3 y( M lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
3 o+ U5 r$ P. `4 I lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
# L8 Y" p4 f" z# d: I7 A( D: }$ e lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;- f: h! }5 x6 D
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
: d7 N% C' j( L5 O4 v# H# v9 C2 J // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)7 V$ F$ V# b3 e. E* @
( B( i0 ]+ K: a* J q: ^4 _
// à??μ oˉè*
( Z$ S4 n8 n, D) F. ]5 c pLight->Diffuse.r = lightColorPrv.r1;) U( V1 |0 Q$ E
pLight->Diffuse.g = lightColorPrv.g1;
& D! u' K. z! |. Z! n pLight->Diffuse.b = lightColorPrv.b1;0 P, f: O* y$ ?% _2 Z: z2 v
// oˉè* ??à?
) {) @/ n, D7 H+ L6 U% d- \2 A pLight->Specular.r = 1.0f;+ _. v. n1 i9 d" y& Z: l Q7 P
pLight->Specular.g = 1.0f;
5 Q% g3 O9 ~9 C" n1 x pLight->Specular.b = 1.0f;
& _3 m* u: D0 I$ W& J" H) A // àü?? oˉè* - ?. z6 D" F, E) d2 |1 o
pLight->Ambient.r = lightColorPrv.r2;
' V# k a e6 a" X1 H5 g3 Y pLight->Ambient.g = lightColorPrv.g2;3 B: G ^9 B: j
pLight->Ambient.b = lightColorPrv.b2;
; [& S$ x i3 j+ s, V5 C2 p& D" H3 g& K" W* ]1 y
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.& G8 ]! ^* e+ B- U l
{9 C3 R0 W; y# s5 P2 a: ]6 z
pLight->Diffuse.r *= 0.6f;
6 t: J! G' X1 C% s pLight->Diffuse.g *= 0.6f;, I$ r& t7 g2 F
pLight->Diffuse.b *= 0.6f;# Z: z/ `" g: z1 |
pLight->Ambient.r *= 0.7f;- ?6 f% R1 o2 [
pLight->Ambient.g *= 0.7f;
, _+ T0 i! e/ s$ {/ j* \ pLight->Ambient.b *= 0.7f;
' A2 h. W4 V' m5 A( ~( d. c }1 I& t* F: r' G
: ?' U0 @+ i- F4 H#if __VER >= 15 // __BS_CHANGING_ENVIR# E6 K* ^4 F( @/ D/ f! z
if( g_pPlayer )6 M% K; A, m9 \# D. U9 e
HookUpdateLight( pLight ); 2 Z% x$ }3 Y3 g7 e2 {7 p
#endif6 B* y3 Z' J( Y0 c- r5 T* ^- h9 b6 n
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! r' }+ ~+ |) w& L2 I
4 ^! Y! ]& d' ], N#ifdef __YENV' X% }( t; }9 k! L V0 l: O
pLight->Diffuse.r *= 1.1f;
' ^ j+ ~2 c+ N3 w0 @: l pLight->Diffuse.g *= 1.1f;* t1 x& M& j2 n; @ N) [- c
pLight->Diffuse.b *= 1.1f;# S' @0 P, z/ ^# V$ L
// oˉè* ??à?
_5 J/ w, q4 y; i pLight->Specular.r = 2.0f;* g/ e* s* j+ @+ c* M; z, |
pLight->Specular.g = 2.0f;
) f& g- L1 w* |0 s8 }& c- Y pLight->Specular.b = 2.0f;- \# D Q7 r: t+ T9 w
// á?oˉ
8 z8 J# m4 e M( s+ b/ Q" e pLight->Ambient.r *= 1.0f;) d0 U. p& ?+ o/ [
pLight->Ambient.g *= 1.0f;
9 E4 D7 e) g; e1 F1 v4 q# ^& ] pLight->Ambient.b *= 1.0f;
+ o+ }& Y4 x5 y: O#else //__YENV
) `6 u/ b6 O0 u( t; U+ { pLight->Diffuse.r *= 1.1f;
* r. H5 c! ?$ n7 _6 ` pLight->Diffuse.g *= 1.1f;6 Y/ i! L% M D% ~
pLight->Diffuse.b *= 1.1f;7 x2 x }/ q: U1 c# m- {- h! ^5 N
// oˉè* ??à? 6 k: ?; b9 [- v. }
pLight->Specular.r = 2.0f;
; r' p' `1 m% m% y. T; ] pLight->Specular.g = 2.0f;4 ^4 Q: i& C( y/ ?9 s; r. }, f: [
pLight->Specular.b = 2.0f;4 @5 k |% s- @( d/ u* |; S
// á?oˉ
# G. c9 O2 N9 F( U pLight->Ambient.r *= 0.9f;8 i- o$ A% r: u* o9 I% L) E7 D
pLight->Ambient.g *= 0.9f;9 T \1 R3 O: j! W1 f m8 k# |
pLight->Ambient.b *= 0.9f;) }% Z( Y" C3 ?0 J: I8 h% H( U
#endif //__YENV
/ {# h' L0 G7 V) M( @ 5 B2 S) E: A/ z" H( C. `
memcpy( &m_light, pLight, sizeof( m_light ) );
$ \1 Q( O; H9 E ! w. ^- q9 L6 Z# e8 E
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
" v% C# x+ |; X7 r, n D3DXMATRIX matTemp;
5 L! I$ l b0 J3 g& q/ w static const float CONS_VAL = 3.1415926f / 180.f;/ k' j; r. r5 K. o+ _
) }) Y0 j1 v' L
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
; u2 {5 c0 D H( Y' w; ` D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);5 {7 b J) _+ m2 A5 a2 E* Y, ^7 D
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
" T% b/ o' U' ^! {# C pLight->Appear( m_pd3dDevice, TRUE );4 l5 O0 d$ g& ]: F: l0 b
% E% _ d. ~5 ]( _) G. y& r
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 K9 r' b# U9 I# B* H! g) w9 `5 q
// D3DXVec3Normalize(&(vecSun),&(vecSun));' N& }* i% b) V+ A( f+ d9 V* h3 |
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' E$ A7 z! u* z% I" M8 T7 Q- p& D! E9 k9 N! I$ W4 @4 l$ L4 [
DWORD dwR, dwG, dwB;
" {/ |! D" Q6 F* s8 h( l dwR = (DWORD)( pLight->Ambient.r * 255 );9 S4 b/ h1 D8 k; d: _8 N
dwG = (DWORD)( pLight->Ambient.g * 255 );) L, i7 j7 c9 t" n# F2 r
dwB = (DWORD)( pLight->Ambient.b * 255 );0 Y, y$ L2 R) ^; ^
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! e8 e3 p( p3 N7 u' C# \ }: n" n' G1 P# M
} |4 T4 x6 O/ N2 U4 @. n
. r# O Z- E) | X( o
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );3 `, ?! q! @2 I0 k" 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) );! n: d. ]* a2 e$ Q
::SetLight( bLight );' @& D f( b, i3 ?3 `1 X
. @7 q4 Z; b7 q# m; V6 F5 ?3 y
// ±ao? ?D?í???ó á¤à? / E0 V& Z; F+ o% t$ N
m_pd3dDevice->SetMaterial( &m_baseMaterial );5 i7 t, g: l1 l% ~) T* C
7 O( R- i& A, \; o#endif // not WORLDSERVER
' K7 m9 w! F1 i( m5 b% s6 s5 ?# I: s$ m}7 z$ T; ?' I. D6 ]
并更换5 Q* j0 B( r$ x8 T3 R4 j
Code:
( V6 x4 Q( l* `; ~) b% K& a__FLYFF_INITPAGE_EXT! W: j0 \' C- U; D' b* ?( R
定义
3 K2 I& D' T& ^& E! {) N7 I: a; T7 d% l
/ Z. _0 Q& E5 m9 n. F; a/ Q
% B7 Q D0 U: B/ A! ?/ c2 {! w
m- N0 `( K9 C% J5 a: [( U" M现在终于删除我的狗屁加速...$ b5 f5 [% [+ N+ E; I! a
1 w4 `5 g" T1 f5 M% n( G
$ n$ Q ^, W7 d6 C3 A* x6 a1 y6 C. k1 w
|
|