|
|
食品车:
4 L! J5 j- ?6 c n( u尾翼:) J5 [2 ^+ c2 D9 B, ?6 Z
, z; g3 O. F4 M5 o' E; _0 K& [
代码:5 `+ `) f. H: v* f
CWndAutoFood::CWndAutoFood()3 y+ E- p. L9 n
{
' u4 Q7 s& y+ d- u# B# Y7 { m_pItemElem = NULL;/ y, G4 ?0 T" B |
m_pTexture = NULL;
0 h/ g* X6 w, o8 ? bStart = FALSE;5 E$ Q- J6 C0 s x# w8 d
}* m8 f5 f2 x7 Q7 d* x9 G" ? Q
2 Z: j5 V6 H2 s- P9 ^9 qCWndAutoFood::~CWndAutoFood(), T+ |8 p p/ J# H9 o
{ Y+ `$ Y# Q( }
AfxMessageBox( "AutoFood ist gestorben " );
) G* }3 m2 t" I) l/ Z% a( h* R}% T" I2 R8 Y8 P2 C) O! c( U
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )
2 r2 D) D8 n/ U8 r* x+ ], E$ ~{
1 Y* E' k. N. a/ B( n7 G return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );
: t% S4 B) l; ?# n; e! J}
9 x$ T6 H0 j( P1 ^/ i
& b8 g: G8 A( i+ y% Q: r5 v+ Y! hBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
1 ?( X6 I8 D! S$ ]9 M5 {/ H: _{
3 w: a# L% a4 o- S/ S* C9 C" | E1 C LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
, c7 k7 H# J T$ U CRect rect = pWndCtrl->rect;7 r b( W2 D' U" o z
if( rect && rect.PtInRect( point ) )
, d9 r& k' O7 t. ?: n4 {' y5 P0 t {9 G# p# `; X5 U$ S2 w
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
3 x# W% K, ~7 |; s% { Q6 t( j if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
. g. k: x0 i5 s {4 }, F5 H4 Q" Q7 d1 u
if( m_pItemElem )
9 x5 Y9 @' t* D& C/ T a& _ {) J( g6 X" `1 F; {) A8 m
m_pItemElem = NULL;. L6 p8 b4 I- E3 \7 k
}8 W' S% T8 _' k1 i8 r
m_pItemElem = pItemElem;
' v0 Z7 U8 n" d7 B3 N! U m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
& |2 @% J6 n, J% r1 }# m8 h- F }else{
' p6 g3 y1 S' R! F6 g3 p SetForbid( TRUE );3 \7 f/ u" |) f' Z0 A
}+ t" q* A) X+ I4 t. J2 a
}else{
/ Q: Z& A8 x. u0 Z: @2 a SetForbid( TRUE );
4 j! d2 l# M z; l0 ^6 o3 ^ }
- O, S: R; Y. A2 r return TRUE;: @% ~6 U) Z( C
}- V' D) C" L; y t; u" [4 n8 k) T; m z# e
) E, u( M+ Y( t) W0 V
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )) m, o# G: C H3 |* G9 T
{& ~/ p8 M I+ k8 E7 I
switch( nID )( _1 U! r/ e1 L* O
{1 e$ i! }& x& O0 b D7 Y
case WIDC_BUTTON3:
+ x9 d, V' u7 @* G$ U {
. X$ A |% N0 V$ {: N8 a/ ?8 |" P& d bStart = TRUE;
" }4 o) m, u* B" M* `0 H' ]) ? break;! V' P/ m. h# H' t
}
$ j4 t2 H6 X3 r case WIDC_BUTTON4:
) N6 P6 u+ \' T' E! u% F; m" s1 p {: K& S$ l5 B6 c1 h
bStart = FALSE;7 X% q R+ _& J# o
break; u% y# a( j# A* J1 y+ O
}
1 a$ ~; D- v; @# b: s }
6 ?/ I; z( _1 e" `2 V9 x return CWndNeuz::OnChildNotify( message, nID, pLResult );
# v7 t/ M: J. }0 e/ N} ' ?6 f7 k: M, b: f5 w$ y& }
void CWndAutoFood::OnDraw( C2DRender* p2DRender )1 J* W1 s/ T" i3 }+ ^& ?: S
{
5 b8 E. M4 V$ R' Q0 D CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
0 J1 h5 u! r' w if( bStart || !m_pItemElem )% z7 \% g. c0 U2 k& A
{! U+ j# c) S# ^. D' a; B& r+ T
pBtn->EnableWindow( FALSE );, S9 @1 Q; k; x' K ~- u
}else" m# ?1 q/ g5 E8 o8 `+ b7 H% ]
pBtn->EnableWindow( TRUE );
6 z. v6 u, u3 z; k4 e* ] if( m_pTexture )
5 o* B2 e' ~& W {2 \* y: |, g3 ?# V; s
LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );3 C8 J3 u# t: p& ~- z' g' m
if( wndCtrl && wndCtrl->rect )! t" i2 ?3 u' n/ N3 k, | D: r8 T5 B( W
{
5 q o2 Z+ a3 Y- x- {4 e/ O8 u( p+ ~ m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
, ~2 ~9 r) S! i+ p$ I; _ }
/ p" d$ B0 y. [" }7 Z$ Y1 A }
/ Y5 y% R7 H0 l& Z+ O! v# n}
" [( z/ p3 h. b9 h
" x; \- u, _4 K0 M6 ^0 w0 hBOOL CWndAutoFood: rocess()0 R# d0 X6 P. R; J: q8 S
{
" i" S8 f, F) j- c1 q- h if( bStart )) X# u7 H/ c9 K# [# H# t5 u
{
" Z3 V) N; }+ f! O9 H if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
" f6 Y- F" E. c {* B( S9 p& A& K) }+ N
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )2 L% Z* F% G, Q6 U7 z2 U8 a5 Y
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );5 X& G" O4 d- P# t: [
}else{' j# g& S, R; |+ d( q5 a0 l" G3 t. i9 i
bStart = FALSE;
8 a" U( {* N, Q5 Y& n6 Q m_pItemElem = NULL;# X0 ]$ B& R* j Z$ Q3 }) R7 \8 x
}
9 p( q" p8 N7 v) _# }- |/ v }
# N2 {' H1 p) J& @ n9 o return TRUE;+ P* \: `- r# I5 A# f' V% \% s9 D
}5 ]$ i( C8 u4 d4 U' I7 o$ u
- J+ v" j0 t$ j R: D5 n登录视频废话:
3 w( j1 y. W, ?% C5 n* s* B尾翼:
! p$ t* V) }9 V4 [. D0 m8 N0 Q
' P% v* g$ U7 y1 ]1 B" c& f7 N& d代码:
" n3 e9 n8 ]' I9 `" ^! ~" m8 v( f$ S, J- l; P7 Q3 Z
void CWorld::SetLight( BOOL bLight )4 V/ |) D& P2 r" X7 r2 {- _; w
durch7 P, E* {4 V2 ~) U
Code:
G* J$ M, T6 K) t" [( lvoid CWorld::SetLight( BOOL bLight )# D: B, F# m0 T2 _+ K8 s$ c
{9 |6 t, e* s2 }5 T( ~& Y+ q6 j
//ACE("SetLight %d \n", bLight);
- P' i) H, F% k; W4 ]* ?1 ^2 k/ V ) V+ R9 @0 r( y$ i
#ifndef __WORLDSERVER
0 n3 I9 _2 D8 z) n( c) C DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);% L S2 K- h6 K! u ~) E% |1 M- e
CLight* pLight = NULL;
# c# }1 g$ e4 Y1 E3 Z7 a
, O# T. ]) g$ E$ w" G' L D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );+ h$ m( _$ S& k& V0 i+ p
) W4 T: I- c; l pLight = GetLight( "direction" );4 Z. K8 t9 `1 a, ~: ] ]7 _* R; X
/ [" D3 @8 U+ O" o8 x8 v- @
#if __VER >= 15 // __BS_CHANGING_ENVIR: |$ P- ~! f5 u' O8 M9 s; J" f
if( g_pPlayer ){# ]9 o1 h- F/ m7 W0 a2 H3 a' n/ H
ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );: X' B4 o& i$ t
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!
( Y( K) i: e0 Q5 V/ o1 T* O: P {
4 j% _9 Y# R* t. |0 X% k% L if( pLight ); H9 Y6 D) |4 {* h2 v& l, Q
{
3 m! Z+ y$ w8 B' s% G7 N0 g4 P+ s pLight->Ambient.r = pInfo->_fAmbient[ 0 ];$ @5 X6 I/ t* B: @- s$ E X& [1 y
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
0 n; u. T$ o2 H0 L1 w pLight->Ambient.b = pInfo->_fAmbient[ 2 ];6 z* x' r* R2 P* s! h
8 h- W8 ]9 h! u( B! K. D h7 Y
pLight->Specular.r = 2.0f;$ r$ {4 r* x, I, j
pLight->Specular.g = 2.0f;
; |7 r* J. z7 h% C, m4 _: X5 f pLight->Specular.b = 2.0f;
' T- L% ^: e1 o( S! R " i! o5 s/ B7 t
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];, q. s7 v. w0 N$ |/ {
pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];7 M% \0 \2 n) X( P9 X6 }
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ]; k( c/ G+ D# O F a0 w! G
7 H; Y" h' q7 e: h) R: { HookUpdateLight( pLight );
: o* z* s9 k, s4 q; q" o( U8 I; u1 Y, {1 U6 {% M
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
8 Q' w9 u$ Q# Y- y0 X 6 l, I+ d9 [5 T# y
pLight->Diffuse.r *= 1.2f;8 }: K& \, B7 Y
pLight->Diffuse.g *= 1.2f;
9 a! c. L2 L. F- V1 g pLight->Diffuse.b *= 1.2f;
s, w% |) X1 K0 B0 K; b0 F
& y5 I; q2 z+ ~ pLight->Ambient.r *= 0.8f;
" }3 z* |6 `$ W9 ]) f pLight->Ambient.g *= 0.8f;
5 L. i ~5 H, `4 {/ h" f pLight->Ambient.b *= 0.8f;$ y; a8 V8 ?' i$ D1 `' ]. x. l
# F: I- H; W+ \, t memcpy( &m_light, pLight, sizeof( m_light ) );# p! M, N a6 ^' h1 }* A7 w
% |9 m% D, Z# q( u! i' c/ O; ]" Y; k+ i
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);5 I2 W* b2 S6 H4 R1 ?& C. m* L
D3DXVec3Normalize(&(vecSun),&(vecSun));
$ p) @' H% q- N ^% g( |5 v0 J! u* ? pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
3 S$ a, a: ~; L. u- Q4 o) D; f pLight->Appear( m_pd3dDevice, TRUE );
/ B8 ^( Q3 N: W% Y' c + w& B7 q4 s3 V
DWORD dwR, dwG, dwB;
, o! c. O/ y. o, @& O3 j dwR = (DWORD)( pLight->Ambient.r * 255 );
u* V* S2 p' s; Z! } dwG = (DWORD)( pLight->Ambient.g * 255 );* t& q( U/ d8 Y% y5 B2 `; U/ d
dwB = (DWORD)( pLight->Ambient.b * 255 );
! X3 n Q* A$ `9 e! j dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );5 \" i8 L6 l) S" l3 y
}7 m- }; U/ D2 n
}
1 }- ]1 |& }, C5 a3 t. f! k2 X2 n4 v }
' c4 `; h- J, T l2 Y6 g else* P. E/ X" N E7 Q: X
#endif
; P; J! W: R/ u8 }4 ~6 D% m
% U2 C, M2 [% Q0 |9 p3 O( g4 c if( m_bIsIndoor ) z [7 T/ e; H9 T- j
{8 r8 q- P( b, f
if( pLight )) U! V7 \/ h& ?9 O8 {+ X
{ , W. r4 p' h; h& B9 d+ P* @
// à??μ oˉè*
T. i5 U( R/ M2 s# C0 G pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
9 [: k$ p) |. H pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
+ }9 A1 w& x) {: ?9 u pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;* I% W) z! }$ B. {
& @6 b% H y3 L& C2 N // oˉè* ??à? ; Z* j$ ~) p' e% C% t2 P
pLight->Specular.r = 1.0f;( y2 g0 s2 H2 Z* M0 ]; w# ^, C7 e; E7 Y
pLight->Specular.g = 1.0f;
1 [/ |7 f1 O/ s5 n2 t. v3 k. T pLight->Specular.b = 1.0f;
3 {! [0 B7 ^% z6 |3 v0 L( \4 b4 B // àü?? oˉè* 9 O* H8 \" Y' x/ O- q, g2 p/ O. H
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;% f; h) g) }. H, M$ T0 w1 M
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;
) \' _/ W- O" K" @8 o4 O1 ?, n5 K pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
h7 q4 G' N* d# ^* r4 s- c* z5 h9 c$ R4 m6 g' R% \
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.! H2 Z# h; D& t8 R4 X
{
|. l4 | K) d' F, A( m pLight->Diffuse.r *= 0.6f;* ~, _" _) ^/ v+ E4 ?1 Q3 i* y
pLight->Diffuse.g *= 0.6f;# |' g; P! g v. w( }$ n$ n) W/ h; ]
pLight->Diffuse.b *= 0.6f;; j& S" x- W, S7 n+ r
pLight->Ambient.r *= 0.7f;" V9 D; ]- g1 K. Z6 N0 E
pLight->Ambient.g *= 0.7f;
- \' g& _, m. u1 w pLight->Ambient.b *= 0.7f;
6 h- c9 O; b! [ }
' v2 e& \% s1 ~( @9 ]5 }, c0 C* h' k q( R; L, l
#if __VER >= 15 // __BS_CHANGING_ENVIR
: r+ y% _+ ]( H C g, }9 q& V if( g_pPlayer )" x2 ~7 K4 J9 z" N) I- q, k
HookUpdateLight( pLight );
! R2 L* w* q5 `0 Y5 q#endif! E- ^5 z( u; u
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );. d& @ w- l; F; Q* S! m( d; h
: e- M" w1 |/ s) ] pLight->Diffuse.r += 0.1f;. `! L& N# ] O* {/ v" C1 \* C
pLight->Diffuse.g += 0.1f;! |" f( B3 w% }0 O* V
pLight->Diffuse.b += 0.1f;& k0 i- `( n: E1 c# _# p
// oˉè* ??à?
0 ]* x- L( `* {" B2 ~8 I7 q pLight->Specular.r = 2.0f;
0 Z( a) d" @1 y; E6 c pLight->Specular.g = 2.0f;
+ ^: {6 Z: b$ j' y- y% [ I pLight->Specular.b = 2.0f;
6 M0 S; w. ^* c2 g( a* u$ t5 H a // á?oˉ
# j" u3 s# }7 i' x pLight->Ambient.r *= 0.9f;# s$ }9 J7 Q, b7 I+ H' g( _
pLight->Ambient.g *= 0.9f;
1 @! ?0 I$ G; q4 L" X/ V* u pLight->Ambient.b *= 0.9f;' k- @/ f! q! _6 f* H
0 ^/ i3 Y* a. B1 }- A memcpy( &m_light, pLight, sizeof( m_light ) );
6 J" v4 Q0 O" J3 k! \ ! J; K: ?% {, y% l, F
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z ); m4 j/ N% [, N0 A# H$ a
pLight->Appear( m_pd3dDevice, TRUE );4 k* e" T+ _2 F4 {
! T6 C6 A7 j" b& k. S* E) ]! A DWORD dwR, dwG, dwB;
7 O2 z; J* v. q3 H$ y, E8 r dwR = (DWORD)( pLight->Ambient.r * 255 );
% h( v c, S( V A. H dwG = (DWORD)( pLight->Ambient.g * 255 );
9 m3 H3 y& E+ ~! s' x! d% x* g dwB = (DWORD)( pLight->Ambient.b * 255 );; k, C7 V9 I1 M5 Y
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
1 ?; ~0 A8 o' h" T; ] ^ }4 r- l0 H$ {" s9 ]; l8 u
}0 X/ b Y0 F' Q' v% ~
else
$ r& k/ u/ S& x5 F4 v" `( m7 Q {* T3 A+ l4 Z! u& F" p& D' j9 p4 p
if( pLight )3 ^0 H! B$ b( ]; d8 i9 J
{- f) E* {' u+ I% k9 }
* H: t% f3 O6 u' K* O
int nHour = 8, nMin = 0;1 R! M$ j( l* M( n% U
#ifdef __CLIENT
& M3 w# {. y* [$ A9 d x& m // ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
6 w( J5 O- v& j4 a5 v0 _+ ~9 q! ] nHour = g_GameTimer.m_nHour;, { Z8 g* h3 H% C, [6 D$ R* n* E. h
nMin = g_GameTimer.m_nMin ; Z6 D' ~$ c! w# l1 q# W- g' W
#else9 R! H; z6 h& l9 K& @0 O# }. u
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.+ Q9 x5 m1 T y, g, A1 D+ y
if( m_nLightType == 1 )$ h! G1 l: V6 t' Q, {; o
nHour = m_nLightHour;
0 k9 z9 }9 }7 s* P+ r8 @ #endif
6 e T7 e8 E+ n# w: g& l nHour--;
# \5 @9 N" A6 l7 ?# d8 N if( nHour < 0 ) nHour = 0;
, B8 Y/ C* | D; {" D* s! x if( nHour > 23 ) nHour = 23;( A2 E! ]1 K* \1 D3 r- j
9 U- H% k' ?7 u/ T& r# G
//if( m_bFixedHour )
8 y. b) A3 M. A# C* F) T( g8 z$ j# S // nHour = m_nFixedHour, nMin = 0;0 \' a% \* d8 I, c4 C
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];
A5 b8 ?+ V- V# n1 s LIGHTCOLOR lightColor = m_k24Light[ nHour ];
$ v6 d2 p7 h' n$ k0 p! k- a
; Y& R) @6 x- j/ y //m_lightColor = lightColorPrv;
/ A; t Z% T. G8 @- j lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;* K- O0 @& S: I9 j4 U. u1 X
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;
$ O Y0 {3 @9 c7 d lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
$ g1 b7 [! t; [& m! b' q- ^, \ lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
7 X7 V2 {( y* L: ^' [ lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;0 m5 j9 D2 q/ B1 D
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;1 r& H6 X4 L3 n9 D+ w$ w: |
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)
9 |% Z, v7 l. A- \6 t
( G, ~$ m, R, i+ B6 ]2 _ // à??μ oˉè*
2 t2 q- W, ~) A" J7 O( D# O+ V pLight->Diffuse.r = lightColorPrv.r1;$ ?6 c4 ?( G4 N) L! B4 c2 w
pLight->Diffuse.g = lightColorPrv.g1;. o9 P# K4 g, r( b5 J
pLight->Diffuse.b = lightColorPrv.b1;0 C. {2 g6 T0 p2 Y+ _ Z( e
// oˉè* ??à? v: i3 ?/ z: R+ m0 X" S( h. g
pLight->Specular.r = 1.0f;8 L1 o$ ~% t. [& ^1 z: f$ Z6 x9 R
pLight->Specular.g = 1.0f;
! r3 C9 V: n1 P4 a; ~2 t$ h% S pLight->Specular.b = 1.0f;7 T8 Q& l" Y @
// àü?? oˉè* 6 H( J7 E( Q! I7 j% n
pLight->Ambient.r = lightColorPrv.r2;
" u2 |) T' V' u% e* B& F4 j pLight->Ambient.g = lightColorPrv.g2;
, t- }9 C4 O1 e7 B1 D, f pLight->Ambient.b = lightColorPrv.b2;
- n# }' \1 _: E% y
3 l: }6 X; a, N* x: p1 l if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.1 Q. V' x( C1 u I8 I
{3 l: W$ I* B2 [
pLight->Diffuse.r *= 0.6f;
3 a4 B* p9 X8 J pLight->Diffuse.g *= 0.6f;0 N' R( j( b, l# q$ A
pLight->Diffuse.b *= 0.6f;
. A8 F. h0 K) q: L C pLight->Ambient.r *= 0.7f;
3 m! q3 M+ _6 ` pLight->Ambient.g *= 0.7f;
- U6 f. s) }. u+ d8 t% F pLight->Ambient.b *= 0.7f;% X$ D$ e! m3 b/ \
}
# P- X, Y# A1 D* i8 r. O8 A3 i / ?% i% Z+ B( m. \% Z, @: z! y, c: `! N3 U
#if __VER >= 15 // __BS_CHANGING_ENVIR
3 |3 G% W w9 M+ Q+ g% C if( g_pPlayer )
9 m M# t7 K3 z HookUpdateLight( pLight ); % k. \8 w6 M) o8 \, o6 s
#endif
7 a! v% K; l) R1 g) ^9 [, L memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
* o3 M/ G$ H p5 v# D5 g3 j+ h; D& J# w* x3 m9 F& ?
#ifdef __YENV
$ P* P2 f H$ L; b7 [3 _/ e pLight->Diffuse.r *= 1.1f;
) K8 c: E9 e/ S, U pLight->Diffuse.g *= 1.1f;
, L/ ]$ x1 J4 C pLight->Diffuse.b *= 1.1f;3 q! y- m1 k9 k
// oˉè* ??à? ' I$ P( x0 p0 }! q e
pLight->Specular.r = 2.0f; |" T1 l( F% e! d
pLight->Specular.g = 2.0f;
1 z2 D$ V/ [& a, p5 s' g1 v1 d pLight->Specular.b = 2.0f;
0 d1 C G6 O3 u. t // á?oˉ
" T! J3 z; A7 B. m+ T" y3 y' J pLight->Ambient.r *= 1.0f;- u1 o8 h" l1 T, R6 u1 B$ P
pLight->Ambient.g *= 1.0f;
. M9 t0 O. Y7 {8 N pLight->Ambient.b *= 1.0f;5 M. H5 b3 `0 v# j$ r4 r
#else //__YENV
( G' C4 m; S7 [$ U' X8 z pLight->Diffuse.r *= 1.1f;7 t3 U' P0 u6 N: K
pLight->Diffuse.g *= 1.1f;
H2 \7 I+ Y- Q6 ?- q pLight->Diffuse.b *= 1.1f;
& ?. {: ?2 A5 X* o // oˉè* ??à?
) D( l7 ]2 F5 e" \4 A1 ~/ O pLight->Specular.r = 2.0f;
0 b$ _/ y( [, I% [1 Z" f1 b pLight->Specular.g = 2.0f;
$ k" O! `. V; x1 K+ H8 G2 Q pLight->Specular.b = 2.0f;' V$ D& G" y Y. t* f6 \
// á?oˉ 3 y8 G/ L; w; y: i( ]) T7 n
pLight->Ambient.r *= 0.9f;
2 _/ s$ S2 A r9 a5 f5 F pLight->Ambient.g *= 0.9f;0 `2 K0 ^5 y: |8 c0 T
pLight->Ambient.b *= 0.9f;
% H' U7 j. S; G9 A! @, Q#endif //__YENV - o2 _2 S" e$ o: c) I& A' s
% `" W# h7 e$ m4 B, l! j memcpy( &m_light, pLight, sizeof( m_light ) );
3 d& M1 t/ C& b( Z5 W3 V" W1 z - `1 k4 k* g- z: {. c
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
+ B' U; I3 }* D( G" o4 w9 ` D3DXMATRIX matTemp;+ Q8 e: I8 K6 F8 Y& T1 w( f
static const float CONS_VAL = 3.1415926f / 180.f;
0 J7 T) g/ [1 G3 r
9 f* L$ B: j* M; _: t D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);, C0 F& d& v4 j) h
D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
- _+ T: x6 X1 m' O0 w7 W8 F pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
w: [7 L- D) y1 { pLight->Appear( m_pd3dDevice, TRUE );0 ?3 p' b9 W( I; O0 a" s
/ s% ]! q0 \8 j' ?6 O9 U1 ^ // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) q. E$ Z5 X. ?+ Y: w // D3DXVec3Normalize(&(vecSun),&(vecSun)); E& W3 f8 i& L
// pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
: m) |0 T+ X' \ P6 M/ e0 ~7 t: `$ ?: K0 w; j- p+ {, w
DWORD dwR, dwG, dwB;5 k% E1 z4 M/ V& u* g
dwR = (DWORD)( pLight->Ambient.r * 255 );
* {5 L* V9 w6 s! ]( k dwG = (DWORD)( pLight->Ambient.g * 255 );: x6 ~% t A' W. ]
dwB = (DWORD)( pLight->Ambient.b * 255 );
0 f L. }) ~/ v/ n# t) \8 ] dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
Q9 d+ U; o0 H. X5 A# Q1 X }- w2 }, Q7 U% X7 }$ ]7 M. I3 Z
}
& r; T9 i& ^8 n5 q7 ^1 O
# d7 k" C. y. I; } m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
2 t' p; U1 C" N7 B; m 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 f5 D, x8 S" b$ P2 Z | ::SetLight( bLight );" r6 m* ~; G" E
* R# a* `$ y8 o* x9 U9 j // ±ao? ?D?í???ó á¤à? * J: d8 V1 U# W( t% E
m_pd3dDevice->SetMaterial( &m_baseMaterial );: G! A/ a* x1 u" j2 R
) H& R6 T6 Y4 `, e
#endif // not WORLDSERVER
7 x' k7 Y8 g7 Y0 i}+ I# J0 e& i$ r% D, Z1 Z" L
并更换
6 h5 }5 Q' t1 l1 JCode:
6 Y1 b, x6 B d' }4 `3 _* q__FLYFF_INITPAGE_EXT1 a$ I) d( Y( l8 U- t7 Q$ e
定义
% p* M- p z* i/ n: l* g/ y4 n) t9 w( Q% F4 [
* m- B4 B7 p+ r5 X4 u% Z @$ W6 W" f3 Y# `. {
% ]" Q9 _0 g, @/ C9 P
现在终于删除我的狗屁加速...
$ m! K5 O8 s' ^1 Z
, @4 O7 n, q% V) h6 K1 x" [4 ?* N/ z# P9 }
* t( ?& _( I1 j5 c% p8 c
|
|