|
食品车:0 v3 C, l7 f) a6 ` _' K
尾翼:7 p5 x7 q2 B$ K/ b* y
' g* w4 B' R$ E6 R7 e代码:
& Q6 t$ ^' a, _* |# r2 GCWndAutoFood::CWndAutoFood()4 u; g' _5 W' @7 q0 L! H
{& {3 i9 n) S7 C: ?, R c* G) `# E
m_pItemElem = NULL;
; a; V6 o- b a3 ]+ V, g m_pTexture = NULL;$ J9 j. X3 q3 q$ @* x
bStart = FALSE;
% {9 M( Y; q7 T0 W0 e}
5 r! E- B/ d5 X) C% f1 s+ u( m( L; ?+ X: L) ^
CWndAutoFood::~CWndAutoFood()
1 Z: n1 r v. \9 [9 h/ K( S{. k9 c2 C: x k: p
AfxMessageBox( "AutoFood ist gestorben " );
4 e: K% `! X* b3 B}0 |2 B3 _. w6 V5 C9 R
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )8 R) U4 ?; O; p" l
{
' j* t; Y2 X& V. M' _; C return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );' r* x$ V( {* H: z- M/ `0 U8 J
}# P/ D$ ^, m. {2 ]' O; u8 O* o
9 V; C, j% Q% ?: `9 A0 u! \
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )0 g! x) N- s9 e$ L Z2 D, a: E
{* Q% m6 ]8 S% d4 C; e( c& B
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% r7 R: I0 I$ c CRect rect = pWndCtrl->rect;% K3 x% V& O1 G3 E( Q) i2 S
if( rect && rect.PtInRect( point ) )
7 t' M ]/ F) s6 z$ [5 }! Y {
2 B# y2 Z) O8 i% m CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
/ C6 {3 d9 G9 x* L0 U- { if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
V. j2 S0 e5 d/ l4 @ {
* | H# B Y' d/ N4 \! w if( m_pItemElem )
: q) E: e' P) r0 [2 V {
$ V% `' k* Z) ~# Z m_pItemElem = NULL;
1 ?) B q1 _2 G8 k" w3 S }
7 D' r% P9 k& @, x3 j8 S m_pItemElem = pItemElem;) K, O" P3 h3 a& }+ N, S" O3 R8 R, ^. L
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );# d& b5 t1 w* X& `4 M4 s
}else{
% d/ m5 E" j) R# l+ y SetForbid( TRUE );. y1 Y f! X/ u9 q6 Q
}0 f" A j* i" k) ?
}else{4 _& |$ L. l9 r3 y
SetForbid( TRUE );; u# G L( ]( v$ F1 @/ A% Z5 T
}% u0 L* {9 g& j& `4 W
return TRUE;* A6 s) w" i7 n' z
}; k6 H4 p7 [7 L4 j
+ i# _0 M" L6 h1 c
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
6 L. f# v2 E8 }/ d9 Z{. `2 }7 E. [0 S+ L6 K' s, P4 n
switch( nID ); s! G2 \) L; f' G2 r
{
+ {# Q) _2 f( \: F6 g; ?& o case WIDC_BUTTON3:
* D8 S. J7 y( ?+ v, i {, g1 b" S* z5 f
bStart = TRUE;
# Q q+ k; x7 x6 R break;
5 Q3 C' ^; i D1 y- _+ H1 f }
. O* U1 ^1 y% m1 g, ?6 i case WIDC_BUTTON4:1 i7 i2 b- u) x, [ I3 j: o: I
{
0 i% D; q, b3 n& M, c5 p% C bStart = FALSE;# ]7 R( K/ ]0 O7 K
break;: R" [3 y( T7 V/ T3 s- ^
}
- \/ z* H \0 L& N* ^+ W: `/ ?6 T }
# i2 G4 ?, ~# O% R) Q return CWndNeuz::OnChildNotify( message, nID, pLResult );
4 L1 P6 d9 L' @8 x N/ h R} , t! r- F" f9 B. ^' Y# T
void CWndAutoFood::OnDraw( C2DRender* p2DRender )3 W; A, Y9 g4 F. t: g
{7 }4 B9 o) D* W1 J4 _3 B8 e
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );* H5 u5 | c$ f0 \: {
if( bStart || !m_pItemElem )
# a; M% m( |3 `$ c b, A {7 q1 @3 w: J- I( T) u9 V/ J
pBtn->EnableWindow( FALSE );
V! H, Q4 ?. i$ o4 z& [0 K }else
9 n' F; L' J( ]7 |; ? pBtn->EnableWindow( TRUE );
" ?# Q Y* h# L' X# E1 V if( m_pTexture )- u4 U0 F% x5 ]4 h4 k, L1 r8 T. Q
{7 F5 k, ? [ r+ e1 v
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
$ {3 ^( W6 U4 C2 R ]3 J' U7 @ if( wndCtrl && wndCtrl->rect )
( T+ O, J0 q+ N7 w; B {
. Z9 S& c& o3 z0 p& G5 I m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );1 E0 u) ~$ t# e( P9 I+ b: S
}
. H H$ H" h+ ]" i } g8 U2 a: i9 }
}8 V- a5 `" t" D+ Y( v& ^
9 v& R: N6 d; ` ~; h: wBOOL CWndAutoFood: rocess()' d; N* Y2 Q. I9 K, O; o* |. J
{
% G! L* v* [7 o6 P. d5 I- F if( bStart )2 G: J1 h" R1 y" ]6 S2 z6 w
{ ^' S& \2 t) q) O! x
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ). R6 A3 S' p7 e7 g7 o) O. `
{
& t; t9 n4 n* P% M5 j 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 m" x1 Q& n& ]: P4 K; K g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
! E$ u: C% r6 l) S* h$ _# P6 V }else{, S9 m2 p2 ^0 H" i
bStart = FALSE;/ |; X) V1 z1 o: h$ E
m_pItemElem = NULL;
! L- Y) f) b5 k0 f7 x& k7 t3 I }! L0 F- Q$ X* m( D
}8 L) {$ p: \8 m- {) h
return TRUE;- o+ O$ ^: m7 h# t, O2 p7 j C1 e( u
}. J; M) {* a8 O( _. @! I4 ]
1 l: s( V [& |3 x( h0 g. _+ b- V7 H/ q
登录视频废话:
6 l% h0 t2 v( M! X% X6 p$ s- |, h尾翼:5 e2 y) H) N5 g) i/ J
# F7 r) x4 l4 ~( M( O; {
代码:/ Q* u) {; j+ |$ g5 f+ R. W5 \
* r5 z& k! }* U+ Gvoid CWorld::SetLight( BOOL bLight )
* T3 z* U2 x U! \9 l" \4 ]3 [durch& L, n9 z. k2 }. d
Code:
3 n6 @9 ] j M0 [; c+ i2 @, Avoid CWorld::SetLight( BOOL bLight )
5 k/ k9 b8 `+ t{5 M- s* s6 X ]! E5 m
//ACE("SetLight %d \n", bLight);, p5 k0 D! f0 e
: l( W9 G& W3 Z$ s$ q$ p4 Q5 Y
#ifndef __WORLDSERVER . O, F# F* m& k F4 ~& h$ A9 A4 Y+ M/ s
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0); o7 @2 q3 |0 \9 [, @9 C) y I. _
CLight* pLight = NULL;8 H) L7 l% ]. C5 i8 \
+ a _5 G$ e/ o, H: q. V+ h$ B D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
1 z; R B) M: A4 S$ S) Y* s: c
+ |7 Q2 H! N* K$ f0 b pLight = GetLight( "direction" );* p# }: q4 D( J3 I$ A8 r
; N9 I) J5 U' p, F% @
#if __VER >= 15 // __BS_CHANGING_ENVIR
- Z8 t3 }* i, v* g if( g_pPlayer ){# | N; t3 ~" {1 N W
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );. c: Y0 o7 h. s' P9 u# g# [3 t
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
8 Y" l$ w# D! E {/ `8 w' }' {3 s& s% b& `) o
if( pLight )
7 V1 ?% T& D3 g; y5 X! M: z: k9 Q$ Q {
4 m' C8 G- S( H- \- ` pLight->Ambient.r = pInfo->_fAmbient[ 0 ];% ]$ v+ n" H r# D
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];& f' H& Z) E+ D) C( b' D* P4 R3 w
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
" S E. G( n4 B) Q7 r
$ ? y6 C! _$ i6 L pLight->Specular.r = 2.0f;0 m( V6 `- R+ B9 U& x2 q. b$ q9 J
pLight->Specular.g = 2.0f;
7 p. F5 \/ Z/ } pLight->Specular.b = 2.0f;1 j7 r) v/ D$ @4 \) O1 y: {
1 _1 @& q+ v) |, W( Z! y
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];; S5 O* H8 G0 e' P2 ~$ W
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];5 N; Z4 z, L0 w) n
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
: f- [$ [$ S+ C0 b$ y: E# y . G5 \3 A2 P8 S
HookUpdateLight( pLight );
* S/ s* s& i6 X% y3 @/ O% q4 O% W, Q
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
/ \5 B6 X& w4 I4 G+ t" I
; F9 ^5 W \! l pLight->Diffuse.r *= 1.2f;
) u& E5 r7 Z+ u pLight->Diffuse.g *= 1.2f;& j) j8 F, U7 \" A J W' l
pLight->Diffuse.b *= 1.2f;
3 k7 V1 k& }; W& i: _0 x* R6 r2 ]8 o7 m1 G/ ]( k# J
pLight->Ambient.r *= 0.8f;
w5 I; J) N% C* z4 B pLight->Ambient.g *= 0.8f;
4 b( t ~% H) Z) T" A pLight->Ambient.b *= 0.8f;
K, ^2 @% c6 D 5 T1 ?( o6 } H" v5 C. \: b
memcpy( &m_light, pLight, sizeof( m_light ) );7 b% k* e+ W _, g8 Y
. o% W% e- f4 g& D/ w. u
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);1 H7 ?! \/ r: ]) b4 M
D3DXVec3Normalize(&(vecSun),&(vecSun));$ r! t% a" f* R/ U- e
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
1 N) Q( {- S) _: \. D pLight->Appear( m_pd3dDevice, TRUE );5 T+ O5 y+ h9 V+ { x! c# n
6 ^' s9 B0 O" @) J6 Z1 u DWORD dwR, dwG, dwB;
. j4 p: t0 a0 Y& S dwR = (DWORD)( pLight->Ambient.r * 255 );
& n0 j) a; I2 h5 }% m dwG = (DWORD)( pLight->Ambient.g * 255 );9 s V6 f J! d& ^8 T
dwB = (DWORD)( pLight->Ambient.b * 255 );
9 ?- T; U& y; K* F, Q" L dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 H1 o1 W$ Q, w" u3 D
}8 Q. ~2 B; M; @
}
# k. @2 Y0 [2 S W }# o% j' ?6 G$ r, u% `) K
else
4 T3 [7 h7 w2 I; y#endif
) z1 o5 \3 M p! }) t: @+ K0 H. ]9 e0 ?6 Z. B! h$ M: P
if( m_bIsIndoor )
/ h7 q" i! a* d0 V x( j% U1 O! w {5 I7 r& ]/ d. a W4 |* P
if( pLight ) o5 _2 O( i/ Y3 O( O% }
{
. E! C# ^7 `( x0 i; K8 x( d. b // à??μ oˉè*
7 h9 K( B5 g7 d3 E# N pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
4 [3 i: C. v9 Q; g pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
G2 t8 h) `9 t1 B: I8 ^& _( ` pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
+ R8 U8 t/ r1 F" H0 n6 {9 C2 ^- t9 e# a( e( a
// oˉè* ??à? ! R+ `& i, ?* ~/ a
pLight->Specular.r = 1.0f;
5 o+ R; k/ K6 Y2 r) B pLight->Specular.g = 1.0f;
: k g' I% z& J6 v pLight->Specular.b = 1.0f;
0 _3 y* O& }+ V1 j // àü?? oˉè* # e* ]8 i) Y9 k
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;' ~% i( F7 q+ g- e! a
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;* z3 c6 i: h, R/ m7 _7 R8 u
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
. h# _1 O( i: e6 t3 V8 D
' w* s' s4 N$ x N if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
+ r7 A# u! z$ d. f% Y0 ]6 | {
/ m: [1 |8 @( q- S" ? pLight->Diffuse.r *= 0.6f;1 K& A, S* f: ]9 {; g
pLight->Diffuse.g *= 0.6f;! a% @& ^! p+ U; Q6 ?. d
pLight->Diffuse.b *= 0.6f;4 {* D" o6 k5 ]9 E6 c
pLight->Ambient.r *= 0.7f;
/ |8 o! W$ I Y/ p4 z pLight->Ambient.g *= 0.7f;
8 k1 m' s/ ?/ N. e/ I4 d pLight->Ambient.b *= 0.7f;
% m( } \* f' B& `! V+ t2 @5 u }
/ ]. p! S8 N; b
) L3 p: g1 v! W7 U) t9 R7 k) y#if __VER >= 15 // __BS_CHANGING_ENVIR) Y) G( B) l8 H- C9 U
if( g_pPlayer )' |5 [* C; Y% `; c+ X4 s
HookUpdateLight( pLight );
) X \9 Y# C! h2 m) o/ B- T) W#endif
4 d& }! o2 C- x0 _ l* O F4 \ memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );, m, _3 k; N- O) z" l9 }3 Q/ n8 H6 p
* {6 g; L5 P. j
pLight->Diffuse.r += 0.1f;+ M2 A) ^* c5 a$ I% f
pLight->Diffuse.g += 0.1f;) g% S: S6 I6 W* X* U* {
pLight->Diffuse.b += 0.1f;5 D4 n- k. N( C2 G* Y' g8 A
// oˉè* ??à?
! p9 x8 R: o: Y pLight->Specular.r = 2.0f;
9 ~# a7 t. H0 Q y. [- Z; ? pLight->Specular.g = 2.0f; R: i1 S9 J1 o2 O+ _ |
pLight->Specular.b = 2.0f;
1 X+ x$ z3 N0 F$ i // á?oˉ ( {3 |" H7 S( P3 N
pLight->Ambient.r *= 0.9f;
9 q: U& J% u. ^* r2 `% N, C/ ] pLight->Ambient.g *= 0.9f;2 c6 d1 p: [, E" y7 O
pLight->Ambient.b *= 0.9f;
; y* ~% Q. A: X& D0 b5 ?; O9 \3 g) ?- u' K
memcpy( &m_light, pLight, sizeof( m_light ) );
1 q& d6 B- n1 a6 T; _
. g2 s7 \6 C/ a& A pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
2 |; R7 v7 O) m! L) H% ~ pLight->Appear( m_pd3dDevice, TRUE );. ?9 h( Y6 h5 R% @
( X" p+ F0 i0 e+ m# x' }( R DWORD dwR, dwG, dwB;( m6 I ^7 X1 }) k, W) j1 z j
dwR = (DWORD)( pLight->Ambient.r * 255 );
& B1 t! F! U% Y2 L# c" ^& s7 g dwG = (DWORD)( pLight->Ambient.g * 255 );
# V `3 d2 ^2 @/ ]; `/ X \( p dwB = (DWORD)( pLight->Ambient.b * 255 );) ] B7 M/ _+ `4 X3 W2 ]& b2 n
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );! V! d3 S; L1 L6 f* j4 z) m1 ?
}/ H& L1 f8 k, i' }7 I9 I
}- u- N7 v. E/ x: g1 Z7 I
else
; m1 N2 B6 D* b8 \ {
: V; h$ q8 H# y( {! W8 }1 E if( pLight ): L# B5 M# D0 q% }3 v! C K! V' d
{8 C2 k$ ]- l/ w% P
% C" {, a4 H) B# j+ V
int nHour = 8, nMin = 0;
& A5 C$ b6 D$ p #ifdef __CLIENT( I) r3 y; ~$ B
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
0 b% x& m; @& ^5 Y+ Z& V nHour = g_GameTimer.m_nHour;3 m# k& H: D/ w% }3 F
nMin = g_GameTimer.m_nMin ;9 W- E- y! Z" s% B# I' v
#else% ^5 P7 _# ] [ ?( Q! z6 @, l
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.: R- m, K. X" |$ _$ K
if( m_nLightType == 1 )
1 K2 D% l( C1 T1 Q7 k nHour = m_nLightHour;/ v6 o) C9 V1 z, r# N0 ]6 t0 X
#endif
% \9 {+ {) R- r nHour--;6 { {7 E( Z+ U1 F* m
if( nHour < 0 ) nHour = 0;
0 @+ J# F+ `# T* ~ if( nHour > 23 ) nHour = 23;
) D' j' i t$ i' Y E0 e! f8 i& x( r4 h$ U
//if( m_bFixedHour )
8 t- Q) _1 k( z# @! e/ s // nHour = m_nFixedHour, nMin = 0;
5 n, t: y. v4 ?! r0 @* U: `/ |- v% } LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];; }8 d. W) y5 A) n' q( \" e
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
" F l# h1 m/ I- ~3 F, y& [+ p& E# K' z) S; _0 P
//m_lightColor = lightColorPrv;! g7 ^6 P! a A% t- B! ^$ `
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;5 m1 ], Y/ s5 a: k6 z
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60; H; i, K3 ?2 K$ A7 e
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;+ y: R |- E+ C W
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
2 g, ]' l; y7 p) l3 ]- W lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
) Y9 s+ Q4 L' Z lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
' `6 _3 y' }1 D0 B // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
8 A$ n) u' t8 O0 A) I. d4 k3 d: @0 W3 g' M
// à??μ oˉè*
3 i; A E% K( S pLight->Diffuse.r = lightColorPrv.r1;! B/ L1 l+ B2 l
pLight->Diffuse.g = lightColorPrv.g1;
. i4 j) Q6 K( A& J pLight->Diffuse.b = lightColorPrv.b1;; M1 U4 V" s# b
// oˉè* ??à?
, T4 G, r( Y" u: k pLight->Specular.r = 1.0f;, V8 H5 |& q4 s: a- M8 X
pLight->Specular.g = 1.0f; m% V' x* m; n# q
pLight->Specular.b = 1.0f;) y, w) d3 @8 B( v! Y0 u6 |
// àü?? oˉè* 4 m0 ?: K- f! z- z2 J3 u
pLight->Ambient.r = lightColorPrv.r2;
$ ]* s- A0 {- D- v3 V pLight->Ambient.g = lightColorPrv.g2;
5 l" C4 t6 u, S1 f$ [ pLight->Ambient.b = lightColorPrv.b2;& K- s; x8 r. s: N: C
& B/ ~; [2 S, r2 o4 ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
3 m- p/ e! ]3 Y {8 M" e3 z2 a, `( }8 f2 n2 l4 f
pLight->Diffuse.r *= 0.6f;1 I! {: c% `+ }; Z3 C& `
pLight->Diffuse.g *= 0.6f;
' [$ b5 b) Y$ V2 y pLight->Diffuse.b *= 0.6f;
) l" ]6 s. Z$ ~6 C& K" s: b pLight->Ambient.r *= 0.7f;0 k3 `$ j4 u$ a' L# I/ Y+ d
pLight->Ambient.g *= 0.7f;8 ?6 s9 y" {1 Q) R/ O
pLight->Ambient.b *= 0.7f;
! w; i2 h0 B) f# f0 p% W7 G, \ }
n( [2 y+ ]* F; V" G
) c- S! Z! U# ^( U#if __VER >= 15 // __BS_CHANGING_ENVIR
" T s. X# w* @ if( g_pPlayer )
: j6 A* ]0 \5 I% j. u( u" _ HookUpdateLight( pLight ); # }$ V1 S/ i7 g8 Z
#endif8 c; Y/ u% Y; ]; V) |( w5 o
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );4 |3 {5 j, Z ^2 B( G8 ~5 A
9 z9 \6 W1 \* n' Z. ^0 Z
#ifdef __YENV
& l# H+ O2 x: G4 m$ J( ~ pLight->Diffuse.r *= 1.1f;
! Q* m& M# i/ P; [+ |) Y pLight->Diffuse.g *= 1.1f;
( @6 E* J4 m( o pLight->Diffuse.b *= 1.1f;
# q: b, r. P# e6 Y, a) t) J // oˉè* ??à? . @( q8 h/ A7 f; j) l
pLight->Specular.r = 2.0f;% p- `1 Q* [5 Z' v" d
pLight->Specular.g = 2.0f;
1 b6 b. t' w6 k pLight->Specular.b = 2.0f;% X' x. s! {+ t: l0 J
// á?oˉ ' O6 |9 q( {' ~# @
pLight->Ambient.r *= 1.0f;' ^% j0 }' ]! e
pLight->Ambient.g *= 1.0f;
. W: C E9 o c; E0 T- Z4 ?! L pLight->Ambient.b *= 1.0f;: i: x& Y+ |; n9 }
#else //__YENV
+ o) b. r9 `+ f' A' \, r( p) i2 ~ pLight->Diffuse.r *= 1.1f;* R/ }7 o5 G2 `/ N, I! H/ c- F
pLight->Diffuse.g *= 1.1f;
% u& e: b: d. w pLight->Diffuse.b *= 1.1f;3 _( ~$ A; B2 s# D; P
// oˉè* ??à?
' l! `6 ^; l' H pLight->Specular.r = 2.0f;
+ u1 i2 R: d* M4 ~5 x7 c pLight->Specular.g = 2.0f;
7 h B+ O. g6 q5 }3 Y pLight->Specular.b = 2.0f;& E/ b: c7 S1 b* a
// á?oˉ 5 u) c; O9 I3 t, }" Q$ o
pLight->Ambient.r *= 0.9f;
4 m' L1 {& P0 u( W9 j- ^6 w, ?" I q pLight->Ambient.g *= 0.9f;$ r4 T+ d9 t" Y% g% n& n. J" j; _
pLight->Ambient.b *= 0.9f;; \3 o# [5 ]8 h% F
#endif //__YENV
/ Z4 q. t- K& R) T7 P6 V7 g - L5 ~ m$ Z6 v
memcpy( &m_light, pLight, sizeof( m_light ) );& ~: ^, k/ v! A; Z
1 e2 ?6 Q" r1 I! z. j) c
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
2 Y v: s3 e7 V W: G5 ~6 e9 n- {" j D3DXMATRIX matTemp;
2 k2 a/ U) E5 J! _2 n7 o static const float CONS_VAL = 3.1415926f / 180.f;' c! O3 o* P6 I) Q0 ?
" a- Z6 n- r! \6 t' P. U+ X
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
9 d9 |4 P0 ]) u' [$ ]6 \ D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);" [/ |6 z2 v. u0 @5 n3 @4 D( r( R& c
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
0 l" ~8 N1 D& S9 o pLight->Appear( m_pd3dDevice, TRUE );
3 R! R/ J. l) h5 u4 H# s/ l% F9 u/ ^
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
; ?4 q' }* E2 N3 P // D3DXVec3Normalize(&(vecSun),&(vecSun));
( J* Y; K) L, j& a8 w- B( w // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 ^, ^4 K8 _) `2 u3 f* y9 _4 _* F: T8 y9 M- Z* U, n* |
DWORD dwR, dwG, dwB;' U3 Q, D/ p# m8 ]; `
dwR = (DWORD)( pLight->Ambient.r * 255 );+ B3 W6 M4 Z! C% Z* I& l+ f
dwG = (DWORD)( pLight->Ambient.g * 255 );+ B) U% v) S1 w
dwB = (DWORD)( pLight->Ambient.b * 255 );. ]( i% [6 C/ [0 q5 T7 N6 W
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); 5 b6 Q/ K* `) V+ ?- x9 j9 c
}% S' P, m' x& B7 ^
}) t( D# Z' L- f
# m1 Z, M* s% _# J
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
% c/ O. N o* Z. U! v 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) );' l( F+ ?& H! ~$ X c
::SetLight( bLight );
. c$ t9 @9 U$ j* Q! q/ J2 n
, W$ j% X& S! k( V, j( g6 ], J // ±ao? ?D?í???ó á¤à?
) F- `" R, \- ~5 i% _ m_pd3dDevice->SetMaterial( &m_baseMaterial );
4 Y* {. [4 f2 z3 R " ^/ x* k: b# h# B! }
#endif // not WORLDSERVER
% S' x& E, c2 X' _; M3 P$ ~}
! e- G2 s4 A9 g2 `) H& {% e并更换0 K* [1 ~% e* b/ r, O
Code:& S3 @3 C V! w+ _$ `
__FLYFF_INITPAGE_EXT7 e+ c; z$ L* M8 r) {' ]6 G
定义2 R$ _4 j e0 }, X+ N: G2 V+ |
# C6 J6 ^* A: v/ Y7 q
, U$ `7 e ?, U) S0 f$ O Z, D: J
* s; H9 l3 s4 A Y+ b' U3 z5 n1 j4 a
现在终于删除我的狗屁加速...3 q! s6 }# \7 j! x+ a4 | P2 ?; v
6 f4 j) ?, X$ u/ L( D8 f0 v+ r* T' e& _
, q" ?/ m; S6 ]- Y, t8 [ |
|