|
|
食品车:
7 }/ ~+ d+ |. |7 s$ o尾翼:
( p, u6 y+ l% X& N
9 E4 O% I1 ]* l8 Z4 t D代码:) g. u8 W' F1 n7 n
CWndAutoFood::CWndAutoFood()
. r9 w1 y5 b& ?: `- c4 g; E{
+ p1 ^3 n4 S# _; V) I5 c8 L m_pItemElem = NULL;
/ z1 n' a. C$ R8 y% m& s3 B5 i; l m_pTexture = NULL;- A5 p0 V' w' J. P5 I. k$ J% k
bStart = FALSE;& N- T- z3 H, t% i: v# R) N# K
}
. n( g7 S4 {8 D+ }
3 h3 O# [; G1 T6 D! NCWndAutoFood::~CWndAutoFood()
9 o. W, v& \- W; b1 x& r1 n x( @{
5 q' x: s; }. a( @- U0 c* t AfxMessageBox( "AutoFood ist gestorben " );
1 b3 A3 w4 A" {2 m6 o9 R}, |+ o7 I: p4 W2 ~0 ]' @: A8 b9 h
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
6 A& {: `- n" D4 ?6 A{
6 ]* A1 X& z, A% I# e& G$ m' R return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );1 V3 q! i7 m9 R3 X a
}
1 H# u) U" F# Y o0 { r& n, i5 J1 U5 q: R
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
: T" D$ E9 n1 y0 @: Q0 t8 Y' i. C{) J; S: w$ f. C7 p g
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 K0 a5 {8 r1 F+ M: E CRect rect = pWndCtrl->rect;
H: w) ]* Q, X if( rect && rect.PtInRect( point ) )& n& D5 I5 W$ M' _; ]4 |
{
4 H$ c- w, q; p: ~ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
4 z, e$ s5 i2 x H4 Z$ P if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ): N3 ~6 y/ t l7 x' `5 B' h
{
1 ?2 }3 b. P% R if( m_pItemElem )
8 B( o K* D$ C4 W {
% f. k2 R9 C4 }4 \. A m_pItemElem = NULL;
% i3 k/ `5 W, X4 R5 z, R- f }
/ q% \- [# a" V' r( Q m_pItemElem = pItemElem; w4 t8 {* u0 Q- H6 f
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
" u/ p& J4 V7 i# {4 E) h }else{
% D1 y- M5 T7 z* }* W$ z SetForbid( TRUE );
* [( v+ Z) H% }/ q }) }# ^. s3 d- t+ T. P7 Z2 Y: h$ T5 N
}else{
. j T# w8 p% W SetForbid( TRUE ); z& x }$ b0 A, m
}
" L* D- g2 i1 u+ C7 \( T" G9 L return TRUE;
+ D4 }+ t) u! Q: I7 E}
% j {2 X, o, V2 i; v1 i* r. K! o
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 m# M! s) e5 W
{
2 C) b) f0 }0 V: f6 Z& G switch( nID )
1 o: Q; j$ \+ K+ w1 q {
; e; n1 G2 _4 T9 E case WIDC_BUTTON3:* _. W3 U. f" A! F4 c/ K
{
: p( S; J8 J7 z bStart = TRUE;
" s; O' h; h' ~4 E break;0 {+ q* a+ n c9 i
}
' N5 _# {: a. W! ?: c case WIDC_BUTTON4:- J* I* N7 W+ _! n |( K) m( n
{4 \1 O/ X* b3 _& g% f4 [
bStart = FALSE;
( H; K) m1 A3 b @. R7 o+ Z7 R8 u break;- z0 D3 l3 k: V
}
- w, B0 `+ t* M: c/ G }
% [+ u, w$ n) O5 C* T return CWndNeuz::OnChildNotify( message, nID, pLResult );
1 T2 B3 M8 N: _3 R. a/ ], B}
$ ~% m' W+ ]* x4 @* A: ^void CWndAutoFood::OnDraw( C2DRender* p2DRender )
5 Z8 j3 H: a) E+ d. c# g$ G{5 S: t: L" n3 Z5 `9 `
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 S) Q) I! M- e$ S
if( bStart || !m_pItemElem )4 N/ o& P4 X5 a' i* u S
{
- q5 j' [% I d+ P' c pBtn->EnableWindow( FALSE );& N7 f" l8 A. g& q
}else
1 x5 e8 A" |) j+ R- D pBtn->EnableWindow( TRUE );" ^) [( w$ C- K2 u; @" _
if( m_pTexture )# m6 z! m6 t9 @4 G% {5 q
{
0 I9 f/ S6 [, q N; W/ Q, S LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );! j$ T6 y: F9 f# R
if( wndCtrl && wndCtrl->rect )3 i; m- Q5 w! l
{& s0 Z7 E& X6 f
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
: S4 d) S% _# v7 ?" W8 d. l }
( P) m8 f9 N' }$ o# j }/ n: V+ x6 Y/ j' l# i1 Y* i1 |% @% ~' f
}
) N% v" B! I) p: @' ~# n, ^' M; M4 X
$ w$ z4 H8 C( ?) W v/ LBOOL CWndAutoFood: rocess()3 \, g$ I7 \9 A: f# G5 D
{( b. ?9 X7 `/ e/ X' L# a
if( bStart )
% e& j7 F2 X! g: | {
" k: r6 q: e" D if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
6 e: n; y' v+ F( u9 N {
3 M; _: Q9 _, z/ G if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
% M" m2 D3 e4 c( {0 B7 E. R g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& x1 j7 L. [' _0 [0 C
}else{
2 s) R6 O7 X- w- p* [& ~3 r1 ? bStart = FALSE;
( ]) r; s: ~2 b# d2 U' p5 K' h" A m_pItemElem = NULL;+ }+ | {) o: Z3 A6 ~
}4 w6 |8 a" B3 N4 ^1 z9 W
}$ w+ w+ U( C, A: X5 _$ T U% ?; N4 L; A
return TRUE;/ [* q# g3 [. U+ A$ A. X
}
/ N2 y$ }. e2 _. p0 t% g1 F! S% ]! T& z: ~+ a* @+ W
登录视频废话:: k- z/ U/ m/ J5 Q- b$ I) u+ L
尾翼:1 w) n- Q5 Y- {- `* m2 @& ]+ I
) b1 T- Y0 @, ]
代码:
, ~, p; ~( e. B9 a& E4 ^( Q& Z; i+ ^- N$ \, e4 L) Y Q! J8 V
void CWorld::SetLight( BOOL bLight )
) I$ A5 c1 L$ n) @+ H7 H( sdurch6 s6 u; n$ W7 M# c, T5 j
Code:% ]: ~8 T( e9 H/ M3 ?7 x
void CWorld::SetLight( BOOL bLight )
+ W* h9 z3 Q6 \2 g+ V$ `{
2 ^# a1 V" _+ Q1 q0 R+ w //ACE("SetLight %d \n", bLight);
8 a. E4 G; M2 @' A, r
! O/ v% ?# U$ Q/ T#ifndef __WORLDSERVER
% Y% s& a* N6 c! a; P4 {- u C- q DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);9 z( q; V' ]; u: f) d# f. H! C7 A
CLight* pLight = NULL;
3 k5 g0 q, O' l
) y+ X- v7 i" b D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); o$ ]6 V6 \( ~, i) r! |* C
: i9 V/ U4 k. S5 |
pLight = GetLight( "direction" );; F( Y% H( {; }2 ?" \' E
5 K! N8 G) K" V2 e4 h6 L* {
#if __VER >= 15 // __BS_CHANGING_ENVIR
; A5 O" {3 Q% B: D% l) _; E if( g_pPlayer ){; B4 W A# c6 X7 _
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
1 O- W0 C- S. V* q0 L M if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 b: Q3 ^, k5 v
{3 o) J: S1 X1 R$ Z2 t
if( pLight )5 ^0 Z3 F# O7 {
{
* n! U1 k- Z+ E( H# w" z pLight->Ambient.r = pInfo->_fAmbient[ 0 ];8 `6 Z; T# G6 M& b3 \" H+ b9 r: n
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
, B/ L. O& S! o8 }- ?3 F0 z$ a& v pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
1 e: M! a# Z7 [9 B/ T. `$ T
5 r2 ] ^: r; v6 @$ Z, _ pLight->Specular.r = 2.0f;! {0 L4 a& m9 [) a; r) t) ^
pLight->Specular.g = 2.0f;
9 R/ E7 D' e D) B$ I pLight->Specular.b = 2.0f;
* t# Y8 a3 x: l4 l# V
7 T+ N8 s% j" i9 O pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];$ B+ S, r$ ?4 m, y4 H$ }
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];; i. H/ w' n; a& u$ l( k$ s
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
# Q: x% T" m0 ]- m; M/ E* A* q ! G7 G2 V: [+ O$ j
HookUpdateLight( pLight ); * U! X3 F( c# p$ \! v
# L: W3 O0 k4 r7 l9 Z8 Y: E
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
7 K8 P; Z3 J' H4 L8 ~) }7 B: R+ B ! \$ L/ C# b1 I F1 R
pLight->Diffuse.r *= 1.2f;' [( Y) h; u$ W! H ~1 a
pLight->Diffuse.g *= 1.2f;
, ?4 K9 l+ `0 }1 |7 s pLight->Diffuse.b *= 1.2f;( z7 `# q8 x" Y! m) t6 Z
3 y! X/ `# v) u* R& G
pLight->Ambient.r *= 0.8f;
6 b. f6 K. L, T3 R; o$ _ i4 u. V pLight->Ambient.g *= 0.8f;
( [8 k% n" ?( ]6 p% [ pLight->Ambient.b *= 0.8f;% y3 w* Y E/ U! x
. G' Q5 O7 p: m! H5 G
memcpy( &m_light, pLight, sizeof( m_light ) );. \+ J: E2 v# @5 p
! ~; A' h3 J6 L, x, P' C9 l) g D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
- E+ v) |. [, k5 |1 \3 ~3 y1 B' E7 P D3DXVec3Normalize(&(vecSun),&(vecSun));1 v+ @. a% j6 U
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 K6 F q' i/ I pLight->Appear( m_pd3dDevice, TRUE );
* d! z8 l5 l3 J" A 6 }+ t0 i0 O8 e5 w8 N+ M
DWORD dwR, dwG, dwB;
+ @$ e) ?( s' S/ f/ L dwR = (DWORD)( pLight->Ambient.r * 255 );& _) `" D- s! n8 t6 p
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 ~$ B' K) ]7 q; b- k k# v dwB = (DWORD)( pLight->Ambient.b * 255 );0 N& U P2 _: |5 q' m
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" j" M0 L# [8 Y/ ?& |# ? }9 \& R1 L( M- a+ h' V. |
}2 T4 p2 C* b* B% o0 A* ^7 p! L
}+ v ^, M% F0 ^6 D9 V' C
else
* P& n8 M. p- v; G4 Y#endif
& J/ D* p9 d# Q* {0 B" r' O) R6 d: z L4 H
if( m_bIsIndoor ) H( `( n) E1 }3 i6 x
{0 k7 \) p+ k+ U4 b7 F5 L
if( pLight )
4 m" _2 _9 F. [4 K {
e% S2 {, Y1 x/ Q/ W // à??μ oˉè* : q( x5 f* R# ]+ J+ N
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;% R1 E* |4 @. i% ?" z: Y8 F8 a, ?
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
) u4 T! n' y% @: f1 L( K" D: |, ` pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;: d; v- [* @2 l
4 ~: ? W4 v! [3 g* Q# F
// oˉè* ??à?
+ \8 R$ g, h0 V. W pLight->Specular.r = 1.0f;. \7 B! P5 [0 z+ M8 h3 _7 k8 c
pLight->Specular.g = 1.0f;
8 d* M h+ g3 i5 B pLight->Specular.b = 1.0f;. g8 i( Z" {# ^+ x' G* s
// àü?? oˉè* 0 f5 ?2 Z" C% N$ j6 G9 c% D
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 k4 k* B3 }+ Y2 L% p
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
3 E8 f" f: D; s/ c* ~! D$ ^1 E6 d pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;- l X5 T7 N* S' I* }- p7 H$ g5 Q
& T$ L! h! K, i! B( B& G
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.. m8 N" B, P8 w8 V7 L
{
1 v/ |" I; u, i% \+ `: I pLight->Diffuse.r *= 0.6f;, e1 M3 e) D+ y* s, J2 \
pLight->Diffuse.g *= 0.6f;9 k& G4 c; p+ E
pLight->Diffuse.b *= 0.6f;
; G+ t+ j& \- z5 T8 D. ]2 s% r; E5 m pLight->Ambient.r *= 0.7f;; `) S) I& [: V, q2 A* z2 d
pLight->Ambient.g *= 0.7f;
6 w' Y0 \! I+ t1 d pLight->Ambient.b *= 0.7f;( r6 Q `5 k) V! J+ J' D
}6 ~% E+ B! J4 I3 f' e) E
6 V3 @% H7 l2 t) w) `
#if __VER >= 15 // __BS_CHANGING_ENVIR- f; f* D6 S8 N1 ~& D6 h
if( g_pPlayer )2 g- d. x$ i/ f7 J
HookUpdateLight( pLight );# l# M6 y& ^( L. |
#endif' E2 x/ O8 a) k& ~ V* U
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );) o5 x a# N9 m6 @0 _; n5 x% v
' O( }8 f& {/ k- { B! {6 { pLight->Diffuse.r += 0.1f;9 |8 ]+ N: B7 J& I9 b2 b( ~
pLight->Diffuse.g += 0.1f;- M8 W; ~4 H9 T# D; Y1 _
pLight->Diffuse.b += 0.1f;+ [; W4 v) f: v+ b# C8 |& Q
// oˉè* ??à?
& G) S0 F9 w8 n1 k/ D7 T6 D pLight->Specular.r = 2.0f;# v8 h9 a2 l+ ]5 u; M+ ^) n' Y
pLight->Specular.g = 2.0f;
1 @/ y+ A! R& e, H d pLight->Specular.b = 2.0f;, v2 X( p" r1 k: V3 r, X
// á?oˉ
/ N9 `8 E4 C9 R q. }- J pLight->Ambient.r *= 0.9f;
$ [, d( ^/ ^# d2 ^, `3 M5 l1 v pLight->Ambient.g *= 0.9f;
& u( _. z z$ C7 n \7 D pLight->Ambient.b *= 0.9f;
9 z7 ~6 T/ P1 d2 y7 o, d9 O5 Z
* T2 @/ t3 X/ p# G' t+ x memcpy( &m_light, pLight, sizeof( m_light ) ); v* n4 ]) s9 Z' X, @" ^* V) G/ q* R
5 W/ ^) p3 X6 l pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );, G$ ~& H- L c4 n
pLight->Appear( m_pd3dDevice, TRUE );
5 K& L* H9 T) j' v% C! E! _/ ^
- n+ ` ~' j3 u& T4 \ DWORD dwR, dwG, dwB;! ?) t. t. r4 T4 Y1 t
dwR = (DWORD)( pLight->Ambient.r * 255 );0 E3 h6 H! B* h
dwG = (DWORD)( pLight->Ambient.g * 255 );
P+ o( r, s1 h) [ dwB = (DWORD)( pLight->Ambient.b * 255 );
9 n$ p) L' y8 u" q4 @" v+ x7 g2 F dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' D4 b' ~, z z g8 | }, y; T) s7 N1 x0 d* P( x
}6 w2 N, O4 h7 o
else
8 `, ~: K7 P7 L {0 Z) w) B7 ?# n8 k% K( d, U
if( pLight )3 c- q1 E; r# E) ^) X4 a
{
3 R2 j9 ]3 u! G0 w( p
/ J W2 C2 V" }2 s4 t3 w) a0 k int nHour = 8, nMin = 0;! t: Z* B1 Y- N0 O1 k4 v! W2 D+ C
#ifdef __CLIENT& A1 H7 k% p1 G
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
8 d1 ?* d2 n9 p) N R1 G0 r3 a nHour = g_GameTimer.m_nHour;; c, f1 I2 H1 I, c
nMin = g_GameTimer.m_nMin ;
1 j9 v& i5 V- n4 x/ b+ ~0 E% e/ B; m #else, C. S% n+ ?4 h) R U+ f
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù. k4 J9 p8 g: ~- K& S: d. T; ]
if( m_nLightType == 1 )6 T, D9 {8 h5 i5 ]
nHour = m_nLightHour;
' A7 u: V- I% ~4 f* }" j$ g* R8 K #endif! X6 `" e$ Z U- k- \" G" R/ ^4 B. y
nHour--;; v+ N/ S1 ~" p0 z
if( nHour < 0 ) nHour = 0;
+ w, Q9 ^1 J" O. b( C. z- Y$ W if( nHour > 23 ) nHour = 23;* ]5 R" a" H. A, Q) ?( j- N& d7 G
$ f; F2 j+ m; C* D: k0 k! T //if( m_bFixedHour )
1 |) V( I$ P+ {- N // nHour = m_nFixedHour, nMin = 0;/ F- f, D' ^7 Q
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
8 P+ }+ I* S, V# ]8 @/ s: j LIGHTCOLOR lightColor = m_k24Light[ nHour ];0 Z- `% p, i7 I+ |% m. J9 Z6 r8 `
% t. E5 f6 \- S* i //m_lightColor = lightColorPrv;( m0 s" c( Y4 u5 e& I: D
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
3 K+ k3 \+ @+ [* m# P) ?0 y lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;: D: s) ?3 Z/ b" {
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;1 |/ ?5 ^& H, G9 U& u% V" {
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
( z0 y( q l# ^' E lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
8 r0 q' W& T2 o. \ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
& ]0 n6 n& J: }: |7 F // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)! e, `9 n G7 ?
/ O! `; Z% ?9 C4 H
// à??μ oˉè*
G, ~% X w9 A/ L, U2 p pLight->Diffuse.r = lightColorPrv.r1; S7 `, H! E; d' q
pLight->Diffuse.g = lightColorPrv.g1;6 u9 _ e5 V/ [4 x
pLight->Diffuse.b = lightColorPrv.b1;* i! V; s5 p- A
// oˉè* ??à? 5 z; i4 ^ C# e& `7 C
pLight->Specular.r = 1.0f;. G( {( E/ v4 j+ Q8 A Z
pLight->Specular.g = 1.0f;9 U/ l* f8 E3 U5 Q; P
pLight->Specular.b = 1.0f;3 I& O/ ]! L+ W* k
// àü?? oˉè*
) R& \8 T) [' P( H6 N/ c5 P pLight->Ambient.r = lightColorPrv.r2;% k }3 i" y1 m3 F1 M+ _
pLight->Ambient.g = lightColorPrv.g2;7 w6 V) K) Z$ \! I
pLight->Ambient.b = lightColorPrv.b2;9 H! K& c5 ?' d$ p5 {
6 p! ^+ d3 R1 u9 i5 q+ x& ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.0 O( p7 d% W' f2 S% ?) P' S
{
/ m% M3 R+ v4 T) X pLight->Diffuse.r *= 0.6f;% w7 @+ h! G5 ?' W* W
pLight->Diffuse.g *= 0.6f;
# H' r7 x$ M+ r' M$ _6 f pLight->Diffuse.b *= 0.6f;5 |' V8 e5 a- F& C) _2 u
pLight->Ambient.r *= 0.7f;3 q! l$ J2 e9 K! A0 G
pLight->Ambient.g *= 0.7f;3 h/ y( _4 d! Z- ]6 X5 w( C* C5 e
pLight->Ambient.b *= 0.7f;
+ o9 t8 T" O: N. `; F }
; [# S# J4 z( N- X c s , \# s) B0 K7 J* V# `: \7 C& T# F; }
#if __VER >= 15 // __BS_CHANGING_ENVIR+ Z9 e8 y% N5 W( X4 J$ ^
if( g_pPlayer ); `* p7 B: s! [$ i9 k1 Q
HookUpdateLight( pLight );
8 @/ E# b6 A% F o1 s#endif
% p! A4 R+ C/ f; K9 A memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 E2 u9 v; c* }6 t2 i
' U( X( w) C. m, |! l#ifdef __YENV
$ E+ G6 y$ @2 O; \1 X, _, x7 x pLight->Diffuse.r *= 1.1f;
+ O* A U8 u+ G+ q) f! o2 }$ W0 _ pLight->Diffuse.g *= 1.1f;
2 W* Z5 h7 `: R' h6 t% V8 I pLight->Diffuse.b *= 1.1f;7 t$ @# N1 h$ A0 W1 D
// oˉè* ??à? + U0 W: o2 J' h: |& u
pLight->Specular.r = 2.0f;
/ n5 S/ M' R. [1 |3 I$ O pLight->Specular.g = 2.0f;
/ `: J0 h# Z/ L T) y0 @9 F pLight->Specular.b = 2.0f;
& Z: ]# I! d! O4 W0 y/ j: i7 y5 x2 b# w // á?oˉ
) O; a- s& S# k1 \ A6 X pLight->Ambient.r *= 1.0f;! Z( Z6 J+ t0 Z
pLight->Ambient.g *= 1.0f;8 U1 Z* X; n% {8 P
pLight->Ambient.b *= 1.0f;
8 Q, Q: C1 i; G7 V#else //__YENV; m$ M8 c, Y9 [3 W$ v1 |$ h
pLight->Diffuse.r *= 1.1f;" R6 l* f! _) ~; l6 N
pLight->Diffuse.g *= 1.1f;
8 L5 m* P( H5 O5 S: N pLight->Diffuse.b *= 1.1f;
7 ?) M4 ^- x; v, u' R // oˉè* ??à? ; n% I' i7 _# x9 v T
pLight->Specular.r = 2.0f;
, c7 V4 k( U2 a1 V9 B6 y8 [9 w pLight->Specular.g = 2.0f;
* Y4 ]# X* S7 b0 d pLight->Specular.b = 2.0f;
s# J- |* \* h, @ // á?oˉ ( E/ k- e0 E) ?3 `$ m( C5 J1 F
pLight->Ambient.r *= 0.9f;
$ V0 S6 W3 l) Z3 J/ d pLight->Ambient.g *= 0.9f;( O0 L" ?4 N: I5 y- n
pLight->Ambient.b *= 0.9f;/ b: v6 i5 E/ w) _! _6 y
#endif //__YENV
2 ^) |0 w( F) V2 | G
+ f) f% _5 n! D" G6 [1 V( P3 | memcpy( &m_light, pLight, sizeof( m_light ) );. l( {& q2 c! F- W5 C2 Y) ~5 S
6 p8 L. T6 \, G' e' e
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);# o; ~$ K7 k" A1 Y5 {6 L- B; r
D3DXMATRIX matTemp;' ]0 P" S: e$ \
static const float CONS_VAL = 3.1415926f / 180.f;* s( O( [8 K' W" ^$ G( c
$ r1 e6 c4 [3 w0 ]% b
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);1 _, j6 ^* a5 \; V4 R2 T' f
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);. t2 o5 C/ z+ u I( t" Q3 }
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ; E% q" K( |; {7 I
pLight->Appear( m_pd3dDevice, TRUE );- o9 u8 {+ {; L: m4 o% |6 X
+ L5 f+ W2 N- U8 M6 Y) |. m5 T
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' r% X9 v W( u F m% r. N% r+ y
// D3DXVec3Normalize(&(vecSun),&(vecSun));
, u- k3 s( ~1 m. E8 a: C3 { // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 E, Q5 V3 h' s: A( P, C. X
/ s: l8 y* { j. x' L8 f DWORD dwR, dwG, dwB;) q& Z# I0 w; r) I6 r2 l
dwR = (DWORD)( pLight->Ambient.r * 255 );6 [1 }0 _+ K+ M7 y- j
dwG = (DWORD)( pLight->Ambient.g * 255 );; b3 d, h6 U9 ~) h1 l s" V1 Q
dwB = (DWORD)( pLight->Ambient.b * 255 );. d0 z7 O9 H& k3 O% v2 i
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); # W& G' n2 B" z& n
}7 I C( x( T9 u, z8 {3 a
}
' B; J1 [/ }8 P% N6 |5 m
; n* _2 o" R3 I. ^7 `% b& K* _0 L m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
& z& c: L' f. M0 T8 Z( p2 e 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) );
6 t u( J$ p* [1 _0 }' _ ::SetLight( bLight );
& {- M& ^& |1 |( l
8 T+ ~5 M: f- D // ±ao? ?D?í???ó á¤à? 1 t& X" G$ x7 c: t
m_pd3dDevice->SetMaterial( &m_baseMaterial );2 e- @1 ^8 Q) H* `: b/ y- M. G
6 l/ c2 V* ?/ H/ `! T! Y6 O. u#endif // not WORLDSERVER4 G" H! ~2 @- `+ Y! O0 i) Q
}
/ l* h2 S3 B& {6 {+ r. t& F并更换9 X$ ]9 @, s9 c% `% X: M4 z
Code:
# E, b3 Y7 l3 B2 d/ ] \/ m0 g% ~__FLYFF_INITPAGE_EXT/ S" j2 E! d/ f9 U9 g0 ~3 {
定义
/ x8 T5 O: B$ p2 o _; |
0 d# }. J/ ?" _2 O4 L- t1 m5 E/ ^+ j: D1 _- h1 A& O
+ Q# s7 G9 v- b9 c
5 I+ x: J3 o8 j7 ~1 }现在终于删除我的狗屁加速... T& |0 q. c9 h6 n4 J4 y
( C. }5 v4 ~% r0 R- O* B/ i
. ^! V4 J$ y3 A- Q' t' x# O* J
3 z/ H- y" o7 G4 B. ^ h( I |
|