Kleine Frage[Source]

02/09/2011 23:00 Own55#1
hallo epvp's :D

ich hab eine kleine frage an die source erfahrenen.

ich möchte gm commands wie /count für user nutzbar machen... muss ich dann nur irgendwo das "auth" in general ändern ? ich gebe zu hab keine c++ erfahrung aber die braucht man nicht, man muss nur lesen können aber ich frag hierbei lieber da ich mir sehr unsicher bin wie ich das anstellen soll :X


lg
02/09/2011 23:16 Flyff_Service#2
jo nur das auth ändern aber ich würde an deiner stelle einen neuen command hinzufügen^^

(nicht vergessen Neuz und WorldServer neu zu kompilieren)
02/10/2011 01:02 Own55#3
Quote:
Originally Posted by Flyff_Service View Post
jo nur das auth ändern aber ich würde an deiner stelle einen neuen command hinzufügen^^

(nicht vergessen Neuz und WorldServer neu zu kompilieren)
am liebsten würd ich den force kill server command leechen und ändern.

z.b /w count

dafür müsste ich den count command nur kopieren aber wie ich diesen unter /w bekomme ist mir noch unbekannt.

x.x
02/10/2011 01:11 Flyff_Service#4
Code:
if(0 == strcmp("count", scanner.Token)
{
	g_DPCoreClient.SendGetPlayerCount( pUser->m_idPlayer );

	char szCount[128]	= { 0, };
	sprintf( szCount, "%d", g_UserMng.GetCount() );
	pUser->AddText( szCount );
return TRUE;
}
Das kommt dahin
Code:
	scanner.GetToken();

	HIER!

	if( strcmp( pUser->GetName(), scanner.Token ) )
02/10/2011 05:08 Own55#5
Code:
BOOL TextCmd_CreateItem( CScanner& scanner )       
{
	scanner.GetToken();

#ifdef __CLIENT
	// Ŭ¶óÀÌ¾ðÆ®¿¡¼*
	if( scanner.tok == FINISHED )
	{
		if( g_WndMng.GetWndBase( APP_ADMIN_CREATEITEM ) == NULL )
		{
			CWndAdminCreateItem* pWndAdminCreateItem = new CWndAdminCreateItem;
			pWndAdminCreateItem->Initialize();
		}
		return FALSE;
	}
	return TRUE;
#else   // __CLIENT
	DWORD dwNum;
	DWORD dwCharged		= 0;
	ItemProp* pProp	= NULL;

	if( scanner.tokenType == NUMBER )
		pProp	= prj.GetItemProp( _ttoi( scanner.Token ) );
	else
		pProp	= prj.GetItemProp( scanner.Token );

	if( pProp && pProp->dwItemKind3 != IK3_VIRTUAL )
	{
		if( pProp->dwItemKind3 == IK3_EGG && pProp->dwID != II_PET_EGG )	// ¸®¾îÆêÀ» »ý¼ºÇÏ·Á°í ÇÒ °æ¿ì "¾Ë"ÀÎ °æ¿ì¸¸ »ý¼º °¡´ÉÇÏ´Ù.
			return TRUE;

		dwNum	= scanner.GetNumber();
		dwNum	= ( dwNum == 0? 1: dwNum );
		dwCharged	= scanner.GetNumber();
		dwCharged	= ( dwCharged == 0 ? 0 : 1 );
		
		CItemElem itemElem;
		itemElem.m_dwItemId		= pProp->dwID;
		itemElem.m_nItemNum		= (short)( dwNum );
		itemElem.m_nHitPoint	= -1;
		itemElem.m_bCharged		= dwCharged;

		CUser* pUser	= (CUser*)scanner.dwValue;
		pUser->CreateItem( &itemElem );
	}
#endif	// !__CLIENT 
	return TRUE;
}

BOOL TextCmd_CreateItem3( CScanner& scanner )       
{
	scanner.GetToken();

#ifdef __CLIENT
	// Ŭ¶óÀÌ¾ðÆ®¿¡¼*
	if( scanner.tok == FINISHED )
	{
		if( g_WndMng.GetWndBase( APP_ADMIN_CREATEITEM ) == NULL )
		{
			CWndAdminCreateItem* pWndAdminCreateItem = new CWndAdminCreateItem;
			pWndAdminCreateItem->Initialize();
		}
		return FALSE;
	}
	return TRUE;
#else   // __CLIENT
	DWORD dwNum;
	DWORD dwCharged		= 0;
	ItemProp* pProp	= NULL;

	if( scanner.tokenType == NUMBER )
		pProp	= prj.GetItemProp( _ttoi( scanner.Token ) );
	else
		pProp	= prj.GetItemProp( scanner.Token );

	if( pProp && pProp->dwItemKind3 != IK3_VIRTUAL )
	{
		if( pProp->dwItemKind3 == IK3_EGG && pProp->dwID != II_PET_EGG )	// ¸®¾îÆêÀ» »ý¼ºÇÏ·Á°í ÇÒ °æ¿ì "¾Ë"ÀÎ °æ¿ì¸¸ »ý¼º °¡´ÉÇÏ´Ù.
			return TRUE;

		dwNum	= scanner.GetNumber();
		dwNum	= ( dwNum == 0? 1: dwNum );
		dwCharged	= scanner.GetNumber();
		dwCharged	= ( dwCharged == 0 ? 0 : 1 );
		
		CItemElem itemElem;
		itemElem.m_dwItemId		= pProp->dwID;
		itemElem.m_nItemNum		= (short)( dwNum );
		itemElem.m_nHitPoint	= -1;
		itemElem.m_bCharged		= dwCharged;

		CUser* pUser	= (CUser*)scanner.dwValue;
		pUser->CreateItem( &itemElem );
	}
#endif	// !__CLIENT 
	return TRUE;
}
muss ich da auch nur
Code:
BOOL TextCmd_CreateItem( CScanner& scanner )       
{
löschen und unter
Code:
scanner.GetToken();
das hier einfügen nur mit eingenem wort ?
Code:
if(0 == strcmp("[COLOR="Red"]count[/COLOR]", scanner.Token)
{
und danke für die hilfe. mach richtig spaß die commands zu editieren aber würd noch gerne das oben genannte wissen damit ich z.b über /w den createitem command nutzen kann
lg
02/10/2011 15:39 Flyff_Service#6
Code:
if(0 == strcmp("createitem", scanner.Token)
{
	scanner.GetToken();
	DWORD dwNum;
	DWORD dwCharged		= 0;
	ItemProp* pProp	= NULL;

	if( scanner.tokenType == NUMBER )
		pProp	= prj.GetItemProp( _ttoi( scanner.Token ) );
	else
		pProp	= prj.GetItemProp( scanner.Token );

	if( pProp && pProp->dwItemKind3 != IK3_VIRTUAL )
	{
		if( pProp->dwItemKind3 == IK3_EGG && pProp->dwID != II_PET_EGG )	// ¸®¾îÆêÀ» »ý¼ºÇÏ·Á°í ÇÒ °æ¿ì "¾Ë"ÀÎ °æ¿ì¸¸ »ý¼º °¡´ÉÇÏ´Ù.
			return TRUE;

		dwNum	= scanner.GetNumber();
		dwNum	= ( dwNum == 0? 1: dwNum );
		dwCharged	= scanner.GetNumber();
		dwCharged	= ( dwCharged == 0 ? 0 : 1 );
		
		CItemElem itemElem;
		itemElem.m_dwItemId		= pProp->dwID;
		itemElem.m_nItemNum		= (short)( dwNum );
		itemElem.m_nHitPoint	= -1;
		itemElem.m_bCharged		= dwCharged;

		pUser->CreateItem( &itemElem );
	}
}
So müsste es funktionieren habs nicht getestet^^