Jow, wers' gebrauchen kann. wollt ich mal nutzen, aber kam doch nicht dazu.
Ihr erweckt damit fallen gelassene items von montser automatisch.
Etwas abgeänderter Code für 3line Awakes weil der andere nicht funkt auf 3lines.
Für die, die keine ahnung haben, der funkt 100% auf 3lines. ;-)
Ps: is' halt nur eine Kleinigkeit geändert, also nix großes.
Der Code ist unten zu finden, soll nur Orientierung sein.
Mover.cpp,
BOOL CMover :: DropItem,
greez stevyboy
Ihr erweckt damit fallen gelassene items von montser automatisch.
Etwas abgeänderter Code für 3line Awakes weil der andere nicht funkt auf 3lines.
Für die, die keine ahnung haben, der funkt 100% auf 3lines. ;-)
Ps: is' halt nur eine Kleinigkeit geändert, also nix großes.
Der Code ist unten zu finden, soll nur Orientierung sein.
Mover.cpp,
BOOL CMover :: DropItem,
Code:
DWORD dwNum = lpDropItem->dwNumber;
if( dwNum == (DWORD)-1 )
dwNum = 1;
if( lpMoverProp->dwFlying )
{
CItemElem itemElem;
itemElem.m_dwItemId = lpDropItem->dwIndex;
itemElem.m_nItemNum = (short)( xRandom( dwNum ) + 1 );
itemElem.SetAbilityOption( lpDropItem->dwLevel );
if( pAttacker->CreateItem( &itemElem ) == TRUE )
{ // log
ItemProp* pItemProp = itemElem.GetProp();
if( pItemProp )
{
( (CUser*)pAttacker )->AddDefinedText( TID_GAME_REAPITEM, "\"%s\"", pItemProp->szName );
if( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR || ( pItemProp->dwItemKind1 == IK1_GENERAL && pItemProp->dwItemKind2 == IK2_JEWELRY ) )
{
switch( pItemProp->nLog )
{
case 1: g_dpDBClient.SendLogUniqueItem2( pAttacker, itemElem.GetProp(), itemElem.GetAbilityOption() ); break;
case 2: g_dpDBClient.SendLogUniqueItem2( pAttacker, itemElem.GetProp(), 200 ); break;
case 3: g_dpDBClient.SendLogUniqueItem2( pAttacker, itemElem.GetProp(), 100 ); break;
}
}
}
if( lpDropItem->dwNumber != (DWORD)-1 )
nNumber++;
if( (DWORD)( nNumber ) >= lpMoverProp->m_DropItemGenerator.m_dwMax )
break;
}
continue;
}
CItemElem* pItemElem = new CItemElem;
pItemElem->m_dwItemId = lpDropItem->dwIndex;
pItemElem->m_nItemNum = (short)( xRandom( dwNum ) + 1 );
ItemProp* pItemProp = pItemElem->GetProp();
if( pItemProp )
{
pItemElem->m_nHitPoint = pItemProp->dwEndurance;
pItemElem->SetRandomOpt( CRandomOptItemGen::GetInstance()->GenRandomOptItem( lpMoverProp->dwLevel, (FLOAT)nProbability / 100.0f, pItemProp, lpMoverProp->dwClass ) );
}
pItemElem->SetAbilityOption( lpDropItem->dwLevel ); // Ãß°¡ ´É·ÂÄ¡ +1, +2 °°Àº°Å.
pItemElem->SetSerialNumber();
#ifdef __DROP_AWAKE_SHIVA
int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind(pItemElem);
if (nRandomOptionKind >= 0)
{
g_xRandomOptionProperty->InitializeRandomOption(pItemElem->GetRandomOptItemIdPtr());
g_xRandomOptionProperty->GenRandomOption(pItemElem->GetRandomOptItemIdPtr(), nRandomOptionKind, pItemElem->GetProp()->dwParts, FALSE);
}
#endif __DROP_AWAKE_SHIVA