Daily mission improvements.

Contributed by rocknowx.
This commit is contained in:
MobiusDev
2015-12-21 08:10:18 +00:00
parent d34af118f5
commit 08f1a5f82b
2 changed files with 22 additions and 16 deletions

View File

@@ -164,19 +164,19 @@ public class DailyMissionData implements IXmlReader
/**
* @param id int
* @param player L2PcInstance
* @return boolean
* @return int
*/
public boolean isRewardAvailable(int id, L2PcInstance player)
public int RewardStatus(int id, L2PcInstance player)
{
if (player.getLevel() < _dailyMissions.get(id - 1).getLevel())
{
return false;
return 2; // Not Available
}
if (player.getVariables().getString("DailyMission" + id, null) != null)
{
return false;
return 3; // Complete
}
return true;
return 1; // Available
}
/**
@@ -187,21 +187,27 @@ public class DailyMissionData implements IXmlReader
{
for (DailyMissionHolder mission : _dailyMissions)
{
if ((mission.getClientId() == rewardId1) && isRewardAvailable(mission.getId(), player))
if ((mission.getClientId() == rewardId1) && (RewardStatus(mission.getId(), player) == 1))
{
for (int itemId : mission.getRewards().keySet())
for (int classId : mission.getAvailableClasses())
{
player.addItem("DailyMission", itemId, mission.getRewards().get(itemId), player, true);
}
for (DailyMissionHolder m : _dailyMissions)
{
if (mission.getClientId() == m.getClientId())
if (player.getClassId().getId() == classId)
{
player.getVariables().set("DailyMission" + m.getId(), System.currentTimeMillis());
for (int itemId : mission.getRewards().keySet())
{
player.addItem("DailyMission", itemId, mission.getRewards().get(itemId), player, true);
}
for (DailyMissionHolder m : _dailyMissions)
{
if (mission.getClientId() == m.getClientId())
{
player.getVariables().set("DailyMission" + m.getId(), System.currentTimeMillis());
}
}
player.sendPacket(new ExOneDayReceiveRewardList(player));
break;
}
}
player.sendPacket(new ExOneDayReceiveRewardList(player));
break;
}
}
}

View File

@@ -52,7 +52,7 @@ public class ExOneDayReceiveRewardList extends L2GameServerPacket
for (DailyMissionHolder mission : _availableMissions)
{
writeH(mission.getClientId()); // Reward
writeC(DailyMissionData.getInstance().isRewardAvailable(mission.getId(), _activeChar) ? 1 : 2); // 1 Available, 2 Not Available
writeC(DailyMissionData.getInstance().RewardStatus(mission.getId(), _activeChar)); // 1 Available, 2 Not Available, 3 Complete
writeC(0x00); // Requires multiple completion - YesOrNo
writeD(0x00); // Current progress
writeD(0x00); // Required total