飞飞世界论坛

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

搜索公会的功能

[复制链接]

197

主题

203

帖子

1088

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1088
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:38:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于那些谁需要它 - 谷歌缓存FTW。 :( A3 H3 G9 N1 W' A" q3 P
如果我鼓掌纯粹是我复制错误时,D
7 [5 P) C- @1 L+ ^/ ?& j积分当然Pumbaaa。
  P* Z2 s* r$ O6 a+ C2 k: B
' e5 ?, l( s: j9 c; ]FuncTextCmd.cpp:( s4 K( l: g7 ~% w5 l% O& p
( c0 R" a; S2 d% F! m: [
代码:
0 X% L: o8 e/ |% _0 q#ifdef __PARTY_FIND* k/ Y6 {% d: p8 F
BOOL TextCmd_getparty( CScanner& scanner )
8 @6 h( n3 H- Y  S2 `{
% V3 {( w: r" |; a8 P#ifdef __WORLDSERVER, C5 K7 l1 H" W( p: D
        CUser *pUser = (CUser*)scanner.dwValue;3 @) b8 f  s2 x
        if( pUser->m_idparty > 0 )& X. P  L; ]+ B- w  S! ]" t8 |
        {
. \( e8 u: q* f: w                pUser->AddText( "你已经加入一个公会。" );& [& V& y7 G% g- x5 N
                return TRUE;
$ ?; F, Z7 ]$ l# y) M* l        }* R8 \) ?3 S$ x7 e; Z
        CParty *pParty;
6 b) c- A: J" P6 E$ D        pParty = g_PartyMng.GetPartyFree();
- E, O- G- A6 ?        if( pParty )9 q2 {; F4 n1 R. S5 d" L' }; \1 g$ I
        {/ C' y1 A" {$ K+ x( N
                g_DPSrvr.InviteParty( pParty->GetLeader()->m_idPlayer, pUser->m_idPlayer, FALSE, TRUE );
# A5 H6 o0 }" P1 ~6 l        }else+ b( t, R9 ]' @* v
        {
2 _; D* B' `! E1 ?3 r                pUser->AddText( "抱歉,这里没有任何一个公会。" );
% u1 |0 u. ]* |, C        }
% }9 t3 F4 N" a% W" P7 R: a#endif7 Z9 |% E' Q) m+ ^
        return TRUE;8 x- b1 S9 {& E; t
}
+ K/ [& k$ _  Z! y* V+ I7 R9 f7 l" y#endif //__PARTY_FIND
9 ?( [% ]+ {0 H' X3 S  e6 U/ R
6 j2 _% k" W9 E( J代码:" n9 K! X- m* ?! F) E) G4 D- [
BOOL TextCmd_PartyInvite( CScanner& scanner )
4 h# X% q- ~3 m- F# ~3 E" A, N{
, O; s0 u5 {2 j) T% m5 W" L7 O#ifdef __WORLDSERVER( p# @0 \0 n1 v
        CUser* pUser = (CUser*)scanner.dwValue;
9 {2 w: |+ d0 R' c        MoverProp* pMoverProp = NULL;! v1 z6 o: X6 [
        scanner.GetToken();) _5 p% Y7 S8 I. a1 c: v" J- }
#if __VER >= 11 // __SYS_PLAYER_DATA2 z5 Z+ J, F! g2 Q/ i* _+ H# U
        u_long uidPlayer        = CPlayerDataCenter::GetInstance()->GetPlayerId( scanner.token );
' b9 A0 @5 t6 i8 v- P#else        // __SYS_PLAYER_DATA8 W, Z% x; k3 b4 K* k
        u_long uidPlayer = prj.GetPlayerID( scanner.Token );
" t% R( W( z# f# O+ w#endif        // __SYS_PLAYER_DATA
  e# l( w9 L6 a! Z( T* g7 t) ^) }8 b: H        if( 0 < uidPlayer )* r- s' z3 ~0 Y) x4 C/ `, o4 g
        {
5 S- ^- E5 w8 _* P                CUser* pUser2        = g_UserMng.GetUserByPlayerID( uidPlayer );       
* r( I7 b0 _2 W( B) D                if( IsValidObj( pUser2 ) )
1 n# ]2 B$ B3 ]4 [1 V9 U$ E# E#ifdef __PARTY_FIND* {/ \: x- _4 |' ^9 q$ `
                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE, FALSE );
9 W- }' u" Q) G$ i; d3 C* P#else& \. \6 b+ x5 m: y
                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE );
+ A, L( F9 Y6 g. _+ @#endif //__PARTY_FIND
' C' M% O- f  v; r3 Q3 p                else" _+ s8 v3 q% p& [
                        pUser->AddDefinedText( TID_DIAG_0060, "\"%s\"", scanner.Token );# r$ Y: Q# {) ~  U% ?. G" H! c
        }
' ~( g9 G6 d5 l$ o. d+ z% ?        else+ x+ Q( o  Y! b6 a2 {1 F
        {/ d5 A: [; d$ K
                pUser->AddDefinedText( TID_DIAG_0061, "\"%s\"", scanner.Token );5 m6 L9 E0 Q  N# }* C% `8 m; B
        }
! U/ R6 ~' Q$ J9 w( R/ s6 V4 s( d#endif // __WORLDSERVER
/ g9 `" _' ^! K+ o, e/ l; t8 I0 ~; z
        return TRUE;  g, i# j, n' Q: ?9 I' I
}% E1 H  p+ d* @) w; `; f, r) a# _

' l* }+ }! H* l+ E; W3 g代码:& f, p* `9 }5 F- ^1 q2 k0 b
#ifdef __PARTY_FIND3 t1 N6 \3 h- l. N+ Q% Q9 ]
        ON_TEXTCMDFUNC( TextCmd_getparty,                                "getParty",                        "getP",                        "",                                        "",                        TCM_SERVER,        AUTH_GENERAL        ,"" )
* c) M7 s' i$ J" J#endif //__PARTY_FIND
+ T; \  v5 M  K; @- i) @: [DPClient.cpp;
* ^& u' X: K& n8 ~% r4 m0 h9 OCode:
  N5 W/ a) t0 W/ Bvoid CDPClient::OnPartyRequest( CAr & ar )& F2 c' f1 L- w3 r. _" ~( V
{' u/ c1 P' U( X; ^8 ]  V
        u_long uLeader, uMember;  M5 A5 t9 a6 R0 c: c7 g
. x  l+ X5 L4 c0 F
        BOOL bTroup
% b. W1 S8 R; c1 n% Y0 ]1 o8 b#ifdef __PARTY_FIND3 ~* Y, F/ Q7 L; R
                , bPartyFind
