Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Flyff > Flyff Private Server > Flyff PServer Guides & Releases
You last visited: Today at 12:11

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #1
 
Pumbaaa's Avatar
 
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
[Source Rel]Funktionierender Partyfinder

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
Pumbaaa is offline  
Thanks
28 Users
Old 09/06/2011, 17:56   #2
 
elite*gold: 0
Join Date: Dec 2010
Posts: 463
Received Thanks: 97
Echt nice Release werde es mal ausprobieren :P THX hast du
MysticAngelz is offline  
Old 09/06/2011, 18:00   #3
 
KauGum's Avatar
 
elite*gold: 0
Join Date: Aug 2011
Posts: 134
Received Thanks: 45
Nice *thanks geb*
KauGum is offline  
Old 09/06/2011, 18:00   #4
 
elite*gold: 30
Join Date: Oct 2010
Posts: 1,509
Received Thanks: 849
Kann mich dem nur anschließen
Fullscreen is offline  
Old 09/06/2011, 18:08   #5
 
Pumbaaa's Avatar
 
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
Screens added und Fehler in der party.h behoben(__FIND_PARTY anstatt __PARTY_FIND benutzt xD)
Pumbaaa is offline  
Thanks
2 Users
Old 09/06/2011, 19:09   #6

 
マリブ's Avatar
 
elite*gold: 12
The Black Market: 117/0/0
Join Date: Jun 2011
Posts: 2,512
Received Thanks: 1,062
Und zu mir sagen du Releast das nich xD Knecht q.q
マリブ is offline  
Thanks
1 User
Old 09/06/2011, 20:36   #7
 
elite*gold: 0
Join Date: Jan 2008
Posts: 130
Received Thanks: 78
Maybe it's just me, however this seems to be missing something as when u compile you get errors with it lol.

So here's what i did to fix it and it seems to work without issue.

MsgHdr.h
#define SNAPSHOTTYPE_PARTYALLOW (WORD)0x8863
#define PACKETTYPE_ALLOW_PARTY (DWORD)0x88100243

Hopefully this may help those who have a similar issue.
Sammyz is offline  
Old 09/06/2011, 20:41   #8
 
Pumbaaa's Avatar
 
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
Quote:
Originally Posted by Pumbaaa View Post
Packets auch, da ich nicht weiß, ob meine eure überschreiben.
Also packets, because idk whether they overwrite yours.
Pumbaaa is offline  
Thanks
1 User
Old 09/06/2011, 20:47   #9
 
elite*gold: 0
Join Date: Jan 2008
Posts: 130
Received Thanks: 78
Quote:
Originally Posted by Pumbaaa View Post
Also packets, because idk whether they overwrite yours.
Sorry, i have to translate german to english and i didn't see that to well i see it now solely because you pointed it out, so my apologies nice and solid release +1.

Thanks.
Sammyz is offline  
Thanks
1 User
Old 09/06/2011, 22:18   #10
 
elite*gold: 59
Join Date: Aug 2009
Posts: 1,595
Received Thanks: 490
Kriegt das eig jemand ohne error compield? xD

Kriege das hier beim WS:

Code:
WorldServer error LNK2019: unresolved external symbol "public: class CParty * __thiscall CPartyMng::GetPartyFree(void)" (?GetPartyFree@CPartyMng@@QAEPAVCParty@@XZ) referenced in function "int __cdecl TextCmd_getparty(class CScanner &)" (?TextCmd_getparty@@YAHAAVCScanner@@@Z)
.Tear is offline  
Old 09/08/2011, 10:11   #11
 
elite*gold: 0
Join Date: Mar 2011
Posts: 715
Received Thanks: 598
WEW WIE GEIL WIE DU MACH DAS ???

Mal ehrlich. Dieses "Feature" ist der größte scheis.

1. Läuft es nicht über den CoreServer (Server1 party offen, Server2 sucht einer party und findet die party auf Server1 nicht da es nicht über Core gehandelt wird).

2. DU sendest die m_idPlayer mit und vergleichst dann vom Absender die m_idPlayer und die mitgesendete? O_O
Was das für eine riesen kacke lol. Nimm doch gleich die m_idPlayer vom Sender des Packets.. -.-

3. Schön das du überall neue Bools addest. Das ist so schwachsinnig wie alles was ich hier jemals gesehen habe. Wenn du scharf nachdenkst weist du wie du das anderst umsetzen kannst.


Für mich ein No-Go Script. Deswegen meine Empfehlung: Niemals einbauen.
yannickminecraft is offline  
Old 09/08/2011, 10:21   #12

 
マリブ's Avatar
 
elite*gold: 12
The Black Market: 117/0/0
Join Date: Jun 2011
Posts: 2,512
Received Thanks: 1,062
Quote:
Originally Posted by yannickminecraft View Post
WEW WIE GEIL WIE DU MACH DAS ???

Mal ehrlich. Dieses "Feature" ist der größte scheis.

1. Läuft es nicht über den CoreServer (Server1 party offen, Server2 sucht einer party und findet die party auf Server1 nicht da es nicht über Core gehandelt wird).

2. DU sendest die m_idPlayer mit und vergleichst dann vom Absender die m_idPlayer und die mitgesendete? O_O
Was das für eine riesen kacke lol. Nimm doch gleich die m_idPlayer vom Sender des Packets.. -.-

3. Schön das du überall neue Bools addest. Das ist so schwachsinnig wie alles was ich hier jemals gesehen habe. Wenn du scharf nachdenkst weist du wie du das anderst umsetzen kannst.


Für mich ein No-Go Script. Deswegen meine Empfehlung: Niemals einbauen.


Dann mach doch ein besseres und Release es o_o
マリブ is offline  
Old 09/08/2011, 10:29   #13
 
elite*gold: 0
Join Date: Mar 2011
Posts: 715
Received Thanks: 598
Quote:
Originally Posted by Malibux33 View Post
Dann mach doch ein besseres und Release es o_o
Das Colosseum war mein letzes Feature das ich gemacht habe und das bleibt so.
Eventuell mach ich noch einige Features in paar Monaten wenn ich wieder mehr Zeit habe.

Aber das teil kann sich eigentlich jeder selbst zusammenbasteln der sich mehr als 1 Stunde mit dem Source befasst hat. Ist ja eigentlich fast nur Copy n' Paste was der da released hat lol.
yannickminecraft is offline  
Old 09/08/2011, 13:20   #14
 
elite*gold: 455
Join Date: Jun 2009
Posts: 1,601
Received Thanks: 1,103
Quote:
Originally Posted by yannickminecraft View Post
Das Colosseum war mein letzes Feature das ich gemacht habe und das bleibt so.
Eventuell mach ich noch einige Features in paar Monaten wenn ich wieder mehr Zeit habe.

Aber das teil kann sich eigentlich jeder selbst zusammenbasteln der sich mehr als 1 Stunde mit dem Source befasst hat. Ist ja eigentlich fast nur Copy n' Paste was der da released hat lol.
Respekt von meiner Seite hast du für deine Arbeit Yannick, jedoch:

Nur weil du dich damit mehr oder weniger auskennst, darfst du es nicht immer
so einfach nehmen und andere Leute "anmotzen" o.ä.

Es ist von der Sinn her Copy and Paste, nur kann das niemand der keine
Programmiererfahrungen spezifisch C++ gemacht hat.
Flash! is offline  
Old 09/08/2011, 19:17   #15
 
420twisted1's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 181
Received Thanks: 23
Is yannick saying that this only works on s1?
420twisted1 is offline  
Reply

Tags
flyff, partyfinder, pumbaaa, source


Similar Threads 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 +1. The time now is 12:13.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.