|
|
食品车:
4 ?1 y8 ?% m$ y* V ~; a& ~尾翼:
( Q) q6 ~$ x# Q% ]8 O4 T1 g/ [0 R# ~% B& w) O
代码:4 |8 X) n; m! \* X: p7 M9 h7 J
CWndAutoFood::CWndAutoFood()
/ J0 g; M& N% t2 C$ N: w{
5 e3 W+ D/ a/ t/ [: p/ i. F( M m_pItemElem = NULL;$ a0 Z5 s1 j6 G* ~) V
m_pTexture = NULL;
/ B+ Q1 u2 Q! { bStart = FALSE;2 Z$ S! `. A1 u5 ]
}" M* f9 v5 o6 g, }: Q
5 t7 B) S# o0 F) R# PCWndAutoFood::~CWndAutoFood()" N5 ]' G5 a8 E! v4 v$ L: v0 v2 T
{- \* z+ B+ ?4 L5 [) y0 b/ Y
AfxMessageBox( "AutoFood ist gestorben " );
' x2 h' P$ X6 p1 C}
- E4 F0 T7 H* y+ y& `6 yBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
. F4 v1 S# Z% K! \0 E# [$ t* c$ n{
+ s% ?. a$ M* t return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );: c( W6 N* \" ?: ^: X
}9 y9 R& ^; }8 r* Z7 V& D* F
6 n; H0 M2 r* \1 U# y0 R! M2 ?BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )- C2 X9 [7 s8 G+ y# N6 @' G
{
5 h: _* Q2 A4 K- H- C LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
' x) S: h" h {; D CRect rect = pWndCtrl->rect;
6 P! H' A% p; Z' b' G% F& f if( rect && rect.PtInRect( point ) )$ A; d( s& |7 X1 O0 `! X: F
{* L. B: ]0 |- ^! F2 H
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
$ M. @0 ]( k! n$ m4 b if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
! ]2 p( [* D0 r {
- u H; [3 e0 x0 _9 s1 N if( m_pItemElem ): p& \5 n0 W/ o! N
{
. u, {! m1 Q% d( F2 p4 d7 T5 E3 z m_pItemElem = NULL;$ e- z, p, R' e
}; ^ q1 o: g& H; V1 `+ N# n
m_pItemElem = pItemElem;
1 d$ `9 W: x7 }4 D m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
( a- B8 H3 g; c0 E }else{
+ z; p' C6 m" Z! I SetForbid( TRUE );
2 ], n3 Z( w3 i. R0 F }6 I% ?: ~2 h0 |
}else{
! h2 W& u5 m) }( W% k, D! A SetForbid( TRUE );, @* U/ t5 R" M0 G* E
}
) l2 E( j5 j2 K2 V* X5 r return TRUE;- Z7 T- _5 P% H) M% M
}6 n& U. {3 b/ f" `7 L2 |
. }6 j0 Q- K; K6 z" K3 y( h/ YBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
5 Y2 t2 a- Y1 }& w( W) {! I& q1 z{
; D0 r0 W% X6 e0 E4 _; Q switch( nID )
' @8 L) k* _/ b2 E5 S7 C+ D" O {: ^3 x7 V$ w4 ~; v
case WIDC_BUTTON3:
, V0 J: i5 V$ H# p8 ? {
( b* Q* T: o" e bStart = TRUE;8 y2 G- W z5 X n" E
break;
( _& M# S. }; C' f7 J# ?' } }
, A8 L; H1 Z6 F6 W; a; m2 e case WIDC_BUTTON4:8 \4 F. f3 b2 u
{/ \, J1 c$ g( o, n: w& U3 {8 E
bStart = FALSE;
. d0 M* n% M% J! v% T4 Y! y0 C break;
% O/ h q# t* q& V; q+ j: {% I' t }
" G: @& d8 }1 x# M8 M }
( v( k" `/ \) l; |$ X5 L8 b return CWndNeuz::OnChildNotify( message, nID, pLResult ); g7 N2 ]8 X8 P" C/ \4 X
}
4 A' A5 X: P& k6 vvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )- M$ X* L# `6 G& p( l
{2 }7 `; A& J% J- B0 u
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
7 c' u% U; J' F. b if( bStart || !m_pItemElem )
0 J' S. b: v( x& | {
9 e5 q" [$ o+ A7 L4 D# ^! v pBtn->EnableWindow( FALSE );& D8 w6 i/ t# I/ B* r" j1 _. J1 k
}else% N0 e9 x, }3 c7 t' f8 D( M
pBtn->EnableWindow( TRUE );
6 j. |! v ]' q* j {3 m. b if( m_pTexture )
+ y: X5 L3 C! o {
k$ h( V- }0 i. c LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );: a; O9 Y3 L* m! Q% x
if( wndCtrl && wndCtrl->rect ), J0 r8 v2 A: O. R
{
' a: Y% E; y( ~/ T% L! E8 M m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );0 E1 D9 C% T8 }: ~1 q: o
}0 `1 q7 m( m% j9 `$ F+ J$ G
}
7 Q: W6 f/ \0 B. [}" L5 g5 _4 I1 X# U2 [
* u, `' o8 w+ r: o3 M# }3 iBOOL CWndAutoFood: rocess()
" H4 }' w( @& V' [7 [9 P{
, c5 P% |! z, n! q1 h6 m& k if( bStart )# H# h+ s5 s5 N; i3 `( _0 j6 w
{* z! z% x+ a: Y, G* `' W" d& x5 {6 k
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )8 n' h. @. u+ X% c/ h
{8 A/ x p. F7 U
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )( P* e6 ^2 h. `4 d, k
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
# p1 I8 S# m/ ]2 e& d }else{) N5 K5 I% j& U' P
bStart = FALSE;
- V% a* Y4 _% q- k. S m_pItemElem = NULL;& H' c6 I' c& s! }5 V
}
! F8 f* D% V6 G/ c% }& |2 V2 Z% ] }
& R7 M3 a/ x- }, i, A return TRUE;* l! v+ q5 W" L, a5 F A: e& L9 Q
}
9 s3 B; s4 k/ M7 f
9 j# n& F7 ]1 j. N L登录视频废话:
: p" O6 |0 a/ a尾翼:/ M2 d( t7 f7 ^3 ~3 _
! L) A* L% A1 I' W: R
代码:* ~. |! X& j/ z6 G3 E# v0 h( [
" v% l0 Z0 x$ ~# B% J9 I5 \
void CWorld::SetLight( BOOL bLight )& s j2 @: x% p; u' ^3 G7 a) ]
durch9 n4 W) _9 z; `6 [! R
Code:
% _/ T7 j5 d1 n3 c, qvoid CWorld::SetLight( BOOL bLight ): ?" R7 ]* z5 C$ _0 `4 Y! `7 [
{" @2 C+ D. `. b5 [5 M# h! T3 z5 {
//ACE("SetLight %d \n", bLight);
# X, `/ X* p/ g- Y4 V0 @
4 o- K- S/ w; |* i0 H0 k% e#ifndef __WORLDSERVER 4 N. |0 D0 ~: H! |) |7 M5 Q
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);4 R' X* z' G4 w1 e; ~% R
CLight* pLight = NULL;- U- z* T5 A" l( u" f
F& Y/ U6 G0 R; f; q. m* M# O F
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
9 W; p) N! N" j! P+ g% ?! v3 f7 H8 v3 Z- y% B9 r5 `) w; ]: e
pLight = GetLight( "direction" );% p8 j+ l, `# H& X
4 O4 t4 b+ N; A: N h#if __VER >= 15 // __BS_CHANGING_ENVIR
( D- x; x! o- k; W3 z1 t4 t if( g_pPlayer ){% c; p. `6 S; }' x* {2 v6 p
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
3 k5 K8 @) a. w+ d if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !! X4 D# q# ?5 L8 z3 E+ |& d
{
" C- ]; d1 b R" ^ if( pLight )
, M/ v2 x4 E$ Y {! v$ O _% q/ l
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];( V" U/ c* O% ~0 @, a" ?
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
0 V- U5 u! t; Z6 Q: y6 D pLight->Ambient.b = pInfo->_fAmbient[ 2 ];: U( B( g4 z ^" V- g
% f5 o) q- {: ~4 u& Q, q pLight->Specular.r = 2.0f;; ^# e, I, [7 @; |# D! v6 z
pLight->Specular.g = 2.0f; W& B+ t, ]0 C6 s. `
pLight->Specular.b = 2.0f;/ `9 j, o$ `% q/ q6 G) j. d1 U
# n+ K; D6 l+ j6 K$ T7 `8 P9 X- L1 ~5 ~
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];3 S8 Z6 C4 x( h! f0 Z1 |
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! A, Z* S. Z# H' z
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];) c& L ]" z! A8 t, z
9 J5 b; h3 R- ~$ p9 `- D
HookUpdateLight( pLight ); + w! T6 H% {2 R0 \; Q" S& S# \- o: n
" K# \+ f, E7 J8 u- s* t
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( A/ h8 `/ y+ I' F6 O! z
% e! A, G( X6 K" b$ | pLight->Diffuse.r *= 1.2f;
. X) x1 M5 w' e: y( y3 X pLight->Diffuse.g *= 1.2f;. q' y2 f& u0 E+ M+ X
pLight->Diffuse.b *= 1.2f;
# c/ z* M+ j( c$ T X* G& t
, A- T( ?$ ~! G" Z" y1 t: w pLight->Ambient.r *= 0.8f;
$ v0 q9 P# d X4 q7 A5 X" O pLight->Ambient.g *= 0.8f;$ p+ t2 b8 _7 `- A$ n
pLight->Ambient.b *= 0.8f;
+ r/ ?; x3 N7 C# E. E+ z4 q r+ H
4 Y7 P; h7 J( I9 x. q0 P6 Q6 [ E" E memcpy( &m_light, pLight, sizeof( m_light ) );3 u" b5 r) w$ f4 C4 H9 M
: Z6 W3 P6 H9 j D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);0 x* s3 W" }' h z+ B" f5 Z2 Y/ ^
D3DXVec3Normalize(&(vecSun),&(vecSun));
1 D/ l8 K0 q" a1 c4 _ pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : b( D/ f7 _% y' I" F( c2 m
pLight->Appear( m_pd3dDevice, TRUE );3 U$ k( D! T N) l
3 s, a* w( e ?& X
DWORD dwR, dwG, dwB;1 t" u7 J; ^5 x
dwR = (DWORD)( pLight->Ambient.r * 255 );, l% M6 o% x: ^! c5 B# o
dwG = (DWORD)( pLight->Ambient.g * 255 );
M3 ]% D- }- i& z; W( X dwB = (DWORD)( pLight->Ambient.b * 255 );
1 H, C" Q% R; K7 i; g9 R; n dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );9 q: i1 z% b* n8 P( N
}/ \+ p2 T% F( D+ s; c1 ^9 f
}7 r' J4 a' M9 W3 m1 ~9 c
}3 n/ M0 D( L: J) H8 o1 Z3 L7 o
else
4 s$ f( f& n' q, ]3 g#endif . r6 O# S8 j4 G" a4 O0 r8 x" c- R1 e
' ~6 D5 `2 G$ G$ C7 `7 f) a" u
if( m_bIsIndoor )
8 i7 t4 q. K8 I& i- g; f1 n: B+ | {
2 ]2 O3 J8 \' f" R6 I9 S if( pLight )
% i" L% U9 J. \% J+ x/ _ { 7 L* ^ U( w" L1 Z" w/ g! V! i% z' i
// à??μ oˉè*
6 y6 k! n l5 z' `$ d& p/ p pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;0 B8 o T; m8 K B( B7 [" R! h
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;7 e7 h9 }( ~2 F1 o$ a3 G4 U% x, X
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;# l/ F9 Y; q$ v" B% a( C
; i8 Z8 d$ q& M0 h c7 T1 i // oˉè* ??à? ( I- |6 q: B$ }5 A4 r' z5 m
pLight->Specular.r = 1.0f;
9 W" w1 v; ]5 E' N* N pLight->Specular.g = 1.0f;
( `5 k# g4 ]" ~4 Z$ t pLight->Specular.b = 1.0f;
, E! Q, J. i# x& j$ | {0 a // àü?? oˉè*
- @2 i$ X- I O1 ^7 E# F# v pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;7 G# ]+ v( ^/ O/ x; |# j5 S) |7 A
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;, M: {) V& z) H
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
& w: W$ I" g; }+ A4 @- o7 _3 m5 i8 e! [: i5 U: ~
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; P9 w9 _+ y: L
{
1 }6 l2 ~8 d1 y& \2 E# J pLight->Diffuse.r *= 0.6f;
% Q$ y+ A+ l5 _( D+ A pLight->Diffuse.g *= 0.6f;, q1 S# U1 F4 m# u, }
pLight->Diffuse.b *= 0.6f;1 j/ M* T8 x2 L5 Y, O2 L7 y7 v I
pLight->Ambient.r *= 0.7f;! c% N2 _# Z) T+ T! e! h- B* r
pLight->Ambient.g *= 0.7f;3 x- P( R" f0 U$ |1 b+ D. |
pLight->Ambient.b *= 0.7f;
' `& ~3 Y) J0 |/ }7 t }
* }& U8 J( g; ?+ c9 @( V# k% O" ^4 w( @0 O
#if __VER >= 15 // __BS_CHANGING_ENVIR" u- j8 T0 I% f9 {$ Z) c( R
if( g_pPlayer )% `9 A) f# I; i; ?! E8 `
HookUpdateLight( pLight );! x+ m" K, }: i. l4 j, N9 r# ^2 t
#endif6 d+ x3 |2 D8 |' h+ B
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 G; L+ e0 Z- P# s
: d9 E `. r) n# w
pLight->Diffuse.r += 0.1f;4 l( {6 y( V6 z( K8 V4 p
pLight->Diffuse.g += 0.1f; m. y4 Y& W) A. L
pLight->Diffuse.b += 0.1f;- L L. b% V( [6 k! |; L6 a
// oˉè* ??à?
1 r) j$ A( O5 E" _) ] pLight->Specular.r = 2.0f;
' _5 @0 K% X( f% V pLight->Specular.g = 2.0f;
9 l" r1 V5 `# P `/ L, c( f" R pLight->Specular.b = 2.0f;
* ~* w/ M) v% [. F; Z // á?oˉ
, @; U! S$ A7 E0 n e pLight->Ambient.r *= 0.9f;, e' L! V# ?4 b4 R0 b+ g
pLight->Ambient.g *= 0.9f;
- ?2 r( y) t2 s pLight->Ambient.b *= 0.9f;
* L5 q/ }! o5 v* N' A1 m O& [
& l( B, T6 Z' H4 z8 a memcpy( &m_light, pLight, sizeof( m_light ) );
& W4 W4 N& } X3 r8 D
. N9 _3 S: a* v% s" {/ } pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
% m' m' o0 [( \' M8 b* @5 ^ pLight->Appear( m_pd3dDevice, TRUE );
' X; y$ s8 _' I0 F1 H# Z- Z6 E 8 S# V2 [# ?: G; e% X, R t
DWORD dwR, dwG, dwB;7 G5 v% D# h$ c3 T% M4 ~4 D+ ~
dwR = (DWORD)( pLight->Ambient.r * 255 );. x6 w9 B2 U$ S6 Z3 j6 U
dwG = (DWORD)( pLight->Ambient.g * 255 );; I& s! p M8 a' U" ?7 Q( W) X
dwB = (DWORD)( pLight->Ambient.b * 255 );# p( e7 _6 H7 n. t
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
7 x A8 B) f% N. D! p( g, s }
9 f( X) _- B: r$ e }6 W9 @/ {* p- h/ E. q& u
else* ?3 b! I9 N4 I# |
{1 f) z- ]7 }( F
if( pLight )
* A. F* ]. S' P# p0 Q% Z {0 e# D6 r2 ?, d) K6 I
& V% H: T' p& l, X6 q' M
int nHour = 8, nMin = 0;8 w. i% P: o" ~- r/ Y9 X! Q
#ifdef __CLIENT
( s; ]# g' }- M3 L // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
2 w; c% V3 P q9 c$ X nHour = g_GameTimer.m_nHour;' O0 o; o/ z; y
nMin = g_GameTimer.m_nMin ;
4 m, v) G/ X% ]# v #else
, S: G, Q* I2 I5 A* K# L // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.: v. r( i7 ~% k9 M
if( m_nLightType == 1 )
( d6 U( U2 C9 `! Y5 t nHour = m_nLightHour;, `. B" _5 I$ e' g5 B) V. X
#endif& s! g) {( X- p. D6 T( j5 [
nHour--;2 z( N4 T W7 W$ J$ V4 x
if( nHour < 0 ) nHour = 0;0 M) S7 N, X5 c% L. Y( l
if( nHour > 23 ) nHour = 23;' v. A- p# s+ x
Y7 ~3 h' \' {# P; x) @# O
//if( m_bFixedHour )
3 p' n# z% `9 q& [# I // nHour = m_nFixedHour, nMin = 0;0 X, ?: p8 O( `% \% p8 @: f
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];9 Y5 u: J: @: M' A
LIGHTCOLOR lightColor = m_k24Light[ nHour ];3 u$ ~+ @2 s9 @. J% B2 y
2 {* C$ Q$ e& \2 ^6 }& _ //m_lightColor = lightColorPrv;
Z8 w& f8 e6 W, V* y! Z4 m lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;" L/ l1 v; [, J0 O+ d1 c
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;# f; F4 a o2 M3 }3 u- e6 K
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;. N" L7 @# j0 P" u y1 z; L
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
: V' N1 x$ d4 h/ n# E lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;7 o+ c8 ^" A. r$ f- {1 W& I
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
5 ?7 P2 B# u) e4 J$ H // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
" g$ ^/ t% o& N5 ^3 Y1 b7 J3 k v2 {" }7 C
// à??μ oˉè*
* m' O; `+ W; n5 }" I& v pLight->Diffuse.r = lightColorPrv.r1;
8 J; P2 O. N! B" M0 J( p! O% b5 }$ s% u pLight->Diffuse.g = lightColorPrv.g1;, `8 `( Y3 c* Z% }& d k8 Q6 ^( c2 Q
pLight->Diffuse.b = lightColorPrv.b1;! M9 p- o* P+ @( r+ @0 r* }
// oˉè* ??à?
8 H6 O; W& ?. S a0 @ pLight->Specular.r = 1.0f;8 s. ?$ F0 x; |; k# l8 I1 Z, I
pLight->Specular.g = 1.0f;
, A: _& B' P# {1 h pLight->Specular.b = 1.0f;
+ l4 i) E7 {- L Z9 ] // àü?? oˉè*
& E6 x8 z6 J- w; T. C; M pLight->Ambient.r = lightColorPrv.r2;, r7 I- k0 B7 B+ b2 a6 P7 P" z
pLight->Ambient.g = lightColorPrv.g2;! X2 _9 x& t! k. p! \
pLight->Ambient.b = lightColorPrv.b2;
- F. V: |- V: {: y% g. M9 g9 R" ?) c T/ `% S7 _9 @* E5 z; |
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
7 C3 @& X# r. R7 U" C* h. Z {
% N6 @1 u* ?& A. O+ T4 r7 A pLight->Diffuse.r *= 0.6f;
+ f* J# x+ d" X6 d' s4 J pLight->Diffuse.g *= 0.6f;
9 q7 M. ^, D# d- v/ @% i pLight->Diffuse.b *= 0.6f;1 Y# t7 U8 }! u, Z& E, y% z& w
pLight->Ambient.r *= 0.7f;: B8 y" [. C# {
pLight->Ambient.g *= 0.7f;
/ p/ b8 P) _& U1 u$ m2 v, t pLight->Ambient.b *= 0.7f;
, t. g) ^* f( e6 k8 O }
/ s; J! q+ b4 o2 m9 Z4 P
# R0 r4 h$ a6 T+ c, E4 w#if __VER >= 15 // __BS_CHANGING_ENVIR
/ q/ t5 ]# j- I3 t: [- y if( g_pPlayer )
& Z9 a: B% M) y% K* f* N, Q HookUpdateLight( pLight ); 5 u# s7 I9 ~' w3 T$ I
#endif/ y3 V2 y$ X# u9 T
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );# g7 ?) s% j1 h. `+ s
" E9 {) s8 Q( t1 A3 p2 `8 {" n+ g#ifdef __YENV" ~* I9 C/ @! r* x& O. [
pLight->Diffuse.r *= 1.1f;
2 Y% ^. D' a, l1 R1 C2 I2 Z pLight->Diffuse.g *= 1.1f;& O& l; ?% A% C. ^% n
pLight->Diffuse.b *= 1.1f;, c! l8 |5 Q3 t2 _ V7 x6 [
// oˉè* ??à?
! s8 G. V( p7 M- b, X( s pLight->Specular.r = 2.0f;4 [( N+ v. O. d/ `
pLight->Specular.g = 2.0f;! s4 ?" Q% U( T6 f5 a$ F
pLight->Specular.b = 2.0f;( k4 j, Z; d7 h J! H m$ Q
// á?oˉ
9 k$ w6 K& O/ P; | pLight->Ambient.r *= 1.0f;
6 _$ o, \+ A8 P6 i" z: r pLight->Ambient.g *= 1.0f;* v* \" i: {8 ^0 ?! m
pLight->Ambient.b *= 1.0f;
; l! j( w. I# O7 c( G9 B#else //__YENV( P U: e- W' Y& \9 q/ U
pLight->Diffuse.r *= 1.1f;
; f4 @* b( r Y/ |% B, I pLight->Diffuse.g *= 1.1f;: e ]$ r! l. d$ F
pLight->Diffuse.b *= 1.1f;
& e1 C$ v+ t! C9 i& P8 T: g // oˉè* ??à?
; C6 z! _) e' _( _7 @, |$ C pLight->Specular.r = 2.0f;
/ Y. ]* Y1 r0 \2 { pLight->Specular.g = 2.0f;3 G4 ~7 o: d( O( B! C, J% P
pLight->Specular.b = 2.0f;
6 P. X8 g+ L# M8 C7 J8 d& ?3 } // á?oˉ
% N% S) u, `2 \3 U! F pLight->Ambient.r *= 0.9f;
# X; Y0 L$ R, s5 |+ E% c pLight->Ambient.g *= 0.9f;
; ^" q, g/ ]( A9 P. L pLight->Ambient.b *= 0.9f;
* [' b+ i; o1 {* E8 H. ?#endif //__YENV
6 `3 L% ?6 y+ C e* s" G7 Z
2 E% n3 q$ L3 x% N. S, Q2 a memcpy( &m_light, pLight, sizeof( m_light ) );2 w" W9 y3 u+ z' n }4 c, Z: @
; O% z) Y+ k6 Z5 T& L" C D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);5 q4 J9 J2 l5 d' m( h
D3DXMATRIX matTemp;
# Q; _% @7 `; | static const float CONS_VAL = 3.1415926f / 180.f;
6 M r+ L1 Z/ q: u5 ], F( u
" ]' H$ ] J/ S' p _+ \" u D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);0 p: c. `, b) h- ?' K$ ?3 r3 r
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
1 Z+ x [( Y D$ f7 U7 H c pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); 8 i8 ], }, O F% Q) d3 {
pLight->Appear( m_pd3dDevice, TRUE );7 W0 C1 T7 y! i- Y9 C8 b
4 z' v* V _1 l# A // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 W$ Z m+ I& k0 B( C! F+ k
// D3DXVec3Normalize(&(vecSun),&(vecSun));
# E/ w4 j- A% |5 m$ z6 J+ v" T3 A // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- z/ G7 b l" }: N4 A0 u
X& h5 a4 Y# C" W* j& c: s DWORD dwR, dwG, dwB;
% H; w1 J: y& ^4 b9 n) D& |- [0 f dwR = (DWORD)( pLight->Ambient.r * 255 );. V: s6 [4 l. L2 w
dwG = (DWORD)( pLight->Ambient.g * 255 );5 L/ E( `' L7 }) F
dwB = (DWORD)( pLight->Ambient.b * 255 );! f; @% W; W# h* D% }2 l, W
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
! n8 m5 e( }2 _* y+ `6 w( V, f' a) W }
! k9 S2 p' `# d! h# z7 P2 N. _ }3 d$ L `% D8 j$ Q7 Q
) i( T' M" v N8 P7 m6 T m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
7 i. o% @2 R$ N 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) );4 H3 Z. M$ S$ F" P+ M* |
::SetLight( bLight );. G" u$ ^3 q# i2 x5 I, g, }
3 c, W! j$ i l/ ]2 ? // ±ao? ?D?í???ó á¤à? ' G7 {5 M9 \+ o/ j3 b
m_pd3dDevice->SetMaterial( &m_baseMaterial );
! q5 H* ]; j/ _& z 4 ^; F* J8 M0 C: E% u j T; ^" W
#endif // not WORLDSERVER
" C3 T: e* ~: p) A9 p; z}, G1 o7 G1 J+ ~9 V+ ]$ e2 e
并更换5 P. E% {% S: e
Code:
7 g! L3 x% v$ m7 e" w0 R/ o3 a3 f__FLYFF_INITPAGE_EXT' a: N1 R" t/ Q$ |: u; m' z% }
定义
. T" X7 ]2 Z: w. j' |5 }/ k2 a
0 N2 l+ s Y; \" c, E/ t
7 N" r0 f) y) [8 O7 ~* n( T ]5 g7 `4 ^& Z/ _* {: W
现在终于删除我的狗屁加速...
6 @0 p3 t0 W" Z4 Q. }7 M1 h7 [5 ^; j: a9 t- E" T( r
1 D0 a, _/ E6 y6 `- A- G$ z" N# e. @+ V1 ]% R% Y
|
|