Fixed unfinished items on the sylph quests.
Contributed by marciox25.
This commit is contained in:
parent
b75c38a070
commit
d347c59315
@ -101,7 +101,7 @@
|
||||
</enchant>
|
||||
|
||||
<!-- Talisman of Aden -->
|
||||
<enchant id="91756" maxEnchant="10">
|
||||
<enchant id="91756" maxEnchant="10" safeEnchant="1">
|
||||
<item id="91745" />
|
||||
</enchant>
|
||||
|
||||
@ -153,6 +153,11 @@
|
||||
<item id="93042" />
|
||||
</enchant>
|
||||
|
||||
<!-- Adventurer's Talisman -->
|
||||
<enchant id="95688" maxEnchant="10" safeEnchant="1">
|
||||
<item id="91937" />
|
||||
</enchant>
|
||||
|
||||
<!-- Cloak of Protection -->
|
||||
<enchant id="93302" maxEnchant="10">
|
||||
<item id="93301" />
|
||||
|
@ -18,6 +18,7 @@ package quests.Q10971_TalismanEnchant;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
@ -32,7 +33,9 @@ public class Q10971_TalismanEnchant extends Quest
|
||||
// NPC
|
||||
private static final int CAPTAIN_BATHIS = 30332;
|
||||
// Item
|
||||
private static final int TALISMAN_OF_ADEN = 91745;
|
||||
private static final ItemHolder TALISMAN_OF_ADEN = new ItemHolder(91745, 1);
|
||||
private static final ItemHolder TALISMAN_OF_ADEN_ENCHANT = new ItemHolder(91756, 1);
|
||||
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 25;
|
||||
|
||||
@ -69,6 +72,15 @@ public class Q10971_TalismanEnchant extends Quest
|
||||
{
|
||||
qs.startQuest();
|
||||
player.sendPacket(new ExTutorialShowId(47));
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, TALISMAN_OF_ADEN);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN_ENCHANT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, TALISMAN_OF_ADEN_ENCHANT);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@ -88,7 +100,7 @@ public class Q10971_TalismanEnchant extends Quest
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
boolean foundEnchant = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN))
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN.getId()))
|
||||
{
|
||||
if (item.getEnchantLevel() > 0)
|
||||
{
|
||||
|
@ -77,8 +77,15 @@ public class Q10974_NewStylishEquipment extends Quest
|
||||
case "30857-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_SHEEP_HAT);
|
||||
giveItems(player, ADVENTURER_SHEEP_HAT);
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURER_SHEEP_HAT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURER_SHEEP_HAT);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ENCHANT_SCROLL_ADVENTURER_SHEEP_HAT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_SHEEP_HAT);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@ -108,8 +115,15 @@ public class Q10974_NewStylishEquipment extends Quest
|
||||
case "30857-05.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_BELT);
|
||||
giveItems(player, ADVENTURER_BELT);
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURER_BELT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURER_BELT);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ENCHANT_SCROLL_ADVENTURER_BELT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_BELT);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@ -139,8 +153,15 @@ public class Q10974_NewStylishEquipment extends Quest
|
||||
case "30857-07.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_CLOAK);
|
||||
giveItems(player, ADVENTURER_CLOAK);
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURER_CLOAK.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURER_CLOAK);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ENCHANT_SCROLL_ADVENTURER_CLOAK.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_CLOAK);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
|
@ -303,12 +303,23 @@
|
||||
</item>
|
||||
<item id="91725" name="Scroll of Escape: Abandoned Camp" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Abandoned Camp. -->
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="30" />
|
||||
<set name="price" val="35000" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_oly_restricted" val="true" />
|
||||
<set name="handler" val="ItemSkills" />
|
||||
<set name="commissionItemType" val="SCROLL_OTHER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<cond addName="1" msgId="113">
|
||||
<player flyMounted="false" />
|
||||
</cond>
|
||||
<skills>
|
||||
<skill id="51441" level="1" /> <!-- Scroll of Escape: Master Kerkir -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="91726" name="Scroll of Escape: Windmill Hill" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Windmill Hill. -->
|
||||
@ -321,12 +332,23 @@
|
||||
</item>
|
||||
<item id="91727" name="Scroll of Escape: Ruins of Agony" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Ruins of Agony. -->
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="30" />
|
||||
<set name="price" val="35000" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_oly_restricted" val="true" />
|
||||
<set name="handler" val="ItemSkills" />
|
||||
<set name="commissionItemType" val="SCROLL_OTHER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<cond addName="1" msgId="113">
|
||||
<player flyMounted="false" />
|
||||
</cond>
|
||||
<skills>
|
||||
<skill id="51443" level="1" /> <!-- Scroll of Escape: Ruins of Agony -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="91728" name="Reinforced Spear Chest" type="EtcItem">
|
||||
<!-- Double-click to obtain the following items. -->
|
||||
|
@ -578,9 +578,11 @@
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="material" val="GOLD" />
|
||||
<set name="weight" val="120" />
|
||||
<set name="enchant_limit" val="1" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="enchant_enabled" val="true" />
|
||||
<set name="bodypart" val="deco1" />
|
||||
</item>
|
||||
<item id="91938" name="Primeval Isle's Prolongating Stone" type="EtcItem">
|
||||
|
@ -276,7 +276,29 @@
|
||||
</skill>
|
||||
<skill id="51441" toLevel="1" name="Scroll of Escape: Abandoned Camp">
|
||||
<!-- A magical scroll that teleports to the Abandoned Camp. Cannot be exchanged, dropped, or sold. Can be stored in the private warehouse. -->
|
||||
<operateType>A1</operateType>
|
||||
<hitTime>500</hitTime>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<itemConsumeCount>1</itemConsumeCount>
|
||||
<itemConsumeId>91725</itemConsumeId>
|
||||
<magicLevel>1</magicLevel>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<conditions>
|
||||
<condition name="OpAlignment">
|
||||
<affectType>CASTER</affectType>
|
||||
<alignment>LAWFUL</alignment>
|
||||
</condition>
|
||||
<condition name="OpCanEscape" />
|
||||
</conditions>
|
||||
<effects>
|
||||
<effect name="Teleport">
|
||||
<x>-46868</x>
|
||||
<y>148086</y>
|
||||
<z>-2968</z>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="51442" toLevel="1" name="Scroll of Escape: Windmill Hill">
|
||||
<!-- A magical scroll that teleports to the Windmill Hill. Cannot be exchanged, dropped, or sold. Can be stored in the private warehouse. -->
|
||||
@ -284,7 +306,29 @@
|
||||
</skill>
|
||||
<skill id="51443" toLevel="1" name="Scroll of Escape: Ruins of Agony">
|
||||
<!-- A magical scroll that teleports to the Ruins of Agony. Cannot be exchanged, dropped, or sold. Can be stored in the warehouse. -->
|
||||
<operateType>A1</operateType>
|
||||
<hitTime>500</hitTime>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<itemConsumeCount>1</itemConsumeCount>
|
||||
<itemConsumeId>91727</itemConsumeId>
|
||||
<magicLevel>1</magicLevel>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<conditions>
|
||||
<condition name="OpAlignment">
|
||||
<affectType>CASTER</affectType>
|
||||
<alignment>LAWFUL</alignment>
|
||||
</condition>
|
||||
<condition name="OpCanEscape" />
|
||||
</conditions>
|
||||
<effects>
|
||||
<effect name="Teleport">
|
||||
<x>-42307</x>
|
||||
<y>120810</y>
|
||||
<z>-3368</z>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="51444" toLevel="1" name="Reinforced Spear Chest">
|
||||
<icon>icon.etc_treasure_box_i04</icon>
|
||||
|
@ -101,7 +101,7 @@
|
||||
</enchant>
|
||||
|
||||
<!-- Talisman of Aden -->
|
||||
<enchant id="91756" maxEnchant="10">
|
||||
<enchant id="91756" maxEnchant="10" safeEnchant="1">
|
||||
<item id="91745" />
|
||||
</enchant>
|
||||
|
||||
@ -153,6 +153,11 @@
|
||||
<item id="93042" />
|
||||
</enchant>
|
||||
|
||||
<!-- Adventurer's Talisman -->
|
||||
<enchant id="95688" maxEnchant="10" safeEnchant="1">
|
||||
<item id="91937" />
|
||||
</enchant>
|
||||
|
||||
<!-- Cloak of Protection -->
|
||||
<enchant id="93302" maxEnchant="10">
|
||||
<item id="93301" />
|
||||
|
@ -137,11 +137,28 @@ public class Q10290_ATripBegins extends Quest
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.YOU_VE_GOT_ADVENTURER_S_BRACELET_AND_ADVENTURER_S_TALISMAN_NCOMPLETE_THE_TUTORIAL_AND_TRY_TO_USE_THE_TALISMAN, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
addExpAndSp(player, (ExperienceData.getInstance().getExpForLevel(25) + 100) - player.getExp(), 42000);
|
||||
giveItems(player, BSOE_EVENT);
|
||||
giveItems(player, ADVENTURERS_BRACELET);
|
||||
giveItems(player, ADVENTURERS_TALISMAN);
|
||||
giveItems(player, SCROLL_OF_ENCHANT_ADVENTURERS_TALISMAN);
|
||||
giveItems(player, SCROLL_OF_ENCHANT_ADEN_WEAPON);
|
||||
// TODO: find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(BSOE_EVENT.getId()).size() <= 20)
|
||||
{
|
||||
// 20 due other quest rewards? Need to see for a possible to add a variable here.
|
||||
giveItems(player, BSOE_EVENT);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURERS_BRACELET.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURERS_BRACELET);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURERS_TALISMAN.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURERS_TALISMAN);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(SCROLL_OF_ENCHANT_ADVENTURERS_TALISMAN.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, SCROLL_OF_ENCHANT_ADVENTURERS_TALISMAN);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(SCROLL_OF_ENCHANT_ADEN_WEAPON.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, SCROLL_OF_ENCHANT_ADEN_WEAPON);
|
||||
}
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = "30332-03.html";
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ package quests.Q10971_TalismanEnchant;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
@ -32,7 +33,9 @@ public class Q10971_TalismanEnchant extends Quest
|
||||
// NPC
|
||||
private static final int CAPTAIN_BATHIS = 30332;
|
||||
// Item
|
||||
private static final int TALISMAN_OF_ADEN = 91745;
|
||||
private static final ItemHolder TALISMAN_OF_ADEN = new ItemHolder(91745, 1);
|
||||
private static final ItemHolder TALISMAN_OF_ADEN_ENCHANT = new ItemHolder(91756, 1);
|
||||
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 25;
|
||||
|
||||
@ -69,6 +72,15 @@ public class Q10971_TalismanEnchant extends Quest
|
||||
{
|
||||
qs.startQuest();
|
||||
player.sendPacket(new ExTutorialShowId(47));
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, TALISMAN_OF_ADEN);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN_ENCHANT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, TALISMAN_OF_ADEN_ENCHANT);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@ -88,7 +100,7 @@ public class Q10971_TalismanEnchant extends Quest
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
boolean foundEnchant = false;
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN))
|
||||
SEARCH: for (ItemInstance item : player.getInventory().getItemsByItemId(TALISMAN_OF_ADEN.getId()))
|
||||
{
|
||||
if (item.getEnchantLevel() > 0)
|
||||
{
|
||||
|
@ -79,8 +79,15 @@ public class Q10974_NewStylishEquipment extends Quest
|
||||
case "30857-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_SHEEP_HAT);
|
||||
giveItems(player, ADVENTURER_SHEEP_HAT);
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURER_SHEEP_HAT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURER_SHEEP_HAT);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ENCHANT_SCROLL_ADVENTURER_SHEEP_HAT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_SHEEP_HAT);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@ -110,8 +117,15 @@ public class Q10974_NewStylishEquipment extends Quest
|
||||
case "30857-05.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_BELT);
|
||||
giveItems(player, ADVENTURER_BELT);
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURER_BELT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURER_BELT);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ENCHANT_SCROLL_ADVENTURER_BELT.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_BELT);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@ -141,8 +155,15 @@ public class Q10974_NewStylishEquipment extends Quest
|
||||
case "30857-07.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_CLOAK);
|
||||
giveItems(player, ADVENTURER_CLOAK);
|
||||
// TODO: Find a better way to do this: Tempfix for not giving items when already have them in inventory (bugging abort and re-accepting).
|
||||
if (player.getInventory().getItemsByItemId(ADVENTURER_CLOAK.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ADVENTURER_CLOAK);
|
||||
}
|
||||
if (player.getInventory().getItemsByItemId(ENCHANT_SCROLL_ADVENTURER_CLOAK.getId()).isEmpty())
|
||||
{
|
||||
giveItems(player, ENCHANT_SCROLL_ADVENTURER_CLOAK);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
|
@ -303,12 +303,23 @@
|
||||
</item>
|
||||
<item id="91725" name="Scroll of Escape: Abandoned Camp" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Abandoned Camp. -->
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="30" />
|
||||
<set name="price" val="35000" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_oly_restricted" val="true" />
|
||||
<set name="handler" val="ItemSkills" />
|
||||
<set name="commissionItemType" val="SCROLL_OTHER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<cond addName="1" msgId="113">
|
||||
<player flyMounted="false" />
|
||||
</cond>
|
||||
<skills>
|
||||
<skill id="51441" level="1" /> <!-- Scroll of Escape: Master Kerkir -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="91726" name="Scroll of Escape: Windmill Hill" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Windmill Hill. -->
|
||||
@ -321,12 +332,23 @@
|
||||
</item>
|
||||
<item id="91727" name="Scroll of Escape: Ruins of Agony" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Ruins of Agony. -->
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="30" />
|
||||
<set name="price" val="35000" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_oly_restricted" val="true" />
|
||||
<set name="handler" val="ItemSkills" />
|
||||
<set name="commissionItemType" val="SCROLL_OTHER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<cond addName="1" msgId="113">
|
||||
<player flyMounted="false" />
|
||||
</cond>
|
||||
<skills>
|
||||
<skill id="51443" level="1" /> <!-- Scroll of Escape: Ruins of Agony -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="91728" name="Reinforced Spear Chest" type="EtcItem">
|
||||
<!-- Double-click to obtain the following items. -->
|
||||
|
@ -578,9 +578,11 @@
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="material" val="GOLD" />
|
||||
<set name="weight" val="120" />
|
||||
<set name="enchant_limit" val="1" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="enchant_enabled" val="true" />
|
||||
<set name="bodypart" val="deco1" />
|
||||
</item>
|
||||
<item id="91938" name="Primeval Isle's Prolongating Stone" type="EtcItem">
|
||||
|
@ -791,33 +791,63 @@
|
||||
</item>
|
||||
<item id="95586" name="Scroll of Escape: Master Kerkir" type="EtcItem">
|
||||
<!-- Can be used to teleport to Master Kerkir in the Wind Village. -->
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="5" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="30" />
|
||||
<set name="price" val="35000" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_oly_restricted" val="true" />
|
||||
<set name="handler" val="ItemSkills" />
|
||||
<set name="commissionItemType" val="SCROLL_OTHER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<cond addName="1" msgId="113">
|
||||
<player flyMounted="false" />
|
||||
</cond>
|
||||
<skills>
|
||||
<skill id="40296" level="1" /> <!-- Scroll of Escape: Master Kerkir -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="95587" name="Scroll of Escape: Grocer Evia" type="EtcItem">
|
||||
<!-- Can be used to teleport to Grocer Evia in the Wind Village. -->
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="5" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="30" />
|
||||
<set name="price" val="35000" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_oly_restricted" val="true" />
|
||||
<set name="handler" val="ItemSkills" />
|
||||
<set name="commissionItemType" val="SCROLL_OTHER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<cond addName="1" msgId="113">
|
||||
<player flyMounted="false" />
|
||||
</cond>
|
||||
<skills>
|
||||
<skill id="40297" level="1" /> <!-- Scroll of Escape: Grocer Evia -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="95588" name="Scroll of Escape: Gorgon Flower Garden" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Gorgon Flower Garden. -->
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="5" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="icon" val="icon.etc_scroll_of_return_i04" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="30" />
|
||||
<set name="price" val="35000" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_oly_restricted" val="true" />
|
||||
<set name="handler" val="ItemSkills" />
|
||||
<set name="commissionItemType" val="SCROLL_OTHER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<cond addName="1" msgId="113">
|
||||
<player flyMounted="false" />
|
||||
</cond>
|
||||
<skills>
|
||||
<skill id="40299" level="1" /> <!-- Scroll of Escape: Gorgon Flower Garden -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="95589" name="Scroll of Escape: Death Pass" type="EtcItem">
|
||||
<!-- Can be used to teleport to the Death Pass. -->
|
||||
|
@ -1036,11 +1036,17 @@
|
||||
<item id="95688" name="Scroll: Enchant Adventurer's Talisman" type="EtcItem">
|
||||
<!-- Required for enchanting Adventurer's Talisman. -->
|
||||
<set name="icon" val="icon.aden_talisman_scroll" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="default_action" val="SKILL_REDUCE" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="etcitem_type" val="ENCHT_AM" /> <!-- ENCHT_AM -->
|
||||
<set name="handler" val="EnchantScrolls" />
|
||||
<skills>
|
||||
<skill id="40338" level="1" /> <!-- Scroll: Enchant Adventurer's Talisman -->
|
||||
</skills>
|
||||
</item>
|
||||
<item id="95689" name="Young Knight's Shield" type="Armor">
|
||||
<set name="icon" val="icon.shield_leather_shield_i00" />
|
||||
|
@ -522,22 +522,87 @@
|
||||
</skill>
|
||||
<skill id="40296" toLevel="1" name="Scroll of Escape: Master Kerkir">
|
||||
<!-- Can be used to teleport to Master Kerkir in the Wind Village. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<hitTime>500</hitTime>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<itemConsumeCount>1</itemConsumeCount>
|
||||
<itemConsumeId>95586</itemConsumeId>
|
||||
<magicLevel>1</magicLevel>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<conditions>
|
||||
<condition name="OpAlignment">
|
||||
<affectType>CASTER</affectType>
|
||||
<alignment>LAWFUL</alignment>
|
||||
</condition>
|
||||
<condition name="OpCanEscape" />
|
||||
</conditions>
|
||||
<effects>
|
||||
<effect name="Teleport">
|
||||
<x>102609</x>
|
||||
<y>56031</y>
|
||||
<z>-4032</z>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="40297" toLevel="1" name="Scroll of Escape: Grocer Evia">
|
||||
<!-- Can be used to teleport to Grocer Evia in the Wind Village. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
|
||||
<hitTime>500</hitTime>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<itemConsumeCount>1</itemConsumeCount>
|
||||
<itemConsumeId>95587</itemConsumeId>
|
||||
<magicLevel>1</magicLevel>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<conditions>
|
||||
<condition name="OpAlignment">
|
||||
<affectType>CASTER</affectType>
|
||||
<alignment>LAWFUL</alignment>
|
||||
</condition>
|
||||
<condition name="OpCanEscape" />
|
||||
</conditions>
|
||||
<effects>
|
||||
<effect name="Teleport">
|
||||
<x>105091</x>
|
||||
<y>57525</y>
|
||||
<z>-3928</z>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="40298" toLevel="1" name="Scroll of Escape: High Priest Maximilian">
|
||||
<!-- Can be used to teleport to High Priest Maximilian in Giran. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
</skill>
|
||||
<skill id="40299" toLevel="1" name="Scroll of Escape: Gorgon Flower Garden">
|
||||
<skill id="95588" toLevel="1" name="Scroll of Escape: Gorgon Flower Garden">
|
||||
<!-- Can be used to teleport to the Gorgon Flower Garden. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<hitTime>500</hitTime>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<itemConsumeCount>1</itemConsumeCount>
|
||||
<itemConsumeId>95588</itemConsumeId>
|
||||
<magicLevel>1</magicLevel>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<conditions>
|
||||
<condition name="OpAlignment">
|
||||
<affectType>CASTER</affectType>
|
||||
<alignment>LAWFUL</alignment>
|
||||
</condition>
|
||||
<condition name="OpCanEscape" />
|
||||
</conditions>
|
||||
<effects>
|
||||
<effect name="Teleport">
|
||||
<x>105068</x>
|
||||
<y>57525</y>
|
||||
<z>-3936</z>
|
||||
</effect>
|
||||
</effects>
|
||||
|
||||
</skill>
|
||||
</list>
|
||||
|
@ -191,9 +191,14 @@
|
||||
<operateType>A1</operateType>
|
||||
</skill>
|
||||
<skill id="40338" toLevel="1" name="Scroll: Enchant Adventurer's Talisman">
|
||||
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<icon>icon.giant_item_equip</icon>
|
||||
<operateType>A1</operateType>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<magicLevel>1</magicLevel>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<hitCancelTime>0</hitCancelTime>
|
||||
<targetType>ITEM</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
</skill>
|
||||
<skill id="40339" toLevel="1" name="17th Anniversary Blessing">
|
||||
<!-- <font color="00DCFF"><Great discounts for death penalty recovery cost.></font> Lost item recovery price is $s1 XP recovery price is $s2 -->
|
||||
|
@ -276,7 +276,29 @@
|
||||
</skill>
|
||||
<skill id="51441" toLevel="1" name="Scroll of Escape: Abandoned Camp">
|
||||
<!-- A magical scroll that teleports to the Abandoned Camp. Cannot be exchanged, dropped, or sold. Can be stored in the private warehouse. -->
|
||||
<operateType>A1</operateType>
|
||||
<hitTime>500</hitTime>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<itemConsumeCount>1</itemConsumeCount>
|
||||
<itemConsumeId>91725</itemConsumeId>
|
||||
<magicLevel>1</magicLevel>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<conditions>
|
||||
<condition name="OpAlignment">
|
||||
<affectType>CASTER</affectType>
|
||||
<alignment>LAWFUL</alignment>
|
||||
</condition>
|
||||
<condition name="OpCanEscape" />
|
||||
</conditions>
|
||||
<effects>
|
||||
<effect name="Teleport">
|
||||
<x>-46868</x>
|
||||
<y>148086</y>
|
||||
<z>-2968</z>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="51442" toLevel="1" name="Scroll of Escape: Windmill Hill">
|
||||
<!-- A magical scroll that teleports to the Windmill Hill. Cannot be exchanged, dropped, or sold. Can be stored in the private warehouse. -->
|
||||
@ -284,7 +306,29 @@
|
||||
</skill>
|
||||
<skill id="51443" toLevel="1" name="Scroll of Escape: Ruins of Agony">
|
||||
<!-- A magical scroll that teleports to the Ruins of Agony. Cannot be exchanged, dropped, or sold. Can be stored in the warehouse. -->
|
||||
<operateType>A1</operateType>
|
||||
<hitTime>500</hitTime>
|
||||
<isMagic>2</isMagic> <!-- Static Skill -->
|
||||
<itemConsumeCount>1</itemConsumeCount>
|
||||
<itemConsumeId>91727</itemConsumeId>
|
||||
<magicLevel>1</magicLevel>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<conditions>
|
||||
<condition name="OpAlignment">
|
||||
<affectType>CASTER</affectType>
|
||||
<alignment>LAWFUL</alignment>
|
||||
</condition>
|
||||
<condition name="OpCanEscape" />
|
||||
</conditions>
|
||||
<effects>
|
||||
<effect name="Teleport">
|
||||
<x>-42307</x>
|
||||
<y>120810</y>
|
||||
<z>-3368</z>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="51444" toLevel="1" name="Reinforced Spear Chest">
|
||||
<icon>icon.etc_treasure_box_i04</icon>
|
||||
|
@ -129,7 +129,8 @@ public class RequestEnchantItem implements IClientIncomingPacket
|
||||
}
|
||||
|
||||
// fast auto-enchant cheat check
|
||||
if ((request.getTimestamp() == 0) || ((Chronos.currentTimeMillis() - request.getTimestamp()) < 2000))
|
||||
// Lowered value to 500 (from 2000) On Sylph, some enchantments are much faster than normal ones
|
||||
if ((request.getTimestamp() == 0) || ((Chronos.currentTimeMillis() - request.getTimestamp()) < 500))
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " use autoenchant program ", Config.DEFAULT_PUNISH);
|
||||
player.removeRequest(request.getClass());
|
||||
|
Loading…
Reference in New Issue
Block a user