|
|
食品车:8 s5 }6 u8 ~( L
尾翼:
, B% U2 j& i& s0 e4 q- `" ?$ }. ^( t9 J, x4 a
代码:4 P- V" P8 n: K# L' }) q! E
CWndAutoFood::CWndAutoFood()0 w5 C V8 N2 F! X) u2 u
{5 L- I9 T! E$ M& ~
m_pItemElem = NULL;; M5 e4 d4 V. C0 J( ~7 j
m_pTexture = NULL;. g( v Q7 x' F. Q8 Q( B% G
bStart = FALSE;3 N2 V+ T( K8 H5 f
}& {2 e, G% z1 z+ r+ T& n
0 ^$ E/ z6 P- f) }CWndAutoFood::~CWndAutoFood()
3 Y( ]0 H% \& ^5 ~: d5 j{; t" v( l. V" X" j w! v
AfxMessageBox( "AutoFood ist gestorben " );) Q% g; `0 x. x( m+ w
}' g% j( I9 R6 B# C
BOOL CWndAutoFood::Initialize( CWndBase* pWndParent, DWORD nType ); _$ H, n2 h" W. P( c
{: O2 k6 u5 Q3 X7 [1 R Q
return InitDialog( g_Neuz.GetSafeHwnd(), APP_AUTOFEED, WBS_MODAL, CPoint( 0, 0 ), pWndParent ); n @8 \" G9 ^9 q7 n# n5 M: s
}
: U4 Q+ _) d2 Y; S$ d& w5 {+ K
: ^. m f+ U1 {9 QBOOL CWndAutoFood::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )% T2 t8 J5 l; l* E9 J8 a
{$ C( B' h* d2 x& K- B
LPWNDCTRL pWndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
8 t: O: Y( W" b( n8 { CRect rect = pWndCtrl->rect;
0 i! y5 }+ l* b4 J' V* N if( rect && rect.PtInRect( point ) ) U1 U6 y" E0 \3 o2 F
{1 x# H( g9 x0 H5 x5 n. m+ o/ s9 J
CItemElem *pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );5 f: n" k" g/ Q5 s) H7 h
if( pItemElem && pItemElem->GetProp() && pItemElem->GetProp()->dwItemKind2 == IK2_FOOD )
, \- t$ B: ]' r" W1 ^: I$ C {. ^8 p7 i. h- K9 _
if( m_pItemElem ); g" u7 Z: W1 Q9 ^! ^7 U* O0 t& r
{
4 d" f4 P( o* ]' O0 a9 m; l/ [ m_pItemElem = NULL;
0 d* N( n T P+ t }& j5 b3 o7 {& F6 F* b1 T }
m_pItemElem = pItemElem;# ]9 h3 o* a4 S3 I
m_pTexture = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, m_pItemElem->GetProp()->szIcon ), 0xffff00ff );& z3 |, D) o: q2 G* V
}else{2 ~1 P* k: w4 d4 s
SetForbid( TRUE );
# Q. i$ j% c( {: y$ F }; }. S% Q3 m; X
}else{
7 J3 f) E' a \5 v SetForbid( TRUE );
: t% w* H% M8 N, r% ^8 k2 d: ` }0 T V" D0 H; E0 O5 g! }0 j0 q7 W7 M( [8 ^
return TRUE;# `( M: f. D& p( C4 L
}
7 f9 b V0 R2 r% T! A' d+ s5 s& [) w( O$ E
BOOL CWndAutoFood::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
4 L* o9 |$ Z0 i, [3 d{
8 f, L1 H6 o2 p$ E2 f4 S5 G2 `; P switch( nID )
7 S0 f# ^ F: p- B {- G6 t) ?- D. ]
case WIDC_BUTTON3:
1 l. l6 O: O1 r! S. P9 h {
, z# q2 F h( C5 f/ W bStart = TRUE;
8 d* r/ Z8 `3 r& d! H2 U9 S break;
0 s$ k4 k# h5 i; |; t# P }
0 w6 m& Q* M0 A& Y3 O( K4 h case WIDC_BUTTON4:
* E; O) P( w3 `& r% ? {- Y3 G+ ~, E3 [/ b6 f' ~1 S1 y
bStart = FALSE;
" v# @0 }: d. _ break;4 T3 v& J( d. i4 _9 y" W+ N& Y S" l
}
' V( l, m* p6 d0 y+ u/ \. U }0 I, h) K$ n: C
return CWndNeuz::OnChildNotify( message, nID, pLResult );
; {7 R+ O4 l b9 ^}
. z; {* ^. H" z0 o( uvoid CWndAutoFood::OnDraw( C2DRender* p2DRender )4 j) }7 X t$ ~# R) n. x
{
) Q- E/ m5 Y; D$ | CWndButton* pBtn = (CWndButton*)GetDlgItem( WIDC_BUTTON3 );
) { t. P/ _3 r if( bStart || !m_pItemElem )7 A' v# |6 r8 L/ B* u- |! A$ N/ j
{
: a4 f9 f8 g) l# _; D pBtn->EnableWindow( FALSE );
4 @- o- p8 K, J }else4 V1 n/ H% v y/ F7 j. S# p
pBtn->EnableWindow( TRUE );
2 V2 i- a6 v9 R1 k% h( B if( m_pTexture )5 u( J/ o. M) h/ M) S
{
( b) m+ V9 `. {- Z" C2 u( ^3 k LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CUSTOM1 );
# P/ K, z' I2 z5 U9 i+ f9 s+ c" V if( wndCtrl && wndCtrl->rect )1 m+ t \" U' }
{: \/ F$ E- g) Q
m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) );
. P& F. a1 _, V# T- S& g. `, P }
- O5 b, b1 Y* J/ A3 t }% l8 t: t. Q. x2 p8 X
}
: O3 Y5 d6 m! N. n' g/ l+ v, {$ n$ b3 y/ M N6 D3 [- V
BOOL CWndAutoFood: rocess()5 _# s' H' ]0 _' u5 u* V5 ]
{0 p7 W! [0 I C
if( bStart )% `, B; k+ u Z4 @4 u# ? H% M
{; W+ S* V: s* F! d9 {( i7 k( Y
if( m_pItemElem && m_pItemElem->GetProp() && m_pItemElem->m_nItemNum > 0 )
5 x9 K; T7 _* N {
4 A3 q/ D \# l' e5 m+ v if( g_pPlayer->m_cooltimeMgr.CanUse(g_pPlayer->m_cooltimeMgr.GetGroup( m_pItemElem->GetProp() ) ) && m_pItemElem->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint() )1 A: P; [- t3 b3 t! f7 x
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, m_pItemElem->m_dwObjId ), NULL_ID, m_pItemElem->GetProp()->dwParts );
u3 @. l$ y+ k5 u }else{; B! E! C* Y3 r) ?9 Z
bStart = FALSE;
6 {8 @- b8 p9 S+ T m_pItemElem = NULL;) |; t& c- e0 g: e j- z+ A6 t5 f
}% E% N3 K. F+ p, `( |. B; s' p
}6 z/ W6 @0 O: ^6 \; g& H& C% D
return TRUE;
9 F1 l7 o. B$ F) z% p4 j+ b} g% v% s/ ~, ]$ P6 v$ _
/ ?* S2 W5 S( d! I2 W登录视频废话:
3 J8 Q& c- |& N2 _4 ]# r尾翼:
; s# I* E0 J' x% o& a2 S4 k; o3 I7 Y4 e B' j% {4 e* a
代码:! n/ O, G. ~, K9 Q0 s
. \ w7 O" Z8 S0 T" G) Fvoid CWorld::SetLight( BOOL bLight )$ X5 k/ H+ ?: S/ u- f% u3 b% Q( h
durch
9 C( ^/ k$ e6 E+ R4 o) H" ~3 PCode:
# Z* e4 {: ?7 Gvoid CWorld::SetLight( BOOL bLight )
+ Z! y1 I8 i. w# \{( O& Z4 |" D" {& K( M, ^
//ACE("SetLight %d \n", bLight);7 P& o3 S; v7 @4 m. H% }. [* T
+ [4 d8 k% U1 W) n6 \) F( V6 @#ifndef __WORLDSERVER . j5 l1 }/ a! Z
DWORD dwAmbient = D3DCOLOR_ARGB( 0,0,0,0);
3 N/ z5 j$ Z. y+ L* v; M CLight* pLight = NULL;$ `5 d) D1 j6 l+ _0 ?& d
6 b8 u! }9 S+ G5 T; S8 P D3DXVECTOR3 vPos = ( CObj::GetActiveObj() != NULL ? CObj::GetActiveObj()->GetPos() : D3DXVECTOR3( 0, 0, 0 ) );. P( f/ x6 a3 I7 Z) F
! | x% y Q) R) V# \! x pLight = GetLight( "direction" );* m0 t0 B) B7 e0 E' }
* z& S; I1 x& `. C- g#if __VER >= 15 // __BS_CHANGING_ENVIR2 m" |! H/ Y9 K8 ^
if( g_pPlayer ){
/ ^0 p% _1 J, l! Q* G' O; B/ { ENVIR_INFO* pInfo = GetInContinent( g_pPlayer->GetPos( ) );3 z! C; d+ N& i, N& A, [
if( pInfo && m_kCurContinent._bUseEnvir ) // ′??ú ?èàì°í ′??úá¤o??| àì???ò °??ì?? !!3 m, p9 ~& `2 f# ~$ X! H
{
# g0 e: ^1 y; v" Q8 y# J if( pLight )
( P4 J% }( ?; Y" A; d5 E% C1 b8 [ {
9 Y' D1 ?) Y3 N# E6 J" ?) m0 C pLight->Ambient.r = pInfo->_fAmbient[ 0 ];9 p; i# x" g' b# t
pLight->Ambient.g = pInfo->_fAmbient[ 1 ];
! }. j' c% z% c6 o i y1 N pLight->Ambient.b = pInfo->_fAmbient[ 2 ];3 }- L" d0 G9 s7 s
2 y r* ?1 v. v1 ~4 d2 W3 I5 k pLight->Specular.r = 2.0f;: m. }$ H5 s: |; D) T3 `0 d6 I
pLight->Specular.g = 2.0f;
7 s' }5 x, ?* F pLight->Specular.b = 2.0f;" n( D$ z7 M7 U3 L! E) j
8 M! u1 w8 {! G
pLight->Diffuse.r = pInfo->_fDiffuse[ 0 ];
) Z. K }; d6 b7 ` C9 M5 n pLight->Diffuse.g = pInfo->_fDiffuse[ 1 ];) r' J6 f$ M- ?& i2 c! M5 ~" z
pLight->Diffuse.b = pInfo->_fDiffuse[ 2 ];
. \7 _8 E0 u$ y: [1 z- n0 {
* |0 S9 G5 c5 e HookUpdateLight( pLight );
/ }# c. P& `3 I# e. h$ [/ z* Z. a a9 r7 ~% Z6 P
memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
; A& J0 e& P0 P3 ^8 ]/ ~9 a4 k ; } a. l& _6 p- o1 N, G$ F, Y# p
pLight->Diffuse.r *= 1.2f;2 P& D3 B. z* T- i7 T& \: V# T
pLight->Diffuse.g *= 1.2f;
1 S; e1 @2 |/ S% u6 D3 w' p pLight->Diffuse.b *= 1.2f;* e( p% Z) w% [) e& H& T# _) |
" V$ i; A, I1 x pLight->Ambient.r *= 0.8f;
& _+ o$ c5 u1 A; Z! b pLight->Ambient.g *= 0.8f;
& r4 U& L$ p% D0 @) O+ t pLight->Ambient.b *= 0.8f;
7 c* E' M) d5 d+ D! J2 ~ . B0 E0 o+ P3 _' M2 p
memcpy( &m_light, pLight, sizeof( m_light ) );( B4 x' A& `- O% c2 g
4 o# Q2 z+ X9 N$ f2 t/ v
D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);
: E0 M7 }; \3 g, W( ]; M8 r# M7 } D3DXVec3Normalize(&(vecSun),&(vecSun));7 t/ t; B9 K) c+ C1 n* l6 L
pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z ); ) j( Y, {8 s& y
pLight->Appear( m_pd3dDevice, TRUE );5 X4 H9 Q5 h+ L9 Z5 D
7 {# I( n2 b }# Z/ n5 w DWORD dwR, dwG, dwB;
5 v& ]# m7 V/ U" z- V2 j: [0 ]+ O+ I dwR = (DWORD)( pLight->Ambient.r * 255 );0 O' u* `$ u, o2 t/ u. U- F7 K7 f
dwG = (DWORD)( pLight->Ambient.g * 255 );3 g" s0 Y) _, M
dwB = (DWORD)( pLight->Ambient.b * 255 );' H6 C( q' M# ^* E7 Y9 L1 o/ A
dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );" g" y2 k) d, X; s
}( C7 c8 g. ]1 a/ k! x
}
" R$ b/ [4 l2 U) ~3 @; I* W }! I$ ~& n) Q( B3 m% m! P# z5 S
else$ W/ |1 C% f+ T7 K: |* _, Y
#endif
% n3 d) c( [3 O% x7 v2 y7 G( e9 i5 r" ~9 D% x: H8 r
if( m_bIsIndoor )
, \5 l$ |$ l% T3 F; D {
! e$ n& M0 j' R8 A- |$ X1 i2 Y$ L if( pLight )" H. f& @2 D9 l7 [& J% J% Y
{ " i0 z3 S4 U0 e1 K
// à??μ oˉè*
" U8 {" b8 V: D4 q" |# J* d pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
4 u5 X& b; v$ {. i( | pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;* c2 @1 y) _' c
pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
+ g) S+ q% l1 s! d) w
y& I6 W4 |& E1 I // oˉè* ??à?
8 X* }; N) o# ^! z& a6 { pLight->Specular.r = 1.0f;
1 u+ b9 ]7 p* g pLight->Specular.g = 1.0f;9 J0 D( ]) G6 f# Y% v+ ~
pLight->Specular.b = 1.0f;: L3 Y+ s6 @# [( a7 t1 Y
// àü?? oˉè*
% G! F: z9 L7 U P& N pLight->Ambient.r = ((m_dwAmbient>>16) & 0xff) / 255.f;: z2 n# n3 B% u5 g, O+ Z) s/ E9 Z9 O
pLight->Ambient.g = ((m_dwAmbient>>8) & 0xff) / 255.f;% f. s1 c$ A# ]! z. j
pLight->Ambient.b = ((m_dwAmbient) & 0xff) / 255.f;( f) g" V+ _# X- t! e( J! w
/ r$ ?8 W6 {: j, ~' m if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
/ t6 ?) {5 s9 ?3 N {
9 b! f0 X+ h2 [8 m1 Z pLight->Diffuse.r *= 0.6f;
& D2 k% |6 y9 x( T8 y6 s pLight->Diffuse.g *= 0.6f;, r5 t. |! U# @* |+ L: V+ G
pLight->Diffuse.b *= 0.6f;
. s* Q/ `) |5 w, A* R6 R3 Y pLight->Ambient.r *= 0.7f;
}4 z0 y# s1 W {: ?, N1 L$ {! `1 |( m pLight->Ambient.g *= 0.7f;
' A5 u2 V7 J; i5 M3 `9 Q g$ W pLight->Ambient.b *= 0.7f;4 i5 [, M2 R5 f- ?' z7 H
}
! Y7 J: V! H3 {# r9 T/ [; |+ A5 t: d" d7 b
#if __VER >= 15 // __BS_CHANGING_ENVIR. q6 a0 t! N8 E2 l4 @
if( g_pPlayer )
9 e* E: o5 J) v* |6 X HookUpdateLight( pLight );
$ F$ }- f% f6 }$ Q#endif
) g3 s* m8 A/ Z4 E4 E memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );
2 K' z6 s) S7 }; W9 t- h6 {0 `# W+ l- q
pLight->Diffuse.r += 0.1f;
. i5 Q) Q. L) v" Q( o pLight->Diffuse.g += 0.1f;0 W% t, U1 Y0 S/ I: O3 k9 L
pLight->Diffuse.b += 0.1f;- J0 v# g$ w% g: B- L o8 j' o+ ~1 ~
// oˉè* ??à?
: L# E9 E/ A3 u* ~7 l$ r pLight->Specular.r = 2.0f;: }% J7 O9 Z; R, m8 D
pLight->Specular.g = 2.0f;
) _4 V6 b8 q( K. h pLight->Specular.b = 2.0f;# g; ^. h3 s& k+ t
// á?oˉ
% j1 Z6 A" `" _+ x pLight->Ambient.r *= 0.9f;
( r0 h9 H- n5 F( H$ d$ I2 }0 f8 Y: e pLight->Ambient.g *= 0.9f;
w1 |# x/ Z! ~9 E" }4 @ pLight->Ambient.b *= 0.9f;
V# p9 I5 T7 H# |- _
% X3 c9 Q9 |5 W! x* Y/ s memcpy( &m_light, pLight, sizeof( m_light ) );
% f8 I" U. X) b. B
# s( R5 p4 K% p$ h9 Q pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
/ ?8 L5 s% }+ f8 z: ]. I/ k. W pLight->Appear( m_pd3dDevice, TRUE );/ A4 m0 r, X' I7 a/ x& A6 p
+ P* m* L+ u R DWORD dwR, dwG, dwB;/ ^5 Q1 f( T" d! v
dwR = (DWORD)( pLight->Ambient.r * 255 );! x4 r. d' d# f% L' E. Y
dwG = (DWORD)( pLight->Ambient.g * 255 );: G* @( u( H9 u% B/ Z' f
dwB = (DWORD)( pLight->Ambient.b * 255 );
& q3 k: Z, X% F+ N7 L dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
5 [- ~7 s4 b# K# \1 U U- F }6 Q; P" b2 ], K& |9 u F
}7 U4 G! D( A. x7 V
else) U e7 K. X7 [) I" I- G* E
{7 B1 M' u- ?: i0 W
if( pLight )* ~( w, W6 a- U6 B; x" b3 ]4 D' b
{
4 C' S/ K/ z6 s( b ( K" g4 O f- ^$ A* g- a
int nHour = 8, nMin = 0;
& f- B+ H, A- `: c9 U* R2 e/ c* P0 y #ifdef __CLIENT7 P' V+ v1 L3 Z; G. f, F' ?+ {: W
// ???óàì?e??′? ??°£à? g_GameTimer???* °?á???′ù.
6 M z& U; b9 C$ T; ~5 Z nHour = g_GameTimer.m_nHour;
; g- ^, L, H$ `1 r/ G4 e9 X nMin = g_GameTimer.m_nMin ;
+ d3 H; f7 e* r1 C# i #else) H2 i' L: J- m! f' [. L: d
// o??o??′? ??°£à? m_nLightHour???* °?á???′ù.
4 C8 t/ h$ |7 y7 Q, x# i if( m_nLightType == 1 )
/ j) Y+ V5 x2 u: e3 i/ Y. u5 Q nHour = m_nLightHour;% K- \, j2 L( c& p" o
#endif
5 g& ^8 f7 y- Y3 {- l2 L6 y nHour--;
3 n- e5 h: K; e6 E0 k% | if( nHour < 0 ) nHour = 0;
1 b& ?1 R: W% t: t if( nHour > 23 ) nHour = 23;% V1 O' |) h3 |" o0 K2 T
! B! `0 m. J3 y6 H d( A1 q //if( m_bFixedHour )1 n! Q7 ]$ z* N* x
// nHour = m_nFixedHour, nMin = 0;2 A" ~. ~# {" p8 b" `, I% |
LIGHTCOLOR lightColorPrv = m_k24Light[ ( nHour - 1 == -1 ) ? 23 : nHour - 1 ];& o# t" @! e. i* Z/ D" O' X2 Q
LIGHTCOLOR lightColor = m_k24Light[ nHour ];' \8 i- [+ A; z* S5 v
' i0 V- |; n3 t3 b9 R. S //m_lightColor = lightColorPrv;6 _9 x; u+ H, i$ B' v# A$ Z0 p
lightColorPrv.r1 += ( lightColor.r1 - lightColorPrv.r1) * nMin / 60; L8 p. ]- ^% q6 r
lightColorPrv.g1 += ( lightColor.g1 - lightColorPrv.g1) * nMin / 60;0 g; T1 ?6 i$ @4 A
lightColorPrv.b1 += ( lightColor.b1 - lightColorPrv.b1) * nMin / 60;4 `% }( o' ]. ~' v6 K
lightColorPrv.r2 += ( lightColor.r2 - lightColorPrv.r2) * nMin / 60;
6 F, X. D: ?! V5 D# S lightColorPrv.g2 += ( lightColor.g2 - lightColorPrv.g2) * nMin / 60;! T `' W6 X; s. {# d$ u0 P. Y( M
lightColorPrv.b2 += ( lightColor.b2 - lightColorPrv.b2) * nMin / 60;
D* j' r7 y! {3 u& Y% e) @ // 60(minMax) : 15(curMin) = 0.5(colorDistant) : x(curCol)0 @9 T' d' i C7 y7 ?% N6 Q
8 Y5 s0 @; p M // à??μ oˉè* , j" v/ O/ u- h) _' ?3 M5 x. l4 H
pLight->Diffuse.r = lightColorPrv.r1;; R3 Z4 d# D5 t
pLight->Diffuse.g = lightColorPrv.g1;
+ v% A3 i7 |4 w( h6 P, ] pLight->Diffuse.b = lightColorPrv.b1;
' N' {$ j. p, x1 q, \: V9 n // oˉè* ??à?
) {9 U9 P7 ~" J5 p$ F% m+ X- @ pLight->Specular.r = 1.0f;
N( ]) w9 c, G( G pLight->Specular.g = 1.0f;
% m4 ~6 q* U: l6 f c9 V) ?% h; @ pLight->Specular.b = 1.0f;# d3 C6 A9 r/ ?9 _. w
// àü?? oˉè*
0 T2 k# m# f! o3 T, v5 v) j: [ pLight->Ambient.r = lightColorPrv.r2;
- B( P! ?. V9 i% L, [ pLight->Ambient.g = lightColorPrv.g2;
2 P9 I+ z; x0 y: C pLight->Ambient.b = lightColorPrv.b2;
$ k% [4 s: F; a* e9 |6 U, Y& w3 B& @+ g1 g
if( g_Option.m_nBloom ) // ???t?? ?é??àì ??á?à?à??? á??íà? á? 3???áà?? ??′ù. ?è±×?ˉ?é 3ê1? 1à??.
1 e; A: V$ ]( U, H+ g4 Q {
% I& o$ D: \) l8 n% w# l pLight->Diffuse.r *= 0.6f;
: a# [! Q. E$ x4 x pLight->Diffuse.g *= 0.6f;
, O. j5 W6 \) W) a! t$ y0 ~( w* F pLight->Diffuse.b *= 0.6f;
. o0 n4 u/ M& u pLight->Ambient.r *= 0.7f;9 B1 Y, y( i" f1 `3 R1 l% C9 e
pLight->Ambient.g *= 0.7f;, L9 e x0 {9 @) @
pLight->Ambient.b *= 0.7f;
& D1 L; u1 Y0 x( m" i V }, l/ Z' e) R. `2 j& e' Q
; a, T n" c+ R! Y" s. x1 J#if __VER >= 15 // __BS_CHANGING_ENVIR6 W# o S0 e* l& T' B1 i
if( g_pPlayer )
' ]& b& c$ V% A HookUpdateLight( pLight ); 5 B# {: E3 g0 Z$ y6 o' C
#endif
8 R# K; ~! |4 b, c& B2 V memcpy( &m_lightFogSky, pLight, sizeof( m_lightFogSky ) );: y$ T k) n$ I+ l
, H; o% N% ?1 Z/ i
#ifdef __YENV6 y( ~% k9 U/ L; `) w/ C2 U
pLight->Diffuse.r *= 1.1f;& t+ o3 }' I7 n" P$ ?2 R4 U) j. T
pLight->Diffuse.g *= 1.1f;
* {) E; b5 p& w8 u6 B2 {- | pLight->Diffuse.b *= 1.1f;# c, E, l4 q" A5 }
// oˉè* ??à?
( d7 ^# D$ Z; y/ ] pLight->Specular.r = 2.0f;
( u9 ~* V0 x& @5 y4 `+ s1 P pLight->Specular.g = 2.0f;
' L) R; v$ L g# v pLight->Specular.b = 2.0f;5 H7 o1 A4 u: x4 V% ~% M
// á?oˉ
# S+ H" r- i/ t" A pLight->Ambient.r *= 1.0f;
f. n5 S6 @ i" m J pLight->Ambient.g *= 1.0f;
4 S" d, D2 H$ a8 A2 v pLight->Ambient.b *= 1.0f;3 d: A9 b2 y; A7 ]
#else //__YENV- ]4 ?" `' d1 p9 |
pLight->Diffuse.r *= 1.1f;
3 `8 u+ z3 B6 s8 F( \ pLight->Diffuse.g *= 1.1f;) z4 [ q7 c) ]+ D6 G* G
pLight->Diffuse.b *= 1.1f;4 O# ?9 }( _1 f, l$ M$ J
// oˉè* ??à?
8 x! @' h$ ?* {; i+ _ pLight->Specular.r = 2.0f;6 G6 I- @0 [' A7 c
pLight->Specular.g = 2.0f; ]4 ?0 N2 g& R
pLight->Specular.b = 2.0f;2 S4 t( s: J7 e
// á?oˉ ) l0 |8 q% [. s5 Q
pLight->Ambient.r *= 0.9f;2 y6 t+ ?* U/ B# f0 Q
pLight->Ambient.g *= 0.9f;- ~7 U, q% o) O. D& t1 U) U$ H5 e
pLight->Ambient.b *= 0.9f;1 b1 m2 q5 `; {8 u0 s+ z9 d
#endif //__YENV & |" H9 P! o% r# Y/ J* G
) Z+ i. I P1 \, a/ |; E3 b/ x1 c memcpy( &m_light, pLight, sizeof( m_light ) );& S- h$ g: \5 T# b
) O5 G/ `2 s" r7 M6 e5 c# \
D3DXVECTOR3 vecSun=D3DXVECTOR3( 0.0f, 0.0f,1.0f);
$ b7 N1 ~, u4 ]+ k, t D3DXMATRIX matTemp;% d6 y7 L- t8 U) G! t% M6 b$ i5 x
static const float CONS_VAL = 3.1415926f / 180.f;' |: l. F4 D2 i, Y$ u
+ z; n" E! J& S2 r
D3DXMatrixRotationX( &matTemp,(m_skyBox.m_fSunAngle +180)*CONS_VAL);
' |. B2 D3 h: X. s$ k D3DXVec3TransformCoord(&vecSun,&vecSun,&matTemp);
" b& O, ?3 z1 U8 \6 R3 M2 _6 f: l( ~ pLight->SetDir( vecSun.x, vecSun.y, vecSun.z ); ; ^6 i" @& {5 ]- |" s
pLight->Appear( m_pd3dDevice, TRUE );
8 A0 ^! Q. Z) @% T8 j1 n8 B
; B- W2 `9 U% Q1 x- m! s // D3DXVECTOR3 vecSun = D3DXVECTOR3( 0.0f, 0.5f,0.5f);3 Y$ C' w: }' X) `: n9 b3 V
// D3DXVec3Normalize(&(vecSun),&(vecSun));
$ X: r5 V. O0 I1 r) A8 G! e6 r // pLight->SetDir( -vecSun.x, -vecSun.y, -vecSun.z );
( Z7 a0 o6 v+ W/ n( E! I0 v
1 L; U5 T' M: L: ?3 n6 B5 C# a' u DWORD dwR, dwG, dwB;8 U( E" Y+ w% N; L0 X+ D
dwR = (DWORD)( pLight->Ambient.r * 255 );, `5 u/ b* w( [/ S; ~* [ ~
dwG = (DWORD)( pLight->Ambient.g * 255 );1 G5 z, z* W4 ] U8 c3 G& f
dwB = (DWORD)( pLight->Ambient.b * 255 );
1 J# Z% t$ \; ~. ?3 d, p; d/ G5 | dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB ); ( y& a; F6 q* {! o, ]: O; L* R* d
}
$ Z' @! a8 @/ h* \5 n6 U2 L0 ^- x }1 l) z! R+ x% w# p" `% I4 u2 s7 T# p
0 \- N' A& M7 I0 g! ]3 m6 L" g5 q
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, bLight );//m_bViewLight );
7 i( `0 ]: H) D% o, A, T 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) );8 j8 o5 t- b7 K4 b
::SetLight( bLight );, c V4 O6 k& Z, [ _" E
; E) B1 k4 K7 n" A! [) M. J( W! b) A // ±ao? ?D?í???ó á¤à? 0 L* ?" [$ m+ j Z
m_pd3dDevice->SetMaterial( &m_baseMaterial );8 E+ S; W) W6 z9 ]/ u1 X, {
8 T/ l" U5 S: c. x/ w#endif // not WORLDSERVER
8 L" X6 |$ x) c# I}
0 `, M- I2 B2 p( E! p2 b" ~并更换3 U9 T/ m( D) x6 E
Code:( c# U0 F8 I( S. |9 w$ \9 k% ^
__FLYFF_INITPAGE_EXT0 M/ G x$ b5 ~/ m7 Q5 _
定义
1 f: f& V* J, p# ^: Q
3 U& p6 _; ^! q, _; J. `1 f7 @* L1 z9 @( K7 A* G3 u
& E( G1 z! y& O
; M K, o! h% I$ V% ^! `5 H现在终于删除我的狗屁加速...4 ~8 l0 c \* c3 G6 C# u2 ^
. }* \" j a, |1 c! H, o9 ~
, P$ Q- {5 z, u8 \* ~* w! Z; ^7 l2 b$ I+ D, H$ u9 _! Y l
|
|