//fonksiyonun altına ekle;
#ifdef ENABLE_DICE_SYSTEM
struct FPartyDropDiceRoll
{
const LPITEM m_itemDrop;
LPCHARACTER m_itemOwner;
int m_lastNumber;
FPartyDropDiceRoll(const LPITEM itemDrop, LPCHARACTER itemOwner) : m_itemDrop(itemDrop), m_itemOwner(itemOwner), m_lastNumber(0)
{
};
void Process(const LPCHARACTER mobVictim)
{
if
ch->GetParty()->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("%s님이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"),
{
LPPARTY pParty = m_itemOwner->GetParty();
pParty->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("*** Rolling for the following item: %16s ***"), m_itemDrop->GetName());
pParty->ForEachNearMember(*this);
if (m_itemOwner)
{
m_itemDrop->SetOwnership(m_itemOwner);
pParty->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("*** Rolling of %s: %16s ***"), m_itemDrop->GetName(), m_itemOwner->GetName());
}
}
else
m_itemDrop->SetOwnership(m_itemOwner);
}
LPCHARACTER GetItemOwner()
{
return m_itemOwner;
}
const LPITEM GetItemDrop()
{
return m_itemDrop;
}
void operator () (LPCHARACTER ch)
{
if (!ch)
return;
LPPARTY pParty = ch->GetParty();
if (!pParty)
return;
while (true)
{
int pickedNumber = number(10000, 99999);
if (pickedNumber > m_lastNumber)
{
m_lastNumber = pickedNumber;
m_itemOwner = ch;
}
else if (pickedNumber == m_lastNumber)
{
continue;
}
else // if (pickedNumber < m_lastNumber)
{
}
pParty->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("*** -> %16s - Dice score: %05d ***"), ch->GetName(),
else
ch->ChatPacket(CHAT_TYPE_DICE_INFO, LC_TEXT("당신이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), n, start, end);
#else
if (ch->GetParty())
ch->GetParty()->ChatPacketToAllMember(CHAT_TYPE_INFO, LC_TEXT("%s님이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), ch->GetName(), n, start, end);
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("당신이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), n, start, end);
break;
}
}
};
#endif