飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10372|回复: 0
打印 上一主题 下一主题

搜索公会的功能

[复制链接]

197

主题

203

帖子

1054

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1054
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:38:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于那些谁需要它 - 谷歌缓存FTW。 :
1 K5 W& X- Y$ B% E如果我鼓掌纯粹是我复制错误时,D
1 Q  F/ C. e% r' O% v积分当然Pumbaaa。
8 y) B$ N, V0 `8 Z
7 w1 q1 l3 G2 i  s# ?0 z2 [FuncTextCmd.cpp:4 j" u$ J- q& f! _. L0 A9 ~( ^" u' D
* q5 \" c9 J: Q% D+ h  z& q6 B
代码:8 {9 r, w; f( |) s
#ifdef __PARTY_FIND4 D% l4 e3 [, Q. k; c5 Q
BOOL TextCmd_getparty( CScanner& scanner )
7 x# h) x8 c2 ~{3 E' L6 Q- g# f, U
#ifdef __WORLDSERVER
% @# x2 f1 E# i+ O8 y6 g; d        CUser *pUser = (CUser*)scanner.dwValue;2 r6 k+ f7 z- ^" `" j
        if( pUser->m_idparty > 0 )
6 W& g: X" ^& t( `. X1 |        {
9 O6 q, n/ D. o* a6 j                pUser->AddText( "你已经加入一个公会。" );4 m9 z3 ^0 C8 m" D% t9 Y& E
                return TRUE;
