Updated ClassMaster script.

This commit is contained in:
MobiusDevelopment 2020-11-09 11:35:59 +00:00
parent ef64a0433e
commit 9b0dda8982
18 changed files with 88 additions and 142 deletions

View File

@ -897,7 +897,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
(player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85)))
//@formatter:on
{
player.sendPacket(new TutorialShowQuestionMark(1, 0)); // mark id was 1001 - used 1 for tutorial text
player.sendPacket(new TutorialShowQuestionMark(102, 0));
}
}
@ -906,7 +906,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
public void onPlayerPressTutorialMark(OnPlayerPressTutorialMark event)
{
final PlayerInstance player = event.getPlayer();
if (!_showPopupWindow || (event.getMarkId() != 1)) // mark id was 1001 - used 1 for tutorial text
if (!_showPopupWindow || (event.getMarkId() != 102))
{
return;
}

View File

@ -897,7 +897,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
(player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85)))
//@formatter:on
{
player.sendPacket(new TutorialShowQuestionMark(1, 0)); // mark id was 1001 - used 1 for tutorial text
player.sendPacket(new TutorialShowQuestionMark(102, 0));
}
}
@ -906,7 +906,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
public void onPlayerPressTutorialMark(OnPlayerPressTutorialMark event)
{
final PlayerInstance player = event.getPlayer();
if (!_showPopupWindow || (event.getMarkId() != 1)) // mark id was 1001 - used 1 for tutorial text
if (!_showPopupWindow || (event.getMarkId() != 102))
{
return;
}

View File

@ -250,10 +250,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
htmltext = npc.getId() == CLASS_MASTERS.get(0) ? "test_server_helper001a.html" : "test_server_helper001b.html";
break;
}
/*
* case "setnoble": { if (player.isNoble()) { htmltext = "test_server_helper025b.html"; } else if (player.getLevel() < 75) { htmltext = "test_server_helper025a.html"; } else { player.setNoble(true); player.broadcastUserInfo(); // TODO: SetOneTimeQuestFlag(talker, 10385, 1); htmltext =
* "test_server_helper025.html"; } break; }
*/
case "firstclass":
{
htmltext = getFirstOccupationChangeHtml(player);
@ -279,21 +275,12 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
htmltext = "test_server_helper011.html";
}
// else if (player.isInCategory(CategoryType.AWAKEN_GROUP))
// {
// htmltext = "test_server_helper011a.html";
// }
else
{
htmltext = "test_server_helper024.html";
}
break;
}
/*
* case "awaken": { if (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() > 84)) { if (changeToNextClass(player)) { player.sendPacket(new PlaySound("ItemSound.quest_fanfare_2")); player.broadcastUserInfo(); player.store(false); // Save player cause if server
* crashes before this char is saved, he will lose class and the money payed for class change. htmltext = "test_server_helper021.html"; } } else if (player.isInCategory(CategoryType.AWAKEN_GROUP)) { htmltext = "test_server_helper011a.html"; } else { htmltext =
* "test_server_helper011b.html"; } break; }
*/
case "setclass":
{
if (!st.hasMoreTokens())
@ -315,10 +302,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
canChange = CategoryData.getInstance().isInCategory(CategoryType.FOURTH_CLASS_GROUP, classId);
}
// else if (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85)) // 9
// {
// canChange = CategoryData.getInstance().isInCategory(CategoryType.AWAKEN_GROUP, classId); // 11
// }
if (canChange)
{
int classDataIndex = -1;
@ -383,14 +366,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
player.setBaseClass(player.getActiveClass());
}
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
// {
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
// {
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
// }
// SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
// }
if (Config.AUTO_LEARN_SKILLS)
{
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
@ -410,15 +385,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
}
case "learnskills":
{
// Retail class master only lets you learn all third class skills.
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
// {
// htmltext = "test_server_helper001_failed.html";
// }
// else
// {
player.giveAvailableSkills(true, true);
// }
break;
}
case "clanlevelup":
@ -534,10 +501,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
htmltext = "test_server_helper011.html";
}
// else if (player.isInCategory(CategoryType.AWAKEN_GROUP))
// {
// htmltext = "test_server_helper011a.html";
// }
return htmltext;
}
@ -685,12 +648,21 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
htmltext = "test_server_helper020a.html";
break;
}
case KAMAEL_SOLDIER:
case TROOPER:
{
htmltext = "test_server_helper020c.html";
break;
}
case SOUL_FINDER:
{
htmltext = "test_server_helper020d.html";
break;
}
case WARDER:
{
htmltext = "test_server_helper020e.html";
break;
}
}
}
}
@ -702,10 +674,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
htmltext = "test_server_helper011.html";
}
// else if (player.isInCategory(CategoryType.AWAKEN_GROUP))
// {
// htmltext = "test_server_helper011a.html";
// }
else
{
htmltext = "test_server_helper029.html";
@ -792,14 +760,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
player.setBaseClass(player.getActiveClass());
}
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
// {
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
// {
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
// }
// SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
// }
if (Config.AUTO_LEARN_SKILLS)
{
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
@ -821,11 +781,10 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
//@formatter:off
if ((player.isInCategory(CategoryType.FIRST_CLASS_GROUP) && (player.getLevel() >= 20)) ||
((player.isInCategory(CategoryType.SECOND_CLASS_GROUP) || player.isInCategory(CategoryType.FIRST_CLASS_GROUP)) && (player.getLevel() >= 40)) ||
(player.isInCategory(CategoryType.THIRD_CLASS_GROUP) && (player.getLevel() >= 76)) /*||
(player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85))*/)
(player.isInCategory(CategoryType.THIRD_CLASS_GROUP) && (player.getLevel() >= 76)))
//@formatter:on
{
player.sendPacket(new TutorialShowQuestionMark(2, 0)); // mark id was 1001 - used 2 for quest text
player.sendPacket(new TutorialShowQuestionMark(102, 0));
}
}
@ -834,13 +793,13 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
public void onPlayerPressTutorialMark(OnPlayerPressTutorialMark event)
{
final PlayerInstance player = event.getPlayer();
if (!_showPopupWindow || (event.getMarkId() != 2)) // mark id was 1001 - used 2 for quest text
if (!_showPopupWindow || (event.getMarkId() != 102))
{
return;
}
String html = null;
if ((player.isInCategory(CategoryType.SECOND_CLASS_GROUP) || player.isInCategory(CategoryType.FIRST_CLASS_GROUP)) && (player.getLevel() >= 40)) // In retail you can skip first occupation
if ((player.isInCategory(CategoryType.SECOND_CLASS_GROUP) || (player.isInCategory(CategoryType.FIRST_CLASS_GROUP) && (player.getRace() != Race.KAMAEL))) && (player.getLevel() >= 40)) // In retail you can skip first occupation
{
html = getHtm(player, getSecondOccupationChangeHtml(player));
}
@ -852,14 +811,9 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
html = getHtm(player, "qm_thirdclass.html");
}
// else if (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85)) // 9
// {
// html = getHtm(player, "qm_awaken.html");
// }
if (html != null)
{
showResult(event.getPlayer(), html);
// player.sendPacket(new TutorialShowHtml(html));
}
}