/ ~3 m- f; W7 L#endif// __PARTY_FIND' x- H7 Y( R1 U. e7 X
                ;
: V4 o9 u9 g# h$ F        LONG nLeaderLevel, nMemberLevel, nLeaderJob, nMemberJob;4 j8 B  X% u3 v2 Z! x0 `
        BYTE byLeaderSex, byMemberSex;
0 F; j/ u" L0 N1 X        char szLeaderName[MAX_PLAYER] = {0,};
* N: h& Z; B! _9 a/ f  w- V( Y2 C  c        ar >> uLeader >> nLeaderLevel >> nLeaderJob >> byLeaderSex;4 ^9 k( b% ~& n( O+ }  y$ }2 j( }
        ar >> uMember >> nMemberLevel >> nMemberJob >> byMemberSex;6 ]- `5 A. z4 U' K0 f3 Q) B
        ar.ReadString( szLeaderName, MAX_PLAYER );9 T4 i" x5 {' k* C- j
        ar >> bTroup
' d( h% K$ c/ o5 a- F7 j- t' ^8 q: I#ifdef __PARTY_FIND
5 ?" t1 v( \8 J0 r                >> bPartyFind. c* |+ [' F, F/ |& l
#endif //__PARTY_FIND' d( k+ B4 {/ u7 T, v
                ;) H% K  J% Z: @- y4 O& ~. p0 G
       
- \6 d3 U# T2 N" u% l) C) d        if( g_Option.m_bParty == FALSE )
+ ]  i2 o- _1 S7 w- {  s# c8 ]2 p5 P        {
! B- {3 m2 ~1 f* ~* Y" t/ G                SendPartyMemberCancle( uLeader, uMember, 3 );
/ @% {# \$ u8 \4 s                return;
4 F3 W% j! W& K; u! z* m% o        }6 |% u/ I% [1 G6 v
$ V. F$ {: f8 Y& e$ u: D
#ifdef __S_SERVER_UNIFY
7 l/ P: J. I) M3 _  N0 l5 h, o        if( g_WndMng.m_bAllAction == FALSE )
' U1 q1 F4 A! N6 N8 ~# N                return;
2 @& e$ ]; L6 R; `0 W0 Q#endif // __S_SERVER_UNIFY) N" z: V9 T/ r: \9 B

