Exalted quest rewards for Ceremony of Chaos and Olympiad.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment 2020-10-10 01:05:42 +00:00
parent 6a0c709977
commit 28c63c0e80
21 changed files with 564 additions and 0 deletions

View File

@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.enums.CeremonyOfChaosResult;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@ -40,6 +41,7 @@ import org.l2jmobius.gameserver.model.actor.appearance.PlayerAppearance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@ -51,6 +53,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -74,6 +77,10 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
{
private static final Logger LOGGER = Logger.getLogger(CeremonyOfChaosEvent.class.getName());
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
private final int _id;
private final Instance _instance;
private final Set<MonsterInstance> _monsters = ConcurrentHashMap.newKeySet();
@ -408,6 +415,41 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
params.set("time", 30);
getTimers().addTimer("match_end_countdown", params, 30 * 1000, null, null);
EventDispatcher.getInstance().notifyEvent(new OnCeremonyOfChaosMatchResult(winners, members));
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
for (CeremonyOfChaosMember member : getMembers().values())
{
final QuestState qs = member.getPlayer().getQuestState("Q10813_ForGlory");
final QuestState qs1 = member.getPlayer().getQuestState("Q10819_ForHonor");
final QuestState qs2 = member.getPlayer().getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
}
private void teleportPlayersOut()

View File

@ -22,6 +22,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.AntiFeedManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
@ -31,9 +32,11 @@ import org.l2jmobius.gameserver.model.Party.MessageType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadMode;
@ -60,6 +63,9 @@ public abstract class AbstractOlympiadGame
protected static final String COMP_DONE_WEEK_NON_CLASSED = "competitions_done_week_non_classed";
protected static final String COMP_DONE_WEEK_TEAM = "competitions_done_week_team";
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumId;
@ -408,6 +414,31 @@ public abstract class AbstractOlympiadGame
}
}
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
public static void rewardQuests(PlayerInstance player)
{
final QuestState qs = player.getQuestState("Q10813_ForGlory");
final QuestState qs1 = player.getQuestState("Q10819_ForHonor");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
}
public static void rewardParticipant(PlayerInstance player, List<ItemHolder> list)
{
if ((player == null) || !player.isOnline() || (list == null))

View File

@ -458,6 +458,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 1;
rewardParticipant(_playerOne.getPlayer(), getReward());
rewardQuests(_playerOne.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -484,6 +485,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 2;
rewardParticipant(_playerTwo.getPlayer(), getReward());
rewardQuests(_playerTwo.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -600,6 +602,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
// Save Fight Result
saveResults(_playerOne, _playerTwo, 1, _startTime, _fightTime, getType());
rewardParticipant(_playerOne.getPlayer(), getReward());
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerOne, _playerTwo, getType()), Olympiad.getInstance());
@ -625,6 +629,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
// Save Fight Result
saveResults(_playerOne, _playerTwo, 2, _startTime, _fightTime, getType());
rewardParticipant(_playerTwo.getPlayer(), getReward());
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerTwo, _playerOne, getType()), Olympiad.getInstance());

View File

@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.enums.CeremonyOfChaosResult;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@ -40,6 +41,7 @@ import org.l2jmobius.gameserver.model.actor.appearance.PlayerAppearance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@ -51,6 +53,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -74,6 +77,10 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
{
private static final Logger LOGGER = Logger.getLogger(CeremonyOfChaosEvent.class.getName());
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
private final int _id;
private final Instance _instance;
private final Set<MonsterInstance> _monsters = ConcurrentHashMap.newKeySet();
@ -408,6 +415,41 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
params.set("time", 30);
getTimers().addTimer("match_end_countdown", params, 30 * 1000, null, null);
EventDispatcher.getInstance().notifyEvent(new OnCeremonyOfChaosMatchResult(winners, members));
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
for (CeremonyOfChaosMember member : getMembers().values())
{
final QuestState qs = member.getPlayer().getQuestState("Q10813_ForGlory");
final QuestState qs1 = member.getPlayer().getQuestState("Q10819_ForHonor");
final QuestState qs2 = member.getPlayer().getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
}
private void teleportPlayersOut()

View File

@ -22,6 +22,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.AntiFeedManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
@ -31,9 +32,11 @@ import org.l2jmobius.gameserver.model.Party.MessageType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadMode;
@ -60,6 +63,9 @@ public abstract class AbstractOlympiadGame
protected static final String COMP_DONE_WEEK_NON_CLASSED = "competitions_done_week_non_classed";
protected static final String COMP_DONE_WEEK_TEAM = "competitions_done_week_team";
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumId;
@ -408,6 +414,31 @@ public abstract class AbstractOlympiadGame
}
}
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
public static void rewardQuests(PlayerInstance player)
{
final QuestState qs = player.getQuestState("Q10813_ForGlory");
final QuestState qs1 = player.getQuestState("Q10819_ForHonor");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
}
public static void rewardParticipant(PlayerInstance player, List<ItemHolder> list)
{
if ((player == null) || !player.isOnline() || (list == null))

View File

@ -458,6 +458,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 1;
rewardParticipant(_playerOne.getPlayer(), getReward());
rewardQuests(_playerOne.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -484,6 +485,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 2;
rewardParticipant(_playerTwo.getPlayer(), getReward());
rewardQuests(_playerTwo.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -600,6 +602,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
// Save Fight Result
saveResults(_playerOne, _playerTwo, 1, _startTime, _fightTime, getType());
rewardParticipant(_playerOne.getPlayer(), getReward());
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerOne, _playerTwo, getType()), Olympiad.getInstance());
@ -625,6 +629,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
// Save Fight Result
saveResults(_playerOne, _playerTwo, 2, _startTime, _fightTime, getType());
rewardParticipant(_playerTwo.getPlayer(), getReward());
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerTwo, _playerOne, getType()), Olympiad.getInstance());

