|
食品车:
$ E) c l7 }3 E6 Y尾翼:
# ]/ N$ c% B; E- I5 D- B# d( n6 K0 a$ q8 B( A; X
代码:# n7 @$ U( M0 Y' t# e! e9 v
CWndAutoFood::CWndAutoFood()
7 T) o" i! m; B+ `{
) w# w3 q$ }" l! d6 D m_pItemElem = NULL;
* l' f9 X9 p: I1 r( w8 D m_pTexture = NULL;
: D2 z: j+ U. K" a3 {2 M bStart = FALSE;* V7 @/ Y& ^2 l3 j8 T d
}
D, ~# p$ Y; I/ V0 {/ l! }# Z7 M
; k/ X& n. A8 w: ^7 cCWndAutoFood::~CWndAutoFood()+ J' h1 }/ v0 T/ ~! h
{- s# f! L& I6 S# v0 P# E
AfxMessageBox( "AutoFood ist gestorben " ); L" q! F, C, o! ~0 u
}
9 T/ [ V3 Z% x( b# |+ R% K( J2 yBOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
, o6 @( u1 X# f{/ z. u9 P* `2 X3 q0 I; A
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );$ O+ Q: {! Z) ?! H9 H _0 S
}
% w4 ?% L1 }1 v' {6 z4 S
6 K+ i& Q* a; ]4 @3 o5 ]" {BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )! N3 p7 ^3 u( w5 `, O6 A! Z
{
( N. D$ O; F$ F* G4 I6 `5 |6 ] LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );( L0 J- o1 t. x1 ~8 E
CRect rect = pWndCtrl->rect;- ~9 B' g1 y- O% M1 P, Z
if( rect && rect.PtInRect( point ) )
$ c8 ]2 I: c5 Y# C& M, r% P {. v& V0 L1 K" L& z' ?
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
5 {9 z3 {% b1 P" O if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD ): s/ n" I' A3 I6 j8 ^. l/ t
{$ x' a1 I- V5 s+ t/ ^+ A
if( m_pItemElem )
) {2 _$ q/ y8 l0 Z! t {; s, R/ V" s$ ?6 f0 q
m_pItemElem = NULL;
. K6 l- r1 O) L }
0 Z* K9 O! M9 V8 u m_pItemElem = pItemElem;- e: z( r" X: F% y. C9 K
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
4 O- p$ c& ^) x% f1 b& x0 b }else{9 f0 A8 e. u% \- l. q
SetForbid( TRUE );) B# w5 r# i. o9 P) |* W0 A% ~5 i
}& F! _" F& N! k- L6 X" g! y7 _
}else{( n0 P3 N; \. @: i' y6 P- y f
SetForbid( TRUE );
7 l! F- h! I9 G7 k; k; L }
9 L% M2 w" H6 \9 P( \9 |) ~ return TRUE; t5 Z; N- F) `( B1 V7 ~; E. L
}( Z0 T. o0 W2 A5 L; ?8 c0 n
5 b- P$ N8 F9 j8 rBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )8 U7 y: M5 P4 H& {+ {+ ?
{! F6 F7 @+ f/ A& J- K, e
switch( nID )+ O# |$ `& Z$ N+ s; F5 G9 _8 [
{
, E$ V+ Q, b3 q& D case WIDC_BUTTON3:
) \. y5 q& {1 {5 y* S {
8 e9 s& U8 I& Q) v9 q bStart = TRUE;
2 u. P) m0 }! ]/ P& K! ~ break;4 f, s6 }4 t9 I
}+ }) L* u1 U3 \; ^3 R
case WIDC_BUTTON4:
! o4 b. @' s0 J# j! j$ ]2 G- l {
: I, |. H" I$ y) U- J, Y, E/ d bStart = FALSE;
+ c0 }/ T' M- _5 O% C; F1 b. Q A break;
; C( t0 A% ^5 m/ A6 r0 I1 X }, F% y, p2 j1 B1 g! `
}
$ ~: P `& `+ @$ y: {; k return CWndNeuz::OnChildNotify( message, nID, pLResult );
* }1 r, E( Y# \1 N# l& f4 A& N} % r; d% N% |9 N+ [1 I
void CWndAutoFood::OnDraw( C2DRender* p2DRender ): b* E6 y# V9 B: z9 ~
{
8 `1 E* h4 O8 q CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );. E- ?, `9 c" h3 d e
if( bStart || !m_pItemElem )" v2 T/ h( Y0 x! [: e2 P) r- H
{. R( Y6 B0 m. B' \! Y
pBtn->EnableWindow( FALSE );
7 @" r6 R' J* e1 O9 S }else
+ Z: r3 h, _9 D( a pBtn->EnableWindow( TRUE );4 h9 x. L6 U1 o! o' v- {) l& K
if( m_pTexture )
7 ^! G( q. h5 k$ V: X {8 n! h! Z, ]$ H/ D& C% z- O7 o
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );! @$ d: v/ {, W& i. V
if( wndCtrl && wndCtrl->rect )
" _' m9 J1 T* V/ v {( w, s P2 q% O' s [
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );" I. A' i4 [( Z& Q* [6 V; }
}
( M k7 D& D0 |" x7 }+ e1 T" }4 Q }1 |5 w' t. I% j5 B" X- R% X
}# n% V, d4 a& l- E9 s
4 d* }& @+ L J0 EBOOL CWndAutoFood:rocess()
6 l# O- T7 w% [5 K{0 {& b+ K4 r6 @' _
if( bStart )$ n: A7 J( d, W7 Z$ w6 j$ D
{3 q8 ^' O L1 e9 _% x: B3 J
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )# L0 }, r: a- d
{$ ~7 G' s- m% K+ A
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )7 G2 F$ f1 a+ @4 X
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );. l6 \4 ^# b3 y
}else{. \% r) v B4 C! \: D4 L7 z6 b
bStart = FALSE;" X+ o7 h5 ?, ^% C7 l$ o P
m_pItemElem = NULL;
* Z9 x1 _0 f+ H/ F* m4 @( o7 l- h }
5 g/ f w2 S0 N9 j5 L }
: W" W* r c" C* V$ E return TRUE;
3 l; E" R4 S; Z}7 ^. j X2 \/ s1 B
" L# {; Q4 L, ^$ @! P. f登录视频废话:
! ]: r% d2 R [/ X尾翼:% [3 M3 }1 [: O9 |/ |$ ?
0 y! Q" R. I0 X3 u9 [; D3 z# L: @代码:
7 d. k5 X; y9 T5 R
5 J3 d3 b( K/ M+ `void CWorld::SetLight( BOOL bLight )
& c3 V7 u+ y# b/ Y; @: g+ Udurch
' \& D' K8 V- V" ?' [' BCode:
) H; J- u, U/ V* Q+ ~( o9 {' svoid CWorld::SetLight( BOOL bLight )
0 V# f9 {7 e- ]' j{
. s7 ~8 A2 \1 B6 N+ s //ACE("SetLight %d \n", bLight);
0 B, F5 @8 v& O6 I
( q& Z% k, h6 M/ W+ }5 g#ifndef __WORLDSERVER 3 E2 W2 ?1 y5 ]1 L1 @6 q" v
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);6 K0 l4 ]3 g6 n/ c2 q a8 @$ T0 h
CLight* pLight = NULL;% f( o) s$ X5 ]8 f# r! j
; N' t* `$ k3 c. T$ h
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );! P3 X& L9 U! K
# @ [4 ~, V3 ~: T+ H! z' Q8 T
pLight = GetLight( "direction" );
5 {- a5 k1 E- |: t( ~ k |$ t' f; o: g+ s, d8 L, c
#if __VER >= 15 // __BS_CHANGING_ENVIR8 W4 _& H9 }* g1 O
if( g_pPlayer ){
0 X' h+ Q5 U# ]* U! ^ ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );) K! E% r/ x& L1 H% F3 L! p' p
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
! s* a( r0 E. _8 v; @- t8 c {& r5 }) m& s6 k
if( pLight )3 u& ?; L0 {' v, M2 }
{) J2 B$ M- k# y2 _
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
% O3 V- {6 Y' @) L- ^! A8 B7 m pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
: Y+ ]: K! H8 C1 b2 x% m6 } pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 V _# W n/ i$ q. {8 d
* q" i0 j; D0 v3 H) O
pLight->Specular.r = 2.0f;
4 E! A' c1 u+ Q8 J; |$ P/ a% S' q pLight->Specular.g = 2.0f;, T/ g) B6 g/ L$ M* a
pLight->Specular.b = 2.0f;
; [7 s( L; ?$ n; E1 Y- f4 B & Q0 ?0 z b+ x% `0 C$ a1 \
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
V7 n2 s8 i6 {' L# x! z0 ^ pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];# F* a+ K* \# c8 y
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
' i b6 W! D' n
1 @' p% t) S% g m5 d4 O( | HookUpdateLight( pLight );
) @9 c% m! E' k/ H
) F' n, z4 N, }6 G+ Y memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );& ^" e5 @+ Z- F; V5 {( G
4 N: |2 [8 X" ]! n) D J: C
pLight->Diffuse.r *= 1.2f;
+ M- Z8 d, M! W/ x. L+ W pLight->Diffuse.g *= 1.2f;
. g+ s" j9 p- l7 n# O/ {+ H pLight->Diffuse.b *= 1.2f;# R9 m: w O o
6 s, R, J5 x% B3 I pLight->Ambient.r *= 0.8f;
- T4 K m( M- @2 T% P- V6 t pLight->Ambient.g *= 0.8f;
# W+ X3 L4 @% q/ Z% B; N9 x! B1 f pLight->Ambient.b *= 0.8f;
/ d. Y: T! \( N1 G& R
- x5 L6 N! @7 a- @' Z memcpy( &m_light, pLight, sizeof( m_light ) );: ?" E" n& C7 t7 x( d! t
* }( Q+ A& }. b
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
1 y: ?; ~: ~/ x# ^. Y& f# ]) E D3DXVec3Normalize(&(vecSun),&(vecSun));' `1 z* j: T# G
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
& Q# P! A7 [# ^ pLight->Appear( m_pd3dDevice, TRUE );
: {' w o/ e8 \3 T8 o# ~8 H
# C# k1 I+ u: y- F. s9 h DWORD dwR, dwG, dwB;
' {2 K5 S1 W( p4 ^. W% F dwR = (DWORD)( pLight->Ambient.r * 255 );5 u. m3 ^ j3 g* u6 g: O8 r
dwG = (DWORD)( pLight->Ambient.g * 255 );2 A* p+ w7 e; A
dwB = (DWORD)( pLight->Ambient.b * 255 );
6 ~+ J6 q3 U$ ?( g2 V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
8 k: @: r$ M6 G9 f } _! ^1 i8 l, e4 { ^
}4 r" B% C1 T |$ U7 Q8 S' w
}
7 e n% N$ S. N @& o j else
8 I+ f& P, s2 [: E3 e' z1 W- m#endif
; p- j1 t) d$ s/ ~' n& w% C7 S8 F9 l7 F& v9 S. R
if( m_bIsIndoor )
( E) m: t8 `: \ o0 K8 J) O {
+ W0 q. e1 [$ h5 w" ` if( pLight )
8 W5 s" o# e9 x5 T; a L { - H, L# y0 S% A- E9 }4 t
// à??μ oˉè* 2 c! `# T" m7 R3 h; _2 y- n
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
0 `% Z+ k ?4 \; O) L: O6 I pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
7 N& K- U4 q& A( D% v6 Z2 G! b pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;2 C, k, x9 s; O
$ J. \7 P3 r% Z6 \% [1 z& z
// oˉè* ??à? ( q6 A# Z0 V) y$ H2 h# c! o f# I* d# O
pLight->Specular.r = 1.0f;( g% t0 y* ]8 \* r1 Z% D7 [
pLight->Specular.g = 1.0f;
6 T% w9 D- Q# e) G' T! y- g \ pLight->Specular.b = 1.0f;1 R' A' ~2 K6 f; r3 w: c. f
// àü?? oˉè*
0 R; I$ b) g6 T5 W" N pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;$ X4 K3 ~/ q, A. ~0 U/ n1 F6 P
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;$ c: U3 U) b8 }
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;; i7 R' a3 q5 @1 `8 p' V. I
, s+ N; i! z' U# V, X
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; B+ F3 J; W4 F: o1 L5 {/ K4 [
{* s8 G! w, Q2 O, Y' |
pLight->Diffuse.r *= 0.6f;" T; R1 c- m+ w
pLight->Diffuse.g *= 0.6f;4 G* C# `, A1 v# e6 M4 ~8 w
pLight->Diffuse.b *= 0.6f;. _% |# y9 s/ R* D k# S$ N
pLight->Ambient.r *= 0.7f;
8 t& p, ]* c) t' G- z& s pLight->Ambient.g *= 0.7f;9 X3 B3 U; A2 x/ X1 N7 C, {# q
pLight->Ambient.b *= 0.7f;
) x. g ?& t/ m, O5 K [7 p }
$ N8 o% }# x! ^( z: Y$ O% P+ w: k1 i: O/ @, B' a& a
#if __VER >= 15 // __BS_CHANGING_ENVIR2 `* a6 F5 \2 [7 L2 z
if( g_pPlayer )
% r$ o) U* X7 c& k) E; r% h HookUpdateLight( pLight );
2 }/ `) V! A: }" ?& p#endif+ p j6 v% Z6 K, N1 ?5 ~4 e
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );9 D* a1 v0 j" K- x9 S
+ b5 a0 w8 o8 h. K2 U
pLight->Diffuse.r += 0.1f;
! X! w% c; X( h7 | pLight->Diffuse.g += 0.1f;) s) k" V% v3 u9 p( h9 g a5 z* n
pLight->Diffuse.b += 0.1f;
0 L# i- D ]$ U, ^% f2 `: }) d' R // oˉè* ??à? ( _' q" R6 ?8 t) `9 g
pLight->Specular.r = 2.0f;3 }" l' T7 P1 t, `5 c6 {8 M
pLight->Specular.g = 2.0f;1 ^$ U. I8 Y ]$ U$ j2 u7 ]6 s& C
pLight->Specular.b = 2.0f;2 x3 d- l0 f9 W- S! {
// á?oˉ
: Z7 e& c3 X6 \3 d% N pLight->Ambient.r *= 0.9f;
6 P3 G9 F# {, F pLight->Ambient.g *= 0.9f;; E k- H8 {5 p& r- ~! |9 M7 B
pLight->Ambient.b *= 0.9f;; y3 l0 w# ?1 T' |, R' [
1 t4 K- ^# A8 y2 H$ [+ M memcpy( &m_light, pLight, sizeof( m_light ) );/ o+ q6 \4 a3 `5 z6 K; N# b
4 ]2 H9 `2 K0 N. [& `# W9 F+ Z6 O
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );; S/ p" ?- @. G3 j% C: ]
pLight->Appear( m_pd3dDevice, TRUE );( @0 @5 [8 P: p2 w
7 z' j' A% B/ t
DWORD dwR, dwG, dwB;' R* d9 F3 S$ f' _0 H: f
dwR = (DWORD)( pLight->Ambient.r * 255 );% t: p$ q0 Y$ ?1 s6 b, k# L
dwG = (DWORD)( pLight->Ambient.g * 255 );5 h" Q! {, I8 F
dwB = (DWORD)( pLight->Ambient.b * 255 );
. K5 E+ w# D9 r/ A0 W dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );6 W/ c" x. g# p4 u9 k- }5 i ?
}
2 T0 |+ \. S' D8 J' C }+ r1 N# K- J9 f1 g$ V' r
else4 p' b& X5 K0 k9 s
{
% b6 r: @8 z1 J# N- U2 y if( pLight )+ ?0 u6 j2 _. V- H
{
) [; A7 I& N3 {( C3 e$ | / j8 ~5 d" |5 D/ q) O/ _
int nHour = 8, nMin = 0;
! }' c; g u( K& a! T #ifdef __CLIENT Q& O$ r# V6 ]5 _9 i
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. # d* R' ?+ L$ M* [( D( }
nHour = g_GameTimer.m_nHour;* Q3 a7 U1 a/ n0 B8 v% Q
nMin = g_GameTimer.m_nMin ;
( ^3 d& L- k ]7 w+ Z+ h #else
9 b( P( x. ^" k4 k3 h) v! s* [5 D6 K // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
! I2 y: r) ]# @9 ^1 k0 g p+ c t% D if( m_nLightType == 1 )& R$ C9 o2 {; F
nHour = m_nLightHour;
, }. @- L1 n4 w #endif
! H2 e# @4 l) A* L$ w( r6 |) ]% O1 H nHour--;
9 M7 z5 S" P! Z+ P# \; p) R if( nHour < 0 ) nHour = 0;. e* X, x7 m. u- |, q1 L
if( nHour > 23 ) nHour = 23;* j& u$ v7 G* B. r* d
& [1 X0 t8 z8 a1 ]7 D) _' y //if( m_bFixedHour ): z9 C9 j+ k" Y) e: t
// nHour = m_nFixedHour, nMin = 0;3 \6 d- n, r2 R( a) a
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];5 n W* R, u4 Z; M0 v! `+ r1 {* Y
LIGHTCOLOR lightColor = m_k24Light[ nHour ];; }: `1 H$ v% X0 u+ C
1 E9 ~' }* W6 q9 B& b: C- z
//m_lightColor = lightColorPrv;
1 N6 ~2 S+ q( Q4 D: j8 C lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
4 k6 F, U8 i J% f& ] lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
7 s2 K5 g/ r$ \7 G2 B2 x, ~7 N" |) R lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
3 F8 L; g- \: ]3 ]* c lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
. H1 z$ s) m M! x1 f9 \, y lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;7 l' Q* R( N6 b0 {& Z
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
; p/ M) U0 Q$ W8 |( D$ P. n // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)7 A( Q! f+ i u7 Z/ v6 L# f
) G" U% j! o0 o# u3 n( U
// à??μ oˉè*
+ [9 A# r# L4 k5 M2 K# D; P, i pLight->Diffuse.r = lightColorPrv.r1;1 M8 t* F) C I' j
pLight->Diffuse.g = lightColorPrv.g1;6 L. D' S" I9 Y1 Y# K/ Y6 X2 ?$ p
pLight->Diffuse.b = lightColorPrv.b1;5 T" z0 _1 C7 w p+ Z
// oˉè* ??à?
# P; ?- b! J2 m- } pLight->Specular.r = 1.0f;$ N7 D! W& k* s- n5 a- Y0 p
pLight->Specular.g = 1.0f;
% M0 [( S6 d7 J& Z0 ~6 y* W. u* z0 v pLight->Specular.b = 1.0f;6 u, o$ J l6 h4 y# g
// àü?? oˉè*
9 W0 p& A1 m- q" g8 z8 M pLight->Ambient.r = lightColorPrv.r2;
, Y) h9 O& `+ g7 ^9 ` pLight->Ambient.g = lightColorPrv.g2;6 t% p! I8 |0 P
pLight->Ambient.b = lightColorPrv.b2;' _8 o) j3 O; @+ i
: i& y* Q9 p2 ?: k" q0 c if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
# g7 {7 p8 v& P6 o# f {5 ~7 n; E$ X1 r5 {7 c' _( k
pLight->Diffuse.r *= 0.6f;! ~7 w {5 [) R4 p, F( n4 o
pLight->Diffuse.g *= 0.6f;
% w) j/ J9 S3 v+ j8 h! h pLight->Diffuse.b *= 0.6f;' f& {, I6 ~' I
pLight->Ambient.r *= 0.7f;
; d: p5 R/ _4 r0 I pLight->Ambient.g *= 0.7f;+ I; N( c- F3 y+ g
pLight->Ambient.b *= 0.7f;
: J9 z" C$ O1 t }
; d x b2 v1 @
) v6 m! D( y. e- @; Q8 J#if __VER >= 15 // __BS_CHANGING_ENVIR; o* c% l# E' r2 q; \9 G
if( g_pPlayer )' X. p) }) G3 Q% `% e' R2 j) i u
HookUpdateLight( pLight ); 2 W5 X7 M6 {2 ^) n( x) W
#endif
2 @, q; V; u y& o( f' s memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 ~0 g, L4 t+ o7 K
' k' k7 A6 P% b9 b; q) U#ifdef __YENV1 S8 }( Y! f& G \( `; [2 W
pLight->Diffuse.r *= 1.1f;
- I2 o2 v H4 A' o% d pLight->Diffuse.g *= 1.1f;( `1 ]) s w1 ~, r
pLight->Diffuse.b *= 1.1f;
5 I5 N8 {4 |2 [" G8 U6 Y" R // oˉè* ??à? . B/ X* l5 ?# E: T& @
pLight->Specular.r = 2.0f;6 g. A; |9 j# E5 w
pLight->Specular.g = 2.0f;
0 \, o5 S' i' k' U4 o& ` pLight->Specular.b = 2.0f;: I+ G# G' c: b3 t
// á?oˉ ; A9 H& ~! g* l6 y# \
pLight->Ambient.r *= 1.0f;6 D6 v) H9 B$ M5 }1 I
pLight->Ambient.g *= 1.0f;
+ M( F: T; h6 D3 k5 O/ Y& k pLight->Ambient.b *= 1.0f;% ?3 n5 Q: A% S, H$ A% u( Y4 P x
#else //__YENV) [( {9 w2 G2 y9 {6 M. r/ n8 K
pLight->Diffuse.r *= 1.1f;! H* r# j- s# z0 j3 E+ \+ g) v
pLight->Diffuse.g *= 1.1f;+ ]( ^$ J1 Y' C0 Z
pLight->Diffuse.b *= 1.1f;0 m% k5 i2 e8 q- q* k; a$ l, k3 j4 R" G
// oˉè* ??à?
, V2 r' E) u P, B# _1 [ pLight->Specular.r = 2.0f;9 M& n" h8 E' d- \4 P% h
pLight->Specular.g = 2.0f;* J. h- v1 d. P
pLight->Specular.b = 2.0f;
7 N. v3 R- |% W$ z. d0 j+ \) J& N // á?oˉ - g' A" r+ L4 i: J" {% p
pLight->Ambient.r *= 0.9f;
# o1 l v' g( C( c3 Z9 ^0 U, B pLight->Ambient.g *= 0.9f;5 W* _6 F2 _! g* g6 [* i
pLight->Ambient.b *= 0.9f;
2 J! M x* E3 L5 ^$ x, h1 G6 `#endif //__YENV 0 E5 I+ d6 {4 W
b" U- |0 _+ W9 g9 _ R- t) M memcpy( &m_light, pLight, sizeof( m_light ) );
% ^- O5 O7 Y1 f* J$ O. e/ E ' i7 i: ~4 n3 x" B0 s) E3 M k
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);) u) q8 [$ V; Q! A
D3DXMATRIX matTemp;) o! V+ K) Y) s6 S2 S
static const float CONS_VAL = 3.1415926f / 180.f;
. Z& N* `) M: [
- o3 B0 S* k5 o5 Y" x* K1 V. f& Q D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);8 S( D; d5 P1 |8 y) `8 d: b
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
4 p7 i1 L% C1 q* f9 L2 L! ? pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ^4 G n- L {6 n* M8 C% @* l
pLight->Appear( m_pd3dDevice, TRUE );
, l1 ^3 G% H3 b9 k# e& Y: T4 [, Z- }1 A% H
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);, m# ` |, b2 o! l. A
// D3DXVec3Normalize(&(vecSun),&(vecSun));
" c3 `5 t, Y; J! n // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 l7 u l3 c H5 x3 y1 ^( e
. g' D7 y( F" r: Q) }! n9 o DWORD dwR, dwG, dwB;/ M- I# Z% \1 W& {2 N v0 q
dwR = (DWORD)( pLight->Ambient.r * 255 );. X) f% B* u0 p7 }6 _
dwG = (DWORD)( pLight->Ambient.g * 255 );
" I" t- P2 t. W0 T8 Q" X dwB = (DWORD)( pLight->Ambient.b * 255 );' Y; N$ p2 S) H* |
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ) ?6 V% Q% ^" a
}
( ~! o9 a% K/ [ T) ?; p. w }5 j4 g& S6 k, L$ A
) w; |9 {/ n+ Z2 l
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );, a, k6 D- K6 |: D* q' I t
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) );6 @ P7 u5 b4 l8 A: ~$ T- m1 B
::SetLight( bLight );1 e! Z0 r. m( G, R& _8 Q' U/ [& Y
$ j6 W& C. H$ x' x% L
// ±ao? ?D?í???ó á¤à? F8 C8 A5 [0 _
m_pd3dDevice->SetMaterial( &m_baseMaterial );5 r$ ^) q. ^# M
6 R+ g7 Y) w7 C. O
#endif // not WORLDSERVER
2 n0 V% ]8 V6 S( J& z}
: }- F" V- K6 h2 i并更换* O7 C0 q& a+ S1 O/ X& Q6 T' `. S
Code:
( m ]! \) n) `2 I2 ~" ___FLYFF_INITPAGE_EXT
3 A3 Z' R5 p4 [3 n/ R5 N4 Z定义' F5 M) D- C! n" S* m' ]0 w
' I5 u6 m* ?7 ]; E9 M. K+ e
+ M' E0 U" G, A
+ W5 S0 q \, t( O5 R1 T. }
' @' X' m N7 C" f S u; y3 ^
现在终于删除我的狗屁加速...
( v2 J( G* g" w& z: j* e9 t0 _
: |# \+ L: U; S# V6 D2 s3 a" {. d8 l& m& X/ k4 [# x+ e
' {* h% ?2 z8 u4 L# C# n |
|