|
食品车:) z1 S+ V, K9 q$ p
尾翼:0 }& o+ {/ r3 |$ N4 e
- U7 B. R* M0 u- f! W) T代码:
6 i# G$ e1 C5 ACWndAutoFood::CWndAutoFood()
8 E$ q- E6 {! K* }) c# h{% d+ y& S6 E# C& D
m_pItemElem = NULL;7 G5 }( m J8 g: ]
m_pTexture = NULL;! `( A5 n$ Z/ N9 W
bStart = FALSE;
: D' S9 F7 J, Z' o}
+ F9 c; W4 P% F$ O. R, l3 J' q' e- z6 z
CWndAutoFood::~CWndAutoFood()$ |1 e2 B s5 r7 e7 c
{2 H( b% X* U. I! P2 G+ k7 b6 J8 E
AfxMessageBox( "AutoFood ist gestorben " );* _( X& U C+ g, I# D2 }0 s1 m/ |
}0 A, T; O2 K0 ~
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
2 p& E3 N; [; E( \1 T: @2 A9 m{
3 Z5 }1 v; P' M* A1 j+ j return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );2 x5 O6 v8 E! D- e* q6 \- |
}8 J! z5 _$ k/ s+ K8 p
/ A+ ~+ O, @+ GBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )* e6 [; Y5 |+ s
{
7 X {0 \ F2 R) r }; V LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );- ?! O3 ?0 t2 t) w
CRect rect = pWndCtrl->rect;
. \/ Y9 Y# D# V% A if( rect && rect.PtInRect( point ) )9 r" Y7 R4 R% e: S; c
{
, R7 Q( M. C% f- I5 A0 X+ ^' n4 \ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );# M- t( n. K% [
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )7 A) K; f7 d, |3 s' P
{
8 ?% B: X; y. Q7 h$ m- v if( m_pItemElem )
/ O: S- w# D8 k: s8 {; { {) L, Z F# ?: @/ {( [- L
m_pItemElem = NULL;
% `3 y' Q# L& w+ x5 d }/ r( w- j6 A0 d2 X" U* C) a- x
m_pItemElem = pItemElem; k$ M% a. x8 X2 q0 ]
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
8 X$ U' o; Z$ Z1 o& I6 w# n }else{
* p# A; l3 q0 z- f8 I; A, `7 r4 m SetForbid( TRUE );0 F! G) ^" c, t: j
}
& A3 G$ e$ M) `8 ^ }else{7 r, s& N* N/ s
SetForbid( TRUE );/ B- H1 R. y2 z- Z9 u
}
6 _. B3 W: {' p) i# x6 d return TRUE;
8 j- U$ w) }2 C}
$ s7 T2 y: u& |! f0 N s9 W& {- ]# Z8 V! L, D
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )" y0 x7 T. K! P0 P) l" G3 j
{
) _! r2 ~5 ^% M$ _1 L switch( nID )
6 {8 W, x9 h# s( I* J5 @ {6 m' N* A* C9 V' [9 B
case WIDC_BUTTON3:
& J. K) d: z' q9 U7 J$ c {/ `" d& a9 J/ ~2 f% ~: H0 V
bStart = TRUE;. ~9 R1 Q7 c! I0 n- E$ t
break;
# ^7 K9 p. N* B* S c }
( V4 |5 O) G( i3 s4 o- o& x case WIDC_BUTTON4:$ J: N3 l8 x% I1 s
{! E/ a% b' _2 d* I! e$ C( W$ ~
bStart = FALSE;1 H' c. p8 }/ y; M8 O; g" V
break;
3 b- N. b% y: G7 J1 _ }, T- i" c$ b9 O
}
0 c- y" L) l# ~5 r y9 g+ u { return CWndNeuz::OnChildNotify( message, nID, pLResult );
/ E8 C( w+ Z) v! l0 G/ C}
4 e, U2 v# X: `7 p; y0 t! |void CWndAutoFood::OnDraw( C2DRender* p2DRender )
" ^) I" t# |4 X T0 L j. P9 W9 \{% b9 v) A- `+ e- K5 k
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
j+ h. h. Q$ T if( bStart || !m_pItemElem )3 H8 x" d5 m$ D" [- M9 a3 D0 D) S
{
4 C! o( [- P" J0 ~$ j! y, H0 X1 C% V6 b pBtn->EnableWindow( FALSE );
{, e$ A2 Z% N# Z* G& V" g }else
c( N# i2 }1 \6 r! s pBtn->EnableWindow( TRUE );/ `/ F% ~5 w+ n& O
if( m_pTexture )
* H& n! U/ [2 b t, w {# I/ O, l% E- y
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 c! X7 t) f3 i* @* h# R/ G if( wndCtrl && wndCtrl->rect )
2 @- {. R9 X4 H/ \" S- m0 z. `* T {
8 k+ k1 k8 s5 q5 \ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
( I& K( j+ C6 p$ P0 p }( \# d% E0 K$ `, T1 L6 O4 B
}* \/ c2 z" b2 ]6 r# O$ E
}
$ }1 z! M6 o/ ?) X6 e I
) r( i" {$ J% s6 D# E; yBOOL CWndAutoFood: rocess(): @) ^ O9 o3 \; M
{& k; ?; e; Y5 y/ p# s1 a4 ?
if( bStart ). l/ v. @4 {3 P) P+ D7 b4 ?
{6 |3 I. N P E' a2 F# ^" q
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
7 i( O* i( V5 ]$ k p {! T- S$ R% T: F1 j4 y$ l
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
) N$ ?4 Y8 U- k& N& r g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
# M$ T# Y2 s& Y' P# C# m4 z3 [ }else{/ \/ J+ o7 {2 p% D
bStart = FALSE;
0 k. _: e) ^7 L6 o* |0 S m_pItemElem = NULL;2 [* D* \) p* {7 x+ g$ |7 @- u) B
}3 }6 G+ W* B+ ?! @; }$ R6 W
}
. c! b6 @" b' e- L6 y9 i return TRUE;' `! H5 Y6 N7 _1 i! _
}6 C: {, l( V6 p8 d2 S
T& w8 x; a" D) j( A登录视频废话:: i. z' D5 z" p; D3 I
尾翼:
) _9 G6 L8 [1 H
7 L/ R( a/ v: i+ [/ S代码:2 S w T' C' [9 t- ?0 F
: ^, E$ w% @+ B5 |. @3 dvoid CWorld::SetLight( BOOL bLight )
' Q% N9 \ z" }" t" Cdurch
6 `" |7 {& s- }/ e! {' aCode:
7 ]' h0 u: s3 u9 ?% Gvoid CWorld::SetLight( BOOL bLight )
$ @; b* k! l2 q' d8 v{4 o- A( b7 [! \6 A4 g* s+ F
//ACE("SetLight %d \n", bLight);4 e4 K3 H; P$ _6 k0 U3 {
0 R# z. v9 N, v) D; Y. w
#ifndef __WORLDSERVER
/ M+ i3 Y* Z. R5 _( ` DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
. Z" T9 o$ n' S. ?: F" @* m+ U. ^ CLight* pLight = NULL;( O7 Y8 k- P; z( g8 q, l$ ?
2 _, ?9 q( s1 d7 T D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
. j% n# y% k1 o A9 A2 W
- P) n5 C- J0 ]( q1 x" E' d pLight = GetLight( "direction" );
* ^$ H/ o7 O$ r
" C A3 O$ |+ J- h$ B- n$ s#if __VER >= 15 // __BS_CHANGING_ENVIR
& d ]0 l; W- r2 _) r; R if( g_pPlayer ){
' `2 T7 Q; s6 ]/ @8 E5 t/ ~ ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
! U# C! e5 R! A5 Z7 S$ y, l if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
3 X9 T' ^1 h* g+ c" f {
9 `( K; ]+ }# j7 z' C" B if( pLight )! q2 Z8 I% T1 m, B. J
{
6 M; Y, h. X! d3 C, J/ R! N( M pLight->Ambient.r = pInfo->_fAmbient[ 0 ];* c4 ^9 G; Z* j p5 V7 \
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];+ v& C' r6 B' h" D! ~" c, c2 z
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
3 c8 R2 N" Y: K2 h" y* [1 b# G7 P; F C" R5 @& o$ T# K
pLight->Specular.r = 2.0f;/ U7 l5 X6 t- o% C$ W7 K
pLight->Specular.g = 2.0f;
. t' w7 b/ R. g' ]. b9 E6 e% r pLight->Specular.b = 2.0f;
4 M; ]$ ?% D" G. Z$ M 1 G: o, n S0 p
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];) \3 I4 I2 b" h- J5 {
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
3 s! ^- O! k; X: ] C pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
7 N7 r: @% s' i; m5 j0 e7 T 1 ^6 F6 Q& L8 }
HookUpdateLight( pLight ); % q( ~+ R A# y* t" [
/ t; o* H3 n5 N3 d memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' b- {( g( G4 A/ X! R) a6 z6 ^
I/ J: I; N9 _+ ], b6 e* B: ]- t) f pLight->Diffuse.r *= 1.2f;
* i* Y- k' J. X9 U3 o pLight->Diffuse.g *= 1.2f;/ ^; w8 H+ t6 K1 z4 C1 F
pLight->Diffuse.b *= 1.2f;
0 ]7 \5 K4 W) P2 ~4 V
% Z9 ]. |! Q3 j) P pLight->Ambient.r *= 0.8f;# d+ d" V1 J% Y5 C
pLight->Ambient.g *= 0.8f;. f, ]* h) t* \
pLight->Ambient.b *= 0.8f;
$ y1 {* R# p% F 6 g+ U9 w0 S. W g. n& {
memcpy( &m_light, pLight, sizeof( m_light ) );
) }2 V W# G2 U9 g! c* o
. K N" q9 |. U# ~5 C D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);% W6 Y C1 ?; |& \+ w* x/ X2 z
D3DXVec3Normalize(&(vecSun),&(vecSun));% n- B1 h4 Z; d( A. Q1 G* u( p7 v
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 ^& z% G T7 o f' | pLight->Appear( m_pd3dDevice, TRUE );
+ u+ x* ^& s( }4 y& q$ @
4 ^+ X/ z" o& Z) J DWORD dwR, dwG, dwB;. z2 M+ \0 E: D. I Z. n( |
dwR = (DWORD)( pLight->Ambient.r * 255 );
/ {6 m' z: z# l7 U. p/ f dwG = (DWORD)( pLight->Ambient.g * 255 );
1 A" }( F" l5 F, K dwB = (DWORD)( pLight->Ambient.b * 255 );
) o/ D5 V7 Z1 K) ` dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ s5 f0 Z. C3 X( P$ w }
# ^! p, x8 J( ]3 M+ C$ K# v }
5 u f; E" X# L) m, p- O }
# B) L2 w8 |9 D, _* ? V else
, v* X( f0 o, L: Q#endif 4 j, D2 O* G% {7 ~" v
8 t! i$ H, w' x; x G( {0 Y+ g if( m_bIsIndoor )
! `0 h$ W( i9 d. S2 d; W {+ E6 k6 ~: p1 E. m6 Z( s+ P5 @
if( pLight )
' _4 R6 O4 z/ u# a0 ?3 |/ g+ L {
. e& V3 F7 T1 W& P0 x# C0 s // à??μ oˉè* ) l9 f; j X3 N* K* `0 j
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;8 T2 J. T/ @+ V( L' B/ F
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
' ~ c r; Z% J" b# r# K; @ pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 ~8 K1 r/ d. m' l
# i4 L0 q6 o$ @* y% }0 n/ Z+ J
// oˉè* ??à?
2 p( H3 p' J5 H- { pLight->Specular.r = 1.0f;* p Z2 o+ [; I0 `- q6 R" c2 [
pLight->Specular.g = 1.0f;
! W& r3 j/ S5 e+ B9 F$ d* R pLight->Specular.b = 1.0f;6 d, x& ?" l" h' g) V' f+ f t/ A
// àü?? oˉè*
8 K& Q3 \' c( y% X, Q4 p pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
. ^- r* \- u& e% p6 O |. Y pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
0 H- r8 n: } | pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 K7 A; \! V* w7 r; X; E) d
4 Q! ^% h1 k% n+ I4 G; { if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.( s1 ^* T% t3 x* q6 b
{8 [' m) ]2 l1 j! B
pLight->Diffuse.r *= 0.6f;* t& x$ s$ U/ h- {
pLight->Diffuse.g *= 0.6f;4 |0 q) ?" o8 ^. P p9 y; M
pLight->Diffuse.b *= 0.6f;
( c- E" f" A1 r% M7 p2 D pLight->Ambient.r *= 0.7f;& D5 O7 ~ B; l
pLight->Ambient.g *= 0.7f;
1 |# m% N1 U6 b pLight->Ambient.b *= 0.7f;% ]! T" Y- o3 l/ [
}
" n) O0 L- ?8 `7 u+ i9 k4 ]" [( T- ]8 J
#if __VER >= 15 // __BS_CHANGING_ENVIR2 v9 @2 k# B) k0 ^ {
if( g_pPlayer )7 _* c7 c% w# r' L
HookUpdateLight( pLight );
: E1 s# `+ {, _4 u# F8 y2 F#endif
* S& @. g6 J* R- Q# U8 I5 b$ v- Z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
# `0 s% K5 B& I, W4 ]* l1 y3 @3 L, x5 n6 Q1 G- T- D
pLight->Diffuse.r += 0.1f;
/ L E) o7 A, \ pLight->Diffuse.g += 0.1f;9 h0 O- D8 W1 M6 I9 z
pLight->Diffuse.b += 0.1f;
, B, h0 t# B3 a3 Z- n/ x) J // oˉè* ??à? 8 _- x& F" }: u6 l4 T
pLight->Specular.r = 2.0f;
0 |: O* i- w0 U/ w$ {& A pLight->Specular.g = 2.0f;0 w. }5 v5 N6 A- T
pLight->Specular.b = 2.0f;, k$ d6 C2 L0 s4 M" w6 q
// á?oˉ ( {" w) C/ H3 i( h' d
pLight->Ambient.r *= 0.9f;
6 b, O% g) {+ E" { pLight->Ambient.g *= 0.9f;7 L; r3 N9 h2 ^8 V# l) P
pLight->Ambient.b *= 0.9f;; {# [$ s9 {3 B5 y9 O* s, b' D
$ o4 ?6 B% O- P! C( L) U0 k memcpy( &m_light, pLight, sizeof( m_light ) );
+ ?( q5 U3 E3 }0 {$ c& D
# u3 | [; a2 }, l1 D0 u pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
$ b0 b& K, \; K! A. B pLight->Appear( m_pd3dDevice, TRUE );
6 b" R& s9 w) N: t & R6 b" h& N g, C5 m5 k$ }
DWORD dwR, dwG, dwB;9 C( Z) B" K) {7 }! h! Z" v
dwR = (DWORD)( pLight->Ambient.r * 255 );
, @) f8 x, c$ h0 f$ h, Q2 f. ` dwG = (DWORD)( pLight->Ambient.g * 255 );
# v: Y l ~- J, J* h! N dwB = (DWORD)( pLight->Ambient.b * 255 );. Y2 x, I+ x* L3 U
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
2 k! O0 y6 X- g5 X6 P' i }
6 }* O: q6 O9 V! ? }
& I. H& B, E- {2 r) @ else
# z, I; }! r" J4 _2 V {0 Q% t" b. L) s* ~
if( pLight )$ Y2 b2 i, I# }; v) z1 x$ r
{
3 H% K) z6 ^- z$ X' s7 H \/ j1 l. K; _ ]3 X4 F5 ?( y* ]
int nHour = 8, nMin = 0;4 A, ~9 D! P3 n+ L" Y, ]1 ]* H
#ifdef __CLIENT
8 ~+ i: a( `0 I. U' Z( w9 l // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 9 \+ s+ s8 v5 }0 C, ]3 C( j& V+ t
nHour = g_GameTimer.m_nHour;, x0 _2 Z" P- z! U$ E
nMin = g_GameTimer.m_nMin ;9 i* B+ p# H9 ?; V8 R& R ^
#else
; b, d+ k5 ?: }/ _ g# f // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.! Y3 L0 N0 E. v& G
if( m_nLightType == 1 )
& q4 m, q+ k# b; l1 i: b/ e nHour = m_nLightHour;
1 E8 t3 y! [6 S; Y8 a" Z #endif3 { T* ^+ w; D0 ^. K" r1 x' a* D# _
nHour--;
$ a1 S+ |5 R( Q5 d& F& ?- M if( nHour < 0 ) nHour = 0;# l/ T/ a6 r8 b. D; [
if( nHour > 23 ) nHour = 23;, N5 @4 |8 p/ y; M% }& f8 S0 V5 w
" q" O, O' d: a8 Y+ k E
//if( m_bFixedHour )) x) w: s* m. C( @
// nHour = m_nFixedHour, nMin = 0;
* u& X. u( D, w: R* `; [ LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
! J! Z1 |: O+ @3 m# t+ z o4 p) i# } LIGHTCOLOR lightColor = m_k24Light[ nHour ];
- m& @, h) ]/ I0 E& T4 h7 |! z- ]' K0 X" ]! h# @8 y
//m_lightColor = lightColorPrv;
& Z/ a' p/ L7 A4 Z" `$ n" O lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
$ u. G: m, `. z, Q" k5 A" v$ G lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;+ ~% s5 d/ H4 u( X8 K$ L, m$ }$ q8 K
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
/ J6 h5 v/ \. ?9 l, S: [ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
' ~% ~7 A0 _3 C7 i. y' D# z, q$ u& ] lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;; E# e! ]& N' r5 W5 {1 x. w" G% t( c4 m
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
& y, G# l' W! B! O2 b$ S$ |* w // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
' p' `/ }, \& Q+ v8 `1 L2 \! r& w5 S1 O! v! P
// à??μ oˉè* 4 I- ~ K- s$ F$ n
pLight->Diffuse.r = lightColorPrv.r1;
5 s* p* a6 ]# S( ` pLight->Diffuse.g = lightColorPrv.g1;
* i1 T) M2 Y; o# p pLight->Diffuse.b = lightColorPrv.b1;
# I! I0 _& B7 R+ l/ i' Y // oˉè* ??à? 5 u k& ?" s' N# ~" [
pLight->Specular.r = 1.0f;
& v/ D6 G& r0 K Q- S pLight->Specular.g = 1.0f;6 Z9 }' i. v2 }* H, a) M/ t, K
pLight->Specular.b = 1.0f;" v* A# o3 I7 z# B; S
// àü?? oˉè*
6 Q8 G4 F5 u5 S pLight->Ambient.r = lightColorPrv.r2;
; a' ~7 w, p% X7 b- L+ Z. p pLight->Ambient.g = lightColorPrv.g2;8 {) s: ?* J. Q& n
pLight->Ambient.b = lightColorPrv.b2;1 L* R8 K* ? Z$ C9 N: [- M
) w% A; C; A7 ]' g
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
: s" c+ Q) p9 s) a {1 y3 r" x3 w q
pLight->Diffuse.r *= 0.6f;; L# w) A7 N3 x! R4 x1 s8 O
pLight->Diffuse.g *= 0.6f;
$ w b2 P+ g# Q0 z4 ^ pLight->Diffuse.b *= 0.6f;
3 q4 |; }" a3 ^9 y$ w3 `2 F. t pLight->Ambient.r *= 0.7f;3 p+ W7 _! N u
pLight->Ambient.g *= 0.7f;1 c; V- Y8 f5 `: I" p6 c# U
pLight->Ambient.b *= 0.7f;
8 J- l2 b1 U P }
]/ h1 u7 Z, H8 y; o* K7 F" e
8 k5 v, |$ \; G#if __VER >= 15 // __BS_CHANGING_ENVIR
* P5 L" v$ E' e+ o t# H) j if( g_pPlayer )
: J( e. O. V- O( {$ i8 v9 M HookUpdateLight( pLight ); . B0 L0 @/ B( M3 T: L
#endif
! f! o7 x( V2 t- c, M2 o memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' ]: w+ K' \/ D( N8 U
* f2 |1 l. w. ?- Z5 @1 ~
#ifdef __YENV! _0 \/ `; S. x) W
pLight->Diffuse.r *= 1.1f;
1 C) v* J0 R7 c$ s( x& U* x pLight->Diffuse.g *= 1.1f;
* h2 J J' K# D% Q) y9 E pLight->Diffuse.b *= 1.1f;0 Y/ u+ D, y( I0 A
// oˉè* ??à? # ]0 K: f7 t s
pLight->Specular.r = 2.0f;, H9 b8 U$ W1 m
pLight->Specular.g = 2.0f;
* O2 b" ^( g+ v pLight->Specular.b = 2.0f;
/ ]/ ^, e. Y3 A+ b1 i, O // á?oˉ ; N. r( [5 j! x9 O0 U5 T1 d
pLight->Ambient.r *= 1.0f;
$ u1 p# m! p) y7 }5 M, J pLight->Ambient.g *= 1.0f;6 H$ b# Q4 d! ^/ i0 `# x
pLight->Ambient.b *= 1.0f;
- H8 o( C4 N: Q+ X#else //__YENV
+ a6 o+ O0 N' Z% l6 h pLight->Diffuse.r *= 1.1f;
/ e" z4 [2 d4 y% D- I pLight->Diffuse.g *= 1.1f;
) d% M2 O. g- A. L* S, ~" c pLight->Diffuse.b *= 1.1f;0 g" q& \. T( n% E3 ^
// oˉè* ??à? # z1 H0 p7 x; s! C7 Z
pLight->Specular.r = 2.0f;
# v. f: @) E% U' f3 v. u7 N& O' Z pLight->Specular.g = 2.0f;
3 a' d: w) [1 m2 X2 N pLight->Specular.b = 2.0f;: Z: w1 _+ W$ ?
// á?oˉ L% B$ ?+ S1 N' U! Y
pLight->Ambient.r *= 0.9f;9 Z l+ v% }' |& z* n5 u
pLight->Ambient.g *= 0.9f;: j, g( Z8 z( F I3 l
pLight->Ambient.b *= 0.9f;
) U; i7 p1 k* v#endif //__YENV . e% k. u4 @, r4 w% E* _
9 B: J; y3 P5 u/ h9 ]1 e memcpy( &m_light, pLight, sizeof( m_light ) );- e3 m0 B" p% r
& y* T7 Q2 K5 {: @9 c) t: [- J D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);/ @8 P% g* }0 z' ~
D3DXMATRIX matTemp;
$ G8 [# X! ]. O0 G; U; l' i$ x. G static const float CONS_VAL = 3.1415926f / 180.f;# C" w% E: b6 k; k! K% u3 F* g
9 e& C6 q1 R! r; D: g D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
7 ]4 E1 i) ?: I0 \: m1 J' a D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
1 _' f7 y6 z) k pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); - c' o! h3 o/ }+ g- C
pLight->Appear( m_pd3dDevice, TRUE );
$ e: |: N& P6 P; {( x. Z5 e: b3 p0 k7 ~+ [& K. ]3 g o; b, O' l
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; p- Z* L4 G8 c: U: `' L
// D3DXVec3Normalize(&(vecSun),&(vecSun));
4 {, {6 c9 \; p1 l2 a // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
! [8 U: X- O: ]
7 K- G0 o; Y5 L( G8 Q2 w2 m( K DWORD dwR, dwG, dwB;
$ z8 I4 u* _% m+ Z! w7 A1 b dwR = (DWORD)( pLight->Ambient.r * 255 );
B6 v1 @* B% i) P: A0 l4 J dwG = (DWORD)( pLight->Ambient.g * 255 );, j" D8 _4 F" h) v5 u; F7 J4 j( i6 h
dwB = (DWORD)( pLight->Ambient.b * 255 );/ a: a' z+ k$ M
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
) |% f. t2 I( d, h2 z; z7 U }
; f) ~2 R- X) _7 S! P* j, s9 Y: ] b }& R, U% o) g! S# f; A
9 q- c- R X4 M" s m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight ); I. _( Y( h- D# L7 J, C
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 Z! {6 I5 H5 ~8 C( _5 X
::SetLight( bLight );
& H2 ?( s8 O. o! {! D* I0 t6 w; }* b6 _( {
// ±ao? ?D?í???ó á¤à?
$ a6 x3 c4 S* j: Z) @( `/ R m_pd3dDevice->SetMaterial( &m_baseMaterial );4 _- E7 L- q1 j! _) U- q
' V/ M B# R4 K# m7 `% z' u#endif // not WORLDSERVER
" \6 e5 D2 H# Z9 _" J/ A$ C6 Z}
& K. A5 w% q6 S' N并更换5 I- ~. F) c: Z7 n" u* ]
Code:6 G3 k! `) m7 z$ ~2 h. W, c
__FLYFF_INITPAGE_EXT+ Q/ U* P6 C/ P' s1 r2 ^* o& P
定义
- N4 u- ^9 m2 W& N! r! u( \" @7 {3 A- s5 e8 R
1 ], j& M! o7 G
4 h, Z5 n5 S' [8 E
5 _6 {% C) ^/ q! Q现在终于删除我的狗屁加速..." ]; t- P- b0 P# n8 ^
& N. w: [# |5 O# R5 t3 r" X v+ q g+ x: e: d8 H: T& r5 L$ o
1 t; r5 z' _- ^4 v- G9 k& k5 k6 F1 F4 z |
|