& {8 j- k* C# R- {( ^0 |/ m% H: Q        }  J' K$ f# h6 K( r# K
        CParty *pParty;
2 t- k8 M% [9 E* `& u, S        pParty = g_PartyMng.GetPartyFree();# A2 N4 i0 s0 D' y" D0 \2 r7 S
        if( pParty )& e0 \/ w5 ]* ?
        {* D1 Z2 L6 S) M3 c
                g_DPSrvr.InviteParty( pParty->GetLeader()->m_idPlayer, pUser->m_idPlayer, FALSE, TRUE );& V. z. I' L4 u) [
        }else  f% ?* ]8 G1 x% \6 O0 P& m% z& Q
        {
1 T/ H. p7 D) X( {4 |                pUser->AddText( "抱歉,这里没有任何一个公会。" );
5 G' E& I, L0 M2 |2 Q0 c        }% ?/ ?( F. i" V$ q) @
#endif, {! \2 u) y! c) _: ?
        return TRUE;, _5 e/ ?% c4 f$ I! [& V( t: a
}$ ^' L# u5 R( `( S
#endif //__PARTY_FIND% T4 C, K: }9 ^; `4 H
( [; C) z& Y  M; F7 H/ a
代码:
0 p; `- L  e* m2 c! m8 IBOOL TextCmd_PartyInvite( CScanner& scanner )3 [2 o9 P0 w) Y8 D
{, h/ a, F0 D0 @) E
#ifdef __WORLDSERVER" g  ?, {$ o! u; Q+ O; L
        CUser* pUser = (CUser*)scanner.dwValue;6 l8 p3 F- o. A* ?2 b
        MoverProp* pMoverProp = NULL;$ l# q: y( d7 ?7 F
        scanner.GetToken();/ ]9 o$ _' g! I; q6 N: ~
#if __VER >= 11 // __SYS_PLAYER_DATA
7 s  b6 _8 I" A. }. y/ P) t1 e4 A* \        u_long uidPlayer        = CPlayerDataCenter::GetInstance()->GetPlayerId( scanner.token );
2 b. d7 {: Z' Z- R#else        // __SYS_PLAYER_DATA
8 J" r0 U+ d/ y3 R0 K+ k! b$ E        u_long uidPlayer = prj.GetPlayerID( scanner.Token );& k& ~- {* M$ |, t8 `
#endif        // __SYS_PLAYER_DATA
% n+ l  P$ f, l1 q* v; E        if( 0 < uidPlayer )) X% `8 q$ C* V7 e' z& P, J
        {
) \7 r6 O" y* p3 Q& p7 d+ A2 o                CUser* pUser2        = g_UserMng.GetUserByPlayerID( uidPlayer );       
  b( M+ e4 n9 ]/ g- D- m                if( IsValidObj( pUser2 ) )
! }, B& P5 ?% @7 [4 Z! P. R5 s# W#ifdef __PARTY_FIND9 w  `. q' J6 \" `3 i
                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE, FALSE );# V0 b& \. ?4 |$ L- p# |
#else4 {1 a! \3 |7 a9 D0 n* k
                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE );* t. D, x* h& t; r" L  A, a
#endif //__PARTY_FIND
. w) \* K6 v% Q, k6 p5 {                else8 @  D# ^; A  O" B0 N
                        pUser->AddDefinedText( TID_DIAG_0060, "\"%s\"", scanner.Token );0 N- P: k  v3 y  }5 }6 }$ [- H
        }0 Y0 B/ `  x$ c: U
        else8 Z" q5 h; O' @
        {
; E$ O5 A! J( R5 K                pUser->AddDefinedText( TID_DIAG_0061, "\"%s\"", scanner.Token );
; N! b- ^$ S0 ?9 a2 a& @  s% W        }
8 r  O$ @$ [0 g3 F#endif // __WORLDSERVER( C# S8 a. U+ I, }$ z, }
+ |1 G, f3 ^5 C+ U, |
        return TRUE;$ V7 A- A& J& d' C3 H. ~
}
1 W3 i: c# _7 B  h* ~* c
9 a# x6 n% K! T. l+ M代码:
; F4 e  J( q  t8 x4 t8 Q#ifdef __PARTY_FIND
( @: [' C% q1 N: h; [        ON_TEXTCMDFUNC( TextCmd_getparty,                                "getParty",                        "getP",                        "",                                        "",                        TCM_SERVER,        AUTH_GENERAL        ,"" )
$ C% b! C* ?9 C#endif //__PARTY_FIND
3 z+ n( R% i7 r/ c0 I3 D. TDPClient.cpp;
& F' X1 C$ [' u& y# F4 GCode:
9 i/ J3 N2 }8 [/ O& Uvoid CDPClient::OnPartyRequest( CAr & ar )8 d$ D# Y1 N' j6 O
{% `% u) J& g4 d4 m/ C/ I; m6 U
        u_long uLeader, uMember;
  e5 S7 o: [/ C# X; V7 h- U
  i2 s0 ^# i- Z2 [1 U/ O9 c        BOOL bTroup
' Z, j7 y# A/ ~1 f#ifdef __PARTY_FIND. u+ N! F7 W7 `# V$ ^2 V
                , bPartyFind( c' L6 a" h/ a# G5 b
#endif// __PARTY_FIND
, m% D1 j5 X+ t! Y                ;/ x5 i* H8 F4 ]1 [( Y& z$ q
        LONG nLeaderLevel, nMemberLevel, nLeaderJob, nMemberJob;
" z+ @; [1 x/ t6 H$ D3 C* e  |        BYTE byLeaderSex, byMemberSex;& B: s2 C& b" I" y; c# o5 p( ]
        char szLeaderName[MAX_PLAYER] = {0,};$ t; k; l/ g; R4 L
        ar >> uLeader >> nLeaderLevel >> nLeaderJob >> byLeaderSex;
) f  Q3 m+ m$ I; B$ F) q        ar >> uMember >> nMemberLevel >> nMemberJob >> byMemberSex;
; I- {: X# {/ f" j8 z        ar.ReadString( szLeaderName, MAX_PLAYER );
& ?  F: ?; P9 n/ N9 [        ar >> bTroup
" d/ I" r" z' u) s9 z#ifdef __PARTY_FIND
; C5 G! F" V' p& ^9 C) p4 ?+ H4 q                >> bPartyFind
0 B8 F5 K$ C0 g9 v3 K# q2 N#endif //__PARTY_FIND: F4 m5 r/ ~+ }) W4 d" _
                ;" J5 W7 y8 c1 |# S/ Z
        ) [! z3 R6 a! t+ n4 m
        if( g_Option.m_bParty == FALSE )
; O" l6 e) }# v        {. N7 u1 m8 p: i# S7 W7 E
                SendPartyMemberCancle( uLeader, uMember, 3 );
! p( s9 _: W* U/ Z                return;
$ H' W: h6 e" h3 H0 J/ M( ~/ d        }( e( b% ~; u6 y

0 F' n; q) C$ K- M9 `#ifdef __S_SERVER_UNIFY7 W: y. l3 D3 v4 H: K
        if( g_WndMng.m_bAllAction == FALSE )
; v3 w) R" L: ^, N# @) Y4 V  t                return;: l# A, @3 i9 @; _# B) o
#endif // __S_SERVER_UNIFY; T. ^# H; h; q- j

: B$ J, x1 j1 {3 B; R3 `        CWndBase* pWndBaseBuf = g_WndMng.GetWndBase( APP_PARTY_CONFIRM );+ u3 }. c; e( ?1 I8 L/ w9 ]% ~
        6 k- T6 r7 e/ b# z
        if( pWndBaseBuf ). Q  C2 J/ l% t  z
        {
) o* b3 h7 k0 ]2 n" w9 u. l                SendBlock( 7, g_pPlayer->GetName(), szLeaderName );4 ?4 A) `! I7 a8 `1 E% A8 _
                return;$ T$ p" C! B. z
        }  A* l: F' [2 G2 Z, ?/ k7 }3 Z
#ifdef __PARTY_FIND
1 e9 ?% ^6 D, p! b9 m        if( bPartyFind )8 v- b+ N# K$ n; T/ S. X( _0 Q
        {! u3 g' X: y" ?; C6 {; _
                SendAddPartyMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex );
+ A: d. p& {: `1 o$ P( X1 ~! f        }else/ R6 X' v! H8 v& P9 @2 j; ~2 j
        {' J+ Y) t+ U* U
                g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
4 k; @8 d/ S# ~( d1 r, e0 F, i                g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
+ e/ Z) ?6 i) ?- U7 F                g_WndMng.m_pWndPartyConfirm->Initialize();: m: y# q) Q+ {6 T; _, X+ W
        }
7 p: O5 _( t6 s+ [#else
0 y3 h( r' h1 z        g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;1 _% k" _* x5 _  u
        g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
, d+ _. K' |/ w4 r) a        g_WndMng.m_pWndPartyConfirm->Initialize();2 ]  C+ g, a1 z# H/ }! o$ t
#endif //__PARTY_FIND! j% |8 H) `5 t1 _" T
}- p' U) e0 e. K0 [

5 R5 a+ @) J- O( `1 L4 t代码:
; q8 ^; p+ N- L#ifdef __PARTY_FIND
: j& @; L7 t. Z* x# Pvoid CDPClient::SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow )
6 ~2 c6 J( |: j) m{9 u% I$ t9 S  [4 k. T$ x  F
        BEFORESENDSOLE( ar, PACKETTYPE_ALLOW_PARTY, DPID_UNKNOWN );- U2 `  `# @: k9 j+ X: ], _' @
        ar << idLeader << idParty << bAllow;
, k' q- C3 j9 Y. k9 j) Z; x        SEND( ar, this, DPID_SERVERPLAYER );$ R' C6 t: ]3 T# B$ h3 n

! p+ v" }; L2 a  y}5 \( {/ z: W5 R. @/ E
void CDPClient::OnPartyAllowJoin( CAr & ar )1 V6 G5 j- T! M5 ^2 R6 M
{
1 a* `: e- F8 O3 Q% s5 n9 ^) f        ar >> g_Party.m_bAllowEnter;
8 [# J# k, E+ v2 h: a" {4 B# ^/ t$ T}
  r* _7 ]( c5 T( F& l8 O#endif //__PARTY_FIND
% g3 j) w3 O  R+ i6 KCode:: A5 f" q8 a2 ?; t* N* e; C
#ifdef __PARTY_FIND
1 l+ `( C. Q' R, _5 F                        case SNAPSHOTTYPE_PARTYALLOW: OnPartyAllowJoin( ar ); break;
6 i7 t; \% G* T/ c& a/ q4 ]; L#endif
  l. L2 q$ ]  {7 H! o* q& P1 C: T2 J. L- O  \+ O) j8 i. P
party.cpp:
: K! v9 N1 u7 X8 M& k% a. z代码:
- @3 t; P' Y# g5 ]) a0 r' [CParty::CParty()
9 v' K- R. w" r5 ~, `{
; ~1 G9 V# U: ?/ H        m_uPartyId        = 0;
" C' V7 C7 S# U        m_nSizeofMember        = 0;* [) X" [" Y2 x) ]5 `
        memset( m_sParty, 0, sizeof(m_sParty) );
5 I, }+ ^% N9 S6 L) {( T        m_nLevel = 1;2 `! J& V* b% x3 K2 P: i; Q8 ~
        m_nExp = m_nPoint = 0;, a1 u0 s/ K1 d$ `1 x
        m_nTroupsShareExp = m_nTroupeShareItem = 0;' R% N7 I- D5 H, O  w7 ^, S1 c& v6 C
        m_nKindTroup = 0;                                                        // ????% K' w5 l# g+ W6 y# f
        m_nReferens = 0;
6 }) v9 _! ?0 y" A& U7 T! e- o        m_nGetItemPlayerId = 0;3 z9 j# V7 x' ~/ e, D, R8 X
#ifdef __PARTY_FIND+ i5 S& t% D+ Q3 F* D) I
        m_bAllowEnter = TRUE;- V5 H+ x! q* C/ Y# g" C4 _& A* u
#endif //__PARTY_FIND
8 ^1 e8 v9 ~3 ~4 M7 O5 P2 N+ j        for( int i = 0 ; i < MAX_PARTYMODE ; i++ )
) h$ v4 T, g! o/ ~# I        {
8 V) v6 r/ g5 g                m_nModeTime[i] = 0;
: u& K8 L! I) i3 k5 B4 C        }% v! w/ ?% j0 B1 Q( B$ ~% r! ~
        m_idDuelParty = 0;
5 X) B& R( X, `, O) m#ifdef __WORLDSERVER. L1 j8 T9 |" h" g' Z- r
        m_dwWorldId = 0;2 Q6 r* D- G! h; f4 ]( C
#endif // __WORLDSERVER5 C2 w- {0 ^  C; O& y
}
, ]- t) N. D; q" u7 @& b8 q代码:
' g3 P& b4 D0 _2 ~void CParty::InitParty()
. Y  l: _3 k# A4 a{8 U, R5 v& x9 }0 f8 Z2 y& Z! h
        m_uPartyId        = 0;
$ g* t$ C7 [4 c% B$ G* _) o" H        m_nSizeofMember        = 0;
$ G9 d8 T8 F( J9 L+ ]: m2 a  `# o        memset( m_sParty, 0, sizeof(m_sParty) );
( \5 R3 {. S3 Q/ ~5 ]        m_nLevel = 1;
: r- H- B$ W! O) {2 Z' t/ z        m_nExp = m_nPoint = 0;/ E+ k6 t$ u& d8 U
        m_nTroupsShareExp = m_nTroupeShareItem = 0;# G) i, r+ A, p  t) u
        m_nKindTroup = 0;                                                        // ????( ~) a% o+ c+ x- l- [/ X# w9 B! C: E
        m_nReferens = 0;       
( V8 b" B! I' ~#ifdef __PARTY_FIND
7 u" v# y* G* o' d2 q! P        m_bAllowEnter = TRUE;
8 L% ]/ r* N: L* d. c$ n0 ]#endif //__PARTY_FIND
1 c6 `. v' ?, _1 z        for( int i = 0 ; i < MAX_PTMEMBER_SIZE ; i++ )( t1 k$ {. V( a  e, r
        {
2 |! D+ q  O) [0 K' f. v" ^  O                m_aMember[i].m_uPlayerId        = 0;4 u1 l0 A, ~8 I2 M
                m_aMember[i].m_tTime = CTime::GetCurrentTime();5 x7 K' ^! i$ ~- W/ X9 u
                m_aMember[i].m_bRemove = FALSE;, H# E% X1 b7 q  p8 f+ w
#if __VER < 11 // __SYS_PLAYER_DATA
. j/ o* A5 B) f, m# F                m_aMember[i].m_nLevel = m_aMember[i].m_nJob = 0;3 _/ Q  P+ E6 e3 {; R
                m_aMember[i].m_szName[0] = '\0';# @2 `5 \* S9 }- Z! s9 [
#endif        // __SYS_PLAYER_DATA
* w( F' f; \- m! _        }
7 C8 o% L2 J; \}
( L5 Q) G. b( u. m/ |7 x, C2 u代码:
( d5 B5 S; U% D8 e7 O3 D#ifdef __PARTY_FIND3 u& A3 t% n  X- x3 ?
CParty* CPartyMng::GetPartyFree(); h0 w6 R- v- v( U! Y2 y6 o
{
8 T% D) C' N! c9 [0 r        CParty* pParty, *pPartyTmp = NULL;
/ E8 u' ?: ^  |5 Z  R* R0 K2 M" w        if(  !m_2PartyPtr.begin()->second )
3 y! [3 {1 q' w1 [& @5 {                return NULL;
$ R- L$ z/ o  E1 \3 B% d        BOOL bRan = FALSE;
+ F5 z& z' Q& ~, K: i6 I0 X5 M        DWORD dwRand = 0;
# U4 d& `* O9 o7 {" n* f        if( m_2PartyPtr.end()->first >= 1 )) W( Y6 x! {1 V6 Z) r5 g
                DWORD dwRand = xRandom( m_2PartyPtr.end()->first );; _+ D, w- N" A9 |6 T# z
) k( D: ~# |# E% m  x( a# q, c
        for( C2PartyPtr::iterator i = m_2PartyPtr.begin(); i != m_2PartyPtr.end(); ++i )# @- a) t3 i& ?' U0 b/ O# P; J" a
        {
# H( Q2 ]. D5 o* r$ Z$ J/ S5 t                pParty = (CParty*)i->second;
: d: {7 J" d% e( Y8 `# Z                if( pParty && pParty->GetSizeofMember() < 8 && pParty->m_bAllowEnter )
) T! M! P' g4 }' e+ {! l% A                {! x* Y" a8 r' e3 M- `2 i: |
                        if( i->first > dwRand )0 Z. _6 s9 n6 p( H
                                return pParty;
2 h/ X7 ^: k! |! R3 t: f5 s' r                        else
; A7 Z2 j' W2 l( c% @                                pPartyTmp = pParty;
4 `6 S. ^) p  `( V7 V* e: x                }# h1 t$ [6 O1 H* w
        }
; Q1 @! B  i# O# |1 h        return pPartyTmp;
* |$ }2 A. E% K4 C, e" g* H3 C}* c$ B# l/ L; |8 Y0 n- c  s
#endif //__PARTY_FIND
9 p" |; E9 S( |  t# |, b, P: C" h8 e1 Y; F! F5 g2 q9 Q, a
DPSrvr.cpp:' |" k. F& @$ I, W5 G, M& H, F4 ~( E
代码:: W2 y5 j! D' C# J$ ~$ D7 g; m
#ifdef __PARTY_FIND3 F3 {2 e  Q- y) K  N
void CDPSrvr::OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )* c( D9 ]- n( p, M; q
{6 J+ O( `. K7 b2 A4 I
        CUser *pUser = g_UserMng.GetUser( dpidCache, dpidUser );) F0 I5 }$ U* V' f
        if( IsValidObj( pUser ) )+ @  c. ?. M) J0 G: U/ i3 K6 x  G
        {
6 f5 m- G! |" c) S# v. P) m                u_long idLeader, idParty;6 [# ^) b+ d% n* K* ~, Y
                BOOL bAllow;
* Y0 ~2 C- b' H' s1 O9 f- J: t                ar >> idLeader >> idParty >> bAllow;& Z# o# j7 D4 k- h% N
                if( idLeader != pUser->m_idPlayer )& P& |2 P8 c9 M0 {5 i& A- z/ J
                        return;2 V( r$ w1 k9 a) x& d
                CParty *pParty = g_PartyMng.GetParty( idParty );7 z2 C4 h' P# p) z$ N3 n
                if( pParty && pParty->IsLeader( idLeader ) )  W! y! i2 h5 f! n- s8 i2 m; L; P
                        pParty->m_bAllowEnter = bAllow;. [" L4 G4 V1 D: Q
                else
9 X# d- C4 X) ^                        return;
; r3 |( {9 N: s) o0 W, W9 {" m* I8 |4 t# V7 h0 V; R/ u" v& e
                CUser *pMember;, A* z, ~8 S% \
                for( int i = 0; i < pParty->m_nSizeofMember; i++ )
' O3 W$ j# g% x; R) E6 u                {9 r) ~. e$ u& P1 w2 ^* B2 |; y
                        pMember                = (CUser*)prj.GetUserByID( pParty->m_aMember[i].m_uPlayerId );! X( d: H5 n2 ?+ f
                        if( IsValidObj( (CObj*)pMember ) )
) q! ~) @) C8 R. i8 P                                pMember->AddPartyAllowJoin( pParty->m_bAllowEnter );4 h6 J1 t) o- I4 T
                }% F& [7 O& a; _
        }8 V" O, N- q6 k$ }8 f) a9 E& N( g
}
% q% v1 i8 T, o9 c0 q: W4 \#endif //__PARTY_FIND! ^% L9 D/ b# f

% i$ D5 S  Z) `. J: X& g. x代码:
( B+ M# b5 l4 `- ?#ifdef __PARTY_FIND. O1 k+ ?  |  \7 H7 U8 R
        ON_MSG( PACKETTYPE_ALLOW_PARTY, OnAllowParty );  E3 T) f# J' G0 e( n  F9 k2 A
#endif //__PARTY_FIND& g! K; J: `- D( k0 ~8 G
5 O# I+ Q- _$ E! K# f9 a
void CDPSrvr::OnPartyRequest( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) `  s' P& n: r0 k6 a* e$ q
{' N5 t) s7 _8 `5 r9 P$ }' g1 J
        u_long uLeaderid, uMemberid;
/ m5 [) A0 E2 L! x3 K        BOOL bTroup;4 B' Y; j9 Z& r+ H, ]
        ar >> uLeaderid >> uMemberid;
: m$ G' d8 e, z        ar >> bTroup;
' N6 }+ i" ]/ K( y# |
% y) N/ D& M9 s3 n        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );( P8 d' p- V: p$ @- y" h
        if( IsValidObj( pUser ) && pUser->m_idPlayer == uLeaderid )3 C) i8 q4 n3 _& v; ~' ^& O" ]8 _
#ifdef __PARTY_FIND% o* y1 k8 s$ Q1 i
                InviteParty( uLeaderid, uMemberid, bTroup, FALSE );* a+ ?# Z; T3 C; D0 y4 H1 r
#else2 q' ~7 N, {! O3 S, F" u8 r
                InviteParty( uLeaderid, uMemberid, bTroup );
% Y# I8 @% M& A8 u% v( S5 o#endif //__PARTY_FIND  x, h& o4 l. y: w7 ?
}6 j" R2 g, E- d; p/ s. y6 y
2 m  R; v  \6 w
代码:% R- `+ Q9 ]1 ^
#ifdef __PARTY_FIND6 |, B; u, W4 j% G
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind )
; ~& R, p$ t) J& E2 m# {  _#else- C' A/ h6 a; i" X% J1 o  E) M2 H6 L
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup )
8 k9 e* Y- x; i#endif //__PARTY_FIND
. z- @  D3 O: [  n/ d{8 O6 H+ g9 J8 l% \( |9 y1 [1 Y) e
        CUser* pUser = g_UserMng.GetUserByPlayerID( uMemberid );
' ~, P% J# v/ u' t! o        CUser* pLeaderUser = g_UserMng.GetUserByPlayerID( uLeaderid );: E5 E+ Q* G# V8 ?6 B9 }
       
+ G3 w! O% I( {8 k% c8 K. z. P3 H        if( IsValidObj( pLeaderUser ) && IsValidObj( pUser ) ), E) p) K1 ^9 Y* K2 H
        {- k# q$ A% S6 o) i. w
                if( !pUser->IsAuthorization( AUTH_GENERAL ) || !pLeaderUser->IsAuthorization( AUTH_GENERAL ) )
( J. b: q3 f  k" e                {
( n* g3 J* G  N* W/ a3 K# w/ w  ~                        if( !pUser->IsAuthorization( AUTH_ADMINISTRATOR ) || !pLeaderUser->IsAuthorization( AUTH_ADMINISTRATOR ) )
! d5 t" U7 A! s/ G  _) t/ r                        {
! W0 f; \, B. w4 S) v+ `0 C4 p                                pLeaderUser->AddText("没有足够的权限。");# \9 M4 ]3 U; f0 r' j* \7 c+ n
                                pUser->AddText("没有足够的权限。");
% @& g8 X/ q# }                                return;
& d. _: ]/ w" I0 }                        }
: [7 p9 P- `8 V5 h; v                }
% d8 g  ~. P$ B                // ???? ? ??? ?? ????.% R) }% X. Q0 p9 _9 K1 V. B5 o
                CWorld* pWorld = pUser->GetWorld();
* ^! k" \& E% ?1 [' V  W% A, d2 ?                if( ( pWorld && pWorld->GetID() == WI_WORLD_GUILDWAR ) || pLeaderUser->GetWorld() && pLeaderUser->GetWorld()->GetID() == WI_WORLD_GUILDWAR )" {8 v1 x5 m: A" q
                {                        ; A% J4 H! ?  I0 n6 I
                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );8 m4 ^2 W6 i! R  {% E9 s1 ]0 j
                        return;
) O/ j. G" J- n4 X; x' X4 R                }& i: }; @4 v7 r- A7 G
#if __VER >= 11 // __GUILD_COMBAT_1TO1
' k* ?  ~7 s. h# s1 p' Q                if( g_GuildCombat1to1Mng.IsPossibleUser( pUser ) )
$ X. O) e! G$ H+ X& y& O                {
6 b1 C1 s% n2 X                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );
+ y. F0 A8 W0 K$ [& p$ u5 q                        return;
) v) X% h" p3 d  W4 M( y                }, Y2 ~+ J! x( W. d7 e, s. J
#endif // __GUILD_COMBAT_1TO1
5 U! X. N$ l4 y4 i  [1 I  i5 |/ @: ~- X3 @# j1 b+ _
#if __VER >= 8 // 8? ?? 061226 ma# Y' b/ l! n' ?; V7 N$ X! \
                if( 0 < pUser->m_nDuel ||  0 < pLeaderUser->m_nDuel )
% a: h* `0 r  T" K6 |' K6 G                {
$ y* \- v- t. T% V* E: q( x: U                        return;
* b% M; b6 E* \) b: O2 v( i  k                }
6 ]3 @" m! h' r' D+ `#endif // __VER >= 8 // 8? ?? 061226 ma
6 O# Z* s9 F+ ]) v- H5 ~7 H               
7 M  n" B& A* J# e" E7 U6 |4 ?                if( pLeaderUser->m_nDuel == 2 )
8 h9 I/ ^; I$ ?% s0 t                {                        ' z* _6 {4 K# F/ d5 R! E. U- H
                        pLeaderUser->AddDefinedText( TID_GAME_PPVP_ADDPARTY, "" );                // ?? ???? ?? ???.
* f1 E" E0 I/ f# G' N                }
% U7 t* l# g9 h                else
: u- G& ~( A( ]8 r- Y2 r/ ^                {/ H& q" y* c6 k/ P" ]
                        if( 0 < (CMover*)pUser->GetPartyId() )        // ?? ??? ???7 x/ Q9 u2 i: y& M8 X& n
                        {
0 B- H8 C8 p5 ]+ |, x+ m# C2 b" w" {0 x                                pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 1 );7 x- _% S0 V+ L  ~
                        }. t! ^6 A$ B2 }. s" H; x
                        else) {, I  G5 g: M( N- o
                        {% V$ X  }4 M- Q
                                if( pUser->IsAttackMode() )
3 Y* ^8 _4 h2 i5 _5 h4 A                                        pLeaderUser->AddDefinedText( TID_GAME_BATTLE_NOTPARTY, "" );
' r8 C: q7 M/ A/ R; I; e                                else6 Y/ l, R' K0 G
#ifdef __PARTY_FIND
* o  _6 G5 H7 N6 d0 D& A                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup, bPartyFind );
2 v* W5 B) M( l#else
& X0 Z2 Q2 v6 W. z                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup );3 q5 t" Z- {: ^6 \7 V
#endif //__PARTY_FIND
  K* M( K( u! s$ p                        }7 v' E5 U4 J/ B7 X2 |
                }4 L2 m" W, k7 ^+ D6 b. r8 @& `& R
        }) W: b* v6 H& ~" [* v, p9 C4 V
        else& }  D* L1 |& Y  |4 c# X* w2 L
        {
- o' W) J5 T" _2 W, v4 ?1 O) x. n                if( IsValidObj( pLeaderUser ) )
6 n6 z  o. l" o. m" C  q3 [                        pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 4 );0 s! L% G6 c0 l, u& v, _
        }) A3 b" L( {6 j4 s
}
2 n: g- K9 n7 L# S* \8 Y' \/ y; B
User.cpp:
. p; f, P- ]5 E' s5 S8 y代码:& B) P6 s  r8 j: \) l) a
#ifdef __PARTY_FIND) v) x3 U% Z) o, h0 S5 C' v: v" i
void CUser::AddPartyAllowJoin( BOOL bAllow )
1 \* X# U: F7 B{
) B7 ?$ R9 n4 s, j& x7 K        if( IsDelete() ) return;
- H1 ~: r5 x. q" g/ `. a- B6 \- o
/ \) G6 b0 W6 k7 o7 b9 u( d        m_Snapshot.cb++;2 G/ F* [4 y+ U1 R
        m_Snapshot.ar << GetId();
. G$ y+ h% U, Y! ~$ z, }! L        m_Snapshot.ar << SNAPSHOTTYPE_PARTYALLOW;
2 G2 w9 Y; _' d. \# _) Y        m_Snapshot.ar << bAllow;
# O5 M# T8 ]) R7 X. w}
. M" g( C  x  V5 A#endif //__PARTY_FIND* ?7 f9 `1 Y- J6 y
! q5 d# t4 n* u( x$ E
代码:, k, _. ]+ Q% P* [& J' ^3 q; O
#ifdef __PARTY_FIND
$ ~& J" L! T) h# H4 J  [& Mvoid CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind )
# @7 B7 ^' m9 D' j1 `6 k% k/ K9 o# t- @  A* i#else9 [2 k8 N1 ]- ?- \" u+ Q
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup )
2 ~# X2 u7 G. g8 }; q#endif //__PARTY_FIND# H% _& X2 f- Q4 m: e
{
- {/ Q' @) k, f3 i( g        if( IsDelete() )        return;
' W, j9 ~( f; {) d9 z& i        5 g  t7 M  F2 T1 M1 M& y
        m_Snapshot.cb++;+ {( J  f( x! q, N) r
        m_Snapshot.ar << GetId();
8 A; g) S, R' S        m_Snapshot.ar << SNAPSHOTTYPE_PARTYREQEST;
& G  T3 f" }0 v        m_Snapshot.ar << pLeader->m_idPlayer << pLeader->m_nLevel << pLeader->m_nJob << pLeader->GetSex();. o0 ?( {3 _0 I. {/ S+ J$ q- S. H
        m_Snapshot.ar << pMember->m_idPlayer << pMember->m_nLevel << pMember->m_nJob << pMember->GetSex();( P* N9 f1 J+ X% H  Q- ?2 ^# t
        m_Snapshot.ar.WriteString( pLeader->m_szName );
# e9 `, F$ K" }% l7 R        m_Snapshot.ar << bTroup+ ?3 \: l4 ~2 H& n
#ifdef __PARTY_FIND
) E3 s9 _) V- T$ y                << bPartyFind" ^  ]. Z: G6 |
#endif //__PARTY_FIND
5 F* p$ G7 k7 T8 ]% `8 a0 u                ;# a( T6 O4 v+ ?! \0 g; U
       
' f; G- T# b5 b( Y& |5 Z1 c# H" e}- E9 g0 P/ p" R. C6 V
" o9 o! e% @  Z' i% P7 M4 d, h( r
DPSrvr.h(公共范围PLS)
, @& L- F# |3 O: s代码:
4 l7 Z$ h7 I- O% X; u2 D#ifdef __PARTY_FIND
1 |3 R, r" L5 j5 ^8 {        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind );
9 H  I; S: S3 h( {#else) z$ ^# m/ }3 @6 y9 j1 Y  @
        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup );  e  h+ C. S+ ^, ~
#endif //__PARTY_FIND
( {( `; I, U# y& s+ q2 i1 t' |1 q4 n& i
代码:
8 P: N) }" i* `  ?7 d; C" N* m#ifdef __PARTY_FIND' n& s" T: q6 x) Y7 `
        void        OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
