Daily mission improvements.
Contributed by rocknowx.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user