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