|
|
食品车:9 Z- b0 z5 {: r+ r. r
尾翼:
3 d; O% P+ h5 i1 ? h6 ^& _) K7 o4 R+ j! ^6 A' J0 h
代码:8 K, z2 B/ m" b/ H! q1 i
CWndAutoFood::CWndAutoFood()! [' d" l4 u# `
{9 l- s8 w0 I( @5 {/ [9 V* ~. P
m_pItemElem = NULL;
$ F1 k/ ^5 ^. T0 a) o0 ?2 H m_pTexture = NULL;5 s$ P B% @* |$ r
bStart = FALSE;* l4 h W! g" T1 q, R/ l
}
1 V! ~7 r0 Q. D# ?. I5 M# N
- w" y- M4 m7 E, H6 }CWndAutoFood::~CWndAutoFood()
' @7 M! |1 d+ F, c* i# z5 J{* z* @% k1 C) y' S% ~/ y, [
AfxMessageBox( "AutoFood ist gestorben " );
) E, P! V3 r7 C p1 m( t2 w3 b3 c$ D5 r}
! Y% J$ W: A FBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
+ d8 k9 v7 f( D{
" N6 B( a b9 Y return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
2 L6 \& L% T, k }; c}. o7 R/ |7 Z8 G+ ^
2 a( R* t& q M8 A. i8 }7 c; s9 c; @
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
6 B. {$ b/ B: { J{
/ K& n% ~+ y. o LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' u- r! O7 r( u$ @ CRect rect = pWndCtrl->rect;
, ^' p8 w2 T& X4 J9 @8 { if( rect && rect.PtInRect( point ) )
* N! m8 j) {) Y3 ]8 V {9 e+ R: s; N" [$ r( O- j" D5 ~
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );" E# i9 b: M8 G; Z
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
( Y) T* j6 N: I4 t$ m2 m4 g6 b0 G {
z* o4 V. {/ t/ R- P, f# b; b8 s if( m_pItemElem )4 y6 ~2 l; s1 T3 C0 s; M: M
{
" t* g4 b/ E8 D4 N- H m_pItemElem = NULL;
+ \7 e) x6 e6 x+ Z }
: O; h, s9 Z7 i$ d% l/ O m_pItemElem = pItemElem;$ t4 w& T# L. h3 p4 Q
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );( Q, i$ C! ~ z) {* e8 k7 s8 X
}else{0 w D7 ^6 h- j) l- u, j( |0 h
SetForbid( TRUE );
o' l5 `" O7 ~5 \) U }2 X) Y+ g- n, q2 p; K9 w
}else{
$ H3 D# l4 y/ P4 I SetForbid( TRUE );
5 V* n3 ]% ^ a! o/ g }
) B6 V0 h! Q9 Q) Q, N: ? return TRUE;' V4 R4 I. \: }* f$ v$ }
}$ L% ~: e! q n$ n0 ]7 \0 Z* ~
$ V# v9 }' c4 u% \& v! C8 u9 n& }+ zBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
7 [1 c8 v9 `. [( F4 [" L j{
( L2 Y$ N, k# n5 ], V/ { J switch( nID )
: |1 F/ S v8 R. C7 ? {# J. i& Z. Z2 c# Q% n- O
case WIDC_BUTTON3:: X9 ^% ?9 |, e
{
& [' G0 B3 m* N# W bStart = TRUE;4 U% N1 U6 y; d5 Y
break;7 j) o2 e% h. J& i7 O% o
}
; n: o5 V2 r Q9 g9 |! R case WIDC_BUTTON4:5 \; c# J' m+ r( p1 v
{
; u; q6 |" n1 ~1 W5 ] bStart = FALSE;
7 e$ \4 m, W3 \3 b) l' n8 F break;
7 ~7 p7 a( V; f* b8 p+ I; K7 _6 L }0 J( W" Y6 `: J. }6 O
}- N2 E+ c$ ~) ^9 m, I
return CWndNeuz::OnChildNotify( message, nID, pLResult );
2 R& ~3 q/ m( ~6 T5 C% a} . n0 ^, g; v8 r6 w& ~
void CWndAutoFood::OnDraw( C2DRender* p2DRender )2 V) |: ~5 h+ L$ M
{( K) f6 ]: [8 q, N' D
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
, l& n2 ~4 ]; Q7 r if( bStart || !m_pItemElem )
. T3 |/ O7 v6 K0 ]) Y: H' [ {# A7 }' }* t( s* V9 }4 I B
pBtn->EnableWindow( FALSE );
# i7 e2 v" S& j ? }else
( [. U4 p' j5 r% [4 l pBtn->EnableWindow( TRUE );* S8 r6 a6 }0 H. V' F
if( m_pTexture )
9 B2 V# ~; d+ I4 \ {4 ]7 D" y/ a9 b- M- r; U( X
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: x1 P2 O. `7 u+ B
if( wndCtrl && wndCtrl->rect )
- y) \8 ^$ f- P+ P7 E. {. } {; G: U* b* c! k+ V+ \8 F
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );4 R% v$ u( a( @
}
@9 b; T! P( n" p5 S }
7 Q2 \9 ~; f, k/ ]}
& ~8 _' ?/ i% w. \
$ U/ u* n( ~+ B: D! h/ ] bBOOL CWndAutoFood: rocess()
2 u c: r9 @4 F' _0 R0 c6 ]* |{ v5 X6 ?2 v7 Y' S7 y3 F. D
if( bStart )8 f8 S2 ?( A0 d: I. a
{
% }* \* d( D$ L if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
; R0 c3 E- W& x( _" L u {( }/ {. e9 K" L# P7 X. o
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
; [% \" l- N+ A! P/ V9 | g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
* D/ P* ~0 a5 c: g6 Y$ ? }else{4 ]- g6 @# [1 b5 }% I
bStart = FALSE;
# U+ [5 e' c5 z9 Y m_pItemElem = NULL;
0 c0 y# T1 x0 b( [ H }" ?% K/ F$ L j2 D) X
}/ l- X6 y' x4 R8 O
return TRUE;
& \1 X+ e) O8 j/ x; |! g& B, R}: ]' D3 e+ n9 f! W+ y2 X2 p
1 P ]* A; P6 n, n+ G' f, ~
登录视频废话:
2 Q7 I; v+ u, W: x1 b尾翼:
& k, t( Y) w6 F4 \+ D1 v: D X8 C* b
代码:
9 Q% F/ v/ H0 h$ M" E8 K
0 _' H) V, q% r: k2 n0 d0 Avoid CWorld::SetLight( BOOL bLight ), M) `; M! |# ?% e, B; U# Q6 F
durch
: D! k1 A' j4 ^% r% |Code:
6 G4 i; |) n8 d: ?) [! O; b6 hvoid CWorld::SetLight( BOOL bLight )& r9 ^! `( w/ P R* d& b- L' V) a5 L
{. a) X+ w0 H1 a* o4 S
//ACE("SetLight %d \n", bLight);3 b) P, u/ k# d; M. k7 a" o( V+ Y t) V" I
1 l% J2 ?3 z* I#ifndef __WORLDSERVER
0 T: R) G* Q( E% ~7 V! U4 h DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
_6 [, c2 b: x6 L2 [9 r9 f CLight* pLight = NULL;
. Y) w' g4 B3 g8 v7 |" V/ q4 [
8 O% `; X4 J/ q) c3 I5 J D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );3 h6 l: d+ A5 u% X" \1 K
3 p+ w" y0 M, d. x& b+ m. r
pLight = GetLight( "direction" );6 ^/ J: p" C" _* r1 m L
}1 C/ ^) L. w/ _, C- U#if __VER >= 15 // __BS_CHANGING_ENVIR
4 C% J) e. F; @) [0 \ if( g_pPlayer ){
5 u2 B2 C. \+ b6 w1 z ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
' q3 u( s8 J+ V5 h# R5 g if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!2 C7 Y. Y$ H( P* O( U
{+ R% G$ M9 L; [6 {* Z
if( pLight )/ v$ R! A6 q$ O$ q1 z# ~7 ]
{) X0 j( J0 y: y* h
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];* {6 k9 k' H0 p- j4 y+ c. ]5 ~
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
; [2 T: m5 J& o$ \! F4 b2 T$ P pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
5 R% |# z5 d& [9 o% |
! Y' W5 e( }* u H pLight->Specular.r = 2.0f; b7 {" A" y2 U% L' b1 m
pLight->Specular.g = 2.0f;$ H: r) s# V, ~6 A( L
pLight->Specular.b = 2.0f;7 P% P+ x: c) S1 X% ]# J
; p& ?! r9 u7 ^" @6 [ pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
) Z* y' z6 F1 S! d pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];1 Q4 t! L# ~& D& D3 y, r
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];( W5 u! u- j" F7 I* a* X3 B; D
- \/ [2 r- y; W8 d) y
HookUpdateLight( pLight ); 5 |3 Q9 N% g$ z2 O f/ n. G
6 F. j2 F- m3 V, `. R
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 x; ?4 Q! ]0 Q5 X$ a
! ^2 }. M8 e% Z4 q# b9 n pLight->Diffuse.r *= 1.2f;
; S- y0 c: z; f% y pLight->Diffuse.g *= 1.2f;5 T+ F6 m+ X) k1 }$ B& a
pLight->Diffuse.b *= 1.2f;: r1 {7 l/ p1 B! @8 B H
& |. l/ T0 a5 u" H7 p% p7 o pLight->Ambient.r *= 0.8f;; _+ U% u* a; {* h
pLight->Ambient.g *= 0.8f;
+ o/ }/ l' I5 ^0 `" I pLight->Ambient.b *= 0.8f;$ i* q- n8 q3 I. G6 @1 k& r
+ C2 `0 x# q9 {5 M2 q: x+ T memcpy( &m_light, pLight, sizeof( m_light ) );
$ u2 H1 L( ~" R8 i7 l4 [
( |+ x y* u& A1 m0 t( q9 R; u D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ P3 ~; ? n5 U
D3DXVec3Normalize(&(vecSun),&(vecSun));
+ \; G* L! z2 g- F! Z D3 m) C pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 h3 Z( g+ [6 n, q4 q
pLight->Appear( m_pd3dDevice, TRUE );
5 O/ ^- b. S6 _: ?7 P5 S/ d ; B; H! F- i0 M; |9 W
DWORD dwR, dwG, dwB;5 [( u, P$ F) V: e% y" o( r
dwR = (DWORD)( pLight->Ambient.r * 255 );/ Z! E# p* z* F4 E" y' s& o& n
dwG = (DWORD)( pLight->Ambient.g * 255 );
3 D8 g6 e2 n# T7 q- \. r" A dwB = (DWORD)( pLight->Ambient.b * 255 );
; O: n7 g% T: S dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );# j4 ^/ ]$ G/ q# X: p
}6 i; T2 Y% L; e8 \' U
}
9 |& Y2 b0 }- Z: m1 _ }8 o' L4 ]# Z+ u: P
else7 B$ |" g1 P1 h/ t' a1 y- a4 b
#endif
$ l! J% T& d. _$ `; M. b+ P4 X3 Z2 m7 ~( w$ P- H, v, ^0 ~1 ?2 d" e+ v
if( m_bIsIndoor )
+ d2 z! S% ]0 R, O( N: J4 q {
* N$ }" O" H' |1 Y3 g if( pLight )9 W- E; ~8 }' v3 Y
{ + `/ _- J8 E* L9 U6 B
// à??μ oˉè*
& A+ W. S6 M1 ?# z8 A' P) n7 f pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;; }7 p- T H+ ]5 `, V) B
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;- W: B% G# I3 H
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
- K; k z u a3 I5 g+ U' w# p3 [# E* m) X- a2 U2 W- d, d+ n
// oˉè* ??à? & i0 G3 j* d: k! }3 o3 g
pLight->Specular.r = 1.0f;
. F1 c! X' u; W+ n7 @0 F7 x/ W pLight->Specular.g = 1.0f;
! o' T1 [: ~- I; j4 q @ pLight->Specular.b = 1.0f;: P8 w3 z( S' z+ k8 [1 W
// àü?? oˉè*
+ Q F7 {+ h( D) W; S& t! s( I pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
; s& l* z( ]; B* t) E+ E pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
" r/ E9 c, a" ~+ r1 B1 @( X pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
3 s& L5 V2 Y& U2 S/ B
# v% Z8 Y% c: k! |" d) @ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ a" U' H8 c% ^) M+ F2 [# ~
{
8 E0 ], N6 H5 C* f- c% G" O6 _ pLight->Diffuse.r *= 0.6f;
7 c. R6 N7 A" i pLight->Diffuse.g *= 0.6f;
/ z' \# O2 u# c6 F! U/ o. N/ R pLight->Diffuse.b *= 0.6f;
' f# R" m: s8 y* s8 Q: [% S6 ] pLight->Ambient.r *= 0.7f;" X& ~9 D6 K$ h4 V
pLight->Ambient.g *= 0.7f;
) w2 j4 u Q, f" @$ p pLight->Ambient.b *= 0.7f;0 l0 W5 i$ i0 c" D
}( Y- K' n6 }. Z) C+ r
7 I( J7 `: ~* J/ K5 B) c- ?6 P#if __VER >= 15 // __BS_CHANGING_ENVIR
" V7 v* C5 n3 J- U B if( g_pPlayer )4 [7 ]! B' {. V2 c+ D
HookUpdateLight( pLight );
+ y( o, K$ C! i; M5 M#endif
" D" Z3 y6 {9 `; V& q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
S7 q6 h9 ^6 w0 `2 ]8 e5 k% w5 ~) y& G7 j! `* Z
pLight->Diffuse.r += 0.1f;9 M) g) V' I! k/ q: @: ?: _' V
pLight->Diffuse.g += 0.1f;9 a* G' F2 z. k
pLight->Diffuse.b += 0.1f;! m+ \7 n8 e5 q# `! [6 ~
// oˉè* ??à?
8 m9 P7 \( b+ O, o1 A pLight->Specular.r = 2.0f;6 b! d! M3 Z1 Q3 P/ h
pLight->Specular.g = 2.0f;
% ]9 @, G. d* e9 N: @ pLight->Specular.b = 2.0f;; ~; s t2 K/ f4 i9 E
// á?oˉ . S8 s% u4 n# C8 d+ K. h
pLight->Ambient.r *= 0.9f;! \' F6 M+ B, Z% M: C2 Z0 k
pLight->Ambient.g *= 0.9f;
3 v/ I1 B& R! X9 {8 M+ ]# k8 F" ]" B pLight->Ambient.b *= 0.9f;( P+ S' `" ~7 D6 n
4 K& M+ L- L: c- ]. x& A
memcpy( &m_light, pLight, sizeof( m_light ) );& I8 m+ W7 `6 l- u/ E7 Q! L. K2 e
1 I1 h* v) J# m: _2 g" n( E+ S
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );1 ]& Q, x# W" y6 ~9 b
pLight->Appear( m_pd3dDevice, TRUE );
1 R! W3 y/ N0 }( j+ ~# E& B& a7 ~
! X0 O' v$ I. @/ c DWORD dwR, dwG, dwB;9 S9 O6 b+ \- _0 u9 @
dwR = (DWORD)( pLight->Ambient.r * 255 );
1 k; H; \, O/ G ~0 ` dwG = (DWORD)( pLight->Ambient.g * 255 );
+ j6 |) g, B+ F dwB = (DWORD)( pLight->Ambient.b * 255 );& x4 l/ Z+ l% L7 M
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );% o$ I! u6 a9 P# f0 M9 o6 a; K0 ~7 U
}6 B% P+ E1 B% s# T: Y$ T
}, x3 h$ O: U( ~' C
else# b5 Z7 y$ z7 F! v" y+ z! y8 v
{
5 T7 p) Z! H A7 @3 t: I if( pLight )$ z9 \/ E6 r. T$ a# c8 j; v) b4 s0 A
{% D% o# J1 `. `0 j5 v
8 b5 G+ P5 U8 f+ O: ` b: r int nHour = 8, nMin = 0;
* w" P* k# o/ c' J3 X; h" m% h #ifdef __CLIENT* ?2 V, N: ~4 ]6 R, y
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
$ V& @( p5 \& C nHour = g_GameTimer.m_nHour;; _/ X5 Q0 K) T3 `) a u
nMin = g_GameTimer.m_nMin ;5 ?1 J5 e& I1 ?" g( E
#else. I; H: D' q# G% f& x) ~0 T
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.& W* O& B0 a* |% @
if( m_nLightType == 1 )' n6 `: } X- A4 E* _- J9 W
nHour = m_nLightHour;$ [/ M& _. V; Z2 g0 }0 g) ]" y
#endif" W! R, M* k! C9 ^
nHour--;
1 r% P1 ^$ l9 G# a; o if( nHour < 0 ) nHour = 0;! g& w2 m( L; D& y$ x7 {0 n
if( nHour > 23 ) nHour = 23;
( ]/ q: c7 Q# {. c7 o9 x
" M. m/ p( L4 x$ ^- I# Q& R4 } //if( m_bFixedHour ) J( z8 J% }/ }, N5 D" @
// nHour = m_nFixedHour, nMin = 0;
. D$ X; Y2 y( \' D- n$ x i LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
' G5 ~! g# Q0 d" z LIGHTCOLOR lightColor = m_k24Light[ nHour ];
3 g3 _3 J( [5 {2 q6 ]! p/ u- q2 k6 `- f* u; E/ j. j: ^
//m_lightColor = lightColorPrv;
! I, Y @ ^( ^" o lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;; ~9 l1 b. g( K& f0 {
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
2 U! U1 z! }; d& A lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
8 Z* ^4 ?2 Y% V lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
* B% c, Z) d3 l k lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;' }8 f, {7 R7 k
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;+ b. u. M1 [ U3 n: B
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)& P% {3 n1 R$ q' L
. K+ \2 Z, B* @; P1 h: o
// à??μ oˉè*
+ B& {& V" T# x pLight->Diffuse.r = lightColorPrv.r1;
' e3 s9 |) G+ O0 c pLight->Diffuse.g = lightColorPrv.g1;3 }% ~) {3 i" ]" l& h7 u
pLight->Diffuse.b = lightColorPrv.b1; H1 J; H3 Q( F
// oˉè* ??à?
: T) |/ _: y$ r" J' u pLight->Specular.r = 1.0f;0 ]. d$ u# [: k R
pLight->Specular.g = 1.0f;
+ |6 b" \. \: h7 F8 D pLight->Specular.b = 1.0f;
# D3 v( D) w2 G! R! V. T // àü?? oˉè*
) n( L' p& c5 U8 U0 {3 ?7 _1 o6 l pLight->Ambient.r = lightColorPrv.r2;
7 l) y# _2 U9 U$ j _# F! x pLight->Ambient.g = lightColorPrv.g2;
( D7 r- a4 P. T1 E( ~4 Z1 H pLight->Ambient.b = lightColorPrv.b2;) t" l: X& u5 r( ~3 w
) Z3 a1 D& e' P4 R( V4 G4 N. ?; ~ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# c1 n' n T/ [: r0 {0 t S
{, }$ Q% T& A) |0 K6 o2 {6 O1 M# x
pLight->Diffuse.r *= 0.6f;4 j$ D0 o! P3 Y1 R1 D
pLight->Diffuse.g *= 0.6f;
! {( e! f1 C3 \- N* t4 z pLight->Diffuse.b *= 0.6f;
7 B4 j0 M2 R' q' C% U0 G pLight->Ambient.r *= 0.7f;/ U3 i; i% o, n- f* d# C
pLight->Ambient.g *= 0.7f;
6 [. k3 D# u1 }2 N* J6 A pLight->Ambient.b *= 0.7f;
5 Y, \" K; t5 s9 f, G }' T* @6 Y: d- G( ]4 T. @
& y* r) @) e8 J6 N) c#if __VER >= 15 // __BS_CHANGING_ENVIR) M1 w1 H$ k2 F3 B
if( g_pPlayer )" W. G5 c! U; w0 g. i1 O c3 b9 }
HookUpdateLight( pLight );
) b3 X' P& P2 a) N o, W% O#endif; a$ ]) L/ T) w* {! ?0 N7 g
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 m3 v- Q. M6 ]* b- |, m0 l
: X+ k9 j+ J+ B- w4 S
#ifdef __YENV
" v; D7 E; W) A! m# W pLight->Diffuse.r *= 1.1f;
4 Z6 D/ \# R- _9 r pLight->Diffuse.g *= 1.1f;" F- B" C( Z6 {1 ~5 s" p/ F
pLight->Diffuse.b *= 1.1f;* W$ a7 G3 v- O# S. g
// oˉè* ??à?
" w0 \9 X$ }5 {. Y) @ pLight->Specular.r = 2.0f;2 r% @4 G+ T4 Q( f9 L. e
pLight->Specular.g = 2.0f;1 c8 K: f! i% ^( v) a/ X" M8 \
pLight->Specular.b = 2.0f;
F. l j8 ~, ^5 K // á?oˉ H" d2 w8 w: L6 N
pLight->Ambient.r *= 1.0f;3 j& H& b3 a1 N9 W
pLight->Ambient.g *= 1.0f;% Y; z+ w+ S3 p- M
pLight->Ambient.b *= 1.0f;
4 V; K+ ?2 {7 j3 ]9 m& {3 D5 x" L#else //__YENV
5 c: G# s3 J s0 i3 H pLight->Diffuse.r *= 1.1f;
, A5 x! [( R; o0 V pLight->Diffuse.g *= 1.1f;
% Z; r$ F) K9 r) E pLight->Diffuse.b *= 1.1f;
# d4 A {$ w! s, u // oˉè* ??à?
4 c h( h4 u& V pLight->Specular.r = 2.0f;
# f+ ]# L* y* g pLight->Specular.g = 2.0f;# D% T) L; c) n' I' ]$ Q G
pLight->Specular.b = 2.0f;5 y" b2 n. v0 X- n
// á?oˉ : _ ?9 z7 B2 b8 A0 v+ T
pLight->Ambient.r *= 0.9f;
0 {6 x4 W" R- F$ C8 ] pLight->Ambient.g *= 0.9f;
- T p1 z. u& @. ^* ^1 V8 A pLight->Ambient.b *= 0.9f;
7 J- D; k+ [. |3 d: ^#endif //__YENV 2 y O, J' g ^ ~ Q
3 Q. ?& |! h* l# Y) m memcpy( &m_light, pLight, sizeof( m_light ) );- n& w) u5 d( C5 i! j9 ^: |, O
4 @; c6 }3 j: T, s8 Z, x; s
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
7 \; _: h. ` @/ K5 P D3DXMATRIX matTemp;
3 N1 N& W: G2 ~; U" p static const float CONS_VAL = 3.1415926f / 180.f;! U* H. Q1 M/ B
! r6 z6 t% E) N4 N8 {4 D8 p) m9 F( c
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);$ {- D0 G1 Z2 d# j1 i) j" p* n
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
" `3 v4 D* ~# D# P" J pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 e* C' g9 ^% p pLight->Appear( m_pd3dDevice, TRUE );5 q; t& [, A& v9 S: x; H9 ^! a& U
: {) x0 E) ^& A( H1 }, Y5 s- j // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);4 N; U2 _$ r1 L; B; G5 m5 A9 Z
// D3DXVec3Normalize(&(vecSun),&(vecSun));
2 c4 ?* e4 Y. b- d! n4 w1 d // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); + E* X8 p2 x+ H1 n
3 @1 v# D3 w E6 O( s
DWORD dwR, dwG, dwB;
5 u& G. Z9 Z# } dwR = (DWORD)( pLight->Ambient.r * 255 );# Z4 S; s+ r3 E! V
dwG = (DWORD)( pLight->Ambient.g * 255 );
M$ ^5 A. _% x+ c( \$ X) F' B0 E dwB = (DWORD)( pLight->Ambient.b * 255 );% M. L7 P5 A' b4 m; k/ O
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ' h/ a. K; T/ S& D9 W) C+ k
}- c& ]5 n" N! X
}) j) H% e* z6 q1 Z4 M2 f ^
# N! p% I! U0 d* W" n5 S" W
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
6 B$ J) O+ w; T: Z( {$ S 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) );
/ Z5 c) N7 S( E7 |6 v ::SetLight( bLight );
! e% G5 _+ \! j% A9 z5 C" b5 Y! H( P8 A9 Y+ x* x5 R8 A" C
// ±ao? ?D?í???ó á¤à?
) ^' I6 u' `7 d. Y, X; a4 k. q m_pd3dDevice->SetMaterial( &m_baseMaterial );* ^: W5 p' J& X4 M9 \) A1 P& L7 c
: b" G: q. T% n2 P, a
#endif // not WORLDSERVER4 H: U7 R- {- w2 C; p3 X! E, w
}
- v: ~, w7 h6 H7 r: P并更换
8 ^( A# \! `; nCode:% J) ]! V. ]6 _4 D F4 }
__FLYFF_INITPAGE_EXT/ }2 L: f/ u! T% B2 L) F6 j$ @) y
定义/ E, O5 F" C* |: ?/ _7 I
" s" ~' Y5 }& L8 r2 ~! L4 R& |
' A, o) v" v! T. m4 p; |, r# r6 X. t
3 V0 @. [7 W& a9 A现在终于删除我的狗屁加速...
# f3 R- B3 [6 ?) D& C- z8 G! N+ u7 D, Q- z4 g
! r" `, q; F7 z( X, W+ i( F( ^" H! @
7 k o' [7 l& p |
|