|
|
食品车:
$ T& _' ]9 m4 N5 ^5 g) _1 V* Y* w" J尾翼:3 D y* [) k5 n$ p& D
P; T; b) D* M2 M) I( v& {代码:( S1 N1 F) h. h4 S2 E
CWndAutoFood::CWndAutoFood()& J' B- c: a0 ~. {2 x1 o
{) s$ n& _& |8 e/ @* u% g$ r5 O1 _
m_pItemElem = NULL;
i1 q3 w, W$ r g7 ]% v m_pTexture = NULL;
+ A& d% `+ |& C# B& Q+ O7 b bStart = FALSE;# I$ Z" W$ y& g
}9 [; m, k2 g8 q3 L# h
" X m# f* p# Y& }$ w. n% I
CWndAutoFood::~CWndAutoFood()& u" K& @$ C* Y8 w
{- Z) x3 @5 S S6 _& l
AfxMessageBox( "AutoFood ist gestorben " );- A0 r% b1 A. N2 [) C2 e7 U
}
F% B4 }3 W8 z# O" J! c1 W1 h1 D5 mBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ). \8 O; i+ m; ^' H1 G; c* ?2 j) ^1 n
{
\! |. T* {$ W+ v, t return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );! i2 }: a3 s) Y* F* ^
}
, O6 ?6 C' @8 Q" }8 u% [3 Y7 [ X1 Z" g( X; X1 f) T
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
% D: P. u, z' P |: ^9 `' z3 c{
' _9 _. o9 M" [; c" `, v8 j, e; e/ z LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );$ T/ P' k/ b, O1 N8 h
CRect rect = pWndCtrl->rect;3 A9 O& @2 e, O: j
if( rect && rect.PtInRect( point ) )& Q9 x$ X% r' \+ C
{6 g! g p8 E2 s4 {6 H# f
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );: D; G" u: O, P& Q
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
/ w& Y; b: B+ k4 @ {
( B8 |. \- U; J7 j' m g$ y1 P, ]/ K* \ if( m_pItemElem )8 b* D0 h" r4 p# W
{
9 H% k; V9 q/ }2 C; u" ]5 p0 Z# ? m_pItemElem = NULL;6 O0 q& L2 _" N% m; E
}$ v$ G. k. F3 j, N) I
m_pItemElem = pItemElem;
@( F% A: n k; m m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff ); K/ T/ F+ c( [. f `/ O( ^9 W
}else{
7 c( I; K7 R* e0 q SetForbid( TRUE );
2 E9 a: A/ v( c/ n- \# \5 X }' K0 G2 |8 T7 }) @0 d! `% R( y% u
}else{
2 P/ q# t/ T$ B2 p0 v SetForbid( TRUE );; F# b! d6 D5 F' [8 |) A
}/ A% X6 ?/ i; T# P
return TRUE;2 u+ x9 o! o: C) _2 e
}
8 Z/ t) w v. ~ y; y8 }1 d6 {% F7 p1 }+ N2 W) Y z# J4 W5 x! s
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )2 r$ w6 h/ ]& Z+ e: J* Q
{+ K; k3 r* e: W ^, s% }7 c$ g
switch( nID )
3 H; `& L: P) e1 i/ E {
# W* k+ Z/ s" g case WIDC_BUTTON3:
. S% u+ L9 b& o% p7 k {
0 q! W1 g3 P, h" j6 {7 H9 q. l, w1 s% ^ bStart = TRUE;" l' U! E5 M3 Q7 n. B* `
break;
K8 h( n# l& A# }& N$ M7 x2 }$ K }
1 F# M6 y: D+ h8 Z& b- N case WIDC_BUTTON4:: {$ Y( e; `9 I' ~( U4 W& A
{
* E' G9 b5 d! }* \. o4 `' R$ q! w bStart = FALSE;7 w3 Y! v3 \7 Q
break;
. b2 ?# X) ^8 @: ]' T% R }
" _1 D" u9 D6 H8 P }
1 W5 b9 {) i0 V2 y return CWndNeuz::OnChildNotify( message, nID, pLResult );
" m. A! ~+ v6 G/ { v}
1 v% s" _% U B2 gvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )' l g! J1 E7 P1 N- W2 `
{7 V+ |& C4 W9 I/ u
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
6 ]! ?' w; B, f2 W h) ?" z# H6 Z if( bStart || !m_pItemElem ). e$ F1 p3 d) A* V, U# a7 [
{4 F* z2 [ z. u( R: J5 W9 y( V
pBtn->EnableWindow( FALSE );
; }$ h( g" y6 {& [* R. H }else
( b( {7 ~1 R* O+ ?/ Z pBtn->EnableWindow( TRUE );3 H) j* b4 z8 u/ }8 P8 Z4 Y
if( m_pTexture )& L& g7 ]& G4 x U
{
3 b" v: |. E W5 j" V LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
! m2 S# ]* @ h6 B if( wndCtrl && wndCtrl->rect )- C) G( r$ o# n1 u) R
{
7 P' F$ v$ C# [9 s) X' B m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );* _( v& A7 b# \
}
7 ?+ M' w. E2 \! p: h0 p }
( u/ C7 t+ F1 d9 I( n2 h2 a}# i; p+ A* M% I* |
& M, `# W. l0 V7 z: ^5 a
BOOL CWndAutoFood: rocess()7 I1 z5 x# Q$ I; M) X7 A1 E+ A. z
{8 ~) I6 _, C9 A4 Z
if( bStart )
1 G4 `, }" |! t3 P6 K4 f {
# d* a1 c. ]% x if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
L# q' ~" O- M3 | { X/ n1 r/ e* R- p4 u& p) P
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! G# R% m2 V4 _$ x g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );6 S% r+ |" s e8 ?/ e! p
}else{
|3 s* c( x+ n, K* u bStart = FALSE;- y& P, b% r- s! ^+ P
m_pItemElem = NULL;
" |1 F5 b' W' M4 u: G: N$ D5 l2 w }
! P0 _. @% |' P! B. Q! ? }& G' w0 D3 ^' _. R( g+ @0 h
return TRUE;, `( C/ f8 O9 _: b5 [2 c. N
}
! U% [7 \ _% u* }! x% `/ B# v6 Z# j$ e# X0 [5 G9 @% E: E
登录视频废话:
`( f0 w. H6 o( V! o' J尾翼:
0 T1 N Z. O7 y/ Z% g: ?. U- ?6 X) R6 |, B! C& \
代码:
% [: W) f& r) q v, C8 |) B5 P+ y- \' C, u# d
void CWorld::SetLight( BOOL bLight )! r1 r- m& T1 [4 U& |* ~$ w6 E
durch3 x$ Z# e# _4 j- _% B( G/ X$ I a
Code:3 j8 i! y: c5 ^+ ]
void CWorld::SetLight( BOOL bLight )% e/ M0 M* N1 w* d) i& ^' J( L" ^) H% z0 C
{$ d4 B$ T3 M: i. v' J
//ACE("SetLight %d \n", bLight);( R2 ?/ `+ f2 u0 ?$ S f1 t* b
- b$ B( p) e( `3 \
#ifndef __WORLDSERVER
! P8 X9 B; v& {4 V DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);' v$ l. C% J# P& N5 \. Y
CLight* pLight = NULL;
+ z" X( Q3 D6 {. W8 Z- Z( Y, R
6 H! T2 a7 T" g3 D D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );& ~$ R7 j1 D4 y
. q/ J" _0 c( P; e pLight = GetLight( "direction" );
1 |+ P; y) v- E4 E5 b+ \4 R* w0 L# M% r( ]: I
#if __VER >= 15 // __BS_CHANGING_ENVIR( H5 H$ u# t/ S
if( g_pPlayer ){
! l4 @) b0 \; P4 P+ R+ m+ n# _ ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );! d) b9 [) c, d% w4 N6 q2 D: l" A
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
. K+ ~/ s# O2 J/ V, f {
- u) m- r; T& T9 i; y5 e0 q S if( pLight )
0 f8 F' ?* ~: |7 p- @+ S {
0 p% V2 f3 h( _ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
$ u$ U, B: d: ~2 [ pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
# L5 {* _% o6 v! A" R9 m pLight->Ambient.b = pInfo->_fAmbient[ 2 ];' B# H5 x2 E& n1 Y) q" s+ n1 \
# `+ S% T/ R9 i V j
pLight->Specular.r = 2.0f;
( C4 v4 q# T1 S7 o$ s. c pLight->Specular.g = 2.0f;
" @! Q0 H0 N, }7 _ pLight->Specular.b = 2.0f;
* V9 w5 C2 G- a `
; I) h/ r; ^/ u6 C4 t pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];- _! B1 I9 Y$ o9 o4 c( b, d
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
* x( d' ^3 L% V9 U) r3 } pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];3 X! q q5 U! l9 Z$ [0 O4 V
) \* H m1 O6 c: Q
HookUpdateLight( pLight ); ) k7 m) s6 i! P! L* n
( c. N. j9 `+ p. }" m
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. U8 _1 M7 p$ M; [1 k( {; F
% \9 Z+ c8 H2 E* P! r* A pLight->Diffuse.r *= 1.2f;
- R3 q- J; Z% u& g) |, H pLight->Diffuse.g *= 1.2f;
/ C. `* ?# U8 I' ~9 v3 ^2 X pLight->Diffuse.b *= 1.2f;
! _6 @/ z7 w7 f* C# E# B
; o) H5 q( h, \; w N pLight->Ambient.r *= 0.8f;
! d; X: ?7 E+ P$ j* C3 w$ \ pLight->Ambient.g *= 0.8f;
/ @! A s6 n% V2 y/ l O3 m pLight->Ambient.b *= 0.8f;9 f+ f% D. ]1 b+ ~/ c" A1 [
1 i) J1 R9 }+ A+ _ memcpy( &m_light, pLight, sizeof( m_light ) );
* E* P8 A! s2 g, T F( j/ u j( Z/ V( `" h+ O
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
% e$ @% O5 @: \$ E6 ]$ F# g D3DXVec3Normalize(&(vecSun),&(vecSun));
. b) l' F# ] S4 Z$ B4 H% J pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
5 H* w# `" X' k8 Y, K/ G pLight->Appear( m_pd3dDevice, TRUE );+ @& f$ L- |' [ e
# V( M3 h) g% r1 I
DWORD dwR, dwG, dwB;
4 m1 `7 d* U( J" ^* ]9 y2 g dwR = (DWORD)( pLight->Ambient.r * 255 );
& @. U' T) h' T7 L8 v# p dwG = (DWORD)( pLight->Ambient.g * 255 );
8 j( z' E% \8 N8 J dwB = (DWORD)( pLight->Ambient.b * 255 );/ J% O% K, e4 E, g/ B0 ^1 ]
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );( }& k+ R. `! t& X3 j( h; v
}8 K G1 t4 |+ b" O
}
3 g7 k/ ?5 r% N, o7 k }
) D/ m; n5 Y" g* P& X( e# j else4 w9 H, O% N& k
#endif
$ i# p/ B) O7 y5 O. S! h p5 J0 h' Y1 d& F7 M, Z
if( m_bIsIndoor )2 Q" J$ \+ f% i/ v
{, e4 b1 O; m7 i$ @! ~; r& H
if( pLight )
! t* E( l: p g8 ] {
5 G$ S" B8 ~1 R5 s* G; T% R // à??μ oˉè*
E1 f0 \! r$ V. ^8 L0 D: d pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
; k) o! Q/ @ ?* ^5 Y pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;5 z! s# h8 v/ s
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
k8 `8 v* x$ n6 y
! A6 h( m9 Q( q' m // oˉè* ??à? 6 O7 | H4 b6 m4 d) p
pLight->Specular.r = 1.0f;% e: \2 A/ L8 @2 x6 T
pLight->Specular.g = 1.0f;) I: e( M' D$ N
pLight->Specular.b = 1.0f;
2 _3 r% z) h& |) J // àü?? oˉè* , z3 J- d! E4 p$ Q$ M
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;2 d+ T1 e. B& q( p; o( {' H' S$ w
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;# z9 \' {; P1 ~4 K
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;* K1 F3 U; s# X2 p) @) v
L8 [# T0 T3 M* b; s0 l* r if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.# n1 k+ T" @% f ?# E
{
* H% {- l/ r6 W: Y7 K* d pLight->Diffuse.r *= 0.6f;
4 R* a5 p1 N, b pLight->Diffuse.g *= 0.6f;, N9 D; B" I6 ?/ E9 o) s( {" s
pLight->Diffuse.b *= 0.6f;& g8 Z. q4 E, P U) f
pLight->Ambient.r *= 0.7f;
8 q2 P! H, I# }6 T6 r5 s" X pLight->Ambient.g *= 0.7f;
( [5 _) Z, h8 _* J0 I& _# ] pLight->Ambient.b *= 0.7f;5 m1 Z3 {. \, O
}
7 U# K# ?: b' V. m8 _: q5 ?5 T$ h
#if __VER >= 15 // __BS_CHANGING_ENVIR
9 P& T; V9 ~/ f4 T' _" _ if( g_pPlayer )
- ~1 i( N6 r& Z; L8 O; S+ T HookUpdateLight( pLight );' B% _+ k; H9 }5 Q8 \* r
#endif
* U/ T3 o6 h8 O memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );% h) d% F9 a- O, D9 P! K
+ z! m0 r" K7 K* W0 s: n8 |
pLight->Diffuse.r += 0.1f;
. f0 ^# W, l- x: C5 v# @2 T pLight->Diffuse.g += 0.1f;
( M0 V( Z; P& u* G0 k6 W/ {" s pLight->Diffuse.b += 0.1f;% `1 ]! I3 e0 A L
// oˉè* ??à? / r7 J7 l7 b' e* ~( l# `
pLight->Specular.r = 2.0f;. L: J/ r: t3 R8 V7 H% w" V1 u* ~, ]
pLight->Specular.g = 2.0f;5 D* m0 F+ J7 U. Q) ~9 Q v
pLight->Specular.b = 2.0f;
4 N( I1 T; N" `% N% R9 C. ?$ m // á?oˉ ' q) i# I) ~) S+ N+ C+ S
pLight->Ambient.r *= 0.9f;
1 M- s8 [9 X: t pLight->Ambient.g *= 0.9f;
. w0 J9 R% {3 I( B# E3 W l+ K6 ~0 p pLight->Ambient.b *= 0.9f;
8 O( u. r. G1 V. C& d n) v8 b
' |4 _; X& b* W2 B memcpy( &m_light, pLight, sizeof( m_light ) );2 D m* S: j/ o C N% H+ X3 P
8 _8 P z ~, z1 e+ S+ s+ k
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );3 n' V0 z: Y" f' J3 |
pLight->Appear( m_pd3dDevice, TRUE );
5 U% ~+ D+ {4 K1 w
2 C5 F% `' v1 ~: T9 [ l DWORD dwR, dwG, dwB;0 L5 T( b" l: M- _
dwR = (DWORD)( pLight->Ambient.r * 255 );: ?$ b; E( I* _
dwG = (DWORD)( pLight->Ambient.g * 255 );% g ?0 P& O4 O$ I1 n
dwB = (DWORD)( pLight->Ambient.b * 255 );- W! f* M% R2 j' p7 f/ x
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- Z* v+ W2 f, L- ?! K
}
+ }: f$ f- X% Z) l& ? }& |* f% y3 @8 m' Q( C' h& I1 o
else- y% y3 n; i6 M; V- R
{! w* u, o" m4 Y$ Z
if( pLight )
% ~; U/ u0 }/ I) O/ ]1 B {' k' u3 M5 p% \. L
. j2 b; A; `" _8 M# e: ` int nHour = 8, nMin = 0;
4 O- G0 a: A2 S" b #ifdef __CLIENT
; H; W8 X- z* G- f( ~5 k2 J // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. ) e+ Z& `# o# z7 R" Q1 ^7 k3 n
nHour = g_GameTimer.m_nHour;& P: ?5 b7 O! v5 O
nMin = g_GameTimer.m_nMin ;! P+ p0 z$ @. f
#else0 s) c$ f/ Z# |
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù. E$ n4 C U* S) J- [* V
if( m_nLightType == 1 )
/ ~% A9 ^1 \ ?' M2 R( ~& x: A9 \ nHour = m_nLightHour;
+ _: W5 W: p7 v4 ~* b" T& F) M2 x #endif
( A8 A' o3 v( H, X T0 J nHour--;4 k* k3 m) }. L. A* V
if( nHour < 0 ) nHour = 0;, N0 ~( ^9 E& v) K8 l; i( ?% a% ]
if( nHour > 23 ) nHour = 23;
7 j/ X7 ]$ i0 \6 N# C) E; o. M/ M- A7 Y; ]! w( t8 _
//if( m_bFixedHour )
* d/ s, \5 s7 c+ a // nHour = m_nFixedHour, nMin = 0;
3 f3 Z( B& W# R$ c LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
: y; P R& i! D' n LIGHTCOLOR lightColor = m_k24Light[ nHour ];
0 K) t3 E8 f# d3 {
- ?3 o6 @- H" O% i% n/ ]5 ~' k" v, p //m_lightColor = lightColorPrv;
: x3 X+ k1 C2 u% R( V lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
7 w; A& e1 u1 @5 V) r lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
' ]9 |. i* m2 J# }0 R lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
6 A- F; V) S8 W lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
: V# q! A% r# z; `! w4 b! D# S lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
' h- L' ?3 ? O9 _ lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
% E0 E7 H, P) D6 ]; g7 F' C& U9 _ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)* q S; y0 x( B+ b
% P9 N$ O6 i: L: R# U4 S1 t
// à??μ oˉè* + _' L2 j' P8 }2 D% l( A
pLight->Diffuse.r = lightColorPrv.r1;9 W) W' g/ a7 A9 }& @, z: M
pLight->Diffuse.g = lightColorPrv.g1;
9 @+ L8 Y3 T1 O; H- t/ W pLight->Diffuse.b = lightColorPrv.b1;4 M) Z4 e+ t/ {8 J8 w U
// oˉè* ??à? 9 `, c+ b+ h1 Y; V: h
pLight->Specular.r = 1.0f;( R' ~" S' r! `9 s0 ~, j5 c
pLight->Specular.g = 1.0f;. e' L g$ C7 [0 @! N8 F
pLight->Specular.b = 1.0f;
1 p. x$ h# V. z! q3 A/ l# i // àü?? oˉè* : y) B! N% A1 X% t
pLight->Ambient.r = lightColorPrv.r2;4 l4 [4 T, L$ p* B% |* ^* O
pLight->Ambient.g = lightColorPrv.g2;
" K9 X) G" W1 @. P3 O; r. M pLight->Ambient.b = lightColorPrv.b2;
0 V7 m0 T5 w' R' N/ _0 _
, ^. X$ O) I+ m if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
2 j% Z) C! s: n! T$ D9 b1 P9 _5 ^ {
9 @) v( l; Q. n' G pLight->Diffuse.r *= 0.6f;1 j) u4 \9 j! Y- y5 u1 l
pLight->Diffuse.g *= 0.6f;: N$ a* b' [: V) W' O8 c
pLight->Diffuse.b *= 0.6f;
4 G1 l" |% W4 s$ l7 q pLight->Ambient.r *= 0.7f;
* L8 Y0 c6 N8 Z' u pLight->Ambient.g *= 0.7f;6 N: f C6 h Y3 _( W
pLight->Ambient.b *= 0.7f;
! u9 I9 H6 M# S7 v! [ }
9 d9 r4 M& I' E- a# X+ Y ) A8 Z+ Z$ m- v, u% B3 M. j' L1 T
#if __VER >= 15 // __BS_CHANGING_ENVIR7 d" i; X9 p! n, [' l
if( g_pPlayer )6 f% h2 g5 M6 T
HookUpdateLight( pLight );
( r6 }' m; { v$ u#endif1 M7 b5 H9 f$ h# T) X' k v4 G
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
0 k2 w' Q$ r% j* @! D
4 ^0 P A0 s* K2 t: V#ifdef __YENV0 F6 @- T) S9 S- }* D
pLight->Diffuse.r *= 1.1f;$ t$ w) G! A' S+ S! d+ R. k
pLight->Diffuse.g *= 1.1f;
C, \% f5 g% g pLight->Diffuse.b *= 1.1f;
( m3 h) G" K+ o, r* j8 K2 r S // oˉè* ??à? 7 A; H+ J+ r6 X. h% H$ r7 I
pLight->Specular.r = 2.0f;; U& Y5 M: O9 L# k6 L
pLight->Specular.g = 2.0f;* E- g/ G, W2 [. A) ^5 y" {1 e
pLight->Specular.b = 2.0f;
' Y9 q1 V& ~% j // á?oˉ
3 w M/ a6 Z ?7 T' `6 L8 W" H pLight->Ambient.r *= 1.0f;8 N4 P7 ?1 r* v0 ~( E. |, h9 i
pLight->Ambient.g *= 1.0f;* x% n8 M) U- R2 h7 D' m z9 U
pLight->Ambient.b *= 1.0f;
- [0 W% e$ S# O#else //__YENV
; d) U+ B: M$ u" H6 H pLight->Diffuse.r *= 1.1f;
4 b$ z1 i* a4 N0 d. n q pLight->Diffuse.g *= 1.1f;
9 p- g9 T) Y& p pLight->Diffuse.b *= 1.1f;+ ^: b- X' V5 ~8 H$ }, G) S
// oˉè* ??à?
% R9 o# a0 T, ]# J: l$ I3 [# T$ U pLight->Specular.r = 2.0f;
- M8 i0 H" Q6 Q& x" t) J pLight->Specular.g = 2.0f;
6 C' H3 b- c3 k% O5 Q. c pLight->Specular.b = 2.0f;$ r3 d* h1 |& J! M/ A
// á?oˉ : U& ]' i& Y5 u
pLight->Ambient.r *= 0.9f;# H% `- n9 R. L4 D' `3 B
pLight->Ambient.g *= 0.9f;
8 s, L( m# R n6 p: ` pLight->Ambient.b *= 0.9f; K0 A% {6 Y3 u. H5 }
#endif //__YENV 8 e7 N' t6 E+ X0 C& G
6 _7 G# g) @6 F7 R, ^: F
memcpy( &m_light, pLight, sizeof( m_light ) );. X7 R {, a$ Z/ R z8 z
; I: E- L2 v4 G0 |& ~ D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
7 a5 P$ c( ]4 _! S6 ^9 z) n7 _* I D3DXMATRIX matTemp;
( H3 y" X& b* \* j5 i& w' e7 m( O static const float CONS_VAL = 3.1415926f / 180.f;# ?/ t# g+ l+ d( @+ |( @/ N
; r8 O* i7 T, ^& a D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);7 a6 |: H9 V8 l2 b
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);) U1 N( i/ z" H+ k, D
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 W) @7 _# k: @0 b8 e
pLight->Appear( m_pd3dDevice, TRUE );1 D) k- O0 P% E: ]1 Z; s
4 r; |4 K4 B% I j1 l. {/ ~
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);6 Z8 u1 S7 I" U" }" ?: l2 O4 m
// D3DXVec3Normalize(&(vecSun),&(vecSun));& T3 A) ^* `1 {1 Q8 @; p" ]
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); @8 C# |; [2 {, m# w# a
) E( F8 f6 `3 D) i/ D DWORD dwR, dwG, dwB;
- B* N2 r7 V( B. e% b dwR = (DWORD)( pLight->Ambient.r * 255 );2 E$ F1 s; h5 r
dwG = (DWORD)( pLight->Ambient.g * 255 );
! U7 a/ ]. T; m+ W$ n8 ?+ _ dwB = (DWORD)( pLight->Ambient.b * 255 );5 ?7 k7 _/ W0 [# l8 n" F+ M
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
0 X; E; B2 H6 y& Q4 _ }
) _ l& N6 O5 a8 j }! W& e& R ?3 ^" }* u( J8 Z+ p. T
" k" `8 j# C4 c$ t9 p6 a$ v+ M m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
' \7 b8 M7 q# i+ @; K 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) );
/ C4 ~1 a, ~ R* y0 X ::SetLight( bLight );
4 U3 K; I, E* |1 d: |" x9 o$ a% d2 z
// ±ao? ?D?í???ó á¤à?
. \* s. D2 g8 P0 g# D } m_pd3dDevice->SetMaterial( &m_baseMaterial );
( U% }' K" P6 L2 h' g, ~
& Z: G1 b$ k% c4 U) O9 T#endif // not WORLDSERVER
6 A1 O: h- V! C: o& Q}8 F: c. d/ s" c$ W: g
并更换 k/ [* C4 G) U5 X6 p/ o8 r8 }
Code:5 ~/ e& X( A& Q5 m* y6 X
__FLYFF_INITPAGE_EXT
' E' c* B! O$ p5 i8 e8 Y定义# ~. y- E. t' A1 [. ~: d) L( O
$ o1 j: m& R* I1 }% O& ~3 N
2 T& E- p/ @% P7 D
9 U3 t7 Q3 I3 u) T2 h
+ j$ u2 s& J: k/ M1 ?0 R6 D% |现在终于删除我的狗屁加速...
, I$ O- y% m9 \ v2 k7 u) Q/ U# p2 B ^6 V+ v3 b
& `4 n, g. P! N9 I4 Q8 u. v
" S( p0 \: S, K: x+ v- A
|
|