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 id int
* @param player L2PcInstance * @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()) if (player.getLevel() < _dailyMissions.get(id - 1).getLevel())
{ {
return false; return 2; // Not Available
} }
if (player.getVariables().getString("DailyMission" + id, null) != null) 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) 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); if (player.getClassId().getId() == classId)
}
for (DailyMissionHolder m : _dailyMissions)
{
if (mission.getClientId() == m.getClientId())
{ {
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) for (DailyMissionHolder mission : _availableMissions)
{ {
writeH(mission.getClientId()); // Reward 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 writeC(0x00); // Requires multiple completion - YesOrNo
writeD(0x00); // Current progress writeD(0x00); // Current progress
writeD(0x00); // Required total writeD(0x00); // Required total