Addition of purge system.
Contributed by iDesy.
This commit is contained in:
@@ -658,6 +658,14 @@ EnableAutoBuff = True
|
||||
EnableAutoItem = True
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Purge Settings
|
||||
# ---------------------------------------------------------------------------
|
||||
# Purge reward mail message.
|
||||
SubjugationTopicHeader = Purge reward
|
||||
SubjugationTopicBody = Reward for being in the top of the best players in clearing the lands of Aden
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Developer Settings
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
128
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/SubjugationData.xml
vendored
Normal file
128
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/SubjugationData.xml
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/Subjugation.xsd">
|
||||
<purge name="Cruma Tower Purge" category="1" hottimes="12-14;19-23">
|
||||
<npc id="22200" points="200" /> <!-- Porta -->
|
||||
<npc id="22201" points="200" /> <!-- Excuro -->
|
||||
<npc id="22202" points="200" /> <!-- Mordeo -->
|
||||
<npc id="22203" points="200" /> <!-- Ricenseo -->
|
||||
<npc id="22204" points="200" /> <!-- Krator -->
|
||||
<npc id="22205" points="200" /> <!-- Catherok -->
|
||||
<npc id="22206" points="200" /> <!-- Premo -->
|
||||
<npc id="22207" points="200" /> <!-- Validus -->
|
||||
<npc id="22208" points="200" /> <!-- Dicor -->
|
||||
<npc id="22209" points="200" /> <!-- Perum -->
|
||||
<npc id="22210" points="200" /> <!-- Torfe -->
|
||||
<npc id="29006" points="200" /> <!-- Core -->
|
||||
<npc id="29007" points="200" /> <!-- Death Knight -->
|
||||
<npc id="29008" points="200" /> <!-- Doom Wraith -->
|
||||
</purge>
|
||||
<purge name="Silent Valley Purge" category="2" hottimes="12-14;19-23">
|
||||
<npc id="20968" points="300" /> <!-- Forgotten Face -->
|
||||
<npc id="20969" points="300" /> <!-- Giant's Shadow -->
|
||||
<npc id="20971" points="300" /> <!-- Warrior of Ancient Times -->
|
||||
<npc id="20972" points="300" /> <!-- Shaman of Ancient Times -->
|
||||
<npc id="20973" points="300" /> <!-- Forgotten Ancient Creature -->
|
||||
</purge>
|
||||
<purge name="Plains of the Lizardmen Purge" category="3" hottimes="12-14;19-23">
|
||||
<npc id="22151" points="400" /> <!-- Tanta Lizardman -->
|
||||
<npc id="22152" points="400" /> <!-- Tanta Lizardman Warrior -->
|
||||
<npc id="22153" points="400" /> <!-- Tanta Lizardman Berserker -->
|
||||
<npc id="22154" points="400" /> <!-- Tanta Lizardman Archer -->
|
||||
<npc id="22156" points="400" /> <!-- Greg -->
|
||||
</purge>
|
||||
<purge name="Tower of Insolence Purge" category="4" hottimes="12-14;19-23">
|
||||
<npc id="21989" points="400" /> <!-- Ghost of the Tower -->
|
||||
<npc id="21990" points="400" /> <!-- Tower Watchman -->
|
||||
<npc id="21991" points="400" /> <!-- Ghastly Warrior -->
|
||||
<npc id="21992" points="400" /> <!-- Archer of Despair -->
|
||||
<npc id="21994" points="400" /> <!-- Crendion -->
|
||||
<npc id="21995" points="400" /> <!-- Swordsman of Ordeal -->
|
||||
<npc id="21996" points="400" /> <!-- Hound of Destruction -->
|
||||
<npc id="21997" points="400" /> <!-- Royal Guard of Insolence -->
|
||||
<npc id="21998" points="400" /> <!-- Archer of Insolence -->
|
||||
<npc id="21999" points="400" /> <!-- Haughty Judge -->
|
||||
<npc id="22001" points="400" /> <!-- Corrupted Sage -->
|
||||
<npc id="22000" points="400" /> <!-- Corrupted Ghost -->
|
||||
<npc id="22002" points="400" /> <!-- Corrupted Warrior -->
|
||||
<npc id="22003" points="400" /> <!-- Archer of Abyss -->
|
||||
<npc id="22004" points="400" /> <!-- Hound of Grief -->
|
||||
<npc id="22005" points="400" /> <!-- Hallate's Inspector -->
|
||||
<npc id="22006" points="400" /> <!-- Hallate's Knight -->
|
||||
<npc id="22007" points="400" /> <!-- Hallate's Commander -->
|
||||
<npc id="22008" points="400" /> <!-- Hallate's Maid -->
|
||||
<npc id="22009" points="400" /> <!-- Erin Ediunce -->
|
||||
<npc id="22010" points="400" /> <!-- Platinum Tribe Soldier -->
|
||||
<npc id="22011" points="400" /> <!-- Platinum Tribe Shaman -->
|
||||
<npc id="22012" points="400" /> <!-- Platinum Tribe Guard -->
|
||||
<npc id="22013" points="400" /> <!-- Platinum Tribe Knight -->
|
||||
<npc id="22014" points="400" /> <!-- Platinum Tribe Officer -->
|
||||
<npc id="22015" points="400" /> <!-- Platinum Tribe Warrior -->
|
||||
<npc id="22016" points="400" /> <!-- Platinum Tribe Elite Soldier -->
|
||||
<npc id="22017" points="400" /> <!-- Platinum Tribe Archer -->
|
||||
<npc id="22018" points="400" /> <!-- Platinum Tribe Gladiator -->
|
||||
<npc id="22019" points="400" /> <!-- Platinum Tribe Prefect -->
|
||||
<npc id="22020" points="400" /> <!-- Guardian Angel -->
|
||||
<npc id="22021" points="400" /> <!-- Guardian Archangel -->
|
||||
<npc id="22022" points="400" /> <!-- Guardian Angel Messenger -->
|
||||
<npc id="22024" points="400" /> <!-- Angel Messenger of Insolence -->
|
||||
<npc id="22025" points="400" /> <!-- Prime Messenger of Insolence -->
|
||||
<npc id="22026" points="400" /> <!-- Wise Messenger of Insolence -->
|
||||
<npc id="22028" points="400" /> <!-- Virtuous Guardian Angel -->
|
||||
<npc id="22029" points="400" /> <!-- Messenger Commander -->
|
||||
<npc id="22030" points="400" /> <!-- Messenger Scout -->
|
||||
<npc id="22032" points="400" /> <!-- Sealed Angel -->
|
||||
<npc id="22033" points="400" /> <!-- Sealed Guardian Angel -->
|
||||
<npc id="22035" points="400" /> <!-- Tower Guardian Archangel -->
|
||||
<npc id="22038" points="400" /> <!-- Tower Guardian Shaman -->
|
||||
<npc id="22039" points="400" /> <!-- Tower Guardian Messenger -->
|
||||
</purge>
|
||||
<purge name="Dragon Valley Purge" category="5" hottimes="12-14;19-23">
|
||||
<npc id="22309" points="400" /> <!-- Dragontroop Wizard -->
|
||||
<npc id="22308" points="400" /> <!-- Dragontroop Minion -->
|
||||
<npc id="22306" points="400" /> <!-- Dragontroop Lancer -->
|
||||
<npc id="22307" points="400" /> <!-- Dragontroop Berserker -->
|
||||
<npc id="22305" points="400" /> <!-- Dragontroop Soldier -->
|
||||
<npc id="22310" points="400" /> <!-- Dragontroop Elite Wizard -->
|
||||
<npc id="22311" points="400" /> <!-- Drake Minion -->
|
||||
<npc id="22312" points="400" /> <!-- Mutated Drake -->
|
||||
<npc id="22310" points="400" /> <!-- Dragontroop Elite Wizard -->
|
||||
<npc id="20239" points="400" /> <!-- Cave Servant Captain -->
|
||||
<npc id="20238" points="400" /> <!-- Cave Servant Warrior -->
|
||||
<npc id="20236" points="400" /> <!-- Cave Servant -->
|
||||
<npc id="20237" points="400" /> <!-- Cave Servant Archer -->
|
||||
<npc id="20235" points="400" /> <!-- Convict -->
|
||||
<npc id="20146" points="400" /> <!-- Headless Knight -->
|
||||
<npc id="20412" points="400" /> <!-- Cave Banshee -->
|
||||
<npc id="20246" points="400" /> <!-- Cave Keeper -->
|
||||
<npc id="20240" points="400" /> <!-- Royal Cave Servant -->
|
||||
<npc id="20241" points="400" /> <!-- Gargoyle Hunter -->
|
||||
<npc id="20242" points="400" /> <!-- Dustwind Gargoyle -->
|
||||
<npc id="20243" points="400" /> <!-- Thunder Wyrm -->
|
||||
<npc id="20244" points="400" /> <!-- Maluk Succubus -->
|
||||
<npc id="20247" points="400" /> <!-- ??? -->
|
||||
</purge>
|
||||
<purge name="Sel Mahum Base Purge" category="6" hottimes="12-14;19-23">
|
||||
<npc id="22238" points="400" /> <!-- Sel Mahum Raider -->
|
||||
<npc id="22237" points="400" /> <!-- Sel Mahum Sniper -->
|
||||
<npc id="22239" points="400" /> <!-- Sel Mahum Berserker -->
|
||||
<npc id="22240" points="400" /> <!-- Sel Mahum Mage -->
|
||||
<npc id="22241" points="400" /> <!-- Sel Mahum Thief -->
|
||||
<npc id="22242" points="400" /> <!-- Sel Mahum Wizard -->
|
||||
<npc id="22243" points="400" /> <!-- Sel Mahum Knight -->
|
||||
<npc id="22244" points="400" /> <!-- Sel Mahum Footman -->
|
||||
<npc id="22245" points="400" /> <!-- Sel Mahum Bowman -->
|
||||
<npc id="22254" points="400" /> <!-- Sel Mahum Knight Captain -->
|
||||
<npc id="22253" points="400" /> <!-- Sel Mahum Elder -->
|
||||
<npc id="22255" points="400" /> <!-- Sel Mahum Escort Captain -->
|
||||
<npc id="22256" points="400" /> <!-- Sel Mahum Archer -->
|
||||
</purge>
|
||||
<purge name="Orc Barracks Purge" category="7" hottimes="12-14;19-23">
|
||||
<npc id="22135" points="400" /> <!-- Turek Orc -->
|
||||
<npc id="22137" points="400" /> <!-- Turek Orc Marksman -->
|
||||
<npc id="22138" points="400" /> <!-- Turek Orc Warrior -->
|
||||
<npc id="22139" points="400" /> <!-- Turek Orc Shaman -->
|
||||
<npc id="22141" points="400" /> <!-- Turek Orc Elite -->
|
||||
<npc id="22143" points="400" /> <!-- Turek Orc Sniper -->
|
||||
<npc id="22144" points="400" /> <!-- Turek Orc Prefect -->
|
||||
<npc id="22145" points="400" /> <!-- Turek Orc Elder -->
|
||||
</purge>
|
||||
</list>
|
||||
58
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/SubjugationGacha.xml
vendored
Normal file
58
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/SubjugationGacha.xml
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/SubjugationGacha.xsd">
|
||||
<purge category="1">
|
||||
<item id="95432" rate="10.0"/> <!-- Excuro's Staff -->
|
||||
<item id="95433" rate="10.0"/> <!-- Torfe's Claw -->
|
||||
<item id="95481" rate="20.0"/> <!-- Aden Purge Crystal -->
|
||||
<item id="95482" rate="20.0"/> <!-- Recipe: Cruma Tower Purge Equipment -->
|
||||
<item id="95474" rate="20.0"/> <!-- High-grade Supply Box - Cruma Tower Purge -->
|
||||
<item id="95467" rate="20.0"/> <!-- Low-grade Supply Box - Cruma Tower Purge -->
|
||||
</purge>
|
||||
<purge category="2">
|
||||
<item id="95434" rate="10.0"/> <!-- Giants' Club -->
|
||||
<item id="95435" rate="10.0"/> <!-- Ancient Rapier -->
|
||||
<item id="95481" rate="20.0"/> <!-- Aden Purge Crystal -->
|
||||
<item id="95483" rate="20.0"/> <!-- Recipe: Silent Valley Purge Equipment -->
|
||||
<item id="95475" rate="20.0"/> <!-- High-grade Supply Box - Silent Valley Purge -->
|
||||
<item id="95468" rate="20.0"/> <!-- Low-grade Supply Box - Silent Valley Purge -->
|
||||
</purge>
|
||||
<purge category="3">
|
||||
<item id="95438" rate="10.0"/> <!-- Lizardman Shaman's Staff -->
|
||||
<item id="95439" rate="10.0"/> <!-- Lizard Slayer -->
|
||||
<item id="95481" rate="20.0"/> <!-- Aden Purge Crystal -->
|
||||
<item id="95485" rate="20.0"/> <!-- Recipe: Plains of the Lizardmen Purge Equipment -->
|
||||
<item id="95477" rate="20.0"/> <!-- High-grade Supply Box - Plains of the Lizardmen Purge -->
|
||||
<item id="95470" rate="20.0"/> <!-- Low-grade Supply Box - Plains of the Lizardmen Purge -->
|
||||
</purge>
|
||||
<purge category="4">
|
||||
<item id="95436" rate="10.0"/> <!-- Guardian Messenger's Spear -->
|
||||
<item id="95437" rate="10.0"/> <!-- Sealed Angel's Hammer -->
|
||||
<item id="95481" rate="20.0"/> <!-- Aden Purge Crystal -->
|
||||
<item id="95484" rate="20.0"/> <!-- Recipe: Tower of Insolence Purge Equipment -->
|
||||
<item id="95476" rate="20.0"/> <!-- High-grade Supply Box - Tower of Insolence Purge -->
|
||||
<item id="95469" rate="20.0"/> <!-- Low-grade Supply Box - Tower of Insolence Purge -->
|
||||
</purge>
|
||||
<purge category="5">
|
||||
<item id="95440" rate="10.0"/> <!-- Deadman's Dagger -->
|
||||
<item id="95441" rate="10.0"/> <!-- Dragon Bone Blade -->
|
||||
<item id="95481" rate="20.0"/> <!-- Aden Purge Crystal -->
|
||||
<item id="95486" rate="20.0"/> <!-- Recipe: Dragon Valley Purge Equipment -->
|
||||
<item id="95478" rate="20.0"/> <!-- High-grade Supply Box - Dragon Valley Purge -->
|
||||
<item id="95471" rate="20.0"/> <!-- Low-grade Supply Box - Dragon Valley Purge -->
|
||||
</purge>
|
||||
<purge category="6">
|
||||
<item id="95442" rate="10.0"/> <!-- Berserker's Sword -->
|
||||
<item id="95443" rate="10.0"/> <!-- Sel Mahum Sniper -->
|
||||
<item id="95481" rate="20.0"/> <!-- Aden Purge Crystal -->
|
||||
<item id="95487" rate="20.0"/> <!-- Recipe: Sel Mahum Base Purge Equipment -->
|
||||
<item id="95479" rate="20.0"/> <!-- High-grade Supply Box - Sel Mahum Base Purge -->
|
||||
<item id="95472" rate="20.0"/> <!-- Low-grade Supply Box - Sel Mahum Base Purge -->
|
||||
</purge>
|
||||
<purge category="7">
|
||||
<item id="95444" rate="10.0"/> <!-- Turek Orc Prefect's Dual Swords -->
|
||||
<item id="95445" rate="10.0"/> <!-- Butcher's Long Sword -->
|
||||
<item id="95481" rate="20.0"/> <!-- Aden Purge Crystal -->
|
||||
<item id="95488" rate="20.0"/> <!-- Recipe: Orc Barracks Purge Equipment -->
|
||||
<item id="95480" rate="20.0"/> <!-- High-grade Supply Box - Orc Barracks Purge -->
|
||||
<item id="95473" rate="20.0"/> <!-- Low-grade Supply Box - Orc Barracks Purge -->
|
||||
</purge>
|
||||
</list>
|
||||
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/CrumaTowerPurge.java
vendored
Normal file
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/CrumaTowerPurge.java
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 ai.others.Subjugation;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.l2jmobius.gameserver.data.xml.SubjugationData;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SubjugationHolder;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.subjugation.ExSubjugationSidebar;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Written by Berezkin Nikolay, on 13.04.2021
|
||||
*/
|
||||
public class CrumaTowerPurge extends AbstractNpcAI
|
||||
{
|
||||
private static final int CATEGORY = 1;
|
||||
private static final int PURGE_MAX_POINT = 1000000;
|
||||
private static final SubjugationHolder PURGE_DATA = SubjugationData.getInstance().getSubjugation(CATEGORY);
|
||||
|
||||
private CrumaTowerPurge()
|
||||
{
|
||||
addKillId(PURGE_DATA.getNpcs().keySet().stream().mapToInt(it -> it).toArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
if (killer.getVitalityPoints() > 0)
|
||||
{
|
||||
boolean isHotTime = false;
|
||||
for (int[] it : SubjugationData.getInstance().getSubjugation(CATEGORY).getHottimes())
|
||||
{
|
||||
final int minHour = it[0];
|
||||
final int maxHour = it[1];
|
||||
final int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if ((currentHour >= minHour) && (maxHour > currentHour))
|
||||
{
|
||||
isHotTime = true;
|
||||
}
|
||||
}
|
||||
final int pointsForMob = isHotTime ? PURGE_DATA.getNpcs().get(npc.getId()) * 2 : PURGE_DATA.getNpcs().get(npc.getId());
|
||||
final int currentPurgePoints = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int currentKeys = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getKeys();
|
||||
killer.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(Math.min(PURGE_MAX_POINT, currentPurgePoints + pointsForMob), currentKeys));
|
||||
checkPurgeComplete(killer);
|
||||
killer.sendPacket(new ExSubjugationSidebar(CATEGORY, killer.getPurgePoints().get(CATEGORY)));
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void checkPurgeComplete(PlayerInstance player)
|
||||
{
|
||||
final int points = player.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int keys = player.getPurgePoints().get(CATEGORY).getKeys();
|
||||
if ((points >= PURGE_MAX_POINT) && (keys < 70))
|
||||
{
|
||||
player.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(points - PURGE_MAX_POINT, keys + 1));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new CrumaTowerPurge();
|
||||
}
|
||||
}
|
||||
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/DragonValleyPurge.java
vendored
Normal file
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/DragonValleyPurge.java
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 ai.others.Subjugation;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.l2jmobius.gameserver.data.xml.SubjugationData;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SubjugationHolder;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.subjugation.ExSubjugationSidebar;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Written by Berezkin Nikolay, on 13.04.2021
|
||||
*/
|
||||
public class DragonValleyPurge extends AbstractNpcAI
|
||||
{
|
||||
private static final int CATEGORY = 5;
|
||||
private static final int PURGE_MAX_POINT = 1000000;
|
||||
private static final SubjugationHolder PURGE_DATA = SubjugationData.getInstance().getSubjugation(CATEGORY);
|
||||
|
||||
private DragonValleyPurge()
|
||||
{
|
||||
addKillId(PURGE_DATA.getNpcs().keySet().stream().mapToInt(it -> it).toArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
if (killer.getVitalityPoints() > 0)
|
||||
{
|
||||
boolean isHotTime = false;
|
||||
for (int[] it : SubjugationData.getInstance().getSubjugation(CATEGORY).getHottimes())
|
||||
{
|
||||
final int minHour = it[0];
|
||||
final int maxHour = it[1];
|
||||
final int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if ((currentHour >= minHour) && (maxHour > currentHour))
|
||||
{
|
||||
isHotTime = true;
|
||||
}
|
||||
}
|
||||
final int pointsForMob = isHotTime ? PURGE_DATA.getNpcs().get(npc.getId()) * 2 : PURGE_DATA.getNpcs().get(npc.getId());
|
||||
final int currentPurgePoints = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int currentKeys = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getKeys();
|
||||
killer.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(Math.min(PURGE_MAX_POINT, currentPurgePoints + pointsForMob), currentKeys));
|
||||
checkPurgeComplete(killer);
|
||||
killer.sendPacket(new ExSubjugationSidebar(CATEGORY, killer.getPurgePoints().get(CATEGORY)));
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void checkPurgeComplete(PlayerInstance player)
|
||||
{
|
||||
final int points = player.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int keys = player.getPurgePoints().get(CATEGORY).getKeys();
|
||||
if ((points >= PURGE_MAX_POINT) && (keys < 70))
|
||||
{
|
||||
player.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(points - PURGE_MAX_POINT, keys + 1));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new DragonValleyPurge();
|
||||
}
|
||||
}
|
||||
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/OrcBarracksPurge.java
vendored
Normal file
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/OrcBarracksPurge.java
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 ai.others.Subjugation;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.l2jmobius.gameserver.data.xml.SubjugationData;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SubjugationHolder;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.subjugation.ExSubjugationSidebar;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Written by Berezkin Nikolay, on 13.04.2021
|
||||
*/
|
||||
public class OrcBarracksPurge extends AbstractNpcAI
|
||||
{
|
||||
private static final int CATEGORY = 7;
|
||||
private static final int PURGE_MAX_POINT = 1000000;
|
||||
private static final SubjugationHolder PURGE_DATA = SubjugationData.getInstance().getSubjugation(CATEGORY);
|
||||
|
||||
private OrcBarracksPurge()
|
||||
{
|
||||
addKillId(PURGE_DATA.getNpcs().keySet().stream().mapToInt(it -> it).toArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
if (killer.getVitalityPoints() > 0)
|
||||
{
|
||||
boolean isHotTime = false;
|
||||
for (int[] it : SubjugationData.getInstance().getSubjugation(CATEGORY).getHottimes())
|
||||
{
|
||||
final int minHour = it[0];
|
||||
final int maxHour = it[1];
|
||||
final int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if ((currentHour >= minHour) && (maxHour > currentHour))
|
||||
{
|
||||
isHotTime = true;
|
||||
}
|
||||
}
|
||||
final int pointsForMob = isHotTime ? PURGE_DATA.getNpcs().get(npc.getId()) * 2 : PURGE_DATA.getNpcs().get(npc.getId());
|
||||
final int currentPurgePoints = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int currentKeys = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getKeys();
|
||||
killer.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(Math.min(PURGE_MAX_POINT, currentPurgePoints + pointsForMob), currentKeys));
|
||||
checkPurgeComplete(killer);
|
||||
killer.sendPacket(new ExSubjugationSidebar(CATEGORY, killer.getPurgePoints().get(CATEGORY)));
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void checkPurgeComplete(PlayerInstance player)
|
||||
{
|
||||
final int points = player.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int keys = player.getPurgePoints().get(CATEGORY).getKeys();
|
||||
if ((points >= PURGE_MAX_POINT) && (keys < 70))
|
||||
{
|
||||
player.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(points - PURGE_MAX_POINT, keys + 1));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new OrcBarracksPurge();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 ai.others.Subjugation;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.l2jmobius.gameserver.data.xml.SubjugationData;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SubjugationHolder;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.subjugation.ExSubjugationSidebar;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Written by Berezkin Nikolay, on 13.04.2021
|
||||
*/
|
||||
public class PlainsOfTheLizardmenPurge extends AbstractNpcAI
|
||||
{
|
||||
private static final int CATEGORY = 3;
|
||||
private static final int PURGE_MAX_POINT = 1000000;
|
||||
private static final SubjugationHolder PURGE_DATA = SubjugationData.getInstance().getSubjugation(CATEGORY);
|
||||
|
||||
private PlainsOfTheLizardmenPurge()
|
||||
{
|
||||
addKillId(PURGE_DATA.getNpcs().keySet().stream().mapToInt(it -> it).toArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
if (killer.getVitalityPoints() > 0)
|
||||
{
|
||||
boolean isHotTime = false;
|
||||
for (int[] it : SubjugationData.getInstance().getSubjugation(CATEGORY).getHottimes())
|
||||
{
|
||||
final int minHour = it[0];
|
||||
final int maxHour = it[1];
|
||||
final int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if ((currentHour >= minHour) && (maxHour > currentHour))
|
||||
{
|
||||
isHotTime = true;
|
||||
}
|
||||
}
|
||||
final int pointsForMob = isHotTime ? PURGE_DATA.getNpcs().get(npc.getId()) * 2 : PURGE_DATA.getNpcs().get(npc.getId());
|
||||
final int currentPurgePoints = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int currentKeys = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getKeys();
|
||||
killer.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(Math.min(PURGE_MAX_POINT, currentPurgePoints + pointsForMob), currentKeys));
|
||||
checkPurgeComplete(killer);
|
||||
killer.sendPacket(new ExSubjugationSidebar(CATEGORY, killer.getPurgePoints().get(CATEGORY)));
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void checkPurgeComplete(PlayerInstance player)
|
||||
{
|
||||
final int points = player.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int keys = player.getPurgePoints().get(CATEGORY).getKeys();
|
||||
if ((points >= PURGE_MAX_POINT) && (keys < 70))
|
||||
{
|
||||
player.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(points - PURGE_MAX_POINT, keys + 1));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new PlainsOfTheLizardmenPurge();
|
||||
}
|
||||
}
|
||||
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/SelMahumBasePurge.java
vendored
Normal file
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/SelMahumBasePurge.java
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 ai.others.Subjugation;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.l2jmobius.gameserver.data.xml.SubjugationData;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SubjugationHolder;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.subjugation.ExSubjugationSidebar;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Written by Berezkin Nikolay, on 13.04.2021
|
||||
*/
|
||||
public class SelMahumBasePurge extends AbstractNpcAI
|
||||
{
|
||||
private static final int CATEGORY = 6;
|
||||
private static final int PURGE_MAX_POINT = 1000000;
|
||||
private static final SubjugationHolder PURGE_DATA = SubjugationData.getInstance().getSubjugation(CATEGORY);
|
||||
|
||||
private SelMahumBasePurge()
|
||||
{
|
||||
addKillId(PURGE_DATA.getNpcs().keySet().stream().mapToInt(it -> it).toArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
if (killer.getVitalityPoints() > 0)
|
||||
{
|
||||
boolean isHotTime = false;
|
||||
for (int[] it : SubjugationData.getInstance().getSubjugation(CATEGORY).getHottimes())
|
||||
{
|
||||
final int minHour = it[0];
|
||||
final int maxHour = it[1];
|
||||
final int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if ((currentHour >= minHour) && (maxHour > currentHour))
|
||||
{
|
||||
isHotTime = true;
|
||||
}
|
||||
}
|
||||
final int pointsForMob = isHotTime ? PURGE_DATA.getNpcs().get(npc.getId()) * 2 : PURGE_DATA.getNpcs().get(npc.getId());
|
||||
final int currentPurgePoints = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int currentKeys = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getKeys();
|
||||
killer.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(Math.min(PURGE_MAX_POINT, currentPurgePoints + pointsForMob), currentKeys));
|
||||
checkPurgeComplete(killer);
|
||||
killer.sendPacket(new ExSubjugationSidebar(CATEGORY, killer.getPurgePoints().get(CATEGORY)));
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void checkPurgeComplete(PlayerInstance player)
|
||||
{
|
||||
final int points = player.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int keys = player.getPurgePoints().get(CATEGORY).getKeys();
|
||||
if ((points >= PURGE_MAX_POINT) && (keys < 70))
|
||||
{
|
||||
player.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(points - PURGE_MAX_POINT, keys + 1));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new SelMahumBasePurge();
|
||||
}
|
||||
}
|
||||
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/SilentValleyPurge.java
vendored
Normal file
84
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/ai/others/Subjugation/SilentValleyPurge.java
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 ai.others.Subjugation;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.l2jmobius.gameserver.data.xml.SubjugationData;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SubjugationHolder;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.subjugation.ExSubjugationSidebar;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Written by Berezkin Nikolay, on 13.04.2021
|
||||
*/
|
||||
public class SilentValleyPurge extends AbstractNpcAI
|
||||
{
|
||||
private static final int CATEGORY = 2;
|
||||
private static final int PURGE_MAX_POINT = 1000000;
|
||||
private static final SubjugationHolder PURGE_DATA = SubjugationData.getInstance().getSubjugation(CATEGORY);
|
||||
|
||||
private SilentValleyPurge()
|
||||
{
|
||||
addKillId(PURGE_DATA.getNpcs().keySet().stream().mapToInt(it -> it).toArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
if (killer.getVitalityPoints() > 0)
|
||||
{
|
||||
boolean isHotTime = false;
|
||||
for (int[] it : SubjugationData.getInstance().getSubjugation(CATEGORY).getHottimes())
|
||||
{
|
||||
final int minHour = it[0];
|
||||
final int maxHour = it[1];
|
||||
final int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if ((currentHour >= minHour) && (maxHour > currentHour))
|
||||
{
|
||||
isHotTime = true;
|
||||
}
|
||||
}
|
||||
final int pointsForMob = isHotTime ? PURGE_DATA.getNpcs().get(npc.getId()) * 2 : PURGE_DATA.getNpcs().get(npc.getId());
|
||||
final int currentPurgePoints = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int currentKeys = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getKeys();
|
||||
killer.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(Math.min(PURGE_MAX_POINT, currentPurgePoints + pointsForMob), currentKeys));
|
||||
checkPurgeComplete(killer);
|
||||
killer.sendPacket(new ExSubjugationSidebar(CATEGORY, killer.getPurgePoints().get(CATEGORY)));
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void checkPurgeComplete(PlayerInstance player)
|
||||
{
|
||||
final int points = player.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int keys = player.getPurgePoints().get(CATEGORY).getKeys();
|
||||
if ((points >= PURGE_MAX_POINT) && (keys < 70))
|
||||
{
|
||||
player.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(points - PURGE_MAX_POINT, keys + 1));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new SilentValleyPurge();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 ai.others.Subjugation;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.l2jmobius.gameserver.data.xml.SubjugationData;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SubjugationHolder;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.subjugation.ExSubjugationSidebar;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Written by Berezkin Nikolay, on 13.04.2021
|
||||
*/
|
||||
public class TowerOfInsolencePurge extends AbstractNpcAI
|
||||
{
|
||||
private static final int CATEGORY = 4;
|
||||
private static final int PURGE_MAX_POINT = 1000000;
|
||||
private static final SubjugationHolder PURGE_DATA = SubjugationData.getInstance().getSubjugation(CATEGORY);
|
||||
|
||||
private TowerOfInsolencePurge()
|
||||
{
|
||||
addKillId(PURGE_DATA.getNpcs().keySet().stream().mapToInt(it -> it).toArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
if (killer.getVitalityPoints() > 0)
|
||||
{
|
||||
boolean isHotTime = false;
|
||||
for (int[] it : SubjugationData.getInstance().getSubjugation(CATEGORY).getHottimes())
|
||||
{
|
||||
final int minHour = it[0];
|
||||
final int maxHour = it[1];
|
||||
final int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if ((currentHour >= minHour) && (maxHour > currentHour))
|
||||
{
|
||||
isHotTime = true;
|
||||
}
|
||||
}
|
||||
final int pointsForMob = isHotTime ? PURGE_DATA.getNpcs().get(npc.getId()) * 2 : PURGE_DATA.getNpcs().get(npc.getId());
|
||||
final int currentPurgePoints = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int currentKeys = (killer.getPurgePoints().get(CATEGORY) == null) ? 0 : killer.getPurgePoints().get(CATEGORY).getKeys();
|
||||
killer.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(Math.min(PURGE_MAX_POINT, currentPurgePoints + pointsForMob), currentKeys));
|
||||
checkPurgeComplete(killer);
|
||||
killer.sendPacket(new ExSubjugationSidebar(CATEGORY, killer.getPurgePoints().get(CATEGORY)));
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void checkPurgeComplete(PlayerInstance player)
|
||||
{
|
||||
final int points = player.getPurgePoints().get(CATEGORY).getPoints();
|
||||
final int keys = player.getPurgePoints().get(CATEGORY).getKeys();
|
||||
if ((points >= PURGE_MAX_POINT) && (keys < 70))
|
||||
{
|
||||
player.getPurgePoints().put(CATEGORY, new PurgePlayerHolder(points - PURGE_MAX_POINT, keys + 1));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new TowerOfInsolencePurge();
|
||||
}
|
||||
}
|
||||
24
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/Subjugation.xsd
vendored
Normal file
24
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/Subjugation.xsd
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="purge" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="npc" minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="id" type="xs:integer" use="required" />
|
||||
<xs:attribute name="points" type="xs:integer" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:normalizedString" use="required" />
|
||||
<xs:attribute name="category" type="xs:integer" use="required" />
|
||||
<xs:attribute name="hottimes" type="xs:normalizedString" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
22
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/SubjugationGacha.xsd
vendored
Normal file
22
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/SubjugationGacha.xsd
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="purge" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="item" minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="id" type="xs:integer" use="required" />
|
||||
<xs:attribute name="rate" type="xs:double" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="category" type="xs:integer" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
Reference in New Issue
Block a user