Source Problems

09/03/2016 22:20 Marc~#1
Hab mal ein paar Probleme in der Source ich stock hier mal nach und nach auf.

#1
SendItem System
Habe mich mal an einem SendItem System versucht, ist grundlegend der CI Code erweitert durch eine Characterabfrage, jedoch sendet es kein Item. Würde mich über einen Denkanstoß oder eine Lösung freuen!
Lösung:

Dankeschön im Vorhinein!
09/03/2016 23:00 Blouflash#2
Jopsi wieder am failen.

Code:
BOOL TextCmd_SendItem( CScanner& scanner )
{
#ifdef __WORLDSERVER
	scanner.GetToken();
	CUser* pUser = (CUser*)scanner.dwValue;

	u_long idPlayer = CPlayerDataCenter::GetInstance()->GetPlayerId(scanner.token);
	CUser* pUserTarget = static_cast<CUser*>(prj.GetUserByID(idPlayer));

	if (!IsValidObj(pUserTarget))
	{
		pUser->AddText("Invalid target");
		return TRUE;
	}

	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;

		pUserTarget->CreateItem( &itemElem );
	}
#endif	// __WORLDSERVER 
	return TRUE;
}
Habs getestet und es geht.
09/03/2016 23:03 Marc~#3
Dankeschön, funktioniert.
09/03/2016 23:05 Kiseku#4
Code:
	if (!IsValidObj(pUser))
	{
		pUser->AddText("Invalid target");
		return TRUE;
	}
AddText ist sehr sinnvoll
@[Only registered and activated users can see links. Click Here To Register...]

da fehlt noch :
Code:
	if (!IsValidObj(pUser))
	{
		return FALSE;
	}