|
|
食品车:( ^8 B' ~0 a4 x3 L# N' b
尾翼:5 A4 {; r. j! S- b: m9 O% M- e6 _
0 b+ u; y; @7 o! Z3 N h! @; H( J k代码:
8 v% J* U( P) t( x. i9 n# eCWndAutoFood::CWndAutoFood()
/ v! s2 n4 ]0 u$ O4 S{6 |% e d1 Z$ M) p- k
m_pItemElem = NULL;
/ _1 l9 ]* H/ I; [& ] m_pTexture = NULL;: t1 x- u( B4 b
bStart = FALSE;
% @& \8 Z1 }1 J( c' G}2 i) v$ V' j& [2 o
@2 e* h! o5 {8 b2 z+ g. p- f( R
CWndAutoFood::~CWndAutoFood()/ w6 ]$ I/ e5 y U2 S
{9 s' M$ W( t* H0 m
AfxMessageBox( "AutoFood ist gestorben " );
" M7 ~$ e: G/ Z! f, N: B}: \7 @% f$ k& ?2 ]6 l. R
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ) e/ Q, N- p9 j3 k, @7 h6 _7 z4 e
{
0 [- @2 ?5 P! v2 i+ t1 _1 V4 S return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );) G, O, `4 y R$ _, v9 f
}
( M; m3 |; Q, g, e: s
9 u+ ]9 B) @" |! n' iBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )5 X4 }) H! C/ C* J% S
{2 {$ Y7 [# a$ x8 ]0 Z9 n$ M# Z
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
9 p* ?$ o/ G8 F1 a' \* \$ ` CRect rect = pWndCtrl->rect;# r7 j7 ? F* m' S8 y2 ?! y. x
if( rect && rect.PtInRect( point ) )4 a6 t+ F# R6 ^" R
{
, }# y7 b, a- h2 a, X! G4 Q1 \ CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );3 N- w# h/ h9 L% x6 i7 w0 Y
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )- Z2 ^$ U% }2 c
{( l3 S& J* h9 x: C% V" E+ K
if( m_pItemElem )8 r6 V. [. E3 k5 _+ ]$ A. u5 H
{
. p; |0 \! q- d/ K m_pItemElem = NULL;) o9 |5 E. t7 U y; ~
}% C9 |# V; i: @$ k' Q1 U
m_pItemElem = pItemElem;
2 U, u0 B: H" L: w4 L4 n' I! I m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
( p' i, N+ _( Y* w3 D; c- h. O$ R9 K' U }else{
0 l9 Q) \# s( [; q& m6 \ SetForbid( TRUE );
; B0 g1 _, X X/ X }' s# ~/ L# Q5 `) p& O% R& S5 Y& ~
}else{
1 ]7 n; a: C; ? SetForbid( TRUE );
( z2 `" M! T0 I! P: }5 s+ H }% H; o, n( k" ]6 y5 W: [- F+ Y
return TRUE;0 p2 }! F" ^& m" W1 W: O# \
}7 ~% g4 j; D; v8 L0 G5 s; L' k
* W: n, C6 i" P" u; Q: {6 }
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
0 i. G# L! ^4 ~6 J& d% f5 n2 @! f{6 i/ Y6 x' t' U T8 c+ c
switch( nID ) ^3 S" L4 ?; M# a
{; r2 p6 g: W: \' ?1 n
case WIDC_BUTTON3:* t: @* L. A3 f% O d* {5 K
{
" L3 W5 R! z1 h7 `6 u8 [2 p5 d' Z bStart = TRUE; G5 \7 Q i6 h# K4 P1 U3 a
break;
0 _- M0 H& h* r: ~' g+ p }
! D6 M8 l7 U# h" e$ T4 U% A# s% ^* \ case WIDC_BUTTON4:
0 E# q- b# ~# G" v5 q {
+ h: i. G: X% \& g% `' ~! A, p bStart = FALSE;" S/ |" a; y$ i+ s/ }$ E- K4 T
break;
; d3 t! Q$ c/ Q+ \9 K) h0 t }
& W5 q( L% Y3 g0 U# P }
' m2 @/ o" o& j% n2 T, Z return CWndNeuz::OnChildNotify( message, nID, pLResult );$ f7 E5 V+ @5 @# g% r! B$ q0 M9 g$ F
}
9 H+ D, \& h; y) z" D b. U4 ovoid CWndAutoFood::OnDraw( C2DRender* p2DRender )
& u* v: i9 l1 F0 b/ V{
: t m6 {8 s% p CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );5 Y% P% }6 A" N+ l" [
if( bStart || !m_pItemElem )1 { k2 l" s- k Z: N7 H! q
{ ]3 ~" {" Q2 f4 T0 h Y9 c% s
pBtn->EnableWindow( FALSE );
( N7 I9 _$ R5 h6 V y. P# [$ H$ K }else5 }$ F/ u: \6 o1 e
pBtn->EnableWindow( TRUE );# T& U! @' y1 V5 U6 f
if( m_pTexture )
) D% D- w1 v1 E/ `1 V5 F; l {
; \) L) |. _( Q2 D: i LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
7 l. }* A& k: d* W if( wndCtrl && wndCtrl->rect )* j5 ?* @3 r( x& w6 W. c5 E
{" V( \2 Y5 ~8 V! C
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );7 b$ `% s* z5 x6 X( e% ~8 P
}
+ v- {( W3 |8 I9 F& ^ }
7 X; k8 c% B2 c J& g}! F' u% z: N( }
% W+ f z# a% U! v, i
BOOL CWndAutoFood: rocess()
) b, ?) I$ n' N) x& P{
7 ^ M& D* X4 O0 K0 a; |/ a4 i if( bStart )1 u; U5 g9 I0 U: W/ [
{
7 x3 j8 m6 M1 }3 w- v if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )5 e' }/ q6 V( X' n, W
{
- C7 ]: V! ~* }( S if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() ); j+ H2 G+ `+ Z4 d* f& ^; E
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );3 u v1 f& q# @ o2 D$ X4 _
}else{
, n9 z. J" r4 k; M, r6 \2 |1 N bStart = FALSE;
5 p; f: |( s. n& i+ \* v4 A& n m_pItemElem = NULL;
' l# X$ r* |0 s: H8 v5 z* P }
" R6 X, l- X# F+ l" F" H$ i }
6 N; T# o u( l9 w+ J) c return TRUE;( a5 b; K4 }; r) u) R, W3 u
}
& L3 s& |. H2 ^1 Z4 h) y, g
2 D3 R) S( U7 B7 t! x% C登录视频废话:5 y7 Z/ o# {: N% q/ d# A8 O
尾翼:
7 L; e6 \3 ~* p2 O; V
) B1 G5 ]9 }/ u2 o L! M2 A代码:- }) W" z8 n0 J. M n9 Q2 ?
8 a3 L! H! c4 Q' P! s0 e1 r/ @8 zvoid CWorld::SetLight( BOOL bLight )2 c$ L. Q& M6 Q* y, B- ?
durch- I" H7 E, p1 Z
Code:8 b1 ^5 E) X' ]! p1 U, `; D. t
void CWorld::SetLight( BOOL bLight )
4 A2 G, w0 M7 i8 M+ @% T{; X+ K3 T& X- ]# G
//ACE("SetLight %d \n", bLight);5 L6 n/ q+ a n3 u
* F) T1 |6 Q* U% M/ n8 G#ifndef __WORLDSERVER
. S4 O& G, m3 R+ u+ _8 N1 W/ t DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);4 O' ] a f* R P
CLight* pLight = NULL;2 J% ]% y7 S8 A" W3 Y5 k5 P
! f# Y7 O4 o3 j2 c; p, G D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
3 y0 Q' @$ r) R1 v- Y) e4 k1 E
9 V4 f: U9 D- ~& e. r6 j5 Y pLight = GetLight( "direction" );: _ P6 A _! N/ F; ?: b4 y* O
" ^4 [; E/ @8 z" A! h+ L- u8 I- ^
#if __VER >= 15 // __BS_CHANGING_ENVIR
0 B( `/ I+ |) A$ C- B if( g_pPlayer ){
1 F$ x1 z* S2 l& F1 p ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );/ v% u2 H% @9 q5 P+ }% Q! T" I
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
# t C" m8 B$ ~4 ] {& F5 y9 D/ |# ~4 L% k5 e
if( pLight )! c: B9 k' R# ^/ k& V5 z3 e$ t6 R
{
! t. ?. T0 C0 Q7 V# e& U: F pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
8 K. G0 D$ I/ E$ ?7 _* J. [3 R* o pLight->Ambient.g = pInfo->_fAmbient[ 1 ];8 g! c5 `" f8 @0 F @
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
7 G- x& u# j9 \6 S2 [- b
+ E' t: v3 q5 X. s6 R' V pLight->Specular.r = 2.0f;
' i4 w& ?" C9 A pLight->Specular.g = 2.0f;; K+ ^% o5 E" r) @9 \
pLight->Specular.b = 2.0f;
" @0 _+ o) Q3 c7 `
* n) l$ n' W; W1 R pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
4 `1 d5 w( x5 s- U pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];* J4 _* U* F6 Q1 E+ o7 I% l
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];4 s0 x3 J1 ]% `. }
) y3 V2 F6 o& B# r. q1 o
HookUpdateLight( pLight ); ' `+ R; b# ?) D: }) q# e
2 n# x2 X/ u# m* z memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 a { X4 s ?
: `, x- ]& z- W! q. b pLight->Diffuse.r *= 1.2f;# \4 C# {- s" n7 M6 @
pLight->Diffuse.g *= 1.2f;+ S+ B" t1 Z7 N
pLight->Diffuse.b *= 1.2f; ^; ?9 \& X: C9 V( o
$ O, M! a7 O' ^
pLight->Ambient.r *= 0.8f;9 U% Z, ]! T. T; |
pLight->Ambient.g *= 0.8f;
+ J$ `: @; R, |- B pLight->Ambient.b *= 0.8f;
" w4 k4 N! Q9 q8 e# V - ?5 @! E/ c* `
memcpy( &m_light, pLight, sizeof( m_light ) );: k$ C% b5 t' d6 `" H6 g) Y
6 @- G3 L: v+ y2 i6 D/ O' s" {
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);. p7 I2 i' N& Y- _% G
D3DXVec3Normalize(&(vecSun),&(vecSun));0 |1 Y6 B+ Q6 \3 L
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( p4 a+ y$ U: j8 f pLight->Appear( m_pd3dDevice, TRUE );1 r {6 F" ?; @( S; c
# m% a, V) T! m2 V( n DWORD dwR, dwG, dwB;
^" ?, c' m/ I2 z z% C dwR = (DWORD)( pLight->Ambient.r * 255 );- I1 c# |5 C! L5 X4 a# j2 y: ~
dwG = (DWORD)( pLight->Ambient.g * 255 );, ] F& q; t9 r& R, w
dwB = (DWORD)( pLight->Ambient.b * 255 );
4 v& M6 L& r- t3 y4 U dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
& b( N+ d6 O; a8 D. M9 M }1 I# v( k# ]% b
}
R" V: p$ g) z) L4 C% m }
' g# e e. ^2 s g7 A# g8 Q) r else# @/ ^& n- n6 a# ]& E6 ?& j$ F
#endif
9 Q9 s2 G7 y" y1 [- k' g8 k# k7 n. [9 L$ u4 ]
if( m_bIsIndoor )$ s, r2 n6 M; m" B( R7 u$ K
{
" ^5 Z, f1 g. @( E( a) ^ if( pLight )
9 S6 D# a) A0 O# v+ m$ _/ Y9 n" G {
/ }% B! m: r: h! y# D // à??μ oˉè*
9 ]! _0 ^8 f: J, t0 |8 s- v pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
& P4 O& u; h: M, r pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;- v$ v2 L: T6 j/ X/ X
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;$ ~+ j9 M" _2 n5 B) ?- _. _) N
; Q/ r6 ]0 `/ `" G1 F
// oˉè* ??à?
! L- d( R/ K+ x7 H pLight->Specular.r = 1.0f;/ R$ `8 ^6 l; M
pLight->Specular.g = 1.0f;- T/ P) g( }8 H$ l/ F4 A) v* k, y
pLight->Specular.b = 1.0f;
6 z% }( C6 L/ U7 ^% r' {! h // àü?? oˉè*
9 Z" c7 g5 j7 j. o3 m pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;/ t. v) b" K( j# c9 S& P! w4 x! X
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;: T+ J. c) o9 ?. k7 X9 X
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;9 q8 L' W. `+ f5 I R
0 t4 q ^9 ?) r2 ] if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
# H1 d! m) M: h) M+ u8 y1 u6 X {
; r8 I0 o) F2 H# m pLight->Diffuse.r *= 0.6f;7 p- w6 N; O' G" r4 P! r
pLight->Diffuse.g *= 0.6f;. A( }8 Q; g. v% F. H, ]2 O
pLight->Diffuse.b *= 0.6f;* j3 C8 N- O, @5 m; J
pLight->Ambient.r *= 0.7f;
1 |$ ]9 b" v2 ]; _# b pLight->Ambient.g *= 0.7f;
& v$ j" @3 @8 }6 l x: R pLight->Ambient.b *= 0.7f;
" A3 @7 [$ e/ |' i }% D# R6 g; N9 e; C4 N" e
8 P, d" R0 }! P6 M- _- i#if __VER >= 15 // __BS_CHANGING_ENVIR
* K3 H: ~7 b$ n4 T if( g_pPlayer )
( X' U- g1 ~/ r& \8 l V! u" G/ Q HookUpdateLight( pLight );
' p1 `) c, y% k O#endif
4 U$ e0 z! B) {" K! a- h3 q! ~ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );7 h& }1 I' Z& J$ K7 O
; J" [+ q6 ?8 M* |! q. ?
pLight->Diffuse.r += 0.1f;
4 B J0 H0 m; N8 P" [4 r pLight->Diffuse.g += 0.1f;, v+ M: ]# x* J: f6 n. I$ Q
pLight->Diffuse.b += 0.1f;
" z# n; C o0 i- q // oˉè* ??à? ; J9 f2 Z1 V9 j* Q
pLight->Specular.r = 2.0f;7 z. d8 p/ _8 `: I$ }
pLight->Specular.g = 2.0f;* I" S; n& d/ ]! w6 Y
pLight->Specular.b = 2.0f;
) E- v8 a. V$ r/ b8 X$ j // á?oˉ
* u' ~) Z$ F* Z( y pLight->Ambient.r *= 0.9f;
( g2 y4 j+ K+ W pLight->Ambient.g *= 0.9f;' C; S- L6 U6 M! ]4 H
pLight->Ambient.b *= 0.9f;
9 D) @* v2 {# ^: D
8 }5 K7 x! a8 C memcpy( &m_light, pLight, sizeof( m_light ) );
& c K* h$ i9 S' B1 Q$ a
2 x2 I! c# x" R) \6 `) s pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );2 I1 h2 M' V2 d5 n" C
pLight->Appear( m_pd3dDevice, TRUE );
2 I+ I+ I' d! ]3 d! y $ i3 A; L2 m; F3 {" @
DWORD dwR, dwG, dwB;
& B5 V( N/ ]& G* c- p& w2 d dwR = (DWORD)( pLight->Ambient.r * 255 );
' `6 ~; r) @3 {+ c dwG = (DWORD)( pLight->Ambient.g * 255 );8 a& F' S, n P
dwB = (DWORD)( pLight->Ambient.b * 255 );
; z" J5 g% k0 b& @( Y- f* a$ ` dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
$ N* h: d0 e8 B3 T m }
5 @5 G' \0 Q7 u1 O" _ }! a: l+ N: e g/ o
else
6 ?9 l! u2 d Z5 Z0 g3 O/ K {
' B" b7 n* }/ m; U4 o if( pLight )8 z' `0 i1 ?) y- C
{
& n) @0 D, n: D) U6 Z) ] 6 y7 K4 q1 `' m& c" L3 f) i }
int nHour = 8, nMin = 0;3 q, Y5 M: e8 Q6 b8 ~3 E8 }
#ifdef __CLIENT+ R+ a9 q8 R) Y' a7 W
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. 4 \' P: Q' s1 H1 o5 y7 U" d! q
nHour = g_GameTimer.m_nHour;. k" ?2 H( G& G
nMin = g_GameTimer.m_nMin ;
/ m; @9 D8 I* _6 o2 ^- h* l #else! z- m3 T4 `, K, r. G) H
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
0 t+ d- [/ O9 R5 U: B if( m_nLightType == 1 )
% {0 Z S8 k8 X# |1 _ nHour = m_nLightHour;6 I& A% T+ N5 F. e( B
#endif
8 T+ ~3 E. ~9 S4 u m6 z3 V% @ nHour--;6 K/ G0 q0 g8 @; K& ^' z, b
if( nHour < 0 ) nHour = 0;1 ~' [1 C7 e& k, j3 Z& P+ u( E9 G
if( nHour > 23 ) nHour = 23;) |- [: F8 ~/ [& j
4 F2 i: H+ u/ O! G. \ //if( m_bFixedHour )
F: c9 h; s7 N4 Q // nHour = m_nFixedHour, nMin = 0;- R: n" l0 m8 ~* y( f ]
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
5 H# R5 [! c& B8 _ LIGHTCOLOR lightColor = m_k24Light[ nHour ];
* M6 X/ ?/ w6 h! P- x( X0 `& M1 P' ]4 l% R* @% `# c9 `
//m_lightColor = lightColorPrv;/ U8 s- g/ ^1 t+ C
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;& J0 O K" ?" M0 D1 M7 k
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
( {/ d1 ]* y& L) Y' `4 h# Z' r x lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;9 q* `7 C' p: Q4 ^8 b
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
( z! z( I6 V) o5 a. s lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
. R) `) }6 V" f7 w! e lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;5 f* R5 L, l* t% i3 s3 N& w
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol), H/ `0 r( H! }
& x( u6 O" Q+ T // à??μ oˉè*
5 q- m3 m; k/ e7 V) T9 l pLight->Diffuse.r = lightColorPrv.r1;
3 v; v0 O! `' n) {! J% P9 s1 P pLight->Diffuse.g = lightColorPrv.g1;5 N! l5 m! g8 d. c1 n
pLight->Diffuse.b = lightColorPrv.b1;/ d, _+ k* u# R0 A1 A
// oˉè* ??à?
# |$ a1 R' c9 \4 q pLight->Specular.r = 1.0f;' L+ C: E' B/ d- m: J
pLight->Specular.g = 1.0f;* E" P4 W; F% |7 Q) }
pLight->Specular.b = 1.0f;
+ F* h$ n! X& D# [ // àü?? oˉè*
2 G( j3 e' n% R6 @6 J1 d# }2 x7 L pLight->Ambient.r = lightColorPrv.r2;! ?2 |$ Q4 A! I# M+ f* w* v
pLight->Ambient.g = lightColorPrv.g2;/ ]1 p4 r( p4 J( { w
pLight->Ambient.b = lightColorPrv.b2;
1 t2 H0 o- Q% | f/ T6 x
6 N: ]5 H; O, |# [4 g# q if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
+ F" A! T2 I8 |( U) z" O' y% h {/ z1 ~. O( ?$ [. J
pLight->Diffuse.r *= 0.6f;
# S; X! G* c/ f* t) n' l q pLight->Diffuse.g *= 0.6f;
7 p' d; r! v% r pLight->Diffuse.b *= 0.6f;
. f2 o% N: f7 i: u* P: |4 S pLight->Ambient.r *= 0.7f;7 B: Z4 n ?5 u0 z9 E: r
pLight->Ambient.g *= 0.7f;1 d5 Y! M5 f) }) E3 K7 M4 l
pLight->Ambient.b *= 0.7f;
9 r% n$ k+ ~. s( g }
2 t9 |+ Y: I! ?; H: Q
( T' p8 _- g; Z" n- m1 t5 x# a1 l9 W#if __VER >= 15 // __BS_CHANGING_ENVIR" g! U9 w4 _' [
if( g_pPlayer )4 e" S. e: b5 b5 W
HookUpdateLight( pLight );
9 d! T) Y0 T: R* t0 B8 e& e#endif
6 y4 V4 O ^( P8 o memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* R. G- `" h7 O
7 G; D) i; R9 | a#ifdef __YENV- F# ]: [# N, _1 K! B6 t8 E
pLight->Diffuse.r *= 1.1f;( Y$ V1 E5 e! k5 D8 ]. s: k
pLight->Diffuse.g *= 1.1f;3 B, l+ h1 l, S) Z: o' J1 M
pLight->Diffuse.b *= 1.1f;4 o+ a8 l$ j) k1 I4 j. ?
// oˉè* ??à?
) J$ w4 C K, R+ m" H) g pLight->Specular.r = 2.0f;3 X- l' e5 k A
pLight->Specular.g = 2.0f;
: b7 F+ g2 ^& D4 U3 N; S pLight->Specular.b = 2.0f;
% m' A; a! I4 h% f% D4 ] // á?oˉ
. h. \6 t/ a6 G1 N* |0 } pLight->Ambient.r *= 1.0f;
2 h5 m/ z) v& l' I o- |8 Z pLight->Ambient.g *= 1.0f;
|0 }/ E. n- [7 j8 M& P# T; o pLight->Ambient.b *= 1.0f;" @, j W# W1 h
#else //__YENV5 t: {5 \% l' D6 r$ r5 s" ]7 O
pLight->Diffuse.r *= 1.1f; `/ \& c' l, Z! f$ L+ q' r
pLight->Diffuse.g *= 1.1f;
7 m# z }8 I4 l6 g6 H: ]" _- P1 q7 f pLight->Diffuse.b *= 1.1f;: q- {5 I0 I: u9 ^4 p. E9 O/ u( ~/ [
// oˉè* ??à?
% `4 @9 C) o! b: [7 t) G7 O6 R: \3 z pLight->Specular.r = 2.0f;
* F- r7 F8 p' s/ s. N pLight->Specular.g = 2.0f;- f; z1 N# H( o4 A' O0 ~$ P
pLight->Specular.b = 2.0f;
7 J) p' j% D/ O# `4 ? // á?oˉ ' J% s/ ~6 d# Q) P6 t1 w6 A( P6 y
pLight->Ambient.r *= 0.9f;
8 u0 V2 i* F1 ?2 [; j8 ^8 w; ?1 D6 F' t pLight->Ambient.g *= 0.9f;
. I& X4 K8 S4 m pLight->Ambient.b *= 0.9f;
- u9 |) ]" Q- s. f. ]! }9 F' W5 T#endif //__YENV # c) A4 V9 H7 D
4 w0 B+ \; b' a: q* ^+ e memcpy( &m_light, pLight, sizeof( m_light ) );* e) U, O$ d7 m, m9 U& }* f
) c, Q1 L% W! R D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);; R, v; }4 G* Z. Q" ~& i' V0 F d6 f
D3DXMATRIX matTemp;
, z5 X; _$ n3 [# I! i' k static const float CONS_VAL = 3.1415926f / 180.f;
1 d! v5 M- L- s+ j7 |/ \( f: L- L+ b, N6 S- O. y
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
" G# C, F. R$ {5 r: J8 y2 ?3 ? D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
, Z: I# J4 U+ s) k" x$ d4 G pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
. P& C2 e. M% ~' m pLight->Appear( m_pd3dDevice, TRUE );
( ~2 A7 ]2 h4 `9 }5 X
, i1 v! W, R5 P+ D // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 S! a& r7 m- h$ x0 j" G! T, ]+ z // D3DXVec3Normalize(&(vecSun),&(vecSun));
" x2 H) X2 R0 @: A. J8 M // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : l0 @( c0 C, l' N
: { h9 d2 [- I6 h
DWORD dwR, dwG, dwB; E4 M/ P4 y7 t
dwR = (DWORD)( pLight->Ambient.r * 255 );
; h7 ?- U. o9 q" w3 h, Q5 {/ q$ i dwG = (DWORD)( pLight->Ambient.g * 255 );
& p" K" L" `, b W( X7 q dwB = (DWORD)( pLight->Ambient.b * 255 );
/ ]3 D/ D( n1 K( V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); + S# b& I% y' t/ f4 `( W
}8 u) w2 P% e- _. I6 F
}6 ~( ~4 H% a+ J2 R4 s
# x/ }. ~* W4 ?. {) J1 Y7 r2 J; G
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );8 e( K7 @0 g7 {& i2 r0 @! d% j
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) );
% y* O/ v! z! q6 ]4 q' I8 Z: I& n ::SetLight( bLight );; V0 ]) T( L. z6 u3 J
1 @8 K# z. O& S6 Q- E3 x
// ±ao? ?D?í???ó á¤à?
1 k" z7 Q* s( U5 z& G m_pd3dDevice->SetMaterial( &m_baseMaterial );
( _& y9 y8 Z$ y' X
4 s+ n4 A9 M( c* b' `#endif // not WORLDSERVER
) Q( }+ f5 X' o}0 v, z# b' ^% |; Y
并更换
( N9 |$ ?% S& i4 x, L0 W5 L, b% `7 P! ?Code:
7 X2 o( N! [' C4 o# j9 y__FLYFF_INITPAGE_EXT' \$ T2 ^( |3 a$ m9 O& o) x+ `& Q
定义7 A3 u1 l! Q5 T% l. x
3 R# V% p! B6 k
6 c& @! d. G; X( n0 h2 t0 f* r3 i/ l% X5 x$ l- h) O" m
& U7 h9 d# e+ _% ?6 }- |现在终于删除我的狗屁加速...
5 D8 n+ s/ Z# P) I7 C2 B- D; |3 f/ M+ ~3 I2 Z
; h$ b0 @. o' P, z
* p7 \6 Q0 H3 h# ?" F6 r* p
|
|