FuncTextCmd.cpp
Suche:
PHP Code:
ON_TEXTCMDFUNC( TextCmd_shoutrefuse, "shoutrefuse", "hr", "¿ÜÄ¡±âÇØÁ¦", "¿ÜÇØ", TCM_CLIENT, AUTH_GENERAL , "¿ÜÄ¡±â °ÅÀý [/¸í·É] " )
darunter das hier hinzufügen:
PHP Code:
ON_TEXTCMDFUNC( TextCmd_AwakeItem, "AwakeItem", "awake", "°¢¼ºÃູ", "°¢Ãà", TCM_BOTH, AUTH_GENERAL , "" )
In der gleichen Datei..
Suche:
PHP Code:
BOOL TextCmd_shoutrefuse( CScanner & scanner )
dort müsste das hier stehen
PHP Code:
{
g_Option.m_bShout = 0;
g_WndMng.PutString( prj.GetText( TID_GAME_SHOUTREFUSE ), NULL, prj.GetTextColor( TID_GAME_SHOUTREFUSE ) );
return TRUE;
}
darunter das hier hinzufügen:
PHP Code:
BOOL TextCmd_AwakeItem( CScanner & s )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)s.dwValue;
CItemElem* pItemElem = pUser->m_Inventory.GetAt( 0 );
if( pItemElem )
{
int nCost = 150000;
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->GetProp()->dwID == II_PET_EGG )
{
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
{
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!" );
}
#endif //__WORLDSERVER
return TRUE;
}
randomoption.h
Suche:
PHP Code:
BOOL GetParam( __int64 nRandomOptItemId, int i, int* pnDst, int* pnAdj );
darunter:
PHP Code:
BOOL GenAwakeItem( __int64* pnRandomOptItemId, int nRandomOptionKind, int nParts, bool bDecreaseFlag = false );
randomoption.cpp
Suche:
PHP Code:
void CRandomOptionProperty::SetParam( __int64* pnRandomOptItemId, int nDst, int nAdj )
Dort müsste dann das hier stehen
PHP Code:
void CRandomOptionProperty::SetParam( __int64* pnRandomOptItemId, int nDst, int nAdj )
{
int nSize = GetRandomOptionSize( *pnRandomOptItemId );
ASSERT( nSize < MAX_RANDOM_OPTION );
__int64 nRandomOptionItemId = nDst;
nRandomOptionItemId = nRandomOptionItemId << 10; // 2 | 8 | 10 | 8 | 10 | 8 | 10 | 8
// 2 :
// 1 :
// 7 :
// 10 :
// 8 :
if( nAdj < 0 )
{
nRandomOptionItemId |= 0x0200; // À½¼öÀÎ °æ¿ì ÃÖ»óÀ§ ºñÆ® 1
nRandomOptionItemId = nRandomOptionItemId | ( -nAdj );
}
else
nRandomOptionItemId = nRandomOptionItemId | nAdj;
nRandomOptionItemId = nRandomOptionItemId << ( 8 + 18 * nSize ); // ÇØ´ç À§Ä¡·Î ½ÃÇÁÆ®
*pnRandomOptItemId |= nRandomOptionItemId; // °á°ú °ª ÀúÀå
}
int CRandomOptionProperty::GetRandomOptionKind( CItemElem* pItemElem )
{
ItemProp* pProp = pItemElem->GetProp();
switch( pProp->dwParts )
{
case PARTS_UPPER_BODY:
case PARTS_RWEAPON:
case PARTS_SHIELD:
case PARTS_MASK:
case PARTS_BULLET:
#if __VER >= 12 // __J12_0
// °¢¼º °¡´É ÆÄÃ÷ Ãß°¡
case PARTS_HAND: // ¼Õ
case PARTS_FOOT: // ¹ß
case PARTS_CAP: // ¸Ó¸®
#endif // __J12_0
#ifdef __NEW_ITEM_VARUNA
{
if( pItemElem->GetProp()->IsBaruna() )
return -1;
else
return static_cast<int>( eAwakening );
}
#endif // __NEW_ITEM_VARUNA
case PARTS_CLOTH:
case PARTS_CLOAK:
#if __VER >= 12 // __J12_0
case PARTS_HAT: // °Ñ¿Ê ¸Ó¸®
case PARTS_GLOVE: // °Ñ¿Ê ¼Õ
case PARTS_BOOTS: // °Ñ¿Ê ¹ß
#endif // __J12_0
return static_cast<int>( eBlessing );
#if __VER >= 12 // __PET_0519
default:
{
// C±Þ ÀÌ»óÀÇ ½Ã½ºÅÛ ÆêÀΰ¡?
if( pProp->dwItemKind3 == IK3_EGG && pItemElem->m_pPet && pItemElem->m_pPet->GetLevel() >= PL_C )
return static_cast<int>( eSystemPet );
// ¸ÔÆêÀΰ¡?
else if( pProp->dwItemKind3 == IK3_PET )
return static_cast<int>( eEatPet );
break;
}
#endif // __PET_0519
}
return -1;
}
darunter:
PHP Code:
BOOL CRandomOptionProperty::GenAwakeItem( __int64* pnRandomOptItemId, int nRandomOptionKind, int nParts, bool bDecreaseFlag /* = false */ )
{
if( GetRandomOptionSize( *pnRandomOptItemId ) > 0 )
{
return FALSE;
}
int nRandomOptionSize = DetermineRandomOptionSize( nRandomOptionKind );
int nDecreaseNumber = -1;
if( bDecreaseFlag == true )
{
nDecreaseNumber = xRandom( nRandomOptionSize );
}
while( nRandomOptionSize-- > 0 )
{
RANDOM_OPTION* pRandomOption = DetermineRandomOptionDst( nRandomOptionKind, nParts );
ASSERT( pRandomOption );
bool bDecreaseAdj = false;
if( nRandomOptionSize == nDecreaseNumber )
{
bDecreaseAdj = true;
}
else
{
bDecreaseAdj = false;
}
short nAdj = DetermineRandomOptionAdj( pRandomOption, bDecreaseAdj );
SetParam( pnRandomOptItemId, pRandomOption->nDst, nAdj );
}
return TRUE;
}
Das wars auch schon..