|
食品车:
" b/ D/ f& A6 E- Y8 M1 N尾翼:) m( x8 Q! ~$ Q/ O0 O" _' P
6 m0 E/ I# \8 f9 u p ~
代码:
1 @5 y( L' K$ e/ Q9 o6 ?CWndAutoFood::CWndAutoFood()
7 H3 g1 K! V& V2 T$ D{1 c, j. @+ N* W+ _: q; U4 r6 j$ H7 s
m_pItemElem = NULL;
0 a" R; X L2 h m_pTexture = NULL;6 j. U& E* r: P1 b
bStart = FALSE;. A; `4 F+ ?+ z$ @
}5 @; z( b9 d5 z4 A3 @- i
2 w% f% A" ^8 M& d0 S6 L6 jCWndAutoFood::~CWndAutoFood()$ n+ @$ p- f0 K7 I1 }, ~
{
% \. V6 v8 @+ R AfxMessageBox( "AutoFood ist gestorben " );8 L* } Z0 h" ^
}
# @# K+ \" g7 S" d JBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )/ L' A4 T: {1 f" C
{
( v2 M, r7 A- I6 w! h$ ~% g return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
) h& Q) N5 ~* |3 q' t! m}
) H1 \+ t6 u+ o3 b9 E& Z" ], O+ N2 d) @+ \
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )8 M% l, r$ N$ @5 r" u
{
5 D& Y* J4 v% i- c' W) m LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );. r4 n/ ?# n, ]7 T. k! G4 C5 r
CRect rect = pWndCtrl->rect;3 M2 v# { t% _7 ?& y
if( rect && rect.PtInRect( point ) ) \: N2 h" s4 T' J2 x2 s
{
# {$ R, R, s/ T6 {- T R CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
# @: B+ W3 G- |; q0 p if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
9 X# l7 v, \( _/ @6 w9 z+ A {
# r) ]+ B1 S4 l if( m_pItemElem )
& Z% H2 a8 Z5 R& r {- Y }( F) q9 X: i$ N& U
m_pItemElem = NULL;% {; S& d7 ^# C
}
; [0 E7 E: Q: \" B" G9 [0 D m_pItemElem = pItemElem;3 H4 v4 i8 }9 d, `$ t
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );" J. |7 }9 } G1 I3 e+ G
}else{
! n# j5 B3 M6 C) Q. l: | SetForbid( TRUE );: X4 H/ ^" S: P# { m/ D9 X$ t0 K
}
* O- K2 \: ^0 H: }0 t }else{4 U- P4 I' t$ W3 P
SetForbid( TRUE );( ]" s7 ]6 X( p8 t4 K
}" P# O, _6 ~' J- {8 `" [. w
return TRUE;: m* ?$ @# \7 @ k
}
& |3 r" P8 w3 b9 p H- o2 B# G
8 C5 ^- p4 H( QBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )' B0 L' S7 k3 j( a1 d+ I
{
/ }. }! U2 Z8 V9 M8 ^3 ^" n switch( nID )
9 L: W8 O1 O* {. @. | {8 h" N' y7 l1 F0 s8 S
case WIDC_BUTTON3:* ^" K7 ~' X7 g- ?& e
{
1 T: G/ q: v8 j bStart = TRUE;& {& R# _; T9 c2 e" x+ w
break;
) e5 ^) \. V- Y; e, u/ q1 { }
" x" `# q! c% ]# X+ ? case WIDC_BUTTON4:: _7 z% S, X5 V9 J% u `) k+ m$ w' B
{; r) x3 z% I# N8 n& Q2 ^" L
bStart = FALSE;
* s* T1 p3 \# S4 E# j, e break;
9 b8 k# a4 N* z. q( d }
8 G9 k7 o( h- z6 w. P/ t! b }$ r' z- U$ K) f2 p; l
return CWndNeuz::OnChildNotify( message, nID, pLResult );: V, Y, T3 {; A
}
+ W& x1 D! c2 N+ Jvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )4 K F' E1 U7 \: S5 s* K7 C0 V
{& D& c4 f: w/ A K
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 ); T# e0 P+ y1 e, [6 e2 Q% `
if( bStart || !m_pItemElem )
: l Y; w4 u% ?6 h: K5 U, @/ z {) Y) H+ ]0 o" }& O3 W
pBtn->EnableWindow( FALSE );
) m F3 e0 Y- d0 z }else$ x* q* ~' t; z3 S% i6 Z+ f. G4 j
pBtn->EnableWindow( TRUE );, C$ C( ?' C4 C6 u/ A1 d0 r4 A6 o
if( m_pTexture )
0 _8 Q2 g2 v9 D& x; T {
) u' _. y1 C. r9 Q1 J LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );; k; e+ x+ J* K% p$ a) A2 j; X
if( wndCtrl && wndCtrl->rect )
4 Q; }8 i2 G) Z* S" d, P( b {
- L) h5 B0 H1 \3 W" ] m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );) R/ y4 R4 B1 @; V7 u7 n
}
: z5 y2 Q t; N2 t }0 _' f/ n) y0 q7 f" \
} h5 T" C) w. Q9 {4 t
; ~) H" t2 s, _0 F' n
BOOL CWndAutoFood: rocess()
+ [% M$ G) t$ E! N{: [( W+ L0 y, k. x# P* j
if( bStart )8 _2 N0 Z0 Y4 ]# Q( v3 C1 I
{: S& Z- X- B' c
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )1 [3 M0 H8 G- J; A. P7 }3 U
{
7 t1 j5 X! Q" z6 r) x if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
) ]3 e' B- h! T9 z+ p g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
" y x1 O, G' v) u }else{
6 I7 R+ g" L3 i- k8 }, Y bStart = FALSE;
) M8 _9 Z# p+ v' n% _ m_pItemElem = NULL;( {$ o4 |" t8 {9 \6 z; W: y
}
: d& N2 H3 A K. n5 a1 r& ^ }
0 w9 Z- L2 z6 D x. G return TRUE;8 u8 L L8 V" ?$ b- S# D
}" \5 E6 ? e: d5 E0 ^. l
1 M. ~; L9 B. E0 o
登录视频废话:! J! t2 r+ D% Z
尾翼:% Z: a7 k) N" u T0 Y7 B; H$ k
( C% P" Q+ x/ [3 T, w8 E( \
代码:
! h& X9 R% w8 Y- g; ^
5 C5 i/ e% _' G' f& j; V% k, ovoid CWorld::SetLight( BOOL bLight )
$ J2 Q# i7 S% xdurch
$ x/ T) H$ l3 @2 T/ ~. b: wCode:4 Y2 B8 q6 p6 ^9 ^/ m% [9 X/ A$ K
void CWorld::SetLight( BOOL bLight )
( h1 w) G v1 X! c% x" G' Z{
5 u7 ?7 M4 ]$ [ W2 K6 C //ACE("SetLight %d \n", bLight); n/ Z! S3 z: q- U
/ n) X- j; c5 b
#ifndef __WORLDSERVER 2 G, N# y9 q, _' v2 R2 ^4 x$ o( [
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
1 \/ G/ ^( z* ] t0 l4 h7 t6 X H CLight* pLight = NULL;
0 Z5 D0 P2 A* [! H8 A
4 p+ ?: [2 y2 ?* ^- W. x5 n D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
2 ?4 |1 a, D' v7 n: a z1 d
( F" c# {8 M2 k% j" E9 P pLight = GetLight( "direction" );
7 Y* S) @5 c* ?' G, `5 {/ e* y1 @7 R0 {& S0 k
#if __VER >= 15 // __BS_CHANGING_ENVIR
7 G7 R6 T% Z) l2 t3 ^/ r if( g_pPlayer ){; ]; S2 }. K1 e. J" L2 A
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
% m* u1 L* _( A! K if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
& Q7 |! r9 D% e3 z! p5 T {
! f3 E! N3 a% s* D$ b if( pLight )9 c2 X* j2 @) K6 R+ T! I/ @% B
{
+ q$ [6 G' r6 A1 G4 Z: h pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
; [2 r$ t2 J/ v( u pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
# }& \5 ?& x& l. t pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( t' I8 l4 j& ~3 M" P# `& Z; R0 I' v0 n+ `3 |: A
pLight->Specular.r = 2.0f;0 e s0 O: Y8 Y: M7 ?7 t. L% f- c
pLight->Specular.g = 2.0f;4 m! I U$ p; m& G9 T
pLight->Specular.b = 2.0f;2 T" I* x8 p5 G0 f7 J, f) ?$ z
. ?$ y& ^; I+ V4 i pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
: T; j3 a. a3 Q7 ]* x' f( j* i pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];: a( Z# i5 @8 o" Z" N
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];! Y3 {1 Q9 \0 |1 |
5 S" a2 \6 m! a, Z$ c$ v" Q HookUpdateLight( pLight ); 1 o1 E+ |! R2 T. m6 |- G B; E4 a6 Z
/ {# ?3 m8 M7 X5 E* @
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );/ d3 X9 m4 `" \, Z c
& k* q, g9 B! D8 T7 |, c$ {8 S
pLight->Diffuse.r *= 1.2f;! O7 Z1 U* u" h8 g
pLight->Diffuse.g *= 1.2f; m% l8 u% d/ a$ w
pLight->Diffuse.b *= 1.2f;
( z0 O$ a9 l1 f2 R7 X
+ ] b4 K' o, `* M/ X' Y) \6 }2 l pLight->Ambient.r *= 0.8f;
- l6 P' i* @! a4 i; g5 j G pLight->Ambient.g *= 0.8f;
2 t* S9 \1 [7 f' {, \# U pLight->Ambient.b *= 0.8f;& N/ w0 u8 M2 r' a5 C
1 G# @+ h% i$ ]# b5 P4 k
memcpy( &m_light, pLight, sizeof( m_light ) );
5 u# c- g! v1 v6 m* d. B" C
4 f9 z) x6 _) U$ U9 L D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);( `' j' t! C6 I
D3DXVec3Normalize(&(vecSun),&(vecSun));# w7 I0 _ |1 O, S: A
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " n6 \4 r s0 N1 T( N, i
pLight->Appear( m_pd3dDevice, TRUE );
/ `* ?0 C% _7 X& r8 t" W! B
/ m, F+ v$ F6 R1 F DWORD dwR, dwG, dwB;
* e: O% W H" A! f- P* E B dwR = (DWORD)( pLight->Ambient.r * 255 );
& ^; E& o" h$ r* k: Q' T dwG = (DWORD)( pLight->Ambient.g * 255 );
8 l3 \* T$ f7 ` dwB = (DWORD)( pLight->Ambient.b * 255 );
6 }+ b, n6 e" m" e3 E0 P5 h dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
: ~& N/ W+ D! W' | }5 K. m( |& _, `5 `( n- |
}
% t' J# c! Y2 L; K }9 G/ [8 @0 @8 O8 o& U& |( f
else
% C( R, m) C; O8 O7 D#endif
9 X$ c2 ]" O/ }+ p& F7 f- }6 h; ]1 J2 ^# I* p0 B' g) m+ J
if( m_bIsIndoor )1 b; b9 R. b5 u% Q
{/ Q0 i2 N. s) o& [
if( pLight )
; C) U0 s7 ^8 c6 S; R& n) m { " P! ^8 B' Q: b! N: d+ Y4 E- v
// à??μ oˉè*
3 n4 W' U) K$ P+ N k' [/ t' R1 K pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
- p( O. o0 U: e" z pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
5 M. Q& U4 Q U# ^( b& } pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
& m( w* [2 O V$ I3 M5 w% N5 N4 l9 u' B V( B, d
// oˉè* ??à?
4 i; B0 t8 [( M3 u! `" c2 z7 i pLight->Specular.r = 1.0f;
# z0 l& e, i# U9 r pLight->Specular.g = 1.0f;
, d# Y# y) [. b: M" B: f pLight->Specular.b = 1.0f;" S. B! j& D- i$ o* S
// àü?? oˉè* 5 \& G( c0 K6 H' P: K9 C: }) _' s
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
4 S7 n8 Y' ^6 g' d3 G/ |* X& G pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
+ @/ a- ]' Y9 k* \* ?$ a: i. o3 \ pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
8 Q. e3 N1 G5 u, ~ K r6 N
5 W h8 D' ]0 b! E: `, v if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
3 S: B/ Q5 n5 i {
* w7 _0 P. z1 e$ \- ^3 ?4 s pLight->Diffuse.r *= 0.6f;
6 k* [; D+ @' }9 b* v* N pLight->Diffuse.g *= 0.6f;
9 O! ^8 k9 B9 X! h" i* N' {2 H, f$ I pLight->Diffuse.b *= 0.6f;
5 ~! j. [6 P) Z. I2 Z pLight->Ambient.r *= 0.7f;
$ Z9 t3 y6 ^" M7 q' {/ \8 B: L) j2 x pLight->Ambient.g *= 0.7f;
2 E" ]1 t" z* Q7 w' V; ]4 u5 F' a. ` pLight->Ambient.b *= 0.7f;
: D7 S' e7 ]* e! \0 e: T }
- |! U0 N# ]/ }6 A. x
3 |% X( F z2 p$ D6 L#if __VER >= 15 // __BS_CHANGING_ENVIR
: ?7 L6 L0 `$ r. \0 y' | if( g_pPlayer )1 [) `; b) _, Z% V
HookUpdateLight( pLight );
$ c g: A0 y* k6 m& c z* M#endif
& z, c9 N" `0 k memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; Q. ?8 ?0 k5 c9 R
/ V! E: D: p+ l pLight->Diffuse.r += 0.1f;+ V0 v: I" \$ O) |% T; C7 G& ]) d
pLight->Diffuse.g += 0.1f;
J& b' o& x* {) y3 |9 ]5 Q+ f! ` pLight->Diffuse.b += 0.1f;2 s/ `, ? T5 j6 r) u) m
// oˉè* ??à?
8 K. ^4 i. o$ c$ I6 N3 i6 K pLight->Specular.r = 2.0f;
" v5 m$ w0 W, @5 ^- u( ] s2 S( W7 l pLight->Specular.g = 2.0f;
, e. ~& W/ P4 q- r8 f2 S5 o( s4 ^ pLight->Specular.b = 2.0f;
" u3 _+ T& `8 U$ A2 C. E+ t! A // á?oˉ
0 Y4 \6 t. m6 u3 B4 Z' l pLight->Ambient.r *= 0.9f;
6 Z3 v% m2 d$ d+ Q% e+ _! v pLight->Ambient.g *= 0.9f;
# y8 g7 f) o2 S( r9 D" S4 R pLight->Ambient.b *= 0.9f;) J$ ^( H! T; ^ V' Z8 b. W
7 }% M1 Y% Y0 }, v J$ n
memcpy( &m_light, pLight, sizeof( m_light ) );
2 ^* |5 I0 f( E7 {' l
9 c4 H/ ?% F6 V2 Z9 Q% K pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
( _5 ~* C, Q) J9 n) f pLight->Appear( m_pd3dDevice, TRUE );. \) F, Z2 `6 F6 J3 J8 C/ y5 m" }
, @4 m# } M0 \( O+ K0 v DWORD dwR, dwG, dwB;
2 I' S/ c4 E' H dwR = (DWORD)( pLight->Ambient.r * 255 );5 v( O% E# U8 p7 d2 m
dwG = (DWORD)( pLight->Ambient.g * 255 );
( @% r0 k7 D5 R' s dwB = (DWORD)( pLight->Ambient.b * 255 );
% ?& o( [7 V/ `2 I! o dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
+ Z* y! X5 k3 o% O* \2 E, A }
# U! D# g7 F% F, N$ T' r }
7 j! |5 Q' M K else) T5 a# ^4 @: f
{
) _) o4 @$ s. @; ^" }! d if( pLight ) i2 P, a5 q7 p& ~. K, ^
{8 W; K& f6 s- ^% ~
' S7 Z" I$ Q( z' y0 C int nHour = 8, nMin = 0;: \# \* X4 `# L+ Z
#ifdef __CLIENT9 t1 q# { M. u4 c8 q) N
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 1 r) [: ]* k1 ]9 E$ H" S
nHour = g_GameTimer.m_nHour;$ c( M: f; u3 K. p
nMin = g_GameTimer.m_nMin ;( ?% u7 \0 J6 I% O) v
#else% w% g- Z6 ~/ Q1 V" J
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
: Y& ^! X6 ]- I( a2 { q if( m_nLightType == 1 )
/ Y% \, ?! m: W- ~6 ?3 q7 d; q nHour = m_nLightHour;
: w$ v6 E$ Y* \2 s4 x #endif
' W ^- O: E: G+ R nHour--;
6 U1 b1 o$ r% S4 W2 k if( nHour < 0 ) nHour = 0;
6 l3 H9 o6 o3 R0 E; B+ \' F0 _ if( nHour > 23 ) nHour = 23;" L: _' s( [; w
$ {: s# a q1 r8 U; a% }1 U7 Z //if( m_bFixedHour )
% [6 c% k M# c Q/ N // nHour = m_nFixedHour, nMin = 0;
6 v6 `; L* |0 ^/ h LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
7 t2 A) |& f3 B' i, u! c LIGHTCOLOR lightColor = m_k24Light[ nHour ];9 }- {. K) }( _; `: g3 l# r
$ O# G6 l3 t/ V- [. h- ^4 t //m_lightColor = lightColorPrv;
8 H2 P: v" E) v lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
3 y3 `% }7 {8 p W- ~ lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;7 y$ h" c% a% C+ p$ ?
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;# |; ~* z: v6 S
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;1 v, q; r2 H. M+ y: M, Q# A6 Y
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
4 t$ }# j" `; m2 ]% a lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;. X% j+ y" S5 n$ w! ]. K7 ?
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)+ i1 g/ ~$ U1 n$ H9 Y5 F' |2 P
1 g$ b! r2 i' K+ K8 L- j+ q# c# v // à??μ oˉè*
' j+ H1 k2 a/ ] p& N4 l2 Y pLight->Diffuse.r = lightColorPrv.r1;( d; `/ B9 G% O: c3 v8 m
pLight->Diffuse.g = lightColorPrv.g1;
% ~/ X) A! ?4 W$ h. I pLight->Diffuse.b = lightColorPrv.b1;
a! z2 ~; y2 b8 O1 @* [ o6 M // oˉè* ??à? , Z [: u) {- N: E1 w! S
pLight->Specular.r = 1.0f;
1 ?. S; J% ]5 a pLight->Specular.g = 1.0f;! |- q( S* e: |, Q- b9 O4 U' @
pLight->Specular.b = 1.0f;
* e' f& P' l* V- C: X0 K // àü?? oˉè* 9 \# m/ X! f9 |3 t4 \; j
pLight->Ambient.r = lightColorPrv.r2;
1 ?) ?+ A* J5 N& O+ l) L6 g- ^ pLight->Ambient.g = lightColorPrv.g2;3 n. Y2 Z* U+ N3 m* G' Y |1 [+ B
pLight->Ambient.b = lightColorPrv.b2;) ^# r1 q3 A# |- e
: C% e/ H( z" N# x& w if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.* P1 |8 t; d+ n! T! Z1 L& ]
{. c) y% g$ E. c p, K# N- ~0 |
pLight->Diffuse.r *= 0.6f;% o1 |* U5 I( |% l
pLight->Diffuse.g *= 0.6f;1 X. G2 x7 N% Z+ y1 A" S
pLight->Diffuse.b *= 0.6f;
6 ]# q/ _4 s' x) E) A0 l pLight->Ambient.r *= 0.7f;5 S0 h& z/ [* Q! h
pLight->Ambient.g *= 0.7f;" n" f, R/ j- i- ^
pLight->Ambient.b *= 0.7f;
2 b0 y$ o2 u1 j4 c8 G4 B! J }6 ^; {5 L. _5 V% c7 {0 F( L7 p {5 L
: ~; o4 j% R. x! Q
#if __VER >= 15 // __BS_CHANGING_ENVIR
- \1 d& [* H! i! L, M4 \) \2 [ if( g_pPlayer ). K' Q. x/ j# i$ m7 u5 ?5 \
HookUpdateLight( pLight ); & H. Y/ c+ ] \& I7 R: ~
#endif
) n; C7 W8 I: }1 F; |- q! ^% Q memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
" Z c6 Y5 J# w& O7 y" i6 j. X
r4 U6 K; J- L, p: q% {#ifdef __YENV
- i: N9 I) D2 R7 d: u8 z4 K pLight->Diffuse.r *= 1.1f;2 k3 G9 m. z" V8 D
pLight->Diffuse.g *= 1.1f;9 q* S: s, e/ h
pLight->Diffuse.b *= 1.1f;
O R1 x$ a' i$ e4 C- \ // oˉè* ??à?
) J1 v9 j7 d; C6 x4 V* a( D: T; { pLight->Specular.r = 2.0f;" a7 G8 R. s4 n8 K a6 c. N
pLight->Specular.g = 2.0f;
0 c9 F. H, k1 m- i6 E pLight->Specular.b = 2.0f;
( T% E" r* Q# F // á?oˉ ) f, q' J4 j" @& |4 ]: p
pLight->Ambient.r *= 1.0f;
" n- {1 b1 Y$ B pLight->Ambient.g *= 1.0f;
$ J. d$ g7 ~. s! i8 G4 a pLight->Ambient.b *= 1.0f;
0 e5 Z$ L" S; ]#else //__YENV
5 e6 K5 h% k( U9 S* K- {3 R pLight->Diffuse.r *= 1.1f;
) R0 o- m6 f; k, k. D pLight->Diffuse.g *= 1.1f;
% N4 c4 r; y/ }- Z9 s: ^& ]) |5 Q pLight->Diffuse.b *= 1.1f;+ s5 {6 U4 S3 n! K. r. [
// oˉè* ??à?
, D7 W; a: {) X* d) X0 ~! Y* ^7 { pLight->Specular.r = 2.0f;7 S, j4 L7 B' ^- v, @" Z
pLight->Specular.g = 2.0f;) R; w( o$ c5 z& U+ r ?
pLight->Specular.b = 2.0f;2 j7 @' w8 G. e: Y' C8 \0 m! ]0 s
// á?oˉ
( I F2 b* @6 {0 c6 M pLight->Ambient.r *= 0.9f;0 i! g$ A ~! {
pLight->Ambient.g *= 0.9f;8 }2 I' o# @( A" Z" X5 Y
pLight->Ambient.b *= 0.9f;
7 g/ H6 \* c* B5 b#endif //__YENV
4 X) o# W6 M" S; K5 I( ]- H& O
/ p; n1 G$ R4 t0 f memcpy( &m_light, pLight, sizeof( m_light ) );
' ]0 a# e* @4 n6 S
# @% v6 \8 A# |" ? D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
+ V( x. j& U* J2 M D3DXMATRIX matTemp;1 G* I5 b c* f6 p
static const float CONS_VAL = 3.1415926f / 180.f;$ H2 l5 R, q/ y& v" @
- q" G3 E1 M! H
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);7 R+ m* ]1 w4 ^) R
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
7 P5 _$ E+ Z- A8 K. V9 b pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 7 x2 K0 E6 u: \7 L$ F; n8 d
pLight->Appear( m_pd3dDevice, TRUE );7 z. g- f7 j# l2 d7 {% D% y* u
) i- L8 ^! M# f2 o# N) o0 r // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);+ h: X- i6 v P& l* C6 S1 e
// D3DXVec3Normalize(&(vecSun),&(vecSun));( I2 R x) O' i0 w
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
. d; y. \- V0 k" S# ~. t! r$ }- o7 w7 t4 v; q' ]. Q2 @' ^
DWORD dwR, dwG, dwB;
! Y" G. S' c% x( r$ t) |- { dwR = (DWORD)( pLight->Ambient.r * 255 );! B$ w- S) d9 A; L% W8 K" F7 Y# p
dwG = (DWORD)( pLight->Ambient.g * 255 );
+ Y1 t" | C& x1 V/ K dwB = (DWORD)( pLight->Ambient.b * 255 );7 O% L* }2 k, L1 H" N
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); - o" G$ a) }" `( ^9 _
}
1 o. r" v* ~$ {6 E g }* S) _* Q" K. b9 H; ]
% l! Y9 M- i$ u
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
( m# s/ k6 _& m) [% o9 H 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) );
; y9 D( O; c+ a0 [: h3 N) l# q ::SetLight( bLight ); a; i5 y0 N* w& `2 d6 h
) p3 O) F$ D/ ?8 d% Y; W
// ±ao? ?D?í???ó á¤à?
: _3 p" v* G' U* A m_pd3dDevice->SetMaterial( &m_baseMaterial );
, t& h# m' U' [8 F" e& v- H( E7 ~
% @; \: z" f6 O9 ^% U#endif // not WORLDSERVER: l5 Q- r% B# @/ D6 H! h
}/ t- N; S- t; i3 a. L
并更换# h9 N3 L ?; ^! [
Code:
2 r. h* _0 P; ~* V% {1 b- V& q__FLYFF_INITPAGE_EXT- M/ h+ e+ x: J; _, I
定义
; ~' E- c v3 ?1 H
3 p" a( J" S, ?3 S! C1 O
7 R) o* B& K) Q" E7 f
: G, y% _/ e7 V! f
4 @& J6 p, |4 R0 g现在终于删除我的狗屁加速...
, t8 ?# ?4 \6 `* N e0 ?( g$ y: |$ j0 f+ g( n1 R
7 ?2 _7 S( X2 d
/ {" H6 |7 g; s
|
|