# c' j$ W7 Z4 V: c. L" s/ G: L#endif //__PARTY_FIND
7 r* A/ u! l1 Y8 r' f- I! u4 A2 x% ~, s" H
User.h(以及):" O  l$ U2 R, k* H; O/ ], g
代码:
6 c5 M" j$ ]. W3 d7 h+ {#ifdef __PARTY_FIND
# j% L, T1 J% M- f1 S2 U        void                        AddPartyAllowJoin( BOOL bAllow );
& D3 `) Q; M8 [        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind );
4 B' _& U* E  q' ^#else, [- v! b6 P! I! R/ w! m
        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup );
: P$ d$ e( n' Z1 z* K! z#endif //__PARTY_FIND2 X9 u( W* t/ \! ^9 v  {

* {8 W3 q* R) I4 {( a: a, g% Pparty.h:2 W6 C0 V( Y: w
代码:
* L9 b7 J( V: H( L#ifdef __PARTY_FIND
) b, t5 j# K6 G( G8 t8 E% r5 \% t! G        BOOL        m_bAllowEnter;
% \+ W" x0 j( g- E- [' z, D#endif4 j0 ^) {9 c$ Y6 {

" l3 ~& j* M* B7 A) C  J代码:
4 q; u" C, X+ @8 {- d4 z, i#ifdef __PARTY_FIND6 S! m! p' Z/ |5 ~* ~4 I
        CParty* GetPartyFree();! M( d' D. n$ p- e* ?# A! R
#endif0 \0 r' w; I# N; h: G, n

/ T  T: ~* D8 _& H  w: W, eWndParty.cpp:: W2 q3 u! R1 C& K' `
OnChildNotify:% O: d3 Q  r; X( H: b0 K! O
代码:
1 {. b; G, J  x& `4 X2 r! J4 i#ifdef __PARTY_FIND
1 ?( {8 D& V% |8 m+ D9 p5 _5 a. \        else if( nID == WIDC_CHECK1 )
* V6 @3 x: t5 h% c        {- }" Z9 r5 C. {! j
                if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
4 D8 b+ S4 z$ s: f5 X; O                {6 k" [3 l. G# r! M
                        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );' }- ^8 a% a7 l8 R+ E! G
                        g_Party.m_bAllowEnter = !chk->GetCheck();
1 R8 B8 u1 \/ K5 a                        g_DPlay.SendAllowParty( g_pPlayer->m_idPlayer, g_Party.m_uPartyId, g_Party.m_bAllowEnter );% N* X) V/ b4 ^8 A( p; a- c
                }$ O: T5 g' Q0 Z" {/ r
        }
+ d% @1 ~) {2 I& N' e) T#endif //__PARTY_FIND" b: G! U, W( O  R* M5 l7 x
7 M, R5 c( e3 p9 C% N
代码:
# z0 s: {7 @4 K) X1 R( oOnDraw中:) M3 c; G) M( k6 u' r
代码:
0 |+ S, ^  a$ b& \#ifdef __PARTY_FIND
6 Z) a9 f9 e2 J- }2 L5 c( i. u        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );# k/ J  i: Y4 I; \$ Q4 g/ ]
        if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )& i0 h1 y5 g" L) b/ d
                chk->EnableWindow( TRUE );
, X% X1 T. G0 E3 l& b# p* F        else- v% P& `+ _" j9 }: C- h+ F8 y
                chk->EnableWindow( FALSE );
0 i3 [' o; P: [7 W4 E5 p0 a1 n% z        chk->SetCheck( !g_Party.m_bAllowEnter );7 a" H) N+ L% ~2 \" E
#endif- g$ h6 N* o& o
. B$ W. x! O0 `
DPClient.h(public):& }- k) S% f/ t3 G9 h
代码:
2 O8 `+ |. e7 d2 ?$ ?) m' D#ifdef __PARTY_FIND2 u  J! G" f( `1 B$ `
        void        OnPartyAllowJoin( CAr& ar );
0 R7 v: D0 t' \: r, x. r        void        SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow );" T; H- A/ M/ e$ V$ ~+ i( p
#endif //__PARTY_FIND
, b! {; n* Q! d8 V8 N( q0 G5 [/ Y0 g" w; M3 a0 K' g9 y

, P; k7 }& B8 t" fWERS hinbekommt没有,请让赫克的权利。
8 N: K. A+ O  a/ K! S9 F不支持左右,所以难不...' s8 G9 K& T& D
党k的Windows NT甚至编辑它自己。
4 S" D$ m# m2 F包也,因为我不erschreiben进一步如果我你的。# D& I4 q8 K/ G8 ], h$ S- T
由于缺少Quantité k n个代码是什么升工程前。5 @1 l9 p/ k2 m, w$ D6 [1 q
如果是这样的。请发表。
- W" H+ T; J& [# m3 l3 {到目前为止,Pumbaaa, p* l8 \( }0 y0 Q
       
7 f  O3 A3 O9 `1 P       
6 s2 K" p% Y8 J" J' vMsgHdr.h& c0 \; @, Z1 w8 @0 }$ f0 W
#define SNAPSHOTTYPE_PARTYALLOW (WORD)0x8863& P! B4 e3 C. I% S2 }( O7 T! A
#define PACKETTYPE_ALLOW_PARTY (DWORD)0x88100243  N+ G; r4 h3 ^1 X
8 J. y' P7 ?- I7 ]* j7 ]
: X+ @* P. u2 u* `
) z/ i2 R7 k: S) ~/ T
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|飞飞世界技术论坛  

GMT+8, 2024-12-23 07:15 , Processed in 0.065565 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表