. f  W* ?6 {$ D' i$ ?+ s        CWndBase* pWndBaseBuf = g_WndMng.GetWndBase( APP_PARTY_CONFIRM );4 K2 H& K+ g# {; s0 N9 ]: A
       
2 r7 X: Z2 N5 j* W0 x        if( pWndBaseBuf )0 C" z' Z7 |; J3 R; v+ Y" G, ?
        {* B3 T" s4 J  Z4 v! E( F7 [8 I  W
                SendBlock( 7, g_pPlayer->GetName(), szLeaderName );
1 u, L% h6 p' _                return;( i0 f  |6 u0 [! u# s. D) x
        }
2 m8 D+ l2 w3 A$ q#ifdef __PARTY_FIND
4 I$ z4 y+ B* H0 s2 C* @        if( bPartyFind )
9 l& [2 y2 p/ w; C! l( L: t        {$ z* U6 F( M9 G9 p5 O' R% m* g
                SendAddPartyMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex );
( O, w6 N- ~3 i0 ?) L        }else! w/ `3 c$ e( K. O3 ~& a
        {' ?# L- X( c( n& }" S
                g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;5 ~" Q! _+ y0 Y6 t  A; a
                g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
! a( B+ T: M7 `5 n- x: E; ]" I                g_WndMng.m_pWndPartyConfirm->Initialize();3 N: o' k0 [) _
        }0 Y+ p. k$ Z; s7 K- i5 E
#else
! G- [( e4 o# B4 M  Y        g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
, C, l/ Z9 ?* }$ Q8 U2 n        g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );) J6 O( h+ N, I' S
        g_WndMng.m_pWndPartyConfirm->Initialize();
6 ^5 z8 k$ C. t& @) f+ }) K#endif //__PARTY_FIND/ g' L" g  ~( @8 ^) w
}
2 O6 S9 z" P) g$ M- Q, m+ m* T" J2 _" g6 p. w' C
代码:4 E, }7 T1 _& O
#ifdef __PARTY_FIND2 g( V  n8 U4 O$ \
void CDPClient::SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow )% w) L4 Y' ?) E& }
{
5 ?6 X4 D- G4 M' E. q& Y        BEFORESENDSOLE( ar, PACKETTYPE_ALLOW_PARTY, DPID_UNKNOWN );
! M2 u3 w% ]: K! z3 }' J        ar << idLeader << idParty << bAllow;
7 }3 b! Z" `& d8 t# i; }/ M: @        SEND( ar, this, DPID_SERVERPLAYER );/ v& C; j3 g# H+ ?+ ]/ x
$ z$ Y3 l% ^# V8 w7 O% z3 U4 I
}
: u+ q0 `; i2 \7 z( t3 Z4 E$ hvoid CDPClient::OnPartyAllowJoin( CAr & ar ). R) ]$ S3 A1 P! K- W
{
, K& P8 T2 M, b  t  k: v        ar >> g_Party.m_bAllowEnter;# X+ j( E$ C$ |1 L
}7 f8 F6 j! I3 z2 j7 T$ u6 V
#endif //__PARTY_FIND
: E# L8 r: [- F/ h, g' s; q7 A/ X; kCode:
" H2 O: A! N3 I. M0 u#ifdef __PARTY_FIND
2 f2 {% l" v' z  W; x3 h7 W                        case SNAPSHOTTYPE_PARTYALLOW: OnPartyAllowJoin( ar ); break;
2 r' P. _" R( K#endif* Y. q: L  b7 i8 N1 e

0 q; m# Q! v; k; }party.cpp:
4 ]1 x7 h8 ]2 ^- [$ A6 j  S  p6 B代码:
/ a; A8 j: v5 e; P! ?CParty::CParty()
: l- @$ s% U1 Y. V4 V6 }( o" c{
; z" g9 g2 l1 B8 K; s! D% c" R        m_uPartyId        = 0;' _. X, y/ a, Q4 ^1 c* O
        m_nSizeofMember        = 0;
& w4 r, w" a- W# N. i6 I0 I        memset( m_sParty, 0, sizeof(m_sParty) );$ y* o3 k" z- t/ }
        m_nLevel = 1;/ L+ j/ x: q8 Z8 p  K, J
        m_nExp = m_nPoint = 0;* v8 T. h2 f& }1 G% Y; ]
        m_nTroupsShareExp = m_nTroupeShareItem = 0;4 T0 j1 m: ^4 w& \/ S, I
        m_nKindTroup = 0;                                                        // ????
' d4 y0 w7 h* Y; e* x/ G. H9 F        m_nReferens = 0;7 Z2 ~" M. s7 L
        m_nGetItemPlayerId = 0;& N9 O$ _) C! U/ r4 u
#ifdef __PARTY_FIND
% X' E/ B. K" ^- ~) N" f& I        m_bAllowEnter = TRUE;" d. x" x" ?9 B: x' W0 H
#endif //__PARTY_FIND) E# G2 l0 B: z; t9 d
        for( int i = 0 ; i < MAX_PARTYMODE ; i++ )
. R' b- S/ |. h2 t5 d6 T        {$ u- `. ^( r# M5 a+ h
                m_nModeTime[i] = 0;; L* b" h5 Z2 |/ q
        }
