pet.cpp debug fehler World

05/09/2013 21:05 ©ross#1
nabend zusammen,

nachdem mein Worldserver fast jede 2minuten Crasht wollte ich ihn mal debuggen.
Klappte bisher auch gut, bis zu diesem Fehler:
[Only registered and activated users can see links. Click Here To Register...]

Die Zeile ist:
Code:
assert( pItem );
Die Ganze Funktion:
Code:
BOOL CTransformItemProperty::LoadScript( const char* szFile )
{
	CScript s;
	if( s.Load( szFile ) == FALSE )
		return FALSE;

	int nTransform	= s.GetNumber();		// subject or FINISHED
	while( s.tok != FINISHED )
	{
		CTransformItemComponent* pComponent		= new CTransformItemComponent( nTransform );
		AddComponent( pComponent );
		s.GetToken();	// {
		s.GetToken();	// subject or '}'
		while( *s.token != '}' )
		{
			if( s.Token == _T( "stuff" ) )
			{
				pComponent->SetStuffSize( s.GetNumber() );
			}
			else if( s.Token == _T( "item" ) )
			{
				s.GetToken();	// {
				int nProb	= s.GetNumber(); //
				while( *s.token != '}' )
				{
					int nType	= s.GetNumber();
					CItemElem* pItem;
					if( nType == TI_GENERIC )
						pItem	= CreateItemGeneric( s );
					else if( nType == TI_PET )
						pItem	= CreateItemPet( s );
					assert( pItem ); //<-- da geht der debugger hin!
					pComponent->AddElement( TransformItemElement( pItem, nProb ) );
					nProb	= s.GetNumber();
				}
				AddComponent( pComponent );
			}
			s.GetToken();
		}
		nTransform	= s.GetNumber();
	}
	return TRUE;
}
Ich selbst weis nicht woran der Fehler liegt, da ich einfach zuwenig C++ behersche ...

Bevor jemand meckern möchte:
Denkt mal dran wie ihr angefangen habt....

MfG
Cross
05/09/2013 21:12 Velmore#2
Ich sehe keinen Fehler aber hier mal meine Funktion

Code:
BOOL CTransformItemProperty::LoadScript( const char* szFile )
{
	CScript s;
	if( s.Load( szFile ) == FALSE )
		return FALSE;

	int nTransform	= s.GetNumber();		// subject or FINISHED
	while( s.tok != FINISHED )
	{
		CTransformItemComponent* pComponent		= new CTransformItemComponent( nTransform );
		AddComponent( pComponent );
		s.GetToken();	// {
		s.GetToken();	// subject or '}'
		while( *s.token != '}' )
		{
			if( s.Token == _T( "stuff" ) )
			{
				pComponent->SetStuffSize( s.GetNumber() );
			}
			else if( s.Token == _T( "item" ) )
			{
				s.GetToken();	// {
				int nProb	= s.GetNumber();
				while( *s.token != '}' )
				{
					int nType	= s.GetNumber();
					CItemElem* pItem;
					if( nType == TI_GENERIC )
						pItem	= CreateItemGeneric( s );
					else if( nType == TI_PET )
						pItem	= CreateItemPet( s );
					assert( pItem );
					pComponent->AddElement( TransformItemElement( pItem, nProb ) );
					nProb	= s.GetNumber();
				}
				AddComponent( pComponent );
			}
			s.GetToken();
		}
		nTransform	= s.GetNumber();
	}
	return TRUE;
}
05/09/2013 21:21 ©ross#3
leider haargenau die gleiche :x

Verstehe es atm net

btw er liest dort die datei:

transformitem.inc ein
05/09/2013 22:46 Jopsi332#4
lies dir das mal durch
[Only registered and activated users can see links. Click Here To Register...]

hast du mal eine Standart / anTransformitem.inc genutzt? / Darin die Items überprüft?
05/09/2013 22:51 ©ross#5
ist alles standart - leider weis ich aber nicht welchen sinn diese datei verfolgt