|
|
食品车:
& q: w9 {6 ?, S) b/ o8 Q5 ~尾翼:$ }! Z S+ u1 Z( F8 `5 k: U
4 R0 U* ~( D3 G( `& n5 P& S
代码: u {- I3 g% g" B- F0 h M
CWndAutoFood::CWndAutoFood()
; m! U9 M4 ~, j3 q- p- r$ l{( m1 n* p+ w9 z3 {8 Q/ K' d
m_pItemElem = NULL;/ ], o: k" w: u$ i j, g5 m
m_pTexture = NULL;8 H B% F* P$ }# ~4 v
bStart = FALSE;
( j" B+ [- P$ R. W; _1 T ]% I7 N}, B- o0 H$ [8 {, W7 Q
9 n \4 B9 e9 R0 t+ c% K
CWndAutoFood::~CWndAutoFood()0 \$ B' G6 Z1 w' L T* B1 d4 {& Z7 u
{4 Y- t% ~6 X1 y- U
AfxMessageBox( "AutoFood ist gestorben " );
( }# B# Q+ U$ X% a; e! }' e4 A# h}
" v4 K# }7 m" ?0 z$ k; iBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
" W) h! H: T' `5 b* p% r9 _{. w% O1 [! H9 |8 u2 \# a
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );0 W2 U9 P5 |' E) @ k
}5 e* F6 V8 p( j% V. C& H
' b5 A7 X' G" u% n8 c
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )5 C; Z* t8 M( Z9 Q6 U3 H$ O* Q
{& s* a" x) D: {- ?
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );" Y: _( |0 R, }+ |1 o1 b6 ^
CRect rect = pWndCtrl->rect;
& e2 M3 a. |- C2 M6 \$ O if( rect && rect.PtInRect( point ) )
2 B9 c! r1 m- u; M7 k {
& @1 U' |4 z) c+ V! D CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );9 {8 p) K8 z8 X, u
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
+ x: [$ ?5 @9 ^5 X {& F, H1 ]; S$ f! D6 m
if( m_pItemElem ), { }0 Y3 f q! G. b3 a* K
{/ J' X) q* V; \% Q9 G0 u$ C
m_pItemElem = NULL;4 h3 \! t' M5 `2 r4 f) C, W
}
! P3 R1 F4 w( l- j8 Q5 v m_pItemElem = pItemElem;
' ~3 e9 i- w: E, @% ~' v m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
0 I0 R, O D2 W" h! v% x5 ^1 M }else{
& v5 T }$ M9 z# u3 g+ J5 N4 z7 n SetForbid( TRUE );
8 L" y+ M& k1 s# Z h0 Q3 D }
4 \1 @* A- Q2 ?! M }else{
2 S3 C$ Y9 N0 } SetForbid( TRUE );$ ]# S' ~, A$ G
}
. c8 c' V3 w8 m8 S/ ~ return TRUE;
8 X) S. k' e" \" @8 p. b4 {}
; W4 I& l+ h4 ~2 C/ S8 o7 |& F# S% } {2 ]# z8 j
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
$ b1 @: ^" |) d) F% F7 \- A& w" n{
$ }0 d. I+ Y" s2 I( a: ` switch( nID )- e3 ^; a% l @& m
{) i W$ ^! [2 w4 I' N* b# T/ G
case WIDC_BUTTON3:
6 W. y' L. m- w3 M6 X% M {5 F! R- Y7 V G8 Q2 j B; F# J
bStart = TRUE;; P& P0 x7 b1 R8 Y/ P# f
break; V( a6 o0 B7 T7 X w& \
}
+ e6 C' t7 F0 A' q' N L case WIDC_BUTTON4:
9 j; W* ]& s; G7 |+ T) a' ]+ e$ e {
5 \9 |& b7 e& k% V( ^' t( S h& ] bStart = FALSE;0 @0 w8 M( }: X g
break;
3 k' p A: U% g3 ^! R- ? }* z. r) T& Y$ O4 h1 i6 i
}
7 d1 F7 ^0 f, J* c& C! e return CWndNeuz::OnChildNotify( message, nID, pLResult );
8 V% [/ R6 M+ {- ?/ |) o0 E( @$ ^1 ~}
9 n5 z' s/ ~9 d3 s8 G6 S: R. avoid CWndAutoFood::OnDraw( C2DRender* p2DRender ); A$ a4 C2 g! u: c
{/ W5 S/ D1 U( t+ \
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );* z, J6 ?/ R7 ^3 j3 q
if( bStart || !m_pItemElem )
: S7 J' c1 n7 N9 N1 r- V0 r- G- T {* ~! i p" E/ i5 S$ h; W
pBtn->EnableWindow( FALSE );
: ]* O, W% ?4 l; I* j0 Q6 e }else& }7 Y; j- f% c& N* u2 A
pBtn->EnableWindow( TRUE );1 O8 K J$ J( q% W! Y( c; Z+ a
if( m_pTexture )! `/ l- _; h% u
{
" Y3 k$ ]4 ?. n/ a LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );2 `/ U$ u+ _! }( _
if( wndCtrl && wndCtrl->rect )5 \' P% ~: r S4 n+ D2 G
{ R4 }* d! O+ ~- H% A0 ?- A
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
Q* @. Y/ _, K5 q: T }
0 H+ D$ T" a8 k }
0 O9 Q V) y2 a: X. X) ~! i}4 Q7 ]% C( g8 S4 C" N* k
y+ Z$ C/ K& K8 NBOOL CWndAutoFood: rocess()
3 y. U6 }/ ^2 X{# s7 v. l: X5 E/ K$ M. i
if( bStart )
' f+ A" u t0 v; q9 ~4 s/ I5 S* b {
+ ]% W8 p0 Q% N u( K if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )! }, Z% G* s0 E/ u+ T
{
! _3 S" F& D) z9 \ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
; W$ K( N$ {- x' t+ b \# B" N g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
$ \" L( B% F* Z }else{# T% e7 d" O* s& r& l8 o
bStart = FALSE;$ T7 A5 [ f9 R$ _8 b( `
m_pItemElem = NULL;& a" B% i6 P7 Y7 [8 x( F
}+ u- I, ~8 W# e ?/ u9 i
}
; _2 p7 ]6 }; v+ A! u/ u return TRUE;0 n. Y' a2 v% U# d
}
. r7 {8 L5 H" `% I; F
0 ^+ a1 V' a1 [8 u) D( z! n登录视频废话:
- g0 f: M0 h, ^" s7 q/ e尾翼:4 H t, v8 c# ]6 ^) a
# Z6 E1 F& w/ H; A: y
代码:* B% h+ T0 Y' r; Y2 a' ~$ e6 J
+ Y* _$ C0 u8 U+ u' |
void CWorld::SetLight( BOOL bLight )( }7 H$ l7 e u! u. G
durch9 y R, m* N3 E) T/ `% `
Code:
3 J; I% y( p. f* Dvoid CWorld::SetLight( BOOL bLight )
3 d; G* ^' a8 G( \' a" P" \$ J{$ O" C @& U {- V, Z) R, y
//ACE("SetLight %d \n", bLight);
5 c, k+ i$ Z; }( Z+ N9 R- Z
' Z) }- E+ s6 {, M8 u7 q w#ifndef __WORLDSERVER ( Y0 Q7 c* K, |) `% D
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);1 ^) F. Q E" z/ V( i
CLight* pLight = NULL;
* l6 `0 W$ f: o9 F4 R) p
( X! M1 y- p8 Y) ? B( F* h D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
% U( p5 f" T) ~( j Q$ o [4 `2 d: C) x9 P0 C0 a
pLight = GetLight( "direction" );
- Z3 T% z, `. j0 \( Y
& K; M5 i% [7 z1 g3 f#if __VER >= 15 // __BS_CHANGING_ENVIR* \& b I0 u/ g
if( g_pPlayer ){& B: `0 z1 j; ?1 f* n0 M
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
3 y: b: D% c W; b9 J if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
- @9 E9 `7 n/ \* w4 S {
$ O0 q7 Q4 j( ]: ]6 b g if( pLight )
4 Z/ B7 w5 X$ Z {
/ l$ x1 M, i+ I pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
2 K2 c$ P- q2 U1 X0 Y2 d5 \ pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
$ J' N' a- H$ S pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 | a) z% i! ^* ^. c j
. X+ D2 b1 V: T1 ~2 `" ~' L
pLight->Specular.r = 2.0f;
0 R7 {+ B% Z' A8 X* h8 h4 [- t pLight->Specular.g = 2.0f;
, G5 C" h: ^; _$ s* @ pLight->Specular.b = 2.0f;& @' q0 g8 E2 `$ x
% Z- f+ i4 i+ m6 | pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
+ o% D" f8 ~% u pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
! z3 E0 e: m* T/ ]& B, f, u6 _ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
# s% T* z$ i' o/ p
, U+ I1 c$ F! s- e HookUpdateLight( pLight ); ; ~, X8 b; n* W( c2 j
7 a( s( g/ @6 ?( g' l5 y7 E
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. ]; o% j$ B6 d/ a9 M3 j5 D, a
4 G% Z) y# Y6 g- Q1 [
pLight->Diffuse.r *= 1.2f;0 z% X) ~8 j) a. c+ \. B% z2 P' u" v
pLight->Diffuse.g *= 1.2f;. c- ^; D |, U4 h5 V9 h+ i2 O
pLight->Diffuse.b *= 1.2f;
& v2 W1 Z5 v" U2 o8 }- f
! ^5 g& ]6 p0 [9 [' a# n pLight->Ambient.r *= 0.8f;
T0 j( C9 Y% |3 X0 W) @' G5 Q pLight->Ambient.g *= 0.8f;
7 }: F5 x2 c& T) ]5 z+ A3 K pLight->Ambient.b *= 0.8f;
k/ y& Y" y- G9 M% M+ Y* w
% e* N7 B( H1 r0 R% B memcpy( &m_light, pLight, sizeof( m_light ) );; v+ R; B) Y. ]/ `, |- T5 G* z* e
6 p- |% E% R* N3 _$ ]7 m D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' a9 `- \* L; D: d
D3DXVec3Normalize(&(vecSun),&(vecSun));5 t5 U6 A- }9 Y. ^/ L& U
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); / g9 p3 ~- V& S6 J% P) b( j
pLight->Appear( m_pd3dDevice, TRUE );
& v5 `- S+ @; @! g3 P 8 Y! g, W" t8 p5 M! }: N/ k
DWORD dwR, dwG, dwB;
0 {6 U$ E( x4 q, E# G dwR = (DWORD)( pLight->Ambient.r * 255 );
: X! N% |! I8 Q" q8 @4 B: N m3 y$ L dwG = (DWORD)( pLight->Ambient.g * 255 );4 I- s0 z6 n- d6 C! M0 \9 V$ t
dwB = (DWORD)( pLight->Ambient.b * 255 );
# F/ u# K1 l7 I* k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); A7 e* Y% a+ r% m/ V
}+ o2 a4 L& |0 T; t1 z' B
}
$ ^5 h! e* p) D% o' F# P0 Z }7 l4 r) Q4 g9 c/ `9 X8 B" N
else$ y6 l5 q+ J( Y, j1 m6 L5 ?
#endif
( w9 O1 [; \9 n0 ?; ~5 \8 l. k: _0 q6 L
if( m_bIsIndoor )
( ]% E( _( d% f7 `# I( D {
. Z% \4 l9 Y$ b. b. q7 j c if( pLight )9 b2 a, b+ W; j; c# R5 ^7 t
{
7 M. \2 z+ m& X/ V8 @0 }$ T2 j% m // à??μ oˉè*
5 Q7 E7 s% P$ E& ]0 i- |/ A pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;: {0 b2 \, V& Y! H$ K' T
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
( Z) w5 n7 m$ [' n& K8 } pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;0 U1 ?& n& ~8 e) ?; q
9 N. h" V! ?5 a // oˉè* ??à? 5 q- s$ j; `% E& y3 f
pLight->Specular.r = 1.0f;
k2 b# Q7 @% l* W: C1 l) `* O pLight->Specular.g = 1.0f;
# f" q$ @$ a2 V8 a pLight->Specular.b = 1.0f;0 K: w o! T# K! u1 H9 H+ w5 K
// àü?? oˉè* ! a( Y. C2 P# w3 G; k$ [. _, O7 h5 p
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
" n; r8 ]2 W1 ^0 H pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;* {! H$ {6 `% u) t
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;4 m8 h8 W0 E$ {3 K) z
, C5 }5 Z6 B" _+ u
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ E% H+ ~7 {, w! r1 H
{# c( N% V2 c* K+ w: s, R
pLight->Diffuse.r *= 0.6f;
5 i7 |" k. G( }/ r pLight->Diffuse.g *= 0.6f;
$ k% X/ S0 Y, P* w2 B pLight->Diffuse.b *= 0.6f;
8 ]1 n1 o. i& `4 Q! c pLight->Ambient.r *= 0.7f;
* M8 j' Y6 ]9 z# e: }- I6 G pLight->Ambient.g *= 0.7f;2 K [$ i* l: i3 l6 w) S" Y
pLight->Ambient.b *= 0.7f;
0 \' [ F" ?# W G }* X+ [: \* u, m- O% u- n8 |1 P
^9 o* d0 o% r; X% ^6 c6 c& I+ q#if __VER >= 15 // __BS_CHANGING_ENVIR0 @% l* X' H, i, o! ~
if( g_pPlayer )
* ^7 L) T/ D- f: a HookUpdateLight( pLight );
9 F5 {& @# k, v. V2 E: t3 c#endif' `8 N& K# X# M" v
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
4 ^; q8 [: Z1 t$ ^3 h1 {. c. w1 j8 q" @0 m0 Z7 o; v& q8 @
pLight->Diffuse.r += 0.1f;! o) ?/ [) Z# {! S: }
pLight->Diffuse.g += 0.1f;$ v/ P" _' Z _# e: {* T
pLight->Diffuse.b += 0.1f;
8 }1 {1 b1 A7 {' M* G3 S, Z! m // oˉè* ??à? . y: m$ o$ T- x% {
pLight->Specular.r = 2.0f;
4 W9 x5 r$ z; {0 H) o( W+ E1 n* Q pLight->Specular.g = 2.0f;
% ?5 s. S. G' F4 X7 _) ?. Q. e. l pLight->Specular.b = 2.0f;
! V9 j+ t* c; [+ h- z2 r# \5 P // á?oˉ
. s' z; p% P+ \# p% w8 A pLight->Ambient.r *= 0.9f;
) j$ b, e. B; a4 u4 ?2 S pLight->Ambient.g *= 0.9f;% Q; F, |, X! K/ X6 H) E
pLight->Ambient.b *= 0.9f;
5 d. N8 f2 B* a
, f. X0 T+ O( ~* r+ U$ k- v memcpy( &m_light, pLight, sizeof( m_light ) );
- v" s% w* |" f, l( R p
) F8 ~$ l, j9 @) ]- O5 j# I pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );. c- D& p! e J5 K' R" ]
pLight->Appear( m_pd3dDevice, TRUE );
/ M3 Y4 e$ s% s5 `4 k$ w. i ' p' G! V) m& c8 _7 j$ D4 I
DWORD dwR, dwG, dwB;5 e' L8 q9 _2 C: @. e' K
dwR = (DWORD)( pLight->Ambient.r * 255 );
d; J- a: z0 R! c6 G; @ dwG = (DWORD)( pLight->Ambient.g * 255 );3 a4 S* H W$ w# z( W
dwB = (DWORD)( pLight->Ambient.b * 255 );
- F/ Z6 u4 x: H6 w9 E dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );5 @# p! ~, i* N: f7 h8 U
}
; c/ D X+ K& u }
# z* c5 f$ f$ E6 f else7 S2 S6 w8 ~3 j- {# I _" r0 \" u
{
$ s0 y" }4 t; j6 \ if( pLight )- m2 ]7 ?# h" q! A& j
{
, G) p% P% g0 M3 n
% L# u H. \" B1 {+ E. L int nHour = 8, nMin = 0;/ q' A3 ^8 ]) |& I7 p2 |
#ifdef __CLIENT
( C2 G) d# A! c // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
& _- b% ] i$ ` nHour = g_GameTimer.m_nHour;
& U, G: }( y! _$ ]& W! c" t# ^ nMin = g_GameTimer.m_nMin ;) d: d5 p5 R' w+ c
#else
* D' s5 O& f* W: p5 @' R // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.4 t. ]# e! t! J, x2 n8 d
if( m_nLightType == 1 )5 V9 B1 \- |0 {$ t- r4 n
nHour = m_nLightHour;
: k% s' d: X2 h* ^. k #endif# o9 Q- N I" g. o- O
nHour--;: |; I; R2 y5 B" d0 Y; G0 B
if( nHour < 0 ) nHour = 0;
7 U; `1 }7 z, w" F" z2 y9 J if( nHour > 23 ) nHour = 23;
- N; s3 {: Q' C$ P; ^
6 X" L2 s" E9 y: u5 @/ t //if( m_bFixedHour )* l1 e/ \7 J4 k: Q# _
// nHour = m_nFixedHour, nMin = 0;4 I4 O G$ s+ Z1 {1 C4 t
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
; C* c( X" ]( J a E* Y LIGHTCOLOR lightColor = m_k24Light[ nHour ];
# a6 g4 u# Q0 O: C
: n) i4 b+ ^" s9 R6 ]- f6 | //m_lightColor = lightColorPrv;
+ C- [& X, M- ^6 O lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
9 S% q; O {: A5 K* l D0 Z lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
3 B6 N2 K& Y" k9 F lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;2 a& ~0 F1 N9 S1 E& _
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
' V" X4 F7 p/ P" U lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;5 l5 K# {* d" n N+ N U
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
) V% p7 d* c6 ^% D G# M0 _; S // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
) w2 C& c' W$ }( n0 ~
5 m4 H$ p/ M, L' t# m // à??μ oˉè*
( I( w ?, C/ [ q0 w pLight->Diffuse.r = lightColorPrv.r1;/ W2 Q/ s% U5 v! X) `4 n
pLight->Diffuse.g = lightColorPrv.g1;
" c1 i6 B5 G6 g' ?1 d7 w: [! B pLight->Diffuse.b = lightColorPrv.b1;: y9 Q! w+ \ @) n
// oˉè* ??à? ( X9 s4 F- b3 M+ X
pLight->Specular.r = 1.0f;+ v- ^0 c7 q3 @, l) L% S
pLight->Specular.g = 1.0f;2 K# m. u, A0 W
pLight->Specular.b = 1.0f;+ q# e3 q- @; e( a5 C
// àü?? oˉè*
# `/ }8 N- O+ c, Q- l* \+ @ pLight->Ambient.r = lightColorPrv.r2;
+ r6 z# S- Z! D* M pLight->Ambient.g = lightColorPrv.g2;
7 ]% I1 j3 Q: \ pLight->Ambient.b = lightColorPrv.b2;; _+ ^3 I& k! S& @& Q7 F
4 h. b1 G0 v! J1 p' T if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.. E2 I4 \4 I0 X/ Z, Q
{
+ }7 \. N" r- f9 ~$ @ pLight->Diffuse.r *= 0.6f; r4 T3 R6 Z( M: F0 |
pLight->Diffuse.g *= 0.6f;
# P& g$ k) J+ f pLight->Diffuse.b *= 0.6f;
. k- ~; F3 T5 E3 P pLight->Ambient.r *= 0.7f;5 P" ?+ d' ?1 M# h3 ] _3 R
pLight->Ambient.g *= 0.7f;
) V1 G2 ~( x1 ~5 s" f pLight->Ambient.b *= 0.7f;
3 ?3 X- g& ~5 T& l, R }
# F9 E( L; {7 _% V, G 5 s4 L, T5 A# Z; o. g) y0 W
#if __VER >= 15 // __BS_CHANGING_ENVIR
( |" I+ M% R9 a& M% ]& o if( g_pPlayer )
+ G- G( A1 Y! u6 z HookUpdateLight( pLight ); , U, ?" A: z: L; ?5 o6 P6 z
#endif0 B3 `$ ]+ `9 x
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 W4 p' }0 O6 W$ c
+ n% Y: f( d# { [; K; ~0 }8 t
#ifdef __YENV8 ?( }1 z- B* S0 X L# C) n" w
pLight->Diffuse.r *= 1.1f;
8 w6 m5 g/ W1 S% p" _) K* L4 T% \8 @ pLight->Diffuse.g *= 1.1f;
+ h4 z5 ~' b: f) x; _ m pLight->Diffuse.b *= 1.1f;
/ |7 T+ |' t6 _3 @5 ]! v4 t. P // oˉè* ??à?
# g$ W0 i0 i+ e# K pLight->Specular.r = 2.0f;
' N7 V9 o$ k7 ]% x9 v/ Z! _ pLight->Specular.g = 2.0f;
8 n# Q2 G% W) f" b* R- r$ ~- _ pLight->Specular.b = 2.0f;( e& {! Z+ m! `) w5 h# T
// á?oˉ
% R: l; L3 \& ~# ]0 f. `4 R% Q& K pLight->Ambient.r *= 1.0f;4 e2 {3 U/ s6 ^, l
pLight->Ambient.g *= 1.0f;5 t! n) k& z4 c
pLight->Ambient.b *= 1.0f;+ q: K, W) Z+ {' W t# v* S8 w. s
#else //__YENV5 _+ }9 \$ B! s( t( y4 o
pLight->Diffuse.r *= 1.1f;' C3 w+ Z% X: C) a" n/ s* I
pLight->Diffuse.g *= 1.1f;
1 X8 Z; v0 { A7 m% t( X pLight->Diffuse.b *= 1.1f;; I! m0 e8 h! w% L
// oˉè* ??à?
2 t/ C3 f+ G. l* ], Z$ P# Y8 _7 e8 N pLight->Specular.r = 2.0f;
2 S9 j+ q% s0 ]- d pLight->Specular.g = 2.0f;
/ J) N6 b1 a! j' E pLight->Specular.b = 2.0f;
) X( \0 S9 e4 R+ O0 l // á?oˉ # `: B( A; x4 j2 S$ I" ?% X
pLight->Ambient.r *= 0.9f;0 R- Y' r1 O' \3 k4 F; o' Z
pLight->Ambient.g *= 0.9f;
% ]; ?4 C8 C# U4 h1 K pLight->Ambient.b *= 0.9f;" h; K+ x8 _; C$ }
#endif //__YENV
; K% [9 l* d" s. l' x. L & d, Q" S- o# I; e3 h
memcpy( &m_light, pLight, sizeof( m_light ) );4 x9 \7 Z- B4 \# U# ]. n3 u
( w, o% ~! c8 O3 C _3 D4 u
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 P5 F8 a$ o! P3 M4 l% g
D3DXMATRIX matTemp;1 V1 O0 J' M9 k6 k9 I) F
static const float CONS_VAL = 3.1415926f / 180.f;! P/ Q9 R6 N7 p- \4 N
; Z' n9 }" W# F& e D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
5 ?9 C, `( x# `7 d5 f2 j D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);, Q z( E$ U8 v" h& E e
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
. k; V0 ?$ q1 o. O/ w9 |& U4 Z pLight->Appear( m_pd3dDevice, TRUE );
2 e' w5 }; m. P! |+ ]1 d9 E1 u/ Q c+ o/ p K
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) w- `$ j- S% u7 }" @ // D3DXVec3Normalize(&(vecSun),&(vecSun));
' n h% {# x/ J, r# @* j2 a; I8 ?( I // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ! v6 g) }+ H( K! G/ y, r
& u; \6 K, k3 m: ?; b5 J! Y/ ?/ l) o* k
DWORD dwR, dwG, dwB;
8 Y& p+ I8 T4 n dwR = (DWORD)( pLight->Ambient.r * 255 );
! ^! d1 u0 T3 z8 ]* G% h9 A) T dwG = (DWORD)( pLight->Ambient.g * 255 );
- @8 z$ r4 E4 ?: K! R dwB = (DWORD)( pLight->Ambient.b * 255 );$ ?$ [7 b2 t7 L3 {' x( f2 Y4 b2 X
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 `" M. T/ C+ _7 [" c9 f, _( | }
7 x; J5 i( f$ B) `. p4 a }" j; C9 ~, n2 E1 I) P1 `1 q
7 ^" A9 ?& V4 x8 ^ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
3 Y8 z4 n- b/ L/ E" l4 B 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) );
2 b# R- t; \1 T+ t ::SetLight( bLight );
* y, @4 x- a( N( u0 A' z
' a5 ]* |1 Q: k$ ^% J) B5 h4 {: Z // ±ao? ?D?í???ó á¤à?
8 ~6 R# Q6 u q" n m_pd3dDevice->SetMaterial( &m_baseMaterial );1 t0 S- R, |; j, [% G5 W" \0 d* R6 p
# j- a$ ?/ B8 X. ~% q* ]2 W9 j
#endif // not WORLDSERVER4 K. P% S, D4 n. O4 `5 g
}
2 w# X% K! e8 @5 u! ~/ ?并更换
+ X [( N2 V$ `1 k( v3 @9 O" B) WCode:) A; _( C p, o4 V, g5 B
__FLYFF_INITPAGE_EXT
& T% Y$ d# U: J定义
3 l; P7 K* @7 m" e5 d) @% b) t) s4 t9 V+ j2 j
& O7 `7 ?0 h* s5 d' J
, ~8 X) z8 A! R7 e8 b
; i" D1 u4 Z: m. B0 W3 U现在终于删除我的狗屁加速...9 X: x" X: z6 y6 W8 N8 Q( \+ {8 \* q
0 m1 i! L2 q! U0 q! W: V
: ^' B% w1 H5 _& V1 a" k, v/ l
! U) d1 \& s' M- u- ? P! X% ? |
|