|
|
食品车:
6 h! E+ B8 O" l& h3 ]2 C8 X, b尾翼:7 b5 z! f: N3 r( b" {* g* T
5 u @8 s3 J6 K; m- u代码:
; z* t5 o- r( v- f# e c, yCWndAutoFood::CWndAutoFood()
6 B& B8 l( d5 R. _{; m0 m R+ c$ \) s
m_pItemElem = NULL;
, o6 i0 }, R2 B2 k% E; k m_pTexture = NULL;
7 k+ ]6 T; B3 u$ ^2 [, f; l bStart = FALSE;
0 ?) H* f: R0 c: i+ X" A0 u- i}# s& U2 q7 ?, n6 g/ K
" k) Y+ g2 e7 q# f& q5 `, h7 ^CWndAutoFood::~CWndAutoFood()
" W( U. ]! a1 n; _% k. V{
$ ]) z9 _7 f8 n4 f AfxMessageBox( "AutoFood ist gestorben " );
( x* _+ K" ?% A! s& g! s}; Q, D, O6 L1 {4 Q: F& E9 X
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
" A7 c% o9 }9 P% y{
+ [$ g( h2 Q1 l2 ^ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
: r$ _7 X: B0 e}
* ]0 l$ x* B8 C% V
7 K4 v; g. S+ q& [& |BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
; J' N% U) ~8 h- z4 ~{: V U0 v6 p$ m0 Q+ i
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
1 D3 P5 @$ B9 K0 Y4 t CRect rect = pWndCtrl->rect;
& M& w0 Q: P/ D0 ~" J6 ]6 G% J# f if( rect && rect.PtInRect( point ) ), W% @% d; v& {" u5 ^' r
{
5 F" F/ G* k/ v; @8 b CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );- h' a5 o6 u' i' S6 p( M
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ): q5 X1 y* c x- X2 _9 @4 R) i
{
: m* ~0 e; X: D- m$ S3 d8 r if( m_pItemElem )
2 H7 [7 ?3 D3 n" X/ } {
0 x1 S7 Q' m {) K) E! A' M3 ^ m_pItemElem = NULL;
1 L" V2 n2 ]' Z2 o6 E9 p, @ }" ~/ q1 T; I, M- r$ N1 k% {
m_pItemElem = pItemElem;
+ E1 q: F+ _+ G m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );; q1 ~! `% u3 R: E& D# D& Y
}else{
' P# ~4 o) r f; _ s4 l5 S( S9 d+ ^" f SetForbid( TRUE );) j+ a7 C- \/ [& A; m+ R
}
$ W0 B8 e8 v; i: P f2 u& v" N | }else{
3 L3 D7 A/ i m! ?0 Z6 ^ SetForbid( TRUE );
. ~. @( w8 ~5 s0 y, d }
2 e9 p2 d" ?: @2 @ return TRUE;
0 ~% a- ^4 T ~}
4 m- \1 s+ E! ?/ X% I7 s$ H9 `; f$ x' [" f) ~' B
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )# \" n$ f* o3 E0 V. Y+ Q R
{/ N) o! J0 @* Z$ R
switch( nID ): N. b: O" C ^ k! U4 }% Y
{
! l) ~: \$ Z4 g ^ case WIDC_BUTTON3:# _ A. P7 t8 Q' f |7 y2 O6 c
{: z" P X! H$ v& U
bStart = TRUE;/ Q' T3 j. e0 r% M( C% ^
break;
) y S9 [( A% v' Q' o! n }- ~7 @4 w3 j1 H+ Y( u# d
case WIDC_BUTTON4:
: o# {! l* f; {' r {
. [/ x+ `* t. H/ N3 X bStart = FALSE;" E* F! u5 l$ i/ F
break;
! ?5 Y. |9 z7 D! i) @( f% b }
! H6 B# M/ x# [( { }
& ^4 i3 e# r9 m: M0 Q8 r! L return CWndNeuz::OnChildNotify( message, nID, pLResult );1 z/ ^- i: p* F5 o
}
1 e( Y" U. l3 D- [+ X; B" W0 Hvoid CWndAutoFood::OnDraw( C2DRender* p2DRender ). Y7 s5 X! e/ Q- Q! }
{
: d+ j% e3 X9 Y d2 Y0 t6 S CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
2 z2 I# m8 p, [3 J7 X" l% a if( bStart || !m_pItemElem ); l( z2 o$ L) D! \. _
{
- J4 C1 ^- t, z% g8 \' U; D pBtn->EnableWindow( FALSE );2 ^' y: K; F: m
}else
% U' }" {) m# o: m pBtn->EnableWindow( TRUE );; N6 m G" n: X: x* g# I
if( m_pTexture )% \1 @, a5 w- p$ [
{
u$ U0 q1 w: M LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );6 t& k4 X+ F. g. v) J
if( wndCtrl && wndCtrl->rect )
$ V( N& A5 C4 h: }* L T* T {; A r# K3 y5 u6 n4 s( r4 e
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
5 Q2 F3 [& |! ^0 n5 N9 B& C; | }
( V. s" B2 u7 z6 g1 ]$ Q+ R }
9 q' D/ N' E/ ~/ ^0 w% t}
$ E2 v/ {' ^1 a3 \3 ]! @. k
4 M' y. J) ^: h* n4 T+ @% X9 `BOOL CWndAutoFood: rocess()
) d. @" K9 S' C. O; V+ L{5 v( Q. |8 A0 v6 l
if( bStart )
, v& C" G# G& N: E. K) a2 X8 T# l: z {
+ ~1 j- W! H. C+ d' Y if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )1 i0 P( p0 _* t% x
{% f( g" m, y* u8 x' F9 t# ]% Y
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+ b1 ?1 M7 ]$ N
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
1 a1 Y& p' p ]0 ] M% Z! ^3 Z1 Y0 P }else{
: _" z" o! L+ N' c H( S bStart = FALSE;9 @ ~, ~7 y% h) ^/ }
m_pItemElem = NULL;( a5 Q& G* p9 @0 l, I/ T
}3 v s4 ?& J+ u. j
}
) U6 O1 n4 T0 I! s* j' k! S return TRUE;, p6 C2 ^" t, |3 A
}4 b: `9 h* G. A2 m
; y: r- a5 g3 ?4 Q登录视频废话:2 M6 ^1 ]2 Z$ L- U+ c3 [9 w
尾翼:
# I# ~' f3 a# i+ x+ T: {- w9 a# K- ^/ F* h' c0 A
代码:4 q E K$ n9 g( u
& o# _) |# T/ Y) A* e8 n9 Bvoid CWorld::SetLight( BOOL bLight )! d! Q: |( k% r0 s: Y; O) l
durch
P! j% u* i) ^: [; T7 U8 ]Code:
; {$ Z' l% ~9 Jvoid CWorld::SetLight( BOOL bLight )
( t3 H+ ^! K& y9 ?8 W1 |+ D{8 z0 Z4 B/ N9 i0 H4 C1 J
//ACE("SetLight %d \n", bLight);
5 E& B7 O* n2 Z0 ], A- p
8 d# L) B, }+ A+ j. w/ X% l0 f#ifndef __WORLDSERVER
9 {; M' _% d+ t, ?/ z7 j DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);0 h$ \) _: e& n4 G& }2 c
CLight* pLight = NULL;
* ~% H! A, @$ s; i1 a- j/ v8 d: r3 {9 K# V$ [9 \9 Q
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
, E9 O2 Z1 M) Q9 ?7 k. V' @$ A9 c& ]! D4 L$ \: ?: b; Z
pLight = GetLight( "direction" );
8 v4 [) y0 o: F1 ]5 e L$ H. k W1 Z ~$ P) J% o
#if __VER >= 15 // __BS_CHANGING_ENVIR
+ U2 n8 o! ^& k7 m, w2 |0 `+ c if( g_pPlayer ){0 ~9 I1 W6 S9 W; X6 |
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );4 ]% @) [% s' U" p* y% g. B& e
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
% h2 R# O- K& |" P- b* z+ H {
1 `3 s" ~) x0 `0 w' T* E i if( pLight )4 I% Z% B. s( D/ j
{
/ D9 K; D4 o0 z4 L pLight->Ambient.r = pInfo->_fAmbient[ 0 ];; T. {; c, d$ `8 S" n# N
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];- u& b9 e, G1 X- B
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];) D* H) H# i* I
# v, T+ {/ ] a. N- p
pLight->Specular.r = 2.0f;
5 @$ D& l# u7 ^* ]1 p4 R pLight->Specular.g = 2.0f;
" W. s. E- \. G8 `/ r& {: r pLight->Specular.b = 2.0f;, z6 Y( u* Q! r' ^
O1 N* J- @6 ~% c" L pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];% N8 H+ J: V8 L F6 Y
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! F3 t/ I# v! w0 H( Z2 Z7 ~% E# l1 K
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];7 W- @& {" e) O% W) p$ D9 i% _
7 G: l) W. b' @) u& i
HookUpdateLight( pLight ); 4 y+ l; C/ q# o2 Q$ P
) i H' c( ]' T5 w% j7 E
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ z" }9 c/ V4 {6 F+ s) t3 q 1 E9 l4 t1 H% e( ?$ `: p
pLight->Diffuse.r *= 1.2f;
" x" u+ t _/ y; X' J3 S% b5 q4 w pLight->Diffuse.g *= 1.2f;
. G8 F q6 m* J1 s% P pLight->Diffuse.b *= 1.2f;
' `2 i$ G5 ^! Z, n2 l5 x) k
& e j5 G* k% c6 W pLight->Ambient.r *= 0.8f;! s j3 X [+ m c6 \
pLight->Ambient.g *= 0.8f;( d( j- R& i9 c3 Y$ G8 I( n; T
pLight->Ambient.b *= 0.8f;2 l1 g; p& a' q
5 |; R$ I# b# I6 B+ P; [" p
memcpy( &m_light, pLight, sizeof( m_light ) );9 b y' B, U9 ?5 _: q; {$ v2 y
6 A! r+ ]% i! j6 r m0 N5 D2 j
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);7 X1 t3 z/ b6 {9 t
D3DXVec3Normalize(&(vecSun),&(vecSun));1 h$ k2 r7 g4 ?7 o
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
$ m% c1 ~( p q, e& v3 L0 g/ K/ Y pLight->Appear( m_pd3dDevice, TRUE );+ d( M9 e% n/ `8 x! D( C- l4 t
, b" x6 N3 E# T5 F/ t" ^/ e3 q* b
DWORD dwR, dwG, dwB;( B7 k2 ]) o* e" b( V6 B7 u
dwR = (DWORD)( pLight->Ambient.r * 255 );# ^6 Z: S6 O- M
dwG = (DWORD)( pLight->Ambient.g * 255 );$ [' S) D" J1 w# S8 P
dwB = (DWORD)( pLight->Ambient.b * 255 );, M6 C2 S/ c. N
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 S& \1 n; J, J% v' r }' l6 {4 ~3 J2 Q0 g2 m7 h
}, t F# T+ J4 Z( O5 D+ {- P9 o
}8 t6 A6 R7 k& _' w' m/ [
else
% c( q/ `6 ?0 \# W#endif
/ ?/ O4 |* F: d8 U. a& O5 V* w6 I) ~+ z& [* X* O5 `$ i: I4 L
if( m_bIsIndoor )0 C& X j" P* Y4 F$ B8 n
{% x0 W9 p' [( ?4 M
if( pLight )4 c, q j- @; f# n% e: u
{
/ L6 \: T+ s1 H1 S& Q // à??μ oˉè*
0 i& \/ k8 a3 K3 B3 k/ c v pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;; o' k* A8 o; e) p+ h; a6 }; v
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;3 v7 F) ]) B/ j8 M
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
" _( j" X0 [- c2 ]. s2 }! }: U+ _
// oˉè* ??à?
$ z* h5 K7 Y" d: e pLight->Specular.r = 1.0f;) R$ T8 ?4 \& T
pLight->Specular.g = 1.0f;' I) z2 q& V; E# i; G
pLight->Specular.b = 1.0f;
: Y0 m; a b; S // àü?? oˉè*
$ A3 F4 E3 d% ]) q: D: `: |( F pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
( h3 |( Z. ^( t, e3 u, C5 L# ` pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
# L! J% @& P: a6 k" ~. J8 w( B4 M pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 F. b: j2 P. _0 z* A9 Q
2 C+ g! f' \ g# G6 Z# p if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 @5 p- X6 T* m- J; V {
" _# q/ \6 a( R# c$ ^: ]! C pLight->Diffuse.r *= 0.6f;+ Q* ?7 A X8 A) M& ^
pLight->Diffuse.g *= 0.6f;
7 B0 j4 s. Q" x pLight->Diffuse.b *= 0.6f;. A6 X: K; l8 v6 _' [! |
pLight->Ambient.r *= 0.7f;' ^+ R- g% U: l3 X, l7 [
pLight->Ambient.g *= 0.7f;
; S w; ~0 u: |5 W, D pLight->Ambient.b *= 0.7f;5 T1 r: Y- L, R; W$ M9 T1 }: }) b( o! l
}
5 p; l1 h; b$ r6 w T8 C* H: M Y( s0 f: F
#if __VER >= 15 // __BS_CHANGING_ENVIR. }+ k" g5 a. B+ m/ K: ~
if( g_pPlayer )0 B9 e8 U: Y6 X$ j' d, S
HookUpdateLight( pLight );; K( c3 K }( z3 A, J, I0 I# m4 q: [
#endif z# g! c* A3 g9 X- i
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );- e( n' a$ y! ]) L. ?2 S2 O0 t9 ]+ J6 W
, I( p* w! N: j* s, a pLight->Diffuse.r += 0.1f;
: ~* {# g' v) v D. W pLight->Diffuse.g += 0.1f;) h0 Z6 y0 o3 c+ g
pLight->Diffuse.b += 0.1f;
8 `! `* c$ H9 t; v) G // oˉè* ??à? 1 ?3 }/ _ D7 x% j f) C
pLight->Specular.r = 2.0f;
& k7 |2 ?0 {9 V9 ] pLight->Specular.g = 2.0f;
( ^& Q/ \; i) C5 P; b+ B' I pLight->Specular.b = 2.0f;
( H! g) h" M5 n: F" f6 g ^ // á?oˉ
' V5 ~- q" l# |$ ?5 m, j# o* [ z% H pLight->Ambient.r *= 0.9f;; ~. @4 H3 s! I* ^0 [$ B# C3 G5 ?
pLight->Ambient.g *= 0.9f;! [9 Q$ P& w- r
pLight->Ambient.b *= 0.9f;+ m" s' z, \" I6 i) n- O/ R
5 D1 L3 Y, r6 Z8 G8 Z! J memcpy( &m_light, pLight, sizeof( m_light ) );
; e% O# J! e+ H0 I+ {' W ! x X9 @0 ^2 d# b7 h" }
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 g, Y; w+ [6 c2 C/ J) J( C, I: J# B
pLight->Appear( m_pd3dDevice, TRUE );
7 |( Q8 y; w6 `& f
( j7 l( Y+ A1 v1 Q: l1 f" W" U m DWORD dwR, dwG, dwB;) U+ Y" v* `* L0 a, @
dwR = (DWORD)( pLight->Ambient.r * 255 );* H7 P" f1 u; u( v
dwG = (DWORD)( pLight->Ambient.g * 255 );" K: C3 d0 p$ X0 l; H2 M& A; e
dwB = (DWORD)( pLight->Ambient.b * 255 );" J" F: |7 v. o' \0 i& F! s
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: U2 c4 V0 J+ t' u# O/ ? }
! N4 K m7 e5 ]- C6 @. W }1 S! e1 m$ t; g9 @
else' U; |5 g' N+ h$ L' w
{% i' }% f$ J4 c7 G, {
if( pLight )
. ~+ S0 U0 D9 l7 n4 k* l {
: N5 b0 x9 u, H# X) m# l4 N + ?" r- g0 T% @
int nHour = 8, nMin = 0;, A7 l- M+ K0 d7 z( e
#ifdef __CLIENT8 q9 j& Y; C) `) H7 t b
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
4 \1 R$ V* G. s2 ] nHour = g_GameTimer.m_nHour;
+ J$ J- P2 [, e; ^3 {" Q; ] nMin = g_GameTimer.m_nMin ;
& o" W1 f" b3 e! w% T# k( Z& L #else: u( k$ R* p( N. D
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.5 y: F j+ g: [ u
if( m_nLightType == 1 )
/ ^' O1 K: L* s( c% L+ U4 [" Y nHour = m_nLightHour;( b1 b% f/ Q( U! I" q/ E
#endif# x4 p3 s. y6 x1 |, \# p: j6 E5 d
nHour--;& f9 o! Z$ b/ e
if( nHour < 0 ) nHour = 0;8 }2 f, u) T) n! e9 |3 R7 x! K
if( nHour > 23 ) nHour = 23;
& X8 g1 X" H4 Y3 n0 C+ L
( S9 t' q7 q3 }( E8 v% o //if( m_bFixedHour )6 Z9 K' W' ^- _$ S/ a% q, A
// nHour = m_nFixedHour, nMin = 0;( J# k/ ]+ n3 G( T; y/ k
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];( v9 [8 } w0 G( t
LIGHTCOLOR lightColor = m_k24Light[ nHour ];$ Q6 H6 n6 S4 S/ I9 v
' s7 B: j* j5 y& m3 W: f //m_lightColor = lightColorPrv;
$ t0 [! b) R: c+ E& X lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;# x/ ?, s) d* @& U4 \
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;. W7 C- }. U" L8 l
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# R) t V! X' @- v6 W. g$ m
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;! b4 O9 P4 J/ p/ t: C9 H
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;3 O4 J$ n% g: D( W
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
2 I1 |$ T$ ]. ^- n // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)- ?. y0 Z% z% G0 i' k ?
, B- {- p" ^2 U n* @! B9 l // à??μ oˉè* , J) z- c3 O+ O
pLight->Diffuse.r = lightColorPrv.r1;# R' g1 K- ]3 R1 J1 \
pLight->Diffuse.g = lightColorPrv.g1;
" k. i& E/ ^) M7 e pLight->Diffuse.b = lightColorPrv.b1;
% j) \' w( G: m" V. i8 X% q // oˉè* ??à?
6 _1 a. ?" n) E0 j pLight->Specular.r = 1.0f;
) \2 X! e8 ?2 @ x pLight->Specular.g = 1.0f;
% C+ C5 P7 c3 M pLight->Specular.b = 1.0f;
2 H/ p+ K9 y. G& @# k // àü?? oˉè*
1 P1 Y! H0 H2 W U pLight->Ambient.r = lightColorPrv.r2;
2 Z1 D; q d- A i0 Q" g5 ` pLight->Ambient.g = lightColorPrv.g2;
0 E% X( I% G9 ~( J' X; V pLight->Ambient.b = lightColorPrv.b2;* a+ t! n+ C$ Z' D1 c2 D
" s6 m2 Z8 k* M0 \
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.( y" ]! N1 A+ B, c5 H6 I
{7 f7 Q' S% C; }
pLight->Diffuse.r *= 0.6f;
% |5 N x4 _$ E* ^# T2 D pLight->Diffuse.g *= 0.6f;# ^- S; S6 p9 _; e
pLight->Diffuse.b *= 0.6f;
$ I; z1 [; q8 r' E+ B+ l& Y J pLight->Ambient.r *= 0.7f;
; C* d/ w9 E J+ O, [ pLight->Ambient.g *= 0.7f;- S0 J. N. C" J7 N- E
pLight->Ambient.b *= 0.7f;2 c+ H5 g- [ D( @
}
$ f4 y0 _8 f2 G3 i0 h& l
4 ]' A& f. m6 U, z0 R! ^#if __VER >= 15 // __BS_CHANGING_ENVIR: T M' g/ Q" ^9 S; d3 h1 V: _$ ~
if( g_pPlayer )& A, [, w6 U2 c% D" M2 m3 C) w
HookUpdateLight( pLight ); 8 D2 q8 T1 P, f" `0 B( T& O u* s* Q
#endif
& M' [# O' w2 B) O# m* H memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
' g+ {/ q& Z- w# W) N' }5 ~- j3 d/ {3 Z; W
#ifdef __YENV
: z! Q# O+ A2 q o0 R$ _ pLight->Diffuse.r *= 1.1f;
7 c( R# }/ F G7 @& e pLight->Diffuse.g *= 1.1f;7 D- k9 `6 H( w
pLight->Diffuse.b *= 1.1f;3 p |' m2 _* a! Q' |+ x' [
// oˉè* ??à?
0 c- P) [6 @' T pLight->Specular.r = 2.0f;
6 ~( Q. R, o: a6 v( U- s pLight->Specular.g = 2.0f;
$ E6 ^# y' o% d pLight->Specular.b = 2.0f;
; X8 y4 s9 @, V C; ~ // á?oˉ
% F* W" `+ @: ` |* H) ?0 p4 ]* r pLight->Ambient.r *= 1.0f;3 e& b: J, r# F! D0 S3 O* l! ^5 j
pLight->Ambient.g *= 1.0f;7 j( `* j, v9 S i/ c( H0 Z1 e
pLight->Ambient.b *= 1.0f;
% {; r: M6 n8 }3 ?#else //__YENV' g8 s4 V( u# y9 W
pLight->Diffuse.r *= 1.1f;4 }9 V& W: |& l( F# ~% j8 H9 z
pLight->Diffuse.g *= 1.1f;
' E3 s L) H6 o" b4 E* N5 q pLight->Diffuse.b *= 1.1f;$ b+ _; D' s7 [, E5 o
// oˉè* ??à?
0 K n8 ^# _% \6 e- }) b' q pLight->Specular.r = 2.0f;
8 J( B$ H0 m# k3 Y% R; ^ pLight->Specular.g = 2.0f;
- N ]7 a% B" A$ G2 V pLight->Specular.b = 2.0f;+ V; z. b! C$ q; f5 n/ L
// á?oˉ 7 |4 v5 a; x" [$ H g* i
pLight->Ambient.r *= 0.9f;
: ~ ` q" S+ }- g' a6 a pLight->Ambient.g *= 0.9f;4 o1 a4 E+ c9 a5 G) g0 F
pLight->Ambient.b *= 0.9f;
6 ~# {& J( w7 M. _#endif //__YENV
+ F- O9 W& H# u# e' F7 K f! b* \& g+ j, ^7 c$ ?" K
memcpy( &m_light, pLight, sizeof( m_light ) );
9 R( n( |& v7 X , m" Q5 I2 w! G6 r0 l
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
6 _- L0 D3 c( u- L$ F' O: d4 ]4 I D3DXMATRIX matTemp;' O6 W% P4 k1 v- H; l7 z" w$ J
static const float CONS_VAL = 3.1415926f / 180.f;. x2 I, c( i: ~) ^5 K3 @" H3 B
( b( N2 u; W# g- @! F" o# U
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);" R, V$ k& G* U5 G
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);* F. |: _2 c7 Y8 v. a
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 1 S& M1 v8 @3 \0 x5 z5 z
pLight->Appear( m_pd3dDevice, TRUE );
* s& f$ M1 y9 j5 O s3 u( \
+ J0 Q$ ^0 l1 }5 | // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);4 q0 z9 m! i: V+ C$ q" @$ s
// D3DXVec3Normalize(&(vecSun),&(vecSun));
4 C ^7 n0 ?2 G3 @; s // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- o: D' v6 N, G# d8 V3 t
; c6 v" D3 e; a( H1 i* j5 C DWORD dwR, dwG, dwB;% @) D0 z; c% R; j: a% V4 r0 {
dwR = (DWORD)( pLight->Ambient.r * 255 );$ J: t, ~3 _+ x3 c* E+ `5 R5 x
dwG = (DWORD)( pLight->Ambient.g * 255 );
( d, j. T( y7 N9 k4 D( r- I dwB = (DWORD)( pLight->Ambient.b * 255 );
, `7 Z0 W9 I- r) w dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); : d$ T [0 ^1 ?2 c0 x; J+ _
}
3 B8 K# A$ }. x8 ]* B+ `& l }
" m8 z( r# o* _+ b+ n4 V- r) U
( R, v0 R$ c, V: D2 N( P" c m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
/ z) g* }/ Y0 Z0 G J, \ 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) );
8 C, n! r" G$ y" ?$ |4 @ ::SetLight( bLight );% {; Z. J I$ e/ W: }
/ ^3 U [8 u0 j# n/ B2 v6 _
// ±ao? ?D?í???ó á¤à? " |2 \. U! e/ D
m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 k7 S$ q+ J& u& G2 d! m% ` 9 J' b# {$ Y% `6 w& Z/ D/ T5 v5 |
#endif // not WORLDSERVER
, U# B, @9 F/ V" t( Q: a4 v- H}
+ n1 W' a4 l: K; ~ R% _3 n并更换
" w7 O+ I* ~+ ECode:, o4 H7 C5 ]! L. O0 a: X1 u
__FLYFF_INITPAGE_EXT5 [1 G9 R) q1 R
定义& `! I' r3 E9 w. F2 l( n3 I& G
0 g7 D2 f2 v: d
* ` O$ E9 k# R- j( k
7 X( @ Y4 Y3 ?) I' m. K. C
+ h; D! p8 o; L; D: X+ S) y现在终于删除我的狗屁加速...; f7 `) L4 }" _5 |5 C; A9 n' M o' n
! @4 P# R' D' U* p( z& d# ]
) q8 a) G1 X5 ?' A% v
0 J7 |; l8 r# z/ G |
|