Du gehst im Source in die Datei: FuncTextCmd.cpp
und suchst hier nach:
BOOL TextCmd_GenRandomOption( CScanner & s )
Dann ersetzt du die Funktion hierdurch:
Code:
BOOL TextCmd_GenRandomOption( CScanner & s )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)s.dwValue;
CItemElem* pItemElem = pUser->m_Inventory.GetAt( 0 );
if( pItemElem )
{
int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
if( nRandomOptionKind >= 0 ) // ¾ÆÀÌÅÛ °¢¼º, ¿©½ÅÀÇ ÃູÀÌ °¡´ÉÇÑ ´ë»ó
{
if(pUser->HasActivatedSystemPet() && pItemElem->GetProp()->dwItemKind3 == IK3_EGG || pUser->HasActivatedEatPet() && pItemElem->GetProp()->dwItemKind3 == IK3_PET )
{
char chMessage[100];
sprintf( chMessage, "Hol dein Pet oder CS Pet rein! Sonst kannst du es nicht erwecken!" );
pUser->AddText( chMessage );
}
else
{
g_xRandomOptionProperty->InitializeRandomOption( pItemElem->GetRandomOptItemIdPtr() );
g_xRandomOptionProperty->GenRandomOption( pItemElem->GetRandomOptItemIdPtr(), nRandomOptionKind, pItemElem->GetProp()->dwParts );
pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId() );
}
}
}
#endif // __WORLDSERVER
return TRUE;
}
Dan suchst du hier nach:
Code:
ON_TEXTCMDFUNC( TextCmd_whisper, "whisper", "w", "±Ó¼Ó¸»", "±Ó", TCM_SERVER, AUTH_GENERAL , "±Ó¼Ó¸» [/¸í·É ¾ÆÀ̵𠳻¿ë]" )
und fügst darüber das hier ein:
Code:
ON_TEXTCMDFUNC( TextCmd_GenRandomOption, "Awakening", "awa", "°¢¼ºÃູ", "°¢Ãà", TCM_BOTH, AUTH_GENERAL, "" )
Jetzt einfach Compilen und fertig
#Edit:
Wenn du das ganze mit Penya abzug haben willst ersetzt du die oben genannte Funktion durch das hier:
Code:
BOOL TextCmd_GenRandomOption( CScanner & s )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)s.dwValue;
CItemElem* pItemElem = pUser->m_Inventory.GetAt( 0 );
#ifdef __AWA_WITH_PENYACOST
if( pItemElem )
{
int nCost = 500000;
int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
if( 0 < nCost )
{
if( nRandomOptionKind >= 0 )
{
if( pUser->GetGold() > nCost )
{
if(pUser->HasActivatedSystemPet() && pItemElem->GetProp()->dwItemKind3 == IK3_EGG || pUser->HasActivatedEatPet() && pItemElem->GetProp()->dwItemKind3 == IK3_PET )
{
char chMessage[100];
sprintf( chMessage, "Hol dein Pet oder CS Pet rein! Sonst kannst du es nicht erwecken!" );
pUser->AddText( chMessage );
}
else
{
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 hast nicht genug Geld." );
}
}
}
}
else
{
pUser->AddText( "Das zu erweckende Item muss im ersten Slot deines Inventars liegen!" );
}
#else
if( pItemElem )
{
int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
if( nRandomOptionKind >= 0 ) // ¾ÆÀÌÅÛ °¢¼º, ¿©½ÅÀÇ ÃູÀÌ °¡´ÉÇÑ ´ë»ó
{
if(pUser->HasActivatedSystemPet() && pItemElem->GetProp()->dwItemKind3 == IK3_EGG || pUser->HasActivatedEatPet() && pItemElem->GetProp()->dwItemKind3 == IK3_PET )
{
char chMessage[100];
sprintf( chMessage, "Hol dein Pet oder CS Pet rein! Sonst kannst du es nicht erwecken!" );
pUser->AddText( chMessage );
}
else
{
g_xRandomOptionProperty->InitializeRandomOption( pItemElem->GetRandomOptItemIdPtr() );
g_xRandomOptionProperty->GenRandomOption( pItemElem->GetRandomOptItemIdPtr(), nRandomOptionKind, pItemElem->GetProp()->dwParts );
pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId() );
}
}
}
#endif //__AWA_WITH_PENYACOST
#endif // __WORLDSERVER
return TRUE;
}
Dann nur noch __AWA_WITH_PENYACOST in der VersionCommon.h von Neuz und WorldServer definieren und fertig =)