Addition of quests 10963 and 10967.

Contributed by robikbobik.
This commit is contained in:
MobiusDevelopment 2019-11-22 16:26:29 +00:00
parent 799e889765
commit 0344aa5922
22 changed files with 488 additions and 25 deletions

View File

@ -22,7 +22,5 @@
10870 Unfinished Device
10871 Death to the Pirate King!
10960
10963
10964
10965
10967
10965

View File

@ -0,0 +1,5 @@
<html><body>High Priest Raymond:<br>
Do you know about Ant Nest is the Wasterland?<br>
Ants live there<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10963_ExploringTheAntNest 30289-02.htm">"Is there a problem?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>High Priest Raymond:<br>
If they were quiet, it would be no problem. But they are increasing in number and the people have been harmed by them.<br>
It is dangerrous, and the inside is very complex, so I cannot just ask anyone to investigate the Ant Nest. I think you should be able to explore given all the experience you are gained, adventurer.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10963_ExploringTheAntNest 30289-03.htm">"So, I just need to go to the Ant Nest?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>High Priest Raymond:<br>
Yes, Please go to the Ant Nest and get rid of 500 <font color=LEVEL>Ant Larva, Ant, Ant Captain, Ant Overseer, Ant Recruit, Ant Patrol, Ant Guard, Ant Soldier, Ant Warrior Captain, Noble Ant, Noble Ant Captain.</font><br>
You can get to the Ant Nest by using the teleport.<br1>
Select the Ant Nest in Gludio.<br>
May Einhasad Blessing be with you, adventurer.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Raymond:<br>
Did you finish the investigation in the Ant Nest?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10963_ExploringTheAntNest 30289-05.html">"Yes"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Raymond:<br>
You are amazing. Einhasad Blessing is within you.<br>
I cannot call this a reward, but I hope it helps you, adventurer.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>High Priest Raymond:<br>
You just finished an exploration, but it looks like I will have to ask you for another favor.<br>
It seems like Einhasad has made our fate even deeper, adventurer.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10963_ExploringTheAntNest 30289-01.htm">"What is it?"</Button>
</body></html>

View File

@ -0,0 +1,189 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.Q10963_ExploringTheAntNest;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
/**
* Exploring The Ant Nest (10963)
* @author RobikBobik
* @Note: Based on NA server September 2019
*/
public class Q10963_ExploringTheAntNest extends Quest
{
// NPC
private static final int RAYMOND = 30289;
// Monsters
private static final int ANT_LARVA = 20075;
private static final int ANT = 20079;
private static final int ANT_CAPTAIN = 20080;
private static final int ANT_OVERSEER = 20081;
private static final int ANT_RECRUIT = 20082;
private static final int ANT_PATROL = 20084;
private static final int ANT_GUARD = 20086;
private static final int ANT_SOLDIER = 20087;
private static final int ANT_WARRIOR_CAPTAIN = 20088;
private static final int ANT_NOBLE = 20089;
private static final int ANT_NOBLE_CAPTAIN = 20090;
// Misc
private static final String KILL_COUNT_VAR = "KillCount";
private static final int MIN_LEVEL = 34;
private static final int MAX_LEVEL = 37;
public Q10963_ExploringTheAntNest()
{
super(10963);
addStartNpc(RAYMOND);
addTalkId(RAYMOND);
addKillId(ANT_LARVA, ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, ANT_SOLDIER, ANT_WARRIOR_CAPTAIN, ANT_NOBLE, ANT_NOBLE_CAPTAIN);
setQuestNameNpcStringId(NpcStringId.LV_34_37_EXPLORING_THE_ANT_NEST);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
addCondMaxLevel(MAX_LEVEL, "no_lvl.html");
}
@Override
public boolean checkPartyMember(PlayerInstance member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30289-01.htm":
{
htmltext = event;
break;
}
case "30289-02.htm":
{
htmltext = event;
break;
}
case "30289-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "30289-05.html":
{
if (qs.isStarted())
{
addExpAndSp(player, 3000000, 75000);
qs.exitQuest(false, true);
htmltext = event;
break;
}
}
}
return htmltext;
}
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 500)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
killer.sendPacket(new ExShowScreenMessage(NpcStringId.MONSTERS_OF_THE_ANT_NEST_ARE_KILLED_NUSE_THE_TELEPORT_TO_GET_TO_HIGH_PRIEST_RAYMOND_IN_GLUDIO, 2, 5000));
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_THE_MONSTERS_IN_THE_ANT_NEST.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30289.htm";
}
else if (qs.isStarted())
{
switch (npc.getId())
{
case RAYMOND:
{
if (qs.isCond(2))
{
htmltext = "30289-04.html";
}
break;
}
}
}
else if (qs.isCompleted())
{
if (npc.getId() == RAYMOND)
{
htmltext = getAlreadyCompletedMsg(player);
}
}
return htmltext;
}
}

