|
|
食品车:/ ~8 H7 F* O- v' V. i% w# R
尾翼:
% O6 K# A1 E( s9 W- B1 Q7 ^4 X5 k2 Q: @! \# b7 w1 k2 d
代码:
3 w- @* W7 M( i* i) mCWndAutoFood::CWndAutoFood()
% S' Z' y5 m3 Y& W! j. N% u' R& W{
/ i) M6 t7 g1 @& U2 f1 Y8 |# w$ S m_pItemElem = NULL;
; Q8 v% N" v* j+ W# ~/ a: p+ H m_pTexture = NULL;2 ?! w1 C0 w7 F/ _
bStart = FALSE;, s, n! T1 [2 Q$ J$ p6 v% g( A- g
}" o* n$ h& V7 K& x' |5 @' ]
9 T. J7 v/ h! b
CWndAutoFood::~CWndAutoFood()
% f: ?- v! {- U" ^8 y1 s; P{
2 ^9 R6 C: p) c4 T! E AfxMessageBox( "AutoFood ist gestorben " );
' u2 ^; l9 b5 g}
7 {8 X: F- J+ C# W; t" \BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )5 _' s$ X4 j: B5 T& ^& U! u) Z
{; z' @. v6 `) A0 O3 t5 k2 |$ r7 d
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );' y A( T; t( n4 t; n! w5 R
}
, ^) x6 h8 j/ z% X( \' k* Y
% n$ W) B6 o" M: kBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )% q, M ^8 p% {7 Y
{1 b, Q2 E5 f+ H) H) F4 w
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );( A" b+ |8 G2 `+ c
CRect rect = pWndCtrl->rect;! E3 Y5 P* Y" o5 Z
if( rect && rect.PtInRect( point ) )4 W; E# K8 I' b7 v' A: |
{5 u4 u5 _$ ~% g4 J: [6 ?, D, y
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
" @" f* n6 d0 r1 |& Y6 n2 ` if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
5 ^, f/ X& ]9 A {0 v# ~; e8 q9 l+ }5 U1 J6 w9 u8 e
if( m_pItemElem )
0 a9 @$ B! z3 G7 ?, I# C; m8 Q {
" i v+ j( `* f5 j m_pItemElem = NULL;; e y1 S1 t3 u- \4 p2 R$ ^$ R
}
: e9 T4 D6 x6 p+ ^8 x" Q) e) f+ N" D- R) I m_pItemElem = pItemElem;
. u4 t4 m; P |1 e ]5 B* Y m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
+ f Q5 e5 b! U& l" J: x" P }else{
$ o! o& S# G5 {( g- h8 | S SetForbid( TRUE );6 X8 \+ J* c9 a8 D
}* F3 G+ T2 _/ N( i# j
}else{
6 f. t9 r) z) o, r+ m. o SetForbid( TRUE );
- B# V9 E* ?& } }
! X3 d p! P! \ return TRUE;* p$ c& U5 m+ x1 u
}4 m: i. r$ ^7 a) @! F
2 N2 ?4 w( b5 W& j* r, u8 p+ fBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
' }& P7 ^' q' d{
3 |3 b+ }; V/ s2 |; U7 g switch( nID )
1 r( C7 h) \$ V {: M/ m9 o7 d ^3 d* a, K$ M- F
case WIDC_BUTTON3:
$ Z3 F) B, U& \+ x; I { b$ I3 N$ H7 b+ L, Y' G2 m
bStart = TRUE;
1 w. Q) H& J9 c% W3 X0 U break;+ a1 b, G2 `+ B2 d: Y
}7 A% b: R P$ ] x5 W- }3 _) L9 \. K
case WIDC_BUTTON4:
, Z1 v1 s: S; F {
- u' z: p; M, ~ bStart = FALSE;
5 y3 z0 F# A: q6 F$ H" J2 L4 y break;
/ P' Z2 J+ |+ B, E/ S6 d9 h }2 z% A" O4 @4 z0 {
}- ]" @* |5 Q5 _7 u2 Y. j
return CWndNeuz::OnChildNotify( message, nID, pLResult );
6 x6 L1 a! B0 x}
- D& E7 C q2 \& m) @4 o1 g3 R, svoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
% a) c: Q; H& u9 j `9 }% U{
! U% @+ T& i" C, q4 f8 B- } CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
( M$ V: T$ p- A. J+ N if( bStart || !m_pItemElem )2 N t3 `4 ^ O2 D P4 |8 N
{
4 y$ G Q ~/ B0 q) k0 n pBtn->EnableWindow( FALSE );7 O: d# A, y& [5 B8 {+ p
}else
! ]" o) A' m1 }' m( ?4 h2 ` pBtn->EnableWindow( TRUE );0 u! t- a. w& }5 e3 s9 ~
if( m_pTexture )# `, |1 l* H$ ?4 }# U! J) z
{
% h- T7 Z9 m' e% c LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ \1 z+ W* H0 r6 C
if( wndCtrl && wndCtrl->rect )( f- T/ F# T4 P/ P" ?
{- x0 `+ V- f4 A, p" F E
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
; N2 s( H. B4 s }4 h+ x, i1 _3 b* O1 i2 _' @; _
}) M3 q7 E! I8 ?7 x1 a
}
# x2 Q" m6 f9 d, T3 q
4 O. j- W* ?4 q. R: i: gBOOL CWndAutoFood: rocess()5 W$ M5 U6 P1 H1 h9 n
{
2 K6 N! c( `) B& _, G if( bStart )( p; O! T9 \3 h2 ~
{) f, Y5 F" k: L( C/ @: n
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )' @7 B2 } ^) ~, B0 c
{
2 S4 ~1 U' J0 U3 h) X/ _; j/ h7 D8 n if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
& X* n7 c, x0 X+ I/ y8 ~ g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
( O. W" D1 Q6 a( B' T' M }else{
; F! B9 Z" X `, H# e+ ^( Q$ B* f bStart = FALSE;$ b8 B' D Q- m B I
m_pItemElem = NULL;' G; R7 _( e' }" p
}0 ]) ~) {. g1 }+ l
}9 p% s& W, b: C) X; f& A0 S
return TRUE;
O8 o# q8 }& m& M+ E1 i; X0 R' c}- _3 z* t6 w8 T" D# P5 h s0 F
+ t9 a6 c; S) v& \, ^
登录视频废话:
/ v' M- X5 k4 {. h; \' W/ \6 u尾翼:+ o% R) w% F7 ?
+ C- l' w- v; _% o- |代码:/ ?5 ]; F; A6 }# K
: E6 A) @- T) ?9 Y% p5 X
void CWorld::SetLight( BOOL bLight )) q& a$ O; ^! t' s
durch( O+ D6 a6 C3 I' g
Code:+ n: Z3 F% D5 n) L' F3 G
void CWorld::SetLight( BOOL bLight )
: M) {2 P& U/ q2 U5 A{
- O/ P9 J# m- j% r+ V' u# X. Z# u //ACE("SetLight %d \n", bLight);
" ]2 p8 U& Y8 }& n' f1 s" d$ M ; d8 Q" X3 Y/ ~3 z
#ifndef __WORLDSERVER 2 [5 }% q3 d8 |8 c; l
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
, R5 x1 d3 W, k7 p( z5 o$ ]& H; e CLight* pLight = NULL;# A# U) P, K' i, ^( I4 f
* u$ s6 f6 R9 y. B4 n @# }. X
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );, r; J* y; `4 a: B% T2 B4 v& E+ [
" V3 `1 _& G+ |! o: I5 J pLight = GetLight( "direction" );
! a9 S3 w1 k( M p) b
3 g1 ?. J# P8 X: j9 U* @#if __VER >= 15 // __BS_CHANGING_ENVIR
0 w7 i) ^* X t3 s5 K2 r- Q2 F) i if( g_pPlayer ){
, C( ?. K. ?0 ~: S! V4 o ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
2 B* U. }5 C( B$ N! U' I; N6 O if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!) h2 @5 t4 b$ k/ {
{' u- q; C1 @% C% L5 H
if( pLight )
; Z5 R4 R6 ?! e' \" _2 k% A9 a {
}" y# {2 _& @ pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
. k" A7 {& h- w& g8 x: \* X pLight->Ambient.g = pInfo->_fAmbient[ 1 ];1 W2 K q' {5 E/ m+ d
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
- T- `2 K( m( O, i# L: U- d# T+ ^7 i$ @$ w3 D- b
pLight->Specular.r = 2.0f;
2 N' B5 n7 s+ j S pLight->Specular.g = 2.0f;
& t. K9 E% T. o# B: Y pLight->Specular.b = 2.0f;+ p1 g b2 [: G s6 p% a
: m' f1 S1 M0 r* x6 m8 [ pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
& j V0 ?6 q) ~" }$ ~" ` pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
! e. w) t' h) \8 d) d3 O2 U pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
/ T+ h, L: v1 S7 B: I. h2 ^
4 N# f+ j L: e6 e/ | HookUpdateLight( pLight );
! x5 X" g7 c0 O* Q _- \9 f4 S0 H5 r7 c; j! H
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );' W7 z6 }+ S: ~0 }; ~8 e
C& _! c& c4 j9 d8 {
pLight->Diffuse.r *= 1.2f;
+ a( s) K8 g3 p% v0 T! K pLight->Diffuse.g *= 1.2f;& Q$ J' e0 L& Q5 f
pLight->Diffuse.b *= 1.2f;
& ]2 t* e2 Q C2 q1 B' W' V+ K* z' ~3 n( S; ? d
pLight->Ambient.r *= 0.8f;( S5 w# |: T" l
pLight->Ambient.g *= 0.8f;4 z. X5 M' |3 _+ c
pLight->Ambient.b *= 0.8f;+ k% y! m# W4 x7 x( ]- w- y4 O
: W* Q7 c6 w, G; \ memcpy( &m_light, pLight, sizeof( m_light ) );+ |" [' ?9 e% V' O" |) l
/ P% }5 p' n1 b ]3 N
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
$ I* e/ K3 ]- s, l% a% H/ x: @ D3DXVec3Normalize(&(vecSun),&(vecSun)); }+ r& @6 i/ }- k% T, p4 |
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); & O3 E: E; \0 ~3 Y/ U# ~7 f
pLight->Appear( m_pd3dDevice, TRUE );
Y: g" u% z3 F, t. w$ x 1 K: Q' ]" h" a' X/ `7 ~3 g% i; @( d
DWORD dwR, dwG, dwB;
& }4 t& m0 y1 F1 Q. P4 A dwR = (DWORD)( pLight->Ambient.r * 255 );
2 K- u9 R) d4 Q Q' ], w- q dwG = (DWORD)( pLight->Ambient.g * 255 );( Z: ?, p8 a+ W- j$ Y2 \
dwB = (DWORD)( pLight->Ambient.b * 255 );& a, i+ |- O# G' L" [
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! {3 v2 y9 f4 c- J3 f8 k
}
9 z9 C$ j: R$ V& ^9 i' X }
3 O, k$ d+ L- S- F4 \+ c1 [+ d }5 j, b& S4 l! n
else
( [, u; S# Y0 Y$ V' |9 `#endif
( k& j7 J" t' i( o' B g$ B
1 J" s$ j" U% B! `, J0 H7 O if( m_bIsIndoor )& P( r0 i$ i# I* u1 j
{
& }; P E: }# s+ M$ U8 F# \ if( pLight )' Q, u; L8 k7 Z& a9 M
{
9 x, l# l! B- z( A // à??μ oˉè* & B6 r6 O2 F: [7 O2 ]
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;9 H2 G. N* I1 T# w1 ]1 Y9 W
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
* L, X: ?. Y- q3 V, O' h pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;2 W; S% g3 {- l) M) K( W9 R
1 k& [7 k" V$ q" E" e d; M, y) U2 x7 {
// oˉè* ??à? + H u& ?0 f8 s0 K4 h% G
pLight->Specular.r = 1.0f;0 x1 C" \: f a. {
pLight->Specular.g = 1.0f;* P. {2 K( v* p9 |+ _7 w
pLight->Specular.b = 1.0f;
$ c) h1 Q4 _$ @6 W$ E+ I, M6 g // àü?? oˉè* 5 Z& f9 ]) K. z; S
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
- o: w" H2 R2 x pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
, ~4 W( j6 T: H8 v3 l pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;! [( P6 t7 {" N: H j
' Q- U! L/ [, o* s if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 E6 d- h; N' R5 t1 c {. B1 j1 j) A% p$ N8 x# |1 Y1 h; D/ o
pLight->Diffuse.r *= 0.6f;
! a, o) c: n. X. q* _ pLight->Diffuse.g *= 0.6f;
2 U) f8 u2 ~' B pLight->Diffuse.b *= 0.6f;2 E" V6 j5 N! j5 u
pLight->Ambient.r *= 0.7f;
4 y0 s; ~. j/ U% Z9 f, f, E pLight->Ambient.g *= 0.7f;
+ T6 j9 @/ C0 \' t pLight->Ambient.b *= 0.7f;( R2 G' U; G8 m5 X
}( {: U$ [0 _ m7 d* H
- }* _/ L# p6 t
#if __VER >= 15 // __BS_CHANGING_ENVIR6 h; H1 o& M, y9 J1 w
if( g_pPlayer )6 O5 J+ q$ Z9 A8 L2 `1 I/ P
HookUpdateLight( pLight );
/ h5 _& R t$ Z8 d9 G#endif
2 l0 Y) p4 J% I$ `; \7 }% s memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );8 Y0 p o" k) @! A/ n# I" k) L
2 |' P( ^' G1 F8 X pLight->Diffuse.r += 0.1f;" d: ~" w; ~- g$ P
pLight->Diffuse.g += 0.1f;: m% N; d, I9 X/ v' ^9 f2 J
pLight->Diffuse.b += 0.1f;6 f% _( q- g" U6 z
// oˉè* ??à?
/ x$ w. j3 ?# o pLight->Specular.r = 2.0f;0 c- Y7 X3 M e& o
pLight->Specular.g = 2.0f;2 q( o% q3 p$ e3 v7 C5 X# [
pLight->Specular.b = 2.0f;' [; N# e4 r! ~( U/ I* x, N
// á?oˉ & K O* s; ~- t: _
pLight->Ambient.r *= 0.9f;' p/ L0 N% m- Q
pLight->Ambient.g *= 0.9f;
2 i7 {4 f8 W$ R8 R' [, B pLight->Ambient.b *= 0.9f;' p9 W9 X6 d8 |- h1 Q8 q1 `
; z2 ^) o8 {) @ memcpy( &m_light, pLight, sizeof( m_light ) );/ v0 K0 m# U6 f
: i; Q2 A7 y _ V# @7 q pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
+ c9 Y$ {5 [& p( w, m% v pLight->Appear( m_pd3dDevice, TRUE );0 f- R9 L9 a* B9 S+ U$ x
! t; b: K2 i( B# x* M' y. R! E
DWORD dwR, dwG, dwB;) P1 M+ o. V# S
dwR = (DWORD)( pLight->Ambient.r * 255 );
: j: h* b% a" G dwG = (DWORD)( pLight->Ambient.g * 255 );
- ~9 X, r0 H4 M6 Z' [: E& m8 n dwB = (DWORD)( pLight->Ambient.b * 255 );+ ?2 w: v; u' [1 \7 w! o
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); C" b f+ e/ r; Z" N
}
2 j" |$ Q/ R4 j& ^; ~* P; { }
. Q3 u. G$ y# S else" F' g$ G, i8 C' j( N+ ^$ J. @% O
{: V o8 U5 q5 Z/ o ]7 J$ _2 W, r# w/ z
if( pLight )
$ e5 m4 j( F) ^, p, w) e {
+ c/ N% }2 Z2 s3 p, x. c3 H2 g Q0 h+ |4 I8 q+ r0 ~
int nHour = 8, nMin = 0;% h% x7 Y5 N, Q* d( ^4 y
#ifdef __CLIENT" X' D' O/ V2 ]3 N1 G
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. " U4 s! ]& }) m( ~, u/ r, R
nHour = g_GameTimer.m_nHour;5 W |* y8 Q: A
nMin = g_GameTimer.m_nMin ;
0 \8 [2 F9 K! |" c1 [9 v5 `6 P #else4 _. r* Q/ q7 ^$ O
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.4 \' j8 X* L- u! Y
if( m_nLightType == 1 )
" h5 P# I% `3 J nHour = m_nLightHour;
; w3 o) [8 c& e+ x' L #endif
+ n! L0 \- [0 W |4 J nHour--;
8 r6 y- f; Q( |! J. u5 d1 d& S if( nHour < 0 ) nHour = 0;
" x* w: S0 l# E/ J+ @7 ^ if( nHour > 23 ) nHour = 23;5 ]* @: N4 U8 h1 k
( w3 x' h O5 s( U# `! K; `+ B0 A //if( m_bFixedHour )! [; j# n' t7 h. C' j4 {
// nHour = m_nFixedHour, nMin = 0;% ?$ Q& R9 A7 u* b
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];$ S7 Q# U; @8 F
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
6 e- n: g1 d1 f! t! ]0 Y7 K; r. ^
$ B: J" k' o# u7 `7 |% u; V: c# M //m_lightColor = lightColorPrv;# S3 U( g4 _0 s9 u9 Q# b& b8 l
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
9 a" g% ?/ P# D; A2 W( U+ ?& A d lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;$ c5 C, Y1 G: X& ?
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;0 q- M6 Q% a$ d( T
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;. m' }& B1 N' I, A" d" D4 y
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
$ Y# ^ P% G0 F7 u# h. z. Y$ F+ m lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60; O2 i) |% p$ v/ D/ t% }
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol): a- |* }" B0 K7 a0 i
' Z: X/ ~. z$ q1 W1 i
// à??μ oˉè* $ {, @$ [2 @9 O
pLight->Diffuse.r = lightColorPrv.r1;3 l5 Q. g9 X9 a K& a
pLight->Diffuse.g = lightColorPrv.g1;* G8 L& V3 V+ t8 Q
pLight->Diffuse.b = lightColorPrv.b1; N; N* F' f @5 N
// oˉè* ??à?
9 e: {4 L' q+ }. B& z pLight->Specular.r = 1.0f;
2 S2 S- ^1 X# k pLight->Specular.g = 1.0f;
0 @9 D6 K. K2 @* }/ R7 { pLight->Specular.b = 1.0f;
, O: t) q# K% g( F# b4 R0 W // àü?? oˉè* - v# \6 P$ q, D; i7 n
pLight->Ambient.r = lightColorPrv.r2;
$ y9 e. f9 ]. n) j pLight->Ambient.g = lightColorPrv.g2;1 d* ? v& F% k% J+ }* A1 f r
pLight->Ambient.b = lightColorPrv.b2;
1 f- g" H f6 m$ R6 O; _ y
* o V1 D' C) y8 d if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
, V% K% N1 P% s, @5 S; C8 L* S {$ h+ q& j0 u1 s) s! a* ^8 W, E2 x
pLight->Diffuse.r *= 0.6f;
. N; W" V! M: d1 D6 b0 g1 B pLight->Diffuse.g *= 0.6f;
6 S( M3 M4 D# l- N4 F& E pLight->Diffuse.b *= 0.6f;
! U9 q c% D; \ pLight->Ambient.r *= 0.7f;
- I! ^! K' s. h | pLight->Ambient.g *= 0.7f;8 ~) `3 y. g" B+ I) a2 p
pLight->Ambient.b *= 0.7f;2 V* ?; T* V9 F v7 s
}$ D* q1 E4 T' m1 @
2 I# N$ Z& o: ?% D( J
#if __VER >= 15 // __BS_CHANGING_ENVIR- u) `& V& }4 J' l5 e3 e0 Y2 @
if( g_pPlayer )
3 `8 Y0 O6 ^$ x; Y0 G HookUpdateLight( pLight );
" }3 {* H4 u9 O" y( K/ D$ ?' ]#endif2 `4 \$ `8 X7 N J
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 B; A% a; ~! Q
: R4 F, r" {. Z+ o6 A+ \, h#ifdef __YENV
& K% b6 h, o4 z4 N2 R pLight->Diffuse.r *= 1.1f;
8 U$ z4 ]* f6 ^1 Q7 J7 q pLight->Diffuse.g *= 1.1f;
5 ] I7 }/ ^/ `6 l/ F9 c: i pLight->Diffuse.b *= 1.1f;2 t E3 ^5 E/ R5 u$ |6 [7 L
// oˉè* ??à?
* Q# m$ f; b) A+ \ pLight->Specular.r = 2.0f;$ J: X2 S9 t- F9 u4 I/ |; K9 i
pLight->Specular.g = 2.0f;
: p. T$ G& h. x6 _ T pLight->Specular.b = 2.0f;/ _. f8 I& h" D8 o \0 u
// á?oˉ ' U( Y+ W5 }9 j- I" G
pLight->Ambient.r *= 1.0f;
& J3 w% n$ Z A( o1 {& v6 J pLight->Ambient.g *= 1.0f;6 v, M5 k+ K0 O* g4 y1 C
pLight->Ambient.b *= 1.0f;
0 t5 A8 Y1 |2 ~9 e+ G#else //__YENV: ^# s7 z9 U. ]$ ^
pLight->Diffuse.r *= 1.1f;' H }7 F) {/ ?8 z; I
pLight->Diffuse.g *= 1.1f;
) o& F5 O s7 K @ pLight->Diffuse.b *= 1.1f; i1 y `; V/ u+ `
// oˉè* ??à? # U0 g* R9 ?3 s u% [
pLight->Specular.r = 2.0f;# L+ v1 ?. p8 q6 d ?' V( s+ p
pLight->Specular.g = 2.0f;
4 H5 A" ?7 e, i9 P pLight->Specular.b = 2.0f;
" m" i' g# x' R, V+ r. j" ] // á?oˉ
* P% ^! z, f. p' Z5 P, u4 B/ u% P pLight->Ambient.r *= 0.9f;1 Q' f0 Y) E+ @4 u3 a" n2 H2 ^
pLight->Ambient.g *= 0.9f;
! g" R2 U2 h) Z- r& P% a# {, W pLight->Ambient.b *= 0.9f;
# e7 s k9 c7 I#endif //__YENV % P: ?. h) D3 x
: x E9 C4 T; A$ v8 M0 ? memcpy( &m_light, pLight, sizeof( m_light ) );6 ~" G l& E/ u; ^' N. q2 @' l
3 K4 z0 @% R9 h1 ]8 b0 _5 z+ n
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
) \- w5 t& c, A) @, G- V9 a4 h1 j D3DXMATRIX matTemp;" D: }5 V! e" h/ m, w( J
static const float CONS_VAL = 3.1415926f / 180.f;
; |( s3 Z! V d" C7 d5 K
8 i0 T7 L5 I5 o D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);3 o7 S& E3 F, n3 t
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);( N' S& w5 a! {/ _4 A1 r( G
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 5 e& l& k8 \3 t% @
pLight->Appear( m_pd3dDevice, TRUE );
% R, g2 o. f1 @5 _* s
, I1 H0 j W2 m/ J2 v3 \4 U# w // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
6 b9 K6 u1 [4 ` // D3DXVec3Normalize(&(vecSun),&(vecSun));
; F/ q/ y7 A% J( X1 A+ x // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
3 L2 x. I$ b7 @8 F' n! c# U$ Q2 Z3 ~$ x' p6 }2 W8 f
DWORD dwR, dwG, dwB;
1 B2 n' k. u9 W% C9 q/ Q! f dwR = (DWORD)( pLight->Ambient.r * 255 );
4 o2 f W4 D! g/ q' y& k% L z dwG = (DWORD)( pLight->Ambient.g * 255 );
2 V* p) F* N ~5 g0 N dwB = (DWORD)( pLight->Ambient.b * 255 );' F3 @6 @- I, v: q$ I8 b& l
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ; J" _& D& u2 K8 {
}' O) n9 E1 p' f' S5 Y$ {* d
}" p* d/ F7 {2 \, C2 q* K
. u: ^) P8 A! F- c8 `2 ` m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );# x! h& E# f1 G3 l( G
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) );; x2 b5 R" d' B. I9 k
::SetLight( bLight );
, h5 N' ~) g8 @) g( W4 m6 A1 U2 L/ R3 C. a
// ±ao? ?D?í???ó á¤à? % }% n, z; s" ]- c9 \+ q) K
m_pd3dDevice->SetMaterial( &m_baseMaterial );
% N* P$ L1 k1 h( g
- U+ R4 G# B* H1 ^) ?/ q" k#endif // not WORLDSERVER3 [" B+ }; k* l( t; \0 s
}
* H' t$ H/ [1 r* L& V并更换" _- H$ G" M6 H8 A0 m' t
Code:6 B9 n" I: N9 {" M3 U
__FLYFF_INITPAGE_EXT
4 H7 k4 P' x1 J, z( C定义) J, N4 r6 U2 {& a
& f) D( X/ ]+ I) V0 D; V8 B
/ d: h2 v: t+ U1 ^* \; L! ?( N4 h& q! u0 `
" I0 D9 K; O k. A7 I* Y% j* e o
现在终于删除我的狗屁加速..." q; ]% ^- G' m! f' Q" s1 ?
, S: l, d/ L" r. ?7 v& Z
$ Z3 [/ @3 U+ Y- U
1 W# h4 ?, N, H$ R
|
|