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