飞飞世界论坛

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

搜索公会的功能

[复制链接]

197

主题

203

帖子

1086

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1086
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:38:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
对于那些谁需要它 - 谷歌缓存FTW。 :4 L1 [2 l6 T  G  y9 g$ s& k9 a
如果我鼓掌纯粹是我复制错误时,D
. x' v( T. \0 S* ~1 k积分当然Pumbaaa。
  a8 m! _; s: Y
- C1 Y: d% R  @  Z6 U( e+ Q  }( @& WFuncTextCmd.cpp:4 p% b% n  ^6 r, P! m

4 S- ?3 ^8 U1 l) a代码:; o8 C3 M0 S7 ]3 x. w" `# Q# W' L
#ifdef __PARTY_FIND
: l: b8 u+ N1 b1 |BOOL TextCmd_getparty( CScanner& scanner )
- W+ R8 |  ?! D' F5 T# p9 N+ N5 k{) w# d# X1 }2 A/ I- Y& [
#ifdef __WORLDSERVER
$ Y8 t$ w# B4 d% h4 k9 M! _/ ?) k        CUser *pUser = (CUser*)scanner.dwValue;
3 v; m# J1 ]. z8 D5 \! e        if( pUser->m_idparty > 0 )  {, D( y( N# g; m8 q
        {
2 }! g4 S% Z& F- g% P                pUser->AddText( "你已经加入一个公会。" );' p7 `$ _# I7 u2 n# l
                return TRUE;$ `" F8 ^+ |) T
        }
' `3 q, j& T. h/ P/ _( G        CParty *pParty;
4 X; L7 T% Q  T, n$ K        pParty = g_PartyMng.GetPartyFree();6 c7 y# S. B0 J
        if( pParty )
' ^) U6 q8 D8 C, E& U1 C! f; _        {% Q% Y* m: }- h  N% `9 Y
                g_DPSrvr.InviteParty( pParty->GetLeader()->m_idPlayer, pUser->m_idPlayer, FALSE, TRUE );: F# O5 P4 e3 H
        }else
" J) a0 ^% T9 I" \  g. C        {$ e/ ^3 }9 T7 s3 ^1 o$ _8 S
                pUser->AddText( "抱歉,这里没有任何一个公会。" );& B5 m* @" H+ R8 n" M
        }