View File

@ -1,5 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 127">"Berserker."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 128">"Soul Breaker!"</Button>
</body></html>

View File

@ -1,5 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 130">"Arbalester."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 129">"Soul Breaker!"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 194">"Soul Breaker!"</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 184">"Marauder."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 130">Soul Ranger!</Button>
</body></html>

View File

@ -1,4 +1,6 @@
<html><body>Test Server Helper:<br>
To which class do you want to change?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 125">"Trooper."</Button>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 125">"Trooper!"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 193">"Soul Finder!"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 126">"Warder!"</Button>
</body></html>

View File

@ -250,10 +250,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
htmltext = npc.getId() == CLASS_MASTERS.get(0) ? "test_server_helper001a.html" : "test_server_helper001b.html";
break;
}
/*
* case "setnoble": { if (player.isNoble()) { htmltext = "test_server_helper025b.html"; } else if (player.getLevel() < 75) { htmltext = "test_server_helper025a.html"; } else { player.setNoble(true); player.broadcastUserInfo(); // TODO: SetOneTimeQuestFlag(talker, 10385, 1); htmltext =
* "test_server_helper025.html"; } break; }
*/
case "firstclass":
{
htmltext = getFirstOccupationChangeHtml(player);
@ -279,21 +275,12 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
htmltext = "test_server_helper011.html";
}
// else if (player.isInCategory(CategoryType.AWAKEN_GROUP))
// {
// htmltext = "test_server_helper011a.html";
// }
else
{
htmltext = "test_server_helper024.html";
}
break;
}
/*
* case "awaken": { if (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() > 84)) { if (changeToNextClass(player)) { player.sendPacket(new PlaySound("ItemSound.quest_fanfare_2")); player.broadcastUserInfo(); player.store(false); // Save player cause if server
* crashes before this char is saved, he will lose class and the money payed for class change. htmltext = "test_server_helper021.html"; } } else if (player.isInCategory(CategoryType.AWAKEN_GROUP)) { htmltext = "test_server_helper011a.html"; } else { htmltext =
* "test_server_helper011b.html"; } break; }
*/
case "setclass":
{
if (!st.hasMoreTokens())
@ -315,10 +302,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
canChange = CategoryData.getInstance().isInCategory(CategoryType.FOURTH_CLASS_GROUP, classId);
}
// else if (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85)) // 9
// {
// canChange = CategoryData.getInstance().isInCategory(CategoryType.AWAKEN_GROUP, classId); // 11
// }
if (canChange)
{
int classDataIndex = -1;
@ -383,14 +366,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
player.setBaseClass(player.getActiveClass());
}
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
// {
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
// {
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
// }
// SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
// }
if (Config.AUTO_LEARN_SKILLS)
{
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
@ -410,15 +385,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
}
case "learnskills":
{
// Retail class master only lets you learn all third class skills.
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
// {
// htmltext = "test_server_helper001_failed.html";
// }
// else
// {
player.giveAvailableSkills(true, true);
// }
break;
}
case "clanlevelup":
@ -519,6 +486,21 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
htmltext = "test_server_helper026j.html";
break;
}
case DEATH_PILGRIM_HUMAN:
{
htmltext = "test_server_helper026k.html";
break;
}
case DEATH_PILGRIM_ELF:
{
htmltext = "test_server_helper026l.html";
break;
}
case DEATH_PILGRIM_DARK_ELF:
{
htmltext = "test_server_helper026m.html";
break;
}
}
}
}
@ -534,10 +516,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
htmltext = "test_server_helper011.html";
}
// else if (player.isInCategory(CategoryType.AWAKEN_GROUP))
// {
// htmltext = "test_server_helper011a.html";
// }
return htmltext;
}
@ -685,12 +663,36 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
htmltext = "test_server_helper020a.html";
break;
}
case KAMAEL_SOLDIER:
case TROOPER:
{
htmltext = "test_server_helper020c.html";
break;
}
case SOUL_FINDER:
{
htmltext = "test_server_helper020d.html";
break;
}
case WARDER:
{
htmltext = "test_server_helper020e.html";
break;
}
case DEATH_BLADE_HUMAN:
{
htmltext = "test_server_helper020f.html";
break;
}
case DEATH_BLADE_ELF:
{
htmltext = "test_server_helper020g.html";
break;
}
case DEATH_BLADE_DARK_ELF:
{
htmltext = "test_server_helper020h.html";
break;
}
}
}
}
@ -702,10 +704,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
htmltext = "test_server_helper011.html";
}
// else if (player.isInCategory(CategoryType.AWAKEN_GROUP))
// {
// htmltext = "test_server_helper011a.html";
// }
else
{
htmltext = "test_server_helper029.html";
@ -792,14 +790,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
player.setBaseClass(player.getActiveClass());
}
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
// {
// for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
// {
// player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
// }
// SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
// }
if (Config.AUTO_LEARN_SKILLS)
{
player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
@ -821,11 +811,10 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
//@formatter:off
if ((player.isInCategory(CategoryType.FIRST_CLASS_GROUP) && (player.getLevel() >= 20)) ||
((player.isInCategory(CategoryType.SECOND_CLASS_GROUP) || player.isInCategory(CategoryType.FIRST_CLASS_GROUP)) && (player.getLevel() >= 40)) ||
(player.isInCategory(CategoryType.THIRD_CLASS_GROUP) && (player.getLevel() >= 76)) /*||
(player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85))*/)
(player.isInCategory(CategoryType.THIRD_CLASS_GROUP) && (player.getLevel() >= 76)))
//@formatter:on
{
player.sendPacket(new TutorialShowQuestionMark(2, 0)); // mark id was 1001 - used 2 for quest text
player.sendPacket(new TutorialShowQuestionMark(102, 0));
}
}
@ -834,13 +823,13 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
public void onPlayerPressTutorialMark(OnPlayerPressTutorialMark event)
{
final PlayerInstance player = event.getPlayer();
if (!_showPopupWindow || (event.getMarkId() != 2)) // mark id was 1001 - used 2 for quest text
if (!_showPopupWindow || (event.getMarkId() != 102))
{
return;
}
String html = null;
if ((player.isInCategory(CategoryType.SECOND_CLASS_GROUP) || player.isInCategory(CategoryType.FIRST_CLASS_GROUP)) && (player.getLevel() >= 40)) // In retail you can skip first occupation
if ((player.isInCategory(CategoryType.SECOND_CLASS_GROUP) || (player.isInCategory(CategoryType.FIRST_CLASS_GROUP) && (player.getRace() != Race.KAMAEL) && (player.getClassId().getId() < 196))) && (player.getLevel() >= 40)) // In retail you can skip first occupation
{
html = getHtm(player, getSecondOccupationChangeHtml(player));
}
@ -852,14 +841,9 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
html = getHtm(player, "qm_thirdclass.html");
}
// else if (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (player.getLevel() >= 85)) // 9
// {
// html = getHtm(player, "qm_awaken.html");
// }
if (html != null)
{
showResult(event.getPlayer(), html);
// player.sendPacket(new TutorialShowHtml(html));
}
}

View File

@ -1,5 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 127">"Berserker."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 128">"Soul Breaker!"</Button>
</body></html>

View File

@ -1,5 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 130">"Arbalester."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 129">"Soul Breaker!"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 194">"Soul Breaker!"</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 184">"Marauder."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 130">Soul Ranger!</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 185">"Cloud Breaker."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 198">Death Messenger!</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 185">"Cloud Breaker."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 202">Death Messenger!</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you want to change?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 126">"Warder."</Button>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 206">Death Messenger!</Button>
</body></html>

View File

@ -1,4 +1,6 @@
<html><body>Test Server Helper:<br>
To which class do you want to change?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 125">"Trooper."</Button>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 125">"Trooper!"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 193">"Soul Finder!"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 126">"Warder!"</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you want to change?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 126">"Warder."</Button>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 197">"Death Pilgrim!"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 201">"Death Pilgrim!"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Test Server Helper:<br>
To which class do you wish to transfer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClassMaster setclass 205">"Death Pilgrim!"</Button>
</body></html>