飞飞世界论坛
标题:
搜索公会的功能
[打印本页]
作者:
admin
时间:
2016-1-10 03:38
标题:
搜索公会的功能
对于那些谁需要它 - 谷歌缓存FTW。 :
1 x& e4 e" W/ y7 Z
如果我鼓掌纯粹是我复制错误时,D
6 Y$ S5 f2 w+ ~: A1 y: }! r
积分当然Pumbaaa。
3 f% m. Q/ E6 Q
! w- ?( {) @5 j2 ]+ G) m1 q
FuncTextCmd.cpp:
i3 H) t0 b% W2 S* W0 _
( e v$ l" q! [0 p3 m i- Y' F& ~! ~
代码:
8 H/ F& }9 {( L* Z6 N) f% f4 u0 {
#ifdef __PARTY_FIND
) M+ V! n# v; i: k2 Z! t$ w
BOOL TextCmd_getparty( CScanner& scanner )
, R9 Z& f3 w. ^" Q1 p" a! J- v
{
, ^ S' C; q+ o8 F: j" I3 S, e0 W
#ifdef __WORLDSERVER
4 v8 i. S' _& j+ m$ U6 _: w; ?1 e# z
CUser *pUser = (CUser*)scanner.dwValue;
- ~ ^8 B# P; a* k* D. c; b
if( pUser->m_idparty > 0 )
) a+ [- H# K) K% D
{
5 g! f$ y5 {8 H, |) O
pUser->AddText( "你已经加入一个公会。" );
- F! W$ A4 C) X6 n0 U# H6 |- `, s& A
return TRUE;
' G0 [3 Y, {. |5 c7 d, H
}
# Y" y0 M; H, g* h9 ^! s3 ~' I3 t
CParty *pParty;
: w: ?1 ]) G/ Z. k# A8 R/ U
pParty = g_PartyMng.GetPartyFree();
' a g9 _7 G5 K# M) _- c
if( pParty )
& [; j5 }$ d" _3 y6 P5 r& g2 M% F
{
+ W" w" F j8 U1 S6 d& u+ F/ ^
g_DPSrvr.InviteParty( pParty->GetLeader()->m_idPlayer, pUser->m_idPlayer, FALSE, TRUE );
1 o, {& e$ N; t5 D* T+ K5 h
}else
) t; J' R5 W1 B P. D. ]# }
{
8 Y! p T' x" t% x3 \
pUser->AddText( "抱歉,这里没有任何一个公会。" );
& k9 c O0 e9 d5 x
}
6 Q$ u b- a1 b3 L/ E
#endif
$ N8 {/ I3 Q5 P& i7 S% t; Y
return TRUE;
) f; Z. r& C5 G9 Q C* @4 F
}
& {6 E z; d: P) c5 l6 u
#endif //__PARTY_FIND
& {2 O4 v) G7 f2 G* u$ ~& A3 Z
9 B6 _- Q5 m* y: ?; ^
代码:
3 }: v- \5 h0 P! u- \! I
BOOL TextCmd_PartyInvite( CScanner& scanner )
& Y4 h3 D5 v6 S
{
7 `6 K+ L W) m0 A$ v
#ifdef __WORLDSERVER
- U/ Z9 b7 I) w; T. E
CUser* pUser = (CUser*)scanner.dwValue;
}% a, ]# R" ~0 |0 q5 [& S
MoverProp* pMoverProp = NULL;
3 @" I+ y+ t6 R2 {! K1 d9 ?" Q
scanner.GetToken();
7 ]1 G" i( v4 f9 h6 l( S0 K
#if __VER >= 11 // __SYS_PLAYER_DATA
4 N2 Z8 K8 M3 l# ~
u_long uidPlayer = CPlayerDataCenter::GetInstance()->GetPlayerId( scanner.token );
: ?6 `4 M( h6 r" J* {
#else // __SYS_PLAYER_DATA
+ P% l+ b: H9 X# \! i
u_long uidPlayer = prj.GetPlayerID( scanner.Token );
( u6 V9 [3 P2 @$ U2 p% L. @& m
#endif // __SYS_PLAYER_DATA
% ?+ h/ ^3 q8 b9 S" p
if( 0 < uidPlayer )
! F: b& ~6 v' v5 A# F
{
8 f$ e- J2 w. {0 l7 F2 u9 r4 N
CUser* pUser2 = g_UserMng.GetUserByPlayerID( uidPlayer );
1 u9 `1 S. }* r" m6 s3 D+ ^+ e
if( IsValidObj( pUser2 ) )
( v* P5 `& G; w" W& q
#ifdef __PARTY_FIND
+ i/ S8 b5 ]$ N+ u" `" C
g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE, FALSE );
: a& D9 y; L( G' ?! j1 {9 F$ G
#else
$ g% H e. @+ s/ J' ?( Q( b& T9 ^
g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE );
* q6 Q; q4 h! H5 i% O0 l0 n! l e
#endif //__PARTY_FIND
# B" ?# G* D; e9 I) O8 p
else
/ R0 N$ G3 E5 P$ I5 D
pUser->AddDefinedText( TID_DIAG_0060, "\"%s\"", scanner.Token );
2 U8 q6 Y; e& G. _6 M* J+ j
}
. k+ w" t+ j! F4 O1 }2 }0 i
else
6 f" F# B1 K# F& N8 Z9 H) e
{
! }( O6 F: ]" `$ H" B, d8 u0 R
pUser->AddDefinedText( TID_DIAG_0061, "\"%s\"", scanner.Token );
! h6 Z* ]; Z6 }5 ?% S
}
) w6 v! l" e7 n6 x5 `% C- K8 u1 e% S+ I
#endif // __WORLDSERVER
' y p, t+ y* ]: ^, O. B1 O
+ K4 x2 N( ]9 m# o, i/ Y" l9 O
return TRUE;
/ Y" @2 b3 y- L' W4 ~
}
# U! ^3 S) S, q4 z% X
4 ^; ]2 Y; y/ g# y
代码:
# d9 }7 U, X( s7 N, d$ b
#ifdef __PARTY_FIND
0 b' U" `" }' L2 k6 L# T# D
ON_TEXTCMDFUNC( TextCmd_getparty, "getParty", "getP", "", "", TCM_SERVER, AUTH_GENERAL ,"" )
7 y0 o. O# d+ a, P7 X! [
#endif //__PARTY_FIND
" i+ L8 L+ ~) H, v9 W9 `( j
DPClient.cpp;
! P/ K* K+ L8 t% [
Code:
3 Q, r* b2 Z4 p+ o
void CDPClient::OnPartyRequest( CAr & ar )
$ x P: X# k$ J) S2 m
{
7 X0 b( |" i5 p* ]: i* Q
u_long uLeader, uMember;
' D, s5 g. I( g+ X+ Q$ B- M
* `# r* ` X3 d/ P0 W' V
BOOL bTroup
+ @0 d7 O" ?& |* R& y
#ifdef __PARTY_FIND
& w4 k6 M3 Z3 P% u6 N
, bPartyFind
: A: C! ^ L; P# A) y `
#endif// __PARTY_FIND
% A) ?2 I% x% P h
;
- S, _+ a# [( T+ ]9 z
LONG nLeaderLevel, nMemberLevel, nLeaderJob, nMemberJob;
8 a+ g2 l, x% b0 a* ^) X$ C8 N
BYTE byLeaderSex, byMemberSex;
n6 ]1 y% k' X$ @0 B& F9 E( Z& K
char szLeaderName[MAX_PLAYER] = {0,};
" a2 ~ e4 L* d! V m
ar >> uLeader >> nLeaderLevel >> nLeaderJob >> byLeaderSex;
2 S5 \) R6 U M% x% M. S8 i+ g
ar >> uMember >> nMemberLevel >> nMemberJob >> byMemberSex;
0 r2 P5 m, D" {2 Q& ~) m
ar.ReadString( szLeaderName, MAX_PLAYER );
# u! A7 q9 ~! O9 Z/ g1 u
ar >> bTroup
4 y4 O3 w, w3 s* l4 Z
#ifdef __PARTY_FIND
3 @7 o! q# K3 W+ \7 ~
>> bPartyFind
5 Y5 I! G1 J2 L+ t% w/ O- `! ]
#endif //__PARTY_FIND
+ P4 B! s" A+ F7 z& R# K0 j
;
$ t1 B5 B0 V; a, r9 o* l
% p) I: [2 F$ M
if( g_Option.m_bParty == FALSE )
" R2 n! C* o O
{
) b+ R# w5 F: `. b7 a( W; R1 Z' o1 R
SendPartyMemberCancle( uLeader, uMember, 3 );
0 K6 G v3 q: Y' I, j8 ^0 ^
return;
2 n$ g7 L$ i# T) ]1 Y4 a
}
8 l1 u6 G6 ?3 B5 ~& d; P% Y: |
/ {4 h3 I3 q7 h4 c3 d) @9 U9 w
#ifdef __S_SERVER_UNIFY
6 N+ V" f( y- Z+ \1 l
if( g_WndMng.m_bAllAction == FALSE )
$ v3 r* a1 Q8 ?/ B" j) B4 k) K
return;
* b, X# A3 u) a2 V
#endif // __S_SERVER_UNIFY
* ]9 x& ?! d% [ ^4 K
+ |9 O" k; F" J; p+ t% }" A
CWndBase* pWndBaseBuf = g_WndMng.GetWndBase( APP_PARTY_CONFIRM );
( G# z* [' [8 u( e0 s. G U
; j; s2 U: |7 v$ m
if( pWndBaseBuf )
; I- v- ^( ^* L' o% d1 y# \2 \: I: h
{
9 q& u8 q5 A8 N3 x" J5 r7 y
SendBlock( 7, g_pPlayer->GetName(), szLeaderName );
, T' D0 [8 r# z
return;
0 d4 Q# T$ i" F/ G
}
( Z: ]; z7 n1 `! N( }0 Y7 v8 O
#ifdef __PARTY_FIND
8 j: I, V$ P$ Z1 s! A1 e( }9 M* X
if( bPartyFind )
6 Z# F3 z& o$ l1 m# L0 O- e
{
. U7 w6 ]( x) H" `, M" k1 Y
SendAddPartyMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex );
) ~& k- r! F. S& s [
}else
4 u, D$ }3 y3 \: ~9 R' Y
{
5 a! e) B+ S1 H
g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
. U2 r" X$ J& Z$ X% U- E
g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
" ]: }5 R( v2 O
g_WndMng.m_pWndPartyConfirm->Initialize();
S4 I; B9 r" c- k9 K
}
$ a" ? P1 H q1 D3 U& s: ^
#else
# j( k% L1 d* d6 @. [, T
g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
) [4 F+ X+ s9 o- F0 g6 y
g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
1 }6 _5 ?. ?) X7 H1 F2 k
g_WndMng.m_pWndPartyConfirm->Initialize();
& T. G0 j6 T& q
#endif //__PARTY_FIND
& o" \1 `6 l% j% e
}
( d, l _$ l: `# V6 w: p
0 r( p& m8 M& k5 A0 a
代码:
7 f+ x. j* k4 b6 i/ e1 F
#ifdef __PARTY_FIND
" s2 a, f1 Y9 d' J/ L% R5 |
void CDPClient::SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow )
4 x, T/ e. Z3 b0 q% Y H) {
{
& N( t( m$ C0 F
BEFORESENDSOLE( ar, PACKETTYPE_ALLOW_PARTY, DPID_UNKNOWN );
' ?, D" I$ y. |
ar << idLeader << idParty << bAllow;
P5 L: t2 @7 Y) a: o, j! l
SEND( ar, this, DPID_SERVERPLAYER );
6 p% R# A: H- }. [7 |
( `( z, g* E$ k3 Z/ a
}
. t8 j. v) h- m8 L
void CDPClient::OnPartyAllowJoin( CAr & ar )
|9 P$ l) i5 S, c3 {$ T! s/ M
{
6 t$ f1 Z+ U3 z- G! }5 W4 I6 O8 v) B
ar >> g_Party.m_bAllowEnter;
( F# K. o8 ]* S1 X6 n0 m2 F/ R
}
2 D9 I4 U1 u+ I0 ~' U$ r
#endif //__PARTY_FIND
. V$ y4 ]# `( }8 H6 v. O3 x
Code:
; }" w$ z" f. I
#ifdef __PARTY_FIND
. u; U0 _5 u5 w! j. ?7 Y" k+ p
case SNAPSHOTTYPE_PARTYALLOW: OnPartyAllowJoin( ar ); break;
3 Y, q0 w- A4 k+ L
#endif
! j0 s) E3 f( ?1 M% O: A
2 N" A$ I" u; a$ z9 `
party.cpp:
; j- C7 t H$ E: E2 W/ _7 E
代码:
- o2 u% B6 I' z
CParty::CParty()
, _6 E6 f/ s) t* |. F" g$ `
{
6 w% s% Q2 |2 Z' j) x
m_uPartyId = 0;
; Y6 S7 X- x1 R
m_nSizeofMember = 0;
9 I) k2 l) C; w2 W9 v; a1 M& _
memset( m_sParty, 0, sizeof(m_sParty) );
4 o- T, }( [) k1 E
m_nLevel = 1;
' R( d ^/ m( F }* m5 ?/ @
m_nExp = m_nPoint = 0;
3 t4 D) t y1 a5 o0 F
m_nTroupsShareExp = m_nTroupeShareItem = 0;
- g& T+ ` q3 z6 U' t' k5 @
m_nKindTroup = 0; // ????
+ g8 n% G' @/ f6 a
m_nReferens = 0;
b8 z7 Y5 p) v# v+ G# a& n: T; g
m_nGetItemPlayerId = 0;
& s3 r: c7 S6 ^ D5 x2 ?, m: m5 t
#ifdef __PARTY_FIND
) U: g% s* V4 m1 t
m_bAllowEnter = TRUE;
$ O* \& a" ~3 e6 l
#endif //__PARTY_FIND
7 p& B& A5 t8 z9 Z# h5 h
for( int i = 0 ; i < MAX_PARTYMODE ; i++ )
+ C( y7 G* W2 t) P! J. x E6 g
{
5 l4 Z- u6 N" |% G
m_nModeTime[i] = 0;
, U, I5 \% h( a: I* X7 p: c
}
1 }; M- N) F; `5 p$ y9 ? ~6 g
m_idDuelParty = 0;
8 R+ r% Z1 ~* {' }0 a
#ifdef __WORLDSERVER
+ Q6 }# Z) F* e: A/ l& A5 ~: n
m_dwWorldId = 0;
( {5 f* h9 `* H, l- z4 z1 W
#endif // __WORLDSERVER
|- H6 ^% h0 _' i( ]. c$ t
}
" }. M1 C% c& W$ ~5 z6 `1 H, b
代码:
4 ?2 K9 |3 u. @3 ~" t
void CParty::InitParty()
8 Q$ w8 i' N" t: G# D, h/ m
{
6 W9 l W# K0 [2 a9 b; J, k
m_uPartyId = 0;
@" Z0 j, I4 q: `3 `2 u
m_nSizeofMember = 0;
' A6 s/ K$ Q5 f4 o; [
memset( m_sParty, 0, sizeof(m_sParty) );
9 f# M3 O' t; w6 e
m_nLevel = 1;
; J# i& p4 Q/ T1 {, }
m_nExp = m_nPoint = 0;
. N: U0 Q1 C% R
m_nTroupsShareExp = m_nTroupeShareItem = 0;
3 z# o# o% J _& D. ] J9 b7 ?! S; m$ _
m_nKindTroup = 0; // ????
; S0 t4 d1 |& B( g. W6 A
m_nReferens = 0;
9 m D7 d: i S
#ifdef __PARTY_FIND
+ N8 |% c1 w7 _6 H) T; N# D
m_bAllowEnter = TRUE;
9 l, W4 a$ N, e! z! W0 X
#endif //__PARTY_FIND
* V% i% J- M: A/ Q( q, O1 x
for( int i = 0 ; i < MAX_PTMEMBER_SIZE ; i++ )
3 l6 [0 B2 k( D M2 o$ q
{
$ |" B4 t$ s( W3 `2 p0 e
m_aMember[i].m_uPlayerId = 0;
* L' w6 ?6 e* l7 Z5 i( C
m_aMember[i].m_tTime = CTime::GetCurrentTime();
% O5 T3 \% o- \! I5 o4 `
m_aMember[i].m_bRemove = FALSE;
& q9 c" @& x' x; _# M% P/ T, @
#if __VER < 11 // __SYS_PLAYER_DATA
( e9 V* ^& O v" ~' f
m_aMember[i].m_nLevel = m_aMember[i].m_nJob = 0;
: U- @5 I0 q$ |+ U! U
m_aMember[i].m_szName[0] = '\0';
: {# s# b5 Q* w8 ] X' s8 @
#endif // __SYS_PLAYER_DATA
( O# h; W- V; h
}
7 @7 l9 Q" N7 F( e# {# D
}
6 s8 W6 g6 F* O, _) M" L6 \
代码:
" e( P7 `8 V' w& N- z1 D" i
#ifdef __PARTY_FIND
, a0 l) F: h; J7 L4 C$ P
CParty* CPartyMng::GetPartyFree()
/ d$ x, @9 V! Q8 A
{
# n; V% y5 H, x6 e4 x, a
CParty* pParty, *pPartyTmp = NULL;
1 n1 P7 C$ }. Z: a
if( !m_2PartyPtr.begin()->second )
0 m0 ~6 c' t/ t) u: l
return NULL;
) J A: y; T1 P2 Q! m
BOOL bRan = FALSE;
! I& j0 d) ]4 k& _3 C
DWORD dwRand = 0;
& A- p2 G) c6 p1 B2 _
if( m_2PartyPtr.end()->first >= 1 )
* }8 K8 B, q1 t1 @, f) Q
DWORD dwRand = xRandom( m_2PartyPtr.end()->first );
6 c9 h0 l0 f7 [2 H
0 _* s( c0 ?# G
for( C2PartyPtr::iterator i = m_2PartyPtr.begin(); i != m_2PartyPtr.end(); ++i )
- |3 a/ ?3 S, e+ a" y- {
{
6 c8 i+ j5 w2 A; f( ]* k/ a2 f
pParty = (CParty*)i->second;
) y% u& X! f' A4 }; V0 H4 v
if( pParty && pParty->GetSizeofMember() < 8 && pParty->m_bAllowEnter )
5 O. ^( f3 g% N& t2 y# N
{
/ p# X* I# ^0 y6 _. L& l7 i
if( i->first > dwRand )
0 ^9 z) M |% u- D X; ?& A. L
return pParty;
- g# H& @/ ^; b$ ~% ?
else
( ~( l# Q: R, O" ?& z
pPartyTmp = pParty;
, W8 m5 {6 O- H8 i- W8 B/ H
}
. e; _ |: B4 u
}
) c x) p4 O/ E5 X7 R2 l: Z) @5 ^
return pPartyTmp;
1 K, B) a* `8 o8 F- ~$ l! c* n) y
}
) b& g: {; M/ S" l: M* T
#endif //__PARTY_FIND
' N/ M; J/ S" |' |# o
; C0 M1 v. v' w* N" C) c
DPSrvr.cpp:
1 ]) B$ g! b$ q3 T' n
代码:
1 d( x8 b5 W3 ~* m/ b8 l9 b
#ifdef __PARTY_FIND
, j/ o+ |' H9 T8 S( o
void CDPSrvr::OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
9 s4 ? m& }! I7 T+ z, I0 w7 o! v
{
6 g) Z/ ]6 _6 Z3 D
CUser *pUser = g_UserMng.GetUser( dpidCache, dpidUser );
4 {( v! R. P2 P! O0 D/ p4 p. p4 z
if( IsValidObj( pUser ) )
' H/ K4 v! n) n1 Q# F
{
% m& k& l) }! o* }) V$ U' `1 q
u_long idLeader, idParty;
H4 v; |; Y. E( }- f, Z4 i
BOOL bAllow;
" m5 Q. p$ D5 |9 L r
ar >> idLeader >> idParty >> bAllow;
; t# O/ P9 N7 A3 a# W+ T
if( idLeader != pUser->m_idPlayer )
$ N; F8 C0 S( q
return;
6 g, n$ x& G7 Z$ N' r9 r
CParty *pParty = g_PartyMng.GetParty( idParty );
3 g; B5 h9 c6 _0 ]( _' E3 X" e, {. _
if( pParty && pParty->IsLeader( idLeader ) )
" X# v3 Q$ v7 l3 W
pParty->m_bAllowEnter = bAllow;
. H/ e+ `1 ?) I4 u* X& M3 @/ J
else
3 ~; v$ f! a% z
return;
1 L9 t! Q: j0 Q% p k' A/ H' ~# b0 S& u
# L8 ^, H7 B/ b' w9 [8 q
CUser *pMember;
4 g0 m0 U4 J" w9 {0 m
for( int i = 0; i < pParty->m_nSizeofMember; i++ )
- P- `( \. z, e) \) e8 g
{
- T) y. r8 F W! I
pMember = (CUser*)prj.GetUserByID( pParty->m_aMember[i].m_uPlayerId );
3 P6 I) Z- O$ K4 s/ g$ I1 A" W
if( IsValidObj( (CObj*)pMember ) )
5 U. M" n. i' n
pMember->AddPartyAllowJoin( pParty->m_bAllowEnter );
. B9 n: d! g( P8 L2 t
}
g$ x* @6 \. j& V- N
}
# \, U! w0 {# q8 y
}
% T# h* {3 |% t# @' O
#endif //__PARTY_FIND
% Y# s! X" w. @' b" L( @
0 h& C3 U w/ y1 _
代码:
& m6 C, h3 `- M$ ?- e6 a& z
#ifdef __PARTY_FIND
$ u2 S( \/ B8 O- p( i
ON_MSG( PACKETTYPE_ALLOW_PARTY, OnAllowParty );
/ G4 s5 T. d8 a/ O0 g
#endif //__PARTY_FIND
2 n; o4 Z) M8 f1 e; D+ N
% P! f) a8 [0 `/ F1 C
void CDPSrvr::OnPartyRequest( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
3 [" e0 @' s# I$ K5 j
{
& _4 E7 W) H. K! H# j- q$ P
u_long uLeaderid, uMemberid;
4 V9 F( W( z3 }. M& y
BOOL bTroup;
& D7 j# B7 ~: v+ |- b: R0 l6 E
ar >> uLeaderid >> uMemberid;
' l5 n }0 N6 Q% s
ar >> bTroup;
5 u1 q _" W4 u. g5 |1 J
3 T6 L; ]: t7 D7 p6 ?
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
" D. I9 }$ s7 }( U7 ^
if( IsValidObj( pUser ) && pUser->m_idPlayer == uLeaderid )
7 i) F8 d7 ^! M
#ifdef __PARTY_FIND
: D) S. E9 m$ N! s# m# `" |
InviteParty( uLeaderid, uMemberid, bTroup, FALSE );
7 S' }% T* a1 i& m
#else
/ H3 G( g3 u8 l R- y9 D# z; A
InviteParty( uLeaderid, uMemberid, bTroup );
& U$ n! l: N1 a" w8 t/ _
#endif //__PARTY_FIND
9 F# B! s2 z0 C' ~5 b/ H9 |
}
+ D; r! |$ g, I+ z) l' r
' p9 x2 Y7 n g$ @# S% p
代码:
4 m0 ?( P* u9 j( b' v9 p2 A; I9 G6 {
#ifdef __PARTY_FIND
& N" i1 W+ Q, H. E
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind )
! Y* C/ i# ~. w( A
#else
$ Z- r7 @% ]% J t# h6 b7 c6 H; d
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup )
: Q5 c7 }7 f% j# G$ s+ Q5 T3 O
#endif //__PARTY_FIND
% T" \8 [, ~! K
{
: j: ~3 A% b7 a9 h x
CUser* pUser = g_UserMng.GetUserByPlayerID( uMemberid );
" b# \ n, _7 s6 ^/ H( f8 G
CUser* pLeaderUser = g_UserMng.GetUserByPlayerID( uLeaderid );
9 U) e5 j- |( O& w
+ }) O4 o' p6 h, p4 r1 Z
if( IsValidObj( pLeaderUser ) && IsValidObj( pUser ) )
9 K. O) ]: E+ B c4 A4 z
{
& h5 Z/ w5 C; c" V; j+ P
if( !pUser->IsAuthorization( AUTH_GENERAL ) || !pLeaderUser->IsAuthorization( AUTH_GENERAL ) )
4 ]2 n$ x; L; p; c# C, S7 |; C. H9 Q/ ^
{
9 Z4 s0 o8 `( y4 p' ^8 m
if( !pUser->IsAuthorization( AUTH_ADMINISTRATOR ) || !pLeaderUser->IsAuthorization( AUTH_ADMINISTRATOR ) )
5 c/ g# _6 _6 y* M2 y$ N
{
4 {1 G& H; D6 c% ?
pLeaderUser->AddText("没有足够的权限。");
0 m( `, t4 Z s% N3 |. G8 Z; ?
pUser->AddText("没有足够的权限。");
4 b, a: [3 F# e, X
return;
' S* }) ?$ V0 a
}
& J Y9 N0 }, F: o8 \' L
}
) U. O5 u8 {- L) ?9 ?; x" I" C5 i
// ???? ? ??? ?? ????.
$ c: t$ ?3 V$ e$ b
CWorld* pWorld = pUser->GetWorld();
# i" i C5 h. V3 B3 }
if( ( pWorld && pWorld->GetID() == WI_WORLD_GUILDWAR ) || pLeaderUser->GetWorld() && pLeaderUser->GetWorld()->GetID() == WI_WORLD_GUILDWAR )
& I" f. V7 `4 S( t
{
$ F7 |) g' J) t+ s6 g5 e+ I
pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );
% d( f2 T$ s) `, h
return;
/ R$ n9 I/ S3 t1 `8 ~9 o
}
+ t) o1 e) r f- Z
#if __VER >= 11 // __GUILD_COMBAT_1TO1
4 k; N4 v- Q: H6 r% U
if( g_GuildCombat1to1Mng.IsPossibleUser( pUser ) )
. l1 S. E" d# a7 h7 x4 O& B& `/ H
{
6 p& q) q% w t& |0 L+ G
pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );
* X7 g% z: N$ n. M( W
return;
$ o P, F, A4 D8 ]! T9 A y
}
' p6 i/ r* |& a& y @7 }
#endif // __GUILD_COMBAT_1TO1
, |$ {- y& M. i I/ T2 K; F" Y
( z r0 g: F8 z. L- i7 L0 v2 H
#if __VER >= 8 // 8? ?? 061226 ma
: v G2 M4 A* X3 g: Q6 B
if( 0 < pUser->m_nDuel || 0 < pLeaderUser->m_nDuel )
8 t+ [- Y' D$ {& Y: B: ]
{
8 y; h* a2 q7 E! D1 H1 P
return;
# D, [6 d, L5 ?7 @/ P$ B( h
}
( a6 R2 G; `6 b
#endif // __VER >= 8 // 8? ?? 061226 ma
) W J$ o' s4 l- {) ^# P) z$ Y
/ V- B ~; @% \ e& ^2 k
if( pLeaderUser->m_nDuel == 2 )
& o) F. C6 G3 x) L6 x
{
u) t- e( D7 f: Y+ I
pLeaderUser->AddDefinedText( TID_GAME_PPVP_ADDPARTY, "" ); // ?? ???? ?? ???.
. w/ G% j) q. M1 ~+ F$ y
}
0 n( Z7 g+ s2 M' m4 ?/ y
else
& F+ P7 f8 K4 m: F S
{
" d* \1 h$ W3 W8 ~! r) G, K
if( 0 < (CMover*)pUser->GetPartyId() ) // ?? ??? ???
" a( F2 g: e& f! X Z& C
{
; [5 V4 [' Z" G& o0 P9 g
pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 1 );
( H% j% [( V3 `, ]4 e+ h& K9 B- @" N
}
$ o+ U7 G, L$ A
else
7 ~3 z/ c* l6 Z* {, ]
{
7 d& q" i( v3 g6 e/ O! r" l" z
if( pUser->IsAttackMode() )
. S6 T& S" f K9 `" c
pLeaderUser->AddDefinedText( TID_GAME_BATTLE_NOTPARTY, "" );
$ v; ^, J; o, w
else
5 v' ~6 b3 j; i' R' a
#ifdef __PARTY_FIND
& N: t. ~4 h. P8 C# @, a
pUser->AddPartyRequest( pLeaderUser, pUser, bTroup, bPartyFind );
9 g/ G# M8 d) Y
#else
% y u. R6 t/ ~( [5 E8 f
pUser->AddPartyRequest( pLeaderUser, pUser, bTroup );
2 e3 d' {3 Q; q3 V
#endif //__PARTY_FIND
' q2 m r# p; D# V
}
5 I( Z8 y0 g$ x+ P
}
! M7 J( i% x: Z9 i, F" Y
}
( w& j4 \8 D/ P, o9 \. [7 D
else
- u. n# d+ t/ `$ ?
{
3 ^+ u4 B6 G& I8 J
if( IsValidObj( pLeaderUser ) )
% `/ r3 Z7 U9 d7 K# w
pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 4 );
( }, a+ F( ^% l3 G/ z% `+ F
}
N2 k7 }- y, [5 D/ K8 ?' K" Z" T& D
}
. }+ c6 T/ N2 X$ i& d
5 {3 |7 F% Z8 J( o6 K }
User.cpp:
2 G9 i# V5 }! m6 R
代码:
& a5 K) |6 v6 L1 n3 Q
#ifdef __PARTY_FIND
, c9 s. Y- }. h8 T' }1 m
void CUser::AddPartyAllowJoin( BOOL bAllow )
+ B+ d& @6 e6 q8 }) a9 x" V$ c2 |1 v$ T! F
{
# b9 d; J* m8 l8 Y
if( IsDelete() ) return;
5 w/ D5 {. f7 e! V6 G" b
. S- Y5 y6 w) w1 N; F! m" X* x
m_Snapshot.cb++;
2 }/ I7 b0 ], q8 Y
m_Snapshot.ar << GetId();
& i7 h3 i# U! s! R
m_Snapshot.ar << SNAPSHOTTYPE_PARTYALLOW;
0 _5 A) T( S1 o( g: y! K) ^) x
m_Snapshot.ar << bAllow;
2 g6 D' ^/ v! Q7 W1 |
}
5 S' ^) [' m1 G$ ?/ H: O1 n
#endif //__PARTY_FIND
0 Q. K1 E& g/ D N" T: _( x2 M
& S8 S; i' J3 s; P2 D. @7 [
代码:
# W! T6 t$ @. l3 t- S
#ifdef __PARTY_FIND
( W; W& l3 a7 v) D+ p! Y0 v
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind )
- F5 l5 ^) W- S, P) S2 L; A4 B2 T; @- q
#else
' x8 F9 P* ^2 m8 u4 Q: B2 a
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup )
5 v8 [) n4 S9 e8 n
#endif //__PARTY_FIND
$ R0 @( S7 r: c8 M
{
. H9 }" `* Z% r
if( IsDelete() ) return;
& {9 E4 n' Y H& G
" m7 S/ _" u1 I1 W* @8 e* _. c
m_Snapshot.cb++;
! m* _! e+ n0 T! f3 E& u) ]0 @
m_Snapshot.ar << GetId();
8 [3 ?4 s. S; v( \5 @* u- ^' \
m_Snapshot.ar << SNAPSHOTTYPE_PARTYREQEST;
8 W; O8 e9 u( W2 A) k
m_Snapshot.ar << pLeader->m_idPlayer << pLeader->m_nLevel << pLeader->m_nJob << pLeader->GetSex();
" J- I3 E/ j3 y, s4 O' Z- P' @+ s% r
m_Snapshot.ar << pMember->m_idPlayer << pMember->m_nLevel << pMember->m_nJob << pMember->GetSex();
0 v2 G' q F; C
m_Snapshot.ar.WriteString( pLeader->m_szName );
& c; g! h) p6 _% \' G1 ]& ], G) ?
m_Snapshot.ar << bTroup
9 U' B7 x( Y% E8 t9 }
#ifdef __PARTY_FIND
$ u, b: x: P! v5 U
<< bPartyFind
4 R" k; k9 n/ Z0 a r' ~0 y- m( J7 z8 V
#endif //__PARTY_FIND
. q$ n3 U M( S/ }
;
( d( {6 l; c# p. o- E# I' W
. }$ u }3 V& b/ p# J* S
}
% k: f P3 I+ ^. p
& J3 ]! K# [8 Z# p. _
DPSrvr.h(公共范围PLS)
# \! O+ m# ?( B
代码:
( h! E8 z7 w0 h6 R) K- \0 G
#ifdef __PARTY_FIND
9 G" ]* Y( j7 o# _" c, `6 s
void InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind );
& R9 G( @, z' a: Y* {
#else
8 v" h5 U) g& V3 [% ?
void InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup );
, q; j! ]3 H) V0 @
#endif //__PARTY_FIND
+ ~' _. R% O) A4 f, ]
4 A9 |: u4 d6 m2 L, C
代码:
$ m" N, I- f- d3 a
#ifdef __PARTY_FIND
% d, c7 R! i4 `; c# N
void OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
1 G0 w0 R) i/ {& \+ T' M% k
#endif //__PARTY_FIND
. A/ \+ Z/ S. N7 O: F0 X# i
8 k5 H/ w( q( [4 w/ _
User.h(以及):
( Y1 M- J7 z* Q/ P
代码:
0 p( U* o. c; n& W) n
#ifdef __PARTY_FIND
8 h6 c6 P- \3 {% G. |* p
void AddPartyAllowJoin( BOOL bAllow );
9 m. R/ S* R$ D6 J! |
void AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind );
" q# _0 H4 ]" _4 r; o7 t
#else
7 a& |0 d* D. l1 s+ {. m7 s9 `
void AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup );
8 F3 M! V/ \1 Z$ E+ P1 ~
#endif //__PARTY_FIND
5 n8 {. F! e' k0 |7 j a
* i5 B- t* I' h" Y( V& [
party.h:
! ^1 g, y: D+ {- ^% X
代码:
5 F8 d( ?3 v" n5 Z1 [
#ifdef __PARTY_FIND
" w' t, R5 E+ E9 J9 M
BOOL m_bAllowEnter;
6 e( ?# ` B& v' a5 Q/ L
#endif
$ h1 I2 b) L) N- U
/ \# \5 W4 R9 w R
代码:
3 W: U: I! t* n
#ifdef __PARTY_FIND
b- u; M" A1 B
CParty* GetPartyFree();
- ?& T1 C( u- @. P/ C
#endif
9 L/ S. u( i( Z3 B7 C# ?
; M& E5 X$ W: ? x& V
WndParty.cpp:
% b8 }. j. q2 ^! v3 B- W" ?
OnChildNotify:
9 K3 h- c+ @' E0 }& L6 }3 l# c
代码:
9 m$ e2 }& L: w( v" f' u+ c
#ifdef __PARTY_FIND
Y3 }, ~. _* _, Z
else if( nID == WIDC_CHECK1 )
) h3 F0 E1 D) I+ B
{
: P/ Q+ U' m+ u
if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
" a. s# f A/ p9 T3 |
{
! [; C! C. w* H3 w9 d
CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
) O0 n, k5 ]$ T! u1 w7 r4 Q1 E
g_Party.m_bAllowEnter = !chk->GetCheck();
S& }$ P6 s/ B* v7 Q
g_DPlay.SendAllowParty( g_pPlayer->m_idPlayer, g_Party.m_uPartyId, g_Party.m_bAllowEnter );
; u3 S3 i% ?- ~" n
}
- @( C( Z6 @* H J' N9 k2 Q/ J
}
8 y1 a" ~% S" W0 e' w
#endif //__PARTY_FIND
) w; G0 x1 _4 n0 x$ d" _
* ^2 g0 k3 b1 ~$ z, B1 o* d
代码:
4 E; q6 k! I# x* Q
OnDraw中:
+ i/ x, {' y/ @) Y% Q( y
代码:
# A4 @) j; p8 |: g$ Y! q9 {
#ifdef __PARTY_FIND
) s4 ~6 Z$ E& f5 }6 K5 p- e
CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
g+ L$ }0 j7 x, n# p1 c' W3 w( r2 `2 i
if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
( V. i+ g1 P% G
chk->EnableWindow( TRUE );
6 p3 ?* I. s) ]. B
else
9 V. Q$ \7 d; x1 e( k
chk->EnableWindow( FALSE );
5 C+ L/ G/ {* A+ m
chk->SetCheck( !g_Party.m_bAllowEnter );
* h- J) ~& N. _: E4 {' z3 X
#endif
' A! M6 B& i- N8 Z5 B7 Q
1 p$ g9 ?: J, A8 [4 ^
DPClient.h(public):
, ?2 \( T* J3 D0 c- u
代码:
. F: E- S" o! {9 f; h+ o8 F
#ifdef __PARTY_FIND
# A" w: Z" M& h. P
void OnPartyAllowJoin( CAr& ar );
: J. k w# Y! i* W+ a$ b' w
void SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow );
( q6 d( z, W1 W3 k/ `4 N. `
#endif //__PARTY_FIND
) m& D! l8 c0 Z* i- b
+ W" T! o5 R3 }! v
1 V2 H- f+ A9 \/ r( J& }$ f
WERS hinbekommt没有,请让赫克的权利。
; M6 @7 K5 l' \- g' @
不支持左右,所以难不...
. `5 c F/ Z0 x$ w
党k的Windows NT甚至编辑它自己。
: ~" H4 u0 s: E$ r+ u3 j
包也,因为我不erschreiben进一步如果我你的。
" D/ b3 I: A2 j" F; @
由于缺少Quantité k n个代码是什么升工程前。
2 S1 T1 ^) Z( Y5 w) d$ j; v
如果是这样的。请发表。
/ O' f E0 a1 s, K' c" Z. F7 A
到目前为止,Pumbaaa
4 i5 A+ G5 X5 F6 h
, Y' u, u5 b3 O5 Y/ n" ~
& G r# w5 Y! q6 d8 Q% S, M) @
MsgHdr.h
' R. ]- B! r" v# f; w% r
#define SNAPSHOTTYPE_PARTYALLOW (WORD)0x8863
" g; b/ @$ V5 c' f% J
#define PACKETTYPE_ALLOW_PARTY (DWORD)0x88100243
" M: v" l! C% e: X! D/ ]3 D+ S
/ @9 s- }7 o5 Y3 m- ~
; C" |/ ?9 F* M. R/ B1 N
# {$ J8 N- t4 Q* l- z+ E5 h) [
欢迎光临 飞飞世界论坛 (http://ffwold.com/)
Powered by Discuz! X3.2