$ p! G$ _; K3 i( K8 j1 s- G$ R#endif$ T- O- y0 O6 S. y3 a& _! C
        return TRUE;
( h5 c* z; _+ }/ W}( z. K4 z7 ]( d% c- h
#endif //__PARTY_FIND; l" X4 e! i2 s, Q4 _% s5 w

/ I9 x  @' {. L( f0 c代码:
9 ~* q6 X+ M) ~( zBOOL TextCmd_PartyInvite( CScanner& scanner )
5 J8 K1 q2 w$ I, T5 b{5 N! x* Z2 s* r3 s; u
#ifdef __WORLDSERVER
( [& J# Y: J6 A) o        CUser* pUser = (CUser*)scanner.dwValue;% D4 c: I1 d, @$ l% y$ k$ f  k+ m
        MoverProp* pMoverProp = NULL;$ u0 l' ]& o  k/ Z6 w+ b  S, W7 p: ?
        scanner.GetToken();' i/ ^4 |- P" _6 T! H
#if __VER >= 11 // __SYS_PLAYER_DATA
/ g$ I3 a2 o" D5 L. A7 {, F. h! ]$ X        u_long uidPlayer        = CPlayerDataCenter::GetInstance()->GetPlayerId( scanner.token );
5 W; _: o4 N4 f0 c( [$ k! d1 {#else        // __SYS_PLAYER_DATA/ W1 M" R, ^* E
        u_long uidPlayer = prj.GetPlayerID( scanner.Token );
3 s, U, N. O3 S* Q: r" O& ~6 ]#endif        // __SYS_PLAYER_DATA
, E+ }  @6 _( d: ~5 K' ]# e  f        if( 0 < uidPlayer )& n  f. s4 ?) J
        {
: C5 r( T" e! `: |6 j9 y                CUser* pUser2        = g_UserMng.GetUserByPlayerID( uidPlayer );        ; U9 G4 a  d/ p8 k7 `$ w8 C
                if( IsValidObj( pUser2 ) )
: H+ |' E3 p5 y2 r! @#ifdef __PARTY_FIND
9 z* I9 |1 d. D/ E, P. }" _                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE, FALSE );1 L- Q+ D$ T/ L& A. X
#else4 H  t0 ?+ P) c3 b+ ^, A
                        g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE );& m' q& Z: N* L2 z6 |
#endif //__PARTY_FIND
+ o/ d) ^6 J, h4 A. x                else% }. L7 b. _3 A# ^, q  |: S
                        pUser->AddDefinedText( TID_DIAG_0060, "\"%s\"", scanner.Token );- c; N0 z; Y( W3 H' b, y" Y# R
        }# l& R# k; l. y9 Q2 {8 o# d
        else
) q1 v+ t( q6 C( F0 P' n7 X) {        {
& Y( z- z2 D* j8 y# |                pUser->AddDefinedText( TID_DIAG_0061, "\"%s\"", scanner.Token );8 C$ G& H8 s( r/ ]* E
        }! Z* o" J% D5 ?  }$ b  n
#endif // __WORLDSERVER
( s" B. ?# N* w0 X; }
& [& o. b/ _$ K" b        return TRUE;; ?0 k2 V' `+ @
}$ Q$ k* {* m+ T3 v  f
5 Z1 y* `# E' F1 A( L9 }6 ^: C
代码:9 R; t7 B! V; |. X+ |' e+ T( y* B
#ifdef __PARTY_FIND
3 c# J) n) ?! ]: F! g        ON_TEXTCMDFUNC( TextCmd_getparty,                                "getParty",                        "getP",                        "",                                        "",                        TCM_SERVER,        AUTH_GENERAL        ,"" )
! m- S7 y" l2 ~5 L1 E- G' Y#endif //__PARTY_FIND% u6 K2 m/ W0 u9 |
DPClient.cpp;
, }; Q, f. I+ N2 I% M4 V& qCode:  U) C* `  q! P! x; ?" H
void CDPClient::OnPartyRequest( CAr & ar )
( r& z1 W/ ?6 A{( ^5 n" L8 N. k& B
        u_long uLeader, uMember;
9 w" M" e5 m" d" |1 L& u" m1 p4 G5 Q/ B+ d/ o( A
        BOOL bTroup8 Y7 F* X* g- t- X7 d
#ifdef __PARTY_FIND
& |9 `1 N) h; b7 `                , bPartyFind
) Q* m! j1 H# P" U/ J% e" @#endif// __PARTY_FIND1 z# c9 o. R7 X- K% ?
                ;2 K' M" \8 A7 t9 e, w
        LONG nLeaderLevel, nMemberLevel, nLeaderJob, nMemberJob;
, P: p& i) j" F; y/ t        BYTE byLeaderSex, byMemberSex;- o; v6 U/ t# c5 ?' ^
        char szLeaderName[MAX_PLAYER] = {0,};
5 s. i1 R$ Q, U        ar >> uLeader >> nLeaderLevel >> nLeaderJob >> byLeaderSex;
& Y' L# V5 T  t/ M: |& F        ar >> uMember >> nMemberLevel >> nMemberJob >> byMemberSex;* b- r6 _, ^( E% _2 ]2 O
        ar.ReadString( szLeaderName, MAX_PLAYER );. O" ?$ i  u5 U! e# t5 z4 G6 S% ^
        ar >> bTroup+ X, D/ s# Q2 O- E0 K2 U5 ~
#ifdef __PARTY_FIND
+ Q5 W6 ]' T8 \6 L2 U: u/ P$ d                >> bPartyFind
( Q* g1 V% O. p7 o#endif //__PARTY_FIND
! v( T; {, K' w2 e# ?. e                ;
1 J! e6 `; p. Y, _$ H, i+ ~' E  R2 H       
6 n( D5 s9 D8 ^% l* i8 S; t1 V        if( g_Option.m_bParty == FALSE )- ?& m; t+ T: e# [. G. P0 ^0 r
        {
7 V, n) z" u& {# F                SendPartyMemberCancle( uLeader, uMember, 3 );6 J+ R' {. k, j% P% E; k3 x
                return;
6 O; n. o" R' W" x  q% ?: x: ^5 ^        }
- t. A! E  ?( n6 H! t5 |+ \7 ^. h, k- \
#ifdef __S_SERVER_UNIFY! N$ A) ~5 O/ {- k" t+ t
        if( g_WndMng.m_bAllAction == FALSE ): N; H0 W- r, q1 s/ W0 G5 L
                return;- |/ b# a2 d. `, A- t. a! M3 a. |
#endif // __S_SERVER_UNIFY1 }: p5 ^2 D: v% l4 B
( G5 K% L4 ^& s1 T% L6 f
        CWndBase* pWndBaseBuf = g_WndMng.GetWndBase( APP_PARTY_CONFIRM );# G. {% l' i% U- |1 Q# ^
        5 u/ G% r; u4 u* W" B  _1 C. ]
        if( pWndBaseBuf )
5 d3 C% d1 T1 ]        {
+ Q0 a& N8 _" f; [) f% \                SendBlock( 7, g_pPlayer->GetName(), szLeaderName );1 g* j  r* C: h- F) @
                return;
! O+ B9 W: \/ e* J6 Z9 g. d# O1 z        }/ T6 U- D& `! c/ c2 U0 H
#ifdef __PARTY_FIND
+ k* Z! u0 b/ l& U- w        if( bPartyFind )- \6 Z, ^* C% W% ~  D* T
        {
+ y/ I' s* e, f5 }. i5 S5 K; X( z                SendAddPartyMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex );8 ]! E! V% T, V0 F5 x- P
        }else' T, g; }# o  T$ U$ ~
        {
9 i( E. L1 ~; N                g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;6 p9 H! F  i; A: d
                g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );* J( b2 ?: V/ B: n9 `
                g_WndMng.m_pWndPartyConfirm->Initialize();
6 {, x7 y' o9 l  _3 v  @        }
) V. ~  K4 j) P! k/ k2 U#else
; U, x- h+ R3 N& O( O        g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
8 D. L3 [9 F! q  m9 M" v0 f        g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );3 V! w% [& p  `, b3 B
        g_WndMng.m_pWndPartyConfirm->Initialize();  [4 e. G- d  f. \
#endif //__PARTY_FIND
; c2 l6 c9 F, E+ g" R& F}8 d, E3 `4 I9 L8 N

: [) E/ k4 k: u) k7 b7 q* }6 @7 V" ^% l代码:
# M  u0 {: s* i' Y6 `#ifdef __PARTY_FIND+ E" [! y4 W2 C9 Q
void CDPClient::SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow )2 `0 ^. Y6 X9 N" L/ `, p* g
{+ Z; b) }8 x2 B, i; m5 R
        BEFORESENDSOLE( ar, PACKETTYPE_ALLOW_PARTY, DPID_UNKNOWN );7 r: c- I2 {, A1 B% t9 m* X
        ar << idLeader << idParty << bAllow;1 n2 g1 i  t0 F2 Z6 \( ~
        SEND( ar, this, DPID_SERVERPLAYER );
6 V9 A1 M  T# c  y* h& }' L
0 i( O  b: l. p}( t, O$ X& G& p. k7 H+ Y
void CDPClient::OnPartyAllowJoin( CAr & ar )
$ c9 t& o1 [7 T1 K{
$ j% S4 g2 h, k, f/ b  |" z        ar >> g_Party.m_bAllowEnter;
9 A6 i3 R% a5 P/ _+ m; V: Q; j7 L- N}
2 I1 s4 a  t, R1 D#endif //__PARTY_FIND
  N' i2 u8 d+ dCode:
: c7 D  S* ^( `) ?7 @) Y#ifdef __PARTY_FIND
* E3 Y$ a6 }# ~1 ]6 t                        case SNAPSHOTTYPE_PARTYALLOW: OnPartyAllowJoin( ar ); break;* W) F4 F! L& A: \
#endif
6 ~  |( o( H: a* q" r& \1 o) W4 s6 P( w7 X  Y
party.cpp:
8 J9 O' L; v+ R# A! M% G0 l代码:: c1 W$ j4 a0 y7 S
CParty::CParty()
/ n4 f% Q$ k* {7 t2 E+ f{7 u* k5 m" i4 Z  q$ o
        m_uPartyId        = 0;3 g8 w5 P$ p/ a0 |5 z
        m_nSizeofMember        = 0;
! e' W* |# H8 l+ W, R+ o5 k6 T! n        memset( m_sParty, 0, sizeof(m_sParty) );, s' ?. ~0 `8 Z- G/ U# e6 f6 W4 e
        m_nLevel = 1;# Y1 z5 y  o4 k, \; X  A
        m_nExp = m_nPoint = 0;8 h, M/ ^# [" u3 f, f3 G3 A
        m_nTroupsShareExp = m_nTroupeShareItem = 0;0 q1 Y8 k6 s; e# n/ c
        m_nKindTroup = 0;                                                        // ????/ z9 y- @( g: D2 I' F7 T
        m_nReferens = 0;
8 B1 z3 a7 G( v' ]. ~1 D6 d; T, W        m_nGetItemPlayerId = 0;9 ^7 i9 [2 T! Q& V. ]
#ifdef __PARTY_FIND
, y6 E$ \) N- Y8 [        m_bAllowEnter = TRUE;
/ F- ^5 j# Y5 W6 G7 A#endif //__PARTY_FIND
5 M' J/ \4 O0 d& \. j        for( int i = 0 ; i < MAX_PARTYMODE ; i++ )
! B- u% j' c; c; I- V4 y0 ?1 o        {
- t1 s3 c/ _# x/ k7 r                m_nModeTime[i] = 0;
4 ^9 a# a9 g0 S& F2 `        }" n$ B% e* U% _! s6 Q4 \$ @' n
        m_idDuelParty = 0;
4 i7 ~. `# _0 z4 _; }* r2 m8 K#ifdef __WORLDSERVER
% d; s" [( W6 F3 w( X6 _        m_dwWorldId = 0;
$ v' @9 Z5 G6 j6 _, i3 [$ q4 D% ?8 ~. E9 V#endif // __WORLDSERVER# \6 U4 x+ ]/ y/ N
}
5 f9 z9 f- m0 e5 g! V! O代码:
- _4 r/ M/ m5 p7 D7 Cvoid CParty::InitParty()( h) _: |2 h/ s- |4 r+ F
{5 _( f. e; V- M2 E: W6 K: G+ u' F- U3 V
        m_uPartyId        = 0;
( q8 l9 A1 P0 h7 b1 t        m_nSizeofMember        = 0;
: k& N" Z$ i( P2 o5 f1 b        memset( m_sParty, 0, sizeof(m_sParty) );8 h: C. B) ~0 V* m% e5 z3 F
        m_nLevel = 1;4 v. V: l$ ^  ~1 ?
        m_nExp = m_nPoint = 0;
; P$ C+ @2 Z9 A' y5 i; D        m_nTroupsShareExp = m_nTroupeShareItem = 0;2 [: S0 ^! ^, k0 v' l/ G" L
        m_nKindTroup = 0;                                                        // ????
% l4 @: n: P+ p' Y1 W: e( l        m_nReferens = 0;       
9 W4 V4 R! R' o7 w' \) V#ifdef __PARTY_FIND
: j9 W7 L7 t1 o. [) O        m_bAllowEnter = TRUE;
% C: Y4 A) ~5 ~5 |#endif //__PARTY_FIND
- W0 F5 V* m- O& S/ e        for( int i = 0 ; i < MAX_PTMEMBER_SIZE ; i++ )) \1 y& j* f" @* K$ s
        {/ e$ n# G7 h; q: R
                m_aMember[i].m_uPlayerId        = 0;
, L  @. G% d( I  C                m_aMember[i].m_tTime = CTime::GetCurrentTime();
8 B* N0 d2 D  I/ C7 Z# ^9 h                m_aMember[i].m_bRemove = FALSE;  F( B7 S& n9 t8 _
#if __VER < 11 // __SYS_PLAYER_DATA7 U' X9 Z* O1 z/ f5 S
                m_aMember[i].m_nLevel = m_aMember[i].m_nJob = 0;' t" v) Q- `, {$ k& E& g: X
                m_aMember[i].m_szName[0] = '\0';2 z5 Y0 D( X- j- P
#endif        // __SYS_PLAYER_DATA" o# F, v1 Y9 Q! H& k+ O
        }3 p/ }/ I% h5 c/ Z5 R! G! z; ?
}! X% e2 f" ]( h) k# |. p8 Y
代码:- P" n8 v  b% H3 K1 `& W
#ifdef __PARTY_FIND) D; ]& W- I9 T  I
CParty* CPartyMng::GetPartyFree()
9 U9 C1 v4 d) S  J5 D{
( w& s. w/ w" K& z6 y        CParty* pParty, *pPartyTmp = NULL;. M$ k: X+ E3 o  x
        if(  !m_2PartyPtr.begin()->second )
5 M: g1 I5 f9 O$ @7 ~" w. J                return NULL;7 T, L! N9 ]- p. \% t5 g* h. E
        BOOL bRan = FALSE;! P5 A: Y7 x+ N( }: j9 G
        DWORD dwRand = 0;9 h# y0 G0 }' `
        if( m_2PartyPtr.end()->first >= 1 )
! U0 w# Y4 c, V7 Y# V' S! O                DWORD dwRand = xRandom( m_2PartyPtr.end()->first );
! _" r$ _( E5 o: [* n9 V; i4 r. w! T+ y+ n9 ~! x
        for( C2PartyPtr::iterator i = m_2PartyPtr.begin(); i != m_2PartyPtr.end(); ++i )
9 L2 ]* D5 `; S2 m: S. b. M        {
0 |7 U$ B$ _5 o/ X6 f                pParty = (CParty*)i->second;1 Y; L2 d- j, z; z
                if( pParty && pParty->GetSizeofMember() < 8 && pParty->m_bAllowEnter )4 f$ N7 O0 ]% t$ \: Q' g5 V
                {+ Y% T& J3 l. L) A
                        if( i->first > dwRand )& K6 X; m$ ~6 ?' I+ s) b& F0 G+ r7 {8 U
                                return pParty;, C* t+ L6 F4 d) j0 r
                        else
* k; W  N1 C  y4 \                                pPartyTmp = pParty;( \0 g# i, V. u5 K
                }, [1 ~7 j" S4 y( {0 {% V, b
        }
8 Z& I% |0 c* v! O( ~        return pPartyTmp;- \! S5 y7 b+ V7 S# P1 V
}
: K+ P7 t2 F+ G" c1 y& ^( t- ?+ D#endif //__PARTY_FIND- G. N0 R, J" y7 Y

* z& Y# K, G* p, C: {DPSrvr.cpp:
' a. o# L5 M9 {8 N代码:0 p+ Q$ Z+ W2 ~
#ifdef __PARTY_FIND
+ v- v$ J* J6 wvoid CDPSrvr::OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
  P2 ~0 k; t3 ~! [{4 G& B6 [$ G1 c3 s! z- i* A
        CUser *pUser = g_UserMng.GetUser( dpidCache, dpidUser );+ `. e) |4 r" r- O! f) E0 n- g
        if( IsValidObj( pUser ) )" R& b4 H: F  y+ y2 _
        {0 O: f, C4 s1 z5 K
                u_long idLeader, idParty;
3 Y& x& ]9 F8 K, O7 u: {( H. s                BOOL bAllow;0 s( E3 M7 v5 R' `, @* o+ O
                ar >> idLeader >> idParty >> bAllow;
; d8 B% u6 c1 ~+ j0 |* k: U7 `                if( idLeader != pUser->m_idPlayer )7 i7 S% ~, }) A* M
                        return;
8 g2 _! q: R) @2 ]1 }6 C9 f                CParty *pParty = g_PartyMng.GetParty( idParty );
- j# A2 F" r" K* W3 C* E                if( pParty && pParty->IsLeader( idLeader ) )
+ `9 b% v, K7 s0 k* W! S                        pParty->m_bAllowEnter = bAllow;3 ~* F1 I" Q7 N. x+ R5 n% {- I% _" @
                else
$ y/ D7 ~5 |7 X1 k0 {0 \* u" u1 [                        return;" y# |" M3 N% O* A

8 \% U' E. C* M) b: }+ J                CUser *pMember;% Y7 N6 v' u8 H$ y% O% n# T4 U
                for( int i = 0; i < pParty->m_nSizeofMember; i++ ). m, B, o' j/ b, m% \$ X0 _% }9 q
                {+ s) t8 i  w+ Z1 z
                        pMember                = (CUser*)prj.GetUserByID( pParty->m_aMember[i].m_uPlayerId );
/ Q" [" m% e" V# E% I                        if( IsValidObj( (CObj*)pMember ) )
( l3 N, e8 ]: I( I                                pMember->AddPartyAllowJoin( pParty->m_bAllowEnter );8 B0 m5 L6 f1 {; ?: @* Q7 `! `
                }$ f' Z. b$ P+ K. z$ g
        }
4 N9 M- ~$ z8 p/ }5 N" ^/ Q}
3 _# H. m3 T( H! X3 w2 Q#endif //__PARTY_FIND/ I4 a7 I) V# _' A

7 P  k# Q/ U& T5 z1 V& @0 v代码:+ j$ n* k9 o5 o" e4 a
#ifdef __PARTY_FIND
* [1 T. O2 U, w" j! n        ON_MSG( PACKETTYPE_ALLOW_PARTY, OnAllowParty );
3 z+ s# w/ k5 j! {#endif //__PARTY_FIND7 \- s- n; [$ D( l* m$ G

& E# L( p& c$ }1 b) zvoid CDPSrvr::OnPartyRequest( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) M4 A; k/ ?! x# ]! b& \3 r9 @
{
8 _1 H, c6 p) Q        u_long uLeaderid, uMemberid;
# S, v+ [+ B% E. M! _; f        BOOL bTroup;8 j! c4 t$ }# o; }
        ar >> uLeaderid >> uMemberid;/ Q, f) l# Z& [( P
        ar >> bTroup;
9 m! e' O6 i+ z0 C3 a+ T$ d$ S
  H+ i2 C3 z, P. Q        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
/ N& f5 r: k) m        if( IsValidObj( pUser ) && pUser->m_idPlayer == uLeaderid )( o/ d" F( V$ t7 [
#ifdef __PARTY_FIND5 H" U0 _1 `5 p9 t6 B, A
                InviteParty( uLeaderid, uMemberid, bTroup, FALSE );
4 g. P; ~$ W% B9 o, B0 }: B3 r" d; {#else" e( L1 e* @; D2 |; J/ E
                InviteParty( uLeaderid, uMemberid, bTroup );
2 z# P1 A6 S& @7 b, y# C( O#endif //__PARTY_FIND& V+ l. X4 V; {" \5 P4 Y0 n
}9 y- k% w# \, W1 E

  H% f6 R% |, v9 O$ j代码:
! Q0 ^' ~/ l& a- k6 ]0 |#ifdef __PARTY_FIND
, H: t1 {9 ]1 A9 v! ?void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind )
9 @$ \! [3 Y$ g1 U) ~8 q#else- w4 D7 \% j) i" p5 P" p' D  j- L
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup )6 x' @0 z+ S' E: T. y6 f) {1 e( o* d
#endif //__PARTY_FIND
" l1 U* Q; Y" s& S% L) R{$ G' C) J# ?) K( E) [; t. k& x
        CUser* pUser = g_UserMng.GetUserByPlayerID( uMemberid );
7 Q3 K: a# q: Z        CUser* pLeaderUser = g_UserMng.GetUserByPlayerID( uLeaderid );+ C8 S8 Q1 Z6 E- y4 h! {+ i  P
        5 \" D2 c+ }3 |# B. i8 d! K
        if( IsValidObj( pLeaderUser ) && IsValidObj( pUser ) )& [( x  |3 N1 R" Z8 A- P# D
        {9 g, ~$ s' s- }& c9 c
                if( !pUser->IsAuthorization( AUTH_GENERAL ) || !pLeaderUser->IsAuthorization( AUTH_GENERAL ) )! r. S" Y* l. `5 G8 Q# d  x
                {
. A3 Q; @6 I6 w0 L% s" ^                        if( !pUser->IsAuthorization( AUTH_ADMINISTRATOR ) || !pLeaderUser->IsAuthorization( AUTH_ADMINISTRATOR ) )
, [( w; a! Y1 _) \8 j' S$ {                        {
4 p; y2 J' C8 Q3 S                                pLeaderUser->AddText("没有足够的权限。");" `9 I6 Z2 Y$ ?# e& y1 s
                                pUser->AddText("没有足够的权限。");8 R7 ]7 h* B1 h( W  s
                                return;
, ?$ Q1 X+ w! Q3 Q7 @- I                        }
5 w" {: u( ~. C. {                }
. }. z9 o& ?4 N                // ???? ? ??? ?? ????.& i7 u2 J+ ?( t! k
                CWorld* pWorld = pUser->GetWorld();8 I, ]% D4 b; ~
                if( ( pWorld && pWorld->GetID() == WI_WORLD_GUILDWAR ) || pLeaderUser->GetWorld() && pLeaderUser->GetWorld()->GetID() == WI_WORLD_GUILDWAR ), B, L/ C- m; \9 b; u. j
                {                        3 h+ l7 w% K- f  [5 Z4 ]
                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );: n6 `, e) E# K6 U$ N
                        return;
: |( Z8 \' ]  m+ Q3 q                }. b8 c7 a) `. }
#if __VER >= 11 // __GUILD_COMBAT_1TO1
1 n& A, l2 O+ g! u% s                if( g_GuildCombat1to1Mng.IsPossibleUser( pUser ) ), d3 L: P+ H# q4 x
                {% J5 G0 s' Y  N# E0 ?3 [
                        pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "????? : ??????? ??? ?? ????" );
% h( O3 N; j$ \0 p+ I# V                        return;
( a) [) o& K  E) f                }7 u& Y! @9 b% b6 T2 K# s& J
#endif // __GUILD_COMBAT_1TO1
4 W) S) D+ g6 q0 G+ s5 C& ]0 t6 y; a/ s, b8 I/ E% C
#if __VER >= 8 // 8? ?? 061226 ma( v9 ~- C! v) d9 w7 ?: N
                if( 0 < pUser->m_nDuel ||  0 < pLeaderUser->m_nDuel )
, _# E4 d. o, u9 L4 O6 S6 o3 \                {$ L+ V& S: {1 {- l6 E1 c4 z* b
                        return;
5 H7 f3 n$ t2 c, D* l                }
% |2 G; l/ z3 E9 O* l1 n#endif // __VER >= 8 // 8? ?? 061226 ma( T4 |2 o! x' f8 D& |( \
                9 i& P; _6 R: u9 `, l
                if( pLeaderUser->m_nDuel == 2 )9 ?1 [: L# c) w8 v7 h, S9 h$ r
                {                        # v# C, O8 M; `4 c4 [5 S7 @7 }
                        pLeaderUser->AddDefinedText( TID_GAME_PPVP_ADDPARTY, "" );                // ?? ???? ?? ???./ o4 s; m  O& f
                }
% O3 ]  S: `# e% |2 i% Z# e$ e' v                else
0 _2 t  g; W1 G0 [' T- ~4 P5 {                {9 Q% K* B$ J- P0 {
                        if( 0 < (CMover*)pUser->GetPartyId() )        // ?? ??? ???
$ m( H* }: r6 [2 E1 ?8 x( \                        {: |  G! a/ O3 D+ R! y* h' c" w, ]
                                pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 1 );
  Q$ y& k3 G: }5 ?0 S" A                        }; {' ]. U3 w/ e3 {
                        else3 b2 S$ K/ h/ D! V4 n3 G  k
                        {' ?$ m- A% i% j, [2 ], p% K6 y2 r4 l
                                if( pUser->IsAttackMode() )
( G5 r2 m5 g  L7 v) l                                        pLeaderUser->AddDefinedText( TID_GAME_BATTLE_NOTPARTY, "" );
8 ?4 k+ i2 L1 e7 O( R                                else! v" B- O1 M* o' i
#ifdef __PARTY_FIND9 `1 |7 o5 a# U0 Y/ K0 a
                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup, bPartyFind );
- @  J- p3 j' X$ O3 [8 g#else6 Q3 Q% D/ @  V& _
                                        pUser->AddPartyRequest( pLeaderUser, pUser, bTroup );
5 w6 T% ]+ U# V# |3 p2 w. `, f#endif //__PARTY_FIND' R9 k: s9 v" k: C1 K7 Y
                        }
3 e' f; k) L# {2 o                }
& t" ?6 x3 s( o- x" e. V( J        }7 m6 }7 g' A/ Z
        else+ T' q; b. R2 K7 b4 F$ P2 `
        {
( m  x8 [- S( V2 w2 H3 w' q  [                if( IsValidObj( pLeaderUser ) )) R$ {7 Z4 B4 k% v! g' Y) t
                        pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 4 );0 s/ I% U) w  b. n1 o
        }4 H# s) a% @0 y' K4 z6 n5 b$ q
}# D, i% Q7 i7 \, K

' W: d& e* v" v" |5 r: k/ [$ R4 gUser.cpp:
4 u5 h4 q( T, R, W0 R代码:
3 J/ M3 F! r) ~0 p#ifdef __PARTY_FIND
  k( L2 w* Z+ R9 B! V. Bvoid CUser::AddPartyAllowJoin( BOOL bAllow ); o! n7 Z3 ]7 Q' ]0 x' V  J' e
{
+ n+ V# g9 c; D2 `( F        if( IsDelete() ) return;
! B9 H& X1 r* U6 q& G$ J, N1 Z
7 B; m+ m# H& E+ E( Q* a        m_Snapshot.cb++;
6 q" R% ~, a" ?1 I7 `; v9 ^% h        m_Snapshot.ar << GetId();. E4 o7 m  Y4 l: I# v
        m_Snapshot.ar << SNAPSHOTTYPE_PARTYALLOW;8 e8 z1 ]3 j. p
        m_Snapshot.ar << bAllow;
+ P9 w9 H- W0 h( F2 g1 i1 V}. U' L: P9 _. }( ~1 Q4 u+ t3 b
#endif //__PARTY_FIND
5 K1 T+ P. L' W
, t* d; m& W1 N: y代码:
# `8 ~* W* m# }7 z$ t#ifdef __PARTY_FIND( P  s0 N7 @; R# @/ T% u: H
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind )- X3 X$ |3 v2 U
#else
. l1 m# }, Y5 t/ F4 F! X! Cvoid CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup )
# w# E0 \5 w1 e( r9 \7 s#endif //__PARTY_FIND/ n$ c+ t: e/ s
{
; B# ]# K7 ]# v        if( IsDelete() )        return;
" u: \' _& O  S5 d+ ?       
* S2 T$ Y9 R1 O        m_Snapshot.cb++;1 o/ c0 K# N( {. q: Y
        m_Snapshot.ar << GetId();
  ], l" L! p" |+ w        m_Snapshot.ar << SNAPSHOTTYPE_PARTYREQEST;
7 z1 y6 k  z/ x' d1 N, A* }        m_Snapshot.ar << pLeader->m_idPlayer << pLeader->m_nLevel << pLeader->m_nJob << pLeader->GetSex();( D* @& }' K2 J$ Q3 J
        m_Snapshot.ar << pMember->m_idPlayer << pMember->m_nLevel << pMember->m_nJob << pMember->GetSex();
) |4 p8 ~7 V9 T$ o9 o, k        m_Snapshot.ar.WriteString( pLeader->m_szName );& T' B$ z, o. {; z% r
        m_Snapshot.ar << bTroup. K9 Z* G& C9 d& w, ~7 ]
#ifdef __PARTY_FIND0 M& r: }7 Y9 i) |8 R
                << bPartyFind: a" h+ ?$ B* I, B. U3 l9 a
#endif //__PARTY_FIND5 i6 |% @% s6 k# M# l% g6 x: }; @
                ;5 o3 ]" i- k0 V9 }
        ' b) @2 w! b" b( y6 H! {' e5 O7 u
}
2 W- s  O5 f1 M$ Y4 c& r& c5 F! s! i+ Q- ~2 b5 L8 L& N$ |
DPSrvr.h(公共范围PLS)
, L3 j! q6 ~5 x( i& T2 D代码:
+ p5 _. m: n7 f) l& [$ \' @! o#ifdef __PARTY_FIND
$ ]( s- h7 N9 y' M  x( x        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind );
/ F3 L5 [( l7 X" c* p( _, ]#else# U- O% ~3 X0 C. P
        void        InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup );2 ~* e2 @" h0 N/ Z- }
#endif //__PARTY_FIND
% h$ D. O4 |! h
' {! `& x: H' h5 `4 r  e" r代码:7 Z. N" A) g" |: P  Q3 M8 K- t
#ifdef __PARTY_FIND# U: z2 ]& v! u0 g7 {0 j# o
        void        OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
' Z* `+ H: o, |#endif //__PARTY_FIND- F: R' F% B( M0 q$ Y* P8 _

  y/ h! o/ G* {3 vUser.h(以及):% ~" M1 o) l4 r
代码:' `: }5 f# F+ L9 E2 I! M8 r
#ifdef __PARTY_FIND
8 s3 \( \: ]- _1 U' d        void                        AddPartyAllowJoin( BOOL bAllow );. P9 ]6 G4 \1 R; ^+ Y/ w" t
        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind );
3 w$ \3 L5 g; h5 _#else: ~/ f  j# M5 Y: ^+ N
        void                        AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup );
6 ]! I9 x5 [  I#endif //__PARTY_FIND
3 |2 ]) Y2 H+ c9 Y- b0 L
" ^3 L: [: z5 @) U7 c% p" \2 `, |party.h:
5 N7 K. U8 e, L/ N代码:
. J) U1 s9 w5 E' s2 u6 }/ N/ {#ifdef __PARTY_FIND3 N( _' @" L' K9 F
        BOOL        m_bAllowEnter;6 r- U6 |7 r) W! C/ o
#endif, l0 Z, B0 m, o& a1 K# D
3 [( |9 P- R2 [$ P
代码:
5 M& p% b7 Z  W3 e5 m. p) Q9 c#ifdef __PARTY_FIND
$ l2 ~7 x3 Y+ `5 _        CParty* GetPartyFree();
, o/ H! f& P* f, Y" j#endif9 y- V+ v6 V5 C) S, p
1 j. x2 j+ w0 k6 g$ O0 e1 J7 L# S
WndParty.cpp:  M1 m1 a& X. `% I
OnChildNotify:
+ h( B/ m- ^: U( _% k代码:
7 ]; p% [, Y: x( ?, k. N% k#ifdef __PARTY_FIND
  h; e  s! s! U6 Y        else if( nID == WIDC_CHECK1 )
; U4 w" d7 M3 G2 J        {( a6 I3 z" g4 |5 X7 e% |/ p
                if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) ), N9 R2 t4 R. u6 F  ~1 o+ K6 H
                {
7 u( k: Y1 [4 P" h, I3 }                        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
& n5 w, B: j+ U. T  m' U$ I& q                        g_Party.m_bAllowEnter = !chk->GetCheck();
; o& x6 A( J5 k3 X+ t                        g_DPlay.SendAllowParty( g_pPlayer->m_idPlayer, g_Party.m_uPartyId, g_Party.m_bAllowEnter );
4 s  k3 x, T  L5 ?& ^  i4 I                }0 d% V  N7 K: F. E2 N/ Z# s
        }. S. @9 z" B0 d# ^+ g$ N
#endif //__PARTY_FIND
9 e3 V8 O5 n7 [2 ]: I7 [$ ^
8 |% W+ D& {" l! [0 ^; A+ Z3 Z3 \代码:
: @7 f& D/ B2 k" d7 eOnDraw中:
7 Z7 Y5 y. r  I8 N2 y代码:
; [; g/ }2 R1 q8 t4 j#ifdef __PARTY_FIND; H2 z" e( h& l! n' {; O
        CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
) _, i! I5 n8 i5 Q& H1 J, T$ _" H/ m        if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
- W  X1 Y# H" g' O                chk->EnableWindow( TRUE );' f# H$ I) t2 G" p; [. h# |
        else" P6 o6 S9 \5 u2 a  E: L8 F1 A+ X
                chk->EnableWindow( FALSE );8 W& l  G' ^8 f: v
        chk->SetCheck( !g_Party.m_bAllowEnter );
9 ~# p5 V* Y5 Q#endif. d8 D+ W% Y2 l+ E2 U, z, Z; b
, w; \3 o8 H+ ?3 ~
DPClient.h(public):
$ N+ q8 L+ F8 z/ U代码:
8 }6 x! e; Q$ d) N, q% u0 b. x0 ?1 o8 z#ifdef __PARTY_FIND
; g- k4 s- l# p( R1 a; Q& \        void        OnPartyAllowJoin( CAr& ar );/ B: z% C: h- ?3 G# s/ V7 f2 ^- o
        void        SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow );; L8 G2 c1 m; `- _# Y# M
