|
You last visited: Today at 15:06
Advertisement
[Source Rel]Funktionierender Partyfinder
Discussion on [Source Rel]Funktionierender Partyfinder within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.
09/08/2011, 19:54
|
#16
|
elite*gold: 0
Join Date: Jun 2010
Posts: 33
Received Thanks: 28
|
Quote:
Originally Posted by 420twisted1
Is yannick saying that this only works on s1?
|
Yeah as i understood :d
|
|
|
09/09/2011, 02:15
|
#17
|
elite*gold: 0
Join Date: Mar 2011
Posts: 715
Received Thanks: 598
|
Quote:
Originally Posted by 420twisted1
Is yannick saying that this only works on s1?
|
Yep! The Code only work with the Worldserver (Worldserver: is 1 server not all! Cache Server is all Servers).
Server 1 Worldserver dont know the Partys from Server2 Worldserver.
|
|
|
09/09/2011, 07:18
|
#18
|
elite*gold: 0
Join Date: Jan 2008
Posts: 181
Received Thanks: 23
|
Quote:
Originally Posted by yannickminecraft
Yep! The Code only work with the Worldserver (Worldserver: is 1 server not all! Cache Server is all Servers).
Server 1 Worldserver dont know the Partys from Server2 Worldserver.
|
thanks for letting us know im sure it can be edited to allow it to be a multi server party finder
|
|
|
09/09/2011, 10:20
|
#19
|
elite*gold: 0
Join Date: Mar 2008
Posts: 665
Received Thanks: 227
|
Quote:
Originally Posted by yannickminecraft
Yep! The Code only work with the Worldserver (Worldserver: is 1 server not all! Cache Server is all Servers).
Server 1 Worldserver dont know the Partys from Server2 Worldserver.
|
And that's wrong? In Flyff you can't invite members from different channel.
|
|
|
09/09/2011, 11:29
|
#20
|
elite*gold: 0
Join Date: Jan 2008
Posts: 181
Received Thanks: 23
|
when you type /getparty what happens? does it add you to a random party or does a list pop up so that you may choose which party you wish to join?
|
|
|
09/09/2011, 12:08
|
#21
|
elite*gold: 0
Join Date: Jul 2010
Posts: 108
Received Thanks: 78
|
Ich weiß nicht warum ihr euch alle Aufregt. Im Titel steht das es ein FUNKTIONIERENDER PARTYFINDER ist. Da steht nicht das es ein perfekt & gutaussehender Partyfinder ist. Lol.
|
|
|
09/09/2011, 23:58
|
#22
|
elite*gold: 0
Join Date: Mar 2011
Posts: 715
Received Thanks: 598
|
Quote:
Originally Posted by 420twisted1
when you type /getparty what happens? does it add you to a random party or does a list pop up so that you may choose which party you wish to join?
|
Its random **** :'s
|
|
|
09/13/2011, 12:00
|
#23
|
elite*gold: 0
Join Date: Sep 2011
Posts: 30
Received Thanks: 17
|
hey ich möchte es auf einen Button legen:
Habs so versucht:
PHP Code:
void CDPSrvr::JoinPartyButton( CScanner& scanner ) { #define WIDC_JOINPARTY_BUTTON 648 if ( WIDC_JOINPARTY_BUTTON ) { CUser *pUser = (CUser*)scanner.dwValue; if( pUser->m_idparty > 0 ) { pUser->AddText( "You are already in a party" ); //return TRUE; } CParty *pParty; pParty = g_PartyMng.GetPartyFree(); if( pParty ) { g_DPSrvr.InviteParty( pParty->GetLeader()->m_idPlayer, pUser->m_idPlayer, FALSE, TRUE ); }else { pUser->AddText( "Sorry, but there is no party for you" ); } } }
Aber wenn ich auf den Button klicke passiert nichts
|
|
|
11/26/2011, 07:42
|
#24
|
elite*gold: 0
Join Date: Mar 2010
Posts: 107
Received Thanks: 1
|
can anyone post the resdata.h,inc and txt??
|
|
|
12/20/2011, 14:37
|
#25
|
elite*gold: 455
Join Date: Jun 2009
Posts: 1,601
Received Thanks: 1,103
|
Für diejenigen die es noch brauchen - Google Cache ftw. :
Falls ich beim Kopieren Fehler reingeklatscht haben pm me;D
Credits natürlich an Pumbaaa.
FuncTextCmd.cpp:
Code:
#ifdef __PARTY_FIND
BOOL TextCmd_getparty( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser *pUser = (CUser*)scanner.dwValue;
if( pUser->m_idparty > 0 )
{
pUser->AddText( "You are already in a party" );
return TRUE;
}
CParty *pParty;
pParty = g_PartyMng.GetPartyFree();
if( pParty )
{
g_DPSrvr.InviteParty( pParty->GetLeader()->m_idPlayer, pUser->m_idPlayer, FALSE, TRUE );
}else
{
pUser->AddText( "Sorry, but there is no party for you" );
}
#endif
return TRUE;
}
#endif //__PARTY_FIND
Code:
BOOL TextCmd_PartyInvite( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
MoverProp* pMoverProp = NULL;
scanner.GetToken();
#if __VER >= 11 // __SYS_PLAYER_DATA
u_long uidPlayer = CPlayerDataCenter::GetInstance()->GetPlayerId( scanner.token );
#else // __SYS_PLAYER_DATA
u_long uidPlayer = prj.GetPlayerID( scanner.Token );
#endif // __SYS_PLAYER_DATA
if( 0 < uidPlayer )
{
CUser* pUser2 = g_UserMng.GetUserByPlayerID( uidPlayer );
if( IsValidObj( pUser2 ) )
#ifdef __PARTY_FIND
g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE, FALSE );
#else
g_DPSrvr.InviteParty( pUser->m_idPlayer, pUser2->m_idPlayer, FALSE );
#endif //__PARTY_FIND
else
pUser->AddDefinedText( TID_DIAG_0060, "\"%s\"", scanner.Token );
}
else
{
pUser->AddDefinedText( TID_DIAG_0061, "\"%s\"", scanner.Token );
}
#endif // __WORLDSERVER
return TRUE;
}
Code:
#ifdef __PARTY_FIND
ON_TEXTCMDFUNC( TextCmd_getparty, "getParty", "getP", "", "", TCM_SERVER, AUTH_GENERAL ,"" )
#endif //__PARTY_FIND
DPClient.cpp;
Code:
void CDPClient::OnPartyRequest( CAr & ar )
{
u_long uLeader, uMember;
BOOL bTroup
#ifdef __PARTY_FIND
, bPartyFind
#endif// __PARTY_FIND
;
LONG nLeaderLevel, nMemberLevel, nLeaderJob, nMemberJob;
BYTE byLeaderSex, byMemberSex;
char szLeaderName[MAX_PLAYER] = {0,};
ar >> uLeader >> nLeaderLevel >> nLeaderJob >> byLeaderSex;
ar >> uMember >> nMemberLevel >> nMemberJob >> byMemberSex;
ar.ReadString( szLeaderName, MAX_PLAYER );
ar >> bTroup
#ifdef __PARTY_FIND
>> bPartyFind
#endif //__PARTY_FIND
;
if( g_Option.m_bParty == FALSE )
{
SendPartyMemberCancle( uLeader, uMember, 3 );
return;
}
#ifdef __S_SERVER_UNIFY
if( g_WndMng.m_bAllAction == FALSE )
return;
#endif // __S_SERVER_UNIFY
CWndBase* pWndBaseBuf = g_WndMng.GetWndBase( APP_PARTY_CONFIRM );
if( pWndBaseBuf )
{
SendBlock( 7, g_pPlayer->GetName(), szLeaderName );
return;
}
#ifdef __PARTY_FIND
if( bPartyFind )
{
SendAddPartyMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex );
}else
{
g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
g_WndMng.m_pWndPartyConfirm->Initialize();
}
#else
g_WndMng.m_pWndPartyConfirm = new CWndPartyConfirm;
g_WndMng.m_pWndPartyConfirm->SetMember( uLeader, nLeaderLevel, nLeaderJob, byLeaderSex, uMember, nMemberLevel, nMemberJob, byMemberSex, szLeaderName, bTroup );
g_WndMng.m_pWndPartyConfirm->Initialize();
#endif //__PARTY_FIND
}
Code:
#ifdef __PARTY_FIND
void CDPClient::SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow )
{
BEFORESENDSOLE( ar, PACKETTYPE_ALLOW_PARTY, DPID_UNKNOWN );
ar << idLeader << idParty << bAllow;
SEND( ar, this, DPID_SERVERPLAYER );
}
void CDPClient::OnPartyAllowJoin( CAr & ar )
{
ar >> g_Party.m_bAllowEnter;
}
#endif //__PARTY_FIND
Code:
#ifdef __PARTY_FIND
case SNAPSHOTTYPE_PARTYALLOW: OnPartyAllowJoin( ar ); break;
#endif
party.cpp:
Code:
CParty::CParty()
{
m_uPartyId = 0;
m_nSizeofMember = 0;
memset( m_sParty, 0, sizeof(m_sParty) );
m_nLevel = 1;
m_nExp = m_nPoint = 0;
m_nTroupsShareExp = m_nTroupeShareItem = 0;
m_nKindTroup = 0; // 단막극단
m_nReferens = 0;
m_nGetItemPlayerId = 0;
#ifdef __PARTY_FIND
m_bAllowEnter = TRUE;
#endif //__PARTY_FIND
for( int i = 0 ; i < MAX_PARTYMODE ; i++ )
{
m_nModeTime[i] = 0;
}
m_idDuelParty = 0;
#ifdef __WORLDSERVER
m_dwWorldId = 0;
#endif // __WORLDSERVER
}
Code:
void CParty::InitParty()
{
m_uPartyId = 0;
m_nSizeofMember = 0;
memset( m_sParty, 0, sizeof(m_sParty) );
m_nLevel = 1;
m_nExp = m_nPoint = 0;
m_nTroupsShareExp = m_nTroupeShareItem = 0;
m_nKindTroup = 0; // 단막극단
m_nReferens = 0;
#ifdef __PARTY_FIND
m_bAllowEnter = TRUE;
#endif //__PARTY_FIND
for( int i = 0 ; i < MAX_PTMEMBER_SIZE ; i++ )
{
m_aMember[i].m_uPlayerId = 0;
m_aMember[i].m_tTime = CTime::GetCurrentTime();
m_aMember[i].m_bRemove = FALSE;
#if __VER < 11 // __SYS_PLAYER_DATA
m_aMember[i].m_nLevel = m_aMember[i].m_nJob = 0;
m_aMember[i].m_szName[0] = '\0';
#endif // __SYS_PLAYER_DATA
}
}
Code:
#ifdef __PARTY_FIND
CParty* CPartyMng::GetPartyFree()
{
CParty* pParty, *pPartyTmp = NULL;
if( !m_2PartyPtr.begin()->second )
return NULL;
BOOL bRan = FALSE;
DWORD dwRand = 0;
if( m_2PartyPtr.end()->first >= 1 )
DWORD dwRand = xRandom( m_2PartyPtr.end()->first );
for( C2PartyPtr::iterator i = m_2PartyPtr.begin(); i != m_2PartyPtr.end(); ++i )
{
pParty = (CParty*)i->second;
if( pParty && pParty->GetSizeofMember() < 8 && pParty->m_bAllowEnter )
{
if( i->first > dwRand )
return pParty;
else
pPartyTmp = pParty;
}
}
return pPartyTmp;
}
#endif //__PARTY_FIND
DPSrvr.cpp:
Code:
#ifdef __PARTY_FIND
void CDPSrvr::OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
{
CUser *pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
u_long idLeader, idParty;
BOOL bAllow;
ar >> idLeader >> idParty >> bAllow;
if( idLeader != pUser->m_idPlayer )
return;
CParty *pParty = g_PartyMng.GetParty( idParty );
if( pParty && pParty->IsLeader( idLeader ) )
pParty->m_bAllowEnter = bAllow;
else
return;
CUser *pMember;
for( int i = 0; i < pParty->m_nSizeofMember; i++ )
{
pMember = (CUser*)prj.GetUserByID( pParty->m_aMember[i].m_uPlayerId );
if( IsValidObj( (CObj*)pMember ) )
pMember->AddPartyAllowJoin( pParty->m_bAllowEnter );
}
}
}
#endif //__PARTY_FIND
Code:
#ifdef __PARTY_FIND
ON_MSG( PACKETTYPE_ALLOW_PARTY, OnAllowParty );
#endif //__PARTY_FIND
Code:
void CDPSrvr::OnPartyRequest( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
u_long uLeaderid, uMemberid;
BOOL bTroup;
ar >> uLeaderid >> uMemberid;
ar >> bTroup;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) && pUser->m_idPlayer == uLeaderid )
#ifdef __PARTY_FIND
InviteParty( uLeaderid, uMemberid, bTroup, FALSE );
#else
InviteParty( uLeaderid, uMemberid, bTroup );
#endif //__PARTY_FIND
}
Code:
#ifdef __PARTY_FIND
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind )
#else
void CDPSrvr::InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup )
#endif //__PARTY_FIND
{
CUser* pUser = g_UserMng.GetUserByPlayerID( uMemberid );
CUser* pLeaderUser = g_UserMng.GetUserByPlayerID( uLeaderid );
if( IsValidObj( pLeaderUser ) && IsValidObj( pUser ) )
{
if( !pUser->IsAuthorization( AUTH_GENERAL ) || !pLeaderUser->IsAuthorization( AUTH_GENERAL ) )
{
if( !pUser->IsAuthorization( AUTH_ADMINISTRATOR ) || !pLeaderUser->IsAuthorization( AUTH_ADMINISTRATOR ) )
{
pLeaderUser->AddText("Insufficient Permissions.");
pUser->AddText("Insufficient Permissions.");
return;
}
}
// 대전장에 는 파티를 할수 없습니다.
CWorld* pWorld = pUser->GetWorld();
if( ( pWorld && pWorld->GetID() == WI_WORLD_GUILDWAR ) || pLeaderUser->GetWorld() && pLeaderUser->GetWorld()->GetID() == WI_WORLD_GUILDWAR )
{
pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "수정해야함 : 길드대전장에는 파티를 할수 없습니다" );
return;
}
#if __VER >= 11 // __GUILD_COMBAT_1TO1
if( g_GuildCombat1to1Mng.IsPossibleUser( pUser ) )
{
pLeaderUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_CANNOT_PARTY) );// "수정해야함 : 길드대전장에는 파티를 할수 없습니다" );
return;
}
#endif // __GUILD_COMBAT_1TO1
#if __VER >= 8 // 8차 듀얼 061226 ma
if( 0 < pUser->m_nDuel || 0 < pLeaderUser->m_nDuel )
{
return;
}
#endif // __VER >= 8 // 8차 듀얼 061226 ma
if( pLeaderUser->m_nDuel == 2 )
{
pLeaderUser->AddDefinedText( TID_GAME_PPVP_ADDPARTY, "" ); // 극단 듀얼중엔 초청 못함다.
}
else
{
if( 0 < (CMover*)pUser->GetPartyId() ) // 이미 파티가 있을때
{
pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 1 );
}
else
{
if( pUser->IsAttackMode() )
pLeaderUser->AddDefinedText( TID_GAME_BATTLE_NOTPARTY, "" );
else
#ifdef __PARTY_FIND
pUser->AddPartyRequest( pLeaderUser, pUser, bTroup, bPartyFind );
#else
pUser->AddPartyRequest( pLeaderUser, pUser, bTroup );
#endif //__PARTY_FIND
}
}
}
else
{
if( IsValidObj( pLeaderUser ) )
pLeaderUser->AddPartyRequestCancel( uLeaderid, uMemberid, 4 );
}
}
User.cpp:
Code:
#ifdef __PARTY_FIND
void CUser::AddPartyAllowJoin( BOOL bAllow )
{
if( IsDelete() ) return;
m_Snapshot.cb++;
m_Snapshot.ar << GetId();
m_Snapshot.ar << SNAPSHOTTYPE_PARTYALLOW;
m_Snapshot.ar << bAllow;
}
#endif //__PARTY_FIND
Code:
#ifdef __PARTY_FIND
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind )
#else
void CUser::AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup )
#endif //__PARTY_FIND
{
if( IsDelete() ) return;
m_Snapshot.cb++;
m_Snapshot.ar << GetId();
m_Snapshot.ar << SNAPSHOTTYPE_PARTYREQEST;
m_Snapshot.ar << pLeader->m_idPlayer << pLeader->m_nLevel << pLeader->m_nJob << pLeader->GetSex();
m_Snapshot.ar << pMember->m_idPlayer << pMember->m_nLevel << pMember->m_nJob << pMember->GetSex();
m_Snapshot.ar.WriteString( pLeader->m_szName );
m_Snapshot.ar << bTroup
#ifdef __PARTY_FIND
<< bPartyFind
#endif //__PARTY_FIND
;
}
DPSrvr.h(public scope pls):
Code:
#ifdef __PARTY_FIND
void InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup, BOOL bPartyFind );
#else
void InviteParty( u_long uLeaderid, u_long uMemberid, BOOL bTroup );
#endif //__PARTY_FIND
Code:
#ifdef __PARTY_FIND
void OnAllowParty( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
#endif //__PARTY_FIND
User.h(ebenso):
Code:
#ifdef __PARTY_FIND
void AddPartyAllowJoin( BOOL bAllow );
void AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup, BOOL bPartyFind );
#else
void AddPartyRequest( CUser * pLeader, CUser * pMember, BOOL bTroup );
#endif //__PARTY_FIND
party.h:
Code:
#ifdef __PARTY_FIND
BOOL m_bAllowEnter;
#endif
Code:
#ifdef __PARTY_FIND
CParty* GetPartyFree();
#endif
WndParty.cpp:
OnChildNotify:
Code:
#ifdef __PARTY_FIND
else if( nID == WIDC_CHECK1 )
{
if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
{
CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
g_Party.m_bAllowEnter = !chk->GetCheck();
g_DPlay.SendAllowParty( g_pPlayer->m_idPlayer, g_Party.m_uPartyId, g_Party.m_bAllowEnter );
}
}
#endif //__PARTY_FIND
OnDraw:
Code:
#ifdef __PARTY_FIND
CWndButton *chk = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
if( g_Party.IsLeader( g_pPlayer->m_idPlayer ) )
chk->EnableWindow( TRUE );
else
chk->EnableWindow( FALSE );
chk->SetCheck( !g_Party.m_bAllowEnter );
#endif
DPClient.h(public):
Code:
#ifdef __PARTY_FIND
void OnPartyAllowJoin( CAr& ar );
void SendAllowParty( u_long idLeader, u_long idParty, BOOL bAllow );
#endif //__PARTY_FIND
Wers nicht hinbekommt, solls bitte gleich lassen.
Kein Support oder so, so schwer ists nicht...
Party Fenster k nt ihr auch selber editieren.
Packets auch, da ich nicht wei ob meine eure erschreiben.
Aufgrund der Quantit k nte Code fehlen, ist schon etwas l ger her.
Wenn dem so ist. bitte posten.
So far, Pumbaaa
|
|
|
12/24/2011, 08:20
|
#26
|
elite*gold: 0
Join Date: Mar 2010
Posts: 107
Received Thanks: 1
|
can anyone can post here the resdata.inc and resdata.text resdata.txt.txt?
|
|
|
12/24/2011, 11:01
|
#27
|
elite*gold: 0
Join Date: Nov 2011
Posts: 395
Received Thanks: 231
|
Simply use Daisy and add a checkBox in the party window.
Just give it the ID from the Source. (WIDC_CHECK_1)
|
|
|
12/24/2011, 11:39
|
#28
|
elite*gold: 0
Join Date: Mar 2010
Posts: 107
Received Thanks: 1
|
my daisy is always crash..can you share yours??
|
|
|
06/16/2012, 11:46
|
#29
|
elite*gold: 0
Join Date: May 2012
Posts: 94
Received Thanks: 13
|
@topic , kurze hilfe bitte, ;D
Da steht immer / Beispiel : Party.cpp , dann Code ,
Soll das heißen wir sollen erst in der Party.cpp die Zeile da suchen die erstmal da steht ,und danach den Code einfügen?
Sorry, für so ne dumme frage , aber dafür kann man es genauer erklären ô.o
|
|
|
06/16/2012, 11:51
|
#30
|
elite*gold: 1
Join Date: May 2010
Posts: 676
Received Thanks: 223
|
Ist doch logisch , guck dir mal die funktionen an wo was gerufen wird . Etwas logisch nachdenken und schon klappts im notfall kansnte mich ja in skype adden .
|
|
|
Similar Threads
|
[Source] Partyfinder System
09/06/2011 - Flyff Private Server - 13 Replies
Dieses System hab ich auf einer anderen Seite gefunden, ist nicht von mir geschrieben, Credits stehen unten.
void CDPSrvr::OnPartyList( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
DWORD idPlayer;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
ar >> idPlayer;
if( pUser )
|
Funktionierender Bot?
12/18/2010 - Metin2 - 6 Replies
Hallo, wollt' fragen ob's zur Zeit einen funktionierenden Level-Bot gibt. (sollte auch gratis sein, wenns geht xD)
Er sollte auch trotz des HackShields funktionieren!
Danke!
|
funktionierender x22?
04/24/2010 - Counter-Strike - 9 Replies
Hallo.
Suche einen funktionierenden x22
der auf win7 32bit läuft, und nicht die
hl2.exe cracht...
lg
|
All times are GMT +2. The time now is 15:06.
|
|