|
|
食品车:
& t- R/ w9 z2 K& I) J尾翼:
( {) [) C6 z0 X# Q7 K6 q6 t x7 r, S2 U0 c7 k$ Y
代码:% u7 A4 f+ n0 {: ?9 |9 |7 {9 e
CWndAutoFood::CWndAutoFood()
* C8 X, M' F& A* A{% V/ `# b k5 i. V) b
m_pItemElem = NULL;
' g7 }9 u* h) N3 c# a m_pTexture = NULL;# X. R" Y# Q4 m% [: Q. U
bStart = FALSE;0 z3 l# X- k& P4 g/ g
}6 K# d% I V4 X
' x7 u# o- x6 i2 P- s6 i1 P
CWndAutoFood::~CWndAutoFood()
4 U: o, w X& N0 e5 V$ G{
- `- k( ~" {0 E) ~; E AfxMessageBox( "AutoFood ist gestorben " );
1 I+ e! W" C: c' w: S) P, L}# i, V$ h5 t( G) K" M, O s7 O& [: E
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )8 ~* {8 J& C, h8 j5 h
{: o% S: t7 Y7 }2 }6 b3 U
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
1 P2 i+ i1 `7 ]2 z( _}: h5 `! N; [# M# ] W4 p m) Q" z
m7 k9 b7 v. T" M2 N- t [/ V/ z1 g% gBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )- s- v' @/ C( `& |% {* _1 ]
{
- J. H+ [6 z/ M, a LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
( }% J7 O( x+ K; P) T CRect rect = pWndCtrl->rect;
6 f, i/ A0 G1 f if( rect && rect.PtInRect( point ) )
3 y- H b/ U3 c0 ]3 ? {# M# T, T+ T8 z8 m
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );6 B% s( E; j2 P3 |
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )4 ^, S. f7 c4 N& s8 q6 `& K
{$ I* r) d5 Z( Y8 Y9 {# F8 k
if( m_pItemElem )7 m0 `+ x: V: ?2 _' h7 p% e: v
{
8 s5 r1 r0 t( m" i8 A) } m_pItemElem = NULL;; G6 g7 E. {( y( [# |5 U6 {
}
9 ] z. [7 J6 N. N* j, S m_pItemElem = pItemElem; e& H6 R A* s, K
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );9 p: |& f4 \* @* G. z( K& x' }9 y
}else{
2 H k* V P0 K1 @2 M+ C1 P SetForbid( TRUE );4 s3 l) r( x# \' K! v, t: v# }6 N/ e
}( a6 F6 L- Y) z5 m4 G
}else{2 Z! r8 j$ \$ R& L+ w" l
SetForbid( TRUE );
4 J* c* a4 }# w" s }) m/ p2 u9 S( }, J0 n
return TRUE;9 ]3 y! ~; x8 C' U7 w& b
}
1 Z( n& u4 Q! f) c6 ~0 i+ b; h2 E& ^& D: f& |
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
3 N; W' C3 h* o0 ~! T{4 E% ^' W9 [* [ P. g
switch( nID )3 ]- n9 g* x+ d, Q ~* {/ l& \
{' A* X" g2 X* C
case WIDC_BUTTON3:- J+ @# _) `, o
{; \* }( e' R7 G! Y, k3 d
bStart = TRUE;
2 Q8 b$ p* i( D( p: N break;
/ l- X' @! a9 a, m }
1 C/ s, ?5 W4 M0 r. P7 F1 c/ Q case WIDC_BUTTON4:
) z, K1 f4 g2 b* L J R3 L- l; l {! ]% y( d0 Z; ^$ G. E
bStart = FALSE;' x1 i) w+ m0 ]2 Z! F- A
break;" s8 \8 Z0 F, a' j8 P' {- H6 }4 G
}
) k$ \0 D; v' H4 w K7 s; z }
, z5 A" n$ B4 C7 S9 Q& E8 `( y return CWndNeuz::OnChildNotify( message, nID, pLResult );6 v7 ~* `) F+ N4 {; L
} # J6 ~" [$ f7 s" ~5 x- g G) J
void CWndAutoFood::OnDraw( C2DRender* p2DRender ). D# u, }2 o5 n" `4 d1 P
{/ Z" z) g- D# \8 s
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
' n. b, R& S$ k. ^' A if( bStart || !m_pItemElem )
, V; k- [3 T) Z# q) r {- }5 D3 J1 h7 z5 X# u, m0 x
pBtn->EnableWindow( FALSE );8 g& P: X2 J+ y9 g
}else
$ s p0 y- y9 w; S7 B$ d5 m pBtn->EnableWindow( TRUE );# @+ c0 j5 R% e( ^8 R3 T) f* T
if( m_pTexture )
7 u1 I( F/ f8 h$ a1 O" ~ {# s5 @) I: E4 M! d {
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );6 ?' S) Z" ~/ z
if( wndCtrl && wndCtrl->rect )+ X/ W4 G0 N8 i/ }1 g
{
0 I, l9 q- k2 R8 r. q: u! k m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
) G& S; E/ i: w/ ]$ m+ L: R }; k3 k% ~" I ^5 b
}- [2 s% N% ~6 C6 i; [$ U7 ^$ `
}
& U6 Q9 }! {; P9 L# o" Z
, U/ q5 N7 w: T% Y9 wBOOL CWndAutoFood: rocess()
' p5 |- w2 C3 M; ?" _{0 C$ g' u3 ~8 `
if( bStart )
& ]9 U/ o9 f) A9 x6 I {7 u! b+ w! s4 E6 m6 j# T& m
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )& [. {7 b4 Y% P" p }4 n1 H
{$ \/ i0 P8 U; t3 r3 T
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )6 X+ o+ Y8 ?) Y& ^6 j/ r$ t* `
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );/ s* N2 B' ~ h8 x
}else{$ z3 R* Y% T; W0 n( x3 ^
bStart = FALSE;4 H& c* `0 P, L) i) r+ N
m_pItemElem = NULL;& x/ } c( i2 }7 j- L) ? F" h
}
; p( L) x' K2 f# f }+ I4 g" N) o; Y/ _
return TRUE;6 s _8 L) p; K0 \' }
}% @% \! R( C1 O' c0 w y) e
: G. {/ o% x& j! k( A7 V! d5 R
登录视频废话:
% ^4 c/ Q# U4 k1 D6 i尾翼:
5 ~/ A' d( c9 a( G7 J* N+ u2 Z0 f0 c$ w! H3 m& `& p4 x
代码:4 H5 m( U1 \% K* j1 b0 W
# Q* l2 g; u* }/ v) }2 Q
void CWorld::SetLight( BOOL bLight )
; |, C. ^ s% @ i5 Udurch4 o( Y5 M) {9 w
Code:
- G# A8 c0 |/ i/ dvoid CWorld::SetLight( BOOL bLight )
% _5 _- ~7 v" T; u3 _{
# O% [ k4 R( b# @6 R+ S% t( X //ACE("SetLight %d \n", bLight);4 I7 q5 U9 n! X% n
2 Z! l7 D: Q( h5 B) P! W
#ifndef __WORLDSERVER : Z# t5 G# u; K% H5 ~) K
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);4 p* P7 Y2 S) v. i# l" |
CLight* pLight = NULL;4 d2 X7 m3 ^9 L0 W
4 V2 \1 V" E! | c
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
; s% ?8 j2 }/ S+ T A3 H
+ K$ }& V$ m0 E# d6 W9 ^ pLight = GetLight( "direction" );* _3 T5 S) z' J5 g; [8 y. A
: s n9 k, L2 S: Y
#if __VER >= 15 // __BS_CHANGING_ENVIR
% _* z1 ^# s7 F q7 s% ?5 [0 M; q% z if( g_pPlayer ){& t' s7 E4 \2 G+ q7 g, E! t
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );, ]6 @, ]4 f( a _# w
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!/ h+ }4 M. O) O
{
/ F7 a) J: k) x1 r. F! J if( pLight )
3 T! O" a' H# q+ B# g9 m {( Y+ ]. c( Y' a1 k! Y ~4 D# @
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];$ O- p: E0 `* f! K9 s( H
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];; E; c0 m @. l$ T' z
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
( k3 @$ a6 D3 Z) |6 [) G6 d' H: k3 k A
pLight->Specular.r = 2.0f;% {, Z# X( @& d0 v/ A) h
pLight->Specular.g = 2.0f;
& m3 z$ i2 q4 O) A& h pLight->Specular.b = 2.0f;$ I( A; V1 G2 f' m9 ^) ^5 {/ u
. I3 B1 C' p! y7 b3 M+ J4 r
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];. |' ?; X8 y8 T. r# [( b) x
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];8 E, A1 V* t5 E: b8 Q& J# }* k+ ^
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
, w5 X W" I6 U$ L3 C1 P2 S , U! c5 T7 Z& n' u3 U3 N
HookUpdateLight( pLight ); 3 N& {/ R" n: X4 t, G
( L2 W$ n ]0 t$ @' N5 X7 O5 \
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );6 |3 C" W6 y1 _; A! c p5 @
! w3 p X( F }: k* g) {+ A
pLight->Diffuse.r *= 1.2f;
( O3 s- @1 d \1 W$ Q pLight->Diffuse.g *= 1.2f;
! I0 a7 U1 Q( K- _! q' `5 A pLight->Diffuse.b *= 1.2f;
! V# S7 Y# M; _- A! k* E- Y( {5 }+ u* R
pLight->Ambient.r *= 0.8f;8 m- u% P4 ?; h3 v r" r9 c
pLight->Ambient.g *= 0.8f;
* U) v; ]+ M/ b- `) D+ A; L. q pLight->Ambient.b *= 0.8f;
. b' Z. {8 C. l
+ b( @5 `( j& }* f! u$ _' f) T memcpy( &m_light, pLight, sizeof( m_light ) );
" i" f! i. I: V9 `# e3 M
# R! c8 q% S/ f3 i# N. S6 K7 L D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);& U3 X2 J. Z, ^9 F/ y/ l/ o
D3DXVec3Normalize(&(vecSun),&(vecSun));2 w4 _# [) K& e
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
, |& G0 r$ s7 f; N pLight->Appear( m_pd3dDevice, TRUE );
& Z } Y: H% _( f" V3 F ; _4 v O7 [5 B; z/ l
DWORD dwR, dwG, dwB;1 r- r2 m, A% y/ q) S' [" Q, C
dwR = (DWORD)( pLight->Ambient.r * 255 );
/ `8 B2 ^# A U4 n3 N) b dwG = (DWORD)( pLight->Ambient.g * 255 ); K7 }' \. Z! o2 T
dwB = (DWORD)( pLight->Ambient.b * 255 );
# G! E% l& F* p dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
# F$ {: \ p1 S8 O }1 A, ?5 R: j, @$ i: W) g: M7 T
}
3 Y4 T4 d( \4 n' X% k( U }! g$ J# Q' W' P. X1 n+ E( T. w
else/ X9 B+ N: O; K* ~& r* W' R$ C! p6 h
#endif / [3 n( q }( o+ I$ _: |" f
/ o1 H0 H) d! v: M, t: A& Z! T if( m_bIsIndoor )0 H- m5 _* j$ |
{: n9 B; w2 G: @* Z
if( pLight )/ U3 Y- i: ]% z4 m4 @9 B: i8 Z
{ $ m7 s5 r2 o, Z- X
// à??μ oˉè*
8 G m/ h3 @. j5 ~' g# s: ]& d) Z pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;2 s/ F" k5 k4 j* k
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 g2 y) w- u+ C# ?5 l1 | pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
: e2 y9 p1 K9 j) ^4 D
( e( y4 W0 ?6 e7 K3 l // oˉè* ??à? 4 y+ ` [! k, s
pLight->Specular.r = 1.0f;
, Z* S) |8 X* F pLight->Specular.g = 1.0f;
& d0 z/ ^8 |6 `4 T pLight->Specular.b = 1.0f;8 n( X/ E; F u
// àü?? oˉè*
& x8 t$ I4 l, D" | pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
/ }8 _! J& _9 C pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
$ k% ]9 c5 b! P, b" q pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;2 Z+ }4 d9 i3 f2 f
' \2 k! S1 H' s h
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ T" k3 {6 c( Y% u4 \8 Q. F9 X% z+ L
{
) v. B# t, w% j; H$ ?& N pLight->Diffuse.r *= 0.6f;
4 I" l: }$ |$ |" ?0 i4 j# E4 X pLight->Diffuse.g *= 0.6f;$ k! Z" Q1 x- _0 v) N" N
pLight->Diffuse.b *= 0.6f;( V0 v1 O; [" C: C2 J% V8 L
pLight->Ambient.r *= 0.7f;7 W# x& P" S2 i% F: E
pLight->Ambient.g *= 0.7f;0 p% u" N) X2 S
pLight->Ambient.b *= 0.7f;
: o1 B- Q4 j/ u+ M }5 r9 v1 y& l P3 @# w
$ C' b. Q+ m0 T" i9 H2 _' p* ]0 F9 n9 P#if __VER >= 15 // __BS_CHANGING_ENVIR% b0 b! m' S4 U; { {( B5 H! l
if( g_pPlayer )% F4 B' F y- B9 d
HookUpdateLight( pLight );. |6 D- i3 V( @4 T* V' |! o
#endif1 Z) U4 G, i' g( \( t; T' A
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );+ i1 o X2 x4 q" G1 U! `
4 |& Q/ q, B% u$ I$ Y4 U& D pLight->Diffuse.r += 0.1f;, D0 J3 K! l% X7 H! I
pLight->Diffuse.g += 0.1f;, [% Z6 s0 L* C2 F8 i
pLight->Diffuse.b += 0.1f; j7 y! t i. ~- W- X. U
// oˉè* ??à?
4 Y* Z: L" `! N* ^ pLight->Specular.r = 2.0f;
) J6 D) l" n( d, e6 [9 ] pLight->Specular.g = 2.0f;
6 K( e2 b% w( T, g2 Z' \4 z pLight->Specular.b = 2.0f;
2 {1 P8 l0 A: }- { // á?oˉ : e, I2 S' y! [5 p, L7 i7 ~
pLight->Ambient.r *= 0.9f;& O* l4 D0 `/ j1 x- B3 b8 c
pLight->Ambient.g *= 0.9f;& _5 ]$ R, t V
pLight->Ambient.b *= 0.9f;
- a) Q- c) C- K% U& e; X( a# E$ p5 p0 D9 Z4 Z7 k
memcpy( &m_light, pLight, sizeof( m_light ) );( T5 l5 S# ~. X t# H: e7 j R) l A
5 d; v1 U/ h& v* e c5 J pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z ); E* U0 J" ^, |' d% W
pLight->Appear( m_pd3dDevice, TRUE );$ s/ |0 G$ a) b
: \3 W: r! O4 m5 ?' k
DWORD dwR, dwG, dwB;/ K, |9 D5 \$ D) \2 ^" V
dwR = (DWORD)( pLight->Ambient.r * 255 );
8 u' G; Z: V, O( x8 o8 [ dwG = (DWORD)( pLight->Ambient.g * 255 );; N9 X: F% O9 M$ d1 [- I+ D
dwB = (DWORD)( pLight->Ambient.b * 255 );
& B9 _9 u0 m J8 B$ a3 g dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );, r/ n) B/ }8 `6 i# `" n9 y
}# D2 G& _6 c: R9 S+ D! {; n
}/ {5 F! z$ T% f; |. H
else+ B4 W# M. o- J. L* }( Q; O
{/ [1 d9 g$ v0 l" R$ F" U
if( pLight )6 `! N5 w; s3 j3 n2 I4 I" x
{
2 U8 a. N4 b" s y0 q6 s & X" x4 N7 r$ ?1 y+ B: v. L
int nHour = 8, nMin = 0;2 D; j( n9 a7 {* J" p E% N
#ifdef __CLIENT
, p) g5 i& X# A! `3 E: F# s // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
) X' h$ j: z) o, V nHour = g_GameTimer.m_nHour;0 l) B+ V; u- q; z- J' J
nMin = g_GameTimer.m_nMin ;
, ^2 Q, f# x9 E #else O! J8 i P' H6 M% x7 C
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
6 c8 L8 i6 t. a9 p if( m_nLightType == 1 )
0 x$ V% V% d) J1 u4 T0 B* ` nHour = m_nLightHour;
3 k- E6 E) {0 T, ]" C& U' L #endif/ {! g4 r* z# o$ N! d, @- O
nHour--;
8 }5 t. J4 r1 G' N! r$ k) m6 |6 f if( nHour < 0 ) nHour = 0;
5 W+ X% q$ s! F4 K5 a3 S9 O if( nHour > 23 ) nHour = 23;
( r+ r; N: c- G- x. T9 s9 [! ~" D8 N1 K' ^$ O* Q
//if( m_bFixedHour )
& V( N) i8 A& W% { // nHour = m_nFixedHour, nMin = 0;4 x, g% B; F6 L
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
1 Q) v/ S4 o4 G x2 S LIGHTCOLOR lightColor = m_k24Light[ nHour ];& c3 i+ x4 b% f2 M# A+ A
( a9 g8 h* V5 a2 T s //m_lightColor = lightColorPrv;; J4 a; W0 _3 @2 W5 P. a k
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
5 P. E1 ]5 d% x3 b4 e3 x( C lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;8 [7 ?- Q) [1 g! l) o$ h
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
( }2 H' q- B/ d/ Y( X lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;/ m" d$ n" |. D$ m8 }
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
# Y7 ~# x/ @% R- g, K lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
" c$ H3 o9 {3 b! \: n& A // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
+ ]( @0 C* n' T* [: C5 E: z. {2 y9 j- v2 Y
// à??μ oˉè*
; \# w1 K5 m8 v7 t% \. l" y pLight->Diffuse.r = lightColorPrv.r1;
3 N7 y' c# \( [' P6 F+ L3 v1 I pLight->Diffuse.g = lightColorPrv.g1;
! M8 \# Q9 l" \" X7 M4 J' S. v pLight->Diffuse.b = lightColorPrv.b1;
; k8 b; i& `% _" @ // oˉè* ??à? + o3 g- M4 V: \0 O7 m K
pLight->Specular.r = 1.0f;
" j5 Q) ?. |0 M8 B" z# A( l* C3 K: W pLight->Specular.g = 1.0f;
# A% K$ g3 j. s. ~2 r+ h pLight->Specular.b = 1.0f;
. y, [; f* g9 X! O* I5 J3 ] // àü?? oˉè*
4 K: N) e$ t* \" k$ x7 A: c+ u pLight->Ambient.r = lightColorPrv.r2;# q/ t6 {; j1 { _4 p# ]
pLight->Ambient.g = lightColorPrv.g2;. c7 n# k5 \; @5 U [+ M {+ }) ~
pLight->Ambient.b = lightColorPrv.b2;& w9 g" H. B% T6 P; L, j' [" ^3 r$ ^
/ K _( G9 i4 R7 m, g& E* L if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.+ w3 ?7 d }" n9 @* M! y K
{0 c2 h0 x5 J! S; ^& p, ^; V8 K
pLight->Diffuse.r *= 0.6f;
+ J: E) Q! H7 P, J' _* \$ {2 x. P2 t pLight->Diffuse.g *= 0.6f;; F6 i3 Y) }. L. n9 k
pLight->Diffuse.b *= 0.6f;
+ ?# C0 W {/ j8 ]. a pLight->Ambient.r *= 0.7f;! {0 s T7 s' Q$ }! V, Z# p) v
pLight->Ambient.g *= 0.7f;
& O+ H5 o4 }* p c4 a pLight->Ambient.b *= 0.7f;
9 u) O; u6 [5 S5 S& T }
! E" x a+ H, x2 T% Y
9 A' A k+ Q/ R" M1 P#if __VER >= 15 // __BS_CHANGING_ENVIR9 `' s. } e. a7 }# x4 {6 t
if( g_pPlayer )
& L6 N1 h! z& F0 P HookUpdateLight( pLight ); 5 q7 d. `& T. m: R2 Z, h4 h1 y
#endif
/ p' I, G( q+ q' H* ] memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
( |3 w' {' Q5 a' f
: n& x& B* K0 E. {2 r( J' Y3 w6 Q#ifdef __YENV, P% t5 N2 v, ~4 G6 ]7 i8 Z
pLight->Diffuse.r *= 1.1f;
, Z+ t6 `- k& E' _ pLight->Diffuse.g *= 1.1f;
2 V8 e0 c) |/ ? pLight->Diffuse.b *= 1.1f;
/ b' q: S8 S3 e( `$ F // oˉè* ??à?
# j \, C. Q% m' f4 h pLight->Specular.r = 2.0f;3 _- b, h. U K6 E6 C( O
pLight->Specular.g = 2.0f;3 Z# F+ z% V+ Q2 v' h% C
pLight->Specular.b = 2.0f;
8 d6 ]8 r5 s P0 ~. X // á?oˉ * z4 m! B4 X3 P- q! E
pLight->Ambient.r *= 1.0f;
3 D# l5 y8 x, X% Y5 X3 D8 d; u& ? pLight->Ambient.g *= 1.0f;
! R* ^1 z6 z2 D0 ~! o pLight->Ambient.b *= 1.0f;
; g0 Z1 A6 `- M; g1 n' C#else //__YENV0 i* Y2 W' I% D A7 {
pLight->Diffuse.r *= 1.1f;: L$ `/ {7 ^# T$ X; y E- V3 ` h
pLight->Diffuse.g *= 1.1f;7 C/ b/ {# u6 U! |( O
pLight->Diffuse.b *= 1.1f;' S7 |% d: q/ F$ d7 G. P
// oˉè* ??à?
- f) `4 B6 P' @7 e& I9 P, H9 L pLight->Specular.r = 2.0f;/ ]8 Y8 O& C" S4 I
pLight->Specular.g = 2.0f;8 O$ z2 k8 d2 d1 K- s9 H8 {: A% [
pLight->Specular.b = 2.0f;
& ?$ V% M5 k# E. ^1 u // á?oˉ 4 E- g! Y7 w Y: M, q* |3 z( k) v
pLight->Ambient.r *= 0.9f;
6 M/ p7 ? x2 t+ a1 h& }: p6 [ pLight->Ambient.g *= 0.9f;/ C' P4 E$ X. s p
pLight->Ambient.b *= 0.9f;% f, z2 ^# ]0 J0 ^& c
#endif //__YENV 9 p G4 ~2 C* K4 m/ q$ u- F O
- z, ~5 P5 R" e4 ` s memcpy( &m_light, pLight, sizeof( m_light ) );, ^1 K4 y7 k: E7 o& }$ V! [ c; q
0 n% `; X/ ?5 q$ q D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
! M- C7 M" i! F0 r" P/ B. b D3DXMATRIX matTemp;4 \7 D d! w. X- D+ q. c% j
static const float CONS_VAL = 3.1415926f / 180.f;: m" d: Z) ~( g" m
P0 _$ }/ x+ n% S5 E' u4 K
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);* k( O9 Q' c+ c% x# c
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
3 a" ^4 F+ y* b# |6 E pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); + c$ O6 _, C" G3 t% q; T1 {
pLight->Appear( m_pd3dDevice, TRUE );+ n& A6 |4 C/ B* E
/ r, B* w1 D/ L$ m7 g; G5 w // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
# u' L! K7 T, w' k* ^5 L5 X+ j // D3DXVec3Normalize(&(vecSun),&(vecSun));
2 |6 H2 a* q; [4 H6 J4 { // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); * ?: J7 `1 ^: t5 X% t, t# A
/ M8 L8 m5 b+ ^ b) n& n1 h8 r8 i9 u B DWORD dwR, dwG, dwB;
- f& K* \: ?3 N9 Y3 l dwR = (DWORD)( pLight->Ambient.r * 255 );; a! p( l C& U+ F* n6 \! q
dwG = (DWORD)( pLight->Ambient.g * 255 );
- C' E$ ]4 s# g9 p$ n5 N dwB = (DWORD)( pLight->Ambient.b * 255 );' u/ Q; c" \% o5 ] a
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
# }' P; a! y H" _8 f! M# @! } }
) E6 z" A* L8 v5 f2 e }9 `; y/ ^, J0 H- Z
& \3 @4 g% y# U4 _7 ^2 i' A' E2 R
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );' Z" B- }* Y5 B3 ~$ m: r, X
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) );8 u9 k; A; {9 v& c0 I5 X w
::SetLight( bLight );
7 s! \: N) I5 h" ~2 W/ z( H
+ x+ e6 q6 E+ [ B( q // ±ao? ?D?í???ó á¤à?
$ {, f( J# i; }! r m_pd3dDevice->SetMaterial( &m_baseMaterial );
5 g6 d: S! v! T! n) G- E9 j ?$ `
: @& q. _/ F3 _+ f3 r: l#endif // not WORLDSERVER
, q8 N( e; U4 h* ]- U}/ Y" C& N) L9 z ]& T" e
并更换' r0 t5 @% T1 w$ ~7 o4 j
Code:
# b! u; E7 E3 n& K__FLYFF_INITPAGE_EXT
6 L1 z7 F# O9 p定义2 W$ E# t) a6 }5 X% K" N
& G9 f% G8 C* W# X F! o$ T/ Z6 ` E: r+ P" f! N R; H9 {& G7 i
! v, B) B6 Y+ T+ ^7 i4 H& M* E& W0 u0 b* ^: o( ^, E
现在终于删除我的狗屁加速...
6 C4 l- k5 I3 @! @7 c! A: \5 f% C0 l9 ^; }/ M5 e& J& v
; W3 P' O! ]4 Y Y7 Z
3 w f' U- `) z) B- x' } |
|