|
|
食品车:+ I# f. h$ Z/ J+ x, a( r. f' V+ \
尾翼:' d+ z1 b7 c' O3 i, ]0 p
# k# l) t3 G B' i! d
代码:
& t6 L V5 o0 _- J1 ^3 I: ICWndAutoFood::CWndAutoFood()& k. @/ k6 U1 H4 D( |
{3 Z: S: R) b9 t( S+ K
m_pItemElem = NULL;6 I1 _6 K2 V- D1 y7 K8 v
m_pTexture = NULL;
! w8 K) |) D% Y5 I$ ~ bStart = FALSE; W/ z& j- H: c$ d c, f+ E, }
}4 a/ Q9 Z6 q$ U8 O, j- d6 C7 R
, [$ \8 H0 I& b5 n3 X# i, ]: ?+ z6 h
CWndAutoFood::~CWndAutoFood()9 \5 ?) V. U* I6 e% t2 Q4 Q
{
6 s. E2 H; u. _6 s AfxMessageBox( "AutoFood ist gestorben " );
* {* v: m5 h# Z1 Z7 V}/ E9 g2 O+ F1 z: B
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
6 L- r, |9 N* F4 f8 R7 i% C5 D{
2 M2 t* o+ O5 ]0 b6 z8 C return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );0 z, y. s5 N, K% X
}* l6 }) D% n$ h9 Y% a
7 K( u' f. E4 |9 I/ t' f8 C
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
0 d9 d8 P9 W1 C5 `- a* I$ x9 o{4 m# k! E; y! g4 S
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! L @) K7 O8 b CRect rect = pWndCtrl->rect;
2 W, ^4 }$ W, K if( rect && rect.PtInRect( point ) )
7 L8 ?8 [4 ~8 ~+ W" ^0 F8 f {2 c& ]+ Y2 O" B) h
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );1 Y3 i" }2 g% B; h' c- F+ m( b8 N1 ]
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ). Q* x/ S4 Q6 l4 ]7 n
{
' ?8 `% D0 }6 G: c* p if( m_pItemElem )
7 B; w" k% h a$ I. y, K {
# M2 z' Y1 R; D4 ^ m_pItemElem = NULL;" v9 O( B5 E: f+ ~6 w
}
! V% X8 F0 g( ~% L1 d& P" {# L m_pItemElem = pItemElem;
$ r, k8 D$ o: y" h/ t. J m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
! M! b- R4 _( t" m. D; g$ P }else{
+ `" h. H7 D) |: ^ SetForbid( TRUE );
! K/ b. |$ q9 i9 Q# e }* \/ d9 L% x& @: e7 W' Z0 Z. s) ~- A
}else{
& h% B3 U: q! {( K/ H SetForbid( TRUE );/ y. T/ i/ [% V: G. i5 c
}% `/ e% j8 U& J& ^- ^
return TRUE;$ R- L6 L, ]) e% \
}
* ]- M" h8 i* u) P8 f+ x; K, d4 g
$ }$ G; x0 ~4 v: x8 X! g) W+ {/ FBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
5 M- N4 E, Q6 A7 ?& B{
/ J, G3 {! [% X( u" h" e switch( nID )
% H4 |/ U" d2 j6 p1 d {* p) N8 | d0 A+ R
case WIDC_BUTTON3:
9 Q1 _4 t4 K7 Q {
% U. Z) a0 ~( U. l; A" ~ bStart = TRUE;
! u6 s$ ?% ^3 w0 M7 Z# c( Y break;! g7 H* ]; K, O! n) }
}9 u9 ` J) N% E) S! w
case WIDC_BUTTON4:/ I1 a; ^: B' w9 J& A! e( c6 `, I
{
" |3 h- U" s+ u1 m3 r2 j7 Y" `: P& |* S bStart = FALSE;
" t w5 K. D* G9 O3 g! d break;
- d3 `' F" `+ H# q# o* W: [5 J8 o- n- h }. ^7 A6 W1 ]/ Y* d( d d7 x
}( E2 z5 J5 N+ p+ a3 D* v
return CWndNeuz::OnChildNotify( message, nID, pLResult );$ ]' @" f; H, }& B, j+ R7 l6 p$ K4 {
}
. E; \. l: Y2 \void CWndAutoFood::OnDraw( C2DRender* p2DRender )
% x1 f$ i0 r0 S! n{; W7 Y2 o# s$ H7 S
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
0 A0 \ o4 _% z" `3 K if( bStart || !m_pItemElem )9 q H& q; y8 w
{* w5 A! f, b0 B9 ~1 H
pBtn->EnableWindow( FALSE );, O6 C3 L) n9 r2 G. L0 v2 U( N
}else
) w' Z5 k" ^( ^6 f2 s4 X& ?1 E pBtn->EnableWindow( TRUE );9 R" j/ y- j5 [
if( m_pTexture ). ]- J; H3 s/ o/ M8 X
{
, C6 w! z* a( c2 l LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );% d P0 C% v4 }& _0 n( R/ |5 @
if( wndCtrl && wndCtrl->rect )
8 v( n6 Q: [9 H+ H3 l5 u {$ T7 }. E3 a4 }) p
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
( Q+ z( I7 {; z4 E }' {* [4 }! a2 b: ]9 O7 F
}
/ ~! a6 H: z. t$ C( P}
& t, g/ q8 X% {& h b
& w5 D7 ~" }1 `! fBOOL CWndAutoFood: rocess()
8 ~: L2 P6 f/ d+ @( B5 j{
$ p+ v3 S Z+ l4 \" f if( bStart )
, b( `0 @+ R5 n {5 J8 b' l8 m/ E! C/ J8 Q! k
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
/ R5 f# r1 ~8 l {% ]+ M+ e6 g1 x
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )- _* Q* ^9 G% z' `! c: ]
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts ); i: P8 _6 {7 a4 J- n5 c; ~
}else{
) [( }" d" x; Q. d4 L# A" P8 W: U bStart = FALSE;
/ P3 A& O( V H( J& L m_pItemElem = NULL;% J/ F% h8 ~" P
}
2 l, g0 g' a' A+ {/ z: j }- S0 z. h. Z) B: |: H, |/ N" O5 ]
return TRUE;9 }4 r {+ }$ T" l
}! |5 Y. L; D* H# c
" t8 x5 G3 }5 Z3 Q8 Y7 ?登录视频废话:
* u$ C: E9 A( S) G尾翼:
) T' X6 n/ k5 P8 n9 P0 V# ]; ?" Q
代码:
/ J+ i. E. S* A/ t
# O S6 l7 t: t2 \* i/ |+ Bvoid CWorld::SetLight( BOOL bLight )
$ j8 G5 M0 n; G8 Y/ wdurch
$ h$ G4 T) h! x nCode:' x* f1 H1 P* b E
void CWorld::SetLight( BOOL bLight )
+ s M% e2 q7 ~{
' I+ B: \6 Y, @& Y //ACE("SetLight %d \n", bLight);
* [) k; U, D6 Q5 z" W2 J 6 t* |) X' R# ^4 k
#ifndef __WORLDSERVER
6 [1 u6 e0 q$ b9 ` DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
% T% W6 ~. L+ }. q! g" ?# m' o CLight* pLight = NULL;
6 R `6 G! _7 H, J
. X1 ]4 J( `! X/ C8 l- a D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );" z$ H* {6 y; u1 n1 B' Q. |
3 c6 }# h3 w: X- v; U2 T pLight = GetLight( "direction" );
! e& C: I! ^3 L+ Q3 b% _
, r# ?; J; s3 s#if __VER >= 15 // __BS_CHANGING_ENVIR# N$ N5 y' F) U2 L6 C
if( g_pPlayer ){
" j B9 {# |. y ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );) A9 o3 u9 k2 v: S
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!8 X/ t; a" H( P% n* M. a. H
{
' F7 T0 u0 O/ U# Q+ u/ M+ V% ? if( pLight )
+ v; {, m; P2 X+ z8 s' H {' S3 f0 N$ W) y; c1 S2 U2 W
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];! x* y; O! v/ g) a" `0 ?! ~' K
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
}' X) N- B2 n8 v1 A1 e pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
- z1 Z; u9 f- z# Q0 E6 e5 c- |2 D) s! G4 _" k
pLight->Specular.r = 2.0f;( K2 }' ` P3 G% L
pLight->Specular.g = 2.0f;
! e& x- @2 ?; B9 S. E& g pLight->Specular.b = 2.0f;+ b8 C' K1 X% X) z2 U
7 U h7 f/ E7 [1 \& u/ [
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];3 M. I4 R6 g. v3 o
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
, o: r+ o. S& J0 y! N pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
( q% @' W7 L* N3 Z3 w& X0 b* x
g( R/ D7 c; L- C, G% P HookUpdateLight( pLight ); % `% u3 u d7 Y+ a. H3 A0 E- f
5 M9 g% Y6 J- P+ b memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );; u" Z7 [; X+ J$ q/ n
5 W: F$ O, J# u# ~+ F) k* m5 y
pLight->Diffuse.r *= 1.2f; \6 N/ {# _( l
pLight->Diffuse.g *= 1.2f;
* x# X- z7 k0 i+ \ pLight->Diffuse.b *= 1.2f;! ?* I. M. F' p$ V7 {+ i! p
) E( b5 A- }/ d Z1 p pLight->Ambient.r *= 0.8f;+ L8 j9 ]! I/ [* P8 c0 h
pLight->Ambient.g *= 0.8f;
# C% |- \9 w2 ]+ T1 T pLight->Ambient.b *= 0.8f;% n. F A/ T+ S8 ~# Y
- z( J* N2 W5 p8 O memcpy( &m_light, pLight, sizeof( m_light ) );+ W' z! F: n" E7 Q
" w# G& E$ v2 A+ m5 A7 w D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
+ H) q6 F) z; X& R- q% s D3DXVec3Normalize(&(vecSun),&(vecSun));
+ M8 w) o Y4 I2 h; S. L pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 i6 B4 A. a: _ w9 ? pLight->Appear( m_pd3dDevice, TRUE );
' B1 X# X- X) \8 W0 ^) E _; z( i: A* o+ {
r+ y7 E; M* p7 g# [ DWORD dwR, dwG, dwB;
. _- E* j0 x6 E/ g* l# Q dwR = (DWORD)( pLight->Ambient.r * 255 );* h! |" n" W4 E2 a1 w
dwG = (DWORD)( pLight->Ambient.g * 255 );* r# P& b- U# D% u; g+ k
dwB = (DWORD)( pLight->Ambient.b * 255 );
/ K: _9 e) H( @; N$ |) e dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
/ y( F B- k; M) T' I7 f/ j8 k3 A* i }+ [* n9 S) d7 X' J8 \9 c; A
}) f. }6 _# n& T s4 L8 K' h
}
( t! W; I% s d$ y2 g( A else
7 R' R& ~ J. |% [2 I#endif
; y* N2 h+ ~0 q/ n. a
; `5 s8 R* x' e8 y! F9 l if( m_bIsIndoor )
3 D. u, u m: C/ K9 L( i$ k1 A {0 B! D: P- z. x6 Y, g7 A5 j
if( pLight )7 W$ f9 t% O* V1 S4 p6 i
{ 2 F; _. X, _% o3 ]- s
// à??μ oˉè*
; x2 S# ? ?: e$ A pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
- F' G6 c% r1 p8 A: v- S: G pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;; o+ Y" }$ \- g+ Z+ A
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;7 M3 t& {4 h" O! l
4 c3 @. X$ F" E ` // oˉè* ??à?
! c2 C$ M6 p: l- q, j pLight->Specular.r = 1.0f;* v+ o2 ^0 `' `2 x% d3 I" f
pLight->Specular.g = 1.0f;- [5 C$ a2 U9 m( ^8 L* l7 ^4 ]
pLight->Specular.b = 1.0f;
: a% L/ u+ [- m" u' O // àü?? oˉè* + N2 f) j- r) @* E: z6 [% ~
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;- v! E2 Z* Y: F/ e6 O! r( e
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
+ W+ z) K( L) e W9 ?7 r pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
- m1 {& E, o! O) I/ g& _% Q) ~5 o
5 F0 v% v& t: j \& t+ K, q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
* \4 i- O9 |, ~( b {1 u; n* M* L& |5 a7 R; C7 |; R0 f& G ~
pLight->Diffuse.r *= 0.6f;
7 T* h& ~/ V( p. D n pLight->Diffuse.g *= 0.6f;
& m" d; ]4 t- S$ `/ M( ?0 i& f pLight->Diffuse.b *= 0.6f;
# v# C& ~; n! g: L5 M pLight->Ambient.r *= 0.7f;
" C5 n* e0 u, f6 j, x pLight->Ambient.g *= 0.7f;
. u! o; B9 W+ ?5 @% O" J! }4 U! ] pLight->Ambient.b *= 0.7f;+ w4 @, ~, q( u6 k- {% i
}' _0 _1 w: |$ d% }, Z, y
& s" e2 T0 R8 b2 H" m, q#if __VER >= 15 // __BS_CHANGING_ENVIR
0 g- r' u! f* E' M- a if( g_pPlayer )* N! v& B7 B4 B9 ^% R: k
HookUpdateLight( pLight );9 U# J6 S9 V6 p! ^2 `, ]
#endif+ r7 \! F9 e) {; c0 P% s& x2 r
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( }6 B* A( j( ~1 Q ^
! d1 T E9 m8 P- I$ R) b) l' C pLight->Diffuse.r += 0.1f;, B. A* w) B4 h
pLight->Diffuse.g += 0.1f;
! v7 j8 k \: z6 ~! a pLight->Diffuse.b += 0.1f;3 p6 O4 c! e0 ^# h4 ?8 J
// oˉè* ??à? . s! I9 ^ b7 Q0 J% K/ v
pLight->Specular.r = 2.0f;
" `- n. Z4 [ ?; g5 j8 D2 R pLight->Specular.g = 2.0f;5 z; |, l3 \) P) B. _! |
pLight->Specular.b = 2.0f;
* j9 h; T% v; S // á?oˉ
( Y/ d% A$ X/ Z9 L1 n& b pLight->Ambient.r *= 0.9f;" S' X9 E. F2 L
pLight->Ambient.g *= 0.9f;
, U$ o, V) K' e% @ pLight->Ambient.b *= 0.9f;
4 F7 d' D$ }' R( i/ k
# e- b3 L) x. y. _0 r memcpy( &m_light, pLight, sizeof( m_light ) );
& v9 Z+ ?) P% W; q1 H
3 S: W$ G# l5 |- ~ pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
1 F7 A; ~! [, f* u; K: Q0 } pLight->Appear( m_pd3dDevice, TRUE );
! c) T6 L+ B N
' b0 d# T4 j, d DWORD dwR, dwG, dwB;* v) n, ^; l7 Z5 ]+ K2 B# z9 R3 Y
dwR = (DWORD)( pLight->Ambient.r * 255 );' P% A/ k& `' e) i t& k$ R4 [
dwG = (DWORD)( pLight->Ambient.g * 255 );7 @- s+ `. Z- i. w
dwB = (DWORD)( pLight->Ambient.b * 255 );
1 w9 _' S& P2 \: {% J5 P" T8 [) T dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); k) t. @" F4 w" J, P0 ~$ ]! z
}
% p* B4 H5 k% `, g }
c# Z2 F) w. u) _) b# h else
% R J5 j4 s* I, P7 j$ q! @ {8 U$ u2 n$ [; |4 G
if( pLight )) _7 C3 ?. L- t
{6 f% y# N2 D# \# z- C, u$ f
% M+ [( h3 \! K( U) W( K# W3 s" f! I Y
int nHour = 8, nMin = 0;6 ~- B, t7 `% t, Z- T0 B0 M
#ifdef __CLIENT
, a9 `! I4 E+ J // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
, c! ]3 Y5 n4 B! x# [* m1 p nHour = g_GameTimer.m_nHour;
5 f# S' h( ?5 H& J4 A q4 E2 x) \ nMin = g_GameTimer.m_nMin ;* y0 ]/ M3 J, P* [: X( e; G6 {
#else
/ C7 m5 M1 `6 ] // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.: ]5 ?; Z- {6 k4 m8 B& R
if( m_nLightType == 1 )
. F& `( m+ V7 M3 j nHour = m_nLightHour;8 J \) }- X T/ i6 p/ ^
#endif) o: z/ R& x+ x
nHour--;8 ^6 V$ Z \8 [& ^
if( nHour < 0 ) nHour = 0;6 I x; c( r7 Q$ T6 s- j: [
if( nHour > 23 ) nHour = 23;
1 L( ?0 F% b* ^0 T
( c6 m3 Z2 ^& s' k3 ~4 w, [ g //if( m_bFixedHour )
) `/ |' B+ `0 T5 ]& t3 F5 Y // nHour = m_nFixedHour, nMin = 0;
, _3 G- y: ?! @ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ T) x! S) d. J
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
6 \1 x7 ~# M1 e2 [9 B. _9 J
4 l6 U6 a6 S' e/ e$ k //m_lightColor = lightColorPrv;
- `7 U* s: o8 R lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;6 X: F6 t6 d) ^; H$ t8 V Y
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 Z3 h, e# e, O# {* r' J lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;5 t% J4 I, y; P2 ?' N% _' V
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
/ Q( M( `8 ]4 | v lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;* o0 {! E9 e8 N( E2 t
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
; I* a/ E4 l% E# M // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
+ j) X: w' G" k* J1 y" x5 M* E, K
: s6 J9 x% k; d; c0 b" M$ A // à??μ oˉè* ; z' p3 R$ W( ~6 [& y: R; v' b3 ^
pLight->Diffuse.r = lightColorPrv.r1;
5 h1 W; E: z# s# ? pLight->Diffuse.g = lightColorPrv.g1;
1 X# O: R6 q- {3 @7 p- Q) U pLight->Diffuse.b = lightColorPrv.b1;5 D7 L8 O$ k& @3 |% Z
// oˉè* ??à?
7 G7 A- t) _ P1 f+ w: {# V pLight->Specular.r = 1.0f;1 E! S' a0 c6 f9 ^$ [ @
pLight->Specular.g = 1.0f;6 W* k+ e. \" e6 G _! _8 ?5 f
pLight->Specular.b = 1.0f;
- E% d! X I! }% { l; M // àü?? oˉè* 5 Z) k3 `( m% l2 @" H; N) ~
pLight->Ambient.r = lightColorPrv.r2;! V1 d' |( O0 ~4 ^+ b2 q5 w% Q6 f( c
pLight->Ambient.g = lightColorPrv.g2;
' |% ~ r: G8 W2 p+ i/ i @ pLight->Ambient.b = lightColorPrv.b2;5 s9 }0 N1 j) n) m, y8 m o* i
5 M# k4 y; G5 i% n/ | if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- A- e; Y$ ^1 G6 W; O" {* i/ O: T
{
. k+ C6 _/ U7 B2 A, t y pLight->Diffuse.r *= 0.6f;
8 J n6 E: B/ R pLight->Diffuse.g *= 0.6f;
1 T& @: b1 v1 O9 A* W pLight->Diffuse.b *= 0.6f;- q: _) p' m8 c3 C) C! _, I7 \
pLight->Ambient.r *= 0.7f;
! [. I5 ]$ z# g6 ?# n9 k pLight->Ambient.g *= 0.7f;
3 h( [! d- ^; p pLight->Ambient.b *= 0.7f;
' y' i- B5 g. ^' v# x! q% X }- u; P2 \' z8 F) q: H0 v& \$ z* r( z
1 O1 ]" Q! C# l8 [- u- p#if __VER >= 15 // __BS_CHANGING_ENVIR2 i% z7 _8 P* x( p+ Z6 ?- Z( c9 @
if( g_pPlayer )
, n5 [5 d+ L( i" J) r+ M0 Q" A HookUpdateLight( pLight ); % E( @8 j* Z) l- f5 g1 B' @
#endif
% q5 W m; h7 g6 {* d. c! H9 z* n n# a memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 m. J9 p& h' |( U% L0 O1 u" M% ~* t4 _4 u8 ^
#ifdef __YENV
5 B" f* @) o8 D& }$ I: q pLight->Diffuse.r *= 1.1f;
2 h) _$ J" c! i& ]; ] pLight->Diffuse.g *= 1.1f;& i" ] K ], I
pLight->Diffuse.b *= 1.1f;7 N9 l' H( J* {
// oˉè* ??à?
5 G- A7 V# D2 F8 M9 h$ Q" v pLight->Specular.r = 2.0f;* ^' k4 W# a3 Q! A' x4 l% c/ S
pLight->Specular.g = 2.0f;
9 N9 b+ A- `- l. P1 e9 r/ r8 i pLight->Specular.b = 2.0f;
3 c! U" t5 C. b( ^# J% K // á?oˉ
5 J1 j' S0 M; v2 h8 X+ c% f) {2 N pLight->Ambient.r *= 1.0f;0 S. R; o. _8 Y" _* \, c
pLight->Ambient.g *= 1.0f;& ^# q Q* y: f9 N! B, k
pLight->Ambient.b *= 1.0f; H4 [* H/ O* D/ m
#else //__YENV/ Q) f* ^' z; S* e5 S) H- w. X5 K
pLight->Diffuse.r *= 1.1f;
) v# W9 h+ J$ E" G6 J& s" Y pLight->Diffuse.g *= 1.1f;& G& q G* `# D6 D) b
pLight->Diffuse.b *= 1.1f;8 F- q6 b6 `- O* B1 E$ ~3 X. n
// oˉè* ??à? 5 }7 [2 T: \3 B( x9 l
pLight->Specular.r = 2.0f;# h5 V" r' h S+ n, ?7 o
pLight->Specular.g = 2.0f;/ t0 N1 _4 M: G6 O5 d' e
pLight->Specular.b = 2.0f;
$ {. \4 z; v5 J4 P2 D7 `3 d2 r% W/ U: p; h // á?oˉ ; R0 M" j' {$ ]2 ^: T& K- \, t* q
pLight->Ambient.r *= 0.9f;. I1 |* Y+ ~* P9 F; w
pLight->Ambient.g *= 0.9f;
4 b% ^# L' t4 V; } pLight->Ambient.b *= 0.9f;
, _9 W0 x- a3 O- Y& V/ W#endif //__YENV $ W9 v# E0 D2 r% N8 K
+ P4 d6 T/ r. J8 d% m3 | memcpy( &m_light, pLight, sizeof( m_light ) );
" e7 E6 l4 }9 }" t
: k# _- ~1 v- ?; V! b D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
- k3 g7 \3 i. ]' [. I* |5 r% @ D3DXMATRIX matTemp;7 p. M/ Z0 P3 v9 O
static const float CONS_VAL = 3.1415926f / 180.f;3 x4 v K* @- x0 M3 s. Z/ U
* u8 X+ g( K7 [3 d1 J, i" l& q D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
) l; M- H3 F3 ~# {4 [! M D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
4 N6 o6 ]& j1 \0 ] e( o7 q' c pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
& G. G2 u* ]8 d8 e4 I# e0 S( Y pLight->Appear( m_pd3dDevice, TRUE );& [4 x* L l8 ^" C
3 ^ w$ {4 p- b4 v# ]# L // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);( t: }9 t1 x: y7 \
// D3DXVec3Normalize(&(vecSun),&(vecSun));
: O8 W, f* x* e3 O& F9 u // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 x8 |6 j4 ?6 {4 `) Q- I4 g
. N. ]% N, L# _1 V5 K. O9 e DWORD dwR, dwG, dwB;, l. K# l9 P4 X3 i5 d4 p: k
dwR = (DWORD)( pLight->Ambient.r * 255 );) Y' {+ r; G3 U( i3 K' \. r
dwG = (DWORD)( pLight->Ambient.g * 255 );7 l5 @' Y; j) [
dwB = (DWORD)( pLight->Ambient.b * 255 );
& O: _# R f; v6 }$ v- n) S dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 I; O# } W) F9 X5 X% I" B9 F m }: c( K) B( y% h7 f; Q' g
}
9 o9 u* q3 }6 R4 V2 ?. ]) C, d4 O& [- v/ `
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
) d4 X8 n. T7 J% f$ t) {+ \ 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) );
! u; j% S4 p' ?" K5 H; Q( g ::SetLight( bLight );/ T r( m$ w) f; U3 `+ C0 z) Q
) {% Q; t$ _- O0 J$ G% J // ±ao? ?D?í???ó á¤à?
7 V! k- h9 b2 y1 ? j% @' q# z m_pd3dDevice->SetMaterial( &m_baseMaterial );
9 U! }' n! v P. V# {3 I3 H" X
7 O q' ]( u7 f- z$ c" M#endif // not WORLDSERVER
! j! L2 q3 V( c# w. O9 ]# M}: j6 v$ }) s, R
并更换* r+ Q& m4 ^8 M) X; ~
Code:
9 j8 }1 i1 ^; r; K; V) d__FLYFF_INITPAGE_EXT
+ ]. }6 V: v, c: W$ }; Q) q9 P* G: W定义
' H0 L c. d W% ]5 l0 h3 A, V) @
" G/ {% R* g; \5 @; V# L' D( y, w$ G' D9 v& r( q3 e1 \+ W
' h( [) x0 } d. {& p现在终于删除我的狗屁加速...# `1 t' X% [5 t
7 X" G0 G6 Z2 e. ?; B/ I
9 R' n- H/ P. B
( t4 G# R/ g. w i |
|