Meine Güte, wie verdammt inkontinent seid ihr denn alle ?
es geht um diese Boxen:
[Only registered and activated users can see links. Click Here To Register...]
Um sie vorerst zu "fixen" tausche die Funktion:
void CCommonCtrl::DropItem()
mit dieser aus:
Code:
void CCommonCtrl::DropItem()
{
//int nTotalNum = (xRandom(m_CtrlElem.m_dwMaxiItemNum - m_CtrlElem.m_dwMinItemNum) + m_CtrlElem.m_dwMinItemNum) + 1;
int nTotalNum = 1;
DWORD dwAdjRand;
for( int i=0; i<MAX_CTRLDROPITEM; i++ )
{
ItemProp* pItemProp = prj.GetItemProp( m_CtrlElem.m_dwInsideItemKind[i] );
if( pItemProp == NULL )
{
#ifdef __YDEBUG
Error( "CtrlProp(%s)ÀÇ ItemKind(%d)°ªÀÌ À߸øµÇ¾ú´Ù.", GetName(), m_CtrlElem.m_dwInsideItemKind[i] );
#endif // __YDEBUG
return;
}
dwAdjRand = xRandom( 3000000000 );
if( m_CtrlElem.m_dwInsideItemPer[i] >= dwAdjRand && nTotalNum )
{
CItemElem* pItemElem = new CItemElem;
pItemElem->m_dwItemId = pItemProp->dwID;
pItemElem->m_nItemNum = 1;
// ¸¶Áö¸· ½½·ÔÀº ·¹¾î¾ÆÀÌÅÛ¿ë½½·Ô ·¹¾î¾ÆÀÌÅÛÀº 1°³¸¦ ÃʰúÇÒ¼ö ¾ø´Ù.
if( i == MAX_CTRLDROPITEM-1 )
{
if( pItemElem->m_nItemNum > 1 )
pItemElem->m_nItemNum = 1;
}
nTotalNum -= pItemElem->m_nItemNum;
//pItemElem->m_nHitPoint = pItemProp->dwEndurance;
pItemElem->SetAbilityOption( 0 );
pItemElem->SetSerialNumber();
CItem* pItem = new CItem;
pItem->m_pItemBase = pItemElem;
{
pItem->m_idOwn = m_nMoverID;
pItem->m_dwDropTime = timeGetTime();
}
pItem->m_bDropMob = FALSE;
if( pItem->m_pItemBase->m_dwItemId == 0 ) Error( "CCommonCtrl::DropItem SetIndex\n" );
pItem->SetIndex( D3DDEVICE, pItem->m_pItemBase->m_dwItemId );
D3DXVECTOR3 v3Pos = GetPos();
FLOAT fRange = (float)xRandom(30)-15;
fRange*=0.1f;
v3Pos.x += fRange;
v3Pos.z += fRange;
pItem->SetPos( v3Pos );
pItem->SetAngle( (float)( xRandom(360) ) );
GetWorld()->ADDOBJ( pItem, TRUE, GetLayer() );
}
}
m_CtrlElem.m_dwMaxiItemNum = 0;
}
dann geh in die Funktion
void CCommonCtrl::_ProcessAction()
und tausche sie aus mit:
Code:
void CCommonCtrl::_ProcessAction()
{
#ifdef __WORLDSERVER
// Æ®·¦¼³Á¤
if( m_bTrap )
return;
m_dwTrapProcessTime = g_tmCurrent + m_CtrlElem.m_dwTrapDelay;
// ¾ÆÀÌÅÛ, ¸ó½ºÅÍ µå·Ó
if( m_CtrlElem.m_dwMinItemNum > 0 && m_CtrlElem.m_dwMaxiItemNum >= m_CtrlElem.m_dwMinItemNum )
{
DropItem();
}
//DropNPC();
#endif //__WORLDSERVER
}