|
食品车:' z& @4 M$ F( q) M) B) k, d
尾翼:
$ ~# i+ U ~# w& z1 G7 H2 y9 U
2 N- {9 C/ \# h6 x代码:+ C# s9 M$ t% D/ u
CWndAutoFood::CWndAutoFood()- } A; B0 G0 n7 Q( Y2 _7 z1 V2 }
{3 K: |% O6 y4 T) \6 C1 J8 K; ]
m_pItemElem = NULL;, R4 A& z. X) p# p
m_pTexture = NULL;% y; \' {. m' L* ^. K( Y& B
bStart = FALSE;6 P/ A* N- U% h" }& u& F1 d
}
7 d. }# L& E& R+ O# W8 f, H3 c5 A, p5 o0 i# t
CWndAutoFood::~CWndAutoFood()
4 Q% V& i5 d! W) m1 P4 x) f* h1 ^{
7 C0 i7 ^4 Q% l7 m- M9 h) n AfxMessageBox( "AutoFood ist gestorben " );
b- ^. M( t$ a; p% O$ e}' Z# q" A! H0 a5 v! Q& m: ]$ Z
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )6 e5 A* r3 ?6 j: R% v
{* l9 q a' J- T, B
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );9 p" G. y. E( r" K Z
}
# s6 [$ X" U* g" M) g+ c. U4 h) U5 j5 @/ H2 ^2 c- |
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
( @1 C# _% I. k$ c& h/ m3 s k' i{8 }2 }: f* n+ G+ {4 l. z1 m
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
y- X/ V: `% ~8 z- ^" R$ E J+ H3 l" a CRect rect = pWndCtrl->rect;, c& k2 B1 a2 ]7 N: O( X$ c
if( rect && rect.PtInRect( point ) )
, L% Z0 w( Y3 }& s( Y G {( m: c L) q5 Q* H, h# v1 J( g
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );/ j! `! d9 r+ l- O# n
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
& N' X K0 P- `% z( B2 P% ] {
0 A3 z V3 W/ L* g; j+ x5 j if( m_pItemElem )/ j8 ]: z* }2 o
{
/ b+ ]/ b" L5 ?" Q' J m_pItemElem = NULL;
/ S* J9 R* a+ L }
; k& H/ w/ |; H& U3 Y/ }3 K m_pItemElem = pItemElem;& m# A! J' L. a+ c1 _/ P% i9 H7 k
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );, w$ L2 D+ Z4 }
}else{0 G0 G7 q% ~3 |# U( [' Q4 {
SetForbid( TRUE );% ~5 O$ w9 E7 ^+ _. o
}
( u0 G7 z) m3 O- |) M* E: _ }else{1 A; a7 d# U: ?" n
SetForbid( TRUE );
. D7 I% s% ]4 \2 P6 L }4 G2 z/ i o! e: u
return TRUE;
1 ~; E. j- y& A: F1 }) X}
! B8 P d) A: L) V+ l0 d: B9 O7 O, S- d4 P, B4 Q% l* |
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )4 l$ b) Z8 }/ J6 O9 }
{; E7 P! L" N9 c6 x! b8 b! L7 q
switch( nID ): u& t6 t @) ?9 m( {: a. c% k/ o
{
% ?. ~( G. Q% q6 `. r case WIDC_BUTTON3:2 |+ D1 Y E, n; R# C
{& }5 [+ b) p% B* z, Y J! |- j
bStart = TRUE;
2 e) a. F0 T# x; o4 J1 S break;
7 P6 _7 ^0 X) d/ x, k5 ? }
' O! c; A% u4 u& }, @ case WIDC_BUTTON4:. `# O! j) F/ x* a
{: r" l% Q) `/ y7 F7 q" r; s
bStart = FALSE;
$ b7 A* t% n: k8 U) }# r) i" e+ b break;
; r, b/ B6 I) k' u8 ? }: v3 Z7 ?' s& L* k: [
}9 r! b. q, p& ?$ d$ C2 Z
return CWndNeuz::OnChildNotify( message, nID, pLResult );
0 }! M4 A: u" q9 N& S& n' r* F}
6 z, r/ H* u" r* a% K2 n' v4 Jvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
% Z! w4 y# p$ C{
! S6 ^0 R- h8 m: y- x CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
! @( ~ q b5 o! ^9 i2 @' ] if( bStart || !m_pItemElem )
+ Q4 b6 _5 j3 J {
4 H+ _4 W5 V" Q9 t pBtn->EnableWindow( FALSE );2 v6 g8 n# r6 |0 L; k1 T( v
}else
' i/ G* n9 h5 `) B) z2 v/ T1 r pBtn->EnableWindow( TRUE );
: _2 [5 R3 D- z6 b _0 r if( m_pTexture )
. x; E1 X! ]& P; v' h {
6 u! a, Y8 v9 z& C9 i5 R LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
) D3 @& a' Y* b' H+ y D% t% @ if( wndCtrl && wndCtrl->rect )
6 W# A! B$ E7 L9 ^* h7 J5 g {
, P& H i+ D' N3 N( G m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); ^# H6 X& h c( v2 b d
}* N) r R2 G: y6 N' z4 w
}
0 ?5 D( e0 W. f& l0 `}" b# S* G1 l+ H; H* o# g
' [1 w/ a9 H, A; l! sBOOL CWndAutoFood: rocess()1 u& }0 v* F/ v; |. b, d+ [+ {, c4 t
{
5 Q& j! P, |$ P0 w if( bStart )
, ]3 ^* B5 E- {6 S; j {
: T* P [% C: s/ r" G if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )) S# Y% r+ R) ~7 u+ i; K$ T
{+ Z3 l. h) t% W1 I7 S; n, v
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )' O; M' U+ I! |- v9 y
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
# c1 m' r4 W! [ k0 F: }' X4 F }else{
3 O' @5 Q& c4 P& Q bStart = FALSE;/ y: S" L, \% n5 Z# |1 l, L
m_pItemElem = NULL;+ Y9 e) c6 `4 o1 D0 {% l* k0 K
}
# ^* J) e3 Q& b% C1 L2 d+ V }
: m0 C" S% l, t5 x% G3 Z1 a5 M7 T return TRUE;% B& L$ Z- W. n8 n: z( J
}6 Q9 R& L2 q( H' ?4 Y
" x1 A4 y* ^: G9 i. c; D& ?3 h
登录视频废话:6 z2 v: m/ F2 t5 b4 q" H
尾翼:9 O* E, P1 y2 ?) ~2 O+ L
8 z. k: c/ N. R3 Y) `$ B
代码:0 p. z- @; b! X6 o, \2 I
" m* ~1 ]2 m. ~. }void CWorld::SetLight( BOOL bLight )/ d& M' h; R2 B A% b0 x7 m. Z
durch
6 B8 C# b. L% t& _& wCode:" w, E U; ~, ]# ^6 h. `
void CWorld::SetLight( BOOL bLight )' s. T+ o1 t1 x" W5 c2 [
{1 M. s0 X3 D" R) a+ ], `' K0 W
//ACE("SetLight %d \n", bLight);
6 b6 R$ \0 u* `( n% I0 C$ j 7 E& i6 |/ C) I
#ifndef __WORLDSERVER
K- P" s. k9 C0 L DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
6 R7 V/ `& t* r" @* A9 E CLight* pLight = NULL;8 m2 @$ W4 @, J' Z( p( ~) W$ r
$ {2 [- ^: K8 b( L f D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
) M1 ~8 m& i7 ^, J7 C2 l
* P, q) }. @# S pLight = GetLight( "direction" );
k/ n2 I+ w- u% y
- |$ y& w6 K* C2 e2 h#if __VER >= 15 // __BS_CHANGING_ENVIR$ X" V: d# a6 g
if( g_pPlayer ){
4 F% ?/ |+ y1 x$ _* Z+ E ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
7 C. b" Q2 }: }" i. e9 {! d/ M9 N if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!) n) X& p% u& z/ u0 |6 p
{
8 d! {& i" V3 u$ ^ if( pLight )$ h/ E7 O# b- z. }1 g
{4 u/ m$ w! t/ O" {
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
5 N, W% ^( {0 b5 |( R; _+ D pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
( T" _+ J# `" O9 r- T |; I pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
7 L/ o# K7 D* r+ `8 k
; L$ x' D( s+ `7 z: s* h2 v pLight->Specular.r = 2.0f;+ s% o3 U1 a) O2 W
pLight->Specular.g = 2.0f;
7 h" t7 ]* U6 A. r' k9 u pLight->Specular.b = 2.0f;* G# F/ D/ Q( N4 m# v8 K
6 h5 A$ w5 ]% m
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
8 }% J: @# O" \" k7 H/ E pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];0 c+ z& N0 e9 Q4 W
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
7 Y' g9 b1 H' a( r$ U- ~ / G/ j5 F$ l: ?) k( L' d( c
HookUpdateLight( pLight ); . k6 E4 H* M! W# f, R1 A# `
. X/ l% y+ x- C2 X6 Q* G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* K1 V# _4 p9 P% @- e9 s
1 j/ V) T$ V3 ^ pLight->Diffuse.r *= 1.2f;
& P1 n) T/ N- S+ L4 K5 o0 W pLight->Diffuse.g *= 1.2f;2 ^& b) H/ k2 H0 J; V
pLight->Diffuse.b *= 1.2f;
( L H7 M3 B: N1 n
# T0 U! l7 f; J9 F5 j2 u1 U6 a pLight->Ambient.r *= 0.8f;/ Y2 _9 P# k" t: r( x
pLight->Ambient.g *= 0.8f;
$ k0 j! ^' ?7 K pLight->Ambient.b *= 0.8f;
$ T4 W2 s. _2 A6 O$ B1 T7 C & M: q3 ]$ ]" ]+ E& t
memcpy( &m_light, pLight, sizeof( m_light ) );% o+ R% |1 p0 D- g/ ~) y# N
0 F- @/ Y1 w% x5 X0 _% D D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);" L2 V8 ?* U, j6 E+ \
D3DXVec3Normalize(&(vecSun),&(vecSun));, c5 |- g2 M4 s: x& f; x, f
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 q, O( a* p) ?$ }! X- }5 X" y; `# ~
pLight->Appear( m_pd3dDevice, TRUE );: w2 A- B3 o, u; W3 @: z1 ]
0 c- \% M* E# P- l U
DWORD dwR, dwG, dwB;9 t: p; E/ X& c' {! J$ A3 t
dwR = (DWORD)( pLight->Ambient.r * 255 );
1 x# k1 u* m. b dwG = (DWORD)( pLight->Ambient.g * 255 );
4 S6 ]6 w& ]) R/ ]$ d! P0 y: h" A dwB = (DWORD)( pLight->Ambient.b * 255 );4 r/ e P H6 L1 k
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 b; o& k v j0 L; y2 s
}7 {. p1 z2 w6 P D: Z0 g
}! X7 U! T+ `/ p- u; D
}9 y {: A) Z& M8 X, e0 T
else9 {( s% \% z& j0 U" b4 v' _2 e$ p
#endif 1 r4 P2 u7 R3 I' n. M1 @. } F2 z Y
p0 r0 \- @* Q& J$ R' @
if( m_bIsIndoor )* _( u7 u, ]/ @- I) f8 ^+ K7 `! T
{& u/ e9 m, ^! m
if( pLight )
9 e6 S, D- i2 W5 o2 z% C1 y { 0 y$ o! }/ ~/ b! v+ y
// à??μ oˉè* 7 ^" \ q$ E/ }. @- e& C( N
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
+ E( [( j' r4 x! e pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;; h7 s8 T+ N( ]& e5 ~
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 U! A- ?1 b% j! D+ j) y! V
' ?6 ^/ D8 `! c
// oˉè* ??à? * A w! z2 K0 `" S" v
pLight->Specular.r = 1.0f;
7 d7 t2 L" j7 T! C' W2 e pLight->Specular.g = 1.0f;
6 i" g$ w4 A# ^& Y4 c0 z; @ pLight->Specular.b = 1.0f;1 j8 ^+ I, O0 f$ }# ^ m
// àü?? oˉè* A# ^8 R' M9 |0 X. i$ P
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;, o1 L# {! \( Q2 m
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;/ r+ Y& A% j& u" u6 ]# T% k/ U
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
4 s+ k( P4 K; B7 h- Z+ f
9 P! v! C) _9 U. h8 ? if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.8 F! _+ x# g- G9 h* _3 y
{! t7 k" `; `+ ~5 z3 k; K0 h# N
pLight->Diffuse.r *= 0.6f;# y5 w6 N& T$ z" _2 F5 P8 d3 I
pLight->Diffuse.g *= 0.6f;: {) h C0 n; V
pLight->Diffuse.b *= 0.6f;
! y/ S% ~; \, y0 H& A2 p2 l pLight->Ambient.r *= 0.7f;4 C7 W. D( k N# N9 z+ k
pLight->Ambient.g *= 0.7f;
/ V! z" l+ X( x, ^ pLight->Ambient.b *= 0.7f;
; M1 L' ~+ D" q6 n; [3 l( q: @9 s }$ s+ f: O5 Q' s d: d6 h! o2 G* e
' p) [# h3 t9 A' m+ I
#if __VER >= 15 // __BS_CHANGING_ENVIR- W! N8 r6 H" H! H7 y) U; c
if( g_pPlayer )6 @7 H: y7 d. R9 D2 j
HookUpdateLight( pLight );1 h$ h5 ^/ r% t: U, ]! A2 E1 f
#endif' T( P0 a* N* n1 ?# a
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );! R- R5 ~* W& I$ M+ A
: G7 m& \$ z$ v
pLight->Diffuse.r += 0.1f;
: _ w5 s0 O0 V2 U pLight->Diffuse.g += 0.1f;% W3 a2 H6 u3 C |0 ]. q; I
pLight->Diffuse.b += 0.1f;
; s6 r; q7 \. ^4 V+ @4 F% } // oˉè* ??à? * D( O& T7 x& N) ]
pLight->Specular.r = 2.0f;7 J6 e& E3 v3 _/ l! S9 j/ U
pLight->Specular.g = 2.0f;
8 B" }7 l4 F. Q4 W. x' [ pLight->Specular.b = 2.0f;
, x' g8 [. f. }0 y5 p$ @$ p // á?oˉ 4 y+ g! U) G& X6 I0 O
pLight->Ambient.r *= 0.9f;1 r$ M; Q# s9 E" ?; ^4 E4 v- A
pLight->Ambient.g *= 0.9f;
+ ]- b* p) W9 i/ A1 W7 X& U pLight->Ambient.b *= 0.9f;
1 c% s1 Y5 b6 W3 [0 H$ e0 ^7 @% N' w: K/ u
memcpy( &m_light, pLight, sizeof( m_light ) );( n6 t% \ i# N/ I# e
9 |) U# r% g/ L, |& r8 }5 Z1 t pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
3 |, B; |" J3 e9 ~ pLight->Appear( m_pd3dDevice, TRUE );; |% p+ U7 n4 O8 u8 h! M0 F
; J* N5 S- c; H
DWORD dwR, dwG, dwB;1 e: r* `0 ?$ X. E& Z! I. m
dwR = (DWORD)( pLight->Ambient.r * 255 );6 E2 Q9 o" G0 D0 Y8 R
dwG = (DWORD)( pLight->Ambient.g * 255 );* S5 V- p$ Q( b/ w0 T
dwB = (DWORD)( pLight->Ambient.b * 255 );1 X# d' H9 }. s+ T- j0 `. `
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
, {2 v# u& @# }, B( v8 U4 K. \2 U# ` }
# t* W% \9 l4 P9 _8 o( {$ ] }
/ ?: v' W: M# l3 Y7 T- D4 L else4 {: x1 l; W4 J2 N0 m/ {. r% v" `
{4 ~+ G' k8 w$ P2 t
if( pLight )
0 M/ u! u' f8 y1 ^5 f6 d+ o7 O; @ {$ `& z1 ?6 H7 K, J/ ^5 O: h+ ^4 q) e
w, q- K7 L/ _0 w' c( O4 y int nHour = 8, nMin = 0;7 ^5 E& ~" ~( E+ T, @3 A% M
#ifdef __CLIENT: T" O `" X* V- ^4 x3 @9 T& z
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
; B$ J) y7 C! y' O% ^, a# E nHour = g_GameTimer.m_nHour;
4 D, w/ f: R7 E8 N U nMin = g_GameTimer.m_nMin ;
5 @9 }% k7 U6 v5 S: B* o #else
. ^. K- S* ^$ T5 d$ N% [; Q // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.9 j$ I9 F& b, W! ~9 `7 y: P5 _5 w
if( m_nLightType == 1 )9 v ^6 b5 N4 V
nHour = m_nLightHour;
. e( f% g" i9 n #endif+ R9 f, h2 A& o2 P* B8 Y6 L# H
nHour--;
+ A+ M2 k9 O" O8 [0 h! ~ if( nHour < 0 ) nHour = 0;
/ B) _ B, w2 M( x if( nHour > 23 ) nHour = 23;: A4 M3 U0 S7 H/ q, m9 g* z# N0 \
- c6 z- H! h/ M+ j+ e
//if( m_bFixedHour )7 z8 R* D2 \8 n
// nHour = m_nFixedHour, nMin = 0;
8 X% @! }; o- F7 c LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
]$ H. H# b5 }# ~& K7 { LIGHTCOLOR lightColor = m_k24Light[ nHour ]; p) M1 s7 B8 f+ H7 \
* m6 a/ [* [: S; @$ D A4 F
//m_lightColor = lightColorPrv;
, s+ q0 b2 |* `- O: O lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
! L- b* P8 j- Q" y' H. ` lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;* u. y) [0 y: n0 Y, W
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;+ x& ~* J4 |% P- p* e
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
; n# ^3 d* i% U. K2 M2 {7 ~ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
* w( S5 Z- n) D6 r3 ^* Z9 K lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
, x! {+ V/ e9 N // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
9 X, }4 z4 p7 C- l8 K$ T( X4 {' L5 X* c4 l; ~7 k2 y
// à??μ oˉè*
' m6 T* _% n9 d, q* [( m+ e pLight->Diffuse.r = lightColorPrv.r1;
( w8 C/ t5 q: ?7 t* Z7 O pLight->Diffuse.g = lightColorPrv.g1;
" y/ d8 q) k2 o% v6 k0 s pLight->Diffuse.b = lightColorPrv.b1;
" Q4 i7 x0 W& y* d V // oˉè* ??à?
3 z7 ]0 w. t( y# f' Z5 ` pLight->Specular.r = 1.0f;
! ?! @+ W% W. @$ j7 G i; ` pLight->Specular.g = 1.0f;
* k# ]. L: S) ]+ ^0 f pLight->Specular.b = 1.0f;
; ~: r5 C& ]0 `/ N v. \ // àü?? oˉè* , A6 d9 `) s8 n1 y% ~% t5 L
pLight->Ambient.r = lightColorPrv.r2;& M6 g8 v" }- D; a
pLight->Ambient.g = lightColorPrv.g2;# ?% i, Z3 G; ^+ S
pLight->Ambient.b = lightColorPrv.b2;
- Q* F0 I: F8 M! H4 O* U, z: _0 X' L
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 \* j. j+ e+ p9 U { |/ z1 K! { k7 c" t8 s7 ^& o& B0 E
pLight->Diffuse.r *= 0.6f;
' i+ ]( V+ } O9 y @ pLight->Diffuse.g *= 0.6f;
: ~% ^6 ]$ w1 f5 `+ Z( Y N i pLight->Diffuse.b *= 0.6f;
: g% q) d* P6 |3 o4 E0 K. M5 i* P pLight->Ambient.r *= 0.7f;3 N0 l4 M! ]7 L
pLight->Ambient.g *= 0.7f;
: d$ u* F8 @' E3 k } pLight->Ambient.b *= 0.7f;
( T# O2 E! a4 v1 l# a }7 F8 X4 R+ S' r( v. T! B9 \
" {; Q; W, c" \; E! R+ s$ U#if __VER >= 15 // __BS_CHANGING_ENVIR# y& F( e9 n5 x r
if( g_pPlayer )' b8 D6 R6 |# ?# Y% {; I
HookUpdateLight( pLight );
, I# o- \' D# H( R#endif, d( z, o: Z! O3 f! Y6 m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 F3 k% \" X2 d) |
. Y3 m% m! Q5 E* k; C" R#ifdef __YENV9 N K) O' P- @5 e! V- U
pLight->Diffuse.r *= 1.1f;; p1 T: d& T/ O! Z( ?! K& e
pLight->Diffuse.g *= 1.1f;
9 V) b1 y) `* N4 z" q pLight->Diffuse.b *= 1.1f;/ `" T. b$ V% X0 d* o
// oˉè* ??à? 5 U! [ _4 X. n
pLight->Specular.r = 2.0f;$ m5 L$ d- K/ A, ?
pLight->Specular.g = 2.0f;
; t$ c- o0 ]& j0 s/ y, j pLight->Specular.b = 2.0f;7 i, t3 G3 F7 p, T" `3 \* [2 L; a
// á?oˉ 1 [ P; k9 j; _# r4 m
pLight->Ambient.r *= 1.0f;5 q2 |# k1 t# k- h& m* M
pLight->Ambient.g *= 1.0f;8 K e2 Y# q% l7 X( ^, M- `; Z
pLight->Ambient.b *= 1.0f;
- b5 {) s2 G; f) w#else //__YENV
& A( O3 c" d, ~; R pLight->Diffuse.r *= 1.1f;
* z0 G0 T( V% S4 T0 c pLight->Diffuse.g *= 1.1f;: ^" B& Y1 T6 c- [9 [- N
pLight->Diffuse.b *= 1.1f;* {3 ?/ ], x' f( F+ T
// oˉè* ??à?
; A2 |: f% M, P p+ R* a3 t; j! E pLight->Specular.r = 2.0f;2 O! g9 T; V7 T9 K' R. f
pLight->Specular.g = 2.0f;
6 K: ^/ j2 o* q1 b( L% S- s! M pLight->Specular.b = 2.0f;- d( S7 u9 y! r: H: J
// á?oˉ
& u% I+ k6 ^, n6 ? pLight->Ambient.r *= 0.9f;2 }' r1 n7 X0 c* U
pLight->Ambient.g *= 0.9f;; g7 S8 ^3 g; s5 w7 h) C
pLight->Ambient.b *= 0.9f;
: G7 u9 S+ b, D) d' {#endif //__YENV
( }# ]4 E8 ]; n: ~) u: y7 \, z+ r: T4 ~4 { ' Q& O4 e5 @. k
memcpy( &m_light, pLight, sizeof( m_light ) );+ [' ]; g9 c2 J. x5 w3 l+ d
8 P& s' {! q2 ?! x D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);) @* K' |# D. K. K& W
D3DXMATRIX matTemp;) U3 y, |" w0 F/ b5 o5 \7 w
static const float CONS_VAL = 3.1415926f / 180.f;
+ [% L+ [+ U! |- `0 N5 n; U" ?0 B' R% Y
/ Y2 H8 u. ~ s' r/ b4 i! } D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);9 ^% c0 w1 q9 W$ |- X4 t1 U2 w
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);7 k9 N' Z, k$ z9 P
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
; Y2 j4 k( H3 I$ b+ m6 ]% F pLight->Appear( m_pd3dDevice, TRUE );% W0 {5 y! w! P2 p
2 @6 A$ k3 u4 o* p) }1 w8 T
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
' K4 O. V) A8 t5 g& K: k // D3DXVec3Normalize(&(vecSun),&(vecSun));
2 h2 ^# C6 [# @ _5 r% p/ c // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); $ B. c# R6 H8 a; C: D
9 Q) H. X& w1 ~% ~0 e( A DWORD dwR, dwG, dwB;
) q8 v \; R" {4 o( M8 |- k4 v dwR = (DWORD)( pLight->Ambient.r * 255 );+ J& h* K2 x# @% U
dwG = (DWORD)( pLight->Ambient.g * 255 );. y. [: W5 s/ [% f4 Q! h& i+ O
dwB = (DWORD)( pLight->Ambient.b * 255 );/ S, H; w7 t; t4 H3 W# J+ J0 M3 V
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 S B1 G! k7 U5 w! h( f }1 V. s2 K8 u, {! z) m& p
}! m7 n7 c6 A$ L9 E* L# \6 T) z7 R
6 n& i! y) `" \; w
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
% K3 n& x# J, u 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) );7 j. K# B% J( G3 g$ Y6 e
::SetLight( bLight );
* x5 `4 s. h' a; A
, b8 P# R6 t" n5 c z# v // ±ao? ?D?í???ó á¤à? , x4 H5 S- z, @3 l9 F
m_pd3dDevice->SetMaterial( &m_baseMaterial );
9 t; f4 ]/ X( M5 z+ S- L; r' m; ]
7 j' R+ S% q1 T#endif // not WORLDSERVER' _3 E9 J0 W j
} ~+ d6 j/ _- ~1 C4 A1 z( y
并更换. F6 }- ^% X8 I: `! X
Code:* R2 I' H+ T7 N: h0 x+ b
__FLYFF_INITPAGE_EXT
! `$ r; @5 ^: F8 Q4 b定义' `/ K5 b( r/ L* K8 L$ E
3 ?% a/ ]6 m1 f0 ?
# w7 g/ `) H- S1 V( Y% A9 D3 ~. ]
1 ~3 y5 U/ o% A/ x! T
. i0 s0 Z6 ?# ]* K
现在终于删除我的狗屁加速...1 B& \6 X: y' u1 n
$ S! K- Y! z- o8 _+ w+ h
2 v K& B) {$ M
7 j( K) d# T6 ?3 I |
|