|
|
食品车:
& D* J# ~6 M+ _; ~8 w尾翼:
: c8 S* y: q) Z; o. t0 b ^ k1 g: y, O* l F' n. [
代码:
; n+ d2 H# | D$ `CWndAutoFood::CWndAutoFood()
& i2 [4 _8 i" G/ m- u{
* }1 _4 ]$ I" L+ N- {9 v4 y# q m_pItemElem = NULL;
" e y4 V# W) x! F; q8 z' _5 {! c$ E m_pTexture = NULL;6 I f4 c! |* u( a
bStart = FALSE;9 [' G( B# g' a A/ T
}9 L3 E; J d1 j7 j2 \
- Y5 v7 Q) o# u* X
CWndAutoFood::~CWndAutoFood()
- y3 l0 I7 f0 d. W( R! `{5 i# t! T9 T5 c0 b
AfxMessageBox( "AutoFood ist gestorben " );
6 [; d) l6 g6 p# @}& \' [8 R5 [2 U
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
, L4 Y# ?7 c+ T! p{
% g4 I2 {5 ]% S$ l, ?4 ^ Z: Z return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );6 d; F9 H7 t5 \; k
}
% N& a, ]( b, @, |! ^
& y- u R/ G; {1 k( C! x# CBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
: h5 M+ m6 q8 B2 B" h+ u* j9 K' j{* y: I2 M0 H0 k [* U. g# `
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
5 S( P4 [% t- {9 I CRect rect = pWndCtrl->rect;
, B! \0 P/ ?- ?4 n4 q if( rect && rect.PtInRect( point ) )2 p6 z0 S! G, D% T! u* S
{) \+ ]4 j$ Z! u: V
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );6 s0 K) ~" Y7 h' O; j, l
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
7 s* c, [ D0 k: V d& b {0 Q8 g8 N8 G0 C
if( m_pItemElem )
: x7 G# o9 Z7 i& x" \ {. i9 @" h9 O) g- n1 B( }' z1 D6 ?
m_pItemElem = NULL;
3 `& G5 K, ?: l8 a: L- Z }5 ?8 s1 F! g! [. k
m_pItemElem = pItemElem;8 B5 u/ c& M3 I, z* w
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
" i6 ^2 x6 A; d }else{
) D% C; I3 [! B) z' | SetForbid( TRUE );; @( V4 H/ g5 I% ^- [
}9 T5 n% |/ w; i; d
}else{
1 [; ` _8 b! t) m+ Q ] SetForbid( TRUE );$ O) X- t# }. Q7 p# }
}
5 _# ]" I# M, | return TRUE;
2 D I* H) r. c6 `( t6 h4 M}0 j3 C. H8 D7 m2 w. W# k& d: l2 A; o9 T
8 G1 T' e4 d {+ R
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
( _" k4 B8 v( e& l$ q{1 o9 @5 F; ?4 \5 s. W6 ]
switch( nID )7 i8 h% N8 a! p& D
{
( I. T4 I' B" i case WIDC_BUTTON3:
7 h1 n) `; ]5 s8 `2 ` {
5 k# L' ~5 [0 Y% C6 S bStart = TRUE;8 T- o. A/ M$ t. E# _
break;/ k; J6 m3 ^! _# H
}
4 l0 a4 u% p& M9 z case WIDC_BUTTON4:
( E. W5 X/ H6 n1 I6 {9 |. |+ g {
- x! e" q4 m# m; ` bStart = FALSE;- ^5 s) @# ~: ^0 l$ d
break;7 S0 K0 S/ {4 `9 [! f/ F, V1 l
}& M2 W: {3 n2 G1 i( p" z% h. ^* ?
}
7 x' {8 z0 J, W7 L return CWndNeuz::OnChildNotify( message, nID, pLResult );
: S+ { @" D7 r3 f9 ?3 H}
4 i) w$ ?- p; O# Q# s/ Fvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )- K) }- v6 B! G) j
{
4 j' U k# K: d/ _ g1 |# I; W% G CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );3 B/ G% q9 a( Y
if( bStart || !m_pItemElem )* w5 T+ k6 M# T& E( _" {1 x* V4 ~
{
, M6 h* z G3 v& b4 _8 a pBtn->EnableWindow( FALSE );( P4 X; ]3 n# N5 Q$ E% k
}else
6 R) b0 Y# T- G% a) X9 ^' i pBtn->EnableWindow( TRUE );- _1 P4 W- I$ z7 K" y, O3 W
if( m_pTexture )9 b" V% Q- f# e
{8 \9 D9 N, y3 ]0 i; J. R" B
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );, r) E( M' W" K; Z, R
if( wndCtrl && wndCtrl->rect ). d( w/ p2 N( {3 T+ D
{ H1 p6 Y7 B/ L) {. o( T
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
- K9 ?& r% t# D {7 E1 w' v }
5 m$ Z- y5 K( [! m* ` }, n% R( ^1 V* l8 e: U
}4 g0 k& p. y* s# F* A, o9 R# |
5 l4 l3 P7 O5 f' ]3 @
BOOL CWndAutoFood: rocess()
; N) R2 O; `' t* \' f2 g{
' T& \/ i& b- P; u if( bStart )
f% v# `3 f( t0 T {
2 U# ?7 Y! U) B* J if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )+ Y4 m! ]/ V- R! L# Q
{
# ~2 c# [1 N; p' g2 c; Z, { if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
0 P% }" H! B2 `; R4 H. p( c4 i' g g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );$ H+ ?* B2 F& J* D1 {/ B1 e% k- B
}else{/ h H2 h. l' f" g( V
bStart = FALSE;. s3 q: D- Q5 [
m_pItemElem = NULL;3 I. {! u. ]: c G4 F1 v- S/ [
}6 z3 b, R- D2 Y" c4 h
} R9 I% C9 n9 D) l% ^8 B
return TRUE;4 H) c5 T m% l- s0 ]) s
}6 v$ R& b3 M# |5 \, H7 \
" Y7 ^5 ~* E! S) c* Z7 r
登录视频废话:! ]. t: v* j1 P$ C
尾翼:
# v3 S1 D' h. c7 N0 Q: ]$ v8 X# t* {" x3 v. ?& I
代码:" p1 N2 L" e% R/ p! |# D
3 `9 d7 z9 ]( z6 f% ~# M7 e) bvoid CWorld::SetLight( BOOL bLight )
! p# R5 D; L% k, Bdurch% G# A+ B* K3 X: p6 o5 P
Code:$ Z& s, q9 r, O% z+ A
void CWorld::SetLight( BOOL bLight )" E/ K$ T- s. p( T
{% c v( c# ]& I
//ACE("SetLight %d \n", bLight);* I) |) \; L# ]% L9 V* g# r8 F
% {* ?% ]' i- Z2 G4 B- G" i: u#ifndef __WORLDSERVER
) O W8 G Q9 L2 ~& t DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
6 {. f5 ^. j7 z" D CLight* pLight = NULL;9 H( g# t4 e5 s
0 r: @! l; I+ h* Q D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );* x# I4 w2 C* | h2 `+ k
1 h0 E5 `( F1 t7 Y8 P6 r pLight = GetLight( "direction" );9 U5 c }3 V% D& B
+ h7 M, w" g' X& l* ~# I3 J#if __VER >= 15 // __BS_CHANGING_ENVIR
; N- m1 s P& c0 Y2 r. ?! B if( g_pPlayer ){1 v% S* ~' X6 f& h$ H, t5 k& M
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );! x7 b: X0 t) [: @5 X. D5 j5 _6 c
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!* k* t* O3 }6 D& F- Z& Y
{
$ \9 V4 p+ F3 ^7 a' C1 R2 S) o3 t; Q/ ^! } if( pLight )
9 B6 Z: [0 O8 x {
: l$ F ]9 s- ~) i pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
( V9 m! {5 b* v' v. R/ j3 V$ H/ | pLight->Ambient.g = pInfo->_fAmbient[ 1 ];5 _/ o7 T3 p" B% T. }
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 R( V7 }* M# X$ a& c9 d# l
3 ]; m) \% w) V, [
pLight->Specular.r = 2.0f;; v% h( h1 `' d2 J, g4 r
pLight->Specular.g = 2.0f;( ` s& [; J3 k/ r( D
pLight->Specular.b = 2.0f; M: o' o! v/ p( T5 J; L$ Z
0 m% Z- L9 J+ [0 p- E pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];2 i1 X% y$ A0 c9 w9 [2 H
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];. g! u8 T, |3 d/ }9 |9 q* C
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];& ~+ J& ^6 c1 a: J5 E
2 z9 g/ Q% c( m) r; ^
HookUpdateLight( pLight ); ! Q# n( X/ _! U F+ U* D$ t- a" _0 v
% c/ {) y$ U% t: E. H# t
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# [& M" |/ }( e1 F' D. B5 h
3 Z9 T; {, c9 c/ X0 i( y, t pLight->Diffuse.r *= 1.2f;
$ o: j* g0 N8 {3 z0 A3 z pLight->Diffuse.g *= 1.2f;' r* V6 P7 X8 N3 p8 z5 j& F+ l
pLight->Diffuse.b *= 1.2f;
9 Q7 u% h+ H G) J- b
( z9 M T3 t E/ S% X1 B" _ pLight->Ambient.r *= 0.8f;( o) y6 v4 i6 O6 _
pLight->Ambient.g *= 0.8f;1 r- c4 A+ z2 o! p# |3 C$ D
pLight->Ambient.b *= 0.8f;
" E8 W. ^9 D( N$ [6 b
, y, s& C; O/ |2 {1 G- \4 Q! N memcpy( &m_light, pLight, sizeof( m_light ) );
+ j' G! H* J/ {2 ]* g" e" Z: a# O/ ~ _# I
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);0 q. a x3 {9 S# x7 q" A
D3DXVec3Normalize(&(vecSun),&(vecSun));* z! ~2 o1 g- u1 P
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / B* z0 G7 @) `' Z5 m( j1 k
pLight->Appear( m_pd3dDevice, TRUE );
- _$ w, T( v* i" z+ m; p, @* Z
% h" R, ? L# d1 x& G" \ DWORD dwR, dwG, dwB;) w" _5 o$ F7 K! ?5 F' a/ @+ Q
dwR = (DWORD)( pLight->Ambient.r * 255 );
5 E" s7 J5 ^% ^8 U6 Z/ u dwG = (DWORD)( pLight->Ambient.g * 255 );( e% F/ f( B0 _
dwB = (DWORD)( pLight->Ambient.b * 255 );: I3 v) q. i3 p: A9 ]" O
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
( W# X: N9 }; z: g0 c }
% L- K& C3 n9 [# M }
' q- }( V! N: D+ t8 \ }6 c8 W% Q9 O; F: ?3 T# u
else9 G$ f* |" z. z6 U
#endif
0 \' L0 v8 A4 \7 N& {5 L; Z" }( n
% m/ y [$ l3 [4 Y4 r5 D" v' U if( m_bIsIndoor )
4 D1 V$ i* n- J+ r. h3 N3 x6 M {
9 q% b& b7 ^2 C/ O; | if( pLight )
; N7 {$ l# t5 x+ X/ r5 d& v1 f2 t { 0 {7 Z5 X$ g# d9 X2 Q2 \
// à??μ oˉè*
% _# Q6 R( ?; T z' q" M' q" m; W: f pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;+ A5 n. N1 i4 w5 e2 ^& Z
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
" w7 r# e) ^' G1 u3 e pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;5 x0 z6 F" w% f- `+ y
2 S0 Q1 s8 `- p$ N5 H3 N
// oˉè* ??à?
: V. V8 X9 G7 z" |: w9 F pLight->Specular.r = 1.0f;7 g1 R" I, P& Q4 M6 W
pLight->Specular.g = 1.0f;- i. F$ d$ T( d5 f0 T# R/ m6 R
pLight->Specular.b = 1.0f;
6 t, m" L9 J, M& ^% s& s1 e // àü?? oˉè* , U: j" g+ o+ N5 l" R
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
& R9 k @1 A1 J/ \; ~7 ^! M9 J pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;2 `* R. B ]+ L. T' X
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;6 X/ c! H( q9 E9 m4 G" V: ^4 t& ^
% Z8 S, G1 T4 X+ S# X5 u) N if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- `( E$ u/ P- ^* ?: B: E2 O4 K
{
( n! ~5 `5 O- c2 x) N1 e pLight->Diffuse.r *= 0.6f;
" ?5 w2 u K& h4 m pLight->Diffuse.g *= 0.6f;" r) E- H) Y& W$ z
pLight->Diffuse.b *= 0.6f;
/ Y8 R' }- A: F8 N pLight->Ambient.r *= 0.7f;
: r7 ]. }9 @1 L pLight->Ambient.g *= 0.7f;
$ _7 x& s, g1 b pLight->Ambient.b *= 0.7f;2 R9 }6 T# ]- r9 Z& Z$ V% k
}
9 l2 J. M: s, i% `4 Q' D. c/ @' i: `- n
#if __VER >= 15 // __BS_CHANGING_ENVIR% ~ C) k" }0 @7 j
if( g_pPlayer )% v2 f0 A% [* q! A
HookUpdateLight( pLight );/ u+ D$ S7 L# p
#endif
4 Z: F( w/ g# v) j8 F& V- c) {$ i memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 P3 [" _! v7 ?! W8 x
2 I v) p% \. K9 E pLight->Diffuse.r += 0.1f;! T. X2 |3 N( h* K* O
pLight->Diffuse.g += 0.1f;
& ^1 P" q& b: \. g7 K! ~ pLight->Diffuse.b += 0.1f;8 D' l/ u9 q3 T
// oˉè* ??à? ! F4 U3 \9 H4 B5 {- q6 ?( _- r
pLight->Specular.r = 2.0f;6 _3 U/ ?. ]7 q+ ?' j# J
pLight->Specular.g = 2.0f;
4 _: o& x& z, r& b6 n4 y8 U" M' Z pLight->Specular.b = 2.0f;
! t( W9 p# s" d$ a3 U, s" u // á?oˉ 6 U/ i( @/ I. E3 \. W
pLight->Ambient.r *= 0.9f; l; T0 j5 E8 i# W5 R
pLight->Ambient.g *= 0.9f;
& m2 t+ F( C( j0 K* q" F' x* ~6 b4 K pLight->Ambient.b *= 0.9f;; K) w. u$ v# u
* b) l& L4 o# x; v ` C6 ^ memcpy( &m_light, pLight, sizeof( m_light ) );
/ \+ X/ A' f& A% K, d- \( `
( @/ U" R0 r# W pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );- K& R- w! [5 [% u
pLight->Appear( m_pd3dDevice, TRUE );
/ I8 p$ t Y0 v( W4 A; p6 ^: y/ O % U, J9 u+ w' P+ O$ z
DWORD dwR, dwG, dwB;' K5 y" f' D2 f
dwR = (DWORD)( pLight->Ambient.r * 255 );: C, j$ K! o1 h" _" o
dwG = (DWORD)( pLight->Ambient.g * 255 );+ d$ [) u( o* r
dwB = (DWORD)( pLight->Ambient.b * 255 ); L) g, D- L: i, A
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 p2 v5 q2 J8 |: {
}$ V8 R* `; x4 U( F& L, q, {4 D; ^
}/ ~" F2 [( c. A1 b, u) e, W' K
else- }1 x& C, |! y! B- C, K* h
{- D2 e6 r( g, H' n* \" M
if( pLight )- f0 V. v. H& M" E; d: S
{
4 j6 A( }7 U* W
* s4 `$ V. ^+ x' ` int nHour = 8, nMin = 0;
# m# x6 {0 j, A4 s #ifdef __CLIENT
" N4 {# O7 r& Z6 l8 _6 O // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
% F! v; h! ^! b/ q3 ~& r4 U6 { nHour = g_GameTimer.m_nHour;$ g+ p7 a" Y1 q O* c) y
nMin = g_GameTimer.m_nMin ;
" v: \; s; r. M #else
; {7 p% ~: k7 v2 l/ {. A. D // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
9 C# K6 H. R* ]/ R if( m_nLightType == 1 )
+ a4 t' G$ {6 ] nHour = m_nLightHour;0 W0 ]( m* |6 Q* F3 e$ t
#endif3 y8 T6 r' N9 O0 n4 ^, [
nHour--;- {( B* N4 i+ @7 c/ U% ]3 Y6 m
if( nHour < 0 ) nHour = 0;
" j3 V& j X# N5 |& R if( nHour > 23 ) nHour = 23;
; @; q2 J0 I9 ~# Z' c7 y* `, F
0 `7 f/ |: E5 |8 `/ @ //if( m_bFixedHour )
; Z1 q. e% d$ {+ m // nHour = m_nFixedHour, nMin = 0;
) s2 G9 G8 l% k/ v LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
! E% n1 a" K6 V- I. v LIGHTCOLOR lightColor = m_k24Light[ nHour ];' ]/ ?& t9 y5 t) z$ X% K8 C. g; X+ ?+ F
4 q, Y/ ~4 c0 J5 Y" B$ G' e- A //m_lightColor = lightColorPrv;
# i: J" q& q) c' o' U3 P lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
( x- r3 k& e) G* ] lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
$ | S2 v. S# I ? lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
; M p/ \" h& S- V2 r lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;/ Z/ W }8 i) g2 `% N3 N
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
, h, V1 q( X1 x: g) T lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;2 t }) B9 E9 K4 R) Z8 U& q
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
; X- l* g+ H; u2 d8 x! @8 q4 l3 E, a6 `6 T% i: p' y
// à??μ oˉè* 9 e- O+ l" X: v, z/ \
pLight->Diffuse.r = lightColorPrv.r1;4 m' o) {$ ^9 Q7 h3 r1 G
pLight->Diffuse.g = lightColorPrv.g1;$ T$ L: ]9 u% ?6 f c- B
pLight->Diffuse.b = lightColorPrv.b1;
) U2 j4 o' z ~* I // oˉè* ??à? 2 h3 i* M4 I6 o8 k% r% g4 k/ B
pLight->Specular.r = 1.0f;# h- M# M k. y' I6 p* p3 N0 I' Q
pLight->Specular.g = 1.0f;% {: g# o: ]: T+ V6 i! {
pLight->Specular.b = 1.0f;* O+ C+ _: k+ U5 b
// àü?? oˉè*
; j2 h" T5 ?( N1 B7 X& V pLight->Ambient.r = lightColorPrv.r2;9 E4 d" T0 T) v4 n q9 H- C# f% A# L
pLight->Ambient.g = lightColorPrv.g2;
% s! `- Q2 _! X. S pLight->Ambient.b = lightColorPrv.b2;( N6 I% L2 }0 i3 H3 ]
; {. J) K$ g7 d( o9 [' R if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ n% {7 }: j3 G5 g4 V; D. u0 Z# I. H
{" b# [5 b/ O" n7 v& W" t
pLight->Diffuse.r *= 0.6f;( H# k" f, |7 T' c
pLight->Diffuse.g *= 0.6f;
y0 ?7 _) A6 L G$ n1 Z% ?8 |$ T pLight->Diffuse.b *= 0.6f;
6 U5 [& |% m6 q5 | pLight->Ambient.r *= 0.7f;! v; ~0 I5 U! E" a6 R2 |. P8 g
pLight->Ambient.g *= 0.7f;! O; j* A' b ^$ B' s# C
pLight->Ambient.b *= 0.7f;' U. ^, k* H% `+ e" Z6 u
}
# o: m; |! ~- Q- W1 i5 V$ g4 s 6 |, l) f+ c. m, F
#if __VER >= 15 // __BS_CHANGING_ENVIR* l6 d( f1 ~6 k5 [
if( g_pPlayer )4 j0 P' f3 s. B- G7 c& p, c8 u1 ~
HookUpdateLight( pLight ); - j v4 A* B4 n- k( O u& R
#endif4 m' y1 U7 e1 S/ O- Q- u
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! s5 N& y* T: }- w, @
$ J& i: a* P2 h2 y0 B6 \
#ifdef __YENV
5 [' E) {3 u9 H; Q pLight->Diffuse.r *= 1.1f;. ^! E, R3 s% X! S% u; N N
pLight->Diffuse.g *= 1.1f;. p/ l/ g% R7 {, U$ p# P2 K
pLight->Diffuse.b *= 1.1f;
. o7 J3 q l; ^; G // oˉè* ??à? - }& I+ F0 E9 c, u
pLight->Specular.r = 2.0f;! Z2 L/ X P$ F w$ ^# r
pLight->Specular.g = 2.0f;
0 Z$ Q& q$ P! F4 \' b2 q- k; f pLight->Specular.b = 2.0f;$ r. N) i' {9 A* t
// á?oˉ ! i2 i9 T3 Z j+ g+ v2 i
pLight->Ambient.r *= 1.0f;
) F2 v6 R- d2 c$ k& A pLight->Ambient.g *= 1.0f; ]. n- t' d. Y8 X8 F
pLight->Ambient.b *= 1.0f;$ K8 @, Y3 H" v% ]; _# Y# u/ D
#else //__YENV: Z! ]) Y9 M/ I, C7 G
pLight->Diffuse.r *= 1.1f;
. ?: N- {" e3 v) z; |2 E pLight->Diffuse.g *= 1.1f;& N4 N Y/ d% K0 v( I# X
pLight->Diffuse.b *= 1.1f;
5 a) ]8 ^0 M4 p! H2 N1 o1 O3 c // oˉè* ??à? 2 ~, F. t+ C) u: K
pLight->Specular.r = 2.0f;
) t7 E/ C) f! x1 @- d" f& k pLight->Specular.g = 2.0f;
9 N- H: J% P6 M* E) ?' Z pLight->Specular.b = 2.0f;
: t0 a4 }7 T' u; B+ N // á?oˉ : T/ O/ E Z) R8 [. a
pLight->Ambient.r *= 0.9f;2 a$ A( }/ F7 \- E' R
pLight->Ambient.g *= 0.9f;
: P9 |3 H6 a$ f0 {+ v3 K5 S2 s; @ pLight->Ambient.b *= 0.9f;: b& j( o8 O8 b$ O% N
#endif //__YENV
! O3 s4 H5 Z1 h1 v/ S. {) m) c
3 O: w' Q5 r+ w# ^$ R/ P memcpy( &m_light, pLight, sizeof( m_light ) );
8 l6 n! C" m' Y/ S- N0 i4 h . d2 u6 I% L4 l, O7 u
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 B' O2 d8 _9 q: M6 K
D3DXMATRIX matTemp;( ~" V, p& }" `+ j
static const float CONS_VAL = 3.1415926f / 180.f;
; w. N6 o* Q+ w' u" T7 `0 ^, I' X0 U9 o
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);# c3 a1 [* ?) z) C- ]+ k" l5 F4 w3 S3 p
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
& g5 r4 o9 x, q, t pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ) s) Y& `" C7 \, F' t
pLight->Appear( m_pd3dDevice, TRUE );
& _ `! Y5 x5 N; x8 x, A* K! W. ?- J! m6 U
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
5 A( z; x$ C: b8 b; K. p. ^6 z // D3DXVec3Normalize(&(vecSun),&(vecSun));( q( z1 W4 K" A6 u
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; r- w) f6 i U! R# F
% D7 y A( v. G2 S DWORD dwR, dwG, dwB;8 G# c. l+ D8 ~& ~. n4 k+ |
dwR = (DWORD)( pLight->Ambient.r * 255 );* q( u# o2 {+ ]3 B2 u
dwG = (DWORD)( pLight->Ambient.g * 255 );
; z$ p+ o- l5 M* V8 x" J dwB = (DWORD)( pLight->Ambient.b * 255 );
, ^4 y7 e& w6 I dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
" L0 \6 l* e9 x5 g" d' ? }* @( B% P+ C' z7 m
}
: |/ D) p f- O
! w, |0 u- b& u8 g8 o4 N% O5 G m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
& L! R' w& C. {( 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) );
0 ~: j" b# s% L0 Y$ o- U+ O5 p ::SetLight( bLight );. c2 n" h. f+ B4 k/ r0 E0 u. U
( Y0 T! `6 ^5 I% \7 X& w
// ±ao? ?D?í???ó á¤à?
6 b" V, j5 r q2 R' K m_pd3dDevice->SetMaterial( &m_baseMaterial );
( n3 r5 p0 s2 W) A
" J- f& q. p* ?3 _3 T#endif // not WORLDSERVER; W; q6 ?6 S! w( i
}
) F) O1 b% N0 y+ Q% d' {+ N并更换1 h# }) R. u% K% |. l, R" J0 U
Code:
4 R' W5 a( r5 q4 ?2 z3 E! H9 S__FLYFF_INITPAGE_EXT$ g0 d, B! |+ I- y- l' c. b$ y
定义9 Y- ]" @$ h% C% ^7 E. ~1 T7 v
( w2 @: A! c8 J) e" X! ~4 e) c
9 W0 F- \/ j# y* ?' d, ~" M- ^9 w }# ?" y4 E" P
3 q/ K% J4 W# \) m
现在终于删除我的狗屁加速...
6 l! d' T- D3 m; g9 y7 _9 W* F: H7 h0 \
) z6 U& q. ~7 S( _, K6 Q
! N: V' h1 e, C1 |+ v& L
|
|