Pet awake = crash

07/02/2012 09:56 S3lfmad3#1
Wenn ich per /awakeitem mein pet (Egg pet) erwecke crasht der worldserver why?
07/02/2012 10:13 lolix3#2
Hast du es wie /Awake im Source dazugeaddet, wenn ja gib mal den Source Abschnitt dieses Befehles.

Greetz
07/02/2012 10:24 Shiaru#3
Oder die randomoption.inc ist falsch eingestellt / irgendetwas entfernt, dann kann es auch crashen
07/02/2012 10:44 S3lfmad3#4
Ja es ist im source hab auch die dmp vom crash angeschaut und versucht zu debugen hat aber i wie nicht geklappt das schlimme ist ja das bei dem pet nicht mal das blaue kann erweckt werden steht wie auf waffen usw. da steht nur die lilane beschreibung sonst nichts hier der /awake code von mir.

PS: die dmp sagt das es die randomoption.cpp ist aber ich blicks nicht.

Quote:
BOOL TextCmd_AwakeItem( CScanner & s )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)s.dwValue;
CItemElem* pItemElem = pUser->m_Inventory.GetAt( 0 );
if( pItemElem )
{

int nCost = 1000000;
int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );

if( 0 < nCost )
{
if( pItemElem->GetProp()->dwItemKind1 == IK1_WEAPON ||
pItemElem->GetProp()->dwItemKind1 == IK1_ARMOR ||
pItemElem->GetProp()->dwItemKind3 == IK3_PET ||
pItemElem->GetProp()->dwItemKind3 == IK3_EGG )
{
if( !pItemElem->IsEgg( ) )
{
if( !pItemElem->GetProp()->IsBaruna() ) //Baruna
{ //Baruna
if( pUser->GetGold() >= nCost )
{
if ( !pUser->HasActivatedEatPet() && !pUser->HasPet() )
{
pUser->AddGold( -( nCost ) );
g_xRandomOptionProperty->InitializeRandomOption( pItemElem->GetRandomOptItemIdPtr() );
g_xRandomOptionProperty->GenRandomOption( pItemElem->GetRandomOptItemIdPtr(), nRandomOptionKind, pItemElem->GetProp()->dwParts );
pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId() );
}
else
{
pUser->AddText( "Du musst dein Pet zum erwecken einpacken." );
}
}
else
{
pUser->AddText( "Du hast nicht genug Geld um ein Item zu erwecken." );
}
}
else //Baruna
{ //Baruna
pUser->AddText( "Sorry aber Baruna Waffen kann man zurzeit nicht erwecken." ); //Baruna
} //Baruna
} //Baruna
else
{
pUser->AddText( "Du kannst das Pet erst erwecken wenn es geschlüpft ist." );
}
}
else
{
pUser->AddText( "Du kannst dieses Item nicht erwecken." );
pUser->AddText( "Lege ein Erweckbares Item in den ersten Slot deines Inventars um es zu erwecken!" );
}
}
}
else
{
pUser->AddText( "Das zu erweckende Item muss im ersten Slot deines Inventars liegen!" );
}
sry kein bock nen spoiler zu machen ^^

Sry for spam habs aber immer noch nicht gefixed bekommen ....
07/02/2012 14:12 Ultimate™#5
tausch deine randomoption.cpp aus und compilier neu, ich hatte auch das problem das war auch bei setteilen o.s

also einfach neue randomoption.cpp
07/02/2012 15:43 lolix3#6
Dieser /Awake Befehl ist von Crash gewesen, dieser hat Lücken, würd ich nicht nutzen.

Nimm lieber den erreichste das selbe, auch mit Penya Abfrage.

PHP Code:
BOOL TextCmd_GenRandomOptionCScanner )
{
#ifdef __WORLDSERVER 
    
CUserpUser = (CUser*)s.dwValue;
    
CItemElempItemElem    pUser->m_Inventory.GetAt);

    if( 
pItemElem )
    {
        
int nCost 500000;  
        
int nRandomOptionKind    g_xRandomOptionProperty->GetRandomOptionKindpItemElem );

     if( 
nCost )
     {
        if( 
nRandomOptionKind >= )
            {
            if( 
pUser->GetGold() > nCost )    
            {    
                if(
pUser->HasActivatedSystemPet() && pItemElem->GetProp()->dwItemKind3 == IK3_EGG || pUser->HasActivatedEatPet() && pItemElem->GetProp()->dwItemKind3 == IK3_PET 
                {
                    
char chMessage[100];
                    
sprintfchMessage"Hole dein Pet oder dein CS Pet rein, da du es sonst nicht erwecken kannst." );
                    
pUser->AddTextchMessage );
                }
                else
                {
                        
pUser->AddGold( -( nCost ) );
                        
g_xRandomOptionProperty->InitializeRandomOptionpItemElem->GetRandomOptItemIdPtr() );
                        
g_xRandomOptionProperty->GenRandomOptionpItemElem->GetRandomOptItemIdPtr(), nRandomOptionKindpItemElem->GetProp()->dwParts );
                        
pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMIDpItemElem->GetRandomOptItemId() );
                }
            }
            else    
                {
                
pUser->AddText"Du hast nicht genug Geld." );
                }
            }
        }
    }
    else
    {
        
pUser->AddText"Das zu erweckende Item muss im ersten Slot deines Inventars liegen!" );
    }
#endif    // __WORLDSERVER
    
return TRUE;

Greetz
07/03/2012 19:24 S3lfmad3#7
Hab den neuen /Awake von dir eingefügt [Benutze pod files] und es crasht immer wenn man ein D Klasse pet erweckt -.-
07/03/2012 19:46 Jopsi332#8
jags doch einfach mal durchn debugger und sag die stelle
07/03/2012 19:49 Shiaru#9
Quote:
Originally Posted by S3lfmad3 View Post
Hab den neuen /Awake von dir eingefügt [Benutze pod files] und es crasht immer wenn man ein D Klasse pet erweckt -.-
Man kann doch außerdem erst Pets ab C erwecken ?
Poste mal deine Randomoption.inc villt ist ein Fehler drin, wenn nicht, wie Jopsi es sagte, durch den Debugger laufen lassen.
07/03/2012 20:38 S3lfmad3#10
Habe lolix3 seinen code falsch eingefügt jetzt ist er richtig eingefügt und alles Funzt <3 danke lolix3