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