コード例 #1
0
bool EventQuestLootingInfo::isTargetMonster(PlayerCreature* pPC, Monster* pMonster ) const
{
	if (pPC->getRace() == m_Race )
	{
		QuestID_t qID;
		if (!pPC->getQuestManager()->hasEventQuest(m_QuestLevel, qID ) ) return false;

		QuestGrade_t qGrade;
		if (pPC->isSlayer() )
		{
			Slayer* pSlayer = dynamic_cast<Slayer*>(pPC);

			qGrade = pSlayer->getQuestGrade();
		}
		else if (pPC->isVampire() )
		{
			Vampire* pVampire = dynamic_cast<Vampire*>(pPC);

			qGrade = pVampire->getLevel();
		}
		else if (pPC->isOusters() )
		{
			Ousters* pOusters = dynamic_cast<Ousters*>(pPC);

			qGrade = pOusters->getLevel();
		}
		else
		{
			//cout << "³Í¹¹³Ä!" << endl;
			qGrade = 0;
		}

		if (qGrade < m_MinGrade || qGrade > m_MaxGrade ) return false;

		if (m_Type == LOOTING_ZONE || m_Type == LOOTING_BOTH )
		{
			if (pMonster->getZoneID() != m_LootingZoneID ) return false;
		}

		if (m_Type == LOOTING_MONSTER || m_Type == LOOTING_BOTH )
		{
			if (pMonster->getMonsterType() != m_LootingMonsterType ) return false;
		}

		return true;
	}
	else
	{
		return false;
	}
}