|
|
食品车:0 S* |+ y* {# A$ T& K# \4 w
尾翼:: K. [. P. I. M. W
/ l7 P3 S( d- u- Q; K9 m$ X代码:" y- \' T; T+ S
CWndAutoFood::CWndAutoFood()! X' ~1 K, i3 L" `9 h: |! }+ W- _) F$ g
{
- {8 u) V& y5 s' ^- s. l m_pItemElem = NULL;" J- T: o4 d1 a1 Z- S( o H
m_pTexture = NULL;
7 W+ G9 k* s$ E5 S8 K0 Q2 x! H/ ^ bStart = FALSE;
9 \5 c2 w7 l6 E1 V}4 t! j' ?/ V6 j% W% h
2 U8 F& O' r) I" R e- H, U ^CWndAutoFood::~CWndAutoFood()2 W; ^+ ]" p! a" m' F: s
{/ @$ E# a" x/ A. F7 y. G
AfxMessageBox( "AutoFood ist gestorben " );
1 q: b& V1 d; Z* [. k V3 u- Y}6 ?6 T2 @0 |' ~! ^' M3 Q
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )! ^* `+ P! z$ g. S9 f
{. Z; O/ u+ l) n' \4 Z- R
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
. B/ D. F; p, x}
" ]7 {4 F! C( _- T" G5 ]' ^4 i: i9 ~: p9 j" H
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
- M% }2 R, a4 ~, K{
% T3 V3 x, M, f LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
# X2 n: Y9 ?: {! s; j/ Z CRect rect = pWndCtrl->rect;5 v7 K/ d: E# w; X( _$ u! k! @1 l
if( rect && rect.PtInRect( point ) )
, g5 a0 Y, [7 o, p* F3 { {
- `3 G6 k( [2 P; D* b+ e6 R. k CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );" ]9 g0 P# T# g6 V4 x/ G
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ): M' r) j5 f# y$ |, m' F8 w
{
8 B2 o, A% v G* r- A& u) o/ H8 L4 ? if( m_pItemElem )
# Y9 J1 C/ O, A5 V& z6 k* F7 M& z {1 Q' T+ d: Z) @4 v2 M$ |
m_pItemElem = NULL;
! N8 Z% D+ f' K, z& v }9 Z! t. Q: U# s
m_pItemElem = pItemElem;4 X3 A, f* C6 G5 u4 x0 Z
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
9 Z2 i' w) }' n# U; i }else{
- M6 o7 M+ V3 `4 h1 G SetForbid( TRUE );
# c& T8 ?. R1 h! n }
+ x+ S# q7 p1 V; m6 J }else{
) V; L' j% C7 x$ c2 h" ^: `8 z SetForbid( TRUE );& P" J! w6 y m% Q
}
7 m2 M5 v% M* T3 | return TRUE;% ~' s; A! r7 v3 b7 M
}
0 l2 Y8 J. A& T* G) B, H6 I) {$ a) F" S
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )1 _6 N" t/ D* C9 N% N1 B
{( a6 o3 W0 ]+ Z, n% W3 \7 o( Z5 D
switch( nID ); I) j. p+ t( z; m6 G
{
5 z6 a( w( Z) Y case WIDC_BUTTON3:
+ K7 z8 S& z- C" Y- `/ ~1 t {2 v9 o! G* [( R8 g
bStart = TRUE;
3 R9 y# P6 S1 F8 w/ o) e$ }6 ] break;
/ V6 V. p; S* A }9 {# g) O2 S& F4 b! Z* z
case WIDC_BUTTON4:
0 `5 u5 g' c) X4 r4 Y {% y+ m5 \1 U7 j; A) f
bStart = FALSE;& t7 g3 e( _1 _" H: S
break;
. n- `/ M( E3 `8 |5 w3 C, E }2 ?% v5 |* R9 x: V9 y% q. b' g
}0 E* E" e$ f; f2 {0 f* i- l9 C& m
return CWndNeuz::OnChildNotify( message, nID, pLResult );- o+ B" K# a3 Z" G0 {
}
0 ]1 w; n3 ?3 @1 l0 ivoid CWndAutoFood::OnDraw( C2DRender* p2DRender )# x0 r: ?. Q5 J' V# e; \0 I4 c
{) U- n3 b; X" b0 k
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );5 n/ @4 f" ?0 U$ e4 x
if( bStart || !m_pItemElem )- c* K% \. K8 E; r+ _3 C* q
{
) I B$ [! B( d; L8 ^3 I pBtn->EnableWindow( FALSE );
" w* A& d; a9 J9 _+ Y C }else
& S9 g" O: e1 S pBtn->EnableWindow( TRUE );
+ |, k0 w# k+ W: x7 H if( m_pTexture )
. ~! b; I/ M+ }1 r9 E7 C! v c {
' ~7 N( j2 z3 i" g LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
& J/ I5 X: M5 v( Z& w& A if( wndCtrl && wndCtrl->rect )% F! V& L% c7 @( F
{8 ]* S" ^0 P) P
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
+ b4 Z4 p& z4 { }, p0 R3 H2 i* h
}
7 E) S w u: _/ z- I}- w& M- v5 { ~% `! d8 P
) _2 Q1 w# D& w, h8 KBOOL CWndAutoFood: rocess()
* o! |+ v) m9 a J, T7 _0 T6 X{
* A3 @' | Q1 G( {( v if( bStart )
( F4 q' O2 ]2 [( O4 n/ a+ p {
; p# X9 u! p Z. n8 J if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )1 M$ P" k7 r) d1 S3 p
{; o+ U h" s. Q2 ]" c
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
- q$ p5 T" X% A( K& V g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );' V- u, g6 {3 ~- B0 M. T8 d
}else{
7 K' ^! M+ O+ p bStart = FALSE;
- A8 p; h8 u. r4 k1 a) P m_pItemElem = NULL;
) Q) N2 B7 C5 {% q }
, f1 F0 H6 h3 |/ ? }
' _) E" a8 e1 u* N4 o( |5 H return TRUE;
, M/ e$ ~7 M# ^9 T1 o1 A, i}
- X8 W% p* G4 z, H3 }+ W* {
. ^1 K2 B4 D" l# \$ d" W7 o) e登录视频废话:
1 X1 N5 Z; B. v. J) p尾翼:
; S, {1 b& ^5 f6 b1 I& t) d' e
8 n3 n+ }. Z4 Y. v/ W2 \/ I代码:1 A! J3 l( ?+ e" P# l L' e V
! p" u" h% a3 l$ R0 A& _
void CWorld::SetLight( BOOL bLight )- A( ^1 l5 `& q1 o- u% J4 N
durch
* n8 e$ j! ?$ H- v0 D3 bCode:# {( i% H" T7 q
void CWorld::SetLight( BOOL bLight )
' p9 ?5 o! V& ~. X: ?3 m, }* c{
9 s8 U4 U/ k7 [ | //ACE("SetLight %d \n", bLight);
3 E+ N6 A/ p+ L! G$ {% ? 6 } V% R% H% A) J# _
#ifndef __WORLDSERVER 4 Q! X! H; E* d( M4 r
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);% y# k1 M4 x; ?) x
CLight* pLight = NULL;
! }4 B0 D! u. m w; K+ A5 I" c S, F$ _; @
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );$ y9 J) X4 j3 A4 l
( `% o; w" I9 y0 l! u' G! o pLight = GetLight( "direction" );/ D/ e* }8 H+ C$ ]+ T
/ H5 Q4 s9 R0 |$ D" F0 B: K! |1 X
#if __VER >= 15 // __BS_CHANGING_ENVIR7 H! K/ F2 [/ D+ _9 J. P
if( g_pPlayer ){. O4 S9 J, Q% y
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
7 B4 M2 l& }; \2 j+ ?4 r; o' c! m if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!2 g) U6 y- U. q* }/ t% _% p
{
9 Z% q$ F- `+ D# w! t if( pLight )' B, }; I# f9 y
{$ r* S4 } W7 |' Z4 _
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
1 K' F5 M- i1 i pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
: |. [# G* v ^6 q$ w; U( n) p pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
2 X$ L+ N7 X4 B5 A' e
7 U @7 p8 a) I: v pLight->Specular.r = 2.0f;
3 @/ I6 P# ? q) X2 ^ pLight->Specular.g = 2.0f;: ]4 U$ Y" `- Z0 E3 P6 \" p3 q$ x
pLight->Specular.b = 2.0f;4 p C3 P; L" F ?4 m( t, ~
7 e+ ]1 z5 T$ Q" _+ |* e# K9 H4 X
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
$ L4 P+ X/ \+ b* z! |* n7 P( ]2 { pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];9 j" u" ?2 }2 P2 D: C9 F
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];3 ?' L; B& X* F( b1 |; F
, R0 u. {. E7 s" J, Z2 u
HookUpdateLight( pLight ); - T/ ^; Y9 L/ [0 g5 |) K0 f. d
" s3 v( k& N3 E+ y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 g& k0 U2 {% X% W1 x L: r- f
3 |0 {! w3 i( d3 L& ` pLight->Diffuse.r *= 1.2f;
# G- g [7 T( }7 B# e! D pLight->Diffuse.g *= 1.2f;
" s8 E- G. @% C( d2 o- i4 W pLight->Diffuse.b *= 1.2f;
4 S5 i5 B5 J( ]- d4 j$ y+ L! G, U5 T& B0 ~
pLight->Ambient.r *= 0.8f;( S9 ~, x, E; C9 Z% \3 Z
pLight->Ambient.g *= 0.8f;
( O. S G) o; d" e pLight->Ambient.b *= 0.8f;
0 i$ I, E7 G" H) x, K + v" N+ B/ w! B, a z- ?4 {
memcpy( &m_light, pLight, sizeof( m_light ) );
# a" v3 z, h* a; [9 x' P! h3 u" g M. E$ P6 s ?0 l! j! o6 `9 W; f
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);' Z2 W( K1 G* R2 Z5 K' C
D3DXVec3Normalize(&(vecSun),&(vecSun));: m# N8 l. l! K3 J
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); 5 t4 @& w- t- j+ a' L
pLight->Appear( m_pd3dDevice, TRUE );
g$ f' f9 I1 ]( t4 M) d
- q9 |4 K( k5 x0 h DWORD dwR, dwG, dwB;
( h3 z @6 W- M, Y dwR = (DWORD)( pLight->Ambient.r * 255 );; y. d, S; k4 Z. A8 T$ g( b" t
dwG = (DWORD)( pLight->Ambient.g * 255 );
- `1 Q. k: N3 P! i5 G+ a; z+ A dwB = (DWORD)( pLight->Ambient.b * 255 );
( f, d) B) u. ]$ Q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 h7 Y' I+ w4 P% Z0 b
}* @4 Y w6 N/ u" Z% \0 d
}8 B! N4 v! H% u) n; k9 Q
}
: A* X' x8 R0 o' z else
+ c- n3 ~$ K* @#endif
6 L! G# v5 z' ^$ ]0 Y( G# ]% V4 ?6 S$ {
if( m_bIsIndoor )
) G' ^ {; A2 @: w! e: ] {
- ], L0 D6 R% y if( pLight )4 g0 |- a( L9 d+ K) g/ \
{ 3 x1 o- u& f* j! x* S
// à??μ oˉè*
; s- M$ `. y# t8 `7 v8 m pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;! z; e2 z& g' w8 M
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;0 `; M: E! A0 {, L7 c6 \
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;1 F; s& t; }6 N( l
. i3 |+ \0 y* c" Q4 i( N
// oˉè* ??à? : C. j' E0 @; C5 z& w' Q
pLight->Specular.r = 1.0f;7 X/ f* f1 N* a: T5 `1 d
pLight->Specular.g = 1.0f;' y* B* |; d9 ~* x( O
pLight->Specular.b = 1.0f;
" k+ t7 S/ e1 o$ K, d8 J // àü?? oˉè*
1 f* b$ h# A6 Z7 o6 D7 _! ] pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
6 T# u, F+ W" D, w, U0 | pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
2 A! e0 B$ F1 Y* v pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
$ ~& C* U3 `7 }5 w( n
4 k1 h' B( `6 ` if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* G9 @3 e* w" _ [( Y
{
9 H6 ?! S$ C! y+ e7 j: J pLight->Diffuse.r *= 0.6f;$ O- E' d* p& u. j/ `
pLight->Diffuse.g *= 0.6f;
7 f, v6 V9 t9 C9 n- @+ U+ M pLight->Diffuse.b *= 0.6f;
! P9 q+ I! ^ P+ o! Z pLight->Ambient.r *= 0.7f;
+ W, ^' ^/ k W- F1 A! c/ E+ R pLight->Ambient.g *= 0.7f;
: v% \0 k3 g6 s& `) v3 m pLight->Ambient.b *= 0.7f;
( o2 U0 c9 e" y3 L# n9 m }
& U# n$ v+ {) G7 t" m$ H( T0 N& Y: z; i
#if __VER >= 15 // __BS_CHANGING_ENVIR. u8 O. @; }3 |) j
if( g_pPlayer ) x# R% Z- [; I: H Y k
HookUpdateLight( pLight );
" B7 G/ E( `3 W0 Y6 ?0 W8 p+ a#endif
! s4 j, K7 {- m7 p# u memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 I8 {! ^' o& C1 }- Q
% }/ D4 P+ ~+ o pLight->Diffuse.r += 0.1f;! B$ k/ C5 Y" l% A
pLight->Diffuse.g += 0.1f;
2 w# ?1 H0 B# Y. F5 B4 Q4 e* _) q% X- E pLight->Diffuse.b += 0.1f;$ y8 r$ j4 F$ r4 E: ~- y- ^
// oˉè* ??à? * Z5 u: \" h2 S& A
pLight->Specular.r = 2.0f;: N7 d9 o5 I5 _
pLight->Specular.g = 2.0f;/ k" W% n! ?; d' U
pLight->Specular.b = 2.0f;
6 R2 x" O0 i4 e* b9 A // á?oˉ , Y: B9 l T) N1 b; k) L
pLight->Ambient.r *= 0.9f; f- V. ~& e" s8 u2 Y Y
pLight->Ambient.g *= 0.9f;! _7 H7 e. `! q- @# y
pLight->Ambient.b *= 0.9f;
; {3 u6 d2 K( H$ a/ C/ n! g
9 A4 L: b: B! B! B# Q! C; o memcpy( &m_light, pLight, sizeof( m_light ) );
) m/ i" R& x) A
0 P2 G3 c6 G' ?7 z" Y pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
! x' [/ L! b4 _2 F2 t' { pLight->Appear( m_pd3dDevice, TRUE );
$ Q+ W6 ]2 b9 D l( L$ [5 S6 o. g
$ I1 a: Z- k# |% U DWORD dwR, dwG, dwB;4 `; V2 Z. B1 l) c& D
dwR = (DWORD)( pLight->Ambient.r * 255 );3 u% Q4 `) c& M# M
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 p5 Q8 r' @( W9 H dwB = (DWORD)( pLight->Ambient.b * 255 );
3 F. B" K* b+ j/ T dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 g6 m3 `2 N! M, R( W
}
( B( E' s1 k- v; T' ] }
* I0 p7 K( H# O$ o& Y# ]6 J9 g else
h: D2 z! o/ H5 d4 Y1 s- }, K {% T% |! _/ q0 O5 ]
if( pLight )
6 U6 g) T( \2 P, ^3 R {6 b; z& R) i3 Q7 h
6 V' T8 K& G! u1 c. H. N# H. S int nHour = 8, nMin = 0;: U) S8 H! H6 E% B& h. h
#ifdef __CLIENT
! _, p; Q) v7 {5 \# b7 A9 F: d* R // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
. b9 T( S' E: j) D) u+ ]: v nHour = g_GameTimer.m_nHour;
Y9 E; @6 V5 x& W nMin = g_GameTimer.m_nMin ;( F* g; b" \5 p9 H2 h
#else; G6 i, {1 A0 J! V5 v. A4 y
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
$ j1 K4 r4 Z5 o9 j- ~2 F+ c if( m_nLightType == 1 )0 z# O0 d, C+ p7 r9 N8 T, Y, g
nHour = m_nLightHour;3 E1 {5 ?/ |+ S; P+ J# f$ o
#endif0 D! @- q5 J: }* o9 v
nHour--;5 `# v; k. N: c3 G/ _
if( nHour < 0 ) nHour = 0;
1 h9 s- k4 p9 F7 f4 _ if( nHour > 23 ) nHour = 23;
: Z7 e! W4 y6 B; f. {. U( u5 i' A7 n! A; X
//if( m_bFixedHour )9 Z. W2 @. X# x- y) q2 d% v
// nHour = m_nFixedHour, nMin = 0;0 |% Q' Y% U! a. v/ L
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];& ~" r% p+ }4 K) O8 v
LIGHTCOLOR lightColor = m_k24Light[ nHour ];# { S2 k: V9 \+ N/ R- X4 @5 e
! T! g" r+ V9 z$ U2 C
//m_lightColor = lightColorPrv;5 Q1 x8 F! k! t' F# S
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;5 Z; }' a0 R2 Q6 W @6 X7 A9 i" v, D
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 K! m. g" S& G1 B) X lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;2 J- Z6 i t4 ]& H7 ~! \% G4 B
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;2 d7 }% y3 \. u' D
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
3 k/ o5 h6 B! e B+ u: ^5 r3 c lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
, C: v1 I, X5 U // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol); k, u; z% t- G2 U5 _
& ]& j1 w, O% X7 d# ?' m4 A* `: d
// à??μ oˉè* . I, q! D$ L6 \& d* Q9 K
pLight->Diffuse.r = lightColorPrv.r1;9 c; O8 M* x' _+ G- m
pLight->Diffuse.g = lightColorPrv.g1;
9 `4 n a0 L# m _" `+ d pLight->Diffuse.b = lightColorPrv.b1;
; G0 N! W3 i9 o9 _5 y7 m3 i9 ?& M, W // oˉè* ??à?
. Y% ^* ?% w1 e. X, O pLight->Specular.r = 1.0f;
9 i3 l9 J6 s# j1 D pLight->Specular.g = 1.0f;
+ O2 p5 m7 o( s0 A$ N) N) n0 Q2 b pLight->Specular.b = 1.0f;
7 S) g: \( A( l) q; a // àü?? oˉè*
4 L- l! S: H% d% K5 v# t* e. v pLight->Ambient.r = lightColorPrv.r2;
5 u1 w( U* c+ a" R# J$ E& a* V& G pLight->Ambient.g = lightColorPrv.g2;
! O, ~$ M/ A# W pLight->Ambient.b = lightColorPrv.b2;
1 b' F: w4 n+ x# v$ r0 V; k( v* |
" A2 r8 B4 \- V% s if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
- l9 }% ]' y7 G5 C- w {
+ c4 P0 a7 L# \1 l0 G! t pLight->Diffuse.r *= 0.6f;. j1 T% C" |; N2 ^9 s6 @
pLight->Diffuse.g *= 0.6f;" s2 N! b2 {# f2 N, m( D; {
pLight->Diffuse.b *= 0.6f;
8 }6 D. K5 N0 I: v5 ^& o/ G/ ` pLight->Ambient.r *= 0.7f;
% H, y5 J' y* e1 I' J8 u! v pLight->Ambient.g *= 0.7f;* j8 v( x5 ^ Y' P4 @0 b( c
pLight->Ambient.b *= 0.7f;
! D, T5 [) {- P9 Y# F' r1 v }1 g7 k% v1 O+ O/ U; n
. S; B* I$ J9 x4 T) G% }
#if __VER >= 15 // __BS_CHANGING_ENVIR
) X ], ], }" x- | if( g_pPlayer ) P6 @3 U" L! c* |3 x+ R
HookUpdateLight( pLight ); / p* m& Q$ h6 ?
#endif
\. v7 q5 d6 j/ t1 B; s, Y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 |% S2 ]- u( E) V& |4 q4 L
% q0 z' P1 o% Z! ]2 g#ifdef __YENV
5 g5 G# }* H7 w1 J: V5 ~6 Q pLight->Diffuse.r *= 1.1f;
# ?. z9 R; B% o; k( y pLight->Diffuse.g *= 1.1f;
; R0 f+ L! r Y+ k O! z pLight->Diffuse.b *= 1.1f;
[6 Z/ O1 W+ t2 j# o$ I& ]! Q$ h // oˉè* ??à?
v% Z0 k, ?* ~ pLight->Specular.r = 2.0f;/ i+ E6 ~$ {3 K( Y& Q" h4 f* M; L7 }$ h
pLight->Specular.g = 2.0f;
B' x( C7 @/ i3 O2 l% x* g pLight->Specular.b = 2.0f;' N! v, x* B, f6 B( f2 W2 v1 Y
// á?oˉ ; C1 v2 N' _" Q
pLight->Ambient.r *= 1.0f;
# W$ x2 ^* k* w1 t6 y pLight->Ambient.g *= 1.0f;
+ ^1 c' P! V0 W' |8 n3 U pLight->Ambient.b *= 1.0f;
L- z! G8 f9 y |- p#else //__YENV
0 ~" q$ R( J2 v; n7 w* V, P) }4 ^ pLight->Diffuse.r *= 1.1f;
. B3 Q9 F' i) H9 H% Y4 A pLight->Diffuse.g *= 1.1f;
2 A2 ]+ z% h5 Q- f pLight->Diffuse.b *= 1.1f;
! M% U. Y$ @0 F# P5 i/ V. m // oˉè* ??à?
% ^7 ]2 d, k/ A( @/ T; y) a( M pLight->Specular.r = 2.0f;
) f! X( C; d( s4 s$ K/ A! ]! j pLight->Specular.g = 2.0f;
. E$ H# M5 n, A7 F& [# _1 n- ^ pLight->Specular.b = 2.0f;# m( h" H, A" y2 i
// á?oˉ 7 m5 g1 M# A3 ^2 v; C& T, R: L: v5 ^
pLight->Ambient.r *= 0.9f;: P( @3 Q3 ^8 |1 l9 q% z& w
pLight->Ambient.g *= 0.9f;
# S& S, l J( s" F9 [) i2 ^( S pLight->Ambient.b *= 0.9f;
9 I3 Y3 |6 x5 F8 @#endif //__YENV $ a! p7 Q- G' y* B
, E6 T. g$ o6 n; a
memcpy( &m_light, pLight, sizeof( m_light ) );
4 W6 u5 t' X( k' d
% c/ W. U3 n+ n D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);% L- W4 g, q9 {: M, j" U
D3DXMATRIX matTemp;
% H. {. [8 n9 _9 ]0 `- k$ p8 N static const float CONS_VAL = 3.1415926f / 180.f;, Z: [( e, D$ Q: N1 N
& S5 K, Q( A* W/ `2 v, c+ G
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
% g t8 ~/ u# u D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);! b) h3 l- U5 F" ^
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ; L' J: V# x+ ~7 J3 c
pLight->Appear( m_pd3dDevice, TRUE );/ d1 s G0 x3 U% b
0 T; n7 \% Y; p4 }4 ~2 c
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
: p( h( K: N- f3 h# a% U, Q // D3DXVec3Normalize(&(vecSun),&(vecSun));4 `4 S% H$ G' C$ n8 s
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
s9 M! |' V4 b& L
4 ^7 |; W& W. z. Y5 N7 R+ s DWORD dwR, dwG, dwB;6 u, s' y2 I1 g+ u2 f0 n2 {
dwR = (DWORD)( pLight->Ambient.r * 255 ); V3 j4 x7 v6 y. \; m
dwG = (DWORD)( pLight->Ambient.g * 255 );
% ]5 i, j0 T- A, B! Y. R$ a X dwB = (DWORD)( pLight->Ambient.b * 255 );" v' l9 |4 n) _$ l" W* j v
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 8 D9 a; q H0 @
}$ f6 i. V$ b; i7 Q1 c$ k6 e! T) b' g
}: p$ y7 p4 S C6 N2 }$ Q3 H* S
5 v# p4 D) E. [/ z ^6 M" x
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );$ L5 ~! W1 f: p% {
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) );6 U* o6 b+ s4 R1 z7 v$ y" o
::SetLight( bLight );9 V2 d4 A. M# t7 y( I
4 B. I7 ?- f) E6 R5 H // ±ao? ?D?í???ó á¤à?
: s& n! q5 h9 x' s2 U' ] m_pd3dDevice->SetMaterial( &m_baseMaterial );( Q! R: p5 |1 Z; o& F7 y; k1 D
" K' a" h( @6 U#endif // not WORLDSERVER( H, E! |$ M+ i) x: V7 B8 @
}
9 l* Y' u0 c- `/ ^2 r d \并更换7 |3 _3 e) P' @+ K
Code:
) @# [2 f8 P) u__FLYFF_INITPAGE_EXT6 V" i# E1 [# H& ~9 `0 C
定义1 y# I2 M' S! H; y, i4 F
( b/ m3 L; O* s* _ P; @8 G% ~5 B4 m: o, L9 a. M, i4 O
0 B. S0 \4 N$ q: F; T( C) @; Z P4 O% a
现在终于删除我的狗屁加速...
! o9 B- L6 @, }, x* ^+ N6 r
% v6 z |$ f0 E- G/ K9 W1 K; c j% {2 ]
2 G' u) t( K% l$ T' V3 v# d
|
|