飞飞世界论坛

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

搜索公会的功能

[复制链接]

197

主题

203

帖子

1094

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1094
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:38:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于那些谁需要它 - 谷歌缓存FTW。 :9 B" G( O( [) U0 U0 p4 u
如果我鼓掌纯粹是我复制错误时,D/ n$ z$ ~1 v" j/ p3 c- o  _
积分当然Pumbaaa。3 d) ~+ p7 P. ]. I
* ^0 X% }! E% r  b2 m9 j
FuncTextCmd.cpp:
, s/ r0 k; p+ f+ [5 Q/ l5 H' [/ n6 l* q7 ~: @
代码:7 X; \) P2 P: w* ^7 S
#ifdef __PARTY_FIND( x8 M% L5 U$ D  H- D
BOOL TextCmd_getparty( CScanner& scanner )+ I, L$ H8 o3 u
{
0 R; h8 G* Y0 i& ]. `2 W) b* ?7 e#ifdef __WORLDSERVER
& Y5 y) d5 {* b: G4 R        CUser *pUser = (CUser*)scanner.dwValue;
5 F7 I' R' v. ^- ]% k; N% @8 s        if( pUser->m_idparty > 0 )& Z( Q# S; j& R$ F) j) P
        {% b6 K  V' I9 i) D$ s
                pUser->AddText( "你已经加入一个公会。" );3 g7 I1 z9 ~% y7 c: y% @( b
                return TRUE;) R( C1 d$ g- Y+ w2 [# f6 ]% Y
        }
0 s" _! v) w4 C* F5 R        CParty *pParty;3 P7 ~' _8 x' G  I- J  r, g
        pParty = g_PartyMng.GetPartyFree();
4 r5 e$ |" ^7 ~  U2 n        if( pParty )
, M; `: V1 `' {, m" V* \& z5 U7 P        {0 @% y! G% u6 z3 B" ~
                g_DPSrvr.InviteParty( pParty->GetLeader()->m_idPlayer, pUser->m_idPlayer, FALSE, TRUE );" |7 T% x0 n2 V2 u3 z6 L/ d
        }else! Z5 N( a( e8 T! F9 |
        {
& u: h+ l4 S5 U                pUser->AddText( "抱歉,这里没有任何一个公会。" );9 g" \5 F& }% y/ s) D
        }
3 |4 s4 g) x  u( q  u: [#endif
3 E; m! C* i" c. N        return TRUE;( }( V1 s$ j! M
}
8 D; R! h- I& o! V1 h2 I#endif //__PARTY_FIND
: w' X$ \1 c% x2 P7 N' E
4 S0 }0 m0 i- ^1 g5 A, c代码:! t4 a6 r; `/ J0 ~8 T. A
BOOL TextCmd_PartyInvite( CScanner& scanner )$ l: m' m" y! u5 v2 L1 P. S( q
{
/ |, t' ~  b- {9 p7 u- e# {) j5 u#ifdef __WORLDSERVER
$ V" @& C/ d6 y& N+ F7 p  e$ n        CUser* pUser = (CUser*)scanner.dwValue;/ {: F0 o' X- z+ h6 d
        MoverProp* pMoverProp = NULL;( x& w( a/ J4 }; w! K4 _5 }
        scanner.GetToken();
  @' [. V) r5 E9 Q# ~3 L  `: F0 Y#if __VER >= 11 // __SYS_PLAYER_DATA1 J1 e3 Z  [3 a8 K/ j
        u_long uidPlayer        = CPlayerDataCenter::GetInstance()->GetPlayerId( scanner.token );! l9 b( |5 M# b
#else        // __SYS_PLAYER_DATA' p: R1 {0 @4 k% F# R) t3 Q9 z: v
        u_long uidPlayer = prj.GetPlayerID( scanner.Token );
) I2 f. e3 v- {: C* E% s$ j#endif        // __SYS_PLAYER_DATA
4 N: z& U  I) S' h        if( 0 < uidPlayer )6 K  X% [; \# |' {
        {3 f. |3 P; c, P8 J9 n" r- P. ?1 ^- g, Z
                CUser* pUser2        = g_UserMng.GetUserByPlayerID( uidPlayer );        ( L2 |* {8 Y' W
                if( IsValidObj( pUser2 ) )0 o# @7 ^- K3 D8 a+ B. ]5 X! f; h! X
#ifdef __PARTY_FIND
. j. P! V3 M& ~* Y+ S  i                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE, FALSE );
) [8 Z0 Q% w+ p$ w3 a- C5 {' Z# K% N#else# J6 \: h" H: @6 K' u" n7 y8 l
                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE );9 i/ z, O( w: ?, y
#endif //__PARTY_FIND3 N5 E: N& {( S: W
                else! p3 E9 I, ?# S. ]2 s# \% s
                        pUser->AddDefinedText( TID_DIAG_0060, "\"%s\"", scanner.Token );; ~+ F7 a$ }1 ?! J
        }- e' a9 T( i) A. W: a
        else
* k! E% T+ d/ [& F% z1 x" Q, w8 R        {
3 o$ V% U4 h- D4 X' ?% ]                pUser->AddDefinedText( TID_DIAG_0061, "\"%s\"", scanner.Token );
: b( Z1 q4 @* Z5 n        }
8 j4 q3 l; L! ?# H5 h9 J, u#endif // __WORLDSERVER' R, `: I1 K3 s+ R$ ?

- r- M8 r! g/ ^/ L# S        return TRUE;
+ e6 ~  w8 a5 w" Z  w}
& a, G. Z% J/ x5 x2 J: X& x1 ?- p3 \1 @/ W+ d& k# P2 \- }
代码:7 L; @; ]2 `9 K; }# U) J4 e" o
#ifdef __PARTY_FIND; e# n- \  T1 m( s3 K' X2 L
        ON_TEXTCMDFUNC( TextCmd_getparty,                                "getParty",                        "getP",                        "",                                        "",                        TCM_SERVER,        AUTH_GENERAL        ,"" )
1 b4 D6 o: Y  H" M7 X7 E$ j#endif //__PARTY_FIND. w" _: _* ^4 @3 a* r8 [
DPClient.cpp;
& h3 E7 B; y( {$ F' pCode:
: e" G0 h3 R( zvoid CDPClient::OnPartyRequest( CAr & ar )( a- v/ w+ s7 q/ l+ N2 N7 p
{" z  O/ {" g- k! b
        u_long uLeader, uMember;
, |$ [* V/ N4 o$ ~5 t' b/ t, P2 p; l6 J2 F) Y
        BOOL bTroup
6 ?3 F+ _3 S. D3 t7 t, C#ifdef __PARTY_FIND
- i* ]  w" c6 z0 x* @: S- G4 i                , bPartyFind
4 y6 A( I$ j. j. \( T! F#endif// __PARTY_FIND5 j0 y3 V8 M2 l
                ;
, W  j9 B: v. D, j; w  B; |. a        LONG nLeaderLevel, nMemberLevel, nLeaderJob, nMemberJob;
; ~& Y5 p& r* U( w. a4 s+ h4 X- c        BYTE byLeaderSex, byMemberSex;
% ?8 I3 R. E4 y4 |, y        char szLeaderName[MAX_PLAYER] = {0,};/ e; d( j' q* Z5 P6 n( q! t3 u
        ar >> uLeader >> nLeaderLevel >> nLeaderJob >> byLeaderSex;
* R) q7 g) w/ w9 n& @        ar >> uMember >> nMemberLevel >> nMemberJob >> byMemberSex;$ u- A6 u4 }  ~* [' u
        ar.ReadString( szLeaderName, MAX_PLAYER );- W/ O) v" G  y/ A
        ar >> bTroup
+ I% f( b2 Y1 a' G" k% ^; S#ifdef __PARTY_FIND/ F7 B$ Y1 V& x  W/ o( p6 w
                >> bPartyFind
: g4 G( r' k2 l2 Y#endif //__PARTY_FIND
/ J; p% u+ h2 t1 \; ~) t" w                ;$ S- ^! I0 Y: [- n: I3 c
       
/ e0 y" N$ S6 c& n, F        if( g_Option.m_bParty == FALSE )+ N7 p* }% g, B$ d$ r; b- K& z
        {
0 ^$ d0 b; [+ `                SendPartyMemberCancle( uLeader, uMember, 3 );0 j+ N" D9 l" `0 f$ `6 N' \
                return;
: s) l8 m$ b& ^6 |        }  j: O1 t6 P' G3 a7 C
4 u' M) R' g" ^
#ifdef __S_SERVER_UNIFY/ Q* _( t( y+ G, r3 _
        if( g_WndMng.m_bAllAction == FALSE )' \0 w8 L1 z6 H5 J$ H
                return;
9 _( C4 d: x" p" c$ [#endif // __S_SERVER_UNIFY3 e( |4 R# S* q: B' R
3 F' g- L/ \6 ~4 R! j  M5 M
        CWndBase* pWndBaseBuf = g_WndMng.GetWndBase( APP_PARTY_CONFIRM );' J# H# J. j) Y" [) z
        ) j; |7 d6 h- S+ D! a
        if( pWndBaseBuf ). a, f+ k6 C/ M7 D- J2 ~% v
        {
0 H2 p3 e  h; u* E4 x- V0 e                SendBlock( 7, g_pPlayer->GetName(), szLeaderName );
9 n& b$ ?3 l7 M0 d# C4 O. a" P                return;
4 d2 T" b, N8 T+ E        }
( D0 Q& S. ?& i; F#ifdef __PARTY_FIND
5 B/ Q; P: C" v: N        if( bPartyFind )
  E; \  t* |/ N        {
; e$ i# h8 H8 m( B                SendAddPartyMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex );
  g9 z4 G# F$ k- p% ?4 s2 F, e        }else0 `' c+ X* |- Z% c5 H
        {
! z3 \4 b) M! Z2 a) L0 E                g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
+ s% t# r3 J% j$ r" V                g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );2 q2 v5 ?/ a- y$ x; j% I! s. u
                g_WndMng.m_pWndPartyConfirm->Initialize();5 w5 W8 `7 d3 s
        }/ P& B2 X: t5 Z+ ?! ~$ ]6 }5 D
#else% l5 g2 ?) k' y2 R) ?7 K2 r7 f
        g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;% Q% W; W1 R; P' E
        g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
! J; A) Z- X. ^* l# x: z* e        g_WndMng.m_pWndPartyConfirm->Initialize();
/ a9 Q7 n, `9 O& x* n2 T0 |#endif //__PARTY_FIND# n  x& O$ k& j9 W" q7 p% c
}
, N# V9 r% c, n  t/ X. S. w1 v1 o5 f4 ^" s* u8 `* ^: w4 y
代码:
! R8 }5 N& E2 S5 o! G8 t- g#ifdef __PARTY_FIND" _! M( ~+ ?6 T* O" k1 f) T1 d
void CDPClient::SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow )% h  n: E5 G" ^) L- |
{+ y: J1 L. f; J2 u7 Z
        BEFORESENDSOLE( ar, PACKETTYPE_ALLOW_PARTY, DPID_UNKNOWN );
9 m( g$ Q/ j7 Y) |) X  H        ar << idLeader << idParty << bAllow;2 o1 M' D9 K! f" U% i& N
        SEND( ar, this, DPID_SERVERPLAYER );" X; g4 {/ N2 ], B3 O( ~' y
- y! G( |4 i, Z- V# g' G6 I2 G
}
4 K! @7 u: }7 B" B& B9 C5 G* ]void CDPClient::OnPartyAllowJoin( CAr & ar )
" [7 ~6 K/ p3 n( V1 a7 x" N{
+ E1 ]  p, C$ j2 z! a6 c% f( e, y; O        ar >> g_Party.m_bAllowEnter;
6 Q! p4 h4 L6 |}
9 H" L; |3 a; B6 S. n#endif //__PARTY_FIND! H" r/ }4 b1 |0 Z
Code:$ P* A; \+ o# O4 h
#ifdef __PARTY_FIND" {% x2 C! }8 V
                        case SNAPSHOTTYPE_PARTYALLOW: OnPartyAllowJoin( ar ); break;) c% x$ V4 t) Y6 {5 f/ k1 c
#endif' C% H; u) _( ^+ B3 @* w
4 K0 r. E3 t( H: N! p  N
party.cpp:
+ I( q: }: p- L- C1 o( g- m  K* i代码:
0 |2 U7 u$ t5 qCParty::CParty()0 w- f& n3 @$ x7 T, Z
{5 P; d1 n3 T1 F4 W5 T3 k& N
        m_uPartyId        = 0;
; O( S4 @4 a# g( y7 l1 {$ R        m_nSizeofMember        = 0;
5 g6 v5 a" M" g* |* a! ~& J        memset( m_sParty, 0, sizeof(m_sParty) );4 `& [1 X$ Z0 a4 ~- x
        m_nLevel = 1;* R! k6 @) D! O( W8 k* H
        m_nExp = m_nPoint = 0;+ H  I& S/ x3 R; U% m8 q7 |
        m_nTroupsShareExp = m_nTroupeShareItem = 0;& y( W/ ~( z" n& D+ J
        m_nKindTroup = 0;                                                        // ????
) ^* A+ `  q& ?; m* X0 `1 I& B        m_nReferens = 0;
% M  T5 G3 T4 o6 Y3 v8 \5 i' Y        m_nGetItemPlayerId = 0;8 I8 {1 p2 h$ ~4 f: i7 |$ z
#ifdef __PARTY_FIND
) F8 U  D1 o% c7 R7 t3 p        m_bAllowEnter = TRUE;# R8 U: V0 t$ ^% m
#endif //__PARTY_FIND
4 @- I& d. o4 F. ^        for( int i = 0 ; i < MAX_PARTYMODE ; i++ )
, l9 a, q$ N" v+ {        {
7 J. y# H& y. i5 T* U: w                m_nModeTime[i] = 0;% e2 [: q" Z6 V
        }+ \8 D2 i1 L+ y' D/ b
        m_idDuelParty = 0;* h7 `1 Z3 v. n, \; v$ l0 W+ B
#ifdef __WORLDSERVER
- Q+ N! u; L4 P4 z+ }        m_dwWorldId = 0;
3 o5 J+ J6 L; A; B6 B#endif // __WORLDSERVER
* P, H4 b  g- L, X& z6 g/ b8 _}
. [- N% _( t3 s# o+ B5 F代码:& ~4 Z/ O0 d4 w9 g
void CParty::InitParty()
5 c- ?% o$ _1 G- s{
! E: t& J* M" N9 q        m_uPartyId        = 0;) o/ c- s6 s. r& e& p
        m_nSizeofMember        = 0;4 M. S. M; D- m6 r
        memset( m_sParty, 0, sizeof(m_sParty) );$ ?6 }8 y) h# m+ I- @
        m_nLevel = 1;- \: g' N+ X; {+ f
        m_nExp = m_nPoint = 0;
6 J$ N* \$ ^# s8 u/ ^1 ]) p9 I9 O" q* G        m_nTroupsShareExp = m_nTroupeShareItem = 0;
6 p, V3 V  c$ _( \6 V( w        m_nKindTroup = 0;                                                        // ????! e- [7 ?% m7 u& L1 F
        m_nReferens = 0;        ; U. @. ?# E/ Y4 S( {2 n
#ifdef __PARTY_FIND( g$ a+ K& R: y( s/ C  k5 B
        m_bAllowEnter = TRUE;- Z, u% P/ b' F6 \
#endif //__PARTY_FIND
% j# A4 o8 b+ A' Z* H( T, o        for( int i = 0 ; i < MAX_PTMEMBER_SIZE ; i++ )0 H' Y7 [$ U, u  t  f: p' j
        {4 ^4 v9 t' {  T2 f5 D2 m9 r8 [
                m_aMember[i].m_uPlayerId        = 0;
6 F  M6 r9 [7 r: p, V                m_aMember[i].m_tTime = CTime::GetCurrentTime();/ y6 L2 W; M# S$ G+ Z2 c( }
                m_aMember[i].m_bRemove = FALSE;( ], K0 x7 W" D4 ?" }: {) j$ k
#if __VER < 11 // __SYS_PLAYER_DATA
7 P7 j% ], I! w4 G  P# e3 t                m_aMember[i].m_nLevel = m_aMember[i].m_nJob = 0;- X+ p: z% h! s' e6 K- O
                m_aMember[i].m_szName[0] = '\0';, w$ i, }  n5 {% s3 x* s
#endif        // __SYS_PLAYER_DATA
8 t# ^; k% Q8 G) J- i2 r: t        }" R- b) l! P( }( O) X6 U
}7 ~7 x" h5 J/ w8 S
代码:' |- B" z9 n$ K2 x: K* F
#ifdef __PARTY_FIND
% B" O! @/ y2 N, M8 SCParty* CPartyMng::GetPartyFree()
$ d* f4 V4 t* ~& g+ L{1 ]9 l. k, \* I) k4 u) L# ]/ A9 `
        CParty* pParty, *pPartyTmp = NULL;3 k/ o; S1 u/ X: n' U
        if(  !m_2PartyPtr.begin()->second )0 I5 M& G, P# j; D% c4 y
                return NULL;7 _+ e3 z  A1 f
        BOOL bRan = FALSE;/ [2 ?6 b: N: C( M6 i! |7 C
        DWORD dwRand = 0;2 T) H+ @' }6 W7 f3 h: x  q
        if( m_2PartyPtr.end()->first >= 1 )
& O9 V( S# I1 y' {/ i/ b                DWORD dwRand = xRandom( m_2PartyPtr.end()->first );
3 ~( @! S8 `1 w3 B8 L
' q6 [' i# A9 `  n0 g& j$ P" q4 e& t        for( C2PartyPtr::iterator i = m_2PartyPtr.begin(); i != m_2PartyPtr.end(); ++i )
8 H/ T+ f: ?; ?$ \        {
* J  M: I$ f  ^! @. @                pParty = (CParty*)i->second;
6 B4 U9 }# t$ I+ A* g  j                if( pParty && pParty->GetSizeofMember() < 8 && pParty->m_bAllowEnter )2 R. _' U! {. ^) L% S" Y& m7 @* G+ F
                {
% F& \- t) S  r( o/ y. E                        if( i->first > dwRand ), ?* r% k, ^' J9 \. m
                                return pParty;
" j- _0 s! @* `9 }                        else
& r5 g/ L6 x% N/ [                                pPartyTmp = pParty;
3 J2 [; q7 M. q; {1 |+ Y                }4 r  |. N& e% O; Z3 g
        }9 ]3 }2 x0 ^# k; |4 W) `- P' t
        return pPartyTmp;
. e* Z+ Z" B+ i- ]9 F% ?5 f}
6 u; B: N0 |  R% F: t#endif //__PARTY_FIND2 U9 G! P: X& n- u' S
% Q+ }9 _! R# M) {' ]/ H  U) P
DPSrvr.cpp:/ ?# X. h! {6 b, k8 T
代码:0 ^, [2 W$ V# c
#ifdef __PARTY_FIND, Z( W' [9 }) c. H2 Y
void CDPSrvr::OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
( h/ c; P9 {! c/ J* U( g+ _3 `{# q& z! t7 M$ ]$ i4 S
        CUser *pUser = g_UserMng.GetUser( dpidCache, dpidUser );8 H; w8 w: v9 @+ I" t1 W: r
        if( IsValidObj( pUser ) )1 P- v* E* t) G2 a6 W4 a
        {0 E3 X. K+ t& _0 ^& k2 P
                u_long idLeader, idParty;
/ B  B  M" d' b* C6 n% \                BOOL bAllow;
7 F5 q9 E6 `. ^6 g2 e                ar >> idLeader >> idParty >> bAllow;/ P$ ?2 B. g0 {; q  e3 S
                if( idLeader != pUser->m_idPlayer )+ k  F* B: O; b$ t8 f* {+ H
                        return;. t' D4 p- O- z) q/ Y1 L& D5 s# s
                CParty *pParty = g_PartyMng.GetParty( idParty );$ T0 v6 i. J' ?9 V0 A7 o
                if( pParty && pParty->IsLeader( idLeader ) )+ l9 A3 f  G5 [6 u
                        pParty->m_bAllowEnter = bAllow;9 f7 J* ]3 N) p9 F% B
                else9 ~% G+ }: Y' I
                        return;' P% ?* r/ q9 x

: ]- q& L+ P5 P3 Y% f                CUser *pMember;4 I, A  j3 v$ c' Q
                for( int i = 0; i < pParty->m_nSizeofMember; i++ )
/ m; `$ n: g2 l% S# I, U: n5 [6 G                {- l5 O% r' k% G! s. J
                        pMember                = (CUser*)prj.GetUserByID( pParty->m_aMember[i].m_uPlayerId );
: s+ ^- O# x+ b. x1 h4 ~6 f5 P                        if( IsValidObj( (CObj*)pMember ) )
: j& T; V  S! p5 c" z' \2 R                                pMember->AddPartyAllowJoin( pParty->m_bAllowEnter );
8 v$ t9 n2 m4 _( S                }; e6 y: F" r: Q; N4 j
        }
) `$ s# j7 G! K) x/ \: E}
% s1 s5 I( u- e$ W& Z#endif //__PARTY_FIND; M, ^7 I1 M* A. Z! j
- b1 r+ t( c( n% ]+ }& T* b0 D
代码:6 g' K0 a2 H" K- |" }/ ]2 W# k
#ifdef __PARTY_FIND0 G. Y$ B6 F7 j& U  [' L
        ON_MSG( PACKETTYPE_ALLOW_PARTY, OnAllowParty );
, p2 h& Q8 O& t) f; g/ e#endif //__PARTY_FIND
; t  I; Y' H" g% C( A" A7 @* m% h' k" A- t7 T
void CDPSrvr::OnPartyRequest( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )  v6 O1 d: H! y' L
{  b" J" D& r8 W: {* t
        u_long uLeaderid, uMemberid;% s* x% Y/ B5 ]* C
        BOOL bTroup;
; c3 ^, U3 [3 m8 n6 S$ e- p        ar >> uLeaderid >> uMemberid;, q" T0 v+ m+ i8 u5 P& w$ f, @4 Z
        ar >> bTroup;6 f; a  _; \% _  o% p5 K. X% z# {

2 M( W% T& t$ r% a% H        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );. G7 s+ M' h" T6 R8 l  z5 l
        if( IsValidObj( pUser ) && pUser->m_idPlayer == uLeaderid )
: d& F) ]  y2 {  ~# G3 K$ `- l#ifdef __PARTY_FIND
9 Q9 f0 l$ ?+ A1 Q% H                InviteParty( uLeaderid, uMemberid, bTroup, FALSE );
7 }" A& q1 h' `0 l0 l1 w/ \/ \& E#else
1 t' i# j! P$ ]9 `                InviteParty( uLeaderid, uMemberid, bTroup );
+ u" {0 A' f9 a' N# j#endif //__PARTY_FIND
6 A, y6 e1 t& b/ T; u4 {}& `* P, x! e  W, g. ^

$ f+ T( u/ ^* ^代码:' W  h; \2 p* t& l- r1 c/ W4 {
#ifdef __PARTY_FIND. I9 z1 j' @8 y. [
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind ); a' E! }- t& o! K* @) N4 {) N8 \
#else) a4 x/ b2 Y$ t6 o) K
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup )
  s# s. @) v8 S9 |#endif //__PARTY_FIND1 _7 T& C1 ~1 x8 V1 K1 V& b  m: n6 Z$ }
{; c0 A/ V2 Y5 H: X! i3 |
        CUser* pUser = g_UserMng.GetUserByPlayerID( uMemberid );, ]  D6 Y5 I. Q/ h+ C
        CUser* pLeaderUser = g_UserMng.GetUserByPlayerID( uLeaderid );
; r4 ^  M' L1 W) b       
$ O2 l: N# }0 q3 e$ D3 s" |! B        if( IsValidObj( pLeaderUser ) && IsValidObj( pUser ) )
& k+ C5 u* }' q% I2 v% J- ~/ d1 a- e        {
& t0 r8 v5 n; Q  B" S* y                if( !pUser->IsAuthorization( AUTH_GENERAL ) || !pLeaderUser->IsAuthorization( AUTH_GENERAL ) )0 G% [3 f& L2 }8 @( Z7 Z& {3 u- Z
                {
3 B0 x) _& z1 _! J                        if( !pUser->IsAuthorization( AUTH_ADMINISTRATOR ) || !pLeaderUser->IsAuthorization( AUTH_ADMINISTRATOR ) )
9 B  N# ^9 |- Y3 L+ ?0 w( v                        {
% M3 Q4 B# u5 i* t( N/ q$ \                                pLeaderUser->AddText("没有足够的权限。");
. R( w* N9 O! N. w                                pUser->AddText("没有足够的权限。");
% m# f- u! j& B) c' m                                return;0 C$ S* T0 c! D# `
                        }
9 Z: X3 X6 [) o, l/ m& e                }# l$ A) g6 [& q( d% ]
                // ???? ? ??? ?? ????.: g- z7 u* @( i4 E: N# T1 D8 r% ^
                CWorld* pWorld = pUser->GetWorld();0 `) T0 x' J- d) M
                if( ( pWorld && pWorld->GetID() == WI_WORLD_GUILDWAR ) || pLeaderUser->GetWorld() && pLeaderUser->GetWorld()->GetID() == WI_WORLD_GUILDWAR )
8 f. {5 d0 C1 K/ V! W4 z4 Q. P                {                       
! R, {: g. a! X* u                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );
+ R9 i9 l9 ~; z, c. p/ Y                        return;: e" B" L! r1 T
                }# |8 N5 S1 I  W+ L, m# W0 J
#if __VER >= 11 // __GUILD_COMBAT_1TO1
: f3 g' @9 O# J$ B                if( g_GuildCombat1to1Mng.IsPossibleUser( pUser ) )4 `3 q$ {1 b9 U* p
                {
) Q! l. k' Q& u, D                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );* H8 }' K7 {/ r$ |
                        return;) {0 @+ C. O/ n
                }+ M- }2 L. }) h0 {4 M: V
#endif // __GUILD_COMBAT_1TO1" w0 I. j2 F0 u2 n# J6 `- v' }, u
+ Z/ ~* U: {( h7 D* O% C2 ?2 h
#if __VER >= 8 // 8? ?? 061226 ma4 D. m3 o9 o0 M. r; \
                if( 0 < pUser->m_nDuel ||  0 < pLeaderUser->m_nDuel )
/ x( Y2 m( c( e7 |2 @$ v1 }                {
9 y0 H5 }8 D/ ?, Z1 ~                        return;
1 C( @; Z  b( G+ Q* N' Q5 E" y                }8 A" L2 f: K) C8 p; M, P
#endif // __VER >= 8 // 8? ?? 061226 ma( K. {% V% _8 U* Y6 E4 Y6 B7 V
                  k7 k1 a" I9 V+ T3 U
                if( pLeaderUser->m_nDuel == 2 )* N9 l6 h5 j3 Z" f1 C2 j
                {                       
* }, P- h; [! U  E) r                        pLeaderUser->AddDefinedText( TID_GAME_PPVP_ADDPARTY, "" );                // ?? ???? ?? ???.0 a) D; H7 A% x( p' B9 E! F1 T# n4 I
                } $ I" b' `! }1 w& l) H4 b- b
                else
8 e) e9 X( ?. V4 f! J                {" [. {  q/ }- w: V5 f
                        if( 0 < (CMover*)pUser->GetPartyId() )        // ?? ??? ???
6 r% Y2 k( _- Y                        {
% S; S: `) H! k6 R% [( p                                pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 1 );
, {+ X3 V) \+ R6 P  Y5 Q9 O                        }
2 T; c8 }6 ]9 J, b* E, q$ W9 G6 x                        else9 H3 a5 E% [8 i( J! O1 @2 u
                        {  z. l1 S5 u. ^& M, \
                                if( pUser->IsAttackMode() )6 K( ^1 Q  H- k: T
                                        pLeaderUser->AddDefinedText( TID_GAME_BATTLE_NOTPARTY, "" );
# s, q# }' W( T. d2 R4 h( E                                else
5 d7 P& u# V; v4 r& A#ifdef __PARTY_FIND
- F3 f5 }0 }. w5 g# K# S% k- S                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup, bPartyFind );$ b" ~  f- f- I# h: _
#else
# w) M$ H' B$ M, x                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup );
' ?' ?: G; z& N. ~3 |#endif //__PARTY_FIND7 N2 v. N1 Q9 L4 M. ^, M
                        }! P7 H4 \, ]# O" ?9 ~+ z# I
                }, f4 o6 {( h1 t9 z
        }) y8 f2 M# w/ C1 s* W' ?8 r8 d+ a& Q
        else- x& X3 N2 c3 M' _; |
        {7 m7 }, J  L4 [7 j" i3 }2 y4 V
                if( IsValidObj( pLeaderUser ) )
2 ~' u9 v1 H" Y- d% o- H- d                        pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 4 );4 Q/ q) [6 N% |% s
        }
& @: w9 A& e' o5 `0 K}
1 P6 i  K, m4 i3 {
, o3 [1 d2 k8 K$ k+ B4 ^User.cpp:
' L6 _9 @; z/ d代码:, Y6 P) v9 |2 ^# P# q" W& w
#ifdef __PARTY_FIND5 V1 q$ X. O9 M0 ^) K) b! F. v' |
void CUser::AddPartyAllowJoin( BOOL bAllow )
* n: m$ n  r$ Z$ N: x5 v{. W; M  [3 n8 U0 K2 V& p
        if( IsDelete() ) return;/ z3 r9 s7 V, O3 m

$ A9 X6 x" K, {  b  L) Z5 J! m        m_Snapshot.cb++;/ I0 t, x) {9 V
        m_Snapshot.ar << GetId();
8 ^: k' ?" Z1 j- M        m_Snapshot.ar << SNAPSHOTTYPE_PARTYALLOW;
7 H1 k7 ?+ L$ e8 D  l        m_Snapshot.ar << bAllow;) y: Q' p! a* {6 \& s
}8 k* ~7 v, D2 U
#endif //__PARTY_FIND
- Z; H, p8 Q! ?, l7 I
4 W8 c; ?  L! E9 [! B- X代码:
9 Z$ z6 v) }- H#ifdef __PARTY_FIND/ c: D% E( O9 }+ ~7 O& \
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind )
0 r4 K! e+ n1 U# b$ I' a#else- [( x% X/ |4 i, X% @
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup )
6 \" ^4 r! y: Q) i5 V  L#endif //__PARTY_FIND
( Z$ G5 Y6 v) j{
$ w% r: n0 P' k3 }% {  A6 `* I        if( IsDelete() )        return;
. b6 m* R, r6 b6 `5 g6 f9 t, |) O7 }        / h' e, R+ B5 e) p9 X5 t
        m_Snapshot.cb++;1 C) |1 p% C" s' @- K; n
        m_Snapshot.ar << GetId();( V, M7 X5 B! G
        m_Snapshot.ar << SNAPSHOTTYPE_PARTYREQEST;$ G! S$ `7 c/ l1 m4 B6 J2 z7 R
        m_Snapshot.ar << pLeader->m_idPlayer << pLeader->m_nLevel << pLeader->m_nJob << pLeader->GetSex();; d' U2 ~( @/ v* Y! [; j3 a
        m_Snapshot.ar << pMember->m_idPlayer << pMember->m_nLevel << pMember->m_nJob << pMember->GetSex();$ B; J& O( V. w
        m_Snapshot.ar.WriteString( pLeader->m_szName );+ ~2 D. m8 ]9 ]  ~, l
        m_Snapshot.ar << bTroup6 o+ N' |. ~) _* P5 J% O
#ifdef __PARTY_FIND! G6 z& q. X" t# S
                << bPartyFind
0 ]$ {! y. s" W9 M& U8 x( x8 t#endif //__PARTY_FIND
9 r/ [# t. X; a& x! |. _                ;
* g. Z- \! {0 j3 [' v5 z0 q' w+ Z          v" r( O" O, Y
}2 \) x% [/ }9 q: n
) L1 V* \% D  j! N
DPSrvr.h(公共范围PLS)4 s$ k8 m( H% G7 v0 I, p
代码:+ S. K, h  A( M1 V+ o2 b
#ifdef __PARTY_FIND
( k4 ~: J, M* l; H        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind );" p# |/ @7 R- X; Y% b9 t& ?5 l
#else
! m; q4 M1 _" k; m        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup );
* o6 p/ o. P0 c( N# e& `; _#endif //__PARTY_FIND
' Z2 j, M5 c2 i* f9 i9 w; P; n% J  \7 i. C. M
代码:
7 I4 l* X0 x; @6 j$ D, r  W  b; T#ifdef __PARTY_FIND
. }. R2 |6 R7 M6 a: R7 r$ n        void        OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );3 ~  ~/ Y9 p8 d! T5 @5 m
#endif //__PARTY_FIND
- z8 A. w& S. j( x$ I0 N! _$ v  _
User.h(以及):& _9 v% Q7 b8 P7 Z( Y3 R
代码:. [6 v. O7 z" `
#ifdef __PARTY_FIND
! U' z5 G" z* l, C4 b0 Y        void                        AddPartyAllowJoin( BOOL bAllow );
- A. e) W+ h# B        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind );
3 I) _! g( ~. H/ t0 g#else
2 @% I! d" ^  _4 F0 b" ?        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup );
/ }" }- o, [: i2 C0 I0 o  {#endif //__PARTY_FIND
) {$ y5 m+ T4 P. l
) C# W0 W" J( Aparty.h:  n& V0 E2 A: G6 ]# p
代码:, q( k5 ~/ y7 l3 U7 Z, \3 s: a$ d
#ifdef __PARTY_FIND
% C; O& a7 F; [: ]/ J        BOOL        m_bAllowEnter;
+ h6 f8 |5 j, p! I* a#endif
: p% K; b$ q8 Z: ^7 s5 a0 q
* j2 T% [! S: y, r$ N代码:
6 W: P% E! I3 F2 Y% E6 v#ifdef __PARTY_FIND( K3 F& ^% [7 X. x8 h. K) L
        CParty* GetPartyFree();3 y5 g( Q1 T; y+ N9 W
#endif
7 l0 a# _  M5 d+ y
# y& f2 C! U+ h" B2 i$ j( Q' LWndParty.cpp:6 J4 K& z7 q6 L: J- p5 Z3 q
OnChildNotify:
1 q7 ]$ R& p1 n$ ?代码:) ?& T0 o4 a* b* `* N% J! ?
#ifdef __PARTY_FIND
" f( M2 D( C# R/ H        else if( nID == WIDC_CHECK1 )" G& \* @: p" u! o& G; S; Q
        {, G4 r" s5 q" x0 C% \
                if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )5 N1 E7 q% H# A7 X! j2 X( H
                {# N5 t" n9 l& Z3 m9 o5 X+ d
                        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );; g* f9 t  I) D* I0 p/ @
                        g_Party.m_bAllowEnter = !chk->GetCheck();
( H6 d: s* r- x! B                        g_DPlay.SendAllowParty( g_pPlayer->m_idPlayer, g_Party.m_uPartyId, g_Party.m_bAllowEnter );; U8 F$ k. l% e
                }
/ o0 O. ]5 R5 @- f        }
/ x# X9 a0 Y! A, x  x! n#endif //__PARTY_FIND
1 i% F4 K3 i* W) N) N- d; y6 E
( y6 i8 `' S; T代码:! I' C2 X; a0 |9 o: h" [# V
OnDraw中:
0 x" ^# `) r% h3 c/ K) y7 e% b: ~4 M代码:/ g( o; `; n. R5 \, V2 \
#ifdef __PARTY_FIND
0 B& ]% k! {, I8 X6 `& T        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
$ u  P3 o- S& A1 B4 z; x0 i' m: C        if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
2 x# c  o' X8 T- C% B: V" [- J                chk->EnableWindow( TRUE );/ u. i" I. H5 f- D" v: E
        else
/ y# U3 ?* r" v; E) `6 n                chk->EnableWindow( FALSE );; I* B4 c4 ~; H' @5 s! Q5 P
        chk->SetCheck( !g_Party.m_bAllowEnter );
/ U& [: h; i2 g2 ~  b#endif0 S/ a, `& V1 R) L1 d8 S5 k
# I  c+ C: l, W, V
DPClient.h(public):# l# [) N2 z7 R, R
代码:
5 n8 ]  z) H' j) S9 w% ~+ U2 j#ifdef __PARTY_FIND, E, q& k2 d# w* T8 o% S# O
        void        OnPartyAllowJoin( CAr& ar );
$ |4 I, s4 J. Y2 t3 |! w4 j( O) L        void        SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow );
4 s- E( k* M. r' _5 J- f' R#endif //__PARTY_FIND
' S4 N3 Y1 d/ Z( y; R2 k$ X7 W0 Q9 B6 d/ z" q( ^# t3 M
( D0 h0 g& h8 Y7 V2 J2 Y
WERS hinbekommt没有,请让赫克的权利。
+ j/ Z2 G- A8 O* u, u* z不支持左右,所以难不...
9 U; b% F- M6 D* \# h党k的Windows NT甚至编辑它自己。
& g+ d4 z: _3 D8 _# M" o包也,因为我不erschreiben进一步如果我你的。- E/ |  Q$ {' y, P+ k. e
由于缺少Quantité k n个代码是什么升工程前。  Q& N( _$ S2 o3 s+ \9 D  O/ V
如果是这样的。请发表。
$ n9 H: n8 M: Q6 ]5 b3 C到目前为止,Pumbaaa+ c. [6 D, p/ j9 ^% S
       
, }' ]+ T. I+ |       
# S# U% b  S6 J6 |( o6 C) i2 MMsgHdr.h
' u, l" |$ U4 V8 \# `8 Q#define SNAPSHOTTYPE_PARTYALLOW (WORD)0x8863# r0 S( X& i/ U: N) l
#define PACKETTYPE_ALLOW_PARTY (DWORD)0x88100243; K3 p3 z1 X  z

1 ^' i. B. W+ j# |* d6 [
- {3 U: f3 z% v1 s/ k. |8 @, d% ]( G; B9 I: Y! L1 X
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-31 04:08 , Processed in 0.069883 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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