|
|
食品车:" m) h q$ d: e; a
尾翼:
2 D) B8 }. H* B6 i1 K+ _+ @
- G! W3 | S3 S6 W/ ^代码:
8 p/ \, i2 C C3 v) |; h0 B' l5 n3 SCWndAutoFood::CWndAutoFood(), B J2 l4 T% @8 c# \) d+ l
{& {3 A* J$ p1 P3 {: E8 T& @/ ]4 s
m_pItemElem = NULL;
1 G/ g3 t. }% J! q m_pTexture = NULL;
* m. F: b4 {1 H" m, l! q3 c! y1 b bStart = FALSE;
! E6 d- t3 }7 [7 P! x2 R0 M+ s8 P}6 w1 M: E; |+ N( r7 o/ q8 _, l7 |
- b9 q7 f/ r' _3 j5 O* HCWndAutoFood::~CWndAutoFood()' e' a" c2 O$ v* a: v! C& a \
{5 p1 x: z1 Q3 }4 j
AfxMessageBox( "AutoFood ist gestorben " );+ }* v7 n9 A [9 s7 O) {) G9 T
}9 m$ M: [' Y4 \3 E$ ^
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
o3 x( w U h- T{2 h. M5 _$ e7 y9 \# P; h) n
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
' l+ O/ Z: [. k2 G2 i, i6 k}
" S( u5 A5 ~$ {
z' c5 f1 u8 h8 G& @: j3 `BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
* F3 ?, N5 Y* n0 `# g# u{
# m' k! D- w) b9 Z LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
0 t4 G4 S/ _5 S1 I7 Y4 }/ l CRect rect = pWndCtrl->rect;/ U1 u$ ] j0 t r4 F/ O
if( rect && rect.PtInRect( point ) )
4 s8 b. t% _( A( a8 m: z {
4 ^, J% a+ P3 M( G! u* A2 @ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
! z& C& h6 `. B' o' i if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )4 o/ K5 K( r0 t# D7 A2 R: {$ b
{
$ J# M' G5 m3 _1 O* g3 y if( m_pItemElem )
( {+ _0 P. r& z" z j0 H {6 l( q$ m) o, [( y
m_pItemElem = NULL;
9 w# @: i1 I! [* X; I9 B }; A O) v1 e: _6 v, C, T4 u
m_pItemElem = pItemElem;
7 p0 X& a3 B# } ? m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
2 P* {: @' n8 U3 E+ {5 \ }else{
' }9 p8 u8 \: q, p! ^6 H SetForbid( TRUE );3 O; U9 n1 U V4 y. N' R
}- s& s; W3 c& U( ?: J# ~
}else{1 ]' O- A; P; H
SetForbid( TRUE );
8 `: }7 m" z( C/ a& S7 X }
, I5 R& c" V- @2 Q) X. _9 E return TRUE;, r% |* t0 t3 w5 C2 r
}# K6 r; o3 f! c" h5 v3 U- x: C8 Q
. K9 E& r: F$ E& P3 W2 i
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )* {3 T* {+ L; j" ~0 g# k: o
{
% ^% ]9 G% P5 F" I switch( nID ), Z6 H/ r/ B3 f; u
{' e7 r" ~2 s3 s4 M+ @+ y, g
case WIDC_BUTTON3:; J' z# i5 ] D( \% d
{
0 W5 A! \- E# O- d6 f' c1 `$ B2 l4 f bStart = TRUE;2 y2 k0 T+ a9 H0 c: h+ q
break;1 t& ?2 b/ x5 `2 {, Z) n9 y
}% d2 V% ?5 \/ x0 S( C2 L) V6 |/ W
case WIDC_BUTTON4:4 k" m: i3 F0 m( J; G
{3 o$ W8 ^3 r6 s! |
bStart = FALSE;6 H C! q( a% Z1 H
break;
) A) f& Q' Z5 o8 c9 p }5 B3 K/ O( Q, f, q1 _
}
* M1 `+ }1 H2 R# a$ Y return CWndNeuz::OnChildNotify( message, nID, pLResult );9 y% N3 z8 T9 q8 T1 G
} . D1 B$ b& Q& y9 t
void CWndAutoFood::OnDraw( C2DRender* p2DRender )9 S8 B" A3 \ e/ L* p$ M' j9 x9 G
{
: }. R# h; q! ]& h1 ]4 ^ CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );+ X6 ~, A4 y5 ^; q; x) h4 l; ?
if( bStart || !m_pItemElem )
: `3 W' F4 C% X2 k: i, b {
! c! v9 K( v! e pBtn->EnableWindow( FALSE );- U9 w" D7 l4 M( T" J
}else9 O( E. k: f/ F, {3 D! J% c' \
pBtn->EnableWindow( TRUE );
) g) u% _/ l4 q3 [) d$ ]7 o9 Z if( m_pTexture )
6 \0 f" O% M1 U8 s$ c) I. R7 s {) c2 b% G9 I5 y# l# }7 k
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
4 `" V# b# P0 ?, H: Z1 P8 b if( wndCtrl && wndCtrl->rect )
* y! T0 \; v# u {
( F4 z+ w0 h J, E8 m3 a1 ? X m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
, i$ y7 Y; w: v- Z) Z: G }; g9 r9 q- e1 G, s5 k, g1 g8 Q
}! [( z3 U$ j& R2 E4 W
}' H* T0 r# p) m. \4 A2 R
" o9 n2 \0 O1 U* \0 l' A; ^9 J' [
BOOL CWndAutoFood: rocess()2 b: F }1 O! E. E$ u
{3 y; j) G1 N& f# {9 K$ l
if( bStart )
& z- w0 Q6 N4 g7 R {
# ~1 q% w; X, i if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )& y8 w" M9 g/ _3 [7 I5 X
{
% u* a! W3 e8 Q, Y. b" n5 f if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )# m9 \! X# d8 U X) P+ K9 A
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );! G: B( W4 J7 R4 f# M8 z
}else{
0 h3 Y8 _1 V6 o0 T% D bStart = FALSE;
4 z1 t. i# K9 ? m_pItemElem = NULL;
- r1 X5 y* w4 Q+ Q }+ q& a" X( s6 I. r
}
* L2 _6 S* c( Y) N( E2 C: c: p0 ~ return TRUE;
+ s; B+ g3 q+ E; T& Q8 I. n}
8 Q) q; Z0 O0 [5 x! S7 }4 H5 H5 N9 s4 u
登录视频废话:
/ q3 j( x$ n# k' R- d尾翼:* M9 {( \8 G" e4 c, f7 _& a
* I9 L4 D8 y: {# W9 g$ U0 a& t代码:
- H! w c/ T# u+ G- S/ S* x9 O, N6 `9 N0 F- | k
void CWorld::SetLight( BOOL bLight )
9 r/ l, i$ B6 z, }$ D' `- e5 T" G6 tdurch% S) e: `3 i6 \; C! r7 `
Code:
0 f) ~& w3 T! y! z, e9 qvoid CWorld::SetLight( BOOL bLight )
/ H; {9 z" O* J' o$ Y0 B* T{6 n; w4 Q2 x- H; U6 Q D# X
//ACE("SetLight %d \n", bLight); J2 V0 ^5 c% j5 Z! |" @, c
* i' M* b8 _0 C5 z#ifndef __WORLDSERVER
. Q1 y9 A- c$ R# ?+ E DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);% w7 t/ h7 u5 j* B
CLight* pLight = NULL;7 [7 E& \& M5 s7 Q
/ b' F1 I: j- I+ u8 R" q# v5 X
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );0 }: h0 A i8 y( y9 K% f- G
1 Q2 K/ V. F) J) p/ N# Z3 m' ?4 e pLight = GetLight( "direction" );
6 A2 r8 c2 ^! K) T+ Y
% e( A" y8 u: j3 P' }( ]5 B#if __VER >= 15 // __BS_CHANGING_ENVIR
# w. P! X6 B3 L if( g_pPlayer ){
3 Z/ \; E8 A) X- e" g7 k1 l' |0 } ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );0 ]1 s! e; r F5 n" G
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
2 f) w! x+ o5 K& X {
" X5 J { O# q5 j& M if( pLight )
' N. O- i5 G( _8 M6 f7 C+ ~9 U {
' F& J( ?0 |- s' ~$ ^ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
) n# P4 l5 s R9 Q pLight->Ambient.g = pInfo->_fAmbient[ 1 ];9 I( X6 r' t6 u. \5 M
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
: d5 Y3 ?& d W* Q' ^0 B) ?7 q6 t/ i t* [, ]
pLight->Specular.r = 2.0f;1 g4 b+ |7 n( [* U. F: X5 l
pLight->Specular.g = 2.0f;
% j, m* U0 i$ j2 \- K9 ` pLight->Specular.b = 2.0f;
8 u# W d. ]8 V9 j . G# b0 W% D& |( z. e6 h
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ]; c6 h/ X$ a0 l: n8 W
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];5 J6 U2 S4 P0 w% Z! r( S
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
7 i7 p3 [. ~ a3 Z% l# H
/ Y1 b! f4 { v" J. G+ v HookUpdateLight( pLight );
, l- o% J( q* y# i! Y' @
! C% V* o5 v! ]6 I% C8 p) j memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* G0 {. D. v A8 D4 U" b8 q/ O - T7 L; m! w5 j
pLight->Diffuse.r *= 1.2f;6 V5 h F, k9 ?7 S8 k
pLight->Diffuse.g *= 1.2f;
8 l+ M, [1 z, j& W pLight->Diffuse.b *= 1.2f;: ~' i4 ~/ ^) |1 _" G5 J# m
0 l7 S& O6 D/ T# T$ G) D pLight->Ambient.r *= 0.8f;9 O$ F+ W; N- p5 v6 S$ L
pLight->Ambient.g *= 0.8f;
+ C' d ]8 P6 r9 r! o$ m' g4 s9 W# w pLight->Ambient.b *= 0.8f;* t! o# v5 S% r3 U, Q D% I' O' l$ y
- k; v3 }% d3 U z3 ]
memcpy( &m_light, pLight, sizeof( m_light ) );0 C* [) S( U+ D% c7 X- k- |
" P2 m5 l+ m: X: F5 G! ^ D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
" N9 M' S8 S: l) S! c) y# `" p D3DXVec3Normalize(&(vecSun),&(vecSun));) W7 k: r6 X! G. e
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. g: s* D7 x4 [7 }, J pLight->Appear( m_pd3dDevice, TRUE );& w/ E5 D# K$ e
9 \3 i+ x/ z& i0 k3 n! V, Y5 P6 v& q
DWORD dwR, dwG, dwB;$ f5 E) }6 }! o' ~' {" J# S
dwR = (DWORD)( pLight->Ambient.r * 255 );1 q# u3 O& J. o
dwG = (DWORD)( pLight->Ambient.g * 255 );: _3 j- z8 N: O! b' k K9 E
dwB = (DWORD)( pLight->Ambient.b * 255 );
1 Q- `( K& s5 @$ I) b- y7 b dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );0 ]) _( [+ ]5 u, _* s. b+ [
}2 U b7 m) b/ c o
}
5 |' D( ^5 l7 Y& S }- C1 q' ]& ~, g' O; L+ b8 }
else
# B, Q+ p% G: h) R; I#endif
; z' x+ F8 A7 K- ~' }; [/ n
; L' Z5 j; f3 k/ d O% ?8 o3 ? if( m_bIsIndoor )! N$ c, _ c: N" t& g
{5 \6 @7 J: [7 s& F2 e
if( pLight )
1 y8 C0 l" t! c6 z5 z( d; s { & Z* M( a1 f! U" N# Y1 t1 c
// à??μ oˉè* $ [' o' Y& d( \
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;1 a5 O) [6 l2 ]3 U
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
* m: M6 I4 I" [; z$ ]- l9 |4 V1 I pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;7 e7 W* x H0 _& ^9 a" N6 k0 g0 \$ K
9 {- B/ D5 c B1 s+ x# f // oˉè* ??à?
6 A. W# i6 a4 T5 ^% \/ B8 C pLight->Specular.r = 1.0f;$ i( q2 G e8 }+ V4 z
pLight->Specular.g = 1.0f;8 U r! t5 C. X
pLight->Specular.b = 1.0f;. j& |+ T& k- ?
// àü?? oˉè* 2 e( q x1 R2 i* W& B4 F: Q
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
0 w, |1 c; H: k6 F pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
( D0 G2 z8 v2 L pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;& K$ U2 V( P" q6 C7 z: x
0 H, v3 o- p4 D( D8 {. z if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
0 o; B+ \. [1 B Z {
% Y# E: t8 p J7 p& W, x5 k. W7 Y pLight->Diffuse.r *= 0.6f;
6 E& S: Y' {$ ]7 y: M' o- G$ U pLight->Diffuse.g *= 0.6f;
7 {0 n, |' {% d3 v4 \0 j pLight->Diffuse.b *= 0.6f;0 X; B, _3 ~; X
pLight->Ambient.r *= 0.7f;
3 D# k* y& T' R+ ]$ D0 l, R pLight->Ambient.g *= 0.7f;
6 w& k2 |9 [, B2 ^! z1 s I; u pLight->Ambient.b *= 0.7f;
8 d2 `5 s7 ~) t# l }" G: _: ^4 \8 N- J! i+ C1 O
. Y; k7 Q! k: L( V3 B9 k( g. L#if __VER >= 15 // __BS_CHANGING_ENVIR
6 b& _% C R$ z. q; ?4 G if( g_pPlayer )
( o( i5 m& i$ T; a1 ?8 H HookUpdateLight( pLight );( Q( Q. q) ^& F. {+ c; \
#endif/ E0 Q7 s% n$ u7 q/ T4 g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* I: i5 E) A6 `, {& }9 `
) `/ B3 j. P9 _6 @ pLight->Diffuse.r += 0.1f;
& T4 G( _) W5 D9 ^ pLight->Diffuse.g += 0.1f;. [( l: A4 u q8 w, Y5 s! E/ |. [/ }
pLight->Diffuse.b += 0.1f;
F3 s3 E j$ s) f // oˉè* ??à? ( D8 X% W) o" J" f' F
pLight->Specular.r = 2.0f;
& N* }+ _ K a, p; T% U pLight->Specular.g = 2.0f;
; B8 O! f1 H( F2 e pLight->Specular.b = 2.0f;8 }7 z/ l0 F/ V) C9 x4 I& ]
// á?oˉ
9 R8 r- O. d P3 n8 M+ {' `! ?0 D pLight->Ambient.r *= 0.9f;
+ [6 } e2 @* |( v& F! | pLight->Ambient.g *= 0.9f;4 T) i( B3 {3 k
pLight->Ambient.b *= 0.9f;( Q8 l! G) i1 f d% o# o' X
6 e; y5 C$ c1 ]: ?, `% y# r* i6 \ memcpy( &m_light, pLight, sizeof( m_light ) );3 c+ \7 P: H, T. ] t9 Z& u" M
% k5 A& U3 o. w2 F* ~3 a/ g* V pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );% T# j. k7 F3 u* |
pLight->Appear( m_pd3dDevice, TRUE );/ g% I5 d3 K0 U3 f# F* k
' z. Y5 I% o5 I/ g: y* I, ]# W' k DWORD dwR, dwG, dwB;0 O" u2 r. d) ^. |" G2 t- w
dwR = (DWORD)( pLight->Ambient.r * 255 );
# @- c0 z6 {% s. U* ` dwG = (DWORD)( pLight->Ambient.g * 255 );
5 P" o& [) ]1 c% g) e( w dwB = (DWORD)( pLight->Ambient.b * 255 );* @$ Z P7 s. Z B% K
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
3 m# \5 K e% I7 |4 ~ }/ D; c6 h" ], W# M* \5 J
}2 U6 Y6 R5 u- v& R e0 S# ?
else
: U* {, s3 E' M! C" V$ `# ^ {
- q1 v; R' x9 k4 j if( pLight )% y& ~* ~/ [1 k- _/ ^
{8 @6 Q. f+ J4 s3 h2 V( l
$ O- \* b! s; P# E# \8 D( I* V int nHour = 8, nMin = 0;
- }; w5 ^& N3 f1 _! A2 w) v& W5 j #ifdef __CLIENT
# f5 l2 L0 K/ v& J8 [$ K // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 2 z; ?: d; Y% z/ P! l
nHour = g_GameTimer.m_nHour;
8 b$ b0 B% w9 P# a) c1 z) P nMin = g_GameTimer.m_nMin ;
' w) w5 \9 [% K3 H) S4 | #else' W3 |- X) W# X& w5 x
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.5 J" G/ l$ k# s- d H2 w/ i
if( m_nLightType == 1 )
1 t5 z) U+ h- [ nHour = m_nLightHour;
. w6 A! o: k( M j* p- T #endif
4 }2 G# i4 e* H nHour--;
2 h2 J9 A$ n/ a# ~ if( nHour < 0 ) nHour = 0;2 ~' \. C! X* r) U. W
if( nHour > 23 ) nHour = 23;0 Q4 [5 Q2 m; x5 T7 l' d" s4 }& T
8 B. o9 D5 g' v' \) i/ R
//if( m_bFixedHour )
2 {2 d, p9 ~2 _6 x // nHour = m_nFixedHour, nMin = 0;
- J. o1 P {* D6 R5 |" m/ r# V2 b LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];7 c ~7 J# }: c6 D
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
; G4 ^) e2 J* W' `3 n/ s
- Y4 y S$ N3 R: c4 @. z2 _" `+ t% f- w/ Q //m_lightColor = lightColorPrv;
$ a' D# |% i+ h f/ a lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
7 A" B7 ~4 G7 U7 y) N lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;1 [* q( [7 K7 C/ j% a% _4 _
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;- ?$ N6 H8 \: ]3 W. p5 u! j
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
3 S# R) y6 @& l. a( e lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;' R& j9 U$ F# d% }- s/ C8 O
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;7 g" A- A3 J' v* v
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
5 R& a" P( {6 D% v c$ k6 a+ e# v7 X8 s. J
// à??μ oˉè*
: ^. ?; ^$ r! n6 u% d$ w pLight->Diffuse.r = lightColorPrv.r1;$ m A% B6 R; u
pLight->Diffuse.g = lightColorPrv.g1;+ g0 k9 P+ i$ Y8 |
pLight->Diffuse.b = lightColorPrv.b1;
( X9 L7 I7 ]1 U/ T1 p. h9 @ // oˉè* ??à?
$ ]: Z/ H( X5 u- S+ q4 l- ^ pLight->Specular.r = 1.0f; G! V, D. N, b$ N( C" V+ K& K& {6 p
pLight->Specular.g = 1.0f;
9 z1 r1 E) V* J4 b2 p pLight->Specular.b = 1.0f;6 P" f; @6 x( ?) n0 ^$ A$ ?
// àü?? oˉè* V s7 V& b i
pLight->Ambient.r = lightColorPrv.r2;
- H4 ]( f, J, U5 H( m; n' [ pLight->Ambient.g = lightColorPrv.g2;
: o0 j, J; ` D& l7 P8 d5 f1 | pLight->Ambient.b = lightColorPrv.b2;# V! S# L9 ]: F" S
# d% b% T" z8 `8 Q5 ~; D
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.! L+ ^ m0 i- Z5 X5 Q6 z
{
* G5 r& G' W0 h# ? pLight->Diffuse.r *= 0.6f;; a5 U. h, u$ y: [+ c! j
pLight->Diffuse.g *= 0.6f;$ Y# I- W' E7 e- e2 h$ O
pLight->Diffuse.b *= 0.6f;
- b& I' `7 W5 ^7 D: }& R% |3 M pLight->Ambient.r *= 0.7f;
3 b6 ?0 O$ d- y( s4 c/ e* F pLight->Ambient.g *= 0.7f;
9 x3 Y$ J' d4 w6 K8 R* J pLight->Ambient.b *= 0.7f;' m0 v7 S& m9 l# ]/ C
}
k+ d4 T+ r X: D5 ?3 E 9 \ h; a5 J5 P% d) Z
#if __VER >= 15 // __BS_CHANGING_ENVIR
) j7 p f3 n4 i& |$ n if( g_pPlayer )
" J/ U! }; Y1 J6 U; T _6 U HookUpdateLight( pLight ); . E. X) B( l2 D" h
#endif
% C+ |; J) Z8 }+ t) ?1 r* D memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' ~7 |. E. Z/ u) b& s1 ^
' h7 p/ Y' t( s" N- i g#ifdef __YENV
2 Q9 z6 ^6 r+ Z) Y/ D8 }' a pLight->Diffuse.r *= 1.1f;$ W1 @) q: s8 a2 I% g
pLight->Diffuse.g *= 1.1f;
" j: q0 T; [( E# i$ W, ] pLight->Diffuse.b *= 1.1f;9 R# f' A) e; q3 E: w$ c
// oˉè* ??à?
" K9 r5 U# z" F( [# \. k pLight->Specular.r = 2.0f;
7 @! R: B, ^( Q: F pLight->Specular.g = 2.0f;5 V' V3 C% D, C! l
pLight->Specular.b = 2.0f;
# Z" W1 V' i7 K5 B // á?oˉ ! N$ e# v9 T% D- P9 f" H* h$ ^
pLight->Ambient.r *= 1.0f;9 m! }; [% |# C, r
pLight->Ambient.g *= 1.0f;( I3 w/ L- M" D# l1 z4 \
pLight->Ambient.b *= 1.0f;
& E9 @$ h! |7 n' t#else //__YENV
% h- ?8 J* {2 [$ K" Z: \( C pLight->Diffuse.r *= 1.1f;% e) A/ T2 A$ X: G+ I( z# d9 T; Q
pLight->Diffuse.g *= 1.1f;' r8 Y4 f. J v7 x
pLight->Diffuse.b *= 1.1f;
% D2 V; g# M$ A- y& M+ }- d // oˉè* ??à?
. C9 @: A8 L* w( l# q/ R pLight->Specular.r = 2.0f;
, S$ b! z: v1 }4 ? pLight->Specular.g = 2.0f;
3 F- R" L3 V6 e" K! q& @: v& l pLight->Specular.b = 2.0f;- ]3 ]" x* H+ C* h& [) Y
// á?oˉ
& s9 X/ d$ Q! ^9 }8 W* w pLight->Ambient.r *= 0.9f;# O5 S/ O z8 \. E D
pLight->Ambient.g *= 0.9f;
( s _( d# }" y7 n+ m* B pLight->Ambient.b *= 0.9f;+ P1 f! L/ x- G
#endif //__YENV % F5 _ s- _& }3 h' s2 t
8 K9 b+ k+ V/ A' P: N7 ~ memcpy( &m_light, pLight, sizeof( m_light ) );
4 h4 |' i, H$ x' R
& U9 e2 S* A1 x! m# y D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
# }" K0 a! J8 Q" L5 m% g D3DXMATRIX matTemp;
; O2 D+ v; H* z3 M+ e static const float CONS_VAL = 3.1415926f / 180.f;
$ b% p+ F# K7 ]+ F
3 V* w0 u' Z4 ^) Y( }7 i D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);. L) q i2 A9 ?- f' o
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
& f. p2 i, O+ e9 |5 Y pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 Q2 G4 ]5 p' d2 Q* B5 s% l
pLight->Appear( m_pd3dDevice, TRUE );3 Z! f# v: y Z# y
! q2 o: S: A7 ]- _: P- n" s0 x
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
1 k/ D4 P8 a' I, y0 b0 z( o2 E* S // D3DXVec3Normalize(&(vecSun),&(vecSun));
v# Q4 r/ S& k$ y // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 3 t) n( y6 [! F2 j& X
3 S, _% y% E# L
DWORD dwR, dwG, dwB;* L- p# b. B5 s& t
dwR = (DWORD)( pLight->Ambient.r * 255 );; u& R- x o8 z2 u
dwG = (DWORD)( pLight->Ambient.g * 255 );3 M1 u* H5 N" _
dwB = (DWORD)( pLight->Ambient.b * 255 );& Q, d. ?5 d/ ?3 l
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) l5 V) t1 O# f! \7 v: _, O7 l }8 \1 h4 V s. n. w7 z/ A# b3 ^
}
* D* f4 P5 G' H; ?) J+ s6 P3 n) }$ X# _8 y& V
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );% T3 g6 G- }' L
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+ o6 i3 ]8 R. J, e* i( n
::SetLight( bLight );& V6 H. R" C8 H; q
+ H: c, v/ S8 _$ @# {
// ±ao? ?D?í???ó á¤à?
0 H5 f$ q( C% O# S m_pd3dDevice->SetMaterial( &m_baseMaterial );
6 o/ \: J! J, u9 X" D. K% s* e$ f 9 y7 k" n7 @. e! n
#endif // not WORLDSERVER
, A9 p8 q+ b1 C' A}! E B+ s' c+ c5 R$ ]
并更换' E+ r$ w' B1 s; L- A
Code:0 c/ \9 f( a$ z
__FLYFF_INITPAGE_EXT5 M5 a' w* R. u
定义
% H/ }1 E6 G3 O6 B5 f1 _& _
- J7 Z" ?" C+ R# n& y# C' w' U
+ B o) y+ h* C. o7 w/ d* P3 a
, m. r- |: P0 w5 O! m
& I" |- S9 c( Q& c [现在终于删除我的狗屁加速...
* h9 p/ {. [" D
5 C% v4 L+ c2 C2 N, ~: `( W# w6 ~: X8 ?& v n0 d9 ?8 H
n# \4 ?7 s2 D" ~ |
|