|
|
食品车:8 J$ W6 B& D7 Y
尾翼:
; p! }* u1 r6 C- Z
. _8 ?* R6 @0 i) g7 W代码:
6 y5 `. p3 X: `9 ? LCWndAutoFood::CWndAutoFood()& @4 M0 _! g: O8 P6 V4 c; y* Q
{
8 W' B# t" K: ~% \, N6 p5 {$ O m_pItemElem = NULL;0 c# Z* T' L6 r% |2 a- A
m_pTexture = NULL;
2 @+ i5 G" p" k6 \! p bStart = FALSE;' E3 x9 A# {' Z
}
! w! H' h7 V) M3 B* a
9 ~' @8 t. P! q/ D z+ DCWndAutoFood::~CWndAutoFood()
! r) O+ O& D7 Q' S9 u6 {{2 S, S1 M1 |$ u$ z$ v, x/ F1 \/ k" H
AfxMessageBox( "AutoFood ist gestorben " );/ p" c; @. H4 ]% X# N5 r
}
& a# s7 }- Y" O* D: z; |5 |BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
6 q8 [% z% G* [1 _- x{
: z3 p/ L+ x' q% ^ return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );" I p4 Y4 Q6 @+ M" n/ N
}" w0 J# u: y% S# ], i5 [7 G1 v
. t# {) [: v# UBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )4 c! O9 L ]6 @- D7 }
{4 K; g5 D- `" D3 R% ^. K. m+ c s
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
. e6 F2 z8 r) B, l CRect rect = pWndCtrl->rect;8 h2 K1 Y" w: t$ L
if( rect && rect.PtInRect( point ) )
" P) I# o. L5 N; X2 i+ y5 J {
+ l; u( q1 x7 f& l3 f7 b }* f CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );* U8 X, F: }+ w8 V5 y% b+ L2 [
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
3 U K0 }0 o. x {
" E8 Q& x2 s' ^8 I. w# S' M if( m_pItemElem )( p% j6 ~8 I6 E* \' s5 S
{& K& K$ u6 l7 D3 j
m_pItemElem = NULL;" u& [* l6 r# `5 O7 X! J8 X
} S4 D4 j0 w8 R8 |
m_pItemElem = pItemElem;
+ u- \6 v6 U4 H+ L' _ m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );1 w: N* ^$ P- Z* Z2 l: V. |% J
}else{7 ~) k) [! P' T9 u) r
SetForbid( TRUE );
: Q% G! ] p* o- ~3 x1 ` }6 U2 n) u! o( h; Z0 b7 C
}else{
8 K' K' J7 \# ]0 w. X9 ] SetForbid( TRUE );
* p% N. i. ^$ s6 ? }2 `7 f* ` C% |" z1 T3 m
return TRUE;5 p$ z' i+ _7 X% v+ v6 A [
}9 I5 t$ j+ v) K$ J9 s. Z4 n# {
1 {2 S! O' c; y
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
; J- R9 a* M8 J; |; L{
" |2 O' p( N9 M. J1 { M2 b switch( nID )
+ h/ M9 f/ _8 f4 H. \$ S. P8 n9 x {
3 t2 C6 x8 g6 \. N case WIDC_BUTTON3:
: h6 N3 }* Y; F1 m {
1 F3 n: k$ w% t' O; Y bStart = TRUE;
9 u7 q; L1 |' T1 @4 N1 q8 i( L& z6 K break;
6 Z4 J$ o$ C$ ]; [ }& ~6 R( ?; z4 r4 W
case WIDC_BUTTON4:7 h# T& b7 [1 }
{) Z; i+ S! Y& n8 w( m
bStart = FALSE;5 q/ F& ~# k8 a% [ i
break;
8 B: w0 c% R" a9 p5 k# J }
" ?& v. O- Y* l6 S+ Z; W1 K }) u: a5 U2 y+ C
return CWndNeuz::OnChildNotify( message, nID, pLResult );0 q$ Z' h4 T1 m
} Q6 Q) A4 w: A
void CWndAutoFood::OnDraw( C2DRender* p2DRender )2 l8 e+ ?' X# g0 Q
{( B8 o! e/ i0 ]
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );$ {& z2 W/ d# L' a# O$ m" P' p& v
if( bStart || !m_pItemElem ): b; a. n2 [; r( I: I& Q
{
[' [) M8 G' {; F4 K3 F) e; M# ] pBtn->EnableWindow( FALSE );
! m. B. T/ h( i3 e }else
6 L% y7 R' w1 ^, c$ X4 j) [ pBtn->EnableWindow( TRUE );/ @ w6 @- ~3 m" x: @4 F2 `% n
if( m_pTexture )
0 v" T2 `, y) ?( U6 X4 F {
! E0 m6 z' J8 {% g9 z y. r: c LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );* @; v7 l* F! B" ` w+ d, I6 S
if( wndCtrl && wndCtrl->rect )
3 T# L4 k; k8 t+ f {
; R" n5 B( s3 F" b( R m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );! K6 y. ^/ H, G
}
8 S& _* M9 D5 A' ^' M7 d# A" f7 i }2 {8 Z; F- h+ e' o/ M' t) i* s9 ]
}
. I4 f; `0 B' [" S
4 Z: n" o) Y) |6 D' @* Y; Y1 jBOOL CWndAutoFood: rocess(): K: e( U3 E+ e* y
{* l' L, q* a7 S0 g. Q* w
if( bStart )" k! k1 u3 y8 ~! Y- i* T
{3 v# T; R1 Z5 K3 s0 u n
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )( o( d% P! X$ j3 G+ f6 |
{
* b! O, H! U5 r1 \ if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )$ _ ^9 F" Q& \
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
, u* c/ w( h* H& A7 H0 n, i }else{
& }3 W" n* H2 c- v$ |9 j' S7 J* ~ bStart = FALSE;
3 s# P7 X3 a5 R& `: K% Z* _" I1 R m_pItemElem = NULL;
. _5 v" l) n% {0 t8 [' Q7 @$ E5 q0 | }
& x3 g$ ~+ Z9 U }
* `# j! g6 K9 I! e return TRUE;
# ^5 _9 p: W ^: V+ E, ]% j/ m( q} z! G: ~3 {" W7 }
! j( V, u* { T& |' ?9 g7 R- B! a
登录视频废话:8 C' h" s% \* W( P/ O
尾翼:
8 e& O" O$ h. k5 R7 v
1 Q9 {. B/ [, Z1 t+ B6 `代码:" B- [2 ^$ S+ o# f
( c7 F2 P P) f( j( Z
void CWorld::SetLight( BOOL bLight ). U% w' n0 F( s7 l/ w" U
durch
( g3 X0 C1 F9 ?6 GCode:
! U" E! }* y& a* p2 ]0 H$ _' Bvoid CWorld::SetLight( BOOL bLight )+ a& i* |0 L L/ u2 |4 J% f6 X
{5 s8 ], C* R3 E+ c) D# T3 m. X R
//ACE("SetLight %d \n", bLight);
0 i5 s i" ]& w" V1 \ B
$ W. d6 E& p* A! R8 ]#ifndef __WORLDSERVER
r, K9 ]2 t1 g! z" h o DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);) q- H0 T3 F! n
CLight* pLight = NULL;4 u2 _; P& C1 E$ i' L
- E. n# a7 J# Q& {4 a$ d$ K% o D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
6 V5 J2 I6 h7 T2 L- {9 i) ^7 z" \ E
5 U5 X' R: H3 c5 Y( j" {: m pLight = GetLight( "direction" );' y$ M( e2 H6 g. Y7 O2 ~; I2 ]
/ U* l, ?$ u2 _* U#if __VER >= 15 // __BS_CHANGING_ENVIR
. w* M& P4 C5 Q6 n" C+ E/ L if( g_pPlayer ){% b9 `& B: J7 n- A* q
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
8 B( S: V" ]) `" L1 @( X2 |8 K/ D. k if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
4 B; q+ G5 @# X6 r0 l {
+ A) X9 K, \$ @, O0 u. V J if( pLight )' Z# r4 N. y1 e6 q) [
{
- a3 d9 v9 g N9 [8 B7 P pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
: B0 J7 k) _0 r: x" I pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
- W3 x, P( ^0 [/ T! W& H- L$ } pLight->Ambient.b = pInfo->_fAmbient[ 2 ];0 ?8 p; d' b" X+ x2 f
. v; z" y* R+ L0 s# O
pLight->Specular.r = 2.0f;1 c- W2 ?9 u/ }; e
pLight->Specular.g = 2.0f;8 X0 \* L' b0 J' a. ]
pLight->Specular.b = 2.0f;
3 p$ a& H8 Y. S ! M5 J ]! G' O" I( a* t' r% {
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
5 C: X; b2 f# E; q3 Q! L! {5 | pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
, w1 p5 [8 w. ~, t/ n5 P% \) j pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];- l2 j2 U: Y' T; k
) F5 @# m1 s# U! r p% {" x
HookUpdateLight( pLight );
& L1 Y; h1 v ~" f4 |) s; D4 v+ n0 L0 J9 s
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; e8 y5 N- L0 c4 N+ x
$ h; r3 f. u# D+ j/ h$ w: `" I* c pLight->Diffuse.r *= 1.2f;8 P O* L! C/ Q _
pLight->Diffuse.g *= 1.2f;8 R+ s K3 A _7 M- \& ]% |, s, O7 {
pLight->Diffuse.b *= 1.2f;) w/ x- K, p ~( x$ W( m' R
( E& T) K, ?; \9 {) Z) Q
pLight->Ambient.r *= 0.8f;' h Q0 _1 J! Q/ y
pLight->Ambient.g *= 0.8f;2 U# V; }# q* a5 {$ p' ~+ X
pLight->Ambient.b *= 0.8f; ^) {( B* O2 W& F
! E# j- ~ M% A" G$ r
memcpy( &m_light, pLight, sizeof( m_light ) );
O+ E3 y, U1 d% U% j& ~% y" I6 E: g4 }; u, g# } n9 I S
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);. N( M8 Q* c4 x2 q4 u' a" O6 G: W
D3DXVec3Normalize(&(vecSun),&(vecSun));( Y1 D! I, E1 d, |/ d2 b* O; z& j
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
* | r2 v: J& b1 a* p" p3 X1 s pLight->Appear( m_pd3dDevice, TRUE );
# z$ l' U% }, O! t9 H
9 B8 p- q1 N8 B! P+ L9 d. u* o DWORD dwR, dwG, dwB;' l, |2 B& S! Z6 e: f+ T% [; J
dwR = (DWORD)( pLight->Ambient.r * 255 );) x" p9 G |9 J6 i2 n5 f c* [
dwG = (DWORD)( pLight->Ambient.g * 255 );! `! e9 q3 l' W1 h
dwB = (DWORD)( pLight->Ambient.b * 255 );
; s" ~3 T/ y6 I1 u: x dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );& b5 M% E/ o$ Y; A' p) f; Y/ R4 q+ ]( Z
}* [/ a5 z$ ~( j" R0 T- i/ ]6 q
}
u" [; x S8 {3 R' f; V }
: z& [" a" O- g2 n7 s; |# n else" e* {( T6 E7 Q$ Y' ?
#endif 9 K6 G' o$ F+ N0 ~' t2 L/ Q+ h) N
7 P+ o l% D' n0 W if( m_bIsIndoor )
9 {( v' R+ S5 c5 D4 k) C( K/ M {. B- M' S3 U% V% _" {
if( pLight )
0 x9 Z6 G! n/ e { 1 R6 ^3 c, M% ~$ P2 S' M
// à??μ oˉè*
" v$ ~, G4 K4 i1 K pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
; y, B: Y) ?1 m$ E" k" | pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;; K6 T. u7 Y- i% u! n: C8 G
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
8 [9 ^6 }, `9 n+ M/ ]5 Q, x& t
# A6 D& t4 H) e H. D* E // oˉè* ??à?
/ n9 s. F; S- [& y: D pLight->Specular.r = 1.0f;
7 m: Q2 ~+ y) T pLight->Specular.g = 1.0f;
) v! |$ V2 B& B pLight->Specular.b = 1.0f;* ~; ~/ H/ V- P+ u/ ^" m
// àü?? oˉè* / v9 H/ ^4 R7 y) J
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;4 I4 ~5 R4 B. I- V/ m+ W3 x
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
3 D8 T5 O" k1 j% S5 R pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;* v, B4 e& S" N, x
( R, s1 |6 w& B% Y
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
# D1 H" k, _# P i0 }' o {
% E4 T8 F' W; l4 _ pLight->Diffuse.r *= 0.6f;4 |, C; `, H% k7 D: m+ K7 t% V0 ]
pLight->Diffuse.g *= 0.6f;
, n+ a! o! V% U( K! G pLight->Diffuse.b *= 0.6f;
# Y$ T, J% p- g5 j( m0 V' C pLight->Ambient.r *= 0.7f;; ^# ^) P% {- K2 L4 w" |0 g
pLight->Ambient.g *= 0.7f;; l" x0 O9 A+ t1 S. f
pLight->Ambient.b *= 0.7f;9 y# l' T5 m+ z
}
2 E! K% w4 s+ @! {* A5 R
8 {3 ]: F" G" v% B0 [8 p3 V4 W#if __VER >= 15 // __BS_CHANGING_ENVIR
5 @0 d$ n: C! d6 A$ p! L if( g_pPlayer )" M; a7 L) s J
HookUpdateLight( pLight );
5 c% _& H& |& `- C#endif6 K3 K) Q* m( c
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 J1 N3 e4 N+ N$ E" |& H8 }) @ D- w( v
pLight->Diffuse.r += 0.1f; b$ X" o! J r9 N" K5 G
pLight->Diffuse.g += 0.1f;9 ]$ `4 `5 `2 F1 H8 x( J
pLight->Diffuse.b += 0.1f;: t, ^! c; B% O0 ?$ Q
// oˉè* ??à? - T3 q9 y( t& ]" @4 z
pLight->Specular.r = 2.0f;
2 N* o; M% x7 Y pLight->Specular.g = 2.0f;
& g6 C5 A j. B' h pLight->Specular.b = 2.0f;
s2 [, k/ V) Z5 W // á?oˉ 4 R& ?5 f, ]. W% R% {1 N
pLight->Ambient.r *= 0.9f;2 _9 P& i- R7 m# a( ]
pLight->Ambient.g *= 0.9f;' d, X$ x) a) p& Q* |
pLight->Ambient.b *= 0.9f;# b3 ]* V! Z( G) w- M4 o% T
5 X" t* H" w4 I memcpy( &m_light, pLight, sizeof( m_light ) );
: F! m8 E1 K! k% Y3 Z
* h% I8 a+ h/ E/ z2 P( Q3 n, ? pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
. m# h8 ]7 u+ \! W* G/ i, m" F2 C pLight->Appear( m_pd3dDevice, TRUE );
* F- n' o; ]% q) D% H
; X: Y% F _- d q2 n. Z# j9 n7 j/ d DWORD dwR, dwG, dwB;
! `$ B& J* |- u# ]3 Z+ E$ B dwR = (DWORD)( pLight->Ambient.r * 255 );
3 Z4 n; t+ {: G' }, ^) c dwG = (DWORD)( pLight->Ambient.g * 255 );
. U2 Q0 m, [" K; J' J dwB = (DWORD)( pLight->Ambient.b * 255 );
" I' i: x- F0 N0 x2 a. z) {+ P dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );3 C: s! p$ t4 o% ^% _* q# T. V1 T
}
2 |( T f6 d. [0 c7 \* \ }
: j) P) b8 F6 F3 r* b else+ F0 Z& F: v6 @3 U R4 Q: m( z
{
' N( F4 ~" ?/ P+ V7 I if( pLight )% ]; Y# \2 ^- Q% M' j0 @% z6 q
{! c9 x. ~1 ?! D6 H) M
; C; y0 w- |. K+ F6 L) N int nHour = 8, nMin = 0;2 \1 u( \9 W% K
#ifdef __CLIENT
/ n3 a5 e5 }7 E4 F* M$ C // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. _2 z0 C. i0 \7 y# b
nHour = g_GameTimer.m_nHour;
" U' f! y3 L0 [; Y; m* c nMin = g_GameTimer.m_nMin ;% M4 P7 Q& M4 b" L
#else
1 j9 z0 X3 ?; w, K* v // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.9 l% a$ v4 D7 ]) t0 @0 _1 N e
if( m_nLightType == 1 )
" X r6 S) p. {0 c8 _& l nHour = m_nLightHour;2 h$ p; `; \' i+ W
#endif
0 e+ e" n- B2 `; w nHour--;: K( V: F2 w7 q! u# J' g0 N
if( nHour < 0 ) nHour = 0;
6 S$ S g% X# d5 r if( nHour > 23 ) nHour = 23;
$ y A! Y. ^- V* {7 k
/ g1 V2 f! d5 {* n! C //if( m_bFixedHour )
- ^/ O; s3 J( A* g5 O! N0 \) I7 v // nHour = m_nFixedHour, nMin = 0;4 b6 [' E3 n% m( w* c
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];- }& w8 a. _* u5 H" q6 o4 h
LIGHTCOLOR lightColor = m_k24Light[ nHour ];" D( C3 R* r9 t8 {# r7 M
5 @& Y1 T2 ` `0 w4 l //m_lightColor = lightColorPrv;
0 Q6 H2 [1 O3 S7 d lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
1 e% R/ P5 X4 u8 k6 n lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;* A% [7 i3 Q: ]/ l3 R
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
2 [: e" `7 k6 S0 s( ?5 G' q lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;" p* |* g p x: k4 |( ]+ k: E
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;6 g" ^/ v/ b1 M1 }/ f0 ?# J! m* l
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;$ S6 w1 J" S8 B( M- v: L
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol) j% F3 T* w' ?8 @. J* A! H. |8 J8 d
7 j1 D' J- F; W1 V) B: d! [ // à??μ oˉè*
& }- x* e* v2 @6 r4 }& T5 f pLight->Diffuse.r = lightColorPrv.r1;
$ W$ b- G( ]8 Z# l0 o5 |6 ^) e pLight->Diffuse.g = lightColorPrv.g1;4 D) ^! |) X2 Z6 k, k, x$ P* t
pLight->Diffuse.b = lightColorPrv.b1;- d. t- X3 R! t2 `
// oˉè* ??à?
9 Z y: ~$ x* t) s pLight->Specular.r = 1.0f;
5 e1 s L5 m8 j5 k) a$ Q pLight->Specular.g = 1.0f;
( `) V X3 o7 v pLight->Specular.b = 1.0f;
7 s% {$ m) U$ b" d* @/ o3 z // àü?? oˉè* 0 k+ _! X8 A; t' v: {0 B, O" X2 C
pLight->Ambient.r = lightColorPrv.r2;- X$ @+ J: x/ f Q9 N: U
pLight->Ambient.g = lightColorPrv.g2;
1 y( b @) f" L* i" ?- _2 ~ pLight->Ambient.b = lightColorPrv.b2;
2 k' \. n1 |$ k; s! V% I% S" x5 {0 v0 D
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
) Y+ n9 Y0 k. o- \# E" d {
* F/ P6 ~6 P$ U pLight->Diffuse.r *= 0.6f;
- T. E+ _5 f+ w/ u$ F9 d& V3 x pLight->Diffuse.g *= 0.6f;, [% j2 D& k" h1 L, r
pLight->Diffuse.b *= 0.6f;
$ _# U0 `. w( b3 x* n pLight->Ambient.r *= 0.7f;
* _9 s; ?" h y) Z pLight->Ambient.g *= 0.7f;: @4 _3 e" s2 |* `7 R6 b# W9 ?0 z+ K
pLight->Ambient.b *= 0.7f;
4 q$ ^4 e$ Z! s2 F }
! O5 b7 d% f5 |: c; `
8 ~# B5 ~* ^! L9 V0 \, O#if __VER >= 15 // __BS_CHANGING_ENVIR F* D' P; P/ O1 @
if( g_pPlayer )/ h$ E7 l, P% a- C
HookUpdateLight( pLight ); + P6 ]6 Y2 o9 ]
#endif
4 z1 Y$ s: L+ S9 C3 b) o* h+ E) K memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
5 c! `7 _0 r* I U% t" I; x0 s! w
& A* c$ z) U* i9 `0 m#ifdef __YENV* x) b" Q3 }" d% |" ]
pLight->Diffuse.r *= 1.1f;# q: g+ D8 {# d4 |
pLight->Diffuse.g *= 1.1f;! \: C. M: U& b- W
pLight->Diffuse.b *= 1.1f;
& P) `1 I4 e2 R6 B; N // oˉè* ??à?
; y% @: W- \: }( I5 Z5 y0 m4 _ pLight->Specular.r = 2.0f;
, e) c" P7 ]# w2 D pLight->Specular.g = 2.0f;/ _2 y. D3 `# T# \8 D: m5 s
pLight->Specular.b = 2.0f;# P5 Q- v. g3 g! u, |
// á?oˉ
. P( S3 X0 P+ S) ?2 Q, L+ h6 p+ K7 X pLight->Ambient.r *= 1.0f;% x8 g! G* ^( _. m% w- @2 o
pLight->Ambient.g *= 1.0f;
+ E, T# y; s/ d8 T0 I7 I6 j pLight->Ambient.b *= 1.0f;
& g5 F2 t7 Z! G1 u1 b& J# P, [#else //__YENV
* ^. U4 F0 b7 K! w1 c pLight->Diffuse.r *= 1.1f;
8 n c+ j8 p; U1 D pLight->Diffuse.g *= 1.1f;: b3 A- D4 m1 B/ q7 Z2 w' Z
pLight->Diffuse.b *= 1.1f;
: `) ~( g7 B' y% ^ // oˉè* ??à?
" E# w/ h: w, B/ P/ @7 T" b* l& D pLight->Specular.r = 2.0f;! a$ m+ l# @: z
pLight->Specular.g = 2.0f;
2 I* f5 G- k2 f7 s pLight->Specular.b = 2.0f;- M5 ~9 o7 U" Q6 Z. w9 z. T
// á?oˉ
4 b B8 Y$ s" u( C1 B( x pLight->Ambient.r *= 0.9f;
2 k; M6 O4 _' B7 W pLight->Ambient.g *= 0.9f;
+ o M) r" q- O0 d s1 H pLight->Ambient.b *= 0.9f;2 [/ D" s2 M3 O, j
#endif //__YENV
2 z: Y+ }/ |# j7 E. h2 d% m , p* G1 p* U+ L% F
memcpy( &m_light, pLight, sizeof( m_light ) );
& q( n. J' {$ g5 M0 V& m . K5 b# u! G: Z5 K
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);; m0 i, K4 H# ~8 `* {
D3DXMATRIX matTemp;
" o' Y9 h2 K5 ~+ p! I2 [' ]- [ static const float CONS_VAL = 3.1415926f / 180.f;6 s+ [; f8 {5 L0 N' D
' h$ S% N1 h- g' D
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);* p$ d+ Y n x- r
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
5 m2 R# J& P& a: x pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
5 g: A! [5 ]1 U2 W& k0 q6 | pLight->Appear( m_pd3dDevice, TRUE );
* H0 i" K, v, Z N
5 J/ v& V% E3 b7 A) f; Q) j# E0 ` // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
/ q4 Q0 D! [1 H) x, l5 g/ ]/ R# ? // D3DXVec3Normalize(&(vecSun),&(vecSun));
! d9 F. `4 p. S& \, U7 g, S // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); # u& O, w7 A6 v, K, R
( l* L5 W; }6 ^6 S* q5 ]& k" ~" _/ Z DWORD dwR, dwG, dwB;
7 V" z9 ]9 ~( h J7 v* D dwR = (DWORD)( pLight->Ambient.r * 255 );: r' S t, U& b2 z6 Q/ x' T& T
dwG = (DWORD)( pLight->Ambient.g * 255 );
2 n9 e* k* ]! Z% b0 e! m+ v5 m dwB = (DWORD)( pLight->Ambient.b * 255 );+ v C0 r# I' Y0 _% k ^
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
1 s, {' a% b* J: T/ \ }
! A) e+ C& T' u. n }; _" z" m0 q& S _
* x3 s" b, G9 t+ Q. _/ Y4 N m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
V" }' ^1 ]2 w8 Z7 U* C 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) );& z8 ]- [( n# ?: T% A% c
::SetLight( bLight );$ [+ k P) B4 F1 D; \0 a
* g0 g# X# r6 B
// ±ao? ?D?í???ó á¤à? % r' Y: ] z3 u0 y/ Z
m_pd3dDevice->SetMaterial( &m_baseMaterial );6 B* G4 y+ P6 v5 r. }8 W, ^3 k/ D
* B/ _* Z: c/ a A9 U9 Q; H1 d#endif // not WORLDSERVER
- ]$ g0 S# _& x; k F} i: `3 \" F5 ~& E/ x0 B0 ~8 K
并更换- X+ @/ T# _" L, @# I1 ?$ s
Code:
- g$ ^# t' t8 S9 E' W__FLYFF_INITPAGE_EXT
! t- W& a# n+ z$ `4 T定义6 A( v) Y g+ ^$ V1 u; j* w3 l+ L
! Z4 \- Q& K4 @% S7 u/ Q* F
7 S+ \3 l4 _7 w' C8 K/ \7 ~7 I! V
1 ^) i. `* X# Q- b# P3 c
m2 N8 J% P1 N+ \ ]' E; f现在终于删除我的狗屁加速...6 b: x$ Q% V4 v% ?
$ d7 s$ |% `0 n$ }- J* O4 u5 Q& e+ |8 I( B( B4 d2 D# Q& c
$ e/ z9 ~# I( a |
|