|
|
食品车:, _$ @ T, M) e" U# y" D
尾翼:& Z+ Z) C: q3 O/ N; I/ W: q* ~
# X+ Q& ?# Y2 }' F) @
代码:
7 S, R3 b2 c& g! H9 NCWndAutoFood::CWndAutoFood()$ q% |3 t0 P( V$ B8 {
{
) _9 x X# K9 l+ D% ~: v% ^, Z& o m_pItemElem = NULL;1 y- e3 b0 `9 E, k3 H0 ]
m_pTexture = NULL;5 W% L1 }! c. ^( P6 K
bStart = FALSE;
6 u# U+ U+ N- ` _* l}
! b2 j0 x4 }* o& v& w+ H) q z O8 G) @ h# Y/ K0 O: ?4 ~
CWndAutoFood::~CWndAutoFood()+ g# A* p; B" F/ S- M1 z5 \9 |
{# ]+ N6 z8 D6 L% d
AfxMessageBox( "AutoFood ist gestorben " );
0 J D6 z/ E5 T; q5 V% C}
9 z& s- W2 g" H5 a1 Q A( UBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )! E- Q5 U0 C, J9 L6 S
{
* a& s* V# s: L; R9 m- n- y! P return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
% a) [8 Q+ s1 Q1 _8 Y3 E+ P}6 a9 G+ ?! r* ]" p5 v# i# |" q* i
1 ~: l+ X5 b1 v( U3 H/ {- i
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
# r4 _; O+ M% d" s$ ]{- x' e/ y. c# m# [
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; |% k9 g1 c4 n) T8 s! h+ s L
CRect rect = pWndCtrl->rect;* ^; t6 X: Y \- k; ^
if( rect && rect.PtInRect( point ) )
d' X# I1 {5 R+ `" E' X+ P( f {
! {! F* H0 [$ w0 }0 ~' q1 J' A6 S CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
; p( Z z/ R& [) [4 [ if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
! Q! C- v5 k( N& f4 d" L {7 T& G3 _9 l+ Z v; ?3 @! H$ P' H. {
if( m_pItemElem )
1 ~- D0 y/ T# J3 _* K" R$ b {
, o/ K0 J S& @ E9 C m_pItemElem = NULL;+ t8 E$ K! [5 e* m7 T8 K2 _) Z
}4 N! a& u1 t* s; ^$ ?1 I5 o
m_pItemElem = pItemElem;
( K9 {, a) c' [1 W m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );% t4 n' s& x8 ~ p; K, U
}else{
/ y7 B# r% b) \! I7 E SetForbid( TRUE );! P7 c C: R& j) t
}, R( }7 L9 k& w8 O% ~" o/ B
}else{8 X* \9 H8 k5 g( S. S
SetForbid( TRUE );6 i H2 f9 f0 U$ a3 R0 h
}
" x4 O( `- ]# S! _$ _5 n$ b return TRUE;. V( o; i2 D) T) X4 e% E+ W& A
}
* Y+ @, X! o* L" ^" S% B
- Q% {4 j* Y( r9 OBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 r3 O* S7 Y0 P6 l: E! V7 l1 a1 H8 E! {
{
' C+ g. z+ u$ A$ w1 k switch( nID )
& T6 V+ D' F1 S {# K7 f( R& R4 {6 {7 V" _
case WIDC_BUTTON3:# @" R# v2 n. L' H G6 C
{2 F& a& J- F- O4 ~3 k2 x5 d
bStart = TRUE;3 C1 R7 I. o7 j
break;
. R7 ^' d9 s# A! |; M }& m# G: z+ \4 p: l9 W
case WIDC_BUTTON4:) k0 _% Y$ t- v9 K$ z. D# [2 P
{2 d1 y& H2 _+ Y# O
bStart = FALSE;
; R1 Q4 q' m2 e break;. _' O4 w) G( \0 J
}
; K0 f. L9 L9 G9 { }
$ S4 I( L J: r' k8 o% r5 X% g% b3 T return CWndNeuz::OnChildNotify( message, nID, pLResult );
0 v8 l( m4 @& Z; E}
) x$ n& W' {- j' V+ v3 N& H. vvoid CWndAutoFood::OnDraw( C2DRender* p2DRender ) p, e1 h- h. i; q; ?" f# m1 f
{. d& ^6 I/ g3 l6 Q
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
) P% s( T( u- G6 G; p if( bStart || !m_pItemElem )
8 {) ~* }8 v2 Q8 J/ r5 n7 a {8 |* R I k3 S2 f( I4 b
pBtn->EnableWindow( FALSE );
$ Y# b5 G# u+ x$ t4 { }else
5 a. H- ]/ k8 l5 {7 `8 s3 [ pBtn->EnableWindow( TRUE );) H/ x3 F# {$ M# X% d, _2 Y4 k
if( m_pTexture )/ A" J: ]0 E( j4 ^, Q
{2 [- f2 d) x( s6 h6 _7 t+ `* K& g L
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );, i1 g0 S& j. u2 ~/ t/ P7 ]- }6 e
if( wndCtrl && wndCtrl->rect )+ Q7 H8 f# L9 ~, |9 z
{
5 U% [& [) _4 U8 [2 S0 I( v m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );2 E3 T# D& E( d& V) M
}5 f3 T Q6 K! A. C3 g
}0 M! L& I7 X$ `6 O9 ^. T" y* a a
}3 P. l# _5 V( m) b: }
# m3 C% ^4 l9 mBOOL CWndAutoFood: rocess()& b1 O. a& z( w2 c6 k0 h
{3 B. |/ ]7 i0 N
if( bStart )
1 M" ]' d5 ~" }$ F {
8 H- ?4 B! C- u7 Q; o5 I" D$ z if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )7 n7 s/ U n* L
{, R1 C0 v- e/ ]
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )- p" \! }" O! u$ o9 \- x) d
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );% B% n7 T8 g" Z$ o, o
}else{6 g6 J$ U* _3 `9 U# e1 F/ W! v5 R
bStart = FALSE;- E0 `3 ]( e- j- x; G, i
m_pItemElem = NULL;: c1 K& d: B- v6 Z9 c8 ?: m
}6 {: K9 j3 {0 M# S! m+ y, D* m- t+ e
}
& R+ ]. a- d* c1 a$ n+ t return TRUE;
7 Z5 M! Z1 q7 ~- X+ D$ x6 E}
( R: x, ~6 R6 V
' h% \3 ^2 j/ W% r% r9 ]2 ^+ r" K登录视频废话:# f% v3 P+ C) P1 j- _
尾翼:
5 h. s0 h, t: m& B7 ]: t* s$ ^+ h$ M; v$ g! @& J
代码:
( u$ ?6 ?( z: N' R, y; x' v2 a+ b; x/ z/ S1 ?: o
void CWorld::SetLight( BOOL bLight ), B' g( u0 G! z
durch! f3 U( T0 `& Q
Code:
+ o) q1 Y+ |/ v0 Evoid CWorld::SetLight( BOOL bLight )
" h% F% K; k& F4 a6 d( q{
0 m( u! L+ E) L& ?: `, ~ //ACE("SetLight %d \n", bLight);
]6 X$ j# q1 p' ]+ e
& J3 k. {* D5 J8 b7 J! J#ifndef __WORLDSERVER
6 i, W3 z8 c6 V DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
9 \7 i4 p$ i R9 e1 | CLight* pLight = NULL;1 d+ t% F9 A4 D3 I
5 ~' ^0 Y/ ` ]$ x) x$ @# u' F1 A* k
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
* C" a" O5 l3 q6 h3 T8 P7 f/ ]
& j4 D9 ^/ P- Y2 F0 f( R& ^ L pLight = GetLight( "direction" );
3 m, k- H w2 d! |" U3 S6 [4 p$ c1 I/ G, \
#if __VER >= 15 // __BS_CHANGING_ENVIR* z: |! k9 d9 S4 @3 o+ i+ {' p3 R
if( g_pPlayer ){! q& t2 {' h5 Q1 n) v2 w
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );" c/ o7 }( g, c8 Q* w, X2 f
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
, D& Y" ^/ |* ^; C: b* V; S {$ `- c X! X4 R. i# A
if( pLight )
9 @ U: o9 F4 C2 I {
* V/ c" G6 I$ _, @2 v pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
7 ]# ~. {/ ~1 x" _ pLight->Ambient.g = pInfo->_fAmbient[ 1 ];# c0 K. m5 M" }6 u* V& w F3 E
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
1 C# ?* L, t0 y# x G5 q. `; I* B2 h& n
pLight->Specular.r = 2.0f;
) j7 F5 o! b: k8 y pLight->Specular.g = 2.0f;
2 B; F+ Z- \; G. I! X( A pLight->Specular.b = 2.0f;; v# V9 _$ Q: b4 @2 i
/ e( O: x" v/ d5 K' b pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];: ^! E5 o# Y& D* E T. K
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
/ o/ w- I! o1 g4 i3 M1 Y' e pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];. c( b; q' C( Y3 r- |3 Q$ ]/ ^
. z0 D4 h6 |: f$ w5 x: \* [- g
HookUpdateLight( pLight ); * U. W1 t3 w8 d1 b/ h9 f$ B7 Y9 H; g
: O! }) |# d) j- D) Z, B( p memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: `1 {# F8 n! f; l# | & R; J. I6 T( g: o) X( h
pLight->Diffuse.r *= 1.2f;& A: a; u; _- ]6 T1 b
pLight->Diffuse.g *= 1.2f;
) R( B- q0 v$ ~; m! c; I; U y pLight->Diffuse.b *= 1.2f;/ U3 b r9 o, b6 k0 D4 p: w9 D
. z2 V2 g" g8 [/ D+ s$ {8 H
pLight->Ambient.r *= 0.8f;
8 c5 K* W+ D( b5 q- C ~% g. K pLight->Ambient.g *= 0.8f;2 x/ O( Q, W6 S6 U9 p
pLight->Ambient.b *= 0.8f;
! ?( c3 K g; W" B) {( ` _0 t4 B! p4 d4 ?" f( P
memcpy( &m_light, pLight, sizeof( m_light ) );( H# D1 b# W+ t
0 _' X, i! O& o% l% Q* Q3 ^8 d D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
3 r5 g T5 v' W7 D) `! ^ D3DXVec3Normalize(&(vecSun),&(vecSun));; E2 B p( W* m8 Y
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
# f% s! y$ t* ]% S' L8 { pLight->Appear( m_pd3dDevice, TRUE );
) a4 x M. E: h8 i4 {; M 3 n+ g( ?5 K: Y9 D p( D
DWORD dwR, dwG, dwB;
& l! L' w, Q' \ dwR = (DWORD)( pLight->Ambient.r * 255 );
* D8 o/ _: W; f* J! K* V0 N+ j dwG = (DWORD)( pLight->Ambient.g * 255 );& Z0 E- E" {7 ]+ x* V5 P
dwB = (DWORD)( pLight->Ambient.b * 255 );" |0 A! S2 m5 L/ V2 I6 s5 C$ l
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
/ {- h5 R( J8 s! b }3 j. Q# f# K, U9 D t- l
}4 D) K# z( T1 l F1 g- U9 w+ g
}
- V- Z% x; K7 n; u else% p, i, _1 c- ?9 @+ `3 i P* P; I# z/ S! ^
#endif , @0 g5 I* D: G F; D- c
: a) }: X# W8 O1 L" l' A if( m_bIsIndoor )2 t3 X; ?) J9 Q! j" s! ^0 y
{ G% y$ p( i9 _
if( pLight )
1 b' X; L! r1 Z6 N! p6 @ P0 | { 1 Y/ s& l, j* k% O/ Q
// à??μ oˉè* 8 Y, M7 J3 o# J2 H$ y
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
8 S' K( u B" t5 S& j: l d5 E6 @ pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
2 {0 f7 S0 u/ W; q- d pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
8 J# x, w4 J7 z9 s- `7 H! J
, X/ b, w/ x8 d' w$ w; y // oˉè* ??à?
( x S1 v3 K5 A$ K pLight->Specular.r = 1.0f;
. f2 N# E4 i I pLight->Specular.g = 1.0f;
7 f; K$ n6 q8 f% l pLight->Specular.b = 1.0f;: A8 D7 Q: C$ A/ k! f5 s4 E
// àü?? oˉè* " l- @8 Y1 ^3 P
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 z! H; J5 C6 G; I
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
! G8 W7 t% _8 v1 N7 z. c. `# G& ] }* e pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f; [. l* ~: W- _7 q6 ^" g6 D2 @4 b
8 M# Y7 m, s/ q7 }1 Z: F& {' d9 z. U
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
6 K) Q5 s0 k! n {) n1 {' O* R8 D: T6 p: o
pLight->Diffuse.r *= 0.6f;
0 w, A' k* b3 c( T3 Z pLight->Diffuse.g *= 0.6f;% W) W. @1 a" B; D# A9 ?
pLight->Diffuse.b *= 0.6f;8 k F) y e& O# i( m
pLight->Ambient.r *= 0.7f;( }. a8 e. v0 Z& X ^5 d
pLight->Ambient.g *= 0.7f;
2 |3 Q. ^; \$ b4 r pLight->Ambient.b *= 0.7f;
& O! L6 z9 b! j; G$ b( \ }+ m% m! z' I+ t- ?6 G
3 Q/ j& G, z% G
#if __VER >= 15 // __BS_CHANGING_ENVIR) h1 A! h8 w+ M& \7 E! ]
if( g_pPlayer )+ ?$ d# `8 K a+ C7 d# b
HookUpdateLight( pLight );
/ B3 `0 e5 m# o% l#endif5 g; Z+ u1 U$ \1 J
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! y& U. E5 |/ O! B8 j$ k; r
# {+ c- ] [* d% w G; ~6 m
pLight->Diffuse.r += 0.1f;
j* | E- H7 g- D/ U, t% Z0 G pLight->Diffuse.g += 0.1f;
o" F1 e. k9 D) e% B& h pLight->Diffuse.b += 0.1f;, T! Z7 c1 H' T( t. l1 j( ~
// oˉè* ??à? ! Y( m" i3 X3 k. z
pLight->Specular.r = 2.0f;
" i% k+ S! \: ?& Z, T1 K6 O pLight->Specular.g = 2.0f;
# j& `1 w0 `6 i pLight->Specular.b = 2.0f;: _5 k, J1 o$ j: {6 t6 d @
// á?oˉ 8 _* {" E. w6 b( F' N
pLight->Ambient.r *= 0.9f;+ Z3 z. s n5 A7 r/ |6 \
pLight->Ambient.g *= 0.9f;
5 h/ m o; T" z1 b1 E pLight->Ambient.b *= 0.9f;
9 W. ^- ^: u* D9 o, y& S A; s* {# h& p3 l
memcpy( &m_light, pLight, sizeof( m_light ) );
, a# i& H0 E8 e/ B* H
( ]% f+ ^. V8 j3 L* \# v8 _- s6 S& i pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
- {( V$ M% z3 w" ^ pLight->Appear( m_pd3dDevice, TRUE );7 S+ N0 y) i$ K* i2 [
* [6 L4 p* Z7 n7 c/ b# k# H DWORD dwR, dwG, dwB;: Z. |4 T: ^8 w) Q5 z2 T3 N
dwR = (DWORD)( pLight->Ambient.r * 255 );; o8 }7 {6 o& z: {' `, K
dwG = (DWORD)( pLight->Ambient.g * 255 );
4 z+ ?) x$ S! s dwB = (DWORD)( pLight->Ambient.b * 255 );
+ U2 k! M+ {+ j/ V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) ]7 E4 c5 u: r. ]8 p/ P8 n1 E7 {( P }
( s. z3 D: w) M G8 |% X }
0 z) U; C, g) B: ? else
, [- `2 @4 i9 R5 W7 } {4 \0 W2 h' o6 [( u7 ?
if( pLight )
7 \: g. I ~9 j2 T6 Z, w6 F6 P( o {
" Y, ]) N. h, N5 l
1 N4 @! |0 c) G' a) h; h* B! k4 b int nHour = 8, nMin = 0;
* t0 z' q' z! H( ^" A #ifdef __CLIENT
1 J! Q- r) t8 ^: n2 L // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
A: ^# B3 r2 z, a# h2 b0 J7 i: a7 o nHour = g_GameTimer.m_nHour;' c: ?& v9 ?9 D0 n# W! v; j3 E0 i" i
nMin = g_GameTimer.m_nMin ;
" t7 W- e' w7 s) q. |/ S9 C1 Q #else
- a& o" U. S H- i; ^) g // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
& i" t$ ^. ]% u' T) S% i if( m_nLightType == 1 )
P! j1 x% N J) I: x nHour = m_nLightHour;: W1 q9 X7 W' H8 F$ e/ u
#endif
6 G/ Z& c x$ k6 ?- i2 z$ `/ ` nHour--;
; g$ ]2 k1 b8 k4 w if( nHour < 0 ) nHour = 0;$ Q6 s( S! h+ c+ G
if( nHour > 23 ) nHour = 23;$ l& `( e' `- M' ~. U
$ F& ?3 z) s# q# U //if( m_bFixedHour )
% d$ H$ _" \8 Z' E+ G // nHour = m_nFixedHour, nMin = 0;
; R! s& q) q( ]5 V- M0 Q LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
% v4 L/ L) I$ Y" Y" W! W& Q LIGHTCOLOR lightColor = m_k24Light[ nHour ];- G, E7 M m6 B: j
/ Q: b* F' }( H0 m+ E //m_lightColor = lightColorPrv;! X8 K" O: P% d4 H
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60; ?5 Z1 W! |7 L( `! r
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;- X8 M! l- b+ d/ @
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
, p! n X# ^8 b c3 i, H lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;) ?2 @; Q9 Z7 x6 U
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;# a O0 i" G5 ]4 P
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;4 Z* X& b5 t! E }/ D$ p' q
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)% J' T; a% t( V. c2 t/ L
# n( O; t$ s" D- `( z // à??μ oˉè* 3 `. P; x0 G# p
pLight->Diffuse.r = lightColorPrv.r1;4 Z1 E, J! J6 R7 P) F& s
pLight->Diffuse.g = lightColorPrv.g1; H7 X3 X" C% m3 I) N
pLight->Diffuse.b = lightColorPrv.b1;
% [8 J. X0 {8 O( J" B$ A. j$ q // oˉè* ??à? 7 y- Q# H8 y- P+ y: z- U8 b* a" e$ L
pLight->Specular.r = 1.0f;
8 E( U* Y: f; o4 ^ pLight->Specular.g = 1.0f;; W" n4 C$ U5 Q( \4 k2 d
pLight->Specular.b = 1.0f;! L# F2 Z: F2 [
// àü?? oˉè* o3 Q0 E6 t. h z7 \8 ~; P8 O% k
pLight->Ambient.r = lightColorPrv.r2;
" v! ^0 W4 z( }! L$ N& E pLight->Ambient.g = lightColorPrv.g2;
7 l/ U+ k7 m0 {- }: P pLight->Ambient.b = lightColorPrv.b2;* N7 U( o, n/ @9 p% u# M, ~
. J! I0 p% s8 ]* H7 ^, R
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 i4 g7 T9 S/ ? {. t- M: e9 h, A: @
pLight->Diffuse.r *= 0.6f;
9 F* Z0 o& [* ]/ Z. V5 i [ ?! P pLight->Diffuse.g *= 0.6f;
- B4 H& I8 V: d: |- f$ O: x3 r pLight->Diffuse.b *= 0.6f;" {& t$ A3 H4 N! k3 H
pLight->Ambient.r *= 0.7f;
2 {' `, x7 q. a5 `" G! e0 J. k pLight->Ambient.g *= 0.7f;
$ i+ G/ G2 }) {" w( ^ pLight->Ambient.b *= 0.7f;
$ [& V; Q& ?4 n: x& F+ x9 F- T }+ \. s( Q- [7 Q! r& Y7 D+ m* y
3 G# V' m2 O) K; A J) k9 }7 K# `
#if __VER >= 15 // __BS_CHANGING_ENVIR
4 m3 i; Q( Y( d, X- g) a* C- x$ Y if( g_pPlayer )
$ ` _6 Z! r! N, R) i HookUpdateLight( pLight ); 4 y2 ` E6 |0 a' E) o1 b5 ?* y0 _5 R4 ^
#endif
1 W! E+ t; c5 i) k4 t0 e2 U5 G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" P7 n' y4 x! N! ^) Q p# p# J" f* u/ r6 |3 M
#ifdef __YENV
4 v- R+ `2 [/ R$ O7 O" ^. ~ pLight->Diffuse.r *= 1.1f;
) M) f f" L- g* e pLight->Diffuse.g *= 1.1f;
- i5 J6 g: L# K9 Y pLight->Diffuse.b *= 1.1f;# n: }/ K: w; Y( }3 j% y" `- R
// oˉè* ??à? + L# G/ f* R" L2 w0 T- e* C
pLight->Specular.r = 2.0f;
" y4 ^+ T- A: |4 j# W a pLight->Specular.g = 2.0f;# `! `, z4 Q5 U3 u7 y' M0 m, p
pLight->Specular.b = 2.0f;1 h' {. h$ E i) f B9 j- u1 r1 i! |
// á?oˉ
5 S: w4 a* o1 e- ] i+ b pLight->Ambient.r *= 1.0f;4 N4 O8 P5 D8 h( L5 n
pLight->Ambient.g *= 1.0f;
2 w) \( [# F) [- j$ F( g+ O+ Z9 C pLight->Ambient.b *= 1.0f;
1 q, o8 i+ D( k#else //__YENV& q5 f/ Q: Q# j5 w: x7 A0 {2 v h1 ?
pLight->Diffuse.r *= 1.1f;
; }, J+ [( ^5 u7 s+ g pLight->Diffuse.g *= 1.1f;* G9 n) a+ t, [/ f1 H( G1 G
pLight->Diffuse.b *= 1.1f;
8 j% i& |5 _/ V8 Q // oˉè* ??à?
: l/ C: q6 a6 o% i/ j; h" K pLight->Specular.r = 2.0f;7 d/ Q, |, Z8 d4 Y
pLight->Specular.g = 2.0f;
4 I2 a; W9 w) i: R) W pLight->Specular.b = 2.0f;: F% t7 o4 u1 i. Y4 F2 V8 O
// á?oˉ
/ q: o. P% D9 h( b1 L3 h, L9 | pLight->Ambient.r *= 0.9f;0 p2 ^1 K% D! _" p
pLight->Ambient.g *= 0.9f;5 @! D _* F. e- A6 X; b
pLight->Ambient.b *= 0.9f;3 o' T) p3 c! G( {9 C" f! t: ?5 G
#endif //__YENV
5 S% s% A9 H* h5 u * k' _: q2 o$ o
memcpy( &m_light, pLight, sizeof( m_light ) );
4 n# y' Y+ a* u0 s
4 E8 C" v" J- F1 m( @ D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f); w8 ?4 {/ }: V& t9 j9 _' j; s
D3DXMATRIX matTemp;
7 J+ ^/ ?$ \, r. O% z static const float CONS_VAL = 3.1415926f / 180.f;
. }8 P% Q) {9 n9 m
- C4 W; [/ H5 A- v" _6 \0 e7 o3 \- I D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);6 W7 d5 T: m+ q9 `
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
% J! f7 u* \# Y; Q pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
4 o$ s. U# W$ F pLight->Appear( m_pd3dDevice, TRUE );# A: j+ m5 O4 x( S: p% H2 E
" M1 N5 A7 s5 T, z3 Y
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; F, Z- {: N4 r( u9 M! Y* [$ i; s. T // D3DXVec3Normalize(&(vecSun),&(vecSun));
6 z1 V/ S0 m5 l$ F% \& p // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 6 o' Q+ G% C2 G: M$ V. \3 {: d
0 E6 S, e( O. \& _; i. e DWORD dwR, dwG, dwB;
9 D' W) P/ W9 U& @, |- b dwR = (DWORD)( pLight->Ambient.r * 255 );9 Q1 b; p9 f A& x
dwG = (DWORD)( pLight->Ambient.g * 255 );
3 J) i+ C: ~+ ~3 W6 y2 R dwB = (DWORD)( pLight->Ambient.b * 255 );
6 V& a! M- B8 x1 M& T- T. t dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ' M: V. f# z0 Z7 j, e
}6 V( y" B8 f C2 W# b) ?/ \& R
}, a% e# G: |2 S0 U
% X5 J J! }5 @
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
, T2 ?3 P. Q: R5 Z) M. ^ 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) ); f- h: M$ O2 `5 R9 ^( {* @
::SetLight( bLight );6 _. m$ z( p* M5 z
4 y5 r* s: {7 t6 n1 ~5 ?8 P
// ±ao? ?D?í???ó á¤à? 3 ^# x4 B/ `$ M: W$ O2 e% F" g
m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 H/ v2 H6 Q n m, u
7 S2 r- A1 ?6 v X8 ]#endif // not WORLDSERVER
1 f, X0 F" }0 @& @+ C4 d}
' I9 n, Z) `# Y并更换
$ g* n# R* l h ZCode:
$ i: K+ g% Y0 z$ }, x9 [__FLYFF_INITPAGE_EXT
' l3 J/ @" g/ a8 g定义
2 ^2 f, b, W+ a7 h) {4 a
. A k' `0 p+ f" `# W: H2 w) F( Y$ Y
. o* r" ~ Q5 \$ T8 B* u
, H) Y) M- b% {) u# C) i. H
3 n! D; O1 X: ?% K' _现在终于删除我的狗屁加速...
0 k6 M1 g* ^ P. _" v7 p0 D
/ S: B( U$ [1 ^9 f& I6 c4 r2 R1 D1 `* B* _7 S9 |, d
* S" y) n _6 M; Z! s4 b
|
|