|
食品车:8 J8 |3 j5 b& j" @$ v
尾翼:9 u# N: ]- X, X0 q' U1 W
9 W. v0 ~3 H9 j代码:
" Y. u* J: Z, OCWndAutoFood::CWndAutoFood()% L# l1 w3 Q1 y/ T5 Y
{
0 O8 u8 }4 ~: u0 R' ` m_pItemElem = NULL;* v9 a! I* I4 B
m_pTexture = NULL; R( e" k8 g5 v2 [( j
bStart = FALSE;
! ^! V9 A9 j" K$ K6 r}+ n" O# h& ] _# q X5 u
: O1 K, `; p8 _: L0 T
CWndAutoFood::~CWndAutoFood()) M* \; v$ s r% g
{
: z# v% I4 N' Z' E AfxMessageBox( "AutoFood ist gestorben " );
& x- |8 b8 C" F+ M2 B A}& e7 m+ E g3 A' ^/ [4 j# B
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
. e0 \6 |1 x1 H v{8 P; r$ ~8 e, a; U( Y6 S
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
. w, \2 J5 y7 t}
! v, \4 m+ r ^8 |0 o5 n
5 q) P1 ?6 R' S8 z: u" Y/ Q# tBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )7 ]$ G. d: q; @1 |. O1 q/ V$ b
{
" B8 d) r% \, C9 @, v0 }* p LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ a8 ?+ A9 I; Z0 S+ Y, e `; \2 {9 T
CRect rect = pWndCtrl->rect;/ z8 w! S+ e0 y
if( rect && rect.PtInRect( point ) )! _' G' k$ J3 c
{0 ~/ Y1 v' }- W3 h# R
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
) t+ Z7 A+ d5 u0 B; p" \8 S9 y0 b if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
, H g9 T7 O, G* x0 S! K' R {
( T4 ?- Q0 t2 k$ W if( m_pItemElem )
6 @' t% q9 k l% S$ g1 | {" J4 q) r# V2 c! i
m_pItemElem = NULL;! t% \, l5 E$ y/ y4 X: F, j
}# W0 F, I1 i9 a1 t2 } @
m_pItemElem = pItemElem;9 `: I0 Y# t7 K1 ~/ Q
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );( k7 c3 T _3 n0 A, t; P
}else{
A" G U! I) ~+ }3 O, O SetForbid( TRUE );* {( B5 m! v6 @/ o, G9 D
}& R" w0 C4 c& \8 w! Y& ]3 h
}else{
7 Q6 d7 K( Q9 G! j5 }" a: g- w* q SetForbid( TRUE );# M/ o9 Z# s# z8 N* J
}
5 X& @5 F i. @$ p5 @# O return TRUE;
' Y/ U [' r5 B$ \' @' m m}& ^# ^1 i8 E' e& H% o8 o$ k
; i& F7 x8 p- W
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
& y& ?; v8 Y+ t* a7 ]- ]6 L6 O{; C' K3 e2 t, J9 a3 _! _
switch( nID )1 ]1 \) x' S8 c. i2 \+ T
{( P( I ^$ x/ t+ E, \
case WIDC_BUTTON3:3 y7 l+ E5 o- Q. v O9 \
{8 S, B( \; i) ]' m6 D& s
bStart = TRUE;
: h- N+ e! N/ e* n8 q break;
" H8 s" W$ R$ r+ p8 A6 S0 M4 j* L7 \ }5 _% |/ \7 \: ?+ o/ ?
case WIDC_BUTTON4:/ u* r2 Z" {3 J4 b& X. J/ s
{
; u* m9 z1 D, V4 r bStart = FALSE;
% [3 d& i5 a" }9 Q0 N; P% l2 \$ S break;- Q u" x3 C$ b3 r" g, z. W
}6 ^8 T; l3 h& w+ j1 G- r
}
; t, i Q& v6 a' R2 ?& O6 T4 A6 n+ k return CWndNeuz::OnChildNotify( message, nID, pLResult );1 y& |4 A1 w4 c: o% ^
}
& U4 l! l( W+ X; g) F# U/ h" K+ svoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
3 A5 `% j8 U5 }{! p( Z+ ~4 Z. G
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
2 w& d) |: q4 f2 k' O4 ? if( bStart || !m_pItemElem )
- n" a! U$ \7 m& t4 S {
4 |3 F" @( s/ C9 L' B6 i" t pBtn->EnableWindow( FALSE );. O6 }. \& c% O. e; N+ Z
}else
/ x5 j! ^5 B' x pBtn->EnableWindow( TRUE );/ y; ?9 R- `! C9 T2 [
if( m_pTexture )' d! }* S1 K/ q) \ R, U1 ~. p
{7 s5 a& n, d5 Q: A
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
; O. e. M7 @ [ [+ N4 b( H8 W if( wndCtrl && wndCtrl->rect ), i7 g6 }+ ?% i8 C% X0 z) j% q
{: [& {5 U* }8 W
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
A" B; Q+ j, A1 |& w; ~8 K }# M8 L" Y0 A D0 g. u# r
}6 s D" `9 [! p( Y, [
}
y+ W. b. V- E/ p) x. c$ x# Y) S" \& s2 I4 O& F1 m) v% e
BOOL CWndAutoFood: rocess()
, p. U: _' ]9 s3 F* x+ q5 N, P{
9 T8 m& u% V, t7 x: m9 J if( bStart )
0 E& Q% L6 v$ }. n6 H4 B9 { {
$ @& I" _3 M m8 P& R- E u if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )1 {$ N* J; D; y& \) c' Z$ g7 H) M
{( g# b9 Q) J. C0 M2 Q k8 ^- }' D3 `
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
: c) w' T! u. m# k/ p% ]. B; C g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );3 e; [, P/ a) N1 n5 ~: q+ z
}else{: T# u0 X# d( b1 \: M
bStart = FALSE;) Q) c) B, K# r0 _2 I: p0 r I
m_pItemElem = NULL;
/ {" V/ D; a0 T3 R0 f }! B2 z) G$ H, O# @
}
7 B+ K5 F8 I2 k return TRUE;
% C3 e* @3 l* C: R1 e}
& X3 \+ h6 o4 E- M- V* n- K, T W
登录视频废话:7 ]4 U4 J# ~: M C
尾翼:7 H/ L' W$ A8 h6 [8 O+ O! f
( u4 W2 L2 U. L, B代码:
! z; t- e* Y5 d/ [( E, f, f$ [
/ v/ i& p& r \/ y2 W& V7 a5 P- cvoid CWorld::SetLight( BOOL bLight )
3 s; q: x; T3 O" n+ U: r& xdurch3 `3 f$ `) ^) O
Code:4 i# k: X! G. i" X, \4 z9 w1 C
void CWorld::SetLight( BOOL bLight )1 D3 {! S3 a8 p2 ]: w& n, t
{0 z8 k1 j/ r! Q+ @# _5 a$ G
//ACE("SetLight %d \n", bLight);. F) i8 S/ u" n
$ j8 R* U2 O1 z( _' z" ?/ f" v2 ?
#ifndef __WORLDSERVER 0 Y7 p* d& t5 Y' \+ w
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);5 Z& s h. K0 j- {8 R9 V2 t
CLight* pLight = NULL;
9 l' v; E1 O! T; I& d
' |- d, k8 D' y; q5 @7 i) ]9 n D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );) C/ X% ^7 v2 T9 u6 _. V, W
. E! R! g) _8 e* L& e pLight = GetLight( "direction" );
' r7 l6 x$ c2 ^2 I# b& x$ M; l6 b, c% V
#if __VER >= 15 // __BS_CHANGING_ENVIR. q" `: u8 M1 q y: n
if( g_pPlayer ){
5 {& u- t% |9 k1 {. ]: M% T! s ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );6 Z( x9 F# X# [; \! f
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
8 g0 I& o6 g& P- G5 X' J/ g {
- |$ @+ T% {# T( `- b6 }5 p5 X if( pLight )+ Q0 i* N, f& @5 A1 N
{8 g% z. s) L+ y9 p8 ]* _% X
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];+ [( P( O0 R4 W0 y3 O7 i
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 h; J+ k. w% d: g- o/ }* R7 I" c( _. e
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
/ j6 A# c. `' U5 e3 V4 q; S7 v. |& J1 W7 Q+ g
pLight->Specular.r = 2.0f;# k: G" {4 R& W) p
pLight->Specular.g = 2.0f;
& G7 O# M% q2 w" t2 i* i pLight->Specular.b = 2.0f;% q1 M& V3 s8 H3 Y b9 w6 i6 u
7 m0 `) n' y* F" X G pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];( Q6 |% {) J" ~
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ]; ]( Y. _, r# B2 D# {) Y& ^0 Q
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];# q3 w% O8 b( I! P5 f. g
. H5 V3 p/ ^6 ^& }) f, t
HookUpdateLight( pLight ); 1 l# a8 p! W" I" r2 d7 N7 R
6 B* I4 L- J/ C7 t) C$ J memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, N) {: V) X. ?" O8 X 6 @9 v3 h, q0 I$ I- Q$ d
pLight->Diffuse.r *= 1.2f;
0 _* _5 K- s! i0 s0 f" j# m pLight->Diffuse.g *= 1.2f;
' x- z/ w( q% ~, ]% D0 x/ J7 J pLight->Diffuse.b *= 1.2f;
1 Z7 q0 S9 l' H* _; _+ M) Q0 w# I7 q3 }( }0 y
pLight->Ambient.r *= 0.8f;
7 W% R" @% O+ N9 f pLight->Ambient.g *= 0.8f;
/ h1 z, V$ J$ U" x* B# c pLight->Ambient.b *= 0.8f;
% [& ~( E* I2 O+ q! z5 |/ Y& o" X2 T 9 W w3 o: p' G* _7 L( P
memcpy( &m_light, pLight, sizeof( m_light ) );$ Q* Y6 [6 W4 ~5 s% w# [0 s* }- [
" \( q4 c5 Q6 F: L8 ? D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' a2 J: W7 W2 ?# `' P* \7 A( d1 t
D3DXVec3Normalize(&(vecSun),&(vecSun));7 G2 I( s; \0 E6 b& P
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ; U9 D: j* O* p y" K, c$ ]& Y, z2 e$ f# n
pLight->Appear( m_pd3dDevice, TRUE );
% p7 N. G. ?1 i! S2 M- b
* t, d1 z5 K7 w2 q# F4 ]( ` DWORD dwR, dwG, dwB;% n6 f7 J, q p1 A+ {- s Y( w6 b
dwR = (DWORD)( pLight->Ambient.r * 255 );- l% r) \+ s5 ~. ?, w
dwG = (DWORD)( pLight->Ambient.g * 255 );+ n l+ x2 I8 a* A& f3 ~
dwB = (DWORD)( pLight->Ambient.b * 255 );
; t7 ]7 M9 P8 [' J0 i dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& J$ o) ]( W: J' Z- ?
}
4 s( O5 h( k+ O) T7 q+ [" V* @ }
6 p* k, i8 T$ `5 V1 m) ]3 ?! f5 m }
! `; [1 T) a, E else
- Y) U) `( L( w7 Q8 a* @" J#endif O& }; d2 f( J0 t( y
5 l3 b( V6 t1 H1 A' P4 p if( m_bIsIndoor )6 B0 S* w( x# x6 }2 z- r8 y, m, Q
{8 A1 S2 \+ U9 q$ Q5 y
if( pLight )
9 e. r c, K8 Y# X" i: {% N {
" V7 W ^. `( ~& C* w' {* w, s- C // à??μ oˉè*
0 i0 w2 @( g7 y0 p6 m pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;# k- |2 n+ E8 C9 b1 K7 y: b1 l
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
6 [8 E( j4 t, w8 R3 g. t: [ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;& p" Y+ Y/ X7 p" a& n/ g8 a
7 q0 p! C X- W+ j/ h
// oˉè* ??à? # P |4 ?( x* L4 L6 c
pLight->Specular.r = 1.0f;4 `% p5 D# n$ j2 c# ^9 e V9 Y# E
pLight->Specular.g = 1.0f;) C) E* S/ y! D
pLight->Specular.b = 1.0f;
# k! e+ a" K% ` C& H // àü?? oˉè*
7 N w% d" C4 s4 |. Y C pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;5 c4 r4 U% w% k" v" ?$ p
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
$ D8 d+ v6 D, L4 K/ O9 }7 E. a pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;" D: Q5 @5 c7 @5 J6 A+ r
0 l" l: h9 J' `: E1 V. S U+ Z if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ E3 [/ f: x. l7 ]- p4 ^
{
8 A& Y8 V4 \" y9 S/ c) i pLight->Diffuse.r *= 0.6f;0 y& D9 b) @% i3 f. \# z' f
pLight->Diffuse.g *= 0.6f;( U/ O. u$ N6 b
pLight->Diffuse.b *= 0.6f;& C/ e8 A: t8 C G# B
pLight->Ambient.r *= 0.7f;" X7 ` Z# y/ g1 ~8 _9 R
pLight->Ambient.g *= 0.7f;
, J/ G" M: ?% Y+ Z; ~7 d T) T$ |0 H pLight->Ambient.b *= 0.7f;
, n3 K! c) Z# K1 i }
2 Q, m. T- U4 L" z8 F! G. |/ b: _9 ^; w+ |6 l
#if __VER >= 15 // __BS_CHANGING_ENVIR
# P* s+ V! u+ K4 t if( g_pPlayer )
5 y* R7 h+ U$ i: B$ w HookUpdateLight( pLight );& M# h+ T C" i& D) {7 s
#endif- s+ m+ q* l m. P0 n
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; o( K' s% X) {' i+ L" x) f2 j2 p* `7 r
pLight->Diffuse.r += 0.1f;
# p- \% Y7 r' ]/ K5 C) k2 O pLight->Diffuse.g += 0.1f;" {9 ?5 [+ L. i( J' m& {3 A
pLight->Diffuse.b += 0.1f;
& L8 @( t- w( g/ P' W // oˉè* ??à? ) n5 {: I2 b: J/ I& R, H
pLight->Specular.r = 2.0f;
) `) t) Z% y; a4 p* A/ i7 ?1 T9 | pLight->Specular.g = 2.0f;' a2 ]7 p7 Y: }3 n
pLight->Specular.b = 2.0f;
9 A7 u+ ]! f# e' I" c* m // á?oˉ
' Q$ E. Z7 r7 H8 m1 s9 i+ l0 N/ R pLight->Ambient.r *= 0.9f;; S& ` ^3 Y1 m% g4 B
pLight->Ambient.g *= 0.9f;1 R# q9 M! E$ H
pLight->Ambient.b *= 0.9f;" K1 V$ |4 V) z
$ h( A2 H$ l; H
memcpy( &m_light, pLight, sizeof( m_light ) );
4 X+ n; X2 p) ]. m+ k* e 1 ~/ n) d, e N4 }7 M
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
0 K: P0 w! m/ o" d$ c/ E pLight->Appear( m_pd3dDevice, TRUE );& o' Q& R8 g; Z: I8 E8 N
9 J2 z) O! O# C9 M' I2 x3 O
DWORD dwR, dwG, dwB;6 ^# Q* S, t/ K- E) I
dwR = (DWORD)( pLight->Ambient.r * 255 );
7 M W( L# q7 r0 e dwG = (DWORD)( pLight->Ambient.g * 255 );7 z0 i( s4 T& m, j/ D
dwB = (DWORD)( pLight->Ambient.b * 255 );! i: S, V4 E4 m: w/ x/ ]. s
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );. s: N, ~8 f9 p0 ?# t- V
}
0 [- D, q0 [, o! P0 t }( |3 B& _! g+ T
else
( h7 c' J+ _ h% S+ ^ {% z9 f" b$ k( g" |! _
if( pLight )
. ^ x; [/ s# S) o/ S6 p( p {6 ?0 y9 g. ? {% M. J5 R
' m8 Z$ g+ b7 A0 G, v
int nHour = 8, nMin = 0;
: w2 A0 C+ ^$ R #ifdef __CLIENT9 l: q: ] Z" s, s/ _
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. * \+ n: L( g2 e6 L
nHour = g_GameTimer.m_nHour;+ ^9 F3 s- T W- f
nMin = g_GameTimer.m_nMin ;/ U- K9 B e# F, s8 g+ i6 d+ Z
#else# q# |; P$ o+ E2 @: g; P8 h. l) D
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
0 {' [1 `, h2 Y- K if( m_nLightType == 1 )
& o3 Y! h6 S9 }! w nHour = m_nLightHour;
3 r6 G; m1 Z& R) C$ n #endif/ p& v! k# ]! U7 A1 K+ }; o( `
nHour--;7 H% f c# m) G" d3 F" _2 z4 s3 V
if( nHour < 0 ) nHour = 0;. {7 D2 P+ D+ k6 ~5 M) U6 a) ~
if( nHour > 23 ) nHour = 23;$ s( |5 U- Z$ m( \- z5 {
1 o# b- \6 G; V" k4 i ?- w" f
//if( m_bFixedHour )
$ }* r2 a0 D% C* y, U0 u t // nHour = m_nFixedHour, nMin = 0;5 s$ J \0 v* f4 y8 }
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];4 z6 \& a* U1 B. ~ i4 k6 t
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
% d$ ~0 z5 N% v& S* F$ P! |+ `/ }( n
9 @# q4 v9 g0 |, p0 N //m_lightColor = lightColorPrv;
_* j. ]" H( U# Q. B' ]# w lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;, `2 V7 ^/ \5 _
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
1 }" H* Z& p; c) s% O% f% a lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
- ]4 I# R6 o. b6 t d+ h. w3 i& B lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;( Q+ A" Q. c4 W! P. V1 `& M$ p8 n; Z Y
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;% X- k G- M* q6 T, s
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
- h9 H r" A4 E9 \, ^+ L // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)2 D6 O+ m" V6 E4 E/ I3 O5 v9 T6 R3 }
! F. G) g) m' v. \
// à??μ oˉè* ( u1 e B! S4 A1 s
pLight->Diffuse.r = lightColorPrv.r1;$ H$ Q, n0 N L: o3 i/ @( v4 \
pLight->Diffuse.g = lightColorPrv.g1;
2 B2 ?' v [- L+ _- W! a( Z/ J pLight->Diffuse.b = lightColorPrv.b1;7 o' Q/ t$ B* v- B4 m
// oˉè* ??à? : M: f. }1 G' P. o& w" o
pLight->Specular.r = 1.0f;
9 B" w/ N2 d; Q" t: f pLight->Specular.g = 1.0f;2 t7 L( V& @; y) T
pLight->Specular.b = 1.0f;
6 ]" Q% A$ H4 {0 N& J& X. q // àü?? oˉè* 0 V @5 c" R. F( h8 t
pLight->Ambient.r = lightColorPrv.r2;
- r' H6 E3 ~8 l, r6 Y5 { pLight->Ambient.g = lightColorPrv.g2;( e9 U0 r5 b Y4 C# S `: ^
pLight->Ambient.b = lightColorPrv.b2;4 Y% V# r, r# V6 }7 |
P5 [6 Z* F1 J if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
3 B1 P! w. d) ]1 ?7 x { D9 e- o7 L* E7 h6 X! J8 H+ @# t& e
pLight->Diffuse.r *= 0.6f;2 [+ I1 q+ N) k
pLight->Diffuse.g *= 0.6f;
- |7 t) Y! r/ H4 u+ o% d& A4 [9 y pLight->Diffuse.b *= 0.6f;+ X6 `! w. T1 i7 L7 ^! j
pLight->Ambient.r *= 0.7f;+ r' A. f. n4 q/ ?7 a
pLight->Ambient.g *= 0.7f;8 @. z- e! i! Q7 u* v
pLight->Ambient.b *= 0.7f;
3 ?1 r) |" S* m. }) k! X }
8 I( h Z4 |$ c1 y
3 g" {: u1 e9 A5 Z, B0 ~#if __VER >= 15 // __BS_CHANGING_ENVIR
6 ], `; @* O# P* X. T! v1 h if( g_pPlayer )
4 D% |+ ^4 ?' _* F6 f+ W# I/ M$ ^ HookUpdateLight( pLight );
/ Q6 Y3 u4 o9 ?- ~#endif' {$ i9 D8 }3 }+ D- ?
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( ?! i' P& F2 l6 T
5 J# V9 Y5 U$ W' p0 q2 l/ O#ifdef __YENV
! S. {! g+ k" r- H pLight->Diffuse.r *= 1.1f;
* s: T4 c H* G" x) F pLight->Diffuse.g *= 1.1f;
- d- L7 l! u4 I+ {$ [8 q6 z1 T pLight->Diffuse.b *= 1.1f;7 I$ d6 W0 d2 D Z( S7 Q
// oˉè* ??à?
" h- P& C. r6 j: B5 j& G pLight->Specular.r = 2.0f; X7 Q% v1 D' l8 t" h
pLight->Specular.g = 2.0f;
& \9 }: t7 E! ]0 d+ C& U pLight->Specular.b = 2.0f;8 Q) o, t9 B# \ Z
// á?oˉ
: ]7 Y$ ^: S) Z' t4 Y pLight->Ambient.r *= 1.0f;' I: e2 S8 G2 q6 _
pLight->Ambient.g *= 1.0f;
% p" H& X0 z! J+ H6 \ pLight->Ambient.b *= 1.0f;, [& h% z0 Q: T
#else //__YENV
# B; r6 J! M0 C: G pLight->Diffuse.r *= 1.1f;
- R! V2 o$ Z1 `1 ] pLight->Diffuse.g *= 1.1f;/ D9 w- y# H. ]& H. J. E( O. T
pLight->Diffuse.b *= 1.1f;3 I0 q8 J$ `' @0 W
// oˉè* ??à?
" e$ G1 b# ^; T6 |( ]' C+ y: q pLight->Specular.r = 2.0f;; S4 c$ U, K4 z9 ]) w/ g
pLight->Specular.g = 2.0f;0 R& y! `) O. v, O
pLight->Specular.b = 2.0f;4 `& t* w y- m, H- |
// á?oˉ
! S! D% R& g ^) d pLight->Ambient.r *= 0.9f;* ^5 v" ^9 R, R0 S k9 h
pLight->Ambient.g *= 0.9f;1 v4 [! m3 c4 @# w
pLight->Ambient.b *= 0.9f;' p% N& u9 l% u- S" n, X. L( E- o9 v9 B
#endif //__YENV
3 F+ F9 j5 w& @8 [1 Q 4 ^2 r3 Z3 ]) e9 i6 {* {# s
memcpy( &m_light, pLight, sizeof( m_light ) );4 Z0 G1 _- Y# [( Z3 {/ W& R
8 s. e4 \# p2 s/ \5 U4 `; H$ h' E! d( B D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);8 N8 o4 S8 b, u& W' i, o8 z
D3DXMATRIX matTemp;9 J7 _- S3 Q7 L; R5 a7 w# S
static const float CONS_VAL = 3.1415926f / 180.f;
" M2 c1 B2 ~6 s6 E/ _
* r0 }$ G- z9 p. z2 R0 _* h D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);& L! ]5 C( _- r9 x. K" O2 L2 @3 T2 j
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
1 {7 p4 g. C2 S4 e* N* P4 I" ^ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
3 Y8 ], c- h- y& _4 P) _8 T pLight->Appear( m_pd3dDevice, TRUE );
; W! Z! O* W2 x$ M9 E
" A$ I7 o+ r5 }6 T2 r& H // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; e7 { m4 }% {% O/ Y4 B
// D3DXVec3Normalize(&(vecSun),&(vecSun));
( Z0 |1 \* Y) ] V // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); * q& R5 g. y" x1 Z# Q
0 [* Z6 a; @7 v0 T5 ]3 D
DWORD dwR, dwG, dwB;% ]/ j4 g/ M+ u' u! K4 Y! f1 B2 b
dwR = (DWORD)( pLight->Ambient.r * 255 );6 b: h$ F% i1 i( |
dwG = (DWORD)( pLight->Ambient.g * 255 );
0 B9 D0 c: r: v: @! B. K dwB = (DWORD)( pLight->Ambient.b * 255 );4 c i3 }: m8 `* P3 e! \! H$ ~
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); & J% P6 X% x# I* \+ C
}: U3 _3 c4 ?/ V' U/ w
}
( b! {, C# m5 m8 f0 O& f' _# o6 W+ r3 Y; l
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );2 @' k3 [/ k- H) R+ 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) );. ]5 }# E" ^, s. O( c0 Q, ^
::SetLight( bLight );- {/ s& @. O. V0 O s4 r6 P
9 d5 o7 c3 D4 R' ?0 c: c // ±ao? ?D?í???ó á¤à? ; K) a$ F4 c. G
m_pd3dDevice->SetMaterial( &m_baseMaterial );
: ~$ V- Y% e1 ^3 { " \9 A: a1 i6 S9 P5 f. b# J
#endif // not WORLDSERVER
+ E$ R0 v3 Z: K+ s& a' t* Z}( N% R7 R9 w3 x7 O
并更换
2 ~* Z" k4 n8 _( tCode:; q3 [) P0 i: k# y
__FLYFF_INITPAGE_EXT- i9 ]2 {% }* v0 `7 K6 X$ _7 U
定义# @. W2 ]0 p! Z: n9 l1 M! B& P
/ Z7 P6 F" U6 W- \
t: k4 q7 d" j2 J$ b: z
( y6 Z6 ~ G+ ^0 Q# g
2 d# X- K2 H6 z; r现在终于删除我的狗屁加速...
/ S, U, x3 d# c0 x+ D% m; ]( ?- O9 W! p$ e* L* ~' d; A
: @$ s8 Q/ N' p1 {
* t* _# x; A1 d. \- F2 t* z5 c( i! z |
|