|
|
食品车:
7 J) N! g, N! N) f尾翼:
" K4 }, i# Q- V0 G
$ R# v% J8 ^* z5 C8 R& n; T代码:
' Z+ X# u$ O+ P2 T8 l! v* l/ j) jCWndAutoFood::CWndAutoFood()% ]5 u' ?+ D: R5 P
{& H: l$ p3 G2 |* [ _
m_pItemElem = NULL;# V0 E7 S& x/ p% h
m_pTexture = NULL;
3 e' D4 L6 g5 K bStart = FALSE;
8 f( b: K t5 S% Y}
$ {* W% S9 Q6 f* ]9 g& D6 m5 t) s6 ]% @" t0 B3 y) e
CWndAutoFood::~CWndAutoFood()
. Y0 M7 W- m2 `$ p' ]- r! ?5 ^{
H# _6 _! T. N+ L, Y8 d+ S+ g, a AfxMessageBox( "AutoFood ist gestorben " );
" _9 J7 g7 a* m5 `/ o% k7 c8 p}) g9 s; ^5 f) Q& i! n4 x
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )9 c% o) _; b7 I7 F2 w" k% b. Y) @
{
1 A6 S+ T' l# v b5 L- {% ?3 F return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
; [4 Z% g& ?! {0 }" h}' e6 |/ H: x, M v9 O+ _
' D; e, q6 h+ i+ C
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )% e0 A* `' C7 {& a3 Y7 k
{
! T# Z: b6 u* [* }- J9 I6 ? LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
5 O* s: D, Y( B4 D CRect rect = pWndCtrl->rect;
6 V R& F+ J& o if( rect && rect.PtInRect( point ) )
Z+ k2 q3 V C- N: t {
! X( J0 _1 a3 B! K- I V CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
; [& O1 w3 @/ v+ F; y if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )4 o0 d$ \* E. e- s/ _7 {( |
{
( ?& {+ K! ^8 f! ?" I# z if( m_pItemElem )
5 c9 R" x C, ?3 K' c( v- X {; @/ h3 S* E6 Q0 S, Y
m_pItemElem = NULL;" e) G6 ?6 }4 B
}
" I, a# {( ^7 R1 V8 K+ C m_pItemElem = pItemElem;! x2 Z5 D# l I9 Z
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! A3 {1 E. t6 {- U }else{
) O" k7 [; ^* ~) T: ~8 | SetForbid( TRUE );+ ~1 D4 R1 i, L1 t$ n
}
! r) V; k4 A% y- V: h* P }else{0 v' V7 o" G- ?* b4 B, w" o
SetForbid( TRUE );8 z Y- b: H1 I( m: \: H
}
3 Y4 t$ r; Q0 a: n; R3 {6 D return TRUE;* y0 ]) [' u) f9 t; z/ H# w
}
1 u$ \( T* T& E2 Z* Z
4 l, a4 M, W; \8 zBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )& ?& e& r O w3 t) E8 N
{: _: f/ J8 m4 R& y2 U
switch( nID ): G$ o1 S* R5 O# @# S
{
/ n( f( V$ b2 Z1 d case WIDC_BUTTON3:% ]/ A! S# D* y, e& _
{
6 q. v. p; b1 y( s bStart = TRUE;6 V" w: X/ f2 O- v) `5 Y" {
break;
/ L1 y0 ~2 o4 N# y! D }
3 h& s7 A1 x7 R. M case WIDC_BUTTON4:& v4 o* v# Z j- s( y8 K- Q6 L6 `
{( P; S. F! q$ {0 g
bStart = FALSE;
) e) U7 P0 T& O" s/ o/ D break;8 J, w% o. ?( y& L2 S
}" F- b+ _- }( @% q
}+ L- w* _" ?7 C) @
return CWndNeuz::OnChildNotify( message, nID, pLResult );# D" w* S( f5 |2 f# C: d
} - a; J" S5 \ a" n3 q: N- Q s; I
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
, {3 W' p3 m) ?& n& P$ |( M# u& C{
, p% n! a" J. A; N1 [0 z CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );0 |0 P# s7 C) A# }) N) e
if( bStart || !m_pItemElem ): S3 [( p# U, u" g- ?. [6 Q, u
{" {+ ?6 M) \8 a
pBtn->EnableWindow( FALSE );
3 _: G8 p/ A& p X* P; I( G }else" E1 Y1 v# P; f% u. e7 Q
pBtn->EnableWindow( TRUE );, `3 t& a9 q) d s* D
if( m_pTexture )* Y6 D8 ~0 m. z: y6 ^1 f
{
* X% D( Q1 K% D- f7 r LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 m2 v8 p) u m; \) f: f1 V
if( wndCtrl && wndCtrl->rect )# U) ~6 \- }1 w- X
{
7 v: Y/ r. x5 M5 J' ~ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); B( _. q9 R) F! Q- i: b9 H
}
- B5 c; J' M; \( n; [) O3 P, Z: l8 w }+ E7 W3 ] v& v; p
}3 X7 ^0 s ]$ S
' x5 m- A8 Z+ \ X. b, r- G
BOOL CWndAutoFood: rocess()
7 C& R% t8 A& z: b8 Q{! C ?5 [1 N' T" }* |. p3 ?; i
if( bStart )7 O; k$ {+ I( S7 ?
{; i; [: J9 P. _5 u" b
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ): J3 w3 A% T) h7 F
{% ^( r0 F* d: {4 v; @
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
+ _. I3 k1 M( @5 u. m# \# a g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
1 L( Y% e7 ~; X$ U }else{" o; d: [- B. x) m
bStart = FALSE;$ Q ~4 n. B" V9 V9 G
m_pItemElem = NULL;
; B$ g% q: X( X( u" [ }
4 T, l- ^1 b6 @ }# \7 D, B. g+ j- X% X$ [4 l
return TRUE;% [5 D2 N8 @$ e* a5 w
}
, R! I1 \* u! j1 ~ b( A% d
; `4 C3 g2 o: D9 M6 @登录视频废话:
1 ^* o$ N0 B# f+ b! E( j尾翼:4 l8 W, c& t) ~8 v% R+ H
4 G$ z1 R8 t: e0 P4 X代码:# F0 i% V8 J3 k. |# h
6 d1 v& V) m+ K! Y* c1 h4 q2 y
void CWorld::SetLight( BOOL bLight )
7 ]1 ^+ Z" M/ m/ t8 ]+ u* C! xdurch6 O* D5 g- b7 \% F; U# r# x, U
Code:
% d& a, |) c+ {5 Yvoid CWorld::SetLight( BOOL bLight )( O5 y3 `, w7 z5 T* Y( S7 H
{
. H" q& w( Y& |' Q //ACE("SetLight %d \n", bLight);
' H" Y! y3 i* _& E; o8 Z 2 X* D4 q0 Y1 t
#ifndef __WORLDSERVER & u0 L( {/ L" r4 F
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);1 j' `& @( N- q" s
CLight* pLight = NULL;; f8 M1 g( w+ z5 M4 M
, N6 k; ]0 a1 q* \ D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );. E) N0 @/ d! c' S3 P. K F9 U
- X7 X- I/ o" X8 ?+ u; G" b pLight = GetLight( "direction" );( R9 C r. c+ k$ X5 \: l/ p
, P2 D# R4 M/ o# P- o$ a) }
#if __VER >= 15 // __BS_CHANGING_ENVIR
" y5 q7 w- { ~5 u3 U$ S0 D3 }) f3 U if( g_pPlayer ){
% V/ [+ v2 i F8 j) } ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
0 N% G3 B, j/ p6 g, ]0 r if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!+ Z0 F. o7 P5 @- G/ i; K
{5 D* ^* O" A; G; l5 d) t0 t
if( pLight )0 l1 s% m! F) |& Q
{
) T) E9 c9 y; d/ N. ^2 O/ F9 { pLight->Ambient.r = pInfo->_fAmbient[ 0 ];( ] t+ H' f) p( U9 D4 X7 @
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
$ v& D5 \( V8 O, N/ D pLight->Ambient.b = pInfo->_fAmbient[ 2 ];5 }$ D2 @) m9 Q2 \( w; V4 {
4 I1 A1 P l# c# K8 Y; d pLight->Specular.r = 2.0f;
# C! D) r+ X2 j6 m# H pLight->Specular.g = 2.0f;: w9 ?0 k7 W) j9 D: @7 y
pLight->Specular.b = 2.0f;
0 j9 D& o* x$ n) w+ d % e G, K) t! T" _! k Y2 x
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
% i/ P2 j. Z! k( g7 B% f4 H pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
+ ]' e8 z/ W0 L/ L1 A7 L8 F7 s' ] pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];) ?* w* f; o7 c# E8 n0 g3 H% C
; @/ P2 Z5 F$ ^7 L/ i L' M. g HookUpdateLight( pLight ); d+ y* ?$ b4 S, Y" J7 @! s, u
; B; P- C& O" I memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 h3 ^% E% Z5 O! k$ d 9 Y6 F$ s: {5 Z% @! h
pLight->Diffuse.r *= 1.2f;
% c5 I, n6 u! C2 @+ t8 } pLight->Diffuse.g *= 1.2f;: z) s6 V) x# V% q. m6 w
pLight->Diffuse.b *= 1.2f;
, }9 x: u4 h! T( H2 B D1 V
* L' Q3 T4 I9 P pLight->Ambient.r *= 0.8f;; Q) y. Y& }. }1 }
pLight->Ambient.g *= 0.8f;; K; T& W1 K6 p9 f1 B
pLight->Ambient.b *= 0.8f;: Y. F' E& \; N" J, J
# Q& r% W" V- T5 E4 Y" u
memcpy( &m_light, pLight, sizeof( m_light ) );1 `1 r W# z9 y! s' ~+ [
- M1 E; z0 a# \+ T3 Z; y D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
5 o% w& h- m, K- a' X/ t D3DXVec3Normalize(&(vecSun),&(vecSun));
- e- R) ?+ {: p& Y, A5 T3 |- ~' `. u pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' h5 m7 P) D% v$ {& S( s- { pLight->Appear( m_pd3dDevice, TRUE );
/ [5 k; O7 Q& F/ Q6 p9 n5 c 1 U1 v) }& d0 ~2 j
DWORD dwR, dwG, dwB;
) s, v% H8 S3 D {- b dwR = (DWORD)( pLight->Ambient.r * 255 );
% P# @8 h- j) m" i1 h; Y X" N dwG = (DWORD)( pLight->Ambient.g * 255 );4 G9 D3 b3 X4 a8 B6 L1 B& Y: K
dwB = (DWORD)( pLight->Ambient.b * 255 );
2 F* j9 T: S/ l( R dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );1 F1 E$ b) a0 u" @
}$ C1 S8 w" X3 u1 H1 N: X9 M
}
* o4 S6 b7 v, M5 m& a }7 K0 O5 N* G% {& s
else
; O' j9 j" Y& ]# b( l#endif
- ?, @0 I3 t+ i/ ?
, J7 w+ Z7 C; q2 ^, }3 E if( m_bIsIndoor )# p6 K# r. k) y2 ]* f; W+ d4 E
{" g- U, O! ]5 j7 j/ w7 i
if( pLight )
2 o \+ r; X( t; ~; t1 P { : |. P; i$ j+ b/ v! e4 z3 l
// à??μ oˉè*
0 W2 S3 k. o6 m8 n pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
1 j/ U0 k6 s, l3 @ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;1 a; ~; |4 Q7 U$ d
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;% `) P# \ V; I
. o o m( H/ {6 [. W( M1 l! r% V
// oˉè* ??à? ' M, \$ S/ i. _$ ~" Z) e
pLight->Specular.r = 1.0f; |! d9 r) T# ~1 N
pLight->Specular.g = 1.0f;
% F- Z) y$ T/ y: e3 } pLight->Specular.b = 1.0f;0 q4 |$ {" S- b6 z2 v2 o
// àü?? oˉè* 3 B) @' S+ @4 \. g6 B0 P
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 T8 z9 T' q. P' \9 H) @0 D5 S
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;4 q ]' `% L; D! I+ o
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
9 d) U8 U+ h5 F1 _, K( k
% Q1 k. r, g$ D, N+ n- h7 p1 s$ A5 ^) ~, w if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; n+ h- V" ~! C7 D5 u
{
" k: B! w* H6 n. S P pLight->Diffuse.r *= 0.6f;
P& o* {$ E1 a! O- ` pLight->Diffuse.g *= 0.6f;- ^ b: e& ]" w
pLight->Diffuse.b *= 0.6f;
" B# |5 U: |6 G$ L7 W pLight->Ambient.r *= 0.7f;
; g2 A+ y" c/ U pLight->Ambient.g *= 0.7f;" W1 l$ O1 h8 z( |+ x
pLight->Ambient.b *= 0.7f;: `2 P8 M% F3 h- w+ I
}
. H" J5 E9 U( ?# ?& s. a1 C/ Z" V8 h/ X M3 d; S0 a% z1 Z
#if __VER >= 15 // __BS_CHANGING_ENVIR
& k% k4 Y1 ~4 A if( g_pPlayer )
5 X" m0 D, K( K HookUpdateLight( pLight );3 Q; E8 c& x, i* E$ e7 g+ F2 a. q
#endif* O" [$ @0 G; n* j* b7 M
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 f4 a2 F9 h( j( p% r
: | ?5 X# O1 n! a6 }6 y# G* }" k+ ^
pLight->Diffuse.r += 0.1f;: E7 T8 e: z4 w- l% {$ ? J
pLight->Diffuse.g += 0.1f;& ^$ S6 c2 I) a/ z8 g! m
pLight->Diffuse.b += 0.1f;6 P5 W5 k8 D0 K9 B1 K8 a/ t
// oˉè* ??à?
+ ^' ?( I: f/ r0 b' u: ]6 o pLight->Specular.r = 2.0f;: V/ L! U) c5 g0 D+ f. i
pLight->Specular.g = 2.0f;! ]% X8 ?) l4 x( v5 y( e/ k0 Y
pLight->Specular.b = 2.0f;
% z& E& f, _6 v; ^* Q' G- b // á?oˉ
$ p" B' }& L( ^6 R7 ~9 b3 ~ pLight->Ambient.r *= 0.9f;
4 U: S4 v, h) x0 P$ p0 c pLight->Ambient.g *= 0.9f;! ^, ?; t7 x1 g
pLight->Ambient.b *= 0.9f;4 {# X: H6 s5 ?3 a, ]; C; W
. G" z& H6 V5 ~. u
memcpy( &m_light, pLight, sizeof( m_light ) );
- l" b) r! j- `( K3 z " Z% F0 b* K( E) @
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
, X& {1 e3 ~; v, z- v* p `0 ]2 x pLight->Appear( m_pd3dDevice, TRUE );
' X& x+ @: s0 h$ o W0 m3 e& Y & P* T) L( z c9 U5 p
DWORD dwR, dwG, dwB;
' S* n! j+ W; N: y4 R O dwR = (DWORD)( pLight->Ambient.r * 255 );
7 m" B `3 e' P4 O( F dwG = (DWORD)( pLight->Ambient.g * 255 );7 \6 W7 z9 P3 |, x8 @
dwB = (DWORD)( pLight->Ambient.b * 255 );9 m6 \- r- O, J, j
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );7 s7 E; j8 F0 h ^1 E4 y8 K
} [& `1 j$ E( E2 G
}5 V' l8 W/ q. ?. o& B# v
else
2 {8 c* H# S% `2 U6 d7 ^" Q& X {
/ c' _* w9 F) R if( pLight )
' I* |% i6 \8 ^7 g! y% N2 i {# [0 U/ L9 l9 g5 l3 }8 z m( o
5 j1 q( g1 {1 @8 q. V
int nHour = 8, nMin = 0;0 } M0 Y0 ~. a' b: C& k# t0 E! R- Y
#ifdef __CLIENT# I6 i7 m3 v% L8 H6 A2 l/ o
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 2 t" q! p; J7 x% ^1 e
nHour = g_GameTimer.m_nHour;
$ p6 b! f& ]% D nMin = g_GameTimer.m_nMin ;
* H9 t8 y/ N h# f$ v #else/ V' W4 F! O+ P
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.7 ]$ \- X/ y# B2 A
if( m_nLightType == 1 )2 N: X' b; E5 R; m3 r
nHour = m_nLightHour;
" ~. f3 t1 p/ q9 i0 d1 E #endif
' ^) G/ @. t$ A' | nHour--;, i @% H# D# T, u
if( nHour < 0 ) nHour = 0;0 X! w0 X" v0 y( H3 H
if( nHour > 23 ) nHour = 23;* C, t; i' I W3 H; E0 g
8 @1 A: J: h4 E u; P" F+ |3 u //if( m_bFixedHour ). p: p6 z0 i! F. q
// nHour = m_nFixedHour, nMin = 0;
, e& X% F/ `" T4 [3 w( _$ Q' P LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];9 u2 I. k: q- \ X5 s
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
5 ~$ ^& {( z9 X L, s. Z" E
9 l5 z& h/ |) |2 c7 ?+ F2 Z //m_lightColor = lightColorPrv;
. |8 W, o0 g' Q" \2 D9 J+ Y5 G lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;0 `/ g3 u G8 S2 z) |
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;1 i4 ~0 \' X7 k; t) n4 i
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
* f% r, d) }/ I% d lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 m3 X7 R. j B8 {2 v; l lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
" H0 P- l/ e) U lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;+ \. {) d9 d6 J+ l" v9 H7 g& d
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol): u5 w& K8 a" r4 H8 a
1 O9 i2 q2 A4 ? // à??μ oˉè*
Y7 d# P- s9 g5 w6 D* { pLight->Diffuse.r = lightColorPrv.r1;. V' Z8 Z ?9 K& b# a& j9 D
pLight->Diffuse.g = lightColorPrv.g1;
' q! {& ^7 L, B pLight->Diffuse.b = lightColorPrv.b1;; Z7 a+ ?2 ~; C* j
// oˉè* ??à?
% c- I# K8 w) d* d* q pLight->Specular.r = 1.0f;3 _! i' D+ H( K
pLight->Specular.g = 1.0f;9 a( F: i: P9 v) S+ ]6 q/ f7 Y/ [
pLight->Specular.b = 1.0f;
" z" k# j% q" F) E0 P5 h3 W- t // àü?? oˉè*
}& g) j V( O% ]' K# [ pLight->Ambient.r = lightColorPrv.r2;& I7 N: E M5 \' ^- I
pLight->Ambient.g = lightColorPrv.g2;
, R4 e; U$ p. ]- H/ [. N pLight->Ambient.b = lightColorPrv.b2;
. j& k. X( w! A& M1 p. V, m3 o* b* U1 C* ^% ^) }% R+ d
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# C8 Z% b' R+ v7 d9 I$ v7 `
{
. ?. R2 W/ S( o" {, y pLight->Diffuse.r *= 0.6f;, K% P% a; H* K0 a' Y( n v4 d. C
pLight->Diffuse.g *= 0.6f;( c% X) z/ }3 h8 e6 E f
pLight->Diffuse.b *= 0.6f;8 r1 |/ R, g7 ]0 |8 F+ t
pLight->Ambient.r *= 0.7f;
: W! d2 i- b. ? pLight->Ambient.g *= 0.7f;/ T2 {+ m. X* o
pLight->Ambient.b *= 0.7f;
3 a( V& x6 Z, v, V8 p; f/ B9 q% M$ H }
3 k% Z; y9 b7 ~3 ` - m; X8 c0 l$ Y4 u" C+ P ]; ^
#if __VER >= 15 // __BS_CHANGING_ENVIR
G! D! j- L. u( W. F' @ if( g_pPlayer )* o: ^* g2 _4 }9 L8 n
HookUpdateLight( pLight );
) H) @- N R/ E+ b6 Q0 B/ y#endif+ ]& N) }1 c- s9 ]" s A# W4 N
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: J' V# d U( ?' r0 S( A2 A. ]6 E1 p7 }3 h# ] }$ z2 s% i! F% w% j
#ifdef __YENV1 i+ k0 ]( ?& ?5 I2 R+ j
pLight->Diffuse.r *= 1.1f;. T& C* ^1 ]& b6 M. e/ _
pLight->Diffuse.g *= 1.1f;4 @7 V! U1 y+ `7 o, E5 z* t
pLight->Diffuse.b *= 1.1f;
/ ?6 C% _# Q7 {, ?6 Q/ L$ E2 W // oˉè* ??à?
+ ]$ e6 P9 Z+ @0 X @" ?, V( }5 u/ p ^ pLight->Specular.r = 2.0f;) O0 a) v1 w9 l
pLight->Specular.g = 2.0f;
6 ` ]0 g" v0 @, }5 ^! e9 A pLight->Specular.b = 2.0f;& J' A+ E2 G9 t& ]; ], x7 W5 Y) U
// á?oˉ ; u1 j5 z8 e' S9 S9 k
pLight->Ambient.r *= 1.0f;9 z8 O4 G5 p8 {) D. I
pLight->Ambient.g *= 1.0f;
9 R) Y! Z3 W% G5 w* F. w7 @3 s! d pLight->Ambient.b *= 1.0f;
5 Q F. Q' P' c9 `#else //__YENV
1 y$ ~; {8 Z. b A- } pLight->Diffuse.r *= 1.1f;+ d: r5 X) K+ F; X9 ~6 T
pLight->Diffuse.g *= 1.1f;
* C$ y! B4 [5 `7 q1 I0 c9 J8 \. n7 T pLight->Diffuse.b *= 1.1f;# X$ l+ L3 h7 U0 Z7 `! \
// oˉè* ??à?
0 W7 v9 `3 O! N' f1 z$ V2 n4 o5 U pLight->Specular.r = 2.0f;
. O1 m& X/ R$ f9 ?5 V, @ pLight->Specular.g = 2.0f;
( u. V g: z2 M2 ]# @ pLight->Specular.b = 2.0f;
- ^, |8 ]1 N- \/ E! ~ // á?oˉ
# P2 w& Z9 z" {9 B8 _7 I4 p5 | pLight->Ambient.r *= 0.9f;3 R, r, v: ]: k7 G
pLight->Ambient.g *= 0.9f;
7 |- B W- d7 ?6 k pLight->Ambient.b *= 0.9f;) c' ~( Q2 n* C8 ]: ~5 k
#endif //__YENV
/ P% T, q9 C5 l0 W, K
, |" J2 q5 |+ |$ E memcpy( &m_light, pLight, sizeof( m_light ) );
2 H ]) b3 C7 ?5 R/ f - C( M w7 s9 _7 ? r* E
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);% i1 G1 Q. B3 f) j; }& b
D3DXMATRIX matTemp;, k2 X \) E5 M. ^( _
static const float CONS_VAL = 3.1415926f / 180.f;. x) T6 E) P" W. A' |# W9 C6 U
" w8 R/ N ^: m! S$ z S o, j D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);! i( c1 O: U% ]$ B Y9 G
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
* \; v/ b- N1 x- ]. O0 e! E$ V2 T pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 8 q+ O$ G) H6 m; j& i6 a: g+ X1 z2 O
pLight->Appear( m_pd3dDevice, TRUE );0 e7 a4 @* b) ^, S7 S. G& X) E1 ]% x
! m a" U% L3 C9 ? J // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
3 }, F) x9 p/ c2 K' y8 i // D3DXVec3Normalize(&(vecSun),&(vecSun));; Y; D( H( v: r$ S2 ?
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* @* a) k% T/ k. L M
5 G/ _3 U4 Z& W; ~ DWORD dwR, dwG, dwB;( g" ?7 n, h. C2 ]0 R
dwR = (DWORD)( pLight->Ambient.r * 255 );; F3 B1 ~3 c. I) \7 O. [' ]9 E
dwG = (DWORD)( pLight->Ambient.g * 255 );
+ d9 ` {4 T0 T) ^( o dwB = (DWORD)( pLight->Ambient.b * 255 );
6 O9 f. O: ^& ?; l7 z9 H+ F! @ dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ; B3 R7 t& x: r8 X
}
( W+ m- M: a, N; K& e }2 `' U6 P$ O+ r+ \" [. u$ L& w$ E: G
) w. C! x: ?: Y A. Z1 a* Q6 n
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );/ f! K; y6 M6 K1 S l! s
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) );
* l0 d# h3 ^/ P" s ::SetLight( bLight );
. a$ |$ K) C1 \/ G, y
5 q! `* j$ w& t, E% b // ±ao? ?D?í???ó á¤à?
' H- m- Q# y. ? m_pd3dDevice->SetMaterial( &m_baseMaterial );" E# ?7 ]1 D( s( G
8 w3 e6 p4 D6 F( ?) v+ ^#endif // not WORLDSERVER
: S0 d0 f# j7 ~}
2 f c ]; k" Y$ e* j$ A* W并更换
7 H7 r( \# v% V) jCode:5 y# G2 `3 C" d j
__FLYFF_INITPAGE_EXT
; l* y6 T4 ^$ ~定义
$ `% E. T8 K: Z/ [0 e8 y5 @$ G+ q6 Q% O# ]% |2 X( k5 t) ~4 V* s
# f* Z- t" G$ w5 {4 v& f- a; B7 l# c3 p) M1 n2 n& s: t
4 s" p- m' ?& j* c$ L8 O$ P
现在终于删除我的狗屁加速...
$ m; Z7 D1 D1 ~2 N& D; m" @' B5 A; r
% S$ l2 R! u5 O% \4 X- ]/ i" _; ]& S/ L1 p m1 x X
' v; E# k* h F6 z# @ |
|