|
|
食品车:
1 j; T4 C& m( ]) }5 o1 b- g2 i尾翼:
# m# R) `3 l+ x6 i8 T5 `4 ~" h$ ]+ Z) z' t$ V
代码:+ R6 Y6 g8 T2 v4 Y
CWndAutoFood::CWndAutoFood()
; H$ d, n. m1 E4 ~& {2 e# g( {# \{
" X. a( P( {$ \* y; y m_pItemElem = NULL;* K+ z6 \7 }) g" _1 v" R2 J$ F) Q0 ]
m_pTexture = NULL;
( Y( V2 w9 \( F; L6 I5 g7 @ bStart = FALSE;3 G( ^/ U+ G9 ]$ \' p& Q/ C0 G
}' i, E, ]/ X( [
+ ~6 D1 Q' e6 W `: \CWndAutoFood::~CWndAutoFood()3 z- I+ \; a+ c# _$ ~
{
% B' r2 g, J5 `* g1 q* c8 }- ]% a0 h AfxMessageBox( "AutoFood ist gestorben " );
1 K1 e& o, g4 T- K}/ v0 U" K7 J8 z7 T: R/ _
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )* k% M6 M+ e8 a% o
{
6 f; i, R5 _ H* k% B return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); L5 _$ x7 r) X; I8 R+ C
}
% V: t" K. K" `, u& m; ~1 @
8 b- m; I* ?+ J# Y9 FBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
" ^4 V" B: u2 C{$ b; D4 H. j; k8 V$ a! B+ U, Z2 k
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );+ `- J1 _: j) b( Z* f" N
CRect rect = pWndCtrl->rect;
. s3 H/ E3 t, V: _ if( rect && rect.PtInRect( point ) )6 h( w' c) ~+ S/ W
{
2 m7 f2 C9 F* p8 u CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
1 G1 k6 }- R, B& |! k if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
& P& `# c+ c9 \3 c" m p ] {
+ c! w* a; W- g) b( } if( m_pItemElem )
$ o, \7 Q8 h4 a: S' y {+ }* B, Y1 N: d- G8 y
m_pItemElem = NULL;
) H. b' A, ~( `- m( ~ }
) I m- \7 W8 r: W7 D: u m_pItemElem = pItemElem;
* v2 }+ _1 ?( D3 x+ z9 L' ` m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
; j, m8 A9 @: O2 p* u0 A3 i }else{
- E5 y: R6 y. u8 U8 U" R1 K: r SetForbid( TRUE );1 P u& H$ R2 Y4 B) l. [ a6 |
}3 @3 Z% u, L6 T
}else{
4 X4 l! W+ w0 d SetForbid( TRUE ); [6 g3 W5 W, J: v3 ^
}
+ a' y; l3 i% p" d9 F, W6 ]2 `; ^ return TRUE;
0 [7 e2 d$ J. @7 V# X( E; `}- P# f8 z% K* g* k& K6 B+ S
7 }0 ~% c+ h$ iBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
8 v, l4 S* J$ x0 h7 F! @; Q* z% D3 }{
% q) C+ p0 c) U1 U1 g switch( nID )
, w% R3 i5 x5 `( t {
4 k2 p" E1 |) D% z case WIDC_BUTTON3:* ]% W" R6 b9 x4 D' r5 J9 v
{% b+ p7 K7 W5 i$ r7 ]5 q, j
bStart = TRUE;! P' v9 T% X: s1 L! ~$ f1 X
break;
0 h, I% `3 D" j7 b/ J( N) D }
0 l7 ]! k+ P0 s: g( w: F case WIDC_BUTTON4:
) R/ }8 A m! ~6 v- H {
/ V" t8 x0 {! z" ]. M& V bStart = FALSE;1 K) u2 b3 y1 n U# [% Q; G
break;" P& H1 B3 l3 c$ c& T& Q) c
}4 p. N" a" z! r
}1 Q% w- N W/ s6 o; `* A i
return CWndNeuz::OnChildNotify( message, nID, pLResult );! Q; E8 O9 t* Q, u
}
& s# l' h) V/ A- \void CWndAutoFood::OnDraw( C2DRender* p2DRender )
4 O1 o8 _0 u. R# x7 n& A8 U/ e{
- \9 ~' |! X; |" V* v: W2 G6 u CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
/ o+ W+ R5 B; ]/ Q if( bStart || !m_pItemElem )( ?. x0 G% n; Q% ~4 ^# d/ R; l
{/ N- W. O2 T; m+ `' I
pBtn->EnableWindow( FALSE );
9 u% l- g/ [5 k2 C+ U! L$ L }else" A4 o: Y M, S6 U
pBtn->EnableWindow( TRUE );% O9 b3 @" h2 H t$ T, z
if( m_pTexture )
3 G- ]' _' h2 {2 {+ u) u# ~. o: R/ [ {
9 a( Y( S9 @& d7 i& G8 ] LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );' k( _2 y7 v9 M. v! F
if( wndCtrl && wndCtrl->rect )) d$ P% a, ]* Q8 n( _5 V' j* ?
{
# n" u" P/ z5 y+ Z) v m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
# j0 o3 R! C: N' N) n0 k }! X' X7 w/ l8 q6 X) F# S
}
4 W7 `( b' C! B! n' k8 x}
4 N' l3 | r) K. K) \
' \ L" k5 n5 O1 I- _BOOL CWndAutoFood: rocess(). c& }1 p( U, ^% g, V9 L/ W
{* j* W# @' R4 O7 b* E& T
if( bStart )
% K N- U' q7 U; u! t; z {9 z/ Q; i6 @& {, ` S& S
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
" b9 H7 ^2 |/ [ d+ c" y- s {
: n, u' G" j! W6 X# 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() )
! f5 g$ {, R. O0 ] g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
5 ~, f% U" {4 n" l/ j }else{
' @" {3 x4 [$ n4 M3 r; i, }* ^ bStart = FALSE;
% h( R, ~# v* p+ v+ N6 C+ l7 e m_pItemElem = NULL; ?/ W0 Z* I1 ~
}7 J; z2 r7 t5 o
}5 Q& n6 ^2 Q/ x+ W+ `
return TRUE;0 v2 O) r9 y0 r# P2 f
}
* U5 Y5 A+ z* W- Z6 L* n) J1 j" p. d( r+ G" Z
登录视频废话:" M3 i( z) l: m4 L0 p6 v
尾翼:
4 o1 ~5 ^1 c* V: i% G* u8 s3 H, _4 F! @; c
代码:
6 E$ x3 E; a- q& C+ L7 M# u' ^+ E1 {0 W
void CWorld::SetLight( BOOL bLight )
# A# ?* ~3 Z4 g. K; v4 D3 E& R7 x6 ?( J4 ^durch
' G. Z' b/ ~) X6 D: v. t3 eCode:
4 v3 K; N2 h+ ] nvoid CWorld::SetLight( BOOL bLight )
; ?+ ^, {/ @" q( X/ |7 }{. C4 V* W+ \. I- Q, G
//ACE("SetLight %d \n", bLight);: A8 l" L# d/ d- b; t- k$ v
% E+ I& z3 P9 e/ E#ifndef __WORLDSERVER . T0 [" t% z+ e7 [- U
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0); I# S+ X2 s; Z1 z5 C
CLight* pLight = NULL;
1 B2 W* ^5 c4 `9 y: a5 G
o( C- F* y! M+ q/ u1 C, g D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) ); u& T" x: }; z. G+ H0 t
' U9 V3 P; Q8 }9 l
pLight = GetLight( "direction" );4 o7 Y K- b' }$ G4 R1 X- G
( K/ g P( f# Z9 m: b
#if __VER >= 15 // __BS_CHANGING_ENVIR% C2 z" ^* L; m
if( g_pPlayer ){& t$ U9 \9 j2 O& I2 K n
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );) d2 o; b& e, s3 J$ T
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!- [- z! g! B& y F& \
{" _3 z) ^, R# F8 @
if( pLight )
* j9 D0 P+ P D) E/ ]% Y {
$ X i% ~6 P* b8 @4 X( }8 I pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
[( v+ C2 B6 G pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
) d. ?2 b, N! `' v5 i# V$ c7 i pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
- b6 @) u! I" |7 ]
/ I" T9 D# M0 y4 e/ h Q- Q pLight->Specular.r = 2.0f;
0 V; B. T( s" ~- ^ pLight->Specular.g = 2.0f;
! i; I, }4 U& p, a3 a6 j% D pLight->Specular.b = 2.0f;9 {- e$ M: N9 d" N) g+ V) [5 R
9 ]% N5 b- A9 R! F; [; |8 j pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
" N2 a: I7 s$ X1 K/ W p pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];! l1 G g4 { `! M( |5 T0 S
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];, V% l( y7 o( @" D( F2 J
7 Y' y; R' y4 b: }
HookUpdateLight( pLight );
h7 W; R4 B$ O+ z% V* u- P5 G9 z: v8 C
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );0 s5 P% Y' J- w1 v& T$ h o Q
% @: w3 N; o, W2 L3 c' c7 |; }! x pLight->Diffuse.r *= 1.2f;3 m' X9 f: k) e9 T- s% j
pLight->Diffuse.g *= 1.2f;
* `. y( }7 |1 } pLight->Diffuse.b *= 1.2f;
. S# V f# @' X* p2 Z+ p( n1 J
( P4 ?. N5 k; y0 D Q pLight->Ambient.r *= 0.8f;
% N. B8 z6 D+ D0 B7 t pLight->Ambient.g *= 0.8f;- I; g+ ^' a8 c, D" q5 y
pLight->Ambient.b *= 0.8f;6 s/ ?' o5 p& S- z5 R
7 `+ ^0 G R! U H* b, V, N. R memcpy( &m_light, pLight, sizeof( m_light ) );
* F* p$ O9 G3 _* |' g
* d% W; o% h& t3 c D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);; o2 m( W: ~5 z9 r5 E+ W
D3DXVec3Normalize(&(vecSun),&(vecSun));& u8 e2 z T- b3 t: P5 ~" ]( K
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
2 ~4 m( m2 g- H3 t1 P9 C/ x# K/ } pLight->Appear( m_pd3dDevice, TRUE );* f+ I9 \5 X7 [# b/ V
9 v0 }. M% S7 L' ^: s7 b+ { DWORD dwR, dwG, dwB;8 r" t& Y1 l% _0 i% \/ q- _) z+ H, ?
dwR = (DWORD)( pLight->Ambient.r * 255 );
; s# m5 U8 ]. f% v dwG = (DWORD)( pLight->Ambient.g * 255 );1 j# Y% M6 X9 h
dwB = (DWORD)( pLight->Ambient.b * 255 );
- J7 ~1 u3 I6 w q/ ^( ? dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );8 B4 @, u+ E4 G( o6 E& S
}
q6 W' E7 h9 g: y9 u% I }) @: X u1 ~) @/ J
}
# |, o, A+ Y" y; a# _ else3 L. S" h ~, |. A u/ f: G
#endif # K/ F) g1 [2 X% [$ o6 w9 M1 ?) n: [# I
+ R& L" ^9 w: r8 N/ {! R8 Q
if( m_bIsIndoor )
6 u( F, w f8 Y. F. H {
0 T* _, w. @# `" P- { if( pLight )
+ N- t0 e5 O9 l6 H2 {, g8 a- K6 p { 4 s b* Z8 g& {$ U4 j+ v- i d
// à??μ oˉè* 4 g/ T, \) S! H4 c$ Q9 e& i
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;/ r+ d2 D% t' n# `6 p7 Y0 ~
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
6 N8 D& A. m# i5 v0 Z# T- q pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
/ J Y0 G3 e2 M0 D Y/ e1 D6 d0 _$ K+ G4 v8 f" @
// oˉè* ??à?
0 h/ d) D5 u+ r2 p3 I pLight->Specular.r = 1.0f;
+ l; u w; E3 p pLight->Specular.g = 1.0f;; t* |0 _9 \9 o( J6 e
pLight->Specular.b = 1.0f;( H8 P2 i' G" Z3 s0 Z7 e
// àü?? oˉè*
# s; t1 W7 l" d" t" i- ^8 [ pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
& [8 L" j0 _; X% U( t( ~' O0 l pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
* A: o9 n) X) D pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
2 ^. R, V- k# w, T+ ^. d4 Y, y' Q) d! J
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.6 _( I# X3 H/ V) _. B
{
1 L1 {1 W% ^2 u$ [ pLight->Diffuse.r *= 0.6f;* ]: n3 Y" f4 F! Z8 z2 y" }5 a. i
pLight->Diffuse.g *= 0.6f;9 ~1 t( r% q' k7 l6 B9 q4 |, r
pLight->Diffuse.b *= 0.6f;3 L- f6 ]8 K4 G j8 l
pLight->Ambient.r *= 0.7f;
, V5 Z; w8 g. w1 g0 J9 ^ pLight->Ambient.g *= 0.7f;. R6 p. c7 W; v3 {
pLight->Ambient.b *= 0.7f;2 v9 \: b$ P5 o: W) `$ p5 g5 S% j
}
6 F1 t1 ^& u4 O* y7 P6 M! A* z, V& Z
#if __VER >= 15 // __BS_CHANGING_ENVIR9 g( d# L) N5 D& B4 X5 s9 ]
if( g_pPlayer )
) G5 x4 Z0 a! P% ] HookUpdateLight( pLight );3 X2 [2 Y" v X" r- S
#endif$ T3 F3 d# D$ g2 ?
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
6 z% n: l, q J- P7 P" t% o. p5 _
pLight->Diffuse.r += 0.1f;. m: q1 L' \7 `; t/ }6 t* X
pLight->Diffuse.g += 0.1f;
# G# L6 W8 A7 ?0 Z4 w pLight->Diffuse.b += 0.1f;/ @ O5 V9 N3 \; G* w) O( H
// oˉè* ??à?
. V# `4 m. |( y( C pLight->Specular.r = 2.0f;
1 O W9 m" D/ H9 r5 l pLight->Specular.g = 2.0f;3 i7 G$ U" N9 f* G
pLight->Specular.b = 2.0f;% H% D9 P. `, c: d
// á?oˉ ( O. p3 W g& I. f* e. b" w0 D
pLight->Ambient.r *= 0.9f;
& l- Q$ ?1 p1 _! ^" @ pLight->Ambient.g *= 0.9f;/ _9 r* ]5 v# o
pLight->Ambient.b *= 0.9f;4 g8 W; j) v6 s1 k$ y% R5 r
3 y3 w6 C$ S5 E$ b- ]! H memcpy( &m_light, pLight, sizeof( m_light ) );
( M# f3 r' g) X: R7 h. B" i/ A ) V- ?7 C4 j# [# B8 [: u
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );1 b* h6 P! [8 T
pLight->Appear( m_pd3dDevice, TRUE );
5 d8 }/ x' k9 \
" B- h: J5 k$ d; O% R3 X DWORD dwR, dwG, dwB;! H& g+ f+ e% k/ R8 a+ \- h' A4 L
dwR = (DWORD)( pLight->Ambient.r * 255 );
# j+ i% N5 B8 f. Z# T& J1 n$ c# R dwG = (DWORD)( pLight->Ambient.g * 255 );) l2 \- k. \# W8 f1 H( j
dwB = (DWORD)( pLight->Ambient.b * 255 );
- D$ ]0 d/ g7 @9 a+ p, q dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );+ C% V' u4 ~; |4 d7 z
}
# x2 h$ X( f& U' g& t }- t8 I( S+ m' Z7 L
else
4 T! M! ?( K. v+ [ {. |3 N3 s: k% P* t
if( pLight )
Z5 ?# |" G" u7 Z k {( }/ w3 S# k, b
8 C, |2 @# H" _6 g3 T# f" E5 L/ y
int nHour = 8, nMin = 0;
# b _" ^& @5 @+ S8 a. B #ifdef __CLIENT% V' u& D! D# a* U, C( Q7 }$ S
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. % G+ V$ n& |9 N, M4 I
nHour = g_GameTimer.m_nHour;0 H3 H) o9 @# U" U4 |0 I2 i8 z; \
nMin = g_GameTimer.m_nMin ;1 u e6 V& v+ _1 z
#else
: @4 f8 L% b) W5 u. K // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.' C) X4 h8 d! ^7 V. E% j
if( m_nLightType == 1 ) J* T) ~7 H, {, X
nHour = m_nLightHour;
* o/ r3 |! Y3 b' \' y! t1 Q7 D #endif
3 a! r0 t* R4 h/ M- E' U nHour--;. y7 o# l% ]( ?
if( nHour < 0 ) nHour = 0;
1 j6 J) y& r U8 ? if( nHour > 23 ) nHour = 23;
5 s4 Z& v9 E: U' g: v5 X
2 g& V* N3 h7 {0 a# k //if( m_bFixedHour )
( C' w* Z: o' j$ u& C // nHour = m_nFixedHour, nMin = 0;
" L V) v( L& T2 o; L# M3 J LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
T5 A" J3 w! D' |. Y8 X' E D' H LIGHTCOLOR lightColor = m_k24Light[ nHour ];; g H& X& }& e3 ^# ]
0 j/ f3 `' s, N& W: a
//m_lightColor = lightColorPrv;* d: e" O5 {/ j ` O' t! H: ?
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
. R9 U* ?, H2 K7 |. s lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
4 n0 p( M T/ C lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;. t- d7 i+ J. z }, H
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
; s" d9 A. j6 [" h& D/ V1 ~ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;; r# e/ F7 ]- K, [. u
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;( S3 l! W1 t8 a* j1 \# w2 M Y
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
. o8 p9 S" W! R$ p# M3 D
' T$ ~; {9 o5 `& {6 U' g: L4 } // à??μ oˉè*
7 h# P# o* v Z- m5 E) C pLight->Diffuse.r = lightColorPrv.r1;
; w3 H8 U6 L9 o3 ~0 v pLight->Diffuse.g = lightColorPrv.g1;
8 V2 r6 }8 r; a. x5 ~1 O! _ pLight->Diffuse.b = lightColorPrv.b1;
7 W6 o7 K/ c5 J+ q // oˉè* ??à?
! ~: l% m) f( x# r, ]; c" Y pLight->Specular.r = 1.0f;
/ ^# G) [- i* p& b( Q0 V( H pLight->Specular.g = 1.0f;
6 X, S( O0 c; R5 D: m: f) } pLight->Specular.b = 1.0f;
9 Q$ b+ V5 c/ T0 d# t! p7 R! h9 [ // àü?? oˉè* ' S1 t; R: s% z8 D
pLight->Ambient.r = lightColorPrv.r2; q/ d3 A0 c! q
pLight->Ambient.g = lightColorPrv.g2;) _2 H( J/ o, ]( }5 s
pLight->Ambient.b = lightColorPrv.b2;
1 j, r; d% H* ^7 E( w5 G
+ ~- X* [/ j' U& T1 _9 Z) g0 G if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
% H$ q9 i6 a, @% K8 I# Y7 l3 x1 n {
5 |( ]1 Q: k! j l, ~5 r1 @$ q pLight->Diffuse.r *= 0.6f;1 ]: _* L. J/ H, y9 b
pLight->Diffuse.g *= 0.6f;
4 ~# ?; o2 @% O# C, P* A pLight->Diffuse.b *= 0.6f;
0 M0 p# W4 e8 K- G9 ~ pLight->Ambient.r *= 0.7f;, O( k6 |2 h4 C9 Y- A
pLight->Ambient.g *= 0.7f;9 G A. {" `% g# L
pLight->Ambient.b *= 0.7f;0 ^9 | F' f4 ]$ u7 u4 [1 D! V2 A
}
; ^- y; h& t& c5 _/ E
) E8 u; H+ R# S1 y0 J8 w8 V#if __VER >= 15 // __BS_CHANGING_ENVIR& [5 E y3 m6 X) z
if( g_pPlayer )
* o; V- e) Y# s0 g. U' D/ n1 K& A HookUpdateLight( pLight );
h- L( k* H/ E#endif) c9 `- T' q) U: }$ \9 X
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
9 i; P+ k! ^& Q( _8 l1 r5 t& Z) X- q2 c* Q
#ifdef __YENV
9 m2 ~- p( w5 ~9 I; O pLight->Diffuse.r *= 1.1f;
0 ^* a! r) y- P& e/ U Y pLight->Diffuse.g *= 1.1f;/ ?, Y, }& Y9 {, U
pLight->Diffuse.b *= 1.1f;6 M0 j2 x( H0 v$ u# G$ M
// oˉè* ??à? 2 d- E( I+ I3 b3 E! Y( E
pLight->Specular.r = 2.0f;- A6 r. ^3 L" P; n( N
pLight->Specular.g = 2.0f;2 ?. H5 J' q9 z
pLight->Specular.b = 2.0f;
, f1 z: u" M* n O, o+ c" l! \0 y // á?oˉ
/ m; p- Z8 J" r6 q8 U- S% z pLight->Ambient.r *= 1.0f;
, _' D, j. I% x5 u" }/ U; A; ~ pLight->Ambient.g *= 1.0f;: n2 N- {" C5 @% n2 Z) _: O
pLight->Ambient.b *= 1.0f;. Q8 l, Q! I8 ?9 b
#else //__YENV) [7 G3 S5 d6 H; m# _/ U
pLight->Diffuse.r *= 1.1f;
% }9 E @8 J2 i5 B- b4 }1 M. t pLight->Diffuse.g *= 1.1f;
" r. X0 ], K# ^ pLight->Diffuse.b *= 1.1f;
" _: q, P* _( b7 M8 g // oˉè* ??à? 7 N' F5 _0 Q8 k( r! E) p) \ o2 z. b
pLight->Specular.r = 2.0f;
V5 b$ r$ Y* U, F5 L+ L$ n# t pLight->Specular.g = 2.0f;
6 Q- J3 X# `1 X g3 ^ pLight->Specular.b = 2.0f;
# g2 O2 o; d; h4 {- Z/ ^4 k+ T // á?oˉ
; }* u8 R/ R: {+ s pLight->Ambient.r *= 0.9f;
1 X! y! e$ L* d pLight->Ambient.g *= 0.9f;
) x1 E u [. g' g. F7 l pLight->Ambient.b *= 0.9f;9 @7 W6 \# l- A3 j1 g+ D" @, \
#endif //__YENV
9 |: a) w4 Q- J( B9 Z. R- A
]9 ?6 a$ x9 ~& W memcpy( &m_light, pLight, sizeof( m_light ) );2 f( B. t O% H
* b% J7 \& G8 v$ r3 U
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
. c) U6 o/ I$ D D3DXMATRIX matTemp;
! R. U2 V/ R6 V+ i% p3 o3 d! n static const float CONS_VAL = 3.1415926f / 180.f;! C# R# h) U5 j# D: W
4 I) _6 s7 Q7 O) x, p D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
3 h8 U& X T2 j0 j8 J3 V: Q D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);9 x* e/ a9 r0 |) G) b+ W% b
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
- s' B' U2 ?: d. v( E) U7 U pLight->Appear( m_pd3dDevice, TRUE );
" E+ r* d a% c9 }- ]
% E; i% \! ]% L4 D. l* @; T( d // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
7 M% y, X, c0 | // D3DXVec3Normalize(&(vecSun),&(vecSun));
) u6 J, W3 U: R9 C( p1 p // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
0 t; }0 d1 G; _ Q$ L2 M
" T1 x" ?; a4 u1 q+ q3 P& ^ DWORD dwR, dwG, dwB;
% Q+ l) {+ }5 w dwR = (DWORD)( pLight->Ambient.r * 255 );
( D8 I$ @$ [6 Y9 }& \1 ] dwG = (DWORD)( pLight->Ambient.g * 255 ); R9 \8 b* d5 r6 {4 E+ U: c4 E
dwB = (DWORD)( pLight->Ambient.b * 255 );2 ~0 E# U3 c: A0 K# Y
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); : N1 B" f# [! N5 L9 T
}
" F( I- t: z# B) k' d" l }0 y. e$ A% m0 B, n# _% x
$ ^3 T* f5 } o m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
8 Z/ D' c* ]3 q1 H7 c) d) T! U 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) );
0 U, N! }7 e2 ^- j) r) H! q2 \6 y4 ^ ::SetLight( bLight );
4 x, h8 q; O2 P* d6 l. R
4 V$ u$ j. w; O9 |( n$ S // ±ao? ?D?í???ó á¤à? * }( n8 ^' V8 M1 E, a
m_pd3dDevice->SetMaterial( &m_baseMaterial );8 o5 ~) ^ {' @4 J/ @8 \) M! L
+ x9 S3 X" a: b# D3 o1 E9 a- d#endif // not WORLDSERVER% o" w+ E/ s& S: P' X3 t
}* P2 w( t. ?0 z: N4 z1 @( L
并更换3 u. j; ]5 n' y" N; m
Code:8 ~1 |- {6 e, J% o
__FLYFF_INITPAGE_EXT; ? n& O7 O6 ]2 X
定义) |" C! J# I f# p5 e k j5 S2 q, D
W+ A, e5 C! n" A9 ~1 w/ T# y
B9 n- Q w6 ?2 [
* t5 m# @1 B% A, y+ n$ T# z* K9 t9 [& _* {$ [; c4 w1 @
现在终于删除我的狗屁加速...
; i0 w$ O* _3 \( K
9 e5 y u6 B* e5 R( J; C' s( Q- n0 C: K6 r C+ t
+ C7 G& v% a( l* K- X% j |
|