View File

@ -0,0 +1,3 @@
<html><body>High Priest Raymond:<br>
You do not meet the requirements of the quest (Quest is only available to 34-37 levels).
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Captain Bathis:<br>
You has gotten a little better, but you are still as impatient as ever.<br>
Anyway, do you still remember what Gatekeeper Bella has told you about teleporting?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10967_CulturedAdventurer 30332-02.htm">"Please tell me again."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Captain Bathis:<br>
If there is something you are unsure of, you must not hesitate to ask one more time.<br>
You can use teleport anywhere by click the yelloew pinwheel icon, so dont forget it!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10967_CulturedAdventurer 30332-03.htm">"Yes, sure"</Button>
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Captain Bathis:<br>
The most fundamental thing is patience.<br1>
Achievements wohout effort eften tend to be frothy.<br>
Time never flows by meaninglessly, and your effort always pays off in the end. Taking time to work slowly, but steadily without beigns impatient is the most basic yet also the most important thing.<br>
In that regard, the Abandoned Camp would be a good place to train this time. You should be more than capable of dealing with the Ol Mahums in that area.<br>
You can teleport to Abandoned Camp. It is on the hunting ground teleport list of Gludin Village, so it should be pretty straigntforward.<br>
I wish you luck, than.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Captain Bathis:<br>
Did you eradicate the Ol Mahums at the Abandoned Camp?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10967_CulturedAdventurer 30332-05.html">"Yes"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Captain Bathis:<br>
Well doe. I have prepared another special reward for you.<br>
I am about to give you a Jewel Fragment for adventurers who are still undergoing training. But whole jewels are a lot more powerful, so I recommend you keep an eye out out for them later if you are interested.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Captain Bathis:<br>
You were a greenhorn until recently, but now you could almost pass off as a seasoned veteran.<br>
It seems the time has come to tell you about things that you should know as an adventurer.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10967_CulturedAdventurer 30332-01.htm">"What is this?"</Button>
</body></html>

View File

