|
|
食品车:' t H/ Q6 v: P s' b0 z3 v
尾翼:/ ]( n0 [) n6 V" n5 K- d$ N
9 e \& e c$ n9 X, `/ n- E8 [7 s代码:3 k4 B: k* j$ ~* O/ P
CWndAutoFood::CWndAutoFood()
; u8 i8 p, u5 ]: Y& Q' n5 d9 i4 a{
( l0 C$ K) x# T6 s2 a, }3 P2 C8 i m_pItemElem = NULL;# |# Q- b8 T. I( l j. J
m_pTexture = NULL;
9 o7 ?/ o2 o4 k$ } bStart = FALSE;2 k! j' K7 v g; F9 P3 \
}
4 H/ O3 W3 A& e& f
?" o1 [3 ?6 m- dCWndAutoFood::~CWndAutoFood()# M0 B3 g4 H+ S1 }, z% H
{" h/ C% O# i0 h' G
AfxMessageBox( "AutoFood ist gestorben " );6 Q- n# q* D H& }/ e* I
}$ ^1 `+ t+ [9 c G* O
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )! @( }/ w% X O8 k% j
{/ \2 z3 W, C$ R
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );$ U. X% Q4 i0 R u, u5 l
}
3 K B, j- M2 |+ f; Y# p7 q. P3 W& q8 s9 Z2 T. I, H% I% P
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )% I9 H1 W9 a& {3 ?
{5 W% e8 ^" |3 l
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );/ i( Z7 o8 ]7 p6 m" f2 m* X+ K% H0 U
CRect rect = pWndCtrl->rect;7 D* I. \1 P; }
if( rect && rect.PtInRect( point ) )3 C0 Y8 A* _8 i. b- R: o
{8 L( S2 |8 T1 i' }" G& L
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
" q0 K) f* y* p6 M if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )0 }2 [1 f1 e( Z; I3 O D/ Y5 D
{ n$ P& f O! D, V
if( m_pItemElem )% T$ _) z, Z _) d
{2 ^+ j, S4 a1 b7 k2 Z
m_pItemElem = NULL;9 p: i) Z0 A% H3 W/ z+ Y' L* b
}
8 w$ S6 \6 [4 g% Z m_pItemElem = pItemElem;! n4 r* e2 U' s. b; c* R
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 h" N5 {1 h6 }9 ~/ E: K" R& ` }else{
% ~7 q& p I3 L/ P( r SetForbid( TRUE );; ?6 S& B8 L, ]/ D) I
}+ V0 s7 g% P# m, d
}else{ o# r8 D" D% m; ^5 {# N
SetForbid( TRUE );" a Q2 m% k: e6 {, D$ [
}( l" ?4 w: r: X$ ~ B* m" G
return TRUE;
1 s" L4 [, i7 z* x}
$ k& X8 A; [5 k, W# P6 _, r# Y+ s% C" j2 T' j
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )8 R0 ` M& J. t; ^) K i
{
& I) ?8 l9 O5 F. a5 m switch( nID )
- p$ z9 C* s# p6 n- R9 L {' J5 e& U. d+ R% N$ j9 z
case WIDC_BUTTON3:
5 f, n7 a5 _, c- L0 H' o {
. |! S7 {% `6 t0 ]# L6 \/ v bStart = TRUE;
; E! _% J* C/ B1 ~& B& D, p* O break;6 L ?' v+ x/ T4 `/ M
}1 X' L) g4 E) `& w; Q4 k6 s5 E
case WIDC_BUTTON4:, z# v1 {8 N9 C# X7 y% P
{
( P& F2 C U/ ~. G3 C j bStart = FALSE;
, t3 X9 o2 Y/ P! ^ break;2 L6 p% Z o! m5 e0 I/ ~, x& Z' a s
}
" v5 s3 T- S* T, h5 f }
9 Q4 W+ s; E3 X" J: F return CWndNeuz::OnChildNotify( message, nID, pLResult );+ [: j8 }' f3 S/ N' ^
} % ?& N0 X# ?! {0 g5 _7 B
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
7 S2 m/ {" |: Y& ~: g/ n1 a{3 e! i; _8 c3 Z0 z5 B0 q. M' h, U. g: ?
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
! O0 F. z8 J v9 s8 Q if( bStart || !m_pItemElem )
. H. o/ Q0 A( s4 r9 ^- k2 e A5 J {8 z1 q$ s m* j
pBtn->EnableWindow( FALSE );0 a2 G# O! i9 ] e' w% B
}else7 n& Z9 y9 H/ U# M+ f' c- u s4 R
pBtn->EnableWindow( TRUE );7 s9 K& k$ f8 }; n' J
if( m_pTexture )
* a( H% E/ g3 G" E2 a8 c {! A" H. E3 P/ N5 l& ~
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );, q: p7 T' b7 p g" x$ p
if( wndCtrl && wndCtrl->rect )
) \8 n1 ?# J7 ]# g {( t/ F' [( H# C% f6 e/ M
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );! R/ p$ _) K* o$ f7 N2 f; S
}! D6 h/ h/ P6 ]( G
}
. Q2 V, `$ ~; ]3 j+ r}0 ]/ P$ g' T7 c# o: i
% N0 ^1 Y3 v$ h2 g' Y
BOOL CWndAutoFood: rocess()
8 J, ~! t9 `8 [; p* Z7 V{
/ n- c7 Y U3 ^" {- h8 k8 z" @ if( bStart )
% ?3 N) S0 y# ? {! o. M2 k* s! J" i" ^
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ); d0 `8 t2 z" R& V. L
{
( o7 |$ o" T! F4 Q; j$ ? if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )' H( i+ A( T1 G: f7 j
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );6 d- }: i9 U4 p, v: u6 Z
}else{
; ?5 V9 C* Z! k2 R# B6 D bStart = FALSE;9 {4 x/ t1 e, b
m_pItemElem = NULL;
+ g: X) Y% q* s5 N }3 o2 r% ^1 C2 {" s3 z/ ` r
}
5 s* N0 z8 c4 H- t return TRUE;) ~5 ? V9 K$ j* l
}/ _* B1 H* N, D1 Z& ^4 \8 G
) R% X7 w/ V6 u1 J登录视频废话:/ ]1 w3 I, X: R# F$ [$ {/ R
尾翼:
9 O6 }" I/ h/ k3 F+ y; Z7 N* O, C# {& _+ k* z/ C
代码:
& r/ K4 O5 g- `+ k! R" K
! U, p3 ]1 ^6 d6 `6 _void CWorld::SetLight( BOOL bLight )
9 V. O2 t2 k' Ddurch
" I( ?3 e0 \. j" `" k# ~9 ^$ z5 _Code:
/ Q% @& y3 q$ Ovoid CWorld::SetLight( BOOL bLight )
0 n( J7 L ~ s2 N3 E; C) \7 `{6 a' v* f! I+ _7 f* I
//ACE("SetLight %d \n", bLight);
2 Z/ U) I9 Y s( G* O' _
! A$ y Q" ~# C* E' w#ifndef __WORLDSERVER
- `" _" A! u: k0 a/ z0 {; W' z DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
e, b; v9 m5 K0 R. o, x CLight* pLight = NULL;
+ f/ a: f! _$ }. e
6 J) E, X7 y6 D/ i2 I2 ?" K D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
) j. j! q+ P( m) w* S
: g4 q! E6 ~- N4 K, o/ L' g6 v pLight = GetLight( "direction" );
& U X- t1 j1 u" A" M( p
$ G' w( u+ m& K4 r6 j( }" E#if __VER >= 15 // __BS_CHANGING_ENVIR, e- u5 d+ ]6 E; @; U
if( g_pPlayer ){ I5 k6 S, P& F& ?
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
, F" ]4 D' a- C+ L9 x# F2 v if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!, D- J& z5 m: R/ [
{/ ^6 S* o, |; q
if( pLight ) ~8 o! _1 {+ \, s" y' z4 P, F
{$ V2 e9 s" t1 R1 M
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];. X+ ]+ Z2 Z) Y. N. @3 ?
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];# d& X1 D7 l( X0 d9 L" M
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];& y: w" A* N; N
8 y2 _, [3 D& {+ B( z# z9 r9 h
pLight->Specular.r = 2.0f;
* e6 Y+ e$ U2 O: ^, ]7 R( D" K% O pLight->Specular.g = 2.0f;
& c* r4 |! A: N3 x9 g* l, j pLight->Specular.b = 2.0f;- d1 d2 \5 I1 w! C6 U
# I* N S1 ^0 P pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
- _9 {6 a. h& V3 } E S9 w pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
9 L% \" N" T# B% Y9 C% O5 ? pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
3 @8 u- @% F: ?1 {" _
+ _; W+ V- Z' V; N HookUpdateLight( pLight );
* l6 ^/ q; P4 x0 N- l- l* Y+ O. D7 N1 |6 s) D7 b1 w8 v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& O: T2 i+ B9 s
+ c7 h7 ~' A( {1 { pLight->Diffuse.r *= 1.2f;6 C2 h" c& A$ K8 v! L
pLight->Diffuse.g *= 1.2f;. j* k! V, M! [& d8 w! @. b
pLight->Diffuse.b *= 1.2f;
* a7 E; u* P a0 k2 ]+ \+ p2 ^; a3 W3 A# \9 M
pLight->Ambient.r *= 0.8f;
" z ?$ u5 E- {4 J- T2 P pLight->Ambient.g *= 0.8f;/ c2 O( D- T# b$ ~0 {
pLight->Ambient.b *= 0.8f;
0 l* a- Y5 ]5 h' {1 V( \) L. ^$ X 8 L& d/ |9 Y% x. p$ S
memcpy( &m_light, pLight, sizeof( m_light ) );% L4 Y b( f: Z$ B. b; M
7 t7 F* f! \5 Q3 X9 g" x D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; M; [$ C$ H) J5 C2 D) u' B M D3DXVec3Normalize(&(vecSun),&(vecSun));; ?6 J0 ]$ c/ n. a5 V- z k
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 B7 g2 B( t; O- G4 q% y
pLight->Appear( m_pd3dDevice, TRUE );, P0 L* ~ ?6 K1 u
# n2 P8 Z6 t. T
DWORD dwR, dwG, dwB;: J: Z6 {5 p4 t# f
dwR = (DWORD)( pLight->Ambient.r * 255 );; H) o' m2 ]; K- z) m! z# y
dwG = (DWORD)( pLight->Ambient.g * 255 );
- \4 b) {- p; w dwB = (DWORD)( pLight->Ambient.b * 255 );, G6 B: ]. `. A0 L, G8 Z7 }& F
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
* h4 z& _, W* F& A" B }" J# p5 T! R2 k3 e
}
0 o# m6 }& A6 z! f1 v }4 C4 p9 W( Y; N3 v' k8 u
else0 H" |% z, ]# E5 X' z+ o( h/ g: f/ N
#endif , r7 c& b F5 s/ L# N# J& F3 p% q2 `
7 E z0 t/ v4 x. K- { if( m_bIsIndoor )
3 w4 N, W' r; b) ~( ~" U- A9 } {/ @( K& @0 v: m8 V# x J: G
if( pLight )" Z7 O2 J5 { L# J; G7 B# c, e
{
! v* B7 [; V. Z7 e // à??μ oˉè* # \$ s! Y9 d* X5 L0 }( {# Z
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;' f7 ^7 U9 G6 g' k: } g/ t
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;0 a+ M4 O. G3 m+ N
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
" H) P$ S& ?# C2 ?
# ?' L# P3 F1 |9 C // oˉè* ??à?
. g: V! U1 k3 s1 j3 O1 e* D pLight->Specular.r = 1.0f;
, R8 x) Q- d& V; O% o pLight->Specular.g = 1.0f;
$ u- Y% u2 J" a1 t. l8 H( R9 v* x( j pLight->Specular.b = 1.0f;
! v3 [" l( `# ?6 g# c! Y // àü?? oˉè* ( n6 N3 J& N5 I1 ^ p* c; k
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 R! N1 A! G- E0 H1 ~3 _2 v; ]
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;; G0 A& F& I( Z6 z M1 O! ?" Q- y
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f; w2 B) c% d" U7 c% `3 J
$ E& ~5 s" k! o8 _+ m8 Z( J
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 r$ q& l6 j: d1 y0 @5 H0 }' \ {/ B& E+ E% z# x2 Z" J" R
pLight->Diffuse.r *= 0.6f;
9 A1 h; o, F3 {5 W" A* T pLight->Diffuse.g *= 0.6f;# \) U4 ~2 X q2 P6 X
pLight->Diffuse.b *= 0.6f;
% i/ B1 F; }! z& q8 N pLight->Ambient.r *= 0.7f;; ~: n' B7 D% q+ Y
pLight->Ambient.g *= 0.7f;
8 _4 o+ V( N* h, j9 ` pLight->Ambient.b *= 0.7f;
6 t- c$ S: e5 ]; \" R }" J" g R+ F0 M1 |* L
6 G; x+ d- u1 @$ w6 |0 \- Y
#if __VER >= 15 // __BS_CHANGING_ENVIR1 I7 B6 l: k* O
if( g_pPlayer )4 b; N/ B& {% O0 |
HookUpdateLight( pLight );
% N6 z% V) Y" [+ G2 g& h9 A#endif# {8 m/ F2 t8 ^. U) K
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 X) W3 M6 ~/ }+ v" S6 F5 K
( b6 V/ X* S& I7 q7 @6 I/ h pLight->Diffuse.r += 0.1f;$ R) \2 F! [* Y; c
pLight->Diffuse.g += 0.1f;
+ t0 D5 \) b0 [9 \: }: }9 g pLight->Diffuse.b += 0.1f;6 q/ e8 A5 o# d4 T% E& k/ K
// oˉè* ??à?
/ g; ^' x% i6 g& g& S pLight->Specular.r = 2.0f;
: E! A! C& x9 Y: L pLight->Specular.g = 2.0f;' F# v' O1 `& W4 y
pLight->Specular.b = 2.0f;" ~2 ~. M7 Z- i. Q% V% Z
// á?oˉ
9 Y3 L9 D7 q3 [) M2 l1 ^( Z' p7 V pLight->Ambient.r *= 0.9f;6 _. g! X% N- q y/ R B
pLight->Ambient.g *= 0.9f;
$ }5 B( @7 E" _/ i D pLight->Ambient.b *= 0.9f;
0 F+ s2 C0 |6 T6 O$ P* y6 g+ E7 g9 O7 x3 A$ Y Y
memcpy( &m_light, pLight, sizeof( m_light ) );
$ {8 k: z7 p H . t" ~( z. h9 B8 Y% q9 w: d% \* e
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
( t) t( C' a6 C$ L$ |: J pLight->Appear( m_pd3dDevice, TRUE );
8 o0 ?! i1 _4 H7 p; W& R0 i7 i
( g8 T w9 q0 U1 p D DWORD dwR, dwG, dwB;
! a6 }* C3 [7 I# \3 M dwR = (DWORD)( pLight->Ambient.r * 255 );# ~6 Y3 |, Z5 ]: V
dwG = (DWORD)( pLight->Ambient.g * 255 );: U0 d0 v |$ N( f3 U& I4 u4 ~" Z8 d
dwB = (DWORD)( pLight->Ambient.b * 255 ); }8 z7 p% c( k7 z
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
; b) w% G& |. \/ ~1 m1 x- O6 V- Y! { }, A8 c \' E- r5 N; f1 b4 t
}8 ^. H& @8 B1 J$ k% | n
else
. L9 ~- ]8 B" v! P$ e1 y {: [" i U' ~- ^1 _5 h) ?+ f. g
if( pLight )
1 ]' R# g* h6 B. U/ U# Q- G+ k {
' m! ~' j: A( I% R B. g: v - D4 p+ v3 H) {' c( n
int nHour = 8, nMin = 0;
+ y4 \9 ?4 C9 }3 T2 J3 J #ifdef __CLIENT
; b# A7 v/ J4 }" u2 e* p3 M2 z // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. , }* V" {, ]( A% B
nHour = g_GameTimer.m_nHour;" ` C& Q+ ?0 E
nMin = g_GameTimer.m_nMin ;1 u. A; ?6 z5 G! }
#else, ~% f& s! m$ { ?7 r: _# Q8 c% q/ M% S
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.7 N4 V* _% j9 v% J
if( m_nLightType == 1 )* C5 O, l6 G4 f+ ?7 Z+ G7 F" Z6 j
nHour = m_nLightHour;' ]0 s8 z& V" C: A; q7 u) h' g
#endif
+ d" G" P8 j* o" {: P nHour--;3 F9 J$ B% @) z/ h
if( nHour < 0 ) nHour = 0;& ` A2 C1 i% e, w1 I6 j4 ]1 w
if( nHour > 23 ) nHour = 23;
}6 E3 q& P7 D% X* B2 z" N% P+ i; Z
//if( m_bFixedHour )
4 O4 g3 Y1 o# O' R! ` // nHour = m_nFixedHour, nMin = 0;+ y7 L) a, s& F
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
( ^# e. Y! b9 j LIGHTCOLOR lightColor = m_k24Light[ nHour ];
) V8 `( ]7 ]# I, v
6 M& q1 o& Q6 R) @9 F6 } //m_lightColor = lightColorPrv;8 N+ C( w8 K" U P6 y
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;# N! j2 G( [) e$ f
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
8 w$ V# f' t) r# W0 | lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
0 C6 R& @* {+ ?+ T lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 ^5 r. L7 i/ A5 n3 ~/ w' O lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;# |% J6 m2 b1 [+ S5 H
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
: Q1 _/ ^0 ^( S9 C* n/ C% Q // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)- M5 N; _4 q" ?! F- f7 S
& L' b9 i: J! q9 D8 |0 S. m: F4 I, G% O // à??μ oˉè* * P4 v9 a1 C5 ?- Y. x, o7 @
pLight->Diffuse.r = lightColorPrv.r1;4 y! p+ _6 i) d, _3 `* n2 }
pLight->Diffuse.g = lightColorPrv.g1;
3 t/ f% C" f) s8 y pLight->Diffuse.b = lightColorPrv.b1;
# f5 l; p. M; ]0 J/ u( v // oˉè* ??à?
3 P" d! B3 m6 B* Y$ _ pLight->Specular.r = 1.0f;
. R2 c3 `/ h$ d# B1 L8 y6 Z pLight->Specular.g = 1.0f;% p8 s% p0 x. \0 l/ m2 B
pLight->Specular.b = 1.0f;/ h# V8 S4 [0 T( m. L8 ?& T
// àü?? oˉè*
% ?# ?8 q+ Z6 W, L2 i, U pLight->Ambient.r = lightColorPrv.r2;6 D P# s( N" I/ }
pLight->Ambient.g = lightColorPrv.g2;: L- [! o, ?9 e' r, L
pLight->Ambient.b = lightColorPrv.b2;) @0 G6 A( h' u1 w
Q q# s* f9 W" Y1 D if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.- {* p3 T+ Z9 k6 v2 j
{3 j' F6 P0 }1 y3 P) Z
pLight->Diffuse.r *= 0.6f;
' ~7 O0 [$ X% e+ j0 A( p) I2 `& ~ pLight->Diffuse.g *= 0.6f;
( b( l" n" F; n! @) A% r7 x pLight->Diffuse.b *= 0.6f;
, N, V( e5 ~" p pLight->Ambient.r *= 0.7f;
$ y2 S+ T3 l2 Z6 W1 p pLight->Ambient.g *= 0.7f;
3 B' Y, T* C2 X- v pLight->Ambient.b *= 0.7f;
9 E, A- }* K5 {% i6 X. Y }/ K# j" w5 ^! r4 l' o9 r5 e3 q
; }# s8 d! p3 ^9 N( Y#if __VER >= 15 // __BS_CHANGING_ENVIR
6 b/ P5 @! a" B2 E, b! ?3 ~ if( g_pPlayer )/ i0 V* i% Y8 o! l' `2 }5 _2 c
HookUpdateLight( pLight );
, \- L' H5 G2 Z2 C0 F# ?6 P#endif; d0 s, }& F- i7 z" F$ d m0 p
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, p% q b1 z/ c" W- X% D& H6 u( v6 n6 X. t- K8 |3 b
#ifdef __YENV/ O% q+ V5 N# l! ~2 `- d
pLight->Diffuse.r *= 1.1f;' A2 ^& |; H& i; g! i2 ]
pLight->Diffuse.g *= 1.1f;
; }& y* k, H6 l/ K) R pLight->Diffuse.b *= 1.1f;3 k9 K/ `+ A3 Q. j+ w& }) \- P
// oˉè* ??à? % X$ T: I( P, g- P3 p
pLight->Specular.r = 2.0f;( v9 L$ a T/ B. A6 t
pLight->Specular.g = 2.0f;8 f8 v& L. e6 j& M- u9 C& ^4 k
pLight->Specular.b = 2.0f;
6 Y1 U3 @: d1 g // á?oˉ
" D4 Y" f5 O9 |6 a' A pLight->Ambient.r *= 1.0f;2 s! Q' O$ {# v) z$ d8 a
pLight->Ambient.g *= 1.0f;% Z0 x( D# O7 _/ v8 q, F x
pLight->Ambient.b *= 1.0f;" u+ }2 s1 B. R7 E% {
#else //__YENV) M2 W) a: n1 {, Y) k: u- \/ Q
pLight->Diffuse.r *= 1.1f;1 }. O7 | z' h: f, G$ w/ K
pLight->Diffuse.g *= 1.1f;' _$ [# o" A2 M* D$ B
pLight->Diffuse.b *= 1.1f;8 x5 f# s5 M7 s- X- u
// oˉè* ??à?
% m$ r: }9 |' P6 h. ? pLight->Specular.r = 2.0f;7 Z/ g7 i! R$ `) P: y5 w6 I( V
pLight->Specular.g = 2.0f;0 I1 s* ` c, ^- r
pLight->Specular.b = 2.0f;
- ~# c5 W/ x2 {/ `, |1 p2 J! g" o // á?oˉ % a9 e4 g. q" O
pLight->Ambient.r *= 0.9f;' ]/ A3 ? B1 n) J! P( z
pLight->Ambient.g *= 0.9f;, }/ w; b) Q, T8 \* O
pLight->Ambient.b *= 0.9f;
* x( ^" E/ ]- E& z: O#endif //__YENV ( C0 ~( i6 m5 S5 f' J$ I2 P
! z# F6 ^+ p9 x: Q( J
memcpy( &m_light, pLight, sizeof( m_light ) );
9 Q1 t( r0 K9 c% o) r1 ^
6 B' B& j1 \& R8 t; V D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
3 C. T! F* ~, ]' R D3DXMATRIX matTemp;
. E2 n, m; t9 @+ {. g; B% t static const float CONS_VAL = 3.1415926f / 180.f;: ~, @$ k6 p5 N' a3 ~
- c. r+ F" C& U7 u( S# B4 \7 Y D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
- Q, `( {) C4 Y) K* m D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);& H2 Q( L3 K8 D& o5 R. i
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 ~& `' [% E5 {8 G: r9 s' u6 u' s pLight->Appear( m_pd3dDevice, TRUE );
) |0 S$ b: U! U% b( ]% t, @/ r
8 i" P2 ]' X+ \5 f // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; u( j+ y2 y$ \6 Q6 ^/ V
// D3DXVec3Normalize(&(vecSun),&(vecSun));
1 P& j2 v/ m" Q+ G! F: M) d // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 5 }# h: f8 b& M* s
$ [7 E$ V0 @- E! \. q DWORD dwR, dwG, dwB;
) s! e2 B8 z5 W dwR = (DWORD)( pLight->Ambient.r * 255 );
2 c" E* G6 E, U7 H) Z$ Y. S6 t dwG = (DWORD)( pLight->Ambient.g * 255 );
, [" t( G7 W+ d- G5 X: y) x( X dwB = (DWORD)( pLight->Ambient.b * 255 );
% U: y: Q N6 ^) { dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 8 Y; m: O4 y; |7 ^
}
, S4 d% ` d1 v5 @4 I2 W' o }3 N% {+ x2 Z* s: y7 Q
3 o; n+ |& w8 i) N2 u m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );( H" r8 T) L0 i0 T3 B1 F) s9 @0 L
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) );. k" _' t$ c+ g) L( e
::SetLight( bLight );
) g }/ Z) Z9 b0 ?+ }& c4 Q2 ]7 s- E) j0 U) F0 G
// ±ao? ?D?í???ó á¤à?
- g! r" m: a8 l" v- m m_pd3dDevice->SetMaterial( &m_baseMaterial );
- i& t. a# X# I6 t5 i/ S
+ b! {5 |. Z- F6 w( [#endif // not WORLDSERVER# B' e5 u0 E# X7 R7 _( }
}
; c2 N! r! n( E并更换
" V& @' |4 N& ^2 n" h7 tCode:! `- T: E- j2 u( N0 h# E! m
__FLYFF_INITPAGE_EXT
1 Q: B3 c, P, p定义
/ u# z- `; N" |/ R+ f3 o& P9 }4 m5 J" O4 v# M
7 \+ w' m# g- X9 H
% X4 t! i% u; `4 F8 g2 Y3 R. ~9 l9 ]$ b/ C: T/ g3 g
现在终于删除我的狗屁加速...
0 I; N: M, e# k. o4 T
8 ]7 c! Y" u0 p Q) w: f% V. G; m0 N
& i7 q7 A T$ r8 H6 d$ g |
|