|
|
食品车:1 v7 N0 X+ W) E8 B Y0 X3 t7 B
尾翼:
0 @$ E3 P- }& G4 e% e4 f# ^
! n- Z7 y. f! M1 y* Q! o代码:# X: ?* H3 t6 m
CWndAutoFood::CWndAutoFood(): `7 v9 f6 N) B0 {+ e; H
{
2 T& N; `+ f, T1 L" m: G m_pItemElem = NULL;
{7 Z" R$ l2 H m_pTexture = NULL;
+ Z* N0 p7 l, ?0 S! c, A bStart = FALSE;
5 C# X' k- h; _& p* ~2 y0 k9 d! c}
# f; c$ H: d6 f D' o* q
% c6 @' o; J2 o! Z2 JCWndAutoFood::~CWndAutoFood(): h6 z% Y1 J! j6 i
{0 `7 ?& [- x" W" L
AfxMessageBox( "AutoFood ist gestorben " );
/ S [% E' T ^8 j$ C}
2 E: c: p3 O: q- q: GBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
, G: Z/ t" \& ^7 `{4 b, W& i4 o0 ?: p# O/ v# T8 K
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) X/ ~$ ]) S# u6 o, E
}+ N- ^' Q4 F# K* v1 c
8 L0 @0 | b" Y- V. p: cBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
3 Z G. P$ H) a) _{( v q% u O% Q) r d& \, I! ?
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; R, q7 E4 ^- Q
CRect rect = pWndCtrl->rect;- x. |7 c8 \7 s6 c/ w
if( rect && rect.PtInRect( point ) )7 i" N# ~6 f, g
{
/ P, A* {' ~9 C9 m CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );7 j$ V$ U# V' ^
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )3 ], E) t2 v4 K
{
; I2 f6 V1 l+ O+ E3 b3 r h if( m_pItemElem )
9 n& O$ `! F% |) p7 f: t( }$ [ {- D* n) T5 P# t4 P
m_pItemElem = NULL;
: y/ M. o3 g: s }
* g% p: K/ Q2 M, g9 S2 A7 Q2 c m_pItemElem = pItemElem;" p, E4 ]4 Q1 L+ y' D# i, U0 J9 W
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
+ Z) F D, \2 t }else{
7 ~$ f. h: y* E' C SetForbid( TRUE );' W$ o# P% I$ D% y
}
) q& i0 } I9 u. [ }else{
2 ]( r$ K0 j* |+ m' Q! D( j" _3 t SetForbid( TRUE );3 a4 v1 [9 w: B; \1 n- `
}& Y: V L0 G3 I
return TRUE;5 b6 s Q" {$ V4 o) E! a
}
% O5 \- I/ ?* G) x
3 }; g* ~% S& C1 O1 K2 JBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
+ m0 J% q' r6 }7 `2 ]2 l{7 |8 u: \& {. ]$ {2 n2 G$ b
switch( nID )
. ^ Y X0 ^2 U( k' |: \. u1 Y {( ?: ?/ {4 ~: p( D3 s) C7 z
case WIDC_BUTTON3:. v; [& R7 B: Q5 R
{6 Y. C2 w0 q! U0 T$ h
bStart = TRUE;6 p, J7 g& x' T" s7 t9 G4 \
break;
0 J6 \' p* V+ m, J0 [% r: J/ r }) r, z3 U5 E. w H' O8 O
case WIDC_BUTTON4:! g# s1 X* i8 K& t4 g# L j
{6 j( b4 W9 C% [; z
bStart = FALSE;
) K+ _ d# R4 L5 r( H break;) o2 Q3 U% L. s+ m; v; ?
}$ n, s$ Z# Y2 k9 W7 ~) V0 F$ }
}- E v8 p5 @4 A6 B1 p! P
return CWndNeuz::OnChildNotify( message, nID, pLResult ); L( I& |: n! J2 L3 l2 Z& ?& U; ?
} $ t! f7 y5 d0 Q: y; c
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
9 K- V& A* | S8 t{' |- I3 R- K& `; y- _
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );5 q3 G0 R+ @& r2 k* u2 h- e$ d' |
if( bStart || !m_pItemElem )
6 I6 H" L8 {' H. g# b" j! s {1 ~# _% M) {% o; d
pBtn->EnableWindow( FALSE );
& i- @" L; [5 Y1 Q+ x9 N2 M/ o }else' A* w) V8 k/ T/ G0 [
pBtn->EnableWindow( TRUE );
9 C% L% |" t, J if( m_pTexture )
/ `9 n P3 Z ?, m7 f5 O {8 \# u( e" D% s. o0 A% p
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; l- a3 B; L' F1 I+ l" n, q- g$ o
if( wndCtrl && wndCtrl->rect )7 Z6 o8 J" X- q* a6 x' ?/ F( G
{
$ Q" K q: R* R; V* X/ c( A% { m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
/ `7 R/ _2 I2 G" ?% \, |. F }5 G h7 }' Q1 y) N
}& A( I- j( n& M2 L* H# f
}
* K2 l- L/ ?# D! G( y" M
1 W6 ]) [- I1 h0 b* Z( r/ lBOOL CWndAutoFood: rocess(): a& A0 f" A( O; p4 R
{; j/ N, ~ n- n' U
if( bStart )
( c+ q k, q3 m& d {
# z# _: I5 B! i) r& [! V if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )" Z+ c; S' y: a$ {, j
{) s3 i! V# x8 Y% x( N: o
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
* V( k6 |; B3 A6 ]3 [ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
( H8 t& E7 x. s# f2 R5 z }else{+ Q' s; ?9 ?+ u3 A6 j9 o. j q
bStart = FALSE;" I. p7 Y5 I5 m$ g
m_pItemElem = NULL;
& W- `4 ?. C. `8 D }
: O: M8 I4 a5 X0 O% f8 Y/ B$ L }3 d. M( {: [' j* M, N+ L2 W
return TRUE;
: v. i+ I; C) |# J& T}
" g7 V( N& W3 _7 J2 z! l+ c' C6 o: P" L: D+ v. D
登录视频废话:
/ e/ p/ k) S9 X' U尾翼:
: x# Z$ q6 B. n1 N, D% \4 `6 D: v& c/ V) S6 C3 u; [7 |2 Y' \
代码:
/ Z! k4 i7 S" @/ X* d% |6 R' x* D$ o% e3 \0 ^
void CWorld::SetLight( BOOL bLight )
% m% y2 G' I4 adurch
% R4 A g& o) |0 u7 i9 PCode:
& N: I' m, Y/ }) _+ _! lvoid CWorld::SetLight( BOOL bLight )" P; P8 I" ~, h6 y( F9 j
{
, E7 H4 G# G) ]; k: v$ M+ z+ x //ACE("SetLight %d \n", bLight);
( T% [4 U0 A, h" P) s- c& { F
/ l# W' _$ e- v6 C. m#ifndef __WORLDSERVER ' h2 p0 @5 d! K \3 S
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);1 k9 D$ I% {3 s9 S, ]6 _& [7 Z! i
CLight* pLight = NULL;
- J- N9 @. [7 J' a* P- y
" P3 k' d: D. |$ B* x4 t0 s1 K D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
" A( ~ d5 F3 L. H" M% G6 t5 J& {. ]5 `* {# i: W0 u) B
pLight = GetLight( "direction" );/ F2 _# ?' c0 T7 [# P8 \
. e; O: e' C4 Z# w1 h2 T/ ?#if __VER >= 15 // __BS_CHANGING_ENVIR/ ^0 Q) x3 ]8 l3 R
if( g_pPlayer ){* r: |# X6 j! i. f) ~7 G: |) a2 O& Z
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
/ s- s' L$ ~7 L- F! D if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
: D s3 t, _1 v" P8 f: z3 ~/ b {7 z: y; Z7 ]5 {- s
if( pLight )
6 q( C* g0 D* E {
2 {" f- l) h7 x B* x pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
# t) E/ z1 B3 Z pLight->Ambient.g = pInfo->_fAmbient[ 1 ];: U3 l; I0 |* Q/ g/ E
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];' o" Q4 a2 F$ z; w; M
8 V; N0 _6 |! g1 A# n& Y; B# ? pLight->Specular.r = 2.0f;. b) s( F4 c2 ]2 D) W1 c
pLight->Specular.g = 2.0f;
! K" X( M9 {8 k; |: Z" D( k pLight->Specular.b = 2.0f;
* R! J0 q' ^" S, a& {
+ a0 W/ e% q+ T1 a# `# [( ?9 R pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
! w7 ]6 g5 ^+ O. a pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
. B6 U1 @& ^5 m5 N+ x% E: F pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
! p! t9 O5 N6 P6 {; @ 1 h/ N" r* |: n) @) f+ `- L: U0 L* u
HookUpdateLight( pLight ); " p4 W" A4 `5 s
" _8 M, B% ?( D+ [4 I memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
2 R7 j/ @5 n+ F1 T& V, |& w
) [7 l {# z1 g2 H4 r pLight->Diffuse.r *= 1.2f;
4 B+ w5 X! O* `: t1 X& J6 ]8 }: y pLight->Diffuse.g *= 1.2f;
6 B: x; a6 }$ R pLight->Diffuse.b *= 1.2f;! I* r, z6 P C8 Q' b
; r: [9 r- t' w8 x2 R$ b% ]
pLight->Ambient.r *= 0.8f;
+ s! A- r& X( ~ pLight->Ambient.g *= 0.8f;$ J2 l# e; |1 L" @0 B2 p
pLight->Ambient.b *= 0.8f;; S6 G2 {0 C3 z8 y
$ N* {/ R0 W; L8 u U% \2 o
memcpy( &m_light, pLight, sizeof( m_light ) );
/ b3 `; S5 j, m+ \2 T! t) Q
( a, r: e$ z$ R D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);, R# I& ^- l/ M' h- _
D3DXVec3Normalize(&(vecSun),&(vecSun));% w6 l" k" F3 I
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ {; Y8 J+ P+ G6 `8 x pLight->Appear( m_pd3dDevice, TRUE );
- s% I. z" z S$ x; Q& P * b( F2 R: ]# o! X( u' A' u2 Z- [2 c
DWORD dwR, dwG, dwB;
) f# w2 X9 K; V6 v$ `" d6 H" [ dwR = (DWORD)( pLight->Ambient.r * 255 );+ V# o( z: g% F* d
dwG = (DWORD)( pLight->Ambient.g * 255 );
! R8 B+ ] H5 z* w) v dwB = (DWORD)( pLight->Ambient.b * 255 );
5 m/ L" f. p: q6 P1 s8 V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );0 }0 ^. P% v. ^( d7 e
}
9 B0 X* r8 I8 `2 E" t' M }3 ?) p# I/ S7 \2 d
}
( |7 Z3 W% c# \5 S2 {. y6 x else* l# R; I9 c# F8 c- C
#endif . i( `& T0 P1 P1 P }
3 s, r+ E- w J: G8 g$ P
if( m_bIsIndoor ). ^6 G. o9 V% I' }% W. e. C
{
- U- u v; l6 b; v; ^/ F if( pLight )
/ e8 |3 O+ U3 c2 s+ L { ' W% `7 J4 Z' Q
// à??μ oˉè* , \ u7 s. H) n& P1 j
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;- ?1 D: m' b) J2 `. B/ r5 k0 u
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
/ Y% }( ?+ U; ^: ^ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
( E/ _% g% Y G$ \9 `
; N2 G8 i5 G$ u6 n" S1 J, Z; v9 f // oˉè* ??à?
$ K Z, o5 M4 Z) `% D7 O pLight->Specular.r = 1.0f;8 X( j+ C4 i2 Q0 e7 W. g( I t8 O
pLight->Specular.g = 1.0f;
" ^3 C. X( V$ S% y6 |; C3 \ pLight->Specular.b = 1.0f;
6 X/ Y5 a3 e \' `8 |% r // àü?? oˉè* # n5 m) S/ }. T9 X% ^3 D' W
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
& p7 ?5 t0 k* r- ?/ V pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
8 p1 C" Z* o9 F3 }' f2 z: x) V/ S y/ ] pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
1 ^; j o) e: I& I4 s
0 I, p1 U6 {. K+ i if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- x" G' Q! ?9 X! u! ~1 | {
" C0 }1 l, R* f) g& A pLight->Diffuse.r *= 0.6f;- |; S: _# T. F1 S* p% b N
pLight->Diffuse.g *= 0.6f;
6 L0 p( |! {, K" k1 x" u8 `- `3 U pLight->Diffuse.b *= 0.6f;' c& I6 y; [3 h/ }& l* q
pLight->Ambient.r *= 0.7f;- Q, W! k5 Q& X2 N) u
pLight->Ambient.g *= 0.7f;$ a9 Z- L4 K5 I! J: C/ R p) V
pLight->Ambient.b *= 0.7f;+ N7 ^- ^* S8 V" t0 D
}% b% u* R& c0 [5 S
- o4 H- p0 t) K7 [( l$ ~#if __VER >= 15 // __BS_CHANGING_ENVIR; {$ {- E7 \" Z3 d" [4 W
if( g_pPlayer )7 e. u* ?7 ?/ ]- U4 V( c! X
HookUpdateLight( pLight );% |$ q; m+ Q+ w9 O3 X
#endif% m$ V$ A& I5 K: Q' g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: v. M8 b' q9 _/ v2 n# V: u$ w% h+ I7 t' M/ _8 ]5 {$ T) f V, i' \
pLight->Diffuse.r += 0.1f;% p3 e$ T6 l$ s. ?, A4 ]. N3 u- u
pLight->Diffuse.g += 0.1f;2 ~/ Q: a& Q2 \7 j0 q- ?) A
pLight->Diffuse.b += 0.1f;8 _* F5 T8 ~! r3 e6 M; k
// oˉè* ??à?
5 R; K$ ?/ n7 S& v6 H' b pLight->Specular.r = 2.0f;8 C! d% O, u6 F) H
pLight->Specular.g = 2.0f;
) @; ^( N, a$ {, G: r( q! p pLight->Specular.b = 2.0f;
" k# p0 }5 \) g' ? // á?oˉ
. t4 f8 y! s* d6 Q5 { pLight->Ambient.r *= 0.9f;7 c/ E& C+ ?8 a* a& N
pLight->Ambient.g *= 0.9f;0 ^ V2 [5 w6 ?
pLight->Ambient.b *= 0.9f;. L# H" r. Y8 G( I
7 I4 s: {( } |! O" z7 Q% } memcpy( &m_light, pLight, sizeof( m_light ) );6 _8 H" \# B0 U: _. `" }, S6 v5 ~3 L
" {; n0 \' j f, @* ~ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
% r8 Y1 K! R6 D6 V% n pLight->Appear( m_pd3dDevice, TRUE );
* M0 J6 v. M' @. d) N f
/ z- z0 C7 T. t" t3 F; \ DWORD dwR, dwG, dwB;! ]: E* m# M' r) }0 Z' i
dwR = (DWORD)( pLight->Ambient.r * 255 );
0 P) D! C3 g2 k r2 _* D2 ^ dwG = (DWORD)( pLight->Ambient.g * 255 );; b4 t/ Q1 f4 |3 B
dwB = (DWORD)( pLight->Ambient.b * 255 ); D' s# E6 b$ p5 _; l
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& t" B2 C m+ [1 U
}
$ N c: S( I* `, ?, [5 o }
! j/ X5 _3 H4 Z; H else
4 P3 m }2 O/ I5 b- v3 `: K {2 r0 _- `2 J" w/ G: S: X0 g, h
if( pLight )
0 U1 [. g( W* F {8 t( w/ I5 \. f
4 h4 ~) |2 x/ w int nHour = 8, nMin = 0;
0 A; y. Y2 V; j2 h #ifdef __CLIENT
- \! W! B- }8 ]2 T. Q! Q3 x b // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
$ T9 `/ o- X9 `% f+ x1 b nHour = g_GameTimer.m_nHour;
4 d7 F6 j6 }4 `1 } nMin = g_GameTimer.m_nMin ;+ _$ J% w& T2 n# O
#else
^9 U) ]( E* t; ] // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
. a; |, s/ {2 R# ]5 `; G if( m_nLightType == 1 )
* {+ ?+ p) m D7 c9 k& G nHour = m_nLightHour;4 ]) x4 h4 N- i& O
#endif) C1 a# z) L% }# |
nHour--;4 ?6 t( C+ i, P3 t
if( nHour < 0 ) nHour = 0;
7 L" z d6 D1 n7 V6 `" N- X if( nHour > 23 ) nHour = 23;
! o; g/ S \" @4 z* {( Y
2 o8 T+ O! o5 b //if( m_bFixedHour )" ~6 K/ p+ v2 j X' X
// nHour = m_nFixedHour, nMin = 0;9 ^% ?5 Y0 Z4 D4 H5 I+ p# f3 X' d
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];6 v5 @' p, Q1 H% i3 Z/ P6 D7 ?
LIGHTCOLOR lightColor = m_k24Light[ nHour ];0 c) B! }9 o2 A6 F. O: l" h! J2 V2 D
1 L& e1 o/ B( z7 R7 g" U* k5 P { //m_lightColor = lightColorPrv;
5 U9 s0 n- H3 B# l; R+ c/ h lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;4 _ p9 C4 J. g8 a6 j
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;' D, r9 x/ g/ t6 a$ j
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
3 ?& p8 p+ j% r( B* q, N* T5 t) F lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;3 f' D. O5 l; E
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
7 X ?4 n) g; u; h5 S5 z$ R lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
1 x+ u' s6 a Q; n% J3 T1 E // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
9 q1 x2 h* g! W8 B2 O$ {; ~8 w( W% d( P% ~$ ~
// à??μ oˉè* , R9 J0 L! S0 B
pLight->Diffuse.r = lightColorPrv.r1;3 E6 Y. `$ `( V
pLight->Diffuse.g = lightColorPrv.g1;
' Y4 c. u' M7 ~% ]) q pLight->Diffuse.b = lightColorPrv.b1;' k+ m0 P" Z1 c9 U$ v
// oˉè* ??à?
5 L) I6 P0 o# R; N1 M6 ~3 G pLight->Specular.r = 1.0f;
/ k* C. l, z5 M2 S& ]1 p" f pLight->Specular.g = 1.0f;
$ q6 B: N# H! s pLight->Specular.b = 1.0f;# l8 U1 L/ A: B5 Z$ f7 H
// àü?? oˉè*
( s5 h# n$ W: v' t% K pLight->Ambient.r = lightColorPrv.r2;; h r* p+ v2 L" O3 ]& `; c
pLight->Ambient.g = lightColorPrv.g2;+ m3 l7 c$ ] R( R5 Y
pLight->Ambient.b = lightColorPrv.b2;9 k- V0 z/ f4 H6 e, M
! c( s- b; v9 v% M7 `5 N
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: E6 d% p$ R- G/ A {
3 I& Q0 }! Q/ p+ _ pLight->Diffuse.r *= 0.6f;
7 o- i2 T& N% q; ?, r1 |, ~+ R pLight->Diffuse.g *= 0.6f;, a D, K3 q% W, T8 E) b
pLight->Diffuse.b *= 0.6f;. i4 t: i* l4 b3 r
pLight->Ambient.r *= 0.7f;& q2 T9 O) r2 M8 I4 G" A" E
pLight->Ambient.g *= 0.7f;6 e; I; b* D$ b% ^! |! W: s
pLight->Ambient.b *= 0.7f;
# ^( c7 p j' ]2 i' X% J% C }
- T0 }- Q2 ^9 c: |9 ]- [
: H5 a, g- [( d8 V* }6 k#if __VER >= 15 // __BS_CHANGING_ENVIR! w& r4 \+ F8 r+ c1 m' u) D& p
if( g_pPlayer )5 Z2 X, D8 T" V3 d1 X
HookUpdateLight( pLight );
* A- S; t/ B3 {" F- L, \% t#endif
4 M7 ?! j/ J4 t memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) y- p& W8 u+ E: J4 H3 |
' a, @* L& `3 p; v' I#ifdef __YENV; }) x8 R+ i* r3 Y9 w0 U
pLight->Diffuse.r *= 1.1f;
- S. b* m; n& |" E9 V; v* n pLight->Diffuse.g *= 1.1f;, F. g! w+ ?! l8 T& ~% _
pLight->Diffuse.b *= 1.1f;* \% A2 g" @9 r
// oˉè* ??à? 2 @1 V# ]4 K7 Y$ ^, n" t: v
pLight->Specular.r = 2.0f;$ w; ^$ z7 k* i9 U- f; r
pLight->Specular.g = 2.0f;4 \9 P! C, a& n9 H5 t
pLight->Specular.b = 2.0f;
7 z1 f- ~9 |8 o, _ // á?oˉ
) V; ] d* {# N3 ? pLight->Ambient.r *= 1.0f;
( {/ M$ s( m- C+ ~, P8 L+ o pLight->Ambient.g *= 1.0f;
; M. p0 }, W( i$ }. {/ Y pLight->Ambient.b *= 1.0f;
# }$ v1 q7 h! c#else //__YENV
$ s5 S5 ]" E, r( J* J- u \ pLight->Diffuse.r *= 1.1f;
4 L! K b" ~5 I5 p8 P pLight->Diffuse.g *= 1.1f;
; x% a& E0 w9 Y! w6 [- a4 H pLight->Diffuse.b *= 1.1f;. f! {- b9 G0 K" t' S" ~
// oˉè* ??à?
) J2 B# j' E8 E% d pLight->Specular.r = 2.0f;
9 g5 Q) s7 H: C+ e; e$ Z5 x pLight->Specular.g = 2.0f;9 U3 K; Q6 Q) b( _. C! U0 \
pLight->Specular.b = 2.0f;9 C/ F) d' f" b; W& Q3 j% D# ]
// á?oˉ
/ @+ m; u& I1 x3 w& N: ^ pLight->Ambient.r *= 0.9f;
% G6 d. z1 b& N# H3 k( W pLight->Ambient.g *= 0.9f;
+ J- O- X2 [4 M, P) E6 R pLight->Ambient.b *= 0.9f;4 I: J; W. r6 J, p: C+ s& |
#endif //__YENV
4 |9 ?4 m/ J5 g5 ~; N & T4 B1 A4 w) z) W
memcpy( &m_light, pLight, sizeof( m_light ) );1 Z5 `; S3 k" W* J1 L
# A" }# L2 z- H6 B; ~# L% f
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 E( `5 x8 z. C/ ?: a- S3 Y# [9 T
D3DXMATRIX matTemp;
, J% W$ R6 {9 e# L. B2 U static const float CONS_VAL = 3.1415926f / 180.f;
' _, z8 `6 M9 c: h! A# k
8 k1 q# m& x5 } D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
. O8 [4 k( l& A3 I D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
, N- H1 S3 Z1 o# _$ z pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - l A6 b; S$ o5 |
pLight->Appear( m_pd3dDevice, TRUE );
/ m1 v; }) g6 n* J
- q/ j3 w, U1 j1 d // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% u: G0 `; `+ ?9 L9 |7 `7 l6 | // D3DXVec3Normalize(&(vecSun),&(vecSun));
3 Y$ q$ O7 A0 F$ J // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); . i6 c2 y/ y( ?" q0 d
9 ?1 C6 r% S( r7 i
DWORD dwR, dwG, dwB;
/ K1 v# M) ^6 O2 c$ j' S) q0 ?3 ? dwR = (DWORD)( pLight->Ambient.r * 255 );
& `6 K$ t2 F/ v- P) [6 O& t dwG = (DWORD)( pLight->Ambient.g * 255 );# w9 E/ o% ^: {% F W% R. l
dwB = (DWORD)( pLight->Ambient.b * 255 );
& A4 s5 k5 ~* e+ f: V6 r3 n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 9 q W3 E. g! P. i% K1 q
}
! A* Z5 Z$ k# ] }1 x" B7 s) a/ g! C1 Y3 K5 r
: D5 o9 o% ?: u: g" l) I m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );7 g8 h3 d0 L. m3 N9 c {: D2 ^% l8 [8 G
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) );0 r; g: g7 @# t( c1 O" I
::SetLight( bLight );
" z% @! B9 ^# Y# W& j
0 b: F! u1 T5 i) o5 p2 w // ±ao? ?D?í???ó á¤à? , C/ F. G9 }) y' Y
m_pd3dDevice->SetMaterial( &m_baseMaterial );+ r: b2 Z# v) p2 _8 W$ @# d( }
- {- k, i6 i; o7 h5 M0 f$ o# O#endif // not WORLDSERVER2 [% I3 f! P* \! M$ \$ a
}' t& v+ h0 r4 g6 |/ j: }: `) o
并更换6 `! i* W1 @' S; p0 ~$ O
Code:
* Q7 G: M& k. J* u- a__FLYFF_INITPAGE_EXT
+ v" s+ X) s3 W# w z+ E定义& S# E z" M+ F# E I& `. M/ p
9 [ J. {8 j4 L; r" A: `; c
9 X2 Y5 t+ B) _9 ?* | n" ]; X4 q3 Y: s# {6 @
8 n. f& i+ \: D! Q现在终于删除我的狗屁加速...' m g( {8 O3 Q9 S, ~
4 L+ r" j; K t1 _; X9 t
" [# O, D, N4 c! x! y" C& g& E- T$ p
( {$ i9 B) p# x6 F Y |
|