@ -0,0 +1,197 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.Q10967_CulturedAdventurer;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
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.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
/**
* Cultured Adventurer (10967)
* @author RobikBobik
* @Note: Based on NA server September 2019
* @TODO: Maybe wrong NpcStringId when you killing monsters in Abandoned Camp
*/
public class Q10967_CulturedAdventurer extends Quest
{
// NPCs
private static final int CAPTAIN_BATHIS = 30332;
// Monsters
private static final int OL_MAHUM_SHOOTER = 20063;
private static final int OL_MAHUM_SERGEANT = 20439;
private static final int OL_MAHUM_OFFICER = 20066;
private static final int OL_MAHUM_GENERAL = 20438;
private static final int OL_MAHUM_COMMANDER = 20076;
// Items
private static final ItemHolder ADVENTURERS_BROOCH = new ItemHolder(91932, 1);
private static final ItemHolder ADVENTURERS_BROOCH_GEMS = new ItemHolder(91936, 1);
// Misc
private static final String KILL_COUNT_VAR = "KillCount";
private static final int MAX_LEVEL = 30;
private static final int MIN_LEVEL = 25;
public Q10967_CulturedAdventurer()
{
super(10967);
addStartNpc(CAPTAIN_BATHIS);
addTalkId(CAPTAIN_BATHIS);
addKillId(OL_MAHUM_SHOOTER, OL_MAHUM_SERGEANT, OL_MAHUM_OFFICER, OL_MAHUM_GENERAL, OL_MAHUM_COMMANDER);
setQuestNameNpcStringId(NpcStringId.LV_25_30_MORE_EXPERIENCE);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
addCondMaxLevel(MAX_LEVEL, "no_lvl.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30332-01.htm":
{
htmltext = event;
break;
}
case "30332-02.htm":
{
htmltext = event;
break;
}
case "30332-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "30332-05.html":
{
if (qs.isStarted())
{
player.sendPacket(new ExShowScreenMessage("You've obtained Adventurer's Brooch and Adventurer's Gem Fragment.#Check the tutorial to equip the gems.", 5000));
addExpAndSp(player, 2000000, 50000);
giveItems(player, ADVENTURERS_BROOCH);
giveItems(player, ADVENTURERS_BROOCH_GEMS);
qs.exitQuest(false, true);
htmltext = event;
break;
}
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30332.htm";
}
else if (qs.isStarted())
{
switch (npc.getId())
{
case CAPTAIN_BATHIS:
{
if (qs.isCond(2))
{
htmltext = "30332-04.html";
}
break;
}
}
}
else if (qs.isCompleted())
{
if (npc.getId() == CAPTAIN_BATHIS)
{
htmltext = getAlreadyCompletedMsg(player);
}
}
return htmltext;
}
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killer.isGM())
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
killer.sendPacket(new ExShowScreenMessage(NpcStringId.MONSTERS_OF_THE_ABANDONED_CAMP_ARE_KILLED_NUSE_THE_TELEPORT_TO_GET_TO_BATHIS_IN_GLUDIO, 2, 5000));
}
else if (killCount < 300)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
killer.sendPacket(new ExShowScreenMessage(NpcStringId.MONSTERS_OF_THE_ABANDONED_CAMP_ARE_KILLED_NUSE_THE_TELEPORT_TO_GET_TO_BATHIS_IN_GLUDIO, 2, 5000));
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_THE_MONSTERS_IN_THE_ABANDONED_CAMP.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
@Override
public boolean checkPartyMember(PlayerInstance member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
}

View File

@ -0,0 +1,3 @@
<html><body>Captain Bathis:<br>
You do not meet the requirements of the quest (Quest is only available to 25-30 levels).
</body></html>

View File

@ -43,7 +43,9 @@ import quests.Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.Q00935_ExploringThe
import quests.Q10866_PunitiveOperationOnTheDevilIsle.Q10866_PunitiveOperationOnTheDevilIsle;
import quests.Q10961_EffectiveTraining.Q10961_EffectiveTraining;
import quests.Q10962_NewHorizons.Q10962_NewHorizons;
import quests.Q10963_ExploringTheAntNest.Q10963_ExploringTheAntNest;
import quests.Q10966_ATripBegins.Q10966_ATripBegins;
import quests.Q10967_CulturedAdventurer.Q10967_CulturedAdventurer;
import quests.Q10981_UnbearableWolvesHowling.Q10981_UnbearableWolvesHowling;
import quests.Q10982_SpiderHunt.Q10982_SpiderHunt;
import quests.Q10983_TroubledForest.Q10983_TroubledForest;
@ -120,7 +122,9 @@ public class QuestMasterHandler
Q10871_DeathToThePirateKing.class, // TODO: Not done.
Q10961_EffectiveTraining.class,
Q10962_NewHorizons.class,
Q10963_ExploringTheAntNest.class,
Q10966_ATripBegins.class,
Q10967_CulturedAdventurer.class,
Q10981_UnbearableWolvesHowling.class,
Q10982_SpiderHunt.class,
Q10983_TroubledForest.class,

View File

@ -471,14 +471,15 @@
<!-- Activates 1 jewel slot. -->
<set name="icon" val="icon.etc_bm_brooch_lavianrose_i00" />
<set name="default_action" val="EQUIP" />
<set name="bodypart" val="underwear" />
<set name="bodypart" val="brooch" />
<set name="immediate_effect" val="true" />
<set name="material" val="SILVER" />
<set name="weight" val="10" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_depositable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="50183" level="1"/> <!-- Activates 2 jewel slots. -->
</skills>
</item>
<item id="91933" name="Adventurer's Agathion Bracelet" type="Armor">
<!-- Activates 1 Agathion slot. -->
@ -532,6 +533,9 @@
<set name="is_dropable" val="false" />
<set name="is_depositable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="50187" level="1"/> <!-- Adventurer's Rough Jewel -->
</skills>
</item>
<item id="91937" name="Adventurer's Talisman" type="Armor">
<!-- M. Def. +5. The effect doesn't stack if two identical talismans are equipped. -->