View File

@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.enums.CeremonyOfChaosResult;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@ -40,6 +41,7 @@ import org.l2jmobius.gameserver.model.actor.appearance.PlayerAppearance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@ -51,6 +53,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -74,6 +77,10 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
{
private static final Logger LOGGER = Logger.getLogger(CeremonyOfChaosEvent.class.getName());
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
private final int _id;
private final Instance _instance;
private final Set<MonsterInstance> _monsters = ConcurrentHashMap.newKeySet();
@ -408,6 +415,41 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
params.set("time", 30);
getTimers().addTimer("match_end_countdown", params, 30 * 1000, null, null);
EventDispatcher.getInstance().notifyEvent(new OnCeremonyOfChaosMatchResult(winners, members));
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
for (CeremonyOfChaosMember member : getMembers().values())
{
final QuestState qs = member.getPlayer().getQuestState("Q10813_ForGlory");
final QuestState qs1 = member.getPlayer().getQuestState("Q10819_ForHonor");
final QuestState qs2 = member.getPlayer().getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
}
private void teleportPlayersOut()

View File

@ -22,6 +22,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.AntiFeedManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
@ -31,9 +32,11 @@ import org.l2jmobius.gameserver.model.Party.MessageType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadMode;
@ -60,6 +63,9 @@ public abstract class AbstractOlympiadGame
protected static final String COMP_DONE_WEEK_NON_CLASSED = "competitions_done_week_non_classed";
protected static final String COMP_DONE_WEEK_TEAM = "competitions_done_week_team";
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumId;
@ -408,6 +414,31 @@ public abstract class AbstractOlympiadGame
}
}
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
public static void rewardQuests(PlayerInstance player)
{
final QuestState qs = player.getQuestState("Q10813_ForGlory");
final QuestState qs1 = player.getQuestState("Q10819_ForHonor");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
}
public static void rewardParticipant(PlayerInstance player, List<ItemHolder> list)
{
if ((player == null) || !player.isOnline() || (list == null))

View File

@ -458,6 +458,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 1;
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerOne.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -484,6 +485,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 2;
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerTwo.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -600,6 +602,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerOne, _playerTwo, getType()), Olympiad.getInstance());
@ -627,6 +631,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerTwo, _playerOne, getType()), Olympiad.getInstance());

View File

@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.enums.CeremonyOfChaosResult;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@ -40,6 +41,7 @@ import org.l2jmobius.gameserver.model.actor.appearance.PlayerAppearance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@ -51,6 +53,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -74,6 +77,10 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
{
private static final Logger LOGGER = Logger.getLogger(CeremonyOfChaosEvent.class.getName());
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
private final int _id;
private final Instance _instance;
private final Set<MonsterInstance> _monsters = ConcurrentHashMap.newKeySet();
@ -408,6 +415,41 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
params.set("time", 30);
getTimers().addTimer("match_end_countdown", params, 30 * 1000, null, null);
EventDispatcher.getInstance().notifyEvent(new OnCeremonyOfChaosMatchResult(winners, members));
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
for (CeremonyOfChaosMember member : getMembers().values())
{
final QuestState qs = member.getPlayer().getQuestState("Q10813_ForGlory");
final QuestState qs1 = member.getPlayer().getQuestState("Q10819_ForHonor");
final QuestState qs2 = member.getPlayer().getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
}
private void teleportPlayersOut()

View File

@ -22,6 +22,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.AntiFeedManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
@ -31,9 +32,11 @@ import org.l2jmobius.gameserver.model.Party.MessageType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadMode;
@ -60,6 +63,9 @@ public abstract class AbstractOlympiadGame
protected static final String COMP_DONE_WEEK_NON_CLASSED = "competitions_done_week_non_classed";
protected static final String COMP_DONE_WEEK_TEAM = "competitions_done_week_team";
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumId;
@ -408,6 +414,31 @@ public abstract class AbstractOlympiadGame
}
}
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
public static void rewardQuests(PlayerInstance player)
{
final QuestState qs = player.getQuestState("Q10813_ForGlory");
final QuestState qs1 = player.getQuestState("Q10819_ForHonor");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
}
public static void rewardParticipant(PlayerInstance player, List<ItemHolder> list)
{
if ((player == null) || !player.isOnline() || (list == null))

View File

@ -458,6 +458,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 1;
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerOne.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -484,6 +485,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 2;
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerTwo.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -600,6 +602,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerOne, _playerTwo, getType()), Olympiad.getInstance());
@ -627,6 +631,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerTwo, _playerOne, getType()), Olympiad.getInstance());