9 O  U+ T! j* x        m_idDuelParty = 0;
% V4 L/ F# q* T: r7 p5 O5 V5 Q& q3 X#ifdef __WORLDSERVER
" y. n% Q8 a% p9 H. i        m_dwWorldId = 0;1 j1 F, R8 J8 E! x  {
#endif // __WORLDSERVER
3 `9 i, G' E0 `+ I; R8 U}& Q9 q1 |0 Y6 D0 s
代码:
. A. O2 v3 n3 |5 v/ v: Evoid CParty::InitParty()+ P. S4 A3 P5 ~% \
{# m0 l! Z: l. z- G8 Z3 Z3 x9 t
        m_uPartyId        = 0;7 D8 o- f9 d8 ^( X5 |
        m_nSizeofMember        = 0;
' e3 q# e) W2 _9 p$ F        memset( m_sParty, 0, sizeof(m_sParty) );
) |9 j& N2 {# D/ A& A$ u$ v        m_nLevel = 1;
' z7 I) A0 h& b5 j4 t  o9 Z5 v        m_nExp = m_nPoint = 0;
' s% X( k8 D1 e: D7 ]0 l# z  y        m_nTroupsShareExp = m_nTroupeShareItem = 0;0 g# \! s, k' N( P
        m_nKindTroup = 0;                                                        // ????; D, Z  X; j6 p* X% d: @* [( U7 @
        m_nReferens = 0;        6 e% ~6 R8 g  @* u9 {7 u$ c
#ifdef __PARTY_FIND
) U2 p8 W) @- |) t7 N6 _+ I  d        m_bAllowEnter = TRUE;
% X7 H5 T' P. Y* N#endif //__PARTY_FIND
/ X# n  F6 q5 ~" t# ?        for( int i = 0 ; i < MAX_PTMEMBER_SIZE ; i++ )
% d# d& |7 s+ U        {: |" u/ |% o) m2 \' C
                m_aMember[i].m_uPlayerId        = 0;9 O/ C2 W& L9 f8 r1 F( f& X( Y0 [
                m_aMember[i].m_tTime = CTime::GetCurrentTime();+ n0 j" z' D# d$ C! C9 j
                m_aMember[i].m_bRemove = FALSE;
( a" a; g7 s; Y6 A1 g#if __VER < 11 // __SYS_PLAYER_DATA( `5 e+ o; W" X" F7 _
                m_aMember[i].m_nLevel = m_aMember[i].m_nJob = 0;/ ?, g  }1 T3 u, g
                m_aMember[i].m_szName[0] = '\0';
/ @& \5 H  Z7 L# g#endif        // __SYS_PLAYER_DATA- s( a& @, T/ |" M
        }
3 k: b7 u2 r. I0 n" D/ p}
( S+ ?; r; R2 T8 X! P3 e代码:
4 {) Y' C" c( l  t/ h#ifdef __PARTY_FIND
+ {' Y6 M* N4 A3 f" ^$ a$ `; t' U. ~CParty* CPartyMng::GetPartyFree()
3 C5 }0 X& ?! r. x' B4 Q. u% b{
, C- r# l! {9 y$ l4 R& \9 L        CParty* pParty, *pPartyTmp = NULL;
5 d& |; W4 }  {$ r  T: r8 O        if(  !m_2PartyPtr.begin()->second )  p, Q2 C/ S2 |: D/ |
                return NULL;# H- f. \! A( N! A5 \
        BOOL bRan = FALSE;+ a% @4 U7 a' j, \# k
        DWORD dwRand = 0;
1 W' x3 G, k) ]        if( m_2PartyPtr.end()->first >= 1 )
7 [: Z2 k( K0 |                DWORD dwRand = xRandom( m_2PartyPtr.end()->first );7 n" l  T8 J$ ^" \% r8 k# g

9 b$ r" w; b5 n        for( C2PartyPtr::iterator i = m_2PartyPtr.begin(); i != m_2PartyPtr.end(); ++i )
. g  d- i/ B9 E2 J' B+ ^. ?3 ^, t        {3 ^4 D5 X0 W- @+ {" Y1 y5 G3 F
                pParty = (CParty*)i->second;
2 P& W4 H) z3 e4 w                if( pParty && pParty->GetSizeofMember() < 8 && pParty->m_bAllowEnter )
, U3 w: x% T$ p+ q5 M- C1 M                {
4 B' b& |! n4 T4 z3 E; d8 J                        if( i->first > dwRand )
- c( `3 Z6 s1 X, x3 d& J7 `, _4 {                                return pParty;
" v1 f1 V4 K- D" @- S                        else" |8 o$ O3 N: h6 N
                                pPartyTmp = pParty;! Q# D6 Q' [/ _: i: e$ U9 b; |# N
                }& M. g  g0 O; ?7 e/ m. y! b
        }
+ |. A+ \3 \8 Z+ ^7 w        return pPartyTmp;# f$ L4 ?2 _  t, y. b7 p! i$ P
}
1 v; t% ^8 m8 F- R+ d. `#endif //__PARTY_FIND. g2 b: e( S: l. i- u1 G! }( j

' q0 A6 u* D! i$ @) GDPSrvr.cpp:
6 Q" D. S5 p8 ?8 X! k代码:9 H) a1 }; }( H2 }' f8 K$ `) P4 @
#ifdef __PARTY_FIND6 y/ R+ |+ g1 N) G0 t/ M0 w7 `
void CDPSrvr::OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )$ n# S  _$ L$ @2 B# z7 b' S
{5 m% q8 r* p- l; C; b4 j' G
        CUser *pUser = g_UserMng.GetUser( dpidCache, dpidUser );
3 g7 F) ~! V) G, ~        if( IsValidObj( pUser ) )
/ O2 T6 ]& \6 }2 w+ l. m& v; Y        {
4 }8 J7 d* {5 G4 b                u_long idLeader, idParty;
  N$ n, b7 A( j                BOOL bAllow;
* x4 _& I) R  c" j: x                ar >> idLeader >> idParty >> bAllow;
4 ^8 f; z8 ^" g; s- M' |                if( idLeader != pUser->m_idPlayer )
2 F' x4 u" B& R. s                        return;
! i+ ^' p" c0 w# l! n                CParty *pParty = g_PartyMng.GetParty( idParty );
, g- q  S, u; H3 O                if( pParty && pParty->IsLeader( idLeader ) )
+ g: P/ h6 H. g. x& O, L( V                        pParty->m_bAllowEnter = bAllow;+ y9 ^5 X6 p, O
                else
) J# g- ]# X+ b, U2 J                        return;0 q. ]# g( F2 Y' r5 _
! C! f. L- C, z) W
                CUser *pMember;0 ~+ u7 F/ J7 V5 t7 _- O! p
                for( int i = 0; i < pParty->m_nSizeofMember; i++ )3 Q  P! o. R0 o  _- S' h5 }8 }
                {# j% K2 q* M  M0 v5 \3 a/ R
                        pMember                = (CUser*)prj.GetUserByID( pParty->m_aMember[i].m_uPlayerId );3 v: m1 t/ n! U% g" p2 U4 h9 B0 s
                        if( IsValidObj( (CObj*)pMember ) ): k$ U( ?% _# t3 Q5 B! j" H- ?1 V
                                pMember->AddPartyAllowJoin( pParty->m_bAllowEnter );' E# P7 P6 o- v& K/ \
                }
: h! {1 s; b0 C3 T9 E        }* o! W  a8 Q7 }: N7 }% c0 b
}5 J8 N- h# {, {: s4 Y- S/ t
#endif //__PARTY_FIND0 H/ v. ^7 y  t% X4 |0 r

