Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: java/net/sf/l2j/Config.java
- ===================================================================
- + public static boolean ENABLE_SPREEKILLS;
- + ENABLE_SPREEKILLS = Boolean.parseBoolean(custom.getProperty("EnableSpreekills", "false"));
- Index: .properties
- ===================================================================
- +# System SpreeKill
- +# Config reward: data/xml/spreeKills.xml
- +EnableSpreekills = True
- ### Eclipse Workspace Patch 1.0
- #P aCis_gameserver
- Index: java/net/sf/l2j/gameserver/model/actor/Player.java
- ===================================================================
- --- java/net/sf/l2j/gameserver/model/actor/Player.java (revision 3)
- +++ java/net/sf/l2j/gameserver/model/actor/Player.java (working copy)
- import net.sf.l2j.gameserver.data.xml.RecipeData;
- import net.sf.l2j.gameserver.data.xml.ScriptData;
- +import net.sf.l2j.gameserver.data.xml.SpreeKillsData;
- +import net.sf.l2j.gameserver.data.xml.SpreeKillsData.SpreeKills;
- import net.sf.l2j.gameserver.enums.AiEventType;
- import net.sf.l2j.gameserver.enums.CabalType;
- import net.sf.l2j.gameserver.enums.GaugeColor;
- @@ -313,6 +334,7 @@
- private byte _pvpFlag;
- private byte _siegeState;
- private int _curWeightPenalty;
- + private int _spreeKills;
- private int _lastCompassZone; // the last compass zone update send to the client
- @@ -3724,7 +3760,29 @@
- {
- // Add PvP point to attacker.
- setPvpKills(getPvpKills() + 1);
- +
- + if (Config.ENABLE_SPREEKILLS)
- + {
- + _spreeKills += 1;
- +
- + for (SpreeKills kills : SpreeKillsData.getInstance().getSpreeKills())
- + {
- + if (kills.getKills() == _spreeKills)
- + {
- + World.announceToOnlinePlayers("[PVP]: " + getName() + " has scored a " + kills.getMsg(), true);
- +
- + if (kills.getItemId() > 0)
- + addItem(kills.getItemId(), kills.getItemCount(), true);
- + }
- + }
- + }
- +
- \ No newline at end of file
- Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java
- ===================================================================
- --- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java (revision 3)
- +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java (working copy)
- @@ -15,6 +15,8 @@
- import net.sf.l2j.gameserver.data.xml.InstantTeleportData;
- import net.sf.l2j.gameserver.data.xml.ItemData;
- import net.sf.l2j.gameserver.data.xml.MultisellData;
- import net.sf.l2j.gameserver.data.xml.NpcData;
- import net.sf.l2j.gameserver.data.xml.ScriptData;
- +import net.sf.l2j.gameserver.data.xml.SpreeKillsData;
- import net.sf.l2j.gameserver.data.xml.SysString;
- import net.sf.l2j.gameserver.data.xml.TeleportData;
- import net.sf.l2j.gameserver.data.xml.WalkerRouteData;
- import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
- import net.sf.l2j.gameserver.model.World;
- import net.sf.l2j.gameserver.model.actor.Player;
- @@ -233,6 +235,16 @@
- TeleportLocationData.getInstance().reload();
- player.sendMessage("Teleport locations have been reloaded.");
- }
- + else if (type.startsWith("spreekills"))
- + {
- + SpreeKillsData.getInstance().reload();
- + player.sendMessage("SpreeKills have been reloaded.");
- + }
- else if (type.startsWith("zone"))
- {
- ZoneManager.getInstance().reload();
- player.sendMessage("Zones have been reloaded.");
- }
- public void sendUsage(Player player)
- {
- player.sendMessage("Usage : //reload <admin|announcement|buylist|config>");
- player.sendMessage("Usage : //reload <crest|cw|door|htm|item|multisell|npc>");
- - player.sendMessage("Usage : //reload <npcwalker|script|skill|teleport|zone>");
- + player.sendMessage("Usage : //reload <npcwalker|script|skill|spreekills|teleport|zone>");
- player.sendMessage("Usage : //reload <spawnlist|sysstring|capsule>");
- }
- Index: java/net/sf/l2j/gameserver/data/xml/SpreeKillsData.java
- ===================================================================
- --- java/net/sf/l2j/gameserver/data/xml/SpreeKillsData.java (revision 0)
- +++ java/net/sf/l2j/gameserver/data/xml/SpreeKillsData.java (working copy)
- @@ -0,0 +1,106 @@
- +package net.sf.l2j.gameserver.data.xml;
- +
- +import java.nio.file.Path;
- +import java.util.ArrayList;
- +import java.util.List;
- +
- +import net.sf.l2j.commons.data.StatSet;
- +import net.sf.l2j.commons.data.xml.IXmlReader;
- +
- +import org.w3c.dom.Document;
- +
- +/**
- + * @author Williams
- + *
- + */
- +public class SpreeKillsData implements IXmlReader
- +{
- + private final List<SpreeKills> _spree = new ArrayList<>();
- +
- + public SpreeKillsData()
- + {
- + load();
- + }
- +
- + public void reload()
- + {
- + _spree.clear();
- + load();
- + }
- +
- + @Override
- + public void load()
- + {
- + parseFile("./data/xml/spreeKills.xml");
- + LOGGER.info("Loaded {} spreeKills data.", _spree.size());
- + }
- +
- + @Override
- + public void parseDocument(Document doc, Path path)
- + {
- + forEach(doc, "list", listNode -> forEach(listNode, "pvp", node ->
- + {
- + final StatSet set = parseAttributes(node);
- + forEach(node, "SpreeKills", setNode -> set.putAll(parseAttributes(setNode)));
- + _spree.add(new SpreeKills(set));
- + }));
- +
- + }
- +
- + public List<SpreeKills> getSpreeKills()
- + {
- + return _spree;
- + }
- +
- + public class SpreeKills
- + {
- + private final int _kill;
- + private final String _msg;
- + private final int _itemId;
- + private final int _itemCount;
- +
- + public SpreeKills(StatSet set)
- + {
- + _kill = set.getInteger("kills");
- + _msg = set.getString("msg");
- + _itemId = set.getInteger("itemId");
- + _itemCount = set.getInteger("itemCount");
- +
- + }
- +
- + public int getKills()
- + {
- + return _kill;
- + }
- +
- + public String getMsg()
- + {
- + return _msg;
- + }
- +
- + public int getItemId()
- + {
- + return _itemId;
- + }
- +
- + public int getItemCount()
- + {
- + return _itemCount;
- + }
- + }
- +
- + public static SpreeKillsData getInstance()
- + {
- + return SingletonHolder.INSTANCE;
- + }
- +
- + private static class SingletonHolder
- + {
- + protected static final SpreeKillsData INSTANCE = new SpreeKillsData();
- + }
- +}
- \ No newline at end of file
- Index: java/net/sf/l2j/gameserver/GameServer.java
- ===================================================================
- --- java/net/sf/l2j/gameserver/GameServer.java (revision 3)
- +++ java/net/sf/l2j/gameserver/GameServer.java (working copy)
- @@ -69,6 +74,7 @@
- import net.sf.l2j.gameserver.data.xml.SkillTreeData;
- import net.sf.l2j.gameserver.data.xml.SoulCrystalData;
- import net.sf.l2j.gameserver.data.xml.SpellbookData;
- +import net.sf.l2j.gameserver.data.xml.SpreeKillsData;
- import net.sf.l2j.gameserver.data.xml.StaticObjectData;
- import net.sf.l2j.gameserver.data.xml.SummonItemData;
- import net.sf.l2j.gameserver.data.xml.TeleportLocationData;
- @@ -187,6 +194,11 @@
- PartyMatchWaitingList.getInstance();
- PartyMatchRoomList.getInstance();
- RaidPointManager.getInstance();
- + SpreeKillsData.getInstance();
- +
- StringUtil.printSection("Community server");
- if (Config.ENABLE_COMMUNITY_BOARD) // Forums has to be loaded before clan data
- ### Eclipse Workspace Patch 1.0
- #P aCis_datapack
- Index: data/xml/spreeKills.xml
- ===================================================================
- --- data/xml/spreeKills.xml (revision 0)
- +++ data/xml/spreeKills.xml (working copy)
- @@ -0,0 +1,21 @@
- +<?xml version="1.0" encoding="UTF-8"?>
- +<list>
- + <pvp>
- + <SpreeKills kills="2" msg="Double Kill" itemId="0" itemCount="0"/>
- + </pvp>
- + <pvp>
- + <SpreeKills kills="3" msg="Triple Kill" itemId="0" itemCount="0"/>
- + </pvp>
- + <pvp>
- + <SpreeKills kills="5" msg="Mega Kill" itemId="0" itemCount="0"/>
- + </pvp>
- + <pvp>
- + <SpreeKills kills="8" msg="Ultra Kill" itemId="0" itemCount="0"/>
- + </pvp>
- + <pvp>
- + <SpreeKills kills="10" msg="Monster Kill" itemId="0" itemCount="0"/>
- + </pvp>
- + <pvp>
- + <SpreeKills kills="12" msg="Unstoppable Kill" itemId="0" itemCount="0"/>
- + </pvp>
- +</list>
- \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement