|
|
食品车:' m/ q9 R- y% Z+ H6 q% }, U& V( z$ x
尾翼:
( p4 Z8 v: ~3 Z5 Y1 ~& |, b2 e0 _5 i, W/ {5 g
代码:- H' l- Y6 M+ Q- c- W! \
CWndAutoFood::CWndAutoFood()
q7 C) g: T/ C4 W, c( y' Z5 b0 [{
3 h3 Z0 D; j" [1 N2 b m_pItemElem = NULL;& h) y. m( N1 j' k
m_pTexture = NULL;
, y1 O; n: T- o0 p; ~/ {$ R bStart = FALSE;2 t% F' Z5 K8 f+ n: p
}
! i6 z: M4 G# i$ C) {% m4 x( C
( n9 {7 ^9 r6 K7 U6 Y9 BCWndAutoFood::~CWndAutoFood()6 c7 p' h% T; V6 ~
{
6 N) d! l3 `/ Z- Y AfxMessageBox( "AutoFood ist gestorben " );3 W' h; x) T, [
}. l- G2 }+ o7 `- p0 i' U3 [; V
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
+ d/ H# a- ?$ e, D{
h( F1 t' i6 O* |; L return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
" b' E% K5 X# Q( ]}
8 u, E/ \) @; L
" {! c0 `0 e' S+ i" m4 p! K5 LBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )9 N$ y4 \$ }8 d1 U; D( E
{0 H; A$ k. I2 _0 g( I w" r7 `
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; x( x+ r1 q* c! I
CRect rect = pWndCtrl->rect;
% M3 ~3 _" R/ } if( rect && rect.PtInRect( point ) )
; S7 X0 O, W3 e2 ]0 M {6 y d% h. e; I) y( ^9 y
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
% K( g: I. ^, j if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )5 w$ s- x$ B& J1 h0 ?
{
0 _: d" V- T. N- ?* c if( m_pItemElem )
% f# {2 y& i9 d4 m! X {
; N" C% v6 ~7 e( z m_pItemElem = NULL;
. a, s$ Z- Y9 `5 o }
+ o6 e6 r6 C" d0 S$ I m_pItemElem = pItemElem;$ u- z G& R- J* `& m% C' e
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );2 d2 _6 ]" X3 t6 d9 `
}else{
, o6 Y( c& Z' N$ y+ n3 m2 M3 p SetForbid( TRUE );
' s7 k1 J8 j _% l( U: x }# L L# c# P- S8 g$ a2 l+ ]
}else{
- ^. W( V3 m2 a9 y" i7 S SetForbid( TRUE );5 ~, v1 l. ]$ t1 e* }, b5 x
}$ o( M6 [' Q5 |! T
return TRUE;
" G. r, A' x) f/ T" F1 V& v; W* k1 h) @}
6 h( e+ S. I/ W9 z% a( W6 N+ R9 r: Y! O- J+ ^- }6 ?9 }$ i! j( t
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ), z" y* X) ]" Y* O" m4 U
{( P2 F. v& H( V6 l- S! [9 i% ?
switch( nID )
# ]" L0 g2 R: X {
) f/ L6 l! W% Y2 `- z case WIDC_BUTTON3:, }# |$ }! v6 e$ C
{
0 }' a$ x7 y7 l: H bStart = TRUE;
9 d6 j+ D3 h' _+ I' [0 U break;
' y/ Y0 d& d# k8 ] }( }; N% @6 ^4 ^
case WIDC_BUTTON4:
1 E4 n* j4 s7 L* j6 E3 R3 L {
& V1 R: O; b. D6 _$ U+ x5 F, x( m bStart = FALSE;( B1 x9 t3 e0 B+ ^- z
break;
+ @# X# Y' u' ] }
4 U$ G& o) A! s4 d" z9 v }
4 C( `* c1 A2 }. {2 t return CWndNeuz::OnChildNotify( message, nID, pLResult );' D7 A1 z u0 \( Y/ j
}
/ o5 P& ~: r8 n+ Y i4 S( ? R' f; J) Jvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
6 P+ u; z' `0 v% R& o{) @) |$ ` g: @4 q* h: q. R
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );# x8 y$ H( L2 m; L2 c* g
if( bStart || !m_pItemElem )& \6 y( F; d' O( O% d( L$ b" k
{, Q& }) R5 @8 l& r) q0 |+ N3 ?
pBtn->EnableWindow( FALSE );5 r! \5 _" X K0 U+ t
}else
/ K* _# _$ O) S pBtn->EnableWindow( TRUE );
0 @+ y8 T9 _+ |) Q# n5 e. m! u if( m_pTexture )
6 _! c+ j' M$ N) Y1 c; f {
. |( ^% M- _# W/ S/ L2 x7 n LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ |# _4 @- e+ e2 D+ t2 s
if( wndCtrl && wndCtrl->rect )+ r( i, g: q3 |+ [/ m5 v
{' l& n8 `+ F5 o" t8 n7 Q+ L, k
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
8 A9 X# A; d3 l# u' G }
5 {5 F' p c( F2 T' | }# z3 ?& e+ r9 J( B7 U ^
}4 X( s# l4 E1 `/ ?. p
5 `( ~5 _2 `0 I- E6 A4 O% G9 z) }' f
BOOL CWndAutoFood: rocess()
: M( K) F, o, J A! j, t{/ h a l& b6 R# |3 E
if( bStart )' N/ M1 u/ N. h l. D8 T6 | M
{) e1 E$ z* z- y
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
% A N# K$ Z L4 u$ b7 X( _ {* r$ b0 }) R, C2 r! O0 A( r
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )& b; K& E9 _* h4 d* ]+ o" V
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );( `& [" `5 j5 }3 [. V
}else{
, X' A- L# n3 K$ `8 |' C2 h5 v bStart = FALSE;
' s7 }0 o; g# @6 n6 y m_pItemElem = NULL;+ r/ c9 V7 l8 Z! t. Y- e8 s
}
* @! O3 p- u; l- @, i }1 r4 {" W A/ W* B7 X( K
return TRUE;
) ]8 Z6 @' p0 a( |}
; f4 S6 O5 Z. e% o+ w- U2 W; e% d3 B9 ?
登录视频废话:5 r) b: O }% X/ l$ N/ p4 W' F6 m: e
尾翼:
& T, V7 x- W8 W0 w) V! w( s. Y: n$ n; o& h, V
代码:
$ y8 e& y8 [ ^& F) ~ q; N h% v. Z5 e
void CWorld::SetLight( BOOL bLight ): k# J. o W9 V( L `$ y# ~
durch
" v, D' i; Z$ l9 N3 }! N+ NCode:
8 }7 G, A+ C) v3 A0 uvoid CWorld::SetLight( BOOL bLight )0 j1 P3 j/ S1 g# ~# y- q
{
* B! q+ L/ e5 b9 Y //ACE("SetLight %d \n", bLight);
6 M6 G6 N5 k% f4 S7 q $ y R2 ~% z; }/ e
#ifndef __WORLDSERVER 6 ?6 p; b6 g8 |& O7 g
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
; [3 ~% K5 O6 i& O2 ~1 I; Z0 T CLight* pLight = NULL; w* U m: o' C- q! }4 w
; f4 M( E2 ~; O$ j
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); P7 K6 s, t( w' N7 l
2 c$ l5 t, K/ ?" a' L$ L3 F pLight = GetLight( "direction" );, B! h3 f$ Y3 u! d3 s7 j
# O' R# g* U4 J#if __VER >= 15 // __BS_CHANGING_ENVIR, |; u8 @. f k" ^0 _8 ?7 _
if( g_pPlayer ){
% S F3 d9 \4 `9 X/ v! H8 c6 E2 J ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );% x. N& p4 O& T- E) P- b/ n8 ]9 }% g
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!; N5 O2 Q0 B& A2 V1 z( w" T
{
) ~0 Z3 I4 x, ~- N K! P. l if( pLight )
$ l! l# D' X" V$ V. h% J% L {
- @, [ S/ j8 \* [3 E! v# s+ X pLight->Ambient.r = pInfo->_fAmbient[ 0 ];, q) L& N* x3 U. z# C5 H7 o0 S; e" P5 S
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];; G" o$ p1 }% A' I1 l
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( h; ]+ L5 _1 l4 q, ^( r
8 t o( ?- B" T+ {1 o pLight->Specular.r = 2.0f;
+ i" f( ?; N% S* j( c, k pLight->Specular.g = 2.0f;
+ t( e; r) y) ^7 d2 S' V- G pLight->Specular.b = 2.0f;
! h8 A% L3 F0 R$ s& h - w, R+ A8 C$ ~: V4 @) h
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];4 {& b0 E' o# }6 H( J
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];/ u$ o8 b6 C6 x
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];* S+ |& v7 e0 x, y& R
" o& F& {; K0 y$ l, s. T HookUpdateLight( pLight ); $ W7 d8 Y/ v( t& K* `# K/ a
& l; C7 O0 {5 {, o1 X+ C7 a" T9 q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
a# A, _* D' U8 O- w, s/ J 8 J! z! [$ D6 O, Y- L( ^# Y
pLight->Diffuse.r *= 1.2f;; {: }- j, ?8 a& T! @
pLight->Diffuse.g *= 1.2f;
" G5 a0 Q; e& c0 n* L pLight->Diffuse.b *= 1.2f;
, H+ ?1 N" T5 w" \* E5 M
4 q2 }- P. F: ]' g: i pLight->Ambient.r *= 0.8f;
* P" z0 v, J* X6 H/ O pLight->Ambient.g *= 0.8f;+ K1 H4 k# q7 i& _1 @
pLight->Ambient.b *= 0.8f;5 s! f4 B8 e& t9 L# U3 J( `: ~" C: b
8 a: F* ]. l5 P' b4 P
memcpy( &m_light, pLight, sizeof( m_light ) );
0 }) R" |0 J: k6 q6 v; d' i' R' Z( I! f/ o$ \ i L
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 q4 ?! p' x3 |: D A
D3DXVec3Normalize(&(vecSun),&(vecSun));- s; W) g c# `/ g
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
& _6 N U3 T z; M: g# H pLight->Appear( m_pd3dDevice, TRUE );
. s. |3 T6 H# w0 {4 [1 j8 F7 P9 l ' h% s! d' h8 S! D: o% S
DWORD dwR, dwG, dwB;! Q0 r/ D0 f% u; X
dwR = (DWORD)( pLight->Ambient.r * 255 );
* H8 F E9 \; A3 b; s' A/ ^ dwG = (DWORD)( pLight->Ambient.g * 255 );
{* t% {0 D4 Q: L/ G; [ dwB = (DWORD)( pLight->Ambient.b * 255 );% ^; z" i; ~, Y4 F* g: Z7 ]' u
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );7 I2 P6 w- E# m5 C; A8 F7 T& k) C
}% s9 J# n- n1 X
}0 S. X& G6 [, _ m
}3 y$ _' T6 c+ D1 _
else" X: J0 F! O; L8 h% ]
#endif m2 N; s4 p1 ?. U" z8 c* N/ C
; x( S) ]2 o! s- Y0 {' {6 W1 ~
if( m_bIsIndoor )* g$ Y' M, Z& Z @) f+ ]) `" V
{
" W B. S0 v8 \: n if( pLight )
- j. A* C9 V" J R, s { ! T e& b+ F' y% ^% \ y" ?
// à??μ oˉè* 3 D1 ]) r8 ?, D. d$ C
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
% N; S, s4 F/ n. Y3 P ? pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;9 C3 J* T5 W0 |# x% |& v
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
2 a" O! N0 T7 }8 M3 L7 q1 Z' _$ j" M5 |
// oˉè* ??à? + ?, B6 V/ u+ P! T/ i4 d
pLight->Specular.r = 1.0f;* d3 N3 J6 {2 X* S3 c4 K9 P# u
pLight->Specular.g = 1.0f;
6 a+ v+ z. y& h pLight->Specular.b = 1.0f;
0 H0 R) L J. y8 K5 ~# p9 e* _ // àü?? oˉè* ! V) g4 ~, @1 k1 Q6 y6 e
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
0 [/ @/ [ T) ^4 ^! | u7 N pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
% C- w' z; d1 k* f! N, X pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;8 I1 a; [& a1 ~: ]1 ^9 {
+ K% Q9 k+ E# z$ e1 F6 N+ ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.4 _! @9 Z0 W* \! `1 U+ j9 r
{) _9 d2 }! x% E' p. g5 I+ J
pLight->Diffuse.r *= 0.6f;
r( S% X+ [1 h2 q: a% G pLight->Diffuse.g *= 0.6f;
+ s" S# y+ w8 C8 d pLight->Diffuse.b *= 0.6f;
' }0 q" G6 T2 ], i pLight->Ambient.r *= 0.7f;
& _# W! w% s x5 R( S) V4 o3 B pLight->Ambient.g *= 0.7f;' X/ C* y0 l1 M9 W# t: m
pLight->Ambient.b *= 0.7f;8 X7 M% |$ P5 E) V$ P- ^* m
}
) T K% ?! V4 y( X0 k( B3 @
) v: ?' R0 ^) d, y1 _0 m#if __VER >= 15 // __BS_CHANGING_ENVIR2 M# N2 W% v2 ~) m% K8 }9 y
if( g_pPlayer )
: C/ Z2 B n: \* r9 n% \" W HookUpdateLight( pLight );& M* ~0 r5 x/ x
#endif
( U$ |# D$ e4 u" w memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
: Z+ [ X1 S+ z% q% T+ y$ n/ V/ d8 b3 A9 e1 w' J3 |8 X
pLight->Diffuse.r += 0.1f;/ W- \. ~, X+ }/ |
pLight->Diffuse.g += 0.1f;1 o# N6 h; d( ]( h1 h
pLight->Diffuse.b += 0.1f;
* k/ X/ N0 d% z3 u2 y; u' z( A // oˉè* ??à? ) x& ]" ~% L! ^$ K5 P# X( q
pLight->Specular.r = 2.0f;) S# d# ]+ n4 }; Z6 J
pLight->Specular.g = 2.0f;
- o0 q$ R2 q9 X. I/ p& | pLight->Specular.b = 2.0f;
/ C0 z, N W8 o; ]' Q // á?oˉ
2 ^! G# h; O& j R& H( t5 E pLight->Ambient.r *= 0.9f;
! y" h) o& ~; s6 Y! d7 t' ` pLight->Ambient.g *= 0.9f;( H3 A% |( g+ @3 @$ x, a, P
pLight->Ambient.b *= 0.9f;
$ F c9 @9 \" J( h' W1 ^+ e* t1 J" {! p7 ~" h4 Q
memcpy( &m_light, pLight, sizeof( m_light ) );5 E) x8 A2 ^* u+ q9 a) |
6 C2 ~; t2 `- ]5 m k/ b pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );' ^! O6 L- W& l- ~6 C8 X& }# M c
pLight->Appear( m_pd3dDevice, TRUE );
% F f0 a% a& \ 4 D5 n8 c3 b& r/ E' ~& c
DWORD dwR, dwG, dwB;+ Z2 K0 o- W, {+ y4 M* S
dwR = (DWORD)( pLight->Ambient.r * 255 );* I/ ^! R' G S2 X2 e1 F+ ^8 L
dwG = (DWORD)( pLight->Ambient.g * 255 );
. S! F: B# k! K. Y6 c& u& n3 X dwB = (DWORD)( pLight->Ambient.b * 255 );
0 ~$ ?$ C+ t- H' j0 z dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
6 J% p) n2 h, Y" x }
7 u6 t. Y {, W% `& Q }
5 I( ^# F* p. O0 R! r else
9 c4 T0 [1 u( ]( W# O4 Q {
1 f2 ?* a0 L9 g if( pLight )% W7 t5 E( s! \. k( ?! ^
{
: v/ E9 i" i, o' z9 m$ w8 d" p . @( m: v# b4 K
int nHour = 8, nMin = 0;7 @) i x( \1 O- x- P0 c5 c. Q
#ifdef __CLIENT
5 W* S$ ]7 c @; @0 t: } // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. " ~7 e+ _+ _) s" [1 `$ ]9 O
nHour = g_GameTimer.m_nHour;( N+ c- S$ t, r/ g' A' r6 P3 K
nMin = g_GameTimer.m_nMin ;7 G. t5 {& A y2 A" p! Q; ^
#else! B N0 b- |# Z6 G$ X
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
6 a% u! c! ]6 P1 ` M( { if( m_nLightType == 1 )
0 K+ S8 X& j! _5 ~2 P nHour = m_nLightHour;: w) f7 z% p6 D; I
#endif+ Y5 X- } d! T k/ i- D1 s/ q2 l% f
nHour--; I/ W( G1 w$ d: \: k
if( nHour < 0 ) nHour = 0;9 e1 Z/ Y0 E* `8 |) w3 g% d6 _
if( nHour > 23 ) nHour = 23;
1 H( G+ {9 O2 {2 P: Z2 E6 S0 R; C8 r2 N, R& R( p* X, F
//if( m_bFixedHour )
- d5 e; l3 ~2 Z0 b# ]" y9 V // nHour = m_nFixedHour, nMin = 0;; p( h3 x5 C! Y9 Q, d
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];2 g' ^- w. a! h* D
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
6 b5 A/ Y! _; T, i; ^, J. b2 [8 _0 d- |: T
//m_lightColor = lightColorPrv;. G) K& Q7 \6 m+ o6 y8 K
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;/ V& }' a9 `: n9 |0 f' R
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
/ d/ H0 |: h* k0 _: [: r lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
% n* n% h8 y- l& D5 \ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 W8 L% ]2 q5 W: t; @
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
$ p9 H0 M' z& { lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
( i5 Q8 l$ T$ ]/ R& I // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)6 |9 M |+ }0 r; I7 H' m
% E4 E8 g- W$ n8 `. P2 d. c0 E& ]. n // à??μ oˉè* # _. `8 O- r4 M/ S
pLight->Diffuse.r = lightColorPrv.r1;+ _& E; L: {3 ^, {
pLight->Diffuse.g = lightColorPrv.g1;1 y9 o1 F4 W {# Z* k- [4 \* T. c% S
pLight->Diffuse.b = lightColorPrv.b1;* B9 g. ]- b8 o# R9 Z3 }2 Z% Q
// oˉè* ??à?
" ~( c; n+ U. T/ x4 T: x pLight->Specular.r = 1.0f;; N, M! x! z, D/ x. `
pLight->Specular.g = 1.0f;
3 o# [% A% ], A4 x: ^ pLight->Specular.b = 1.0f;* H# `' H5 }) O; t/ ~
// àü?? oˉè* 3 E& ]6 k% ?8 \! N; |
pLight->Ambient.r = lightColorPrv.r2;4 R, T* e, r4 e! y6 X
pLight->Ambient.g = lightColorPrv.g2;) T, E$ m; _1 x4 P1 E8 J/ r) |* Q
pLight->Ambient.b = lightColorPrv.b2;
5 _- A: U+ ~+ B# w
: n2 D5 ]. j! A$ Q6 K if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.) l' ?( r* r2 ]/ T
{
5 _4 q# ~3 X) G ^2 Y# u: n3 g8 C8 C pLight->Diffuse.r *= 0.6f;/ a# B/ Z0 l; _ n
pLight->Diffuse.g *= 0.6f;
6 n, G o, n' Q' C8 O7 p2 a pLight->Diffuse.b *= 0.6f;4 ^8 }9 T9 h$ H8 W2 L2 [; n
pLight->Ambient.r *= 0.7f;
- U: a9 J/ j! R5 e* @' q: O pLight->Ambient.g *= 0.7f;
/ h, m; y r0 b, W7 O pLight->Ambient.b *= 0.7f;+ o* K( L* H [6 H- m8 x- M
} u& U; S9 \- w
- r; W$ w8 [; D- W# h4 q#if __VER >= 15 // __BS_CHANGING_ENVIR
5 Q9 T, z) j. x5 Y if( g_pPlayer )0 Z$ i4 ~# G6 @9 a1 y
HookUpdateLight( pLight ); : G( i, D5 J; |- B
#endif
' @+ s, x0 p- w, w9 { memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
- @/ G5 ]1 u' b8 @) _" y" \
m: H1 B- M, [& j$ n) f% {9 c- V( E#ifdef __YENV+ ^3 W# i) j" l) E E" G
pLight->Diffuse.r *= 1.1f;4 I$ {: s9 X# M: P
pLight->Diffuse.g *= 1.1f;- _- m- h \4 m
pLight->Diffuse.b *= 1.1f;
Q- x) I1 x7 i/ i B6 i // oˉè* ??à? 9 p8 G, M/ _7 M8 C5 t5 A
pLight->Specular.r = 2.0f;/ A% e1 l* M3 F% G
pLight->Specular.g = 2.0f;
7 q5 z$ \' s" b- u& b W pLight->Specular.b = 2.0f;
2 v5 o! c5 }$ k0 y6 R/ L // á?oˉ
1 x3 a" H: Q6 ]' q pLight->Ambient.r *= 1.0f;- _ Z' X( s8 y2 }* G) S. ^2 T
pLight->Ambient.g *= 1.0f;0 Z3 Q' H* E& t, f+ [
pLight->Ambient.b *= 1.0f;
7 z$ R0 O7 m& N1 q#else //__YENV
1 J; W) X4 T' Y0 |" ] pLight->Diffuse.r *= 1.1f;
7 X8 f% m2 C8 T3 i# H7 `" C4 i. _! ^ pLight->Diffuse.g *= 1.1f;
3 D1 I" O! G% S+ v" x8 |% x pLight->Diffuse.b *= 1.1f;
; L& q! L5 c& u# P% V0 g! m // oˉè* ??à? 7 R" s* o, x; S- O. ^/ f( H- d7 f
pLight->Specular.r = 2.0f;( i1 a4 M7 \+ X' k" H0 X0 W$ u
pLight->Specular.g = 2.0f;
) \) f" j% @, ?& }* |+ E9 O pLight->Specular.b = 2.0f;
; M8 w9 O' E' `4 @ // á?oˉ
1 h" H$ e6 c9 ~- ?" ^8 j" c, x pLight->Ambient.r *= 0.9f;
. v9 j$ B" |6 ?% O3 f pLight->Ambient.g *= 0.9f;% g& @ [. k" H
pLight->Ambient.b *= 0.9f;
5 v1 l* z# R6 `1 ~#endif //__YENV 7 \: C2 Z$ M5 _
2 I3 Y8 i. Q: I2 j4 ~4 z: D5 D memcpy( &m_light, pLight, sizeof( m_light ) );) ~5 J$ `3 i0 E
, l4 }& t2 w; [3 q1 M
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);9 C" R+ D1 P7 T. C; x) l. ]9 s
D3DXMATRIX matTemp;0 x% K/ x0 t: @# A" ^" Y h
static const float CONS_VAL = 3.1415926f / 180.f;3 L1 }) W; H; E+ |2 l/ B! `5 D: N( p
* X' R" \7 o a/ N4 g; c/ }1 t D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
! H( q: S7 ^+ x! J a D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);' @) h: H" \0 t# `( k
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); # w9 W: N* x' I
pLight->Appear( m_pd3dDevice, TRUE );, I- |9 D5 o- n! j, Q C$ M
. J0 a: j6 ?- V: y // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 L0 f9 q0 A3 d# i: Z9 D, R // D3DXVec3Normalize(&(vecSun),&(vecSun));/ r, b5 }0 ]2 s4 Y* ^
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); , _9 ~: y$ d' o, f
/ e* D1 N% @! K0 N DWORD dwR, dwG, dwB;' ?7 x2 T2 ]" S, M; a8 t5 L1 V
dwR = (DWORD)( pLight->Ambient.r * 255 );
% M; u4 j, a( c$ m& J$ b6 L, U dwG = (DWORD)( pLight->Ambient.g * 255 );
3 q. g" A: C/ ^( N" v6 C' x dwB = (DWORD)( pLight->Ambient.b * 255 );
6 n C& X0 d2 f4 q; Z* C dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 b; f0 c/ |, w0 K% U* _ }/ i. r: y" ^; o1 O; E
}% k4 H! K7 \( k: S; m. r! Z
( ?0 U- n, Q. G# l: ?, k
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
) }3 t5 V1 f2 a. N( N7 E 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) );
% a+ C( B; G5 ~4 O0 L ::SetLight( bLight );
: n; F# J( P4 C, J' W5 v! i( ^9 z' w% P. P" s, D5 E% P2 s
// ±ao? ?D?í???ó á¤à?
" p. [, F1 R& @" f. N m_pd3dDevice->SetMaterial( &m_baseMaterial );
1 V/ h" k c" S; k+ l4 Y9 ?2 p* _ ( ?+ I1 G y h5 i+ V
#endif // not WORLDSERVER
2 N* S1 R5 I9 B}
; A" ]& {3 A' T; ]- a并更换) w h$ z9 B G( o
Code:
3 w# t9 u6 ]; `9 A8 @1 d3 A__FLYFF_INITPAGE_EXT7 F$ W# \7 l) h* t# y' @
定义
; _- E1 u9 S- ]3 y2 N: S& @4 t
, k' f: ~. |) v" D! b4 P1 \
1 \- r1 Y$ |0 l4 ~% K
7 ]) t" C% [! V+ f
! w/ Z8 M# L J+ x现在终于删除我的狗屁加速...
! o8 w2 m) }; G5 T
/ P3 q& ?% i3 ?* V- g* x0 ~7 r4 H8 ?& ?' C* E
" ?" ~& ^( r' {; Y9 y6 Y9 b5 t
|
|