5 A- g$ d. T# e6 D& V代码:/ t- ]" b6 j, M& h
#ifdef __PARTY_FIND1 d$ i7 L1 [& G' l; w3 [3 f
        ON_MSG( PACKETTYPE_ALLOW_PARTY, OnAllowParty );- X7 `! W5 T, q2 S  ^
#endif //__PARTY_FIND
3 x1 v7 L% ^+ f
, l8 N  L* O+ Kvoid CDPSrvr::OnPartyRequest( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )( n6 j; q/ g" W$ m
{
5 O( S7 V/ [1 I7 Q- A! k        u_long uLeaderid, uMemberid;
; Q  |4 M" |& H* _2 [+ t        BOOL bTroup;5 }  K* w8 t3 D! c
        ar >> uLeaderid >> uMemberid;" f" k& J4 V+ |: J) ?
        ar >> bTroup;3 @5 o" W- S- S; L* n" J

7 @. H: i0 b- a, Q# N        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
8 j% |$ T8 ]. @& N/ b8 e; K, n6 R        if( IsValidObj( pUser ) && pUser->m_idPlayer == uLeaderid )
; D# r4 N1 v5 _# D#ifdef __PARTY_FIND
5 ^$ y+ e6 C" q                InviteParty( uLeaderid, uMemberid, bTroup, FALSE );
* W6 S) K* I' [- H#else
: \! J1 C! a# g                InviteParty( uLeaderid, uMemberid, bTroup );! i( y" i. n/ o) W1 Y- X; w2 I
#endif //__PARTY_FIND
3 L4 o" \, H8 d2 S. P* u! y}7 N$ G' F- e: P3 p2 o
8 `8 d/ A, w9 j* L" |, e
代码:9 b- j" K2 I# b9 D9 f1 G
#ifdef __PARTY_FIND; r2 ~2 G* X* d" n% n  w% W
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind )- j9 y5 u$ }3 h5 K  B
#else. z5 P! f4 f. @: Q/ p( l4 e+ c
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup )
, x. g5 b6 G) J8 q  I#endif //__PARTY_FIND
$ g9 [9 i% w8 [$ ~{3 ^8 {/ m+ g" B3 C) Q3 Q4 S* k
        CUser* pUser = g_UserMng.GetUserByPlayerID( uMemberid );# |- h9 v( l: Q
        CUser* pLeaderUser = g_UserMng.GetUserByPlayerID( uLeaderid );! C% ^# s+ _: S: P
        ' i: s/ v* R! a& N* C7 ~
        if( IsValidObj( pLeaderUser ) && IsValidObj( pUser ) )
. h* H# T9 G' a+ P; ?        {9 {+ g  Y% E, C
                if( !pUser->IsAuthorization( AUTH_GENERAL ) || !pLeaderUser->IsAuthorization( AUTH_GENERAL ) )- k# N- y) z) A! K6 }0 e; c
                {
9 Z+ r* X8 @& E* m, ^% _" i                        if( !pUser->IsAuthorization( AUTH_ADMINISTRATOR ) || !pLeaderUser->IsAuthorization( AUTH_ADMINISTRATOR ) )
- w8 z" \- Z8 Y( m" f; e" r                        {9 w3 ?  {- S- h+ P/ c
                                pLeaderUser->AddText("没有足够的权限。");" y: `( y+ ^$ F! A
                                pUser->AddText("没有足够的权限。");
: D! _6 J+ K, F2 L$ h" k+ J* `                                return;6 d2 Z5 Q1 o& E! }
                        }) K7 X/ @9 b4 y: c! v
                }( V# l8 \+ i1 Q' V$ P8 }' s, Z
                // ???? ? ??? ?? ????.
- O' X  Y" F, T  l  U3 B' p9 `                CWorld* pWorld = pUser->GetWorld();- a7 Q+ s, x/ N) Q
                if( ( pWorld && pWorld->GetID() == WI_WORLD_GUILDWAR ) || pLeaderUser->GetWorld() && pLeaderUser->GetWorld()->GetID() == WI_WORLD_GUILDWAR )& F" S0 [7 j& B) ]* ~( ~- N) L
                {                       
' _9 s) K- s& ]) E                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );
: R; |$ b: I1 z" q$ ~                        return;+ X; i% A8 t4 ^: F2 U
                }) M5 M( {; w7 l  B2 i/ W
#if __VER >= 11 // __GUILD_COMBAT_1TO1
* a  C2 ~( T+ b; Y2 f; e6 `6 P                if( g_GuildCombat1to1Mng.IsPossibleUser( pUser ) )7 c  v, F- w4 a" D+ h
                {% G  E7 m0 Z) G! K
                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );9 Y; k5 U# e/ K" v- R
                        return;
; G9 b+ c' [- I' Y  q                }
$ V" d' X- V6 V: M#endif // __GUILD_COMBAT_1TO1
7 p* M2 l0 D8 g6 u& c8 M& X# r9 u9 E4 Y2 T; H0 H$ p
#if __VER >= 8 // 8? ?? 061226 ma2 _, h9 P0 B/ {# d# y- V
                if( 0 < pUser->m_nDuel ||  0 < pLeaderUser->m_nDuel )$ E& J! c. K% @. S
                {6 B: z; d7 q- g" y& s4 q
                        return;( m1 F# a* v* a# I6 D7 |5 q
                }: M' L5 R% `3 L1 ?+ Q
#endif // __VER >= 8 // 8? ?? 061226 ma/ t0 y( H& _  A/ ^7 Z/ Y( m! O
               
) g6 v1 `) l+ h                if( pLeaderUser->m_nDuel == 2 )
2 |# f8 V* H" K, f- N                {                        . q! U+ ?$ P8 t6 K1 C8 L4 v0 n
                        pLeaderUser->AddDefinedText( TID_GAME_PPVP_ADDPARTY, "" );                // ?? ???? ?? ???.
9 c3 N/ s. C! O/ u% g: V6 [                }
2 a4 M! [5 w- ]                else
# h, C( I1 m  y# k                {9 s/ I! X% o# e- k" D
                        if( 0 < (CMover*)pUser->GetPartyId() )        // ?? ??? ???
' K4 l6 M$ _# e+ W% L: T, P% `                        {
9 X* z+ x4 r4 z" v                                pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 1 );
, v5 x; d- Y2 S/ V- _6 C                        }7 k% q$ }( _2 M1 p
                        else7 X+ {, X- N, K3 |! P" ~( w
                        {. j# }& B" b8 L: a
                                if( pUser->IsAttackMode() )1 C/ \( i( E( w
                                        pLeaderUser->AddDefinedText( TID_GAME_BATTLE_NOTPARTY, "" );
8 n2 f5 m2 {3 I) ~" U8 F/ a                                else
6 h7 Q" H3 d& b( n4 R. Z#ifdef __PARTY_FIND+ [& w: ]1 T) Q4 }3 v7 u) J
                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup, bPartyFind );
3 O& V1 k; b" Q% d" W! I/ K#else6 U! x, Y& c$ J! P: V) S+ ]! \
                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup );& A" M2 a* D8 p  g. l
#endif //__PARTY_FIND
: e0 B9 Q4 H7 j' j" K                        }
* A' t6 q% A$ j  J/ r                }
0 ^# d- }( S& P1 I. i        }) k3 W3 l& V% E9 A
        else
6 ?; w% q: k$ s" A4 ?- P5 G        {
2 j& c) q+ D( Q& h! A3 d                if( IsValidObj( pLeaderUser ) )  q; M& }& Q/ H$ n3 ]6 x
                        pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 4 );' J5 t4 u* C( q. Y. ^& n
        }  [+ [9 A  U/ W: p: O
}
# O* K" V* h0 c& {; N4 ~! O
0 ^3 y4 R4 S. Z; \# p' X+ D+ @User.cpp:" ~- J) ~/ \0 e0 b- E- R2 s" Z7 N
代码:
% _$ q" J) y4 ?% o5 A#ifdef __PARTY_FIND; W" S# m$ B# l2 X1 F
void CUser::AddPartyAllowJoin( BOOL bAllow )( P5 R% s1 }3 q; X
{. v8 G5 g) I7 F$ _7 l
        if( IsDelete() ) return;7 f( p8 p, b& i' @! g
  W9 \* K% B4 y0 c9 B
        m_Snapshot.cb++;
' I* p& ^+ A1 q5 U        m_Snapshot.ar << GetId();
/ P% i7 t7 q4 U! J1 i        m_Snapshot.ar << SNAPSHOTTYPE_PARTYALLOW;: g: s7 G# c& \3 M) H# k
        m_Snapshot.ar << bAllow;
% W. w$ T8 f5 e& z' h}" c2 m7 Q5 l% V; N
#endif //__PARTY_FIND
5 a5 e9 q1 F' a7 i4 o( K. m8 c# r6 u1 y% w& Q
代码:+ r! ~# w4 ^( n( I2 }& ^$ v1 g
#ifdef __PARTY_FIND
* C. a* H: T0 E# a0 l0 Wvoid CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind )
2 q7 |& y( ~1 ~2 D) ]# A8 H#else  R6 d0 S0 P/ Y+ V
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup )
5 d- ^) O+ j9 @1 O0 U2 _#endif //__PARTY_FIND0 E. o3 I) X3 r: F
{
( X: ?& d% h" l5 L0 J/ ~7 p        if( IsDelete() )        return;3 i9 v! U% u6 {, s  R! G
        6 x8 B2 M; ^4 g, c
        m_Snapshot.cb++;: P6 d1 Y  J' B9 ~, K
        m_Snapshot.ar << GetId();
- F) C) Z$ v) n, ?) Z9 T" L        m_Snapshot.ar << SNAPSHOTTYPE_PARTYREQEST;6 U- i( y1 Y# G. Z
        m_Snapshot.ar << pLeader->m_idPlayer << pLeader->m_nLevel << pLeader->m_nJob << pLeader->GetSex();# K; e6 l8 F1 u$ n
        m_Snapshot.ar << pMember->m_idPlayer << pMember->m_nLevel << pMember->m_nJob << pMember->GetSex();