#endif //__PARTY_FIND3 i3 l6 Z1 b, Z7 w' J1 j
$ l& X9 n7 V- d2 T' O# Y3 f& S/ }

- Z0 \: m5 H7 a1 ~- MWERS hinbekommt没有,请让赫克的权利。
# e) ]& V8 Y  p( A' e4 }6 x$ n不支持左右,所以难不...
! r+ P( y& \" K# R党k的Windows NT甚至编辑它自己。+ m3 J! x9 j1 j6 M2 x
包也,因为我不erschreiben进一步如果我你的。
2 A4 A9 l  y8 L6 z4 l7 H由于缺少Quantité k n个代码是什么升工程前。) f+ @& g9 A2 E
如果是这样的。请发表。$ y" t- Z; q) S, R
到目前为止,Pumbaaa1 x$ s3 S6 ?. R7 W1 D
        9 B% P; J. k* I4 O
        ' |7 p1 p8 Y6 X8 v& n+ m
MsgHdr.h
* a7 w4 f0 d$ v6 A#define SNAPSHOTTYPE_PARTYALLOW (WORD)0x8863. e$ J6 e8 E% k0 n+ c
#define PACKETTYPE_ALLOW_PARTY (DWORD)0x88100243
2 ]$ ^% ~7 f) m3 V0 }5 p% }7 Z& _9 S6 V* f! C( w. @

  h0 v9 @1 D2 \
/ t" k" N" x3 Z, q$ {
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-16 08:03 , Processed in 0.076733 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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