|
|
食品车:
& q7 M* c( t" |4 V/ D. [- D尾翼:
- p/ p" s- U7 ~ C3 K0 f
- s8 B' W$ l& `4 [5 Y6 A5 T代码:. v) r. }& ~; p% T' I
CWndAutoFood::CWndAutoFood()6 A( ?; Q" [: `' \- R3 ~
{
) C7 b/ \$ M% ], t9 [% U5 X4 \ m_pItemElem = NULL;; h: g. b6 E: |0 s+ x; S. a. r
m_pTexture = NULL;. `' E. o" [7 u3 C! c
bStart = FALSE;+ u) Y3 I1 [+ h
}
e! j% w+ Y- E. @7 w, R- x2 a/ R) M2 U2 G
CWndAutoFood::~CWndAutoFood(). w# L/ E: J( x# ]$ T) h
{
* S! O) j4 ]% L$ \0 t AfxMessageBox( "AutoFood ist gestorben " );$ a7 G! u9 r6 A( u$ X
}6 c2 J3 r" @2 l4 T+ {' g
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType )( }7 c; f3 p5 v
{
. T0 {# [% v: i( n9 G& W" N return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent );4 d4 i9 z, k" m* w6 ]! h
}
( I3 _0 M" z, L. [9 U9 W! h" L- c
" z9 `8 L& l4 KBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )1 G) Q5 F+ r. \- I
{
5 v/ h# l* V u3 g LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );9 c* H' u- Y' v( R5 Y/ H
CRect rect = pWndCtrl->rect;3 }4 m5 m; n' Y; i. t7 P* a: ?" D
if( rect && rect.PtInRect( point ) )' n. @& L6 x2 g- F) ?8 N
{
* M) i! _+ ]. d/ w b CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );: c# K# j. I+ L& A1 F0 V
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )8 o( ^$ v7 a$ E7 v: S+ D* Q6 l
{6 N- x* B. w, H9 a3 ?
if( m_pItemElem )
. x: C5 W) j( _7 g, |9 Y; z9 l8 P {
# l' {1 K' K/ `# I6 D% j* ?- T6 D m_pItemElem = NULL;
. {; J1 A, x8 w( R6 k* v0 q, X }
0 Q1 j) I% i/ d6 @$ A6 {8 t m_pItemElem = pItemElem; j c: P* N, e
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );
* a3 t% Z. y% B }else{4 M, }" Y9 E9 S0 a
SetForbid( TRUE );' D" {3 \0 j4 x1 _+ b! w3 L
}
9 b- ?8 n' W2 @7 I8 M$ h/ O* j }else{! q; G" g" i v
SetForbid( TRUE );/ ^1 ^3 r i& G" Q* D" b" x
}$ `7 Z1 `* }+ W. f
return TRUE;! p8 v6 R8 b4 ]- e
}8 A4 \1 `& p2 Q) s7 ^' J+ @
2 Y8 |& R6 c5 z Q5 x6 @5 e: SBOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )7 p& P1 J) |/ X
{9 O1 `$ ?$ K& P. S$ V
switch( nID )
) l( {! J; [" F1 F {
F. V/ v; ?4 z; B/ A% g case WIDC_BUTTON3:' z3 ^0 c) C: S' M+ z# D
{
0 D* L+ `! ^$ e+ O& Y& L% c bStart = TRUE;; s y3 A% d' i- u/ v! N
break;
- _ v/ Z/ u! ~: S5 ^ }
- P; o6 O# @! b, c1 }2 m$ W case WIDC_BUTTON4:7 Q' B0 r1 d$ Q
{/ J! c: Y; f8 S3 |, v
bStart = FALSE;6 O# k- z7 x+ B9 B
break;
2 \; o8 I. }/ p% ]$ q. B& l }2 g/ y' a f1 n! x# {' O" m8 l
}& T' [$ H9 D' k
return CWndNeuz::OnChildNotify( message, nID, pLResult );
) Y* h" ]* i( ^* J+ P} + ^/ s' S, U2 ]3 D4 l: W; U O# y" i
void CWndAutoFood::OnDraw( C2DRender* p2DRender )( {* U) B2 k2 G" o t `
{# a6 w0 M# H. q" J
CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
& A4 M1 H+ F" i: S6 o( a2 b9 r& j if( bStart || !m_pItemElem )# v- Y( {$ I/ I+ D
{
1 l# `4 ]! k* h* }% R) x pBtn->EnableWindow( FALSE );
& w8 Y G S& D }else
0 e7 R9 j% S$ p pBtn->EnableWindow( TRUE );
4 A3 w2 Q) g: X4 a! ~ if( m_pTexture )
4 f9 s% t) K' W) ~# \3 ~2 f% }( T {
! I1 D2 W% `( Y% [5 s; o0 H LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
1 [# b! F( D7 Q+ h0 d0 Y: i5 [ if( wndCtrl && wndCtrl->rect )! o& }7 s, b1 Y6 {/ m# Z- K& O8 [ r
{7 {- o- ^3 o4 L3 X: T0 U% Y8 V# L
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
$ Z. Z) [7 Z' y+ { }
, G5 S+ ~- y$ q' m$ r& B }
6 d0 N2 w, ~: s, n1 L}, w, e6 C- P1 w7 T' W; O* A
4 M2 w" A/ v! Y0 q, NBOOL CWndAutoFood: rocess()/ Z& l' P9 W, O
{
; \/ k* e+ z6 A- \6 s \ if( bStart )5 I' j5 W/ F- }% _1 U
{
. ?; H' C: V' K4 w, v1 k if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
2 |" v+ N0 q) w+ N {; Q% R( x% V- j C
if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )
; ~; |* W9 {1 t+ r# l, i g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
2 u; ]! @* K3 a0 c+ p5 \! c1 C7 ^ }else{. E' H" {/ E3 v' W$ Z
bStart = FALSE;
/ m3 V* T- i- v0 \- p' e m_pItemElem = NULL;7 j5 M9 h4 t3 D5 ?' q0 n8 ^' C/ o) P
}6 j5 u6 f7 B r5 k; f) N! Z/ Q2 X
}
( `5 |# L' X2 c4 c& ~4 k. ~2 B return TRUE;: l5 a% J& Z/ ?) B
}
. l& k. v9 N5 g+ H% S- q* }( P* s9 t7 U( U
登录视频废话:
1 ]% B7 x/ y- B) d% J" b) l) U尾翼:
4 s7 C9 w/ s8 x7 ~4 Y1 ?) S' x* E
( X: x4 y' D$ {( Y( Z5 X6 l代码:; x: M; q9 y1 j' I' o
" o1 \+ f) a3 D9 D. f Zvoid CWorld::SetLight( BOOL bLight )9 J% X8 g' Q2 _; {# e
durch9 m; n4 v4 p8 n
Code:
! I$ g) Q- K h" C+ Gvoid CWorld::SetLight( BOOL bLight )
' C; H% `. P5 D7 m, k% L{
9 [: D% ~9 X, W! \0 T //ACE("SetLight %d \n", bLight);; A6 h8 K) m7 g* u8 c
& S4 y' ?8 s. d8 f- O+ A#ifndef __WORLDSERVER
5 ], V( Z# O* l( c, O DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
- h: a) f' O# j; r2 ^& j) o CLight* pLight = NULL;# @- @5 Z5 v# W# }
9 F3 o* n0 j# f$ c$ h
D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );
& t6 z. v! T; k& m7 f7 T
9 l2 s ^2 r0 I! l; l pLight = GetLight( "direction" );' @! A8 p3 E3 O8 [1 u
3 j( M" _. f9 I1 ]/ a/ f, d
#if __VER >= 15 // __BS_CHANGING_ENVIR0 E$ ] {) U, ^+ ]
if( g_pPlayer ){
; W: g) c1 X9 Q* u( i/ c# y ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );
: @# h$ s6 c; R. C# G! g8 |/ ~ if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!& F0 [! q% @" t+ ?3 u
{6 v4 d$ a& e% h1 S
if( pLight )3 ]: s3 ~/ n6 f3 J
{7 g3 N+ s6 S/ b7 G# {
pLight->Ambient.r = pInfo->_fAmbient[ 0 ];
' i, I) y$ p7 n# r- Q" o+ _! E6 ] pLight->Ambient.g = pInfo->_fAmbient[ 1 ];6 Z# _9 s- u! Y: I" s
pLight->Ambient.b = pInfo->_fAmbient[ 2 ];7 j* [. e; k9 n2 H4 g
3 V" G& N$ H5 e$ j pLight->Specular.r = 2.0f;- T0 K! n; L8 y% ?) h
pLight->Specular.g = 2.0f;7 _: n8 L9 W/ S- V& H. b
pLight->Specular.b = 2.0f;
8 p! n8 ]& z% t. W/ T. r
" G9 p% n2 H: Q7 Q8 m3 h pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
" G$ H- {2 M0 A8 M+ l pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];
* t+ G( a+ n J" ]+ D% b* [9 r6 @- P pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];4 ?- q( Y/ K# I. T+ o* ]/ U& J
3 W7 {$ i$ n0 v) A HookUpdateLight( pLight );
# H; J' P1 @# i% |* {, i+ t& J9 L, ^
1 e" L: F5 a# r2 f memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
, @$ a" Y- c) ?- o0 {2 V
1 r+ C6 ]3 @1 B( k% B$ x+ ]# s& W9 d pLight->Diffuse.r *= 1.2f;& J, L" c& J: v
pLight->Diffuse.g *= 1.2f;3 J" p3 q4 N0 k
pLight->Diffuse.b *= 1.2f;
$ t/ n& R9 p* [' R& s# L( l% p% i. s9 q3 Q- F
pLight->Ambient.r *= 0.8f;6 Q6 ]8 M B) A. L: ~* N; K/ j
pLight->Ambient.g *= 0.8f;
; q7 q2 D% u Y5 a) D pLight->Ambient.b *= 0.8f;3 C2 N# ?3 f+ Q& @! x) s1 N) z! ]
( P2 z* e3 h D8 x memcpy( &m_light, pLight, sizeof( m_light ) );
, D, T* Z" g* y/ ~+ O, m8 O% `0 e! E# p
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);, R) F( D: m; h9 z
D3DXVec3Normalize(&(vecSun),&(vecSun));
- w7 \ P1 K* e# r) a3 m! A4 l pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
- y( e1 f, o9 ?; J pLight->Appear( m_pd3dDevice, TRUE );
# `6 j* p* P" z9 F
% s* T8 L1 s& j; X0 A DWORD dwR, dwG, dwB;
$ H4 R( R8 \0 l7 Q dwR = (DWORD)( pLight->Ambient.r * 255 );2 n9 G/ [7 X% k8 k0 W, _' d
dwG = (DWORD)( pLight->Ambient.g * 255 );- W' {, o# Z0 Q+ C
dwB = (DWORD)( pLight->Ambient.b * 255 );% i! p. v: N# `3 m8 t5 A' t
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );0 Y- O9 ?6 T1 j8 P8 U+ {
}
3 B% v- h, u( J; n0 q! \4 u }# c4 M/ p) C& }$ B
}5 a0 S' d( g7 X- g+ R G6 f6 a
else
4 N9 X. ^, }% ?7 s! O#endif
2 E- ?4 Z1 V i J) }3 A* |# Z4 y% ^
; h) O6 m# h7 V9 Q# H7 Y4 E0 w7 n if( m_bIsIndoor )* R3 [" d; m' p
{ E: m# l, p$ k7 y' _" O% D8 c7 [, r5 D% t
if( pLight )
: j. `4 o5 K# J; }$ y* ]+ `" v' U { * k, r) x5 [0 u" Z D
// à??μ oˉè* * k6 ?$ O% l0 F. w8 R
pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;6 k @( d2 @4 b
pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;* Z/ \% C( Y1 o6 b, R% c
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;: s) J8 |" g4 B& s, ]
+ {! {9 u# w N/ D8 v" m. l
// oˉè* ??à? ' W& l2 `+ q# ?9 C. u# e* m; O
pLight->Specular.r = 1.0f;
$ w! f0 E9 s1 F; t- j pLight->Specular.g = 1.0f;
9 y% E# E x! E: O pLight->Specular.b = 1.0f;' z) v% ~* m$ X e; H
// àü?? oˉè* 1 w1 E; x$ \- r
pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;
% c9 [2 R# u9 L" e pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;6 _9 A o* Q" W1 Z* }( A7 t
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;
0 T& a7 ^; G) T" W. ~: t# i- u7 S2 M3 O
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.; k, D0 M$ Q8 h
{
/ M! e' l. h! p! h7 v pLight->Diffuse.r *= 0.6f;
1 a2 ]( ?# A3 ^ pLight->Diffuse.g *= 0.6f;
/ i' L' _( C& e: {% z! T- P3 ] pLight->Diffuse.b *= 0.6f;' G2 W; R' W1 S
pLight->Ambient.r *= 0.7f;
0 v5 |5 n+ I% B+ x/ a& K0 { pLight->Ambient.g *= 0.7f;( @2 o% {+ ^; |! }5 e* r
pLight->Ambient.b *= 0.7f;1 q5 ]/ Z/ O! d" @; o1 Z# G0 e( Q7 c) j
}
, n/ V! e/ D( _5 q) {6 S q; T8 K2 q }) [* I
#if __VER >= 15 // __BS_CHANGING_ENVIR- @6 n, A/ c$ N6 L$ a# k
if( g_pPlayer )* r- i, F/ ~9 A
HookUpdateLight( pLight );
* F3 g4 L" }1 K, U#endif
% O; Y; k/ o: u b5 ?& {3 s memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );/ q; k# `3 [- ?9 {
* h8 q1 q3 k. g; o, v5 k+ U/ e
pLight->Diffuse.r += 0.1f;2 V% f! z: u( Q
pLight->Diffuse.g += 0.1f;
6 r3 c+ E9 ?& Z& [* M2 J pLight->Diffuse.b += 0.1f;- Y+ i) f! p0 {& D; w; U
// oˉè* ??à?
+ c- i# m5 R: [; C; q pLight->Specular.r = 2.0f;
, Y+ V6 r9 R# i1 K' z pLight->Specular.g = 2.0f;; Y( T0 z* g1 B9 w7 L, k
pLight->Specular.b = 2.0f;
5 X/ V0 ]% w& F0 [1 w7 |0 y I // á?oˉ 0 R/ X& B- x) ^, g; g# u
pLight->Ambient.r *= 0.9f;
! g( i; W- P, x$ x6 ] pLight->Ambient.g *= 0.9f;- r; T; o: N/ w: G5 u, b+ e
pLight->Ambient.b *= 0.9f;
* R7 ], e' E/ Z9 A' g+ b* X" m p) ~1 V/ I% d
memcpy( &m_light, pLight, sizeof( m_light ) );
/ o, ?7 [$ R2 S$ N 8 e: C9 V" X% a* b/ x0 n* q! P
pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
1 e! j! T+ S8 @; K pLight->Appear( m_pd3dDevice, TRUE );
3 [9 u/ q0 z) I$ d6 I; r
& h+ F" k1 Y# c+ f; W0 J DWORD dwR, dwG, dwB;2 F% ?* b8 V' D; B' [
dwR = (DWORD)( pLight->Ambient.r * 255 );- c5 ?/ w9 [. Z5 \; v5 G
dwG = (DWORD)( pLight->Ambient.g * 255 );" u( E8 X( s' Q* x% H. {
dwB = (DWORD)( pLight->Ambient.b * 255 );
' a: {% ^7 u7 D5 k- ~9 K+ k dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );- U" p4 _5 b5 O' v* E) T: P6 u
}( S' b8 ?4 y+ @( |
}
2 m% Q, T- u1 f2 s% N; ]; {" ^5 x+ f else& K/ I7 c$ r+ H5 p
{2 Q8 G, U' a3 l u% \- H0 e* n
if( pLight )
2 h: Q4 ]' D2 h! C! [ {
$ O# T7 {1 v% a- o' [9 l0 |% ?: o 8 N- O0 o' m! K
int nHour = 8, nMin = 0;0 [" g- Z2 z% k. M4 E, u1 z
#ifdef __CLIENT! B1 M! ^( V' _; U G4 v3 G
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
; K' r$ W0 Y" ?+ s" x, ~( O7 N nHour = g_GameTimer.m_nHour;( _9 L, s) P# N0 M8 D( A
nMin = g_GameTimer.m_nMin ;/ L! p7 J1 p. U3 k( E
#else
2 f6 t5 w% z7 M+ a% m, { // o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
( ~/ S% Q4 \. Y7 b3 a! r if( m_nLightType == 1 )+ B2 K. @2 {" q; Z n. a4 h
nHour = m_nLightHour;# H, X8 |" ` B! S) g2 H' ?' l, d
#endif' w, K+ \! v8 |: E
nHour--;
9 l* f, Y0 W' b- G- F, i# r if( nHour < 0 ) nHour = 0;
" h' [9 Q6 p9 o. O0 V3 c if( nHour > 23 ) nHour = 23;8 N% u& S, k1 i; }6 E
6 Q# q% i4 i* r# q7 n& u5 i
//if( m_bFixedHour )
- b6 t( _- h/ l // nHour = m_nFixedHour, nMin = 0;
' e, t% Z0 f6 s* n4 w9 U6 {5 N LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];% p/ ~# M0 X6 ^" A% a
LIGHTCOLOR lightColor = m_k24Light[ nHour ];
8 d& T3 U0 h# k' X5 N9 c1 [3 j. f: M$ x3 b# G0 b
//m_lightColor = lightColorPrv;
/ D# Y+ ^# E1 N' N; G' s4 \ lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60;
3 M" q+ @% s, T" D! P lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;3 x+ a, y! c3 d) Y6 q9 D
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;
+ Z3 t. k D4 C$ G/ K lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
4 n/ `+ q+ E. w6 ?. P( P1 v; _9 Q lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;
5 f2 ~6 ?8 h+ ]0 w" Q lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;! ]+ y- Z) A0 H3 i, X/ T
// 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)+ E0 m0 j: `" e; f1 g# V" y
6 g2 u; f7 ~' Z# Z0 G/ z) k // à??μ oˉè* 3 `' h5 E; k. A e. y8 V8 ^
pLight->Diffuse.r = lightColorPrv.r1;
) O+ ]- S! K( C4 Q2 M3 `5 N pLight->Diffuse.g = lightColorPrv.g1;* H2 g6 }9 g: @
pLight->Diffuse.b = lightColorPrv.b1;% S2 l/ B7 C2 p4 D, o4 Y
// oˉè* ??à?
8 }. r+ k8 A, `: {& C+ Y# [( F pLight->Specular.r = 1.0f;
& b4 _* v4 e- v' i4 T, p pLight->Specular.g = 1.0f;
0 E6 `" C2 u- H' V. u+ l pLight->Specular.b = 1.0f; u u5 }' u V/ ~: U: @
// àü?? oˉè* 6 }$ n4 w7 ^" q- { Q9 k5 U/ O* i
pLight->Ambient.r = lightColorPrv.r2;
; F/ u9 x1 c! l) t/ n5 s5 i1 V/ Q pLight->Ambient.g = lightColorPrv.g2;
+ s4 w% X+ b8 r% @ pLight->Ambient.b = lightColorPrv.b2;1 j" c7 s& M; i% u) X3 }3 B: |5 H+ h
0 Q( m, f/ g m8 o* O
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??. G& ~, z$ t3 p/ _ {
{
8 e; x5 g- l- U# h( T; s' i3 q& W# A& T pLight->Diffuse.r *= 0.6f;
. n4 d7 y: i; r6 E1 l# i" Q/ s pLight->Diffuse.g *= 0.6f;
! ?& `& y8 U: J% z( L pLight->Diffuse.b *= 0.6f;
1 g7 c1 G9 C5 X pLight->Ambient.r *= 0.7f;( I1 f9 F6 F( u9 Y. j e
pLight->Ambient.g *= 0.7f;
& C" Z; Q. I6 W9 Q2 E pLight->Ambient.b *= 0.7f;4 G F$ W9 M$ t% }
}
& J$ I! E7 Z: }2 ~' u/ f ' {8 _3 D5 J- s8 j
#if __VER >= 15 // __BS_CHANGING_ENVIR
# {- ^7 w+ r/ I: n4 ^% r if( g_pPlayer )
5 W8 |3 s$ X S- L/ I I3 ^: }9 l HookUpdateLight( pLight );
' E( T+ I% n' w1 _# y6 H#endif: c4 g+ Z, T' R( S
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
3 D5 y8 F6 x% N, z! I: x$ d
% U) e" r `2 B, u#ifdef __YENV
5 M* G! a) k O pLight->Diffuse.r *= 1.1f;
, v$ F1 K- j/ q0 |& Q- ` pLight->Diffuse.g *= 1.1f;
& J% H1 G( q N' L' l* I) V3 i pLight->Diffuse.b *= 1.1f;3 H( [+ A1 Y a7 S7 j, X
// oˉè* ??à? ( X$ C0 s1 g/ y9 z1 ^
pLight->Specular.r = 2.0f;& H) H- L7 d, q n& v. {/ t
pLight->Specular.g = 2.0f;
' I o( d' j8 A0 s pLight->Specular.b = 2.0f;
) D3 M/ ~+ C* P5 y# z1 E // á?oˉ [. L4 R" X7 l& O% t
pLight->Ambient.r *= 1.0f;1 y: P4 P6 d' ?
pLight->Ambient.g *= 1.0f;$ | \0 e& \. k* ?) d3 |9 `3 Y- O
pLight->Ambient.b *= 1.0f;
2 |/ A E4 A$ R6 w#else //__YENV
% b1 {( o8 _4 n: W! |9 W0 s8 v* c pLight->Diffuse.r *= 1.1f;
/ |9 @+ f5 W2 c6 J- \& A3 z. x ? pLight->Diffuse.g *= 1.1f;
5 ~. A; @ Z& N0 j6 ~ pLight->Diffuse.b *= 1.1f; z! c8 t) h! H2 D
// oˉè* ??à?
: X6 p4 A5 |) A% B ^ pLight->Specular.r = 2.0f;
& O) s6 S( A/ o G E% l$ U pLight->Specular.g = 2.0f;) G \. j: L$ g. k. Q, h: f1 m6 j
pLight->Specular.b = 2.0f;
" C0 W3 n2 ^) q, c7 ^4 Q$ J" J // á?oˉ
" O- _# s: c0 w% P2 C pLight->Ambient.r *= 0.9f;/ n& B* v: G1 C# r, K% Q3 q; F
pLight->Ambient.g *= 0.9f;8 |! g+ U, r2 U5 d/ {
pLight->Ambient.b *= 0.9f;, D" }$ l( j$ I! e6 C
#endif //__YENV ) [5 P2 P% P# m! Z' G
' Q7 }: `* F7 c, C6 J0 b7 h
memcpy( &m_light, pLight, sizeof( m_light ) );/ Q& K3 t3 ]6 E! f- o
4 T5 K" m$ I! Z9 I H% |9 y9 H( C3 h
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
. c7 C. \/ x$ q% o4 n1 w: H D3DXMATRIX matTemp;9 @7 N5 o4 O# u
static const float CONS_VAL = 3.1415926f / 180.f;
6 Q. x) {: I# w# X1 H3 q8 s' F/ M$ s4 M9 \
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
7 Y+ }* s6 W% V. w0 e D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);4 z5 W1 V$ Z* C4 t: G7 B% ^% ?
pLight->SetDir( vecSun.x, vecSun.y, vecSun.z );
. B6 X8 _! K5 ^) } pLight->Appear( m_pd3dDevice, TRUE );, c- Q+ ^& k: |0 u8 ^8 N6 ~
! S% U2 @0 B! k8 ~- l
// D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
) u9 r" v' f+ s# s3 d7 C // D3DXVec3Normalize(&(vecSun),&(vecSun));
* h, n9 V; E! i0 m$ O" P4 _2 ^9 S0 e // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
9 X. n" y% L" ?8 T) ^: o; J4 @2 ?" ?9 z4 l: X6 S( R
DWORD dwR, dwG, dwB;$ F9 j9 v* Z2 t/ Q4 T* |
dwR = (DWORD)( pLight->Ambient.r * 255 );; J# q4 M' Q K9 C5 o1 i( O4 @
dwG = (DWORD)( pLight->Ambient.g * 255 );/ |" r" ~4 s+ f1 O
dwB = (DWORD)( pLight->Ambient.b * 255 );8 \' M0 S* a; y* n$ e
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); & X. p; [* m! }5 f
}0 W4 z7 `0 ` B9 Z5 k
}
6 B4 l5 t" q$ A) @; [( m
% z: [) O/ G+ b: k m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );/ y6 l4 c8 D9 a/ ]9 N: E# @2 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) );3 l5 ^8 z" r/ |/ C4 X* j0 G
::SetLight( bLight );
5 @; ]$ c/ N2 X2 b6 ?3 @
9 d3 z2 o2 N- S! S$ f2 R // ±ao? ?D?í???ó á¤à? - @1 g: k- Y3 r% n) D# r
m_pd3dDevice->SetMaterial( &m_baseMaterial );
8 V$ q, J% `, |' Q
& N9 g% P, W* Z#endif // not WORLDSERVER/ H2 Z) X8 V8 k; ~) \0 T& ]" [
}* c2 Q( s" `0 m+ Q4 ^
并更换) h( J0 O* q* W' O4 I2 _; m8 @# S
Code:
# q2 y% x4 s* J4 D( u5 i__FLYFF_INITPAGE_EXT
& g+ j6 L4 [# G* Q; D" _9 p- b% X: t/ @定义; w) d; A5 M) x* s
6 F$ W; e! _& g3 J/ p
! i4 W" K( ]* q3 X
0 Q9 x( K" i' o, A+ z
3 ^7 k% b, R. j' y8 C3 w+ `现在终于删除我的狗屁加速...
$ g' A" N/ R6 O9 K" P5 S- ?, M, H! d( S" V3 y
6 {/ E" O5 W" ~0 T' t( L; X) X
6 W$ q( L7 p+ d ~% R/ I, l
|
|