|
|
食品车:! w# I. C" k( B3 H3 b. E
尾翼:2 X7 ^8 A9 H. A
$ y" h2 Z+ G1 A @* e' }代码:
$ Q* L3 G _1 w9 e$ K' |, vCWndAutoFood::CWndAutoFood()
# t F0 k& i$ b{
7 }6 _3 g# p3 ^7 a- l: b m_pItemElem = NULL;% c: Z- o1 r% t ?
m_pTexture = NULL;% A/ r0 _3 C" }' N& ~% s: V: I
bStart = FALSE;
" t* O, s' U0 @+ q& o}4 T. i+ R& n5 a( m6 X. ^ a9 h" @! q$ I
1 i. R2 c) Z4 v0 c* i9 L6 `
CWndAutoFood::~CWndAutoFood()
: {8 r; k' u' |{) Y2 g" c+ h/ c; X$ K0 M4 ]
AfxMessageBox( "AutoFood ist gestorben " );
9 z. @- g Z+ `; a+ p}
2 J3 t. c- Q: ]) G2 W) U' @( m; GBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
. H+ v7 P! Z1 Z$ |- a{- G3 Z" X" `+ O+ m
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );5 H$ y e' b* D, {
}
P. {4 y. o _" }4 h7 {) a3 j8 [) v
' H7 c3 W! j% D( gBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
3 d! @- p6 ~5 ^: e# j8 t{1 d+ h" l) n1 H" |
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 o. P1 M# r! ]
CRect rect = pWndCtrl->rect;
7 C$ h! a0 N6 y4 M% k8 C7 H if( rect && rect.PtInRect( point ) )
# U8 Z* P V' S5 C {0 @4 P9 R# C% \. |& _6 Q2 r. Y
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );; r8 I( L; h) n% K- N
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )( u6 H: B% V/ w) p, h
{6 w# v* z% F" N2 i5 i' g2 B- l
if( m_pItemElem ), h4 ^. y+ A: d4 V
{% P- h( m! K, |% T* G
m_pItemElem = NULL;
! h* c/ g% i+ S9 Q1 c; h }
1 c. [5 ?. k9 Q' F9 ?9 T _ m_pItemElem = pItemElem;& Q* k: r r. z: @; m2 h4 E
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );6 @, }" _# N; l6 I6 M- f: F% K
}else{$ o: T# {+ Q# Q2 G7 B1 Q
SetForbid( TRUE );
; K L! ?3 |. a }
/ @+ l# o! L: v; n' m }else{0 h ^, `1 q3 u" C: h- `
SetForbid( TRUE );: f4 S3 J0 m. n2 }) U- a
}
; j3 {% t @! z# K( n6 G \: R return TRUE;
* G/ e. s, ^0 _, s& Z% b: j}* h6 z( f+ U: J9 J
" W2 r+ |& ]+ R2 S
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
9 \" d& Z R, p3 ~4 z* T# V{
# n! A$ j, q) H0 N7 M switch( nID )
9 g o( u0 C: Y+ ?: Q {6 f+ ~, l+ W4 f: t
case WIDC_BUTTON3:" J3 [: i1 \6 G3 B. k6 g
{
0 e# L6 W, Q/ p Z& l9 j( e& a bStart = TRUE;
1 v7 k$ W4 g4 T( D3 X- v$ x break;# {9 t5 X6 j( {. G
}
3 T" x+ N- |; o6 ?0 j" I case WIDC_BUTTON4:
5 o5 c7 J/ N7 w0 z+ j7 h5 A {
" o; c/ E* m5 m" n6 s. |9 Y' g+ Q1 f1 p bStart = FALSE;
4 U9 |7 H: W" h( k# o0 s break;
7 f! h ]; s5 f" {% W7 Q }
. Z7 h1 ~! v' E2 Z* [, r }
& R+ S0 [7 v; b3 Y return CWndNeuz::OnChildNotify( message, nID, pLResult );
: n+ c2 Z+ {6 ^! q7 S$ O} " v2 _3 N d! Y. `! F
void CWndAutoFood::OnDraw( C2DRender* p2DRender )$ Y6 h) u- e2 A& o4 o+ d
{2 h) F; i! ~8 A5 [) x
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );1 `/ D* k5 i/ _
if( bStart || !m_pItemElem )
1 Z7 c' S; @2 |6 C {% f/ x0 W1 D2 N2 Q" [
pBtn->EnableWindow( FALSE );
/ l, |* y" d- ]3 _; y+ Y }else
7 v2 Y" ^- i1 n7 d7 s# o pBtn->EnableWindow( TRUE ); w* V+ Y* ?/ N5 M) `! c+ H
if( m_pTexture )8 V$ ^0 R+ b' w1 H' E7 J6 p: K, M
{8 y; s! R5 |2 K0 x7 Q( s I
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
" \; ~. o; @8 g2 g2 q% t2 w- ~4 s; _ if( wndCtrl && wndCtrl->rect )9 e4 e4 {( h+ v5 y
{
3 o4 i8 r; t4 H* }9 H) Q* B* a m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );; S! d s9 ?9 ]1 P7 K2 }
}1 A/ \% i& ~. d3 x
}
- u, K9 c. i7 \. S" f8 t}+ t4 c; x% ~" s
4 R% @8 s8 R( t M2 y' `! BBOOL CWndAutoFood: rocess()8 @, j; M1 H* L! N/ W* y/ q% h: Y. `
{
% r1 P+ A! F+ M8 C if( bStart )- k ?: T: I1 P! f2 y
{
1 `9 a. C( ]* v0 g" ~- I if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
* @+ ^! Y" O& F; z8 n/ L {; b- p k: L; {( q
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
, u3 W- N8 M. K3 U | g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );, O% z8 V r' N0 l" m
}else{
$ ^) Z4 [0 ~: ], G$ N bStart = FALSE;
# k2 q9 Z" n3 ]3 a7 J m_pItemElem = NULL;
# k' v5 Q+ F0 H6 v }; k: {7 H8 k' x
}
0 \$ v9 x$ I u" ~" L- O+ l2 I- K return TRUE;5 R/ G% T0 e: S w& q0 }; j
}
+ B7 m+ N3 I4 r7 L6 E! s! {9 ^* D9 f+ g0 @2 J- z: J6 l9 k
登录视频废话:# G* r0 A$ V) p# R: v7 V( \- D
尾翼:5 x9 i/ G$ }5 d
6 x, @6 u3 A& T b. u: ~7 b代码:
& C+ o% n) e. U }1 S2 p: m
) X9 b5 t m# t# Dvoid CWorld::SetLight( BOOL bLight )2 \2 [! b5 c- V
durch
6 q3 W- r- a' K2 ?4 RCode:
( ~4 X* ?7 x" t0 ]void CWorld::SetLight( BOOL bLight )" N7 \$ i$ W" b' q9 m6 c6 ?
{
; w, b0 t1 I2 H Y5 ^ //ACE("SetLight %d \n", bLight);
- ^8 t* N$ u% g/ v $ G$ p E. A& V2 U* e% w; z6 o
#ifndef __WORLDSERVER $ c' ]) f& {7 g7 I: U4 L
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* |7 }) D G/ K2 ^) [; W CLight* pLight = NULL;
/ ~+ `9 p. e* n. {9 d T4 _' h: ~6 F. W- g- {3 x
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );4 p0 m( Q; k- O- P4 T" X* x
) Q/ K1 e, ^3 t! t3 Y! {' L6 G pLight = GetLight( "direction" );
0 y) L0 e. |, `7 m: s+ M. z7 A9 ^! m1 z8 j. B- I9 m
#if __VER >= 15 // __BS_CHANGING_ENVIR
- M% Q. E) D8 D9 f, m' K+ b8 K; m! ? if( g_pPlayer ){) u, [4 P# |9 }7 w) [
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
+ p( n' ~& J/ O4 \4 n2 ] if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
, t9 h+ i" Z+ X; X5 r, }3 r& D {
. s, |, M$ D8 j if( pLight )
4 z$ c6 M% a O; G0 K {5 ]' g; f6 x1 \' k$ q/ B! q0 \
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];. g1 Q+ U7 \1 @1 a( x
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];5 N! P4 ~: F* m" d1 j2 Q+ ~
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];1 x5 f6 E' b% h; H3 A, C9 M
0 X5 u6 M0 V3 z' v
pLight->Specular.r = 2.0f;& s" h0 _. K" e& |( w _. H
pLight->Specular.g = 2.0f;5 `8 K# h8 Z4 l" a( I% P
pLight->Specular.b = 2.0f;
) S) c2 ~# t5 L3 q/ R
* ?9 q! D5 o8 o- `6 q; ~' b pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
, F, G5 a% y1 z2 s: |$ |5 p0 ] pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
$ b) o2 s2 U: x/ o pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
+ ~. W4 \* b5 ^ ! j" x2 l- J; U' E( d c
HookUpdateLight( pLight );
7 }+ o* q- Y# Z' r& J% f! n( r
7 m& ~& z3 s6 c2 P9 G" |1 k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );$ g; u" J C% p; G; [/ | N" H
% g8 g. H# v5 A4 y
pLight->Diffuse.r *= 1.2f;
5 J* x0 {; N, x, Z pLight->Diffuse.g *= 1.2f; B$ a6 h. w6 r: g
pLight->Diffuse.b *= 1.2f;
) r+ h! h+ s$ {6 e
. _% t) O7 |" C+ y& s% V6 V* l pLight->Ambient.r *= 0.8f;2 x2 t0 J/ r5 T. T
pLight->Ambient.g *= 0.8f;
: P" O; _% x) e pLight->Ambient.b *= 0.8f;
/ |. S7 t4 y: [7 a( s- N/ o 8 ]7 Q% Z6 u, U: f. E# g
memcpy( &m_light, pLight, sizeof( m_light ) );7 n2 S% l# a; v$ }* c( _/ Q
* H" B: s0 t4 k
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
4 A, u3 T5 e# t. a, J7 a" c D3DXVec3Normalize(&(vecSun),&(vecSun));- u$ L% c U: w( U; A
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ ^$ V! y6 X- V. d* Z2 A' M4 { pLight->Appear( m_pd3dDevice, TRUE );! g4 u- Q: Y& m
& M4 \/ i# X; i8 K) V h; e DWORD dwR, dwG, dwB;: b0 E( Z! @+ j+ J, U
dwR = (DWORD)( pLight->Ambient.r * 255 );. t4 w! p7 j0 h; a4 o
dwG = (DWORD)( pLight->Ambient.g * 255 );
, `& I9 K: z9 A4 k$ V7 `; v9 r dwB = (DWORD)( pLight->Ambient.b * 255 );
9 K8 Y0 ^+ w# M8 N! ?5 J7 E+ _1 ^7 d dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );2 M& h' U) x/ y o I" [
}
; @, r1 z/ h- K8 r1 V; j a }: z( u( V/ j: w; S
}
& h- t8 o }4 p7 b4 r+ ` else9 L5 h0 D4 \+ U0 w. C% V
#endif $ w) T5 Q; g' [5 y2 e6 y% M- v; B
D/ z8 v/ V, ]9 d5 ]) D {0 d
if( m_bIsIndoor )7 N) x9 X1 }# j+ Z4 V3 N0 M
{+ D! U! k a4 B
if( pLight )
/ s# S8 ?, k/ C G- K { , f# m9 k8 c7 @) p
// à??μ oˉè* 3 }# L& a% U6 E0 @" v
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
) Z! f8 J! C/ F4 ]* {1 |, c pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
* |+ h3 P" u2 n" R1 Y pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;. j# L6 k) K$ ]% v; ~- ?
8 z3 \ i8 \) C& N R D) s1 O" J& J/ S // oˉè* ??à? ) ?9 Q- \# n5 L$ k0 t4 g/ S1 `
pLight->Specular.r = 1.0f;" C+ u" @( S& u# ]0 d
pLight->Specular.g = 1.0f;
: ]4 w- V* A& F pLight->Specular.b = 1.0f;
6 G1 B3 e: t- Q& l // àü?? oˉè* ; l; F& s) C$ I" A
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
4 y1 A7 w( h9 H0 D* |5 e7 ` pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
" o" ?* x8 t D) \! Y9 q$ G" Q pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;+ Q0 C( l4 b4 X7 Z7 v* Q8 R. e
5 C( T, L" ` j, |% D3 I3 t
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
1 N7 ?+ x* [/ m* X7 Y6 ^/ `+ N8 B {
7 ?0 Q# Y9 _7 o9 c0 s pLight->Diffuse.r *= 0.6f; H" g1 w0 F8 _; M% N
pLight->Diffuse.g *= 0.6f;
3 P: f2 H9 `) Q+ ^& [ pLight->Diffuse.b *= 0.6f;
1 L% [- s7 i/ ]; K3 i pLight->Ambient.r *= 0.7f;) c4 A \3 X7 w# [/ d4 E! N
pLight->Ambient.g *= 0.7f;1 e4 ?, q1 j) ?+ M# _7 G
pLight->Ambient.b *= 0.7f;0 {1 x/ t6 [. i- Z' u
}0 j7 x( P. d- G# t3 t$ c7 x |' P
1 U2 o0 u# H8 L
#if __VER >= 15 // __BS_CHANGING_ENVIR
2 a) b, d e2 Z1 T+ S' n* Y if( g_pPlayer )) V* L0 Y- b, {) {! A# M
HookUpdateLight( pLight );% P. |4 F& G6 d( z q* B3 H5 _
#endif9 L) e, ~% c8 g. M. A& n3 k5 l' j
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 Q. { K# r1 V" C1 q6 E2 v4 y
6 K# M3 y9 ?. j) H' |6 M2 O pLight->Diffuse.r += 0.1f;
+ J8 `4 K) {/ S& a pLight->Diffuse.g += 0.1f;
" K& L0 ^9 s. ^7 a% h- R pLight->Diffuse.b += 0.1f;
. Z: n1 F: t! `) L$ L' u8 Q0 ^ // oˉè* ??à?
. w! X; p/ _, s( j pLight->Specular.r = 2.0f;5 s o& Q0 r; `! R
pLight->Specular.g = 2.0f;" J# n+ T5 k% D4 T0 z
pLight->Specular.b = 2.0f;
* @4 p* |8 H9 n) E# m- r // á?oˉ
. S2 h( r1 K" e* z pLight->Ambient.r *= 0.9f;
1 y5 T% S4 T: d' F* s+ P pLight->Ambient.g *= 0.9f;
+ j& o; k* _+ `8 ]% r: i9 x/ } pLight->Ambient.b *= 0.9f;
* k! a; m0 s6 n3 T
( H0 ^( \) I" p; K8 z3 ^ memcpy( &m_light, pLight, sizeof( m_light ) );' x2 W" _% R" H( B1 X' O: a( @
n' t/ i; p8 T
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
: M6 |# c* H! E! G) { pLight->Appear( m_pd3dDevice, TRUE );2 x- W) [1 L4 i% m0 v
9 c1 p" y: z' h3 c/ S; k1 Y2 n: N8 |
DWORD dwR, dwG, dwB;! Y9 j, e9 @8 p, I4 S
dwR = (DWORD)( pLight->Ambient.r * 255 );2 h; h! P" A# I- l- d: ?' q; E' P
dwG = (DWORD)( pLight->Ambient.g * 255 );/ x, S7 T+ k, B! Q1 J3 J% ~& \
dwB = (DWORD)( pLight->Ambient.b * 255 );
: K) ?# Z2 z3 d( V7 {) T% H4 I dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );2 j. t6 Q0 _ N+ w
}0 m" S$ M& K9 r: a3 ]
}. b$ l2 ?& T* h9 P
else
0 l! O# N8 F* G {# x; ]" ]. I& G! S/ F9 m
if( pLight )
: R; j1 N9 p: J9 ~0 W# K7 U5 s {
3 F' f: p5 D2 n z; N, N/ ?, c! S/ z
int nHour = 8, nMin = 0;$ a) g+ o& {( [" a$ s' R
#ifdef __CLIENT% y; l& E2 ~ J3 d; w
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
0 n" {& Z" ^/ z- y2 g/ \& I1 x nHour = g_GameTimer.m_nHour;
x, p a2 C1 ~# u7 X; t nMin = g_GameTimer.m_nMin ;
) ^: x+ {$ n- \ u( [ #else! u8 `5 ~# l- M/ U# h
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
, d3 o5 o' u! i9 I" A. a. S if( m_nLightType == 1 )0 m* I$ f$ E" P1 ?
nHour = m_nLightHour;6 u) J5 [$ }. }
#endif; ~$ P9 R3 J/ u, {) p1 |
nHour--;
' ^1 |: n0 N% i/ `& D. l- @0 i if( nHour < 0 ) nHour = 0;
* j4 L6 k6 g D* g4 e% l) l8 w if( nHour > 23 ) nHour = 23;* A7 u6 K, A& }6 [' c; L q* r
9 o9 S! o# X4 b- d: `) Q' P# C //if( m_bFixedHour )5 @0 h6 C+ P& r2 Y) U6 W9 q7 L
// nHour = m_nFixedHour, nMin = 0;
3 F$ z4 ?+ G! y LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];+ ]7 |% \2 t3 k' X- J: j
LIGHTCOLOR lightColor = m_k24Light[ nHour ];5 d: {4 O! v' }1 C
5 p0 V. y1 l' r- c2 [0 S' K //m_lightColor = lightColorPrv;
3 R, D" `6 E }7 ]+ p9 N+ q, o( _ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 g. Q2 o U, U1 ~ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
% D3 B" V2 T4 T- Y' P7 z& N* w lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;* A- z+ F# k- t% e2 s
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 I% F- P2 }8 {; k4 ^3 {7 h lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;0 @5 C0 y' L' E$ x9 i6 A6 ?6 R
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
5 h3 R7 q* P/ f& m$ g // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)$ [* t7 ]) m$ d7 s( c
6 W. g- Z0 \2 H% W8 d& c8 f4 z0 C // à??μ oˉè* ( [; ]% [7 J s( f" Y+ c
pLight->Diffuse.r = lightColorPrv.r1;2 }! X# S ?) p. L
pLight->Diffuse.g = lightColorPrv.g1;' S/ H; x- L7 R% T
pLight->Diffuse.b = lightColorPrv.b1;
! X& \5 ~& s0 v! k+ @7 c // oˉè* ??à? : l/ R$ j1 S. l& s/ y
pLight->Specular.r = 1.0f;6 n6 {. J; l! V/ E: S
pLight->Specular.g = 1.0f;
" y3 U$ k5 F! L( I4 K8 F+ Q pLight->Specular.b = 1.0f;
, D8 x( R5 }1 s1 X/ k7 k2 O // àü?? oˉè*
* L2 v+ G+ W7 W7 ^* D" m1 ?# K+ s pLight->Ambient.r = lightColorPrv.r2;# I% F" o/ c. g: U n1 q' z
pLight->Ambient.g = lightColorPrv.g2;
i$ z. e# H" B R pLight->Ambient.b = lightColorPrv.b2;' ~7 O0 L& _& x9 p1 a
' R8 K0 i! `6 W' S if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.7 Z/ D( G' t% Z( E: n8 h
{. _; O. ]9 I W' G
pLight->Diffuse.r *= 0.6f;
1 u9 u! N: p& H" A! o pLight->Diffuse.g *= 0.6f;
! @ Z9 L- N$ K" K9 C pLight->Diffuse.b *= 0.6f;
# R: [6 ^- o* @3 m: | pLight->Ambient.r *= 0.7f;* _. h* E, G; U- N$ z4 @
pLight->Ambient.g *= 0.7f;/ p1 p4 D$ I9 F% B
pLight->Ambient.b *= 0.7f;
! ~2 u9 |6 |* _4 B! a }6 s8 I! j+ S$ M3 z3 O8 E& a9 W: e
4 x! r3 m( Z3 t) Z. k#if __VER >= 15 // __BS_CHANGING_ENVIR% D6 b3 j3 _% Q5 N
if( g_pPlayer )8 j3 u. o8 D2 D0 r- C
HookUpdateLight( pLight );
, k4 A5 d0 x0 S( l#endif
' W( F. i0 K6 h. K2 `( p memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- R' ~1 m; A7 ~1 e1 P3 h3 c& h1 @8 T) G9 g$ A" [
#ifdef __YENV
. `$ n: {4 C2 a pLight->Diffuse.r *= 1.1f;
; L L1 g. U8 ` pLight->Diffuse.g *= 1.1f;
# I: a1 \2 H" l pLight->Diffuse.b *= 1.1f;
$ C( c* M0 g! k0 ~8 Q' p // oˉè* ??à? . A' I$ L3 j: b& W5 I1 H- ~
pLight->Specular.r = 2.0f;0 V8 M. `( a8 N& O
pLight->Specular.g = 2.0f;
0 t! T9 Q: H$ }; Z9 m( E pLight->Specular.b = 2.0f;1 V& B% M/ {) M% J6 [; f3 F3 Z k# o
// á?oˉ
! s/ I) f7 f1 k2 a; ~ v5 w; v pLight->Ambient.r *= 1.0f;! k b4 Y, s3 g7 o4 @1 z( }7 W/ K8 s
pLight->Ambient.g *= 1.0f;
9 i% l0 n% B3 |$ c( t v2 U pLight->Ambient.b *= 1.0f;) Q% O; p( u4 D+ u
#else //__YENV
/ x1 t3 ^: ^4 q2 H. |, t1 t" p2 w pLight->Diffuse.r *= 1.1f;8 \9 a V8 u- g5 @3 K$ q& t; q
pLight->Diffuse.g *= 1.1f;
. W( W: F. Q$ W" i6 Q pLight->Diffuse.b *= 1.1f;; T8 M0 k7 {3 K: @; V4 c9 A P4 O
// oˉè* ??à? ! y7 M7 k u: D8 x9 x0 t8 J& i$ i
pLight->Specular.r = 2.0f;% K! H Z5 T6 Q
pLight->Specular.g = 2.0f;
! m+ ?) H/ w2 x+ c+ x; _! a pLight->Specular.b = 2.0f;
8 {* S, u9 f$ O; s // á?oˉ 7 N1 D- M- G- k5 D: e' c- U
pLight->Ambient.r *= 0.9f;
6 I. J2 Q2 P2 X/ J4 p+ {) I* { pLight->Ambient.g *= 0.9f;. p1 T# q9 n& W8 A4 R2 T2 S' }
pLight->Ambient.b *= 0.9f;6 f9 q9 {# i: F
#endif //__YENV
9 Z/ W! [8 o" l 4 G6 b! G9 J3 J& @& p
memcpy( &m_light, pLight, sizeof( m_light ) );/ I7 B) Q3 D- e, o
1 n+ q& a1 C) Q, n
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
, @! v' \3 V5 q& N D3DXMATRIX matTemp;
1 ]+ K: d. w0 n$ p. U2 _3 l* W: t$ i static const float CONS_VAL = 3.1415926f / 180.f;, d9 n+ L5 n8 a# E0 F
) }+ U4 _, o+ d* g+ M
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);/ [$ N2 W( T8 |
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
# Y. B3 _$ a Y* H, W0 M, ^ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
4 P6 i& P7 N# a( D5 j+ I pLight->Appear( m_pd3dDevice, TRUE );
- o3 B/ t* D* a: h: V, c
: \, L% h7 [* g6 R) z/ F // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);# t0 j4 o, i& {0 Y
// D3DXVec3Normalize(&(vecSun),&(vecSun));
6 X: I& U2 ?% |% H) { // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
' c% m* x1 w$ U! |2 ^( z/ a7 x
, q# n( z3 m" R2 \" V2 [( u0 N/ `3 H DWORD dwR, dwG, dwB;6 G5 |" w2 Z; a6 V
dwR = (DWORD)( pLight->Ambient.r * 255 );
( T1 D+ Y ~& K" p- s) [ dwG = (DWORD)( pLight->Ambient.g * 255 );* I& ^3 b8 \1 `/ i: b W
dwB = (DWORD)( pLight->Ambient.b * 255 );# {. K) a0 Q5 S0 \& b5 `* ~6 x
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ' O+ h- D. ]( j" v9 o& _
}5 M7 V& _5 S" C0 ?% I
}
6 D/ Y' I' I5 C5 H& d$ o5 F6 N+ Q/ ]* K h
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );* e# m' H" f! v& d/ e5 v
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) );: i) i5 @. U) K: o% J6 w6 m
::SetLight( bLight );
4 a. h- |3 A4 {" Q
& ? T, D" N5 J% W; L // ±ao? ?D?í???ó á¤à?
! \8 X' E* T. I$ Q' W _; h3 Z m_pd3dDevice->SetMaterial( &m_baseMaterial );
+ j2 S( R/ Z, B& E' J! S: z8 A0 e) _1 z
' Z6 Q. G+ r k k" }/ p: Y1 ]#endif // not WORLDSERVER
/ q9 @/ [) U3 U}
. m( H$ m! u; Z/ b并更换0 N `; R- d2 ^9 `" f% J4 u
Code:+ x) n E7 K7 H: [
__FLYFF_INITPAGE_EXT; Z; N/ D4 D6 f7 a9 y3 _/ E3 G/ T
定义
_/ @9 o/ n: ~! Y
# v! I* ?: c' f) v3 h8 z9 p2 D: C
" C& c9 k$ y# c h Z% ~$ X( E7 X3 w7 D3 q
现在终于删除我的狗屁加速...3 ]8 l0 N) j. ~+ O0 b$ Y0 r4 E
. w4 E, p* R* s) j) ]
7 x/ r8 Z; y2 A* w3 O, ?' W' N' z
8 S! o" u* R1 }, Q2 t) p9 W7 s |
|