View File

@ -3543,10 +3543,10 @@
<race>HUMANOID</race>
<sex>MALE</sex>
<equipment rhand="14" /> <!-- Bow -->
<acquire exp="1157" sp="34" />
<acquire exp="1390" sp="42" />
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
<vitals hp="178.57475" hpRegen="3.5" mp="267.27" mpRegen="1.5" />
<attack physical="133.7574451" magical="41.10666" random="10" critical="8" accuracy="0" attackSpeed="227" reuseDelay="1500" type="BOW" range="500" distance="10" width="0" />
<vitals hp="458.925" hpRegen="3.5" mp="272.706" mpRegen="1.5" />
<attack physical="60.19687" magical="41.10666" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
<defence physical="98.70919" magical="72.2311" />
<speed>
<walk ground="50" />
@ -3727,11 +3727,11 @@
<race>HUMANOID</race>
<sex>MALE</sex>
<equipment rhand="69" /> <!-- Bastard Sword -->
<acquire exp="1232" sp="36" />
<acquire exp="1479" sp="45" />
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
<vitals hp="189.16608" hpRegen="3.5" mp="282.315" mpRegen="1.5" />
<attack physical="71.315233" magical="44.27187" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="92.57757273" magical="74.51868" />
<vitals hp="486.144" hpRegen="3.5" mp="288.057" mpRegen="1.5" />
<attack physical="64.83203" magical="44.27187" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
<defence physical="101.83533" magical="74.51868" />
<speed>
<walk ground="50" />
<run ground="110" />
@ -4318,11 +4318,11 @@
<race>HUMANOID</race>
<sex>MALE</sex>
<equipment rhand="69" /> <!-- Bastard Sword -->
<acquire exp="2867" sp="86" />
<acquire exp="3442" sp="104" />
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
<vitals hp="235.102895" hpRegen="3.5" mp="343.38" mpRegen="1.5" />
<attack physical="95.062022" magical="59.01367" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="104.5508909" magical="84.15638" />
<vitals hp="302.09925" hpRegen="3.5" mp="350.364" mpRegen="1.5" />
<attack physical="86.42002" magical="59.01367" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
<defence physical="115.00598" magical="84.15638" />
<speed>
<walk ground="50" />
<run ground="110" />

View File

@ -1854,11 +1854,11 @@
<race>HUMANOID</race>
<sex>MALE</sex>
<equipment rhand="67" lhand="102" /> <!-- Orcish Sword / Round Shield -->
<acquire exp="2437" sp="73" />
<acquire exp="2925" sp="88" />
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
<vitals hp="200.00372" hpRegen="3.5" mp="297.36" mpRegen="1.5" />
<attack physical="76.735186" magical="47.63653" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="95.48016364" magical="76.85506" shield="53" shieldRate="20" />
<vitals hp="256.998" hpRegen="3.5" mp="303.408" mpRegen="1.5" />
<attack physical="69.75926" magical="47.63653" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
<defence physical="105.02818" magical="76.85506" shield="53" shieldRate="20"/>
<speed>
<walk ground="50" />
<run ground="110" />
@ -1916,11 +1916,11 @@
<race>HUMANOID</race>
<sex>MALE</sex>
<equipment rhand="66" /> <!-- Gladius -->
<acquire exp="2148" sp="64" />
<acquire exp="2578" sp="78" />
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
<vitals hp="178.57475" hpRegen="3.5" mp="267.27" mpRegen="1.5" />
<attack physical="54.72442727" magical="41.10666" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="108.580109" magical="72.2311" />
<vitals hp="229.4625" hpRegen="3.5" mp="272.706" mpRegen="1.5" />
<attack physical="60.19687" magical="41.10666" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
<defence physical="98.70919" magical="72.2311" />
<speed>
<walk ground="50" />
<run ground="110" />

View File

@ -662,6 +662,11 @@
<!-- 1 gemstone can be equipped. -->
<icon>icon.etc_bm_brooch_lavianrose_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="JewelSlot">
<amount>1</amount>
</effect>
</effects>
</skill>
<skill id="50184" toLevel="1" name="Adventurer's Agathion Bracelet">
<!-- Activates the main agathion slot. -->