|
|
食品车:
/ M" M% m F1 V3 J2 E. `9 n尾翼:* Y7 `% m, s: ~: i) z
. Y2 v" r. `0 o( a代码:+ S$ e' o; z0 p" i6 e" Y
CWndAutoFood::CWndAutoFood()" V0 p) b! ]: D- }/ y" x9 [
{
V2 T3 K! U7 b1 x& Z; Z( X, j m_pItemElem = NULL;: N4 c2 I7 C+ m4 N
m_pTexture = NULL;$ \# L9 Q" q9 T# _- E. O
bStart = FALSE;
8 {4 ^4 H6 P* {# W}0 G: t4 e2 d! `0 \; y
# w! w) T% P! l2 a" zCWndAutoFood::~CWndAutoFood()
+ Q7 C) V+ B' d: N8 J" ]* J+ L{
$ j0 h, O( z4 f! g& E+ f AfxMessageBox( "AutoFood ist gestorben " );
5 v$ v4 \. {# v3 G& u}
8 v. D% U5 v eBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )7 r1 o2 a! @! V8 n! d! g' q
{
4 p, b( V& V3 E4 i" h return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
1 Y+ j8 S3 n r% t% U}% q5 C+ M9 U. j
2 ?% W' J$ o5 j7 s! x+ _4 }: h" H
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )5 [) ~7 } K! P2 P# d
{
/ M" P' J/ v; W& D9 ]/ j. s/ M" k LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 c. ^5 F/ z+ C! Q CRect rect = pWndCtrl->rect;# C- A; l& {2 U0 j7 X. }: E) m& R
if( rect && rect.PtInRect( point ) )
" a; |! M7 W/ Q( B$ ?4 D {* t6 u6 c: |& {
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );( q! m1 X9 X1 Z/ a7 P' r
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
& t7 n7 H# s6 Y8 ]7 m {, ^' y/ ]- j0 S
if( m_pItemElem )
3 ~1 d4 e, f% g; ]$ T; r {
; Q( c/ b# Z. G9 d# g, ^; Z m_pItemElem = NULL;
% A. C s" V- h& R Q }8 v* A* U6 L1 k; j, ]; ]- _
m_pItemElem = pItemElem;; l4 S- `& y! E6 R/ ~- w* u
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );1 A! j, t9 \5 l5 v! w
}else{1 j: i3 `0 I9 \9 Q4 q+ I, B) G1 o- O, C
SetForbid( TRUE );
# B* w+ p/ f e- g$ m }
$ l9 q/ U7 y! t( v9 |6 @6 y! N }else{* h3 A& C# V6 |- l
SetForbid( TRUE );
; Q! S$ ]) M, P# `1 T }* M: V; W4 J2 m# p1 C
return TRUE;5 m: ?4 e2 C& s8 {# y5 R
}2 Z1 k5 i( D+ g4 f, R6 F1 S
% i* _4 I2 Z+ F5 [1 ]" s2 Z
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
u6 R. r8 i+ R. ?% t" ^4 p{3 e5 Q3 r+ J) b9 Q9 c, y
switch( nID )2 |( ^8 |9 m( H! D1 m: T. e, T1 B
{
5 s% w7 z& x+ K. D, z4 q8 |3 y) D" h case WIDC_BUTTON3:/ L0 k* R" j$ [# X
{7 _4 ^2 u1 G2 |% y( i# \4 ^/ \
bStart = TRUE;
' Z0 B+ O, M2 k- U2 M break;+ q* o9 v; C. f& t
}9 D9 r+ r k$ Q$ c- U+ A0 ~2 _% L U
case WIDC_BUTTON4:' s% u; ?# ?" z b* Q
{
0 K7 P0 o2 y7 i% O bStart = FALSE;8 T! w$ |# |9 l! E& F e
break;$ s% i2 f2 G0 S$ ?/ @
}
7 Q# ?6 y O% ]2 ^ }
3 V" Y& L# f' |/ z/ s! H return CWndNeuz::OnChildNotify( message, nID, pLResult );
# T6 L7 R0 c; L2 P7 d}
. @' C) l8 L; w7 R. wvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
) s! H6 i4 M7 L. D/ J{6 P5 M3 s1 G8 Q% k6 S
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
% K. q- H- D9 P+ I; o if( bStart || !m_pItemElem )& Y7 i. A4 }. D$ N/ b3 d9 P
{9 F/ E3 U0 M2 s3 z. e
pBtn->EnableWindow( FALSE );
# g6 z0 e% y& Z+ D/ D+ n! Q }else
# d! X& D$ q8 ^/ L0 g. { pBtn->EnableWindow( TRUE );
7 F% {0 _ W: W, a; k4 B c if( m_pTexture ) |. a E8 }; {# y: Q9 T
{/ o S" y. n% ^
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
* \; c) P7 ^/ I4 A if( wndCtrl && wndCtrl->rect )# o* j9 O& S) B i- h" D
{
8 `, b; N/ n8 g5 e* c0 X- \ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
" B3 v! i' T, a! h: g! ^! J }- F9 K" j8 J# P4 C* h6 S; p
} | k- K+ L2 m, U) q' a1 w0 v
}
0 d2 u/ k% o, n! ]0 E7 `8 V* k: h. a0 W% M' m! N
BOOL CWndAutoFood: rocess()
1 W1 @; {' C7 Q1 Z+ b) n! @+ M{
) J2 G+ I# ~- B) I% |5 m* P/ c if( bStart )# \+ j/ L0 a5 A9 r5 |! C O! `
{+ ~9 a+ |! O6 E
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; j' ?3 a0 ]0 M; X8 n/ [ {
5 |! o9 F }5 `7 c7 C3 r if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
5 D: i* |. e1 j; D! R) o b g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
0 J; Z) t( e4 E) y# u: @ }else{
/ s% [% F/ l; A1 m bStart = FALSE;( A& F# l7 l* i
m_pItemElem = NULL;/ G& y, {: ^& Z5 z4 U2 U1 t
}5 H) `6 }" z# n7 `
}
) E% l; @2 T1 `5 U9 L7 b% c1 d$ A return TRUE;0 N+ |/ x' |2 }* D8 e R+ }( E: [8 W
}5 {; E/ G1 [) Q; {
8 ?% M7 o+ R1 u ~登录视频废话:, Q: E! F) s: I. T
尾翼:5 `- k4 n, E4 g2 j6 }
, s! {# E" O% I# ^) L- E代码:8 P) T. D4 L+ U% C
2 t+ R P/ e8 O& K% D( ^
void CWorld::SetLight( BOOL bLight )
% A' ^9 H3 f' ^4 c7 T9 _durch _1 \' K* M; k- b
Code:
4 |" Q2 M( h' [5 ~/ U+ s! tvoid CWorld::SetLight( BOOL bLight )" E3 d5 W' Q& w! o: v6 Y
{) K3 u( |& H3 @4 p( u
//ACE("SetLight %d \n", bLight);
L4 a& v2 U. g8 u4 ?6 e, A / O! V0 F& e5 Q, C2 b# |
#ifndef __WORLDSERVER
& n% k9 l, d( \ DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
# C! i4 P* ~: M' l ]; _ CLight* pLight = NULL;
8 v" t8 x# G4 e! d/ G. c4 k/ ?+ K) [: i; v8 Q
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );% S2 w2 J& E# i) ~: I$ Z
( Z) A$ M/ l) t
pLight = GetLight( "direction" );
3 G, n& s3 s, j6 F- Y
( `. P4 p* `9 P" o3 s# U$ Q; f8 }: H#if __VER >= 15 // __BS_CHANGING_ENVIR" C, j/ W3 K Q4 Z5 V& h
if( g_pPlayer ){
0 D6 }2 M( O3 b% U, J( y# `1 a# n ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );0 L# ` W/ i8 V+ T- K- @
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
Z* g" o- o7 C$ w$ j& k& [% j {
3 s$ k! H/ t. I4 d6 l if( pLight )
% P8 Q) D* c% `" D1 ? { X- w) k, P1 [3 f+ b5 X/ b, I
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
?- z& O+ G o pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
1 r% l' X5 G, F- { pLight->Ambient.b = pInfo->_fAmbient[ 2 ];& [2 a3 ~' I2 ]. P" U5 b# t' u/ F
/ d: T L$ t/ ]# n. L pLight->Specular.r = 2.0f;
! G! J5 b, K$ H3 L pLight->Specular.g = 2.0f;& n% f# l# D8 a4 `5 f' f4 u* M
pLight->Specular.b = 2.0f;
p& W/ V( ^7 H$ R6 ^ * q6 n" @! J7 F: R4 u( Z" D; z3 u; D
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
/ s' V1 y0 e$ c: Y/ k. {- B, Y pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];4 v) h6 L U* d+ C; v/ X p
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];, n2 }5 A& R) N# `7 Q# H5 G
4 o8 x6 c9 w+ A, M
HookUpdateLight( pLight ); 7 h0 J" B: f! c8 ^5 a) V
0 |9 R( d+ Q4 B, R4 D
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- Y+ T& U' c+ D7 Z& z 7 {3 f7 [# _& G$ g3 O% P+ m* E* S
pLight->Diffuse.r *= 1.2f;
( u% y- b, L5 M4 Q# I) G pLight->Diffuse.g *= 1.2f;: T2 e* |7 p' @" `! j! H( ?
pLight->Diffuse.b *= 1.2f;( P8 n1 N- \- U' C' Y+ `$ F- z. e+ D
3 P9 V* t/ c& O+ a- k% H pLight->Ambient.r *= 0.8f;4 C, R* V+ t. F3 q
pLight->Ambient.g *= 0.8f;
6 B: r" B% O. v& q pLight->Ambient.b *= 0.8f;
- n, ?6 {% ^- c0 g: L- Y ; @, J+ T6 B/ S) o) y
memcpy( &m_light, pLight, sizeof( m_light ) );
2 {2 q2 Q7 Q+ [8 @3 Z- g: [- z5 z" m
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
2 a& t, d4 X& d+ K$ V$ Z! Y D3DXVec3Normalize(&(vecSun),&(vecSun));
# ]" N g6 n& d& p0 u! ]1 ?! z$ r6 T pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 m4 g' s( m" d" g* X2 e6 u pLight->Appear( m_pd3dDevice, TRUE );; b! k1 b/ u2 w
/ t: r- Y! p' f3 t
DWORD dwR, dwG, dwB;* t+ I) j* d) e* S
dwR = (DWORD)( pLight->Ambient.r * 255 );, \0 G* a% j# e
dwG = (DWORD)( pLight->Ambient.g * 255 );
. F% C( f6 C1 Y( H4 O1 F! { dwB = (DWORD)( pLight->Ambient.b * 255 );
- [! V3 g8 u) q$ ^1 Z dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% m2 _5 ?6 @, r4 j" d3 G9 t" C
}
+ [& ^6 ]& A Q7 Y }. x; M# o$ @! k7 C
}/ Z9 `1 t7 ]8 @+ ~1 D9 h) E0 A
else8 e* E& E% B3 a& s: D
#endif / F. H8 O( d- `4 e/ m( i1 G" a4 h
5 z7 q4 @' ` U# S: t7 I3 M if( m_bIsIndoor ); l- n3 p5 y+ l: l" X, Y3 N) ~
{- o5 a' D4 o- S: t" K4 H
if( pLight )
2 _: d* B8 e: [+ F& {! U! W# q* z { 3 Q0 `- j# y/ x! a
// à??μ oˉè* 6 x- b* S' Z: @ v9 ^3 O! x
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
* d/ i. o6 I, k+ ]- p, D pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;& Q. N ~4 P) Y2 e
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;, M$ H6 N- v& H* w( W% t
2 M" @" I# B) w7 _- k# x // oˉè* ??à? " w4 u0 q7 {6 i# R
pLight->Specular.r = 1.0f;% M) |7 ]3 x! c
pLight->Specular.g = 1.0f;' o5 o6 ?6 T" f( v5 ^9 U( A: M
pLight->Specular.b = 1.0f;9 g0 B. k; N6 ?6 f( {
// àü?? oˉè* # j) F8 k8 \- U( ~8 ^# ~3 U+ z
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
- k7 a9 j6 f8 A+ ]6 t pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;2 \+ `8 y3 r x5 E5 ?
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;7 z5 b0 _$ W! w* a7 U; Q6 ^
+ y" X6 E; c2 n3 N8 w if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
" A& _) s& m; {" ]' |0 L c {
+ L8 t `. Y/ G1 i( r pLight->Diffuse.r *= 0.6f;
7 ?. W! O m" v1 e# E- X) ^ pLight->Diffuse.g *= 0.6f;
4 T0 c1 X9 ~' G5 [ pLight->Diffuse.b *= 0.6f;
v) c3 O2 J5 p4 q% q pLight->Ambient.r *= 0.7f;! @( }$ r1 l* a0 O; Z
pLight->Ambient.g *= 0.7f;: n5 X" ^( d& j3 ?- z
pLight->Ambient.b *= 0.7f;$ F% j6 G; w. P7 ]! k
}
/ P/ l; K' { v4 D) N Y! K: L- l6 N( d5 ]8 J& S+ _6 S5 n
#if __VER >= 15 // __BS_CHANGING_ENVIR
5 D& i% A6 v8 j* n" W6 X if( g_pPlayer )0 U4 f- s: k* [1 J" a5 W
HookUpdateLight( pLight ); |+ L, A) _6 U3 @3 X$ h. Z) @
#endif
8 [% T3 C$ ~6 W+ l9 p memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 S. [% B+ O- O" A/ E2 y
& l+ ~! d, y* X4 q* m pLight->Diffuse.r += 0.1f;
8 i1 b- z/ Y. h6 E2 ~ pLight->Diffuse.g += 0.1f;
. I0 ~" z; N3 q; U0 D pLight->Diffuse.b += 0.1f;
" l- L& n+ d6 u* Y2 ^9 k // oˉè* ??à?
3 r8 A) h* |/ q- |$ {4 D pLight->Specular.r = 2.0f;# x0 ]+ G* M# p
pLight->Specular.g = 2.0f;
5 [, ^0 Z* ^$ L0 N8 w( i pLight->Specular.b = 2.0f;
+ Y: Y/ f/ P7 J r, a // á?oˉ
" |4 {9 d8 b8 d pLight->Ambient.r *= 0.9f; Z$ P3 b- ^# U! O8 B8 \2 E
pLight->Ambient.g *= 0.9f;
* I! v- u& J" Z. ~( E3 {' x pLight->Ambient.b *= 0.9f;0 n/ q6 h; a% x- g
/ ]5 f3 r- A7 u/ b memcpy( &m_light, pLight, sizeof( m_light ) );
; ~3 ~* d, M) m' x' J; v8 D; O ! x! R5 r1 }6 l w5 l- m. ^0 s
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
6 z" c o" T& V' G4 N& B9 r pLight->Appear( m_pd3dDevice, TRUE );+ l6 P, @: Q9 B+ G; P6 \
2 L& u0 V4 s% D2 T) B# B; f$ { DWORD dwR, dwG, dwB;
, P2 k, W& i/ O2 _6 D: x' r dwR = (DWORD)( pLight->Ambient.r * 255 );" x0 M- Y! l/ U: I& Y
dwG = (DWORD)( pLight->Ambient.g * 255 );
! ?8 z e4 X7 O" ~& B4 d' Y5 l dwB = (DWORD)( pLight->Ambient.b * 255 );
: b4 ]% H* H' P, _2 f8 u dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 B2 p% x( H- s4 q6 ] }- J9 }+ K) n) v! D) Z0 A* H( q% T$ e
}
; U& W4 o; [7 p/ A5 d9 @ else
3 I' f3 ^; C1 @* h6 [* @% g) _. O3 Y# j {
: B" h/ S' I) _/ f if( pLight )
2 m, y- z0 ~* i5 I! E { i% {$ A9 C0 [1 |! B# m' G; P6 X
% O+ y4 Q! L9 h) H* M5 q( I4 G
int nHour = 8, nMin = 0;
& V4 d. k( v' ~4 w, c #ifdef __CLIENT
9 u+ d: ~4 t( V ~8 X1 [' Q+ F- @ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 3 ^# d' K5 \& _
nHour = g_GameTimer.m_nHour;9 \( R( O# `$ p M: c9 g( ?
nMin = g_GameTimer.m_nMin ;
/ Z& y z- W7 v #else ^' V0 C G! ^' O& [
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.% O5 u0 ]# N( I
if( m_nLightType == 1 )
' `9 E A. y0 K/ _8 F. c nHour = m_nLightHour;
1 ^" i9 F( u, | #endif
+ g2 M, y0 M! \. D/ d+ M" }6 G nHour--;
! [" ^' R! V/ s3 v0 p/ x if( nHour < 0 ) nHour = 0;7 c, y3 z# @8 S% [( H
if( nHour > 23 ) nHour = 23;8 d% Y1 m& ~7 M
8 D4 j8 o4 P5 P8 S //if( m_bFixedHour )5 y) m) {0 K$ Z7 n3 n0 Q( ~9 T7 J( R
// nHour = m_nFixedHour, nMin = 0;
8 @: c, ]( c/ m) o. e! _ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
1 v1 Y# Z* U @- K" m! x9 L LIGHTCOLOR lightColor = m_k24Light[ nHour ];
" U# Z* [0 z, T% I6 k* P8 M" ~( v! c. i0 o" `6 k+ Q% s6 ^2 S7 Z4 U' D
//m_lightColor = lightColorPrv;
! k4 d( |% Z9 C: _- }; d lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 J5 Q0 s. p3 T f3 o lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;( |9 f+ l' h# X
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
, U+ r+ H9 X& ^: r. F lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;) [! s- [3 u) E' N' y5 v
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
! i$ ^! |* V) F+ P- R8 e lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60; C8 Q, c0 r* K" _/ S% c8 a
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)2 |) f3 `# Q+ ~: A0 w
$ \, u" h4 y+ m% K# C, h% f
// à??μ oˉè* & [3 Q8 i+ e) B" K, I
pLight->Diffuse.r = lightColorPrv.r1;
: I% a& e) b! m* }3 I, V& t pLight->Diffuse.g = lightColorPrv.g1;/ ^" y* ?" l5 O, X
pLight->Diffuse.b = lightColorPrv.b1;
0 e$ }/ G5 p& P: }& Y // oˉè* ??à? 8 U' S. F; H9 Q3 c
pLight->Specular.r = 1.0f;
7 g9 \6 ?: g+ t! l2 Y% i pLight->Specular.g = 1.0f;
5 U5 E- N" X' y: { pLight->Specular.b = 1.0f;
7 s# _2 r; i e, k // àü?? oˉè* $ Q8 G2 B2 A" ^' v
pLight->Ambient.r = lightColorPrv.r2;% |3 y: ~3 k$ F" k1 f/ b
pLight->Ambient.g = lightColorPrv.g2;+ \% m# w+ H$ L
pLight->Ambient.b = lightColorPrv.b2;
/ D6 Y- r) \/ Y( P, _, G3 G/ G: z4 I& R% Q/ j. ^2 R& m
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
5 p- R" @- O& d' @, G4 z. {0 g {: @' d1 N! E+ Y
pLight->Diffuse.r *= 0.6f;
. X* i: A* c3 Q$ ^2 N' h pLight->Diffuse.g *= 0.6f;
3 f; w$ `5 q6 l8 t" t pLight->Diffuse.b *= 0.6f;
: _/ [* [% O% V pLight->Ambient.r *= 0.7f;) N5 w3 [" w1 g2 Q" T
pLight->Ambient.g *= 0.7f;. s! S: B4 T) O; W
pLight->Ambient.b *= 0.7f;
- W1 P: o- h% [, G- v' R! ]9 X0 w }" @" O: a/ t# u3 ^
% F: y3 v$ l, y/ t6 x* I#if __VER >= 15 // __BS_CHANGING_ENVIR
( a6 l. b4 k/ [( q/ s+ ^* L if( g_pPlayer )
K, s( r( F6 }$ c HookUpdateLight( pLight ); ]$ ~$ q7 q% M9 Z, M
#endif
, j# n* \0 m2 q4 k! {0 e memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" { L" |: k% a; t6 y+ r4 B8 ~, T: P% Z
#ifdef __YENV
) \. ]* V" _6 E9 U pLight->Diffuse.r *= 1.1f;
% o: \4 p; W$ A8 e/ \ pLight->Diffuse.g *= 1.1f;1 I$ [ t) t, p) N
pLight->Diffuse.b *= 1.1f;1 `5 _9 H z1 T0 q% ?# b! ^
// oˉè* ??à? " m, Y' f6 {8 f+ }6 J+ Y* ^' {6 ?4 i1 k
pLight->Specular.r = 2.0f;; i2 M8 ^- J- Z! T3 e ]6 ]
pLight->Specular.g = 2.0f;, q. g8 I! J' p+ r1 ~
pLight->Specular.b = 2.0f;. i) \( k( p" i4 {
// á?oˉ
7 _$ M8 ], \2 w pLight->Ambient.r *= 1.0f;9 L9 G4 u2 x, l% D' a n
pLight->Ambient.g *= 1.0f;
4 y) z( K" D1 X) @2 B% P pLight->Ambient.b *= 1.0f;+ K8 m0 n, ^% A4 F( d: J5 p0 `7 d- H
#else //__YENV# {; `4 v2 ]( J4 ]/ l5 P% X
pLight->Diffuse.r *= 1.1f;
3 p9 b' t7 C& i) R pLight->Diffuse.g *= 1.1f;
2 @! l$ B8 M. J0 J pLight->Diffuse.b *= 1.1f;
: X% D# B, l$ z( G* ] // oˉè* ??à?
( o0 G n0 P @ pLight->Specular.r = 2.0f;
) n& T+ w3 |2 Q4 ^5 { pLight->Specular.g = 2.0f;
% }, v: U' g* p. H9 W( D pLight->Specular.b = 2.0f;
4 Z# B" x1 M5 a. v( K9 E3 y // á?oˉ
8 {. U0 e8 M& _, A% J7 C |+ `, l pLight->Ambient.r *= 0.9f;! X, `% P# ]( M3 g1 Z$ K
pLight->Ambient.g *= 0.9f;
' g( q1 J$ }9 u6 G4 g0 I& G: f* E pLight->Ambient.b *= 0.9f;2 p7 r, C# y) o% d
#endif //__YENV + m7 T; B @: a8 z* @, r) K
R& \$ {8 c& D8 M/ @2 n
memcpy( &m_light, pLight, sizeof( m_light ) );* r6 T) N/ V0 w- c/ M! X0 p* K
/ [, E9 `5 E& B) a& ~! R
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
. z2 L) J# c7 m8 T D3DXMATRIX matTemp;# Z( N$ e3 G" P8 W+ i! `
static const float CONS_VAL = 3.1415926f / 180.f;% E9 Y) h2 D9 [' u( ~; @5 j X
0 v: T1 V, {1 `7 |4 ^
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
: @1 C: [9 E8 F- M: ^$ O; p D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);* ~3 ?. d1 x1 k# ` F# n' t- b% g
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); . s" n6 q/ u! K
pLight->Appear( m_pd3dDevice, TRUE );
+ L7 K6 J/ Q6 A5 n: b
; G8 F5 n7 O* c8 N/ G // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);. W& c/ _# n; @
// D3DXVec3Normalize(&(vecSun),&(vecSun));
5 j, }: T. W% ~7 b- N3 |9 D# P/ V0 [ // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ' Y( x% S& ]1 t# c* m1 }
3 [% D: H6 _) n3 ?7 y# m, E
DWORD dwR, dwG, dwB;
0 t; [# g6 A1 p- I! V% z dwR = (DWORD)( pLight->Ambient.r * 255 );, D: W7 U4 V0 N3 W: p+ @
dwG = (DWORD)( pLight->Ambient.g * 255 );0 ?* u4 T* F5 ]- l
dwB = (DWORD)( pLight->Ambient.b * 255 );) {' C% h$ @/ z% | e/ N2 ^; i
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); " A' x2 T+ E2 Q9 q$ f
}
3 v+ t1 U3 \- [2 q }2 O! n- X! o- z" o8 W
9 C) t8 n3 f8 m$ X# ~9 G m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
2 Q6 R( _/ j$ Y" f7 R& x1 c7 P 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) );
- [/ y, D+ Y# U. D& P7 N0 I ::SetLight( bLight );6 w! }/ ?+ |7 l; d j! p! X. a8 u
* ~5 F7 z* B( z/ p
// ±ao? ?D?í???ó á¤à?
) O9 u& D, g) Z9 ~1 Q& T* E m_pd3dDevice->SetMaterial( &m_baseMaterial );& U, L8 ~6 U$ a0 d' ?5 D5 L
/ p7 h/ U8 |: E#endif // not WORLDSERVER% Q A" K. g6 F: T: E
}* x* d [% \! W, }2 @
并更换/ f3 H: L) [) i+ \! k E' Y
Code:
5 ~9 [( K5 R) w4 d- M% M__FLYFF_INITPAGE_EXT
F& j5 G! k4 W, Q. b: z定义
8 [4 M2 `" P3 ]/ V9 r5 E/ s9 f7 Z0 m, l1 J
7 Z# n9 f3 _7 E9 x- f( \: t& J; _3 ?
) a7 [7 O) j- d# V+ |, i5 G6 |
( g S) i- \* M8 U4 g4 Y; z
现在终于删除我的狗屁加速...
8 U1 n0 ?+ ~- r9 [: u" S8 |( u9 d9 s+ U, o2 Q) n% V, p* A
) T2 m5 h1 U, J6 i# ^$ {$ t
% O& _7 ]4 {" h |
|