|
|
食品车:
2 r$ [1 }2 z+ Q4 W尾翼: V$ E: o1 i2 C& {6 k5 |. Q8 Y
f$ o- ^" h1 k& w8 s; C9 P! R
代码:
0 h1 ]! w+ a U. w7 r5 D% ~: d3 |) n) |CWndAutoFood::CWndAutoFood()* C+ I. ^ J% n2 u
{- r- z% s3 d' f B0 _* E* K# W
m_pItemElem = NULL;
6 |; ~* l/ P" w' [7 \" K m_pTexture = NULL;
/ y6 Q( y% a) x5 L* J2 c2 e; O bStart = FALSE;/ C! J, G" g' y6 z
}6 T2 f& `3 p: A0 d2 a) S0 @
3 [2 u* G; J9 P4 d. G& t# e0 ACWndAutoFood::~CWndAutoFood()
4 E: |( }5 s2 a{3 a( Y1 c7 \& v& M z* \* Z
AfxMessageBox( "AutoFood ist gestorben " );
# P! a: J6 J9 p+ U7 T}' Q/ g6 w0 G1 u& ~* [/ |; e7 M- d
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )% ~/ W8 F0 V: D
{
" L3 U9 [; }7 L' d return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); V0 m! I$ A& B3 A% G
}
! ~* K) m$ v$ z+ O' j1 g2 C0 ^. e: P( }% X; U) U& Z' h" e, {
BOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ): l* x* q5 {5 k5 ?3 t0 g- G( H
{7 G8 ^/ n, W Z3 `6 o
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
% ~( o) ?9 j+ A: p3 C8 k/ b CRect rect = pWndCtrl->rect;; R+ @* Q* `1 n
if( rect && rect.PtInRect( point ) )
3 s* n2 Y7 \4 y3 P {
5 t. b' H: ^. }- `: a CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
+ X( }3 P" `$ B if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
; H: u' S* B2 P$ F9 ?) _ {
1 |& {# J! s, ^6 g1 o* l/ ? if( m_pItemElem )
' X; c5 z2 f) L: P) [( n! c {' x% \: w" u! J, X8 j! b( g
m_pItemElem = NULL;& k# Z0 p$ N: e% k
}6 ^) D5 ?# ~3 R$ a& L9 M9 ~
m_pItemElem = pItemElem;) G8 j- c$ z& w8 _
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff ); s t; Z* P# }( f
}else{( \8 V# t! |' K! d' _" u$ [- d3 e
SetForbid( TRUE );2 n! F& h5 C; S: W) U9 x; v
}' F# w0 G- ?' U/ ^
}else{* l* o. F; D5 |; {
SetForbid( TRUE );
! u: Z F3 Q# T& b }
! G! l# |* j/ ]) s$ R return TRUE;
, T! ~& U7 ?4 C& z2 n}
* M1 Y7 v8 l; b5 {( j
( B0 w C; z2 D2 SBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
$ H: W- g/ E6 s g. M1 A{/ P6 E* z5 q4 K& c+ s- z" h" X
switch( nID )
, s. s9 V& @/ G5 A. w7 d {- g! t& h# f H9 V9 I% G8 h/ L
case WIDC_BUTTON3:% [ p4 ^# N4 v' t$ |) y
{3 F. P" J- \7 _+ O" C
bStart = TRUE;* m- i3 m& ]2 b) ^9 O
break;
" ]4 I7 R' b& u+ S7 B$ r8 w S9 @ }
- X* I3 ^6 {5 q- q4 U' J case WIDC_BUTTON4:
/ R9 Y" Y7 {. d0 M# Y. k {3 ]) Y, E( c) b# x2 I
bStart = FALSE;6 {0 g5 `# s6 O) Z% ~3 i, o! S
break;/ z; F- S3 T1 r2 E
} o. ?8 S8 q( y# q1 X& @8 p
}
$ W) B2 }9 ?# B0 ^! ? return CWndNeuz::OnChildNotify( message, nID, pLResult );
* ^/ H4 y" w* Q- `1 I} # r* z: ~( ?+ h* m3 D
void CWndAutoFood::OnDraw( C2DRender* p2DRender )
8 Z+ s0 O1 z3 z0 s* }{
0 ~: k# L3 O" \- y* S0 _# G CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );% T% \! b. e+ \ [# ]; Z* Z
if( bStart || !m_pItemElem )! m+ G1 S- w- H; h& ~
{
8 t: J; d( q j: \- u pBtn->EnableWindow( FALSE );
* [9 \; W5 {- @4 Q2 ~* ` }else5 @3 n' Z: F2 C W* {% D7 k
pBtn->EnableWindow( TRUE );4 A* E+ j4 Y& n* P) U
if( m_pTexture )
) V1 D3 v+ M/ f" R {( {- ^8 I* b4 k4 \! p7 i% H& k: J
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
2 v) V# J. k4 c if( wndCtrl && wndCtrl->rect ), J: z- B- X" {
{
9 X- k! Y" g) _" ^! J: i& \ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );# i2 X4 M' K9 y1 J! X0 X; _% b4 z8 u
}
7 S# F* W3 Z1 U }
5 Q$ Y& V% `$ l/ n+ X}6 I7 G& }: @( y0 [" e2 v9 O5 {; l4 v
! d" c, M! V: P2 _' A- _BOOL CWndAutoFood: rocess()0 ]' B2 r9 s4 z; e
{
V7 e5 ~9 a ] if( bStart )) \& z' ?, |+ p% e
{
) T9 i0 U4 B. m# u9 [% k if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 ) r+ x/ h# D* v, x) v
{
, I; v. l# S* @/ ] if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
0 W1 Z, }6 r0 F' _6 ?' r. a g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
8 N0 f* z* C# I4 H5 U9 T8 r }else{% C6 m. A. \- }5 q
bStart = FALSE;3 y+ ~" M7 a) }
m_pItemElem = NULL;& S3 a, q* B* R2 A" K& j# K5 n
}
, B& _5 v1 R, V1 R7 {8 M }$ r0 {0 ~ R8 a& O$ I( o+ r
return TRUE;& F1 V5 n( H) q# a( ~. t) j8 s
}
' F0 G" b' V$ f A/ D5 {. ^8 R
* f8 Y- o' u/ E: w6 n登录视频废话:
- S* R4 y; f" A( U9 Y3 N尾翼:
/ H% X1 @1 I" {" L: N- O3 Y* w( l, _. j/ h
代码:
! J; f: i7 _1 C5 k* g
! v8 Y8 Z% N) B3 }; G; wvoid CWorld::SetLight( BOOL bLight )* m q# D" }( D( I5 N; [: |
durch, @/ K4 ^2 j% A' i4 v# x
Code:' O1 {. n- M4 v0 P( q. y; V5 c
void CWorld::SetLight( BOOL bLight ), P* M" G9 a( A2 U) r8 F9 [
{& P E- G( C3 H7 ~% ]4 P! z8 |
//ACE("SetLight %d \n", bLight);' P ^+ m$ U( C; A" ]
& T' u C0 v! J2 d2 Y* E
#ifndef __WORLDSERVER , l' X) X/ o+ r( J* K
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
* ]8 g+ I& v$ N5 Z- I CLight* pLight = NULL;
+ R" ?* F4 T4 L% A/ Y# Z/ o" ]3 N, d' [2 _4 t* W8 R2 I
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
1 a9 K& X& k, E3 `/ z% M$ K& c* J1 e0 [" s X
pLight = GetLight( "direction" );
% S6 ~8 k( G! u2 }$ b2 |: U: l+ h" ~* `) x7 f7 T+ u8 j8 x0 Y8 P
#if __VER >= 15 // __BS_CHANGING_ENVIR h) h4 Z9 W! \1 q* o' [0 b
if( g_pPlayer ){1 e8 i# H$ M% z
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
" E0 U7 f0 C$ [& g A if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
$ w) x3 |; O( @1 ? {
. n: K/ U& e* X. M& {. z3 ^ if( pLight ) ]3 K( d; ^4 L$ _. D& a
{
* `/ A3 B% R' q pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
: s4 T" D& Q7 J. w6 i. ` pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
8 z8 b# v0 z- d+ f pLight->Ambient.b = pInfo->_fAmbient[ 2 ];
% L' S5 q, s3 \ f! n
' f% S! K y. x pLight->Specular.r = 2.0f;' @0 h8 e7 D4 t8 k
pLight->Specular.g = 2.0f;
# P0 s! Q8 g9 L2 r' ?( E pLight->Specular.b = 2.0f;
+ D+ P% T0 o" S/ E9 h
) P2 I7 C7 s; A pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
: L# b" _; u+ {& R$ o, w2 O pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];+ {8 l( c( f' I1 A' `7 W+ r S
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];6 s/ H% T( J0 r- K
( D& L6 k# ?' W* p$ x8 X* J4 G
HookUpdateLight( pLight );
7 y5 t1 H6 q' h7 z, R
6 W( }+ i3 G: Q7 @8 r memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );5 X4 u5 g _8 d0 [( z" j
* I/ i% e* R) m6 b
pLight->Diffuse.r *= 1.2f;
' d' t) Y7 R& V4 ~) Z pLight->Diffuse.g *= 1.2f;( b1 t3 c u: f5 n8 ?, d* \
pLight->Diffuse.b *= 1.2f;# l1 D- d" X2 [& T5 |6 z# f
& F$ f8 N) N7 Q, Z
pLight->Ambient.r *= 0.8f;$ L3 O! s( o8 G0 d: u2 F7 i, c
pLight->Ambient.g *= 0.8f;
8 G D! S. ?, Y! C" t; T% G! f pLight->Ambient.b *= 0.8f;
' T; Q4 D! w8 H3 z8 P$ G $ @4 d; ` [+ H
memcpy( &m_light, pLight, sizeof( m_light ) );
- E! M! H% L+ a; K. G9 |
* e( ^, f6 P4 t! t u' s D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ }6 Q, i. r. ?4 {
D3DXVec3Normalize(&(vecSun),&(vecSun));7 R) h3 e+ v; m5 ^; o! Z
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); " \4 P* x; L/ _6 @* r& K; s
pLight->Appear( m_pd3dDevice, TRUE );
) x" ~; f0 n! |3 Y6 W
5 k) Q0 z2 c+ F# E6 X' Z& P* w DWORD dwR, dwG, dwB;
6 \& o. G2 X; V dwR = (DWORD)( pLight->Ambient.r * 255 ); B4 Q! O, w" w) B0 o! E
dwG = (DWORD)( pLight->Ambient.g * 255 );' m: C4 {, \ t
dwB = (DWORD)( pLight->Ambient.b * 255 );
2 o3 m7 F& ?7 r6 V dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );. d( `" i7 X7 ^" |- H
}
; b# X" N* a6 _+ @' P8 k$ O" S# Y }9 B! n) N6 U* I
}
8 W8 F- o! a/ `& n ` else. z- }; C0 U* ] d9 V* A
#endif
: x" ^3 S5 O- N5 Y2 ]/ r
& m0 x. ~$ y* ]1 a9 {, F8 m if( m_bIsIndoor ); z8 ^- E' m; Y, M' B
{
$ f! Q3 o( [4 t( V6 j if( pLight )$ M5 l9 f' }' d1 k# A
{
0 n; U& a3 T, a // à??μ oˉè*
: O# c7 z a7 W: R pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
1 ]! s9 q/ c8 a+ ]8 M7 e pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
3 C: Y' a$ Y- M+ E% K+ i pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
$ g# v$ ]- R2 I; f
( w. P+ k! J) Y8 m I- H // oˉè* ??à?
% l/ g& d! E# K% k( k( W pLight->Specular.r = 1.0f;
2 C' d' ~% Z5 I pLight->Specular.g = 1.0f;
4 b# m, [% D1 X3 F( Y6 M2 N8 m j pLight->Specular.b = 1.0f;0 n z$ C# `2 s! l7 @' S
// àü?? oˉè* 9 k$ e% L* b$ ~% }$ u
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;' z/ _ A, J/ k2 V* S% l
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
0 @7 w/ g0 V+ {4 Z pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
3 y) X- j& i# [7 A' N: u" M* _# b& t: `1 ~, u! ]
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.2 r; d6 Y; T/ I6 v, C5 C
{
! a" E# U/ X7 t# g: l" n/ w% } pLight->Diffuse.r *= 0.6f;! \& t8 t6 ?" D
pLight->Diffuse.g *= 0.6f;
; G& b p2 }! P' a pLight->Diffuse.b *= 0.6f;
4 u4 O8 ~- V$ l( W pLight->Ambient.r *= 0.7f;0 E# [! Z+ }' O* U. l2 b
pLight->Ambient.g *= 0.7f;9 R' s# e7 Z5 ?% }6 ]2 L" Y1 i
pLight->Ambient.b *= 0.7f;
0 M, l, G4 |5 [9 y* ~ }! R% p. q8 @% E7 Z# R8 D
4 y1 b# l8 C6 K9 C9 _. b6 v' _; E
#if __VER >= 15 // __BS_CHANGING_ENVIR
+ ]! t& o( k0 V T* { w if( g_pPlayer )
8 y3 l4 }: E2 F HookUpdateLight( pLight );
% c" D: f5 P: H, P5 S- ~#endif% |8 z8 ]; j) O
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
& Z, `" s0 @1 y) ]7 x, E. r2 W2 A- ?% R) h7 Y- o
pLight->Diffuse.r += 0.1f;
5 V* k- W( s# L" c4 I/ v7 R pLight->Diffuse.g += 0.1f;
5 R& T+ s+ V7 V# u8 ^- K+ b pLight->Diffuse.b += 0.1f;; `6 u* [. M! d `
// oˉè* ??à? ( G$ x8 L2 y3 L: @1 g5 q/ N
pLight->Specular.r = 2.0f;5 G/ `; F9 o- h9 E) D
pLight->Specular.g = 2.0f;- M* W4 }5 T A% M! L
pLight->Specular.b = 2.0f;
' A: Y" K, {% v: H. I4 b }* w. \$ K // á?oˉ ( Y6 X! q3 E' D% m
pLight->Ambient.r *= 0.9f;
, E- U3 ?8 Q' h6 z$ N8 l& T pLight->Ambient.g *= 0.9f;+ z% N6 e/ L0 K9 B9 D0 F. U
pLight->Ambient.b *= 0.9f;
X% r( [3 y$ r6 |" H. o" m5 B4 i
memcpy( &m_light, pLight, sizeof( m_light ) );
$ ]( O: ?; E) d3 s) I5 y , |8 S8 J" C) X' l( b. R
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
; X- e# g# K- s9 T3 N* R pLight->Appear( m_pd3dDevice, TRUE );6 h" D& T8 u$ F7 T( r4 Y
6 ~ H; ]. ~( F3 |5 r DWORD dwR, dwG, dwB;: @/ K8 J/ F B6 K2 u% c' z
dwR = (DWORD)( pLight->Ambient.r * 255 );
8 @7 V5 i; p7 i C$ @7 Q7 ] dwG = (DWORD)( pLight->Ambient.g * 255 );) e) m; q1 p8 }" R, g
dwB = (DWORD)( pLight->Ambient.b * 255 );
) A+ k( W7 z. t7 { Y dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );4 s4 [, f- U- m3 c j
}
3 V) A8 u6 T% V }! A% B {+ D8 E- e% a: v
else
1 ?6 m0 e2 c, _9 Y {
- S0 d1 ] b/ E: m' X( A if( pLight )7 a8 A7 i% K& q4 ]$ A5 ?+ X3 v" K5 K
{& i) n! V# v1 R0 \: y1 t3 |) B+ x
# a- s$ L; k- }3 g! r" E8 ^
int nHour = 8, nMin = 0;
* v$ c) ~+ q, Y% ]# V$ a! O. `4 l$ Q #ifdef __CLIENT
; _; X0 z+ k9 N" O9 B G // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù. $ q+ h. s+ N% r
nHour = g_GameTimer.m_nHour;6 V% V0 Q5 D( i0 r3 o7 ~/ \2 E
nMin = g_GameTimer.m_nMin ;. M$ X% L7 ~) k
#else
" P4 B. Q4 P* [- O // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
- f# Q- j* Y* C if( m_nLightType == 1 )
6 v p7 V1 I: x4 p% K7 V2 G8 P nHour = m_nLightHour;
$ \' j9 ^# h1 t9 N8 { #endif) T. t9 c: p6 m7 I% C3 V
nHour--;1 E, u% K, e; Z: M+ J. _+ p2 D5 v
if( nHour < 0 ) nHour = 0;1 y2 y* ]% F! P
if( nHour > 23 ) nHour = 23;
+ ~) @7 e/ `% h# T9 c0 `
& B& V/ Q& ~# N6 Q: s //if( m_bFixedHour )+ v+ a4 G( c0 T( T+ W4 f l* B
// nHour = m_nFixedHour, nMin = 0;
. t/ _ y7 B; X LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ]; [. B$ t% T( H- g
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
! C" p( d; G+ u: F) [% _8 k3 m3 q! z
//m_lightColor = lightColorPrv;! L( S9 y. F5 L8 d- G0 f1 O
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;( Y! e6 {& i$ m7 A( H1 ~8 B
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;* P1 f( B4 c* j% s
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
) @1 `/ M( K) b' N& f lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;3 Z( s5 h y1 z8 Z
lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
$ w1 z2 x7 w, a' C" C* | lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;! S3 U) F/ ]# k4 T7 o4 ~
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
4 W4 ~' a/ e) Q6 w, e9 R) E1 J
3 Q2 g, L o* W2 t3 r& P. ^! m // à??μ oˉè* ( G# G1 U3 F3 t9 G- r. ?; o6 l+ K
pLight->Diffuse.r = lightColorPrv.r1;# |' \: l: l& @% Z, o. L$ [
pLight->Diffuse.g = lightColorPrv.g1;
, P! p- G6 G8 F4 Y" p1 r+ R/ R pLight->Diffuse.b = lightColorPrv.b1;
( n8 G& k7 R+ n' q9 C; o // oˉè* ??à?
; ^/ P1 ^4 M; I pLight->Specular.r = 1.0f;" |& L( ^6 x+ ?0 V
pLight->Specular.g = 1.0f;$ Q3 D! L, n2 I; D4 G+ o, a
pLight->Specular.b = 1.0f;
" W+ W3 ]' {1 f2 o0 | // àü?? oˉè* - P" U/ T: |4 r; P5 w* X3 x+ [
pLight->Ambient.r = lightColorPrv.r2;
0 B- |& I& ]! S+ g1 c pLight->Ambient.g = lightColorPrv.g2;
5 H- s+ J/ X6 y# [$ s7 b4 { pLight->Ambient.b = lightColorPrv.b2;' M0 |; {, X' G1 f4 q% _) o
7 {* F2 I6 |3 T6 F if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.$ A) b" P, Q; J& C% o. }; k
{) v) D& F5 }" D& ?8 C V
pLight->Diffuse.r *= 0.6f;
, ~6 i$ i8 `9 m6 W% U: }! P. ^8 Q pLight->Diffuse.g *= 0.6f;7 D5 p0 Q. E3 q
pLight->Diffuse.b *= 0.6f;
3 ^$ K+ e K; q0 F3 U1 @ pLight->Ambient.r *= 0.7f;
8 p/ Q7 D3 b2 t pLight->Ambient.g *= 0.7f;7 t# N5 B: a* K" b1 @" x, i& h
pLight->Ambient.b *= 0.7f;$ L" x$ Y$ l2 b3 |7 O" C! u. Z
}- M2 M4 Y, F+ H+ q2 C' j
: R0 d, i0 H" h' G* j#if __VER >= 15 // __BS_CHANGING_ENVIR r) d: G5 S. B4 w5 q/ I/ S
if( g_pPlayer )
1 J9 b2 f5 H% L* x- o! r HookUpdateLight( pLight ); 1 n* c% x4 z2 H! p/ q
#endif/ K- z3 Y0 _: r: S- L9 e, z
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
! |5 d$ N/ C/ I4 `$ Y! \$ s
3 Q+ ]5 h% a- z- q# @( y$ m- }9 Y* a#ifdef __YENV: F& ?# |+ ~" {3 |5 c
pLight->Diffuse.r *= 1.1f;
( u+ g% k( k& ?0 J pLight->Diffuse.g *= 1.1f; {: v k9 I3 z$ D, n! X9 M
pLight->Diffuse.b *= 1.1f;
) I# j: a% A# R" w& D) v // oˉè* ??à?
: m: f5 A" ]8 ] pLight->Specular.r = 2.0f;4 B& `) D$ `6 C
pLight->Specular.g = 2.0f;# V4 c% F- K" M7 e' `) z
pLight->Specular.b = 2.0f;
* P% t$ q# B% U- O, k s# b5 r // á?oˉ 3 h( L" V7 Z" f) a' T' e) Z' M. L
pLight->Ambient.r *= 1.0f;4 X4 {/ k0 a8 {3 \
pLight->Ambient.g *= 1.0f;$ `( w8 n5 q" {, x4 a* m
pLight->Ambient.b *= 1.0f;
8 P* y5 Y+ ^8 |' f4 T' ~' G) G; o, B/ C1 r#else //__YENV1 U; h9 v4 u9 r# A3 F& X# I
pLight->Diffuse.r *= 1.1f;6 C, I$ r" h. i4 Y6 m2 x* y
pLight->Diffuse.g *= 1.1f; B: _6 o* }1 q: q4 F
pLight->Diffuse.b *= 1.1f;
* P# J$ Q; }9 l7 Z // oˉè* ??à?
]9 m4 l, s3 Z: L2 g( d- K pLight->Specular.r = 2.0f;
. c2 X5 b8 X* T( x9 v pLight->Specular.g = 2.0f;
' ~$ q+ x5 H" b" d7 Z pLight->Specular.b = 2.0f;
3 S' s) i: |: L3 `3 o" a, a$ k // á?oˉ
9 R4 n E b4 {- q pLight->Ambient.r *= 0.9f;
- t2 Z) P6 Y& A `3 _% H d& i1 s pLight->Ambient.g *= 0.9f;
- b' D' t# T/ w pLight->Ambient.b *= 0.9f;. X$ Y$ F3 t0 Y) s R% p2 P
#endif //__YENV
( l3 [5 `0 N6 D! j
) m5 Z& P0 l$ ^; n% J memcpy( &m_light, pLight, sizeof( m_light ) );( S$ n: m6 @6 q/ ^4 M
2 Y* ^. Z* ?6 L/ k4 k D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);4 C8 r( \0 N( k; t/ M# [# ^
D3DXMATRIX matTemp;
! j& Z( {: ~7 {+ T( R5 { static const float CONS_VAL = 3.1415926f / 180.f;& o; t: U7 M) A/ V1 d' k/ R
+ S8 A3 F; K/ O, g* x l D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);: P v% j& j5 G5 S
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
- O( }* c" s. y pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
6 b) |. o* a/ y1 C pLight->Appear( m_pd3dDevice, TRUE );
( E# o; ^. N# J* E% _: N
0 z: n+ f5 m! X! v0 O // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);$ b2 a+ n3 P2 V. U2 |: g1 c( y; A
// D3DXVec3Normalize(&(vecSun),&(vecSun));7 e! ^7 L6 z7 Q9 H, l. _ ~) D
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); : T- c! L6 j4 r$ {% b5 e
8 M2 ^5 a0 u- D3 g7 [; f" l, @
DWORD dwR, dwG, dwB;4 G( z$ ]# F0 ~ a) ?& M, q
dwR = (DWORD)( pLight->Ambient.r * 255 );- y2 T! |& \ w9 [
dwG = (DWORD)( pLight->Ambient.g * 255 );7 _7 t2 k0 W& K: j# N$ ^1 s3 n6 I
dwB = (DWORD)( pLight->Ambient.b * 255 );9 @* E% q5 ?" e' o% M; j2 s
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); . Q( Q' v/ {+ E, N( T7 v- E) j( b
}* q" }3 o* s) J$ Y6 Z, v2 h g( \
}
5 A6 q" k+ F' v$ Y3 T( K$ `) | m& V% k
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );9 N: n7 K9 W4 p0 L& ?
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) );
% A2 [+ K! L5 W( b. D" B" t ::SetLight( bLight );
2 T% p# b1 {* Q8 _
5 C. U1 c4 { q$ a1 [ // ±ao? ?D?í???ó á¤à? ( S* E' Z- ^3 s/ [8 x
m_pd3dDevice->SetMaterial( &m_baseMaterial );
7 J2 w$ y4 Q' }) s. u6 @ & q3 c: v& B, }2 R
#endif // not WORLDSERVER
, K6 S0 S7 f0 p$ [/ r0 Y- e' Z% D}
8 }* i. D& p/ l( O4 E) Q并更换+ i& i& {- `* |* Z
Code:
9 S e- Z& a- e__FLYFF_INITPAGE_EXT! R7 w& E1 A5 v7 ~0 N
定义
, X4 T8 }: h" E
/ ]/ @. T, C' D* n7 O
. O* h, a, g; R4 V4 P8 Q% V* j7 ^: C2 J: c9 h. I7 q1 Q" Z8 V
: E3 E5 m" ?+ C& h! ~现在终于删除我的狗屁加速...
$ ?( r% E8 z' h5 T1 i5 z2 l" `5 K. H F$ u
/ F( S7 I8 s! x6 ]. H" q5 q
- m8 V* U5 d! o* o" d8 N) l( R |
|