Classmasters rework.
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package ai.others.ClassMaster;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
@@ -29,7 +30,6 @@ import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jmobius.commons.util.IGameXmlReader;
|
||||
import com.l2jmobius.commons.util.Rnd;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.CategoryData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.ClassListData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
|
||||
@@ -50,7 +50,7 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLevel
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLogin;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPressTutorialMark;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemChanceHolder;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
|
||||
@@ -65,11 +65,11 @@ import ai.AbstractNpcAI;
|
||||
public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
{
|
||||
// NPCs
|
||||
private static final int[] CLASS_MASTER =
|
||||
private static final List<Integer> CLASS_MASTERS = new ArrayList<>();
|
||||
{
|
||||
31756, // Mr. Cat
|
||||
31757, // Queen of Hearts
|
||||
};
|
||||
CLASS_MASTERS.add(31756); // Mr. Cat
|
||||
CLASS_MASTERS.add(31757); // Queen of Hearts
|
||||
}
|
||||
// Misc
|
||||
private boolean _isEnabled;
|
||||
private boolean _spawnClassMasters;
|
||||
@@ -80,9 +80,9 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
public ClassMaster()
|
||||
{
|
||||
load();
|
||||
addStartNpc(CLASS_MASTER);
|
||||
addTalkId(CLASS_MASTER);
|
||||
addFirstTalkId(CLASS_MASTER);
|
||||
addStartNpc(CLASS_MASTERS);
|
||||
addTalkId(CLASS_MASTERS);
|
||||
addFirstTalkId(CLASS_MASTERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -128,8 +128,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
if ("classChangeOption".equals(c.getNodeName()))
|
||||
{
|
||||
final List<CategoryType> appliedCategories = new LinkedList<>();
|
||||
final List<ItemChanceHolder> requiredItems = new LinkedList<>();
|
||||
final List<ItemChanceHolder> rewardedItems = new LinkedList<>();
|
||||
final List<ItemHolder> requiredItems = new LinkedList<>();
|
||||
final List<ItemHolder> rewardedItems = new LinkedList<>();
|
||||
boolean setNoble = false;
|
||||
boolean setHero = false;
|
||||
final String optionName = parseString(attrs, "name", "");
|
||||
@@ -163,9 +163,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
{
|
||||
final int itemId = parseInteger(attrs, "id");
|
||||
final int count = parseInteger(attrs, "count", 1);
|
||||
final int chance = parseInteger(attrs, "chance", 100);
|
||||
|
||||
rewardedItems.add(new ItemChanceHolder(itemId, chance, count));
|
||||
rewardedItems.add(new ItemHolder(itemId, count));
|
||||
}
|
||||
else if ("setNoble".equals(r.getNodeName()))
|
||||
{
|
||||
@@ -186,9 +185,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
{
|
||||
final int itemId = parseInteger(attrs, "id");
|
||||
final int count = parseInteger(attrs, "count", 1);
|
||||
final int chance = parseInteger(attrs, "chance", 100);
|
||||
|
||||
requiredItems.add(new ItemChanceHolder(itemId, chance, count));
|
||||
requiredItems.add(new ItemHolder(itemId, count));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -251,7 +249,7 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
{
|
||||
case "buyitems":
|
||||
{
|
||||
htmltext = npc.getId() == CLASS_MASTER[0] ? "test_server_helper001a.html" : "test_server_helper001b.html";
|
||||
htmltext = npc.getId() == CLASS_MASTERS.get(0) ? "test_server_helper001a.html" : "test_server_helper001b.html";
|
||||
break;
|
||||
}
|
||||
case "setnoble":
|
||||
@@ -374,31 +372,22 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
htmltext = htmltext.replace("%options%", getClassChangeOptions(player, classId));
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
final ClassChangeData data = getClassChangeData(classDataIndex);
|
||||
if (data == null)
|
||||
}
|
||||
|
||||
final ClassChangeData data = getClassChangeData(classDataIndex);
|
||||
if ((data != null) && (data.getItemsRequired().size() > 0))
|
||||
{
|
||||
for (ItemHolder ri : data.getItemsRequired())
|
||||
{
|
||||
return null;
|
||||
if (player.getInventory().getInventoryItemCount(ri.getId(), -1) < ri.getCount())
|
||||
{
|
||||
player.sendMessage("You do not have enough items.");
|
||||
return null; // No class change if payment failed.
|
||||
}
|
||||
}
|
||||
|
||||
//@formatter:off
|
||||
final boolean paid = data.getItemsRequired().stream()
|
||||
.filter(ich -> ich.getChance() > Rnd.get(100)) // Chance to pay the price
|
||||
.filter(ih -> player.getInventory().getInventoryItemCount(ih.getId(), -1) >= ih.getCount())
|
||||
.allMatch(ih -> player.destroyItemByItemId(getClass().getSimpleName(), ih.getId(), ih.getCount(), npc, true));
|
||||
//@formatter:on
|
||||
|
||||
if (paid)
|
||||
for (ItemHolder ri : data.getItemsRequired())
|
||||
{
|
||||
//@formatter:off
|
||||
data.getItemsRewarded().stream()
|
||||
.filter(ich -> ich.getChance() > Rnd.get(100)) // Chance to receive the reward
|
||||
.forEach(ih -> player.addItem(getClass().getSimpleName(), ih.getId(), ih.getCount(), npc, true));
|
||||
//@formatter:on
|
||||
}
|
||||
else
|
||||
{
|
||||
return null; // No class change if payment failed.
|
||||
player.destroyItemByItemId(getClass().getSimpleName(), ri.getId(), ri.getCount(), npc, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,6 +452,14 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "test_server_helper001.html":
|
||||
{
|
||||
if (CLASS_MASTERS.contains(npc.getId()))
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
@@ -808,7 +805,7 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
(player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85)))
|
||||
//@formatter:on
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(1001));
|
||||
player.sendPacket(new TutorialShowQuestionMark(1, 0)); // mark id was 1001 - used 1 for tutorial text
|
||||
}
|
||||
}
|
||||
|
||||
@@ -818,7 +815,7 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
{
|
||||
final L2PcInstance player = event.getActiveChar();
|
||||
|
||||
if (!_showPopupWindow || (event.getMarkId() != 1001))
|
||||
if (!_showPopupWindow || (event.getMarkId() != 1)) // mark id was 1001 - used 1 for tutorial text
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -906,14 +903,7 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
{
|
||||
option.getItemsRequired().forEach(ih ->
|
||||
{
|
||||
if (ih.getChance() >= 100)
|
||||
{
|
||||
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30><font color=LEVEL>" + ih.getChance() + "%</font></td></tr>");
|
||||
}
|
||||
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>");
|
||||
});
|
||||
}
|
||||
sb.append("<tr><td>Rewards:</td></tr>");
|
||||
@@ -938,14 +928,7 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
{
|
||||
option.getItemsRewarded().forEach(ih ->
|
||||
{
|
||||
if (ih.getChance() >= 100)
|
||||
{
|
||||
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30><font color=LEVEL>" + ih.getChance() + "%</font></td></tr>");
|
||||
}
|
||||
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>");
|
||||
});
|
||||
|
||||
if (option.isRewardNoblesse())
|
||||
@@ -971,8 +954,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
private final List<CategoryType> _appliedCategories;
|
||||
private boolean _rewardNoblesse;
|
||||
private boolean _rewardHero;
|
||||
private List<ItemChanceHolder> _itemsRequired;
|
||||
private List<ItemChanceHolder> _itemsRewarded;
|
||||
private List<ItemHolder> _itemsRequired;
|
||||
private List<ItemHolder> _itemsRewarded;
|
||||
|
||||
public ClassChangeData(String name, List<CategoryType> appliedCategories)
|
||||
{
|
||||
@@ -1026,22 +1009,22 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader
|
||||
_rewardHero = rewardHero;
|
||||
}
|
||||
|
||||
void setItemsRequired(List<ItemChanceHolder> itemsRequired)
|
||||
void setItemsRequired(List<ItemHolder> itemsRequired)
|
||||
{
|
||||
_itemsRequired = itemsRequired;
|
||||
}
|
||||
|
||||
public List<ItemChanceHolder> getItemsRequired()
|
||||
public List<ItemHolder> getItemsRequired()
|
||||
{
|
||||
return _itemsRequired != null ? _itemsRequired : Collections.emptyList();
|
||||
}
|
||||
|
||||
void setItemsRewarded(List<ItemChanceHolder> itemsRewarded)
|
||||
void setItemsRewarded(List<ItemHolder> itemsRewarded)
|
||||
{
|
||||
_itemsRewarded = itemsRewarded;
|
||||
}
|
||||
|
||||
public List<ItemChanceHolder> getItemsRewarded()
|
||||
public List<ItemHolder> getItemsRewarded()
|
||||
{
|
||||
return _itemsRewarded != null ? _itemsRewarded : Collections.emptyList();
|
||||
}
|
||||
|
@@ -1,12 +1,12 @@
|
||||
<html><body>Test Server Helper:<br>
|
||||
How may I help you?<br>
|
||||
<font color="LEVEL">*About haracters*</font><br>
|
||||
<font color="LEVEL">*About characters*</font><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster firstclass">"I want to complete the first class transfer."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster secondclass">"I want to complete the second class transfer."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster thirdclass">"I want to complete the third class transfer."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster awaken">"I'm interested in the 4th class transfer (Awaken!)."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setnoble">"I want to become a Noblesse!"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster ask=-6&reply=2">"I want to acquire the Exalted status."</Button>
|
||||
<!--<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster ask=-6&reply=2">"I want to acquire the Exalted status."</Button>-->
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster learnskills">"I want to learn all skills up to the third class transfer."</Button><br>
|
||||
<font color="LEVEL">*About Items*</font><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Multisell 697">"I need some gear."</Button>
|
||||
|
@@ -1,3 +1,3 @@
|
||||
<html><body>Test Server Guide:<br>
|
||||
<html><body>Test Server Helper:<br>
|
||||
You've already attempted the third class transfer!
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><body>Test Server Guide:<br>
|
||||
<html><body>Test Server Helper:<br>
|
||||
You have successfully transferred class!
|
||||
</body></html>
|
@@ -2,5 +2,5 @@
|
||||
Do you want to raise your clan's level?<br>
|
||||
You can raise it <font color="LEVEL">up to level 10</font>, using the test server helper.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster clanlevelup">"I want to level up."</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="link test_server_helper001.htm">Back</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClassMaster test_server_helper001.html">Back</Button>
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><body>Test Server Guide:<br>
|
||||
<html><body>Test Server Helper:<br>
|
||||
The second class transfer is only available for characters level 40 or above.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Test Server Guide:<br>
|
||||
<html><body>Test Server Helper:<br>
|
||||
characters level 76 or above who have completed their second occupation change can change occupations for a third time.<br>
|
||||
Come back after you've finished your second occupation change and reached level 76.
|
||||
</body></html>
|
@@ -216,7 +216,7 @@ public abstract class LetterQuest extends Quest
|
||||
|
||||
if ((st == null) && (event.getOldLevel() < event.getNewLevel()) && canStartQuest(player))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
showOnScreenMsg(player, _startMessage, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
}
|
||||
@@ -236,7 +236,7 @@ public abstract class LetterQuest extends Quest
|
||||
|
||||
if ((st == null) && canStartQuest(player))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
showOnScreenMsg(player, _startMessage, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
}
|
||||
|
@@ -367,7 +367,7 @@ public final class Q00128_PailakaSongOfIceAndFire extends Quest
|
||||
|
||||
if ((oldLevel < newLevel) && (newLevel == MIN_LEVEL))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -144,7 +144,7 @@ public final class Q00386_StolenDignity extends Quest
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ACCEPT);
|
||||
qs.setMemoState(336);
|
||||
qs.startQuest();
|
||||
player.sendPacket(new TutorialShowQuestionMark(336));
|
||||
player.sendPacket(new TutorialShowQuestionMark(336, 1)); // why not getId() ?
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||
return "30843-05.htm";
|
||||
}
|
||||
|
@@ -252,7 +252,7 @@ public final class Q10301_ShadowOfTerrorBlackishRedFog extends Quest
|
||||
|
||||
if ((qs == null) && (event.getOldLevel() < event.getNewLevel()) && canStartQuest(player))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
@@ -271,7 +271,7 @@ public final class Q10301_ShadowOfTerrorBlackishRedFog extends Quest
|
||||
|
||||
if ((qs == null) && canStartQuest(player))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
|
@@ -288,7 +288,7 @@ public class Q10304_ForForgottenHeroes extends Quest
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs == null) && (event.getOldLevel() < event.getNewLevel()) && canStartQuest(player) && (player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
@@ -301,7 +301,7 @@ public class Q10304_ForForgottenHeroes extends Quest
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs == null) && canStartQuest(player) && (player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
|
@@ -474,7 +474,7 @@ public final class Q10331_StartOfFate extends Quest
|
||||
|
||||
if ((qs == null) && (oldLevel < newLevel) && (newLevel == MIN_LEVEL) && (player.getRace() != Race.ERTHEIA) && (player.isInCategory(CategoryType.FIRST_CLASS_GROUP)))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
@@ -488,7 +488,7 @@ public final class Q10331_StartOfFate extends Quest
|
||||
|
||||
if ((qs == null) && (player.getRace() != Race.ERTHEIA) && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.FIRST_CLASS_GROUP)))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
|
@@ -506,7 +506,7 @@ public final class Q10360_CertificationOfFate extends Quest
|
||||
|
||||
if ((oldLevel < newLevel) && (newLevel == MIN_LEVEL) && (player.getRace() != Race.ERTHEIA) && (player.isInCategory(CategoryType.SECOND_CLASS_GROUP)))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -522,7 +522,7 @@ public final class Q10360_CertificationOfFate extends Quest
|
||||
final QuestState st = getQuestState(player, true);
|
||||
if (st.isCreated())
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -520,7 +520,7 @@ public final class Q10751_WindsOfFateEncounters extends Quest
|
||||
else if (command.equals("Q10751_close"))
|
||||
{
|
||||
player.sendPacket(TutorialCloseHtml.STATIC_PACKET);
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
player.clearHtmlActions(HtmlActionScope.TUTORIAL_HTML);
|
||||
}
|
||||
}
|
||||
@@ -538,7 +538,7 @@ public final class Q10751_WindsOfFateEncounters extends Quest
|
||||
if ((st == null) && (player.getRace().equals(Race.ERTHEIA)) && (oldLevel < newLevel) && (newLevel >= MIN_LEVEL) && (player.isInCategory(CategoryType.FIRST_CLASS_GROUP)))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.QUEEN_NAVARI_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -552,7 +552,7 @@ public final class Q10751_WindsOfFateEncounters extends Quest
|
||||
if ((st == null) && player.getRace().equals(Race.ERTHEIA) && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.FIRST_CLASS_GROUP)))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.QUEEN_NAVARI_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
}
|
||||
}
|
||||
}
|
@@ -522,7 +522,7 @@ public final class Q10752_WindsOfFateAPromise extends Quest
|
||||
else if (command.equals("Q10752_close"))
|
||||
{
|
||||
player.sendPacket(TutorialCloseHtml.STATIC_PACKET);
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
player.clearHtmlActions(HtmlActionScope.TUTORIAL_HTML);
|
||||
}
|
||||
}
|
||||
@@ -552,7 +552,7 @@ public final class Q10752_WindsOfFateAPromise extends Quest
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.MASTER_KATALIN_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
}
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -578,7 +578,7 @@ public final class Q10752_WindsOfFateAPromise extends Quest
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.MASTER_KATALIN_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
}
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
}
|
||||
}
|
||||
}
|
@@ -748,7 +748,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
|
||||
else if (command.equals("Q10753_close"))
|
||||
{
|
||||
player.sendPacket(TutorialCloseHtml.STATIC_PACKET);
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
player.clearHtmlActions(HtmlActionScope.TUTORIAL_HTML);
|
||||
}
|
||||
}
|
||||
@@ -778,7 +778,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.MASTER_KATALIN_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
}
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
@@ -805,7 +805,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.MASTER_KATALIN_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
}
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_TUTORIAL);
|
||||
}
|
||||
}
|
||||
|
@@ -357,7 +357,7 @@ public abstract class ThirdClassTransferQuest extends Quest
|
||||
|
||||
if ((oldLevel < newLevel) && (newLevel == _minLevel) && (player.getRace() == _race) && (player.isInCategory(CategoryType.THIRD_CLASS_GROUP)))
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -374,9 +374,10 @@ public abstract class ThirdClassTransferQuest extends Quest
|
||||
|
||||
if ((player.getLevel() >= _minLevel) && (player.getRace() == _race) && (player.isInCategory(CategoryType.THIRD_CLASS_GROUP)))
|
||||
{
|
||||
if (getQuestState(player, true).isCreated())
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
if (qs.isCreated())
|
||||
{
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||
player.sendPacket(new TutorialShowQuestionMark(getId(), 1)); // Seems not to work. - blank text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user