1 k# h) V+ {' P0 g/ e        m_Snapshot.ar.WriteString( pLeader->m_szName );  J" o* f  X4 i7 ]- V! a
        m_Snapshot.ar << bTroup
' C0 v$ g/ V  Z0 A# J: i7 S" X, ?#ifdef __PARTY_FIND3 x2 {' }5 b; Y) N4 I5 L0 S
                << bPartyFind, h  E; ]% C1 I2 F: O
#endif //__PARTY_FIND5 e: w, P- v  o+ R; c
                ;# o. z6 G6 r) ~, ~
       
; ?6 w) t: N! {+ P# b4 o! \}6 U4 G% _2 I- `* {7 ^/ A

  q6 ^* i; _6 Z6 \# aDPSrvr.h(公共范围PLS)
4 A" d) s3 B) L$ J代码:
1 S) v! h0 _% g#ifdef __PARTY_FIND
# E" g6 {) j  p$ ]' C# ^" n" Q        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind );
1 H/ d7 {; |+ j' i* m- S#else
- G& N5 ~; [$ t2 g- `        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup );
) h& l/ o# `0 j. L  M8 q! z#endif //__PARTY_FIND
$ ]3 i4 h$ k9 X& \: g( J2 M+ p( t8 w3 I! o9 V1 J) p4 T
代码:
1 P+ z, F" z& w# e# H6 u8 U#ifdef __PARTY_FIND7 H5 I3 }! `* n' a. W2 g1 w
        void        OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );0 n' y6 Q% a, k
#endif //__PARTY_FIND; q4 G: x9 ^+ R# |  h
5 M* u2 ?% ]) w2 T9 |
User.h(以及):9 x/ b1 z- {( m! I
代码:! Y# P; f& z8 ?) V% N( d
#ifdef __PARTY_FIND
5 R2 i" b& H( |3 d        void                        AddPartyAllowJoin( BOOL bAllow );; w0 j- r: j3 Y- r3 M
        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind );7 `. N, k( L" q. A& d
#else
8 W) G: a* F/ r8 P        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup );5 H! v% v- Y0 L' g
#endif //__PARTY_FIND
* m6 j' @- X2 K# u+ g3 B5 u, d/ n( M5 V7 @& A3 u9 e
party.h:
9 A' D" x6 G7 y" p  p$ d0 k4 v代码:# j! y. A* T/ a& y
#ifdef __PARTY_FIND5 Z6 l6 W" n5 Z& \: c5 N
        BOOL        m_bAllowEnter;
7 y: [. ?% S6 W5 g9 E  \$ X#endif
( f* S3 E3 L, g, H
, a4 R, b) ?3 x  F1 F) y1 H代码:4 M# Z) z* s! a. q" m* e4 e
#ifdef __PARTY_FIND) a% c7 H, b5 }  z/ s  E3 P
        CParty* GetPartyFree();- }0 z3 t" `& [! X
#endif7 |; ~6 y" B' Z( E' a

- F7 ]0 L+ t2 P. d; e" B- ^5 [WndParty.cpp:
; S& k% e7 J/ h6 v/ UOnChildNotify:
; k4 W- `" u$ c代码:4 [) Z6 n3 G' z3 p
#ifdef __PARTY_FIND" u9 Z9 X9 h5 X
        else if( nID == WIDC_CHECK1 )
% g5 n% T4 i6 w. W        {
# n* d9 m9 h' H* t+ d3 L                if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
; j$ p+ Z7 h0 I4 w3 N/ q                {
) `' Q" ~8 l* I; V! i5 T( R3 o                        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
1 m5 H$ r; ~3 `4 y                        g_Party.m_bAllowEnter = !chk->GetCheck();
& U# v5 C5 c+ u                        g_DPlay.SendAllowParty( g_pPlayer->m_idPlayer, g_Party.m_uPartyId, g_Party.m_bAllowEnter );
2 }2 ~6 M4 A: J; l( M                }5 a+ n) d$ `2 W* u  l
        }
3 c1 j) x1 Y( e1 F- l& ~#endif //__PARTY_FIND! C7 e" \! G$ F" v4 J" s& N" S: d
( R9 F5 L  f# v+ g6 i
代码:
. Z, G5 @8 Z4 o; c" {OnDraw中:
' f4 t3 y& {7 S) o4 k  F0 Q代码:
- ]# U% n+ i- s/ t+ _9 a' s. J#ifdef __PARTY_FIND/ {4 g* r, a1 B
        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
0 ?, S9 R/ `" T1 W% W8 w4 O  \        if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
- U8 H5 r, s( j% }2 F" D                chk->EnableWindow( TRUE );% u- N0 F% M7 l
        else, J, f! K1 |( a' z
                chk->EnableWindow( FALSE );, J0 x& V' T; r
        chk->SetCheck( !g_Party.m_bAllowEnter );9 a. v( i  b/ ^, V; E4 Z, F+ C. x) U
#endif
' n$ T: Q$ [/ l% B
; l1 ]9 s6 w8 ~, |DPClient.h(public):
. e7 H& M2 Q7 l7 }) z5 K& e代码:4 x- y, C/ T6 t" l; [
#ifdef __PARTY_FIND
+ f6 ?0 |7 [$ R/ `% C5 t# P- t8 R        void        OnPartyAllowJoin( CAr& ar );+ o5 `" u5 `1 ?) _& F0 ?( C6 }
        void        SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow );9 w7 v+ j* S5 x
#endif //__PARTY_FIND
2 ^& Q3 [3 p9 |: M  }6 \# g; j5 X7 u+ d8 T/ q
5 y) {6 F  z5 m$ k
WERS hinbekommt没有,请让赫克的权利。$ \3 L- j) ]% z( Z4 a
不支持左右,所以难不.../ Q0 `4 z5 P; G+ P
党k的Windows NT甚至编辑它自己。
8 k1 W) v$ j0 P8 j; D% Z4 l包也,因为我不erschreiben进一步如果我你的。2 y+ Z  g8 }1 K# o- P7 ?
由于缺少Quantité k n个代码是什么升工程前。" v! T" e5 x1 N: K3 V( d" i0 E. x
如果是这样的。请发表。5 ?  r$ ^+ h: Q; D1 e
到目前为止,Pumbaaa# M9 i& b4 e/ h: l
        " t/ u& k" v+ F" P4 M0 ^/ d$ j
       
3 [% G! |4 ?. |& o" oMsgHdr.h1 i( g4 F! m1 ~7 K$ Z+ Y" r
#define SNAPSHOTTYPE_PARTYALLOW (WORD)0x8863
. D0 [6 o" n! n1 N# ^4 Z#define PACKETTYPE_ALLOW_PARTY (DWORD)0x88100243+ l9 c  Y' k! ]' z- F8 q5 K

3 p0 C8 z8 t2 Z
" K- B7 c) |! P5 N% U' @  d: U
! i1 P& J5 }3 \" x; m
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-23 12:05 , Processed in 0.113529 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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