View File

@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.enums.CeremonyOfChaosResult;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@ -40,6 +41,7 @@ import org.l2jmobius.gameserver.model.actor.appearance.PlayerAppearance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@ -51,6 +53,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -74,6 +77,10 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
{
private static final Logger LOGGER = Logger.getLogger(CeremonyOfChaosEvent.class.getName());
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
private final int _id;
private final Instance _instance;
private final Set<MonsterInstance> _monsters = ConcurrentHashMap.newKeySet();
@ -408,6 +415,41 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
params.set("time", 30);
getTimers().addTimer("match_end_countdown", params, 30 * 1000, null, null);
EventDispatcher.getInstance().notifyEvent(new OnCeremonyOfChaosMatchResult(winners, members));
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
for (CeremonyOfChaosMember member : getMembers().values())
{
final QuestState qs = member.getPlayer().getQuestState("Q10813_ForGlory");
final QuestState qs1 = member.getPlayer().getQuestState("Q10819_ForHonor");
final QuestState qs2 = member.getPlayer().getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
}
private void teleportPlayersOut()

View File

@ -22,6 +22,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.AntiFeedManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
@ -31,9 +32,11 @@ import org.l2jmobius.gameserver.model.Party.MessageType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadMode;
@ -60,6 +63,9 @@ public abstract class AbstractOlympiadGame
protected static final String COMP_DONE_WEEK_NON_CLASSED = "competitions_done_week_non_classed";
protected static final String COMP_DONE_WEEK_TEAM = "competitions_done_week_team";
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumId;
@ -408,6 +414,31 @@ public abstract class AbstractOlympiadGame
}
}
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
public static void rewardQuests(PlayerInstance player)
{
final QuestState qs = player.getQuestState("Q10813_ForGlory");
final QuestState qs1 = player.getQuestState("Q10819_ForHonor");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
}
public static void rewardParticipant(PlayerInstance player, List<ItemHolder> list)
{
if ((player == null) || !player.isOnline() || (list == null))

View File

@ -458,6 +458,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 1;
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerOne.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -484,6 +485,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 2;
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerTwo.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -600,6 +602,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerOne, _playerTwo, getType()), Olympiad.getInstance());
@ -627,6 +631,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerTwo, _playerOne, getType()), Olympiad.getInstance());

View File

@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.enums.CeremonyOfChaosResult;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@ -40,6 +41,7 @@ import org.l2jmobius.gameserver.model.actor.appearance.PlayerAppearance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@ -51,6 +53,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -74,6 +77,10 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
{
private static final Logger LOGGER = Logger.getLogger(CeremonyOfChaosEvent.class.getName());
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
private final int _id;
private final Instance _instance;
private final Set<MonsterInstance> _monsters = ConcurrentHashMap.newKeySet();
@ -408,6 +415,41 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
params.set("time", 30);
getTimers().addTimer("match_end_countdown", params, 30 * 1000, null, null);
EventDispatcher.getInstance().notifyEvent(new OnCeremonyOfChaosMatchResult(winners, members));
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
for (CeremonyOfChaosMember member : getMembers().values())
{
final QuestState qs = member.getPlayer().getQuestState("Q10813_ForGlory");
final QuestState qs1 = member.getPlayer().getQuestState("Q10819_ForHonor");
final QuestState qs2 = member.getPlayer().getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
}
private void teleportPlayersOut()

View File

@ -22,6 +22,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.AntiFeedManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
@ -31,9 +32,11 @@ import org.l2jmobius.gameserver.model.Party.MessageType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadMode;
@ -60,6 +63,9 @@ public abstract class AbstractOlympiadGame
protected static final String COMP_DONE_WEEK_NON_CLASSED = "competitions_done_week_non_classed";
protected static final String COMP_DONE_WEEK_TEAM = "competitions_done_week_team";
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumId;
@ -408,6 +414,31 @@ public abstract class AbstractOlympiadGame
}
}
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
public static void rewardQuests(PlayerInstance player)
{
final QuestState qs = player.getQuestState("Q10813_ForGlory");
final QuestState qs1 = player.getQuestState("Q10819_ForHonor");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
}
public static void rewardParticipant(PlayerInstance player, List<ItemHolder> list)
{
if ((player == null) || !player.isOnline() || (list == null))

View File

@ -458,6 +458,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 1;
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerOne.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -484,6 +485,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 2;
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerTwo.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -600,6 +602,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerOne, _playerTwo, getType()), Olympiad.getInstance());
@ -627,6 +631,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerTwo, _playerOne, getType()), Olympiad.getInstance());

View File

@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.enums.CeremonyOfChaosResult;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@ -40,6 +41,7 @@ import org.l2jmobius.gameserver.model.actor.appearance.PlayerAppearance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@ -51,6 +53,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -74,6 +77,10 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
{
private static final Logger LOGGER = Logger.getLogger(CeremonyOfChaosEvent.class.getName());
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
private final int _id;
private final Instance _instance;
private final Set<MonsterInstance> _monsters = ConcurrentHashMap.newKeySet();
@ -408,6 +415,41 @@ public class CeremonyOfChaosEvent extends AbstractEvent<CeremonyOfChaosMember>
params.set("time", 30);
getTimers().addTimer("match_end_countdown", params, 30 * 1000, null, null);
EventDispatcher.getInstance().notifyEvent(new OnCeremonyOfChaosMatchResult(winners, members));
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
for (CeremonyOfChaosMember member : getMembers().values())
{
final QuestState qs = member.getPlayer().getQuestState("Q10813_ForGlory");
final QuestState qs1 = member.getPlayer().getQuestState("Q10819_ForHonor");
final QuestState qs2 = member.getPlayer().getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(member.getPlayer(), PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(member.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(member.getPlayer(), PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
}
private void teleportPlayersOut()

View File

@ -22,6 +22,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.AntiFeedManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
@ -31,9 +32,11 @@ import org.l2jmobius.gameserver.model.Party.MessageType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.AbstractScript;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadMode;
@ -60,6 +63,10 @@ public abstract class AbstractOlympiadGame
protected static final String COMP_DONE_WEEK_NON_CLASSED = "competitions_done_week_non_classed";
protected static final String COMP_DONE_WEEK_TEAM = "competitions_done_week_team";
private static final int PROOF_OF_BATTLE_1 = 45872;
private static final int PROOF_OF_BATTLE_2 = 45873;
private static final int PROOF_OF_SETTLEMENT = 80825;
protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumId;
@ -408,6 +415,41 @@ public abstract class AbstractOlympiadGame
}
}
// XXX: ML2 Rewards ForGlory, ForHonor and ForVictory quests
public static void rewardQuests(PlayerInstance player)
{
final QuestState qs = player.getQuestState("Q10813_ForGlory");
final QuestState qs1 = player.getQuestState("Q10819_ForHonor");
final QuestState qs2 = player.getQuestState("Q10825_ForVictory");
if ((qs != null) && !qs.isCompleted() && qs.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_1, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= 10)
{
qs.setCond(2, true);
}
}
else if ((qs1 != null) && !qs1.isCompleted() && qs1.isCond(1))
{
AbstractScript.giveItems(player, PROOF_OF_BATTLE_2, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= 20)
{
qs1.setCond(2, true);
}
}
else if ((qs2 != null) && !qs2.isCompleted() && qs2.isCond(3))
{
AbstractScript.giveItems(player, PROOF_OF_SETTLEMENT, 1);
AbstractScript.playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (AbstractScript.getQuestItemsCount(player, PROOF_OF_SETTLEMENT) >= 30)
{
qs2.setCond(4, true);
}
}
}
public static void rewardParticipant(PlayerInstance player, List<ItemHolder> list)
{
if ((player == null) || !player.isOnline() || (list == null))

View File

@ -458,6 +458,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 1;
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerOne.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -484,6 +485,7 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
winside = 2;
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardQuests(_playerTwo.getPlayer());
if (Config.ALT_OLY_LOG_FIGHTS)
{
@ -600,6 +602,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerOne, _playerTwo, getType()), Olympiad.getInstance());
@ -627,6 +631,8 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame
rewardParticipant(_playerTwo.getPlayer(), Config.ALT_OLY_WINNER_REWARD); // Winner
rewardParticipant(_playerOne.getPlayer(), Config.ALT_OLY_LOSER_REWARD); // Loser
rewardQuests(_playerOne.getPlayer());
rewardQuests(_playerTwo.getPlayer());
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnOlympiadMatchResult(_playerTwo, _playerOne, getType()), Olympiad.getInstance());