|
|
食品车:* r' `4 T) p5 v) ^( K
尾翼:, \9 ^1 {; w# P9 H
6 i. m( Y: H8 }, t: U/ D4 d) ?
代码:4 y+ H: N- a$ m A
CWndAutoFood::CWndAutoFood()# l0 m; m0 p, J2 c0 i' `, I G9 P' y
{
- [* d1 a& ~) r2 J F m_pItemElem = NULL;
# E- U4 t' p# V6 u; Z3 W) h m_pTexture = NULL;
7 m9 e/ p! [1 G: g+ A; A3 b) s bStart = FALSE;
. ]# _: l: r4 q+ u2 z; C}- d0 e; d9 @9 H# _/ h- X
$ t- w. ]. C) F1 ?3 ]2 g, rCWndAutoFood::~CWndAutoFood()
. _& i3 H+ A1 l5 b A1 D{
, k# H# z$ n+ W- O AfxMessageBox( "AutoFood ist gestorben " );- E* Q t: w M7 }8 Q' v
}) Y; B5 L) Y/ @8 {
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
! W$ ?8 }* d" K. Y @! R+ X{$ P! {+ J2 _/ E$ Q
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
! K3 h1 ~" {, H* e; A2 t: A}
+ o$ d$ h. M8 _
( q- n1 B; `9 |9 O0 t3 FBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
" Y8 n( q4 | R1 E$ ~{3 j8 }- R6 U9 Q
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, ^' X9 I! y" X$ v a/ y, Q CRect rect = pWndCtrl->rect;
: Z. }9 G T3 ]2 _9 |& V if( rect && rect.PtInRect( point ) )" i A: ^" t: u, L+ B5 N$ M
{$ Z! r& D: u9 K( {" m6 ^
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );9 e( U: V1 o/ l4 X7 ~6 y) L
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )1 ?. Y4 [' Y" O s" q% m9 a
{
0 S6 W3 Y6 i! p/ K* k, ~% e if( m_pItemElem )6 E |- V" |, a: B' x1 j8 E
{, C: r) `( e4 c3 r! n2 {9 e
m_pItemElem = NULL;6 b# }4 X$ l, P0 K {& Z, \
}$ r2 j' }7 }; u" ~# L3 {+ w
m_pItemElem = pItemElem;
/ r$ x; l8 @: N0 I- ]8 E m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );# P' q/ h/ `4 d9 [+ A
}else{
. G; F" i9 N$ k* E4 y* N0 D2 _ SetForbid( TRUE );
$ z) `/ a* k4 i' n }
- a0 \: }; w; I L }else{
* l% {& {$ ^3 z4 y4 u SetForbid( TRUE );6 @+ P% t) ?4 h' B1 u6 Z
}
5 ~/ ]* l( N% K2 @) S3 m return TRUE;
7 _0 b Z# Q& w$ l; o$ t, S$ Z% r}' S$ P5 \* m1 Z# x0 Z
- L$ h+ J& u2 w3 p
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
: G, E$ p1 ^) N; O: g" ]{
) N2 F5 r/ w! a0 u switch( nID )
" e& ]- ~( z8 K {# G: `5 N, h0 [4 r0 e
case WIDC_BUTTON3:
8 D& r G4 X K: Q5 X7 p) z {3 p' S& K5 o, Z, {* ~# A, U
bStart = TRUE;( B+ y; c4 d, K: d0 V
break;
, M! H6 \% Q4 k' ]- M }" m7 b4 s9 ?' [. i
case WIDC_BUTTON4:" v1 U5 W! w/ M1 c h7 s& C; e
{! C' }1 { l. Z" Q
bStart = FALSE;
6 i3 d' h. l5 }5 x: [3 z R break;
+ W+ t1 Q* F# b, y+ F1 r }
2 J- c% H0 I' u/ N) \) j }
: J/ r8 q2 b5 x7 r* _0 h' v; J return CWndNeuz::OnChildNotify( message, nID, pLResult );) O8 p; H1 H1 d5 B0 l* W1 i4 K
}
: x9 g! ?7 m3 y% }4 T. jvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )* r% B3 ?$ ^" Y
{2 i$ t8 z; I8 r( x# E* \& {
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );5 ^3 s$ q5 p9 G; P& }
if( bStart || !m_pItemElem )
7 T( i7 H( `! c {6 }9 ^) z! F. R4 N
pBtn->EnableWindow( FALSE );$ {4 }5 q M/ t P! `! C. S/ n, }8 v
}else
$ h4 u. T6 W1 v$ h pBtn->EnableWindow( TRUE );
* z/ N- D, ]) ]( H( E$ u" m2 w l if( m_pTexture ) Y8 o/ U; h- X2 b
{
4 Z7 t7 r: @& X2 N5 ?2 P LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' H4 s. I) r9 J% m: K z7 a$ A if( wndCtrl && wndCtrl->rect )
' S- q/ B8 t: @% {' }5 l% p) o {3 D; G' K% [4 Y0 k6 P/ ~
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );2 i9 Q9 l M$ ^
}4 ]! o. N8 ?- A8 A" |& G* F
}
" u+ J& L- Y% ~ f ~: c: @8 l}
. w" b% c d$ B c/ n j# @5 z
8 Y0 Y8 J% N2 E# D3 \BOOL CWndAutoFood: rocess()/ {; Q$ K7 G8 t2 y
{
3 @; z- G' i" N5 q- Z1 h if( bStart )
3 M( A& V5 y5 d3 m {( ~- b' ?1 p# i5 d
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
7 m# I' Y8 \1 I8 |2 }, H$ h {+ S1 Z: d7 p( i3 ^# c
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )1 w" K( M: ^, G+ e; F- g- Y$ c1 a4 a
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
1 d* p9 v( ]4 o; z. G, N, V }else{" v% g) }; g, s5 g% U& V d% {
bStart = FALSE;
7 e4 Y4 V) H$ e m_pItemElem = NULL;! J* p; R# F$ U0 x, `6 W. J
}
6 P5 n, R6 I* Z8 S" C: p7 H1 T8 i }' |+ w+ f. O4 y4 V$ }7 o
return TRUE;
. N9 \" Z ~0 w. |1 I9 k/ F}2 i& O, W1 d5 o/ [
* f0 }+ i; `' x) m( z3 @- s, }登录视频废话:( \' u4 [ y3 A4 N7 Q
尾翼:
* f% ^( e4 z/ E: e& ?# P, @ I: h, y# y: N
代码:
' i) w* P5 N% M7 i$ b7 i5 r2 U( n% ]- S9 f5 {
void CWorld::SetLight( BOOL bLight )
4 x# K; h2 o( v e- z+ p& a7 Vdurch0 m6 T- p" }% |
Code:; k2 W S7 ^+ u- u+ j9 R& _; D0 J0 g
void CWorld::SetLight( BOOL bLight )% Z5 Z1 l% ]0 ?5 {* w5 y7 P
{% ?+ q" S. X' }6 F
//ACE("SetLight %d \n", bLight);9 J; H% {7 \! e6 L8 ~
) W- ]8 V; Q9 d8 H l/ D#ifndef __WORLDSERVER ' e( g5 t3 ]- D, K+ m2 N+ i6 T
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
- q+ \8 t3 t. h" l, A- E. k CLight* pLight = NULL;/ ~+ f; l7 I0 K' @+ W) a
* ^1 i4 s+ G) Q; t2 }
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
& J4 v$ q) s" h$ ?3 Z6 x+ r
9 T+ x; p5 s, P1 f& u3 J) f6 F pLight = GetLight( "direction" );
! m, n/ e2 v) d% M8 F( ?
7 q2 u& n" `( c- Y# N#if __VER >= 15 // __BS_CHANGING_ENVIR
' {4 s# _- ~, x% ]6 |) @ if( g_pPlayer ){5 q* t6 D' L' B
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
* H* k) [6 D. O; }- m! p4 Z/ L if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
F. `' e8 ?* J5 H6 U' b# {2 w {
1 A7 v2 C6 C! k if( pLight )
. N% ]- {5 a1 L! n" t {
5 Q( v; X, x+ V9 e2 l0 k2 ^ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];0 Y4 j4 g6 d! P0 o" w" e5 _* C
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];2 I: S: j9 R8 H' L
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];, }0 {* |' n$ H+ V' G |
! l1 O: `0 v* h1 R( @ pLight->Specular.r = 2.0f;
" j( ^6 p9 n- g4 } pLight->Specular.g = 2.0f;% T* r- d/ _- J, U; ?7 V
pLight->Specular.b = 2.0f;/ O3 a7 g- r2 x3 [! k
- t9 X8 Q% A# W* t+ j9 J pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];3 u+ l. \3 {! S6 L' x) |4 {, |+ v
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
& h% Y& N2 ~% M pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];/ {( `8 k. W- I4 o9 X
, N4 ~3 ^2 S" M0 l$ E3 {
HookUpdateLight( pLight ); 7 r+ E1 O/ P* |9 }/ X
2 s) v8 h7 i( B n; A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );( ?0 l- W# d* N* O3 y( M0 y
1 ^( s Y+ y/ |0 r pLight->Diffuse.r *= 1.2f;2 x' J, f% g) ^, V/ R, \+ P% M
pLight->Diffuse.g *= 1.2f;
) ^* @2 w; {, A+ ?- U8 C# f pLight->Diffuse.b *= 1.2f;8 X- ]2 e) U8 x* I1 k) p4 R
- k. y3 ~! M4 \: P
pLight->Ambient.r *= 0.8f;
m4 f8 `5 M2 N$ C$ }# o7 p pLight->Ambient.g *= 0.8f;. h- M' G/ w9 Z6 x" L
pLight->Ambient.b *= 0.8f;& Z. _' z: ]. |+ V8 c
$ ]$ Y* K$ J$ p: k! @0 H
memcpy( &m_light, pLight, sizeof( m_light ) );
5 m" v: b1 _0 |; |+ r
5 P0 T/ S! \/ ^$ i- G! P- G! L6 J D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ [3 W/ E% V/ }3 Z2 `) \+ E D3DXVec3Normalize(&(vecSun),&(vecSun));& m8 ~, v) A U O; M: y
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
% h- W2 |" J* ?5 l) w1 b' M( q pLight->Appear( m_pd3dDevice, TRUE );) B$ b' O' a4 I5 f9 ~: m
8 n# O# m3 w3 U' K2 @5 U P
DWORD dwR, dwG, dwB;% E8 H" _0 c8 g: N" }. y0 ~" O4 y
dwR = (DWORD)( pLight->Ambient.r * 255 );" e1 d9 A/ j0 P/ U
dwG = (DWORD)( pLight->Ambient.g * 255 );* c! t4 t6 R8 T+ C
dwB = (DWORD)( pLight->Ambient.b * 255 );
! N% {0 N8 K8 S5 p5 | dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 ?/ ]$ c& ~2 N# Q, i }) d% [2 Z& N$ ]/ p
}
7 Z- K+ M% I0 V- Z }% W( V+ M. W4 ~
else
; S, ^6 x) Y5 G& I( _4 M2 b: \$ D#endif 7 T. q1 S K- v d5 |3 q
6 ~; l+ U. Z u if( m_bIsIndoor )
5 C w" N0 i: w7 R4 R# Y7 _- g {: c2 c& ~9 e6 }( j8 o }4 J2 D1 a
if( pLight )
. v9 q- S& u P! r { ! L- T9 r5 @0 u7 o
// à??μ oˉè*
$ d& K3 Q9 @6 B4 V pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
6 j6 S1 g1 e2 l! H1 | pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;( O% l2 e2 g! L4 a
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
: h) i9 z% y8 H! L: S! F) G8 G( B C# m/ T1 Q
// oˉè* ??à?
$ P4 o& u6 f1 @$ D pLight->Specular.r = 1.0f;- p2 P5 ]3 y' b9 \( U }8 [9 r
pLight->Specular.g = 1.0f;6 _' Z6 F5 d9 H' d5 T F I; R
pLight->Specular.b = 1.0f;
$ ?1 y7 [& Y) S( D/ q // àü?? oˉè* / x/ y+ y2 X+ y" U, K* G
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 W# e( N& O1 `/ R( G
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
- E7 u- ~* B( c2 O* k pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;6 G1 U$ k$ i( B0 Y
" m) X- Y B" S5 t C2 J, o8 K {
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
0 ~) \1 s2 U9 l; ]$ m( i' q& S {# y3 r- z. n: N6 O y
pLight->Diffuse.r *= 0.6f;( x; u6 c {4 Z6 T
pLight->Diffuse.g *= 0.6f;
X# q' \" Q- x, x4 e& x pLight->Diffuse.b *= 0.6f;
% k1 e6 h7 C8 l: G" H( b pLight->Ambient.r *= 0.7f;* I+ w7 s9 ^9 @9 e
pLight->Ambient.g *= 0.7f;
% S3 N9 Z* ~% \+ t' n$ L6 J) \: C pLight->Ambient.b *= 0.7f;
, q) D, D& B2 a3 Y1 x8 F }! C1 p4 i, C, t6 k9 F) y& s X
/ f1 u6 |2 h& C$ g% Z8 J& k
#if __VER >= 15 // __BS_CHANGING_ENVIR! u0 P5 N* E3 P& n9 P5 D: _8 I J( q
if( g_pPlayer )/ ~& _9 P! k1 V8 s
HookUpdateLight( pLight );7 L7 a+ p' u1 H
#endif
5 K1 k3 H! L# V7 g memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: M8 r: x& ~) E7 N( }
E! K' `% o$ ^' l pLight->Diffuse.r += 0.1f;! Z, M) ^5 l6 P- f9 ~" ~
pLight->Diffuse.g += 0.1f;
8 j+ F$ B7 r# x& R7 i0 z+ Y) b6 | pLight->Diffuse.b += 0.1f;
, Z! F& M% L( [8 I0 H: D // oˉè* ??à?
) `7 |% q" @' l: X pLight->Specular.r = 2.0f;
: _7 k! c' J( l+ ~9 n pLight->Specular.g = 2.0f;
+ F/ h1 U# {0 I' T6 i, d pLight->Specular.b = 2.0f;$ ^0 ^6 D9 h! c2 e |5 e! c5 ]
// á?oˉ v+ W, `6 @% R0 @2 P c
pLight->Ambient.r *= 0.9f;# s( Z' s) [- X: x% Q- u
pLight->Ambient.g *= 0.9f;
5 c, ]) c9 G0 k* o. U pLight->Ambient.b *= 0.9f;, q5 D/ A( g6 G4 Q9 X
5 {5 p5 f; `1 Z3 |! x; D \0 t
memcpy( &m_light, pLight, sizeof( m_light ) );
1 Q3 e' ?& ^! m/ j# r 8 j/ O4 c C% n* M/ g5 N0 ]/ j9 ^
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );9 E" y/ o5 H6 N5 y
pLight->Appear( m_pd3dDevice, TRUE );% B0 j/ v4 `% C$ V1 V
, } C1 V. `) E* Q$ f
DWORD dwR, dwG, dwB;2 n _1 g8 e2 j7 w$ _3 X
dwR = (DWORD)( pLight->Ambient.r * 255 );
4 z& Y# J* ~% B9 e0 m dwG = (DWORD)( pLight->Ambient.g * 255 );
8 \6 F# ?4 H' Q4 b; R* D dwB = (DWORD)( pLight->Ambient.b * 255 );& ?; Y' r/ Z! g0 o
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );3 G; \: A* G m- N) [
}
' {) _7 o* @ K }
8 B( ?4 X) Y+ D9 e& F4 Y" ` else
& T7 U& u- J3 t/ e" I3 E {$ S$ z9 g9 X# M, m6 ]+ Q* \
if( pLight )
# Y+ Q/ g( P2 T {; @3 a3 @8 `! v7 }- d$ V
( }# u* ]# j6 M- O int nHour = 8, nMin = 0;5 ^! N8 P1 Z1 w3 t7 i3 K7 {' W( |
#ifdef __CLIENT
) v/ i1 N5 g3 j# ^& y8 @ // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
# `, ?: H& M" y3 e* ]7 s4 V nHour = g_GameTimer.m_nHour; n& L6 t2 Y& Y {9 o0 {4 D
nMin = g_GameTimer.m_nMin ;( N1 J8 v) ^8 V5 @' b% H; i
#else
# g; z: H) Y E v5 B* N1 i6 `8 Z // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
, b0 E! e0 Y& D- W0 l1 F4 o if( m_nLightType == 1 )
t( l+ ~ s! L nHour = m_nLightHour;
% G5 H" \( O; }/ U) X5 a E #endif
q1 w* f' [" W1 R nHour--;
* [0 x' V' b9 L- S if( nHour < 0 ) nHour = 0;0 i* T d! y# N8 f9 T9 D! @% [; j
if( nHour > 23 ) nHour = 23;
W! q) T$ r, W8 q3 d
" J; Z- T' o/ g" _, B //if( m_bFixedHour )
4 X2 @) U5 A, m // nHour = m_nFixedHour, nMin = 0;
1 b3 X( n: e$ e6 y LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 y; e. W n. p* ]' m* R0 m* W. t# X
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
, z2 k1 E- m" i. B2 W
! f8 l: C: N+ Y, \6 ]- Z //m_lightColor = lightColorPrv;; `) `+ J( `5 Q
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
) _, W' K! j; S3 [4 H& m lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;$ ~: b8 @* K+ c6 k0 |* N* R9 P) A" Q* l
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
/ m: Q6 R" L" _7 J$ m' b/ Y$ ` lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;3 u" o( {9 @" e# v' _5 h
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;4 p; M K; Q: F) U6 M$ c9 L
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
. ]# H- l5 b2 X7 e9 [, Z // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
, _6 |* l$ B. Q, i
& h; C( z3 H2 U1 J; V8 T // à??μ oˉè* ; m) {; k& G: r, e8 _
pLight->Diffuse.r = lightColorPrv.r1;
: ]2 A) V% l& S$ |* p pLight->Diffuse.g = lightColorPrv.g1;
& j$ p/ ?& F" b# o3 ~; ~5 r) Y1 B pLight->Diffuse.b = lightColorPrv.b1;
& S4 A+ f @. s5 t. w. F7 U // oˉè* ??à? ! G1 ~1 k3 o" X; I( D, j
pLight->Specular.r = 1.0f;
& E( t( V) ^! ~/ A6 w- P pLight->Specular.g = 1.0f;
k+ V6 m& K% o+ X# j' k pLight->Specular.b = 1.0f;
/ f1 E- `6 f. F) [ b // àü?? oˉè* " c0 @* P, T9 n5 Y- P" Q1 ?
pLight->Ambient.r = lightColorPrv.r2;" T9 }1 t: z" M- ^3 T
pLight->Ambient.g = lightColorPrv.g2;: j5 i' G7 B! [- p+ W
pLight->Ambient.b = lightColorPrv.b2;
( K3 X8 b. P/ t7 W! b8 [! l) @( Q/ |) p7 I
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
0 `2 S) }. S2 ~; y; q" y% I" s8 h {
7 a% E9 C' N' N; S) Q3 i pLight->Diffuse.r *= 0.6f;
, z5 a+ L& p$ `+ L3 { pLight->Diffuse.g *= 0.6f;
! R/ z4 m# q0 @8 N pLight->Diffuse.b *= 0.6f;! s( D* K8 v7 P0 b, z; F# c, q
pLight->Ambient.r *= 0.7f;5 |3 g2 N9 r" l4 ?+ c
pLight->Ambient.g *= 0.7f;0 S7 P( Q$ R! x! z
pLight->Ambient.b *= 0.7f;& }0 Q+ `1 w0 D- ]8 q2 X
}/ d$ T, n; Q7 Z* {% s- K) L7 r
5 Z+ p9 w( Q8 V. g# t3 y, d#if __VER >= 15 // __BS_CHANGING_ENVIR$ _% ~2 W9 f2 A# t) n6 r
if( g_pPlayer )0 f. u' A9 f5 s- Y+ l& P6 O, N# w
HookUpdateLight( pLight ); : P! a( h) t( Y9 E$ z* j% M+ D
#endif
3 u: A1 x$ }3 l$ t- f5 g& ]0 u memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
2 I+ A- Z& ]: q9 \3 b. `9 K# Z
4 B& X& S @( D% {0 {5 v1 r#ifdef __YENV! `6 y2 ^+ e5 y, q7 P8 c/ _! S* Y
pLight->Diffuse.r *= 1.1f;
! M7 y/ J- T" e+ B pLight->Diffuse.g *= 1.1f;
( t. j; E t% f3 D( Z pLight->Diffuse.b *= 1.1f;5 n/ B& e% M2 W+ c* L3 w3 X
// oˉè* ??à?
# ^9 l8 @5 r) \( P% S: o pLight->Specular.r = 2.0f;
& Z8 t, z. g( P& X6 M( V pLight->Specular.g = 2.0f;( K: c/ y* c5 P# N
pLight->Specular.b = 2.0f;
0 _5 A) C- B3 a0 @) \6 j // á?oˉ ) e( M, J/ Z% v$ t+ }) O" E
pLight->Ambient.r *= 1.0f;6 k- T# Q% ?* z7 k1 }
pLight->Ambient.g *= 1.0f;+ U7 m+ I+ D) F7 T+ X* i. h
pLight->Ambient.b *= 1.0f;
; J& o+ k2 `7 W9 V) E#else //__YENV K6 e- [6 q. N& r* {- a
pLight->Diffuse.r *= 1.1f;
* G+ t2 a) i+ M' h, H) s pLight->Diffuse.g *= 1.1f;
) P( s+ O3 {; r, Q pLight->Diffuse.b *= 1.1f;
% e' d I' k! F/ A% H // oˉè* ??à? / V$ y- ?' h: k5 Y8 }. n9 i3 o, O# r
pLight->Specular.r = 2.0f;$ ]2 g* L1 x9 Y2 e
pLight->Specular.g = 2.0f;
* C+ }+ S: I1 Z pLight->Specular.b = 2.0f;, t( a) {9 x* d X# t
// á?oˉ
6 l" @: `7 o4 O( [$ v' r pLight->Ambient.r *= 0.9f;0 L q9 c1 u* d2 K1 C
pLight->Ambient.g *= 0.9f;
1 z9 y! e: y6 z, y3 C7 F pLight->Ambient.b *= 0.9f;
1 |$ W ?% B4 b7 {4 r+ F#endif //__YENV * H& F; f1 g' P' b- _2 L/ k
@& D% x% X) m- a& d memcpy( &m_light, pLight, sizeof( m_light ) );( G* F# u9 ^. a5 K) Q" [
: w6 K" p. |" p+ q
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
5 X+ f/ H6 Z/ Q- C D3DXMATRIX matTemp;
7 C, X1 D. |% D* A' L3 K1 c2 D) _ static const float CONS_VAL = 3.1415926f / 180.f;
% X7 ?0 A' d+ j8 a7 `) h* ~ h9 W9 f6 H4 u' y% }2 h
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);1 R7 `' f$ [+ G& ^1 }/ \" V
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
! N5 s# a1 `; V8 q4 l: Q& W pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 6 m. L: {) b/ y8 D
pLight->Appear( m_pd3dDevice, TRUE );& D5 n$ ~# s6 x1 ~5 G( W, x+ A
; f: l9 F; r1 g5 D( [ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; N& `1 g [- `8 y. C1 \+ Q
// D3DXVec3Normalize(&(vecSun),&(vecSun));2 y( H& S6 [& ]) n6 h! T1 M S' d
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); - A0 j! P# J3 e ?" j' l
2 i6 e& k2 }$ Q& u1 |' e9 f
DWORD dwR, dwG, dwB;* X9 O# O; W* W, V
dwR = (DWORD)( pLight->Ambient.r * 255 );1 C8 n3 m. W! `: T. }
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 C- Q X6 y! E3 A' Z2 R dwB = (DWORD)( pLight->Ambient.b * 255 );
7 ]: D0 u) S9 h0 F0 R dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
/ j: X( i* N; ^ }( L \! w& z: ?
}- P2 Z+ P2 f: i
; ~* M1 ?( y. J; K) q4 y9 m# }! o m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );. ` O! i6 Y; G$ ]
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) );; ^ r% y; P! U& C( ?; H
::SetLight( bLight );, X8 a9 N8 t3 ?& @
" C, \# g, n! w. C2 w; o // ±ao? ?D?í???ó á¤à? - Y: V/ _% t5 S) f0 G m1 S
m_pd3dDevice->SetMaterial( &m_baseMaterial );
$ X( q& Z9 e/ O $ I4 q* w O" o) T- b7 W$ `
#endif // not WORLDSERVER
$ P' r. g' s* Q; |. j4 a( A}
5 m1 a1 p0 d; E/ j$ n并更换: h$ `( B* R+ q" B& {6 T
Code:+ f/ F! S0 T+ a1 w
__FLYFF_INITPAGE_EXT
) @7 o' S3 @' `# m定义
, \$ W ?# Z: N! k% J
& x) c. H# L5 o, _1 o* T6 X* L! s2 I1 f& w
7 K( D( c1 T B R; T- @7 ?. X1 e9 A
现在终于删除我的狗屁加速...
( t' X ]3 _- ~: C; C% O& z# Q3 Z2 |
4 z: C, q5 Q) e# G$ H L R; p8 t5 D+ W: W. } b4 u6 m) g
|
|