|
|
食品车:$ e9 n& v0 Q2 O' ~; W- x) c; T; N, M
尾翼:1 t% |- ~) `' A* K% N
7 T8 Q$ v# N# w1 Z+ C* z% \
代码:
$ w, O2 w3 r1 p5 @# bCWndAutoFood::CWndAutoFood()
# K) m0 I8 m* t{; x& q) H9 h: _. k
m_pItemElem = NULL;9 `" o% r8 m7 Z- L7 ~# B" r8 m7 A
m_pTexture = NULL;$ R' Z# E M7 C
bStart = FALSE;
# c0 P k0 b# G/ S}2 C5 p: a |8 R" }
. w9 H8 U2 ?. h4 i1 l) aCWndAutoFood::~CWndAutoFood()0 _" K! z6 I* G+ Q' X" `
{
3 |8 }9 ^3 D6 b, n$ t AfxMessageBox( "AutoFood ist gestorben " );# o- i+ n k- s8 u# G! b7 Z; j
}0 F1 y; N& h/ S
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
% ^5 E: q5 J+ q' C, U% X{& K- r* e0 K; ?
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );' W" n) ~- n& f( X$ a5 p
}
( v/ a/ L5 k0 Q3 e7 ~4 E; N, }' P* m7 o4 E: Z0 G
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
4 y2 U3 m0 H% G3 X{
% s- q0 J& A' }4 Y: v7 a2 |) @" S; B LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
" T* A8 n: j5 M$ O3 X CRect rect = pWndCtrl->rect;1 [* C, t6 A& @9 J6 c1 V# o
if( rect && rect.PtInRect( point ) ). Y0 b( o& `- @" R* r) Q0 Y
{
* o/ B- R; k- z5 B CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
6 n7 R6 n7 w! c$ Q if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
- C6 m# e: C' M0 \, F1 U" n {
7 u# W) M5 T& {! O- @0 C3 L" Y' v if( m_pItemElem )
9 Z! _3 [0 k& D3 r! r {+ S9 F P5 d8 F; o% h0 V
m_pItemElem = NULL;$ {( n! o5 u5 j. O' d
}0 y" \; g6 k* A, }: A% b0 u5 ~
m_pItemElem = pItemElem;
& ^6 R2 S& `+ G. Q, l" O" ` C m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 [: j5 B9 |! S3 D0 e1 C* A5 a+ v2 t1 { }else{. z/ W& r0 r% I2 v- v
SetForbid( TRUE );
& t0 ]# w5 Y& x9 v6 b3 v }
3 j T; L3 N1 o }else{
( X, c$ }6 o- v" p( K. t) U SetForbid( TRUE );
: w7 s- H; o0 r }; G Z' E- ?5 z* @. X( k1 _+ ~, H4 u+ b
return TRUE;- B; m }% D) P5 k/ b
}# G7 v) Y( z( n% v" `* y. H* A
3 }. L+ K, }6 e
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
# U5 K7 y" _. w{8 |' y4 B$ ^+ F/ p% v
switch( nID )# [6 C- D3 u( @7 p& P9 V6 K# _
{
$ Q/ W9 I$ j# Q case WIDC_BUTTON3:
, V$ w) ]$ _$ r* S9 {8 Z, b {
" G5 a9 L9 h: @- L* }1 r- h bStart = TRUE;6 ]9 ^0 T; p1 j& ?
break;
6 F, B# a X* \ }7 z2 O1 Q" U1 C* J9 X8 E
case WIDC_BUTTON4:
8 {% U" N# K- c1 W, b$ w6 D {
1 N: z6 w) Y( D& u% B& l bStart = FALSE;4 P) O! C a# [! R, E2 z
break;% \) S2 V3 s* H3 r
}
, g3 R6 y1 w7 ]" b* w }) T3 ]; o0 ]: f/ _- A4 W& H8 q
return CWndNeuz::OnChildNotify( message, nID, pLResult );
; d+ n: D4 t% \, Q9 j# t}
9 z. \# E; L: [+ Svoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
) W: c5 w* ]/ Z0 h- o3 q( Q5 X/ Z/ E{* k8 }& B9 p2 @$ \. x
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );6 X7 W+ M- g1 Z* R {
if( bStart || !m_pItemElem )
8 d8 ?/ Y, t; E {$ E# y* w" Y0 M. U( y1 j
pBtn->EnableWindow( FALSE );
1 a) q4 X$ D' @ }else
' Z3 ~0 C& N5 b! `1 O- c9 M pBtn->EnableWindow( TRUE );6 E0 u7 C9 ?, j2 Z g0 u3 u& P
if( m_pTexture )
/ h0 j x" v: L1 T. l8 L {- N& L; E7 W( K8 B( F0 n8 i3 i, G
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );! T/ H& [( M) Z0 m$ b5 b: r3 f, o
if( wndCtrl && wndCtrl->rect )
- Z9 @" ~& _/ ]3 h {
7 c w4 R0 z& P$ b& q m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
+ l# M# C5 B: l' n }
4 e9 b. z' K1 v$ F& ?; y }
! A$ E% |7 `# s. a" k) u}/ Z1 X; {# W4 {0 ]$ a) n- r
, e6 n( _$ N7 g2 s. A4 EBOOL CWndAutoFood: rocess()5 o2 a; u" b; P: n
{; F7 w1 A$ t9 D* w6 ?1 j% b+ _
if( bStart )9 z5 W1 O% ^& J( g
{6 P5 M% l. F8 g! N) H6 T
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )) U, j+ D4 d8 K- f& O9 z4 y! m6 H
{
+ E/ Z3 H2 r, R) o5 P& d if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
; y* p* c8 }; {7 A8 d g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );& G' r1 ]) x$ F. j, z- j1 [
}else{
# i4 I3 _% v) Q; A) n$ D bStart = FALSE;
+ P& b: d* \9 M& ~1 h m_pItemElem = NULL;
4 |4 H. x1 @) G+ P# A# U: O }
6 q1 l& @& L* u }4 |! d U/ m* F0 M
return TRUE;* }4 U% h5 M W. Z
}5 o# T5 |) u) {# F7 T1 T
* ~# l7 X& q/ J# u2 `2 i: q2 k
登录视频废话:
9 J: I& I2 Q) T. s2 A8 q尾翼:" W% D' j% p! Z* S' i
/ E# s- o; u; \4 N1 [ l代码:
- h2 Q* f" B p3 s6 r
6 Z l9 o8 I& {) d& y3 ?void CWorld::SetLight( BOOL bLight )
# p1 o4 C! Z7 C( Qdurch
r' z3 w' p& T) {3 {) gCode:
+ s- ?6 l. J/ H$ G& h- N1 ivoid CWorld::SetLight( BOOL bLight )5 t6 k p" D( E1 ^! L
{: |' L: F, E X+ y E" V( Q. \
//ACE("SetLight %d \n", bLight);" C! s m' s/ e" E8 n+ k# o
! W' ^% f" B8 Z7 S" e0 A#ifndef __WORLDSERVER 4 _; e& W9 h7 y4 Z: Z2 S
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);) u; N/ S& i1 I: Z- Z2 G9 q0 Y/ S
CLight* pLight = NULL;! D9 Y/ X0 Z/ n9 S+ I! `) k f2 V
( @, k6 n8 i9 A' u' z7 |4 d8 t+ F D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );/ j) O$ m+ _* x7 G# `; T6 i" P
O- a0 t% q. G+ F8 ~
pLight = GetLight( "direction" );: u7 z+ X2 h, W9 d% [( N/ j
' ]- A# O% ? z/ p
#if __VER >= 15 // __BS_CHANGING_ENVIR
' K* k4 L/ W4 e' P( K7 C9 w+ U; _ if( g_pPlayer ){/ [) R0 I6 X( c" p9 [$ ~ |
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );! T" g8 j' j/ t( q" ~4 K: J
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!7 g& }' a; _! |5 y0 o+ w* m
{3 l! w; D4 K0 A0 r/ S, K
if( pLight )
7 J" ~ M* n1 z0 m3 h" p {
. m3 ~( [9 t' F- h pLight->Ambient.r = pInfo->_fAmbient[ 0 ];+ M* U7 v+ W9 ?% Y- L8 l
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];) H f5 ?) S# }1 I( D- b& I7 w5 d
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
3 X$ c: @) {0 s/ _; Q# t! ]" z0 _2 D0 l* R5 B1 P3 {
pLight->Specular.r = 2.0f;4 [$ U6 f" c8 @) Q. j' M
pLight->Specular.g = 2.0f;
( _# Q& d* m' f) ]/ z# S pLight->Specular.b = 2.0f;
$ y# A# h* Y8 U# R- r
' T) y5 M' T: I3 ~ pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
& \2 m5 D$ m- H pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
' k% w3 q3 K u7 U6 \ pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
5 d- L, b, V0 l : t: K. O; J" D1 `
HookUpdateLight( pLight );
" a J. W* S" H
, t7 ?. T* u* T5 | memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
& [, G U, V- b/ h4 K
, a0 F( f1 m) [5 a" _ v pLight->Diffuse.r *= 1.2f;
" H+ Q) \; l1 e+ W. v/ p( ^ pLight->Diffuse.g *= 1.2f;
" n9 D B. w& [: Q* n+ @- o8 ^. ^# P pLight->Diffuse.b *= 1.2f;+ q7 f4 ^) R6 { Z
8 n3 c: a- c, k6 j pLight->Ambient.r *= 0.8f;" m0 } _* p7 t3 v/ v" g0 B0 E
pLight->Ambient.g *= 0.8f;( w2 w: @$ @) B1 H$ H
pLight->Ambient.b *= 0.8f;
; d8 ]! X( {( v; ?
/ X% g8 A. N! r memcpy( &m_light, pLight, sizeof( m_light ) );& m6 r h. ?- E) x
9 z( e, D" [ g5 l( h
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
* E) Y' o2 U( z4 i6 ~: K+ D$ a D3DXVec3Normalize(&(vecSun),&(vecSun));
+ a8 Y3 w; K7 |1 s pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 2 f* Z0 S9 Y$ j( |
pLight->Appear( m_pd3dDevice, TRUE );
: D1 n9 e& F; \5 Q) h: u/ D; ] . c t5 y8 {% D" B
DWORD dwR, dwG, dwB;
1 j' r2 t- ?' ]2 B: x8 ]) H7 ` dwR = (DWORD)( pLight->Ambient.r * 255 );
% `/ I( x+ |4 e9 p8 Z' Q; Z. D dwG = (DWORD)( pLight->Ambient.g * 255 );
) {( @( T3 h# s% v8 F5 N dwB = (DWORD)( pLight->Ambient.b * 255 );
. X) g) e) n3 I1 N/ Q/ C ^! _* y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 z% Y" p3 a; _/ |/ Z }# w/ d* g3 y+ z4 t
}' E+ i0 }: ~7 ~8 k1 L& E
}
. N( g. y- u d' W6 ?% ^; _/ J else
& ~ [& M) `0 V1 v: ^$ p ?#endif
3 o( W; e6 s3 m. ~7 L% W8 x4 L8 j
if( m_bIsIndoor )
$ p) D/ J$ z4 U6 J5 U' f2 E {& @+ Y: z) P; k* h
if( pLight )
, w1 k* P7 @8 t. ^' f4 M {
" ^' A' Y( u( x$ U9 I4 x. q // à??μ oˉè*
' j. R( x1 S. u; ]& J pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f; @1 }0 u* C$ G1 i; ~# k/ ]
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
6 J* A" j. q( K$ [ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
6 \% A' A6 s# `" F V! w7 O7 _+ o/ Z8 z5 u2 d+ s
// oˉè* ??à?
) Y( F" F& F( y9 p; p/ F pLight->Specular.r = 1.0f;( v P5 }* X* S _( }1 G3 j" l" K
pLight->Specular.g = 1.0f;
) N0 h g2 {+ Y) C) G& m5 G pLight->Specular.b = 1.0f;- n- m# y8 O6 u
// àü?? oˉè*
( l3 m- i4 ]& ^" { pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;3 \- z4 }- f" \8 q3 }
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
7 q5 \, }( ]2 ^8 U6 l0 }+ e9 C! v) s pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
) K& [7 f; I1 H- n- J$ g. Q
+ W$ O3 Z: [* U if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, f6 B A+ `3 b7 P6 a {3 p% A2 ~0 s9 U) g
pLight->Diffuse.r *= 0.6f;
: c0 R c2 P% p! x7 o0 } pLight->Diffuse.g *= 0.6f;* `0 W6 ~1 l+ W" d! Q
pLight->Diffuse.b *= 0.6f;. Z# g5 c( n1 @9 @5 s/ m
pLight->Ambient.r *= 0.7f;
+ r5 A+ _* [# y9 X pLight->Ambient.g *= 0.7f;
' } A) c3 F( E9 P: S( L! b pLight->Ambient.b *= 0.7f;
1 H) {9 w( P0 G) l }( @. n3 X, ]2 z) m
' e: a* \- S/ m1 F! R5 D2 K) x
#if __VER >= 15 // __BS_CHANGING_ENVIR5 y1 f! m# w8 Q& c3 z* A) `% \
if( g_pPlayer )
& j3 c4 d2 e e* L4 o# E+ `/ w6 ] HookUpdateLight( pLight );
( [; Y# ~( D5 p3 l6 b#endif
" z- H# S! T) N$ G memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) ); _0 f- R" e7 S/ r+ Y/ x
+ U+ Y/ I9 j8 Z& X% ~. |$ }% }
pLight->Diffuse.r += 0.1f;
/ W' L3 X4 U: K$ {% H+ P X# o pLight->Diffuse.g += 0.1f;
% R @9 G% m, O5 [+ T4 L4 w pLight->Diffuse.b += 0.1f;
7 R3 u# H5 K( P // oˉè* ??à?
+ [6 Z! d6 d( D# l& |; Q pLight->Specular.r = 2.0f;2 k0 D' e2 h( N0 `. `3 G
pLight->Specular.g = 2.0f;9 k( o8 |2 a- w. p
pLight->Specular.b = 2.0f;
. K2 O1 j5 ?6 t // á?oˉ
1 ~9 W; ^* D4 P7 T, j; {* q) @ pLight->Ambient.r *= 0.9f;
9 Z4 E1 P4 U; W pLight->Ambient.g *= 0.9f;
% H" z: J: K" T pLight->Ambient.b *= 0.9f;
8 J x" N( n8 |# O+ H9 W7 Q& w5 p
$ u* Z% h5 [/ y# n memcpy( &m_light, pLight, sizeof( m_light ) );
, c9 Y, ?) N" _6 x- c5 m , X' z f. I2 R, n! t! Y
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );7 c- J, N. g1 x7 B
pLight->Appear( m_pd3dDevice, TRUE );9 J% [8 j) j0 z+ F6 Q: F- C
* X) ?" z @6 z' T9 W DWORD dwR, dwG, dwB;
# m% ], o( Y' _ dwR = (DWORD)( pLight->Ambient.r * 255 );
9 X1 t9 U4 A, l K9 j K dwG = (DWORD)( pLight->Ambient.g * 255 );
" n+ o! c$ f( D0 r6 i8 G dwB = (DWORD)( pLight->Ambient.b * 255 );
' H8 m$ O) k' e: L3 V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) S, c. U2 j: A; [& R }* f+ Y" ?, Q6 ^( H+ k6 \$ }' o! P
}* I+ A. ?& ?' f' L
else- Z* Q: C0 y+ j; x$ S; V; [1 W6 {
{
/ M; D2 e. g* i! K! C P if( pLight )) i9 ]) `4 l! |" s
{" c7 c$ e4 B5 b" }
$ `: L1 w, D* d: b9 O+ s, M int nHour = 8, nMin = 0;
& ]" P( T( ~' {8 @, ~ #ifdef __CLIENT
+ n- w3 E, N! _6 z6 e/ k: C // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
8 B. S: D! W v3 j+ w' c nHour = g_GameTimer.m_nHour;
$ i: c5 B: H# k, u; k nMin = g_GameTimer.m_nMin ;. D% M9 a* [( W: C. h6 D
#else
) W3 b; F$ F7 K! F1 F; ~/ J$ M7 P // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
# y* w# U2 G/ n. {! z- s2 n if( m_nLightType == 1 )
s2 d0 Z; ], K, d" Q5 I1 A nHour = m_nLightHour;
+ q1 A: \( Q2 v5 H #endif$ V2 X3 E1 z' r* b2 G7 h; M: }
nHour--;! a/ W2 I0 M4 Y1 g9 S+ P1 d5 h. T
if( nHour < 0 ) nHour = 0;! Y j8 q7 N/ i2 H8 ~4 e
if( nHour > 23 ) nHour = 23;
* K9 l8 N$ _) P, j" `2 M7 b# o* I
" [# L5 z3 f, d6 D //if( m_bFixedHour )" u8 p- {! d( W2 @$ q
// nHour = m_nFixedHour, nMin = 0;
9 C3 M# c/ {0 c6 O! X1 x LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];& _8 J0 `/ J/ r1 T6 ~6 @( j. f6 g4 i, H
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
( @6 [) i d. O; t ]1 ^
$ n" G" r6 x. r; a //m_lightColor = lightColorPrv;
* Z5 v5 q- {" f: P lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;' u" \2 o: } |4 e
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;$ m- Z2 r7 C) e, ^
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;/ Z2 g2 a5 j2 U( ?# f+ P
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;; p F* F1 m' P3 T6 h7 q- z! J
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
# |9 s: l8 H9 v$ ]# o lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;& y6 [! u+ ^9 ~
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
' f7 F+ T0 L1 `( Y v% j5 h
2 Y4 v% O; ^$ b( E# Z4 m+ c // à??μ oˉè* 6 [# c- d* V' Y1 E# N- I4 Y
pLight->Diffuse.r = lightColorPrv.r1;: L; S# r: D$ ^8 Q: y {
pLight->Diffuse.g = lightColorPrv.g1;6 o5 d& ], A3 M$ Z9 m. Q
pLight->Diffuse.b = lightColorPrv.b1;
4 ?9 N$ F" @: t. R: Y! a+ J // oˉè* ??à?
* W) D$ g1 T& f' f4 L3 R pLight->Specular.r = 1.0f;
6 K4 H3 a+ G& b5 B pLight->Specular.g = 1.0f;
0 p& J- I9 q; T4 m pLight->Specular.b = 1.0f;( q) S( h* v1 F; E1 c' |; W4 C
// àü?? oˉè*
- M' Y+ b0 z( ~% w pLight->Ambient.r = lightColorPrv.r2;
' H. L$ V8 u1 [ pLight->Ambient.g = lightColorPrv.g2;% L* o" f+ E4 Z6 v# a& C
pLight->Ambient.b = lightColorPrv.b2;6 c; \: `( A7 c$ [' i: S, n
" m" Y- ?) a7 X) u, ^ if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
8 B. E/ W- U3 b( b, B, ` {
% f: ?# f5 z4 Z0 y# ?7 A1 @9 z1 Z+ ~ pLight->Diffuse.r *= 0.6f;
3 w E& `2 V0 T: O+ N! _* e pLight->Diffuse.g *= 0.6f;1 g2 ?* t. W. |: E' \! ~7 c
pLight->Diffuse.b *= 0.6f;4 w) z* {! w$ I+ c9 x7 p
pLight->Ambient.r *= 0.7f;
0 v: z* n8 x2 i! S3 E& T pLight->Ambient.g *= 0.7f; i Q1 M! s5 d) P& o
pLight->Ambient.b *= 0.7f;
/ S! ?6 x6 F: X* |2 ~ }# i5 m/ F' V1 V9 V% u1 e8 W0 ^3 J
`* [# ^3 J3 A#if __VER >= 15 // __BS_CHANGING_ENVIR
' n# G3 a$ R9 V* e7 W. E, S5 D if( g_pPlayer )# N4 V8 ~- E! F f5 U, x9 ~- ~- ?, \
HookUpdateLight( pLight );
1 f ` r. S6 z" L- ?#endif
/ h5 s+ P) ~( q, O; M memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );2 o+ K: z) u1 n! Z+ e
1 M0 r" Z1 y( w$ F7 R4 Q0 p" \#ifdef __YENV% x2 H- T T! v) h0 @+ K, [
pLight->Diffuse.r *= 1.1f;. L' I0 f, d+ |2 B: P( b
pLight->Diffuse.g *= 1.1f;
, J0 N, \$ e* |4 k& Y pLight->Diffuse.b *= 1.1f;1 ]8 F, G5 r" |. A, _ f
// oˉè* ??à?
4 K" S: L- T8 f pLight->Specular.r = 2.0f;
) Y% `2 v8 x& w% k0 s pLight->Specular.g = 2.0f;/ v4 _' u7 z/ ~# o3 Y2 W: \
pLight->Specular.b = 2.0f;
) s7 x+ l3 W6 n3 i' s // á?oˉ 3 m: c: `* w8 W' o
pLight->Ambient.r *= 1.0f;
( }& `, \. S0 z& h pLight->Ambient.g *= 1.0f;
! p2 [' K" R; E# y/ q pLight->Ambient.b *= 1.0f;4 S. c4 n/ I7 o) Y8 F' {/ `+ L
#else //__YENV
t- H2 \3 ?2 e$ L1 U$ u pLight->Diffuse.r *= 1.1f;
, t% T" N( v! J& z pLight->Diffuse.g *= 1.1f;+ P( M. D3 l" Z f) ?! U8 p3 m
pLight->Diffuse.b *= 1.1f;
8 X+ k3 T+ v/ N% r // oˉè* ??à?
8 O+ @* [5 w/ E% Y% r( ? pLight->Specular.r = 2.0f;. q" P/ O! [* I" S6 i
pLight->Specular.g = 2.0f;
. k: L$ X- ^4 D4 @- | pLight->Specular.b = 2.0f;0 Q4 @8 I' ^' C$ h2 k* S$ ^0 k
// á?oˉ
" l4 p3 M2 Q8 A Q6 B! ^ pLight->Ambient.r *= 0.9f;
$ g p2 }$ b$ W1 x: n6 i* m pLight->Ambient.g *= 0.9f;
: n* p% }% Y2 s8 v0 |. }6 X8 W3 L; F6 _ pLight->Ambient.b *= 0.9f;
# |2 N( f/ j- K' [6 n#endif //__YENV A$ t% _3 ]8 c; ?2 a* A- y
' }. Z5 h6 C9 |3 i) S
memcpy( &m_light, pLight, sizeof( m_light ) );+ s- I3 G. P0 q4 l
' Y! l6 @* G C2 B0 f. i D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);! D; \8 N r8 {" R0 R9 h% A
D3DXMATRIX matTemp;
" p! H9 ^0 U, l2 {7 L/ |, W: ~ static const float CONS_VAL = 3.1415926f / 180.f;+ H. A3 ^# n1 z' f8 r) {3 O
8 E& F4 g% U2 R7 C( B- H7 K) [ D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);8 S5 ~; E( B% V5 c3 _
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
% }) s2 r4 U; P2 S pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ) q& Y! l1 d4 z4 b2 X' i" J
pLight->Appear( m_pd3dDevice, TRUE );7 p9 _) f4 k7 F7 r0 o8 \) I
0 o( W/ o7 [' }0 Q // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);( f5 h- b) Q/ A7 v! z) d
// D3DXVec3Normalize(&(vecSun),&(vecSun));8 i' ~# H7 m/ x f/ r3 L
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 0 h7 Z1 i- e' `; r, \
2 `. V( Z' y& ^! h4 h DWORD dwR, dwG, dwB;
! { ]- Z4 t7 X% H dwR = (DWORD)( pLight->Ambient.r * 255 );
/ p' j( d, {3 D) B dwG = (DWORD)( pLight->Ambient.g * 255 );
9 g$ P3 H; ^% k5 }5 r+ N$ I dwB = (DWORD)( pLight->Ambient.b * 255 );
2 C' J( e: Q9 w1 \# x dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
' r/ [5 M2 j6 m7 [4 I$ C! Z( @( g" D }
1 X4 n8 p, g& }( O% Z1 e }
6 P7 v5 U: j+ Q# a; _3 J
+ I" s% i- q& E: {7 i2 v" [ m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );6 L% N4 i e1 z$ t- F: d1 F
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) );
& _, G3 H' F7 b ::SetLight( bLight );
& s% A' ?$ n% a2 A7 w, x: f8 _' n4 d& o; K) n7 t
// ±ao? ?D?í???ó á¤à?
% h- o/ \; W! \7 m' q m_pd3dDevice->SetMaterial( &m_baseMaterial );
/ a* F5 F* B% s4 J( f# T" a% u* ]) U7 w
Z3 e# p' E& \' B9 _8 V2 O/ g, Y#endif // not WORLDSERVER
- t4 H, _2 o! s: v ?}
" B- H1 |% w! U( X并更换
. P8 P: E' ^, D, w9 rCode:1 h+ j* P( ]# G- R- x
__FLYFF_INITPAGE_EXT8 U% h: F; s: H# c/ [; W
定义& a5 h$ e% c; |' ?/ z! V' Y& C$ w
. [" q o- }$ {# w2 H) O, m) |" ~
0 E, s5 `+ ]3 e' H( t, X7 a4 @
' S3 i3 X+ j2 X( N: P, j
% P- r# l' W+ [: W* R) f! i现在终于删除我的狗屁加速...
5 q1 ?& `2 s+ Y" s
3 J% Y2 \$ s" |# ?) }" a! w
& Y" M! V. P2 w/ E
) }" k6 ^, h+ O+ i+ g X7 p |
|