Advertisement
Giardev

SpreeKills rusacis 3.7

Jan 25th, 2025 (edited)
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 7.91 KB | Source Code | 0 0
  1. Index: java/net/sf/l2j/Config.java
  2. ===================================================================
  3. + public static boolean ENABLE_SPREEKILLS;
  4.  
  5.  
  6. + ENABLE_SPREEKILLS = Boolean.parseBoolean(custom.getProperty("EnableSpreekills", "false"));
  7.  
  8.  
  9. Index: .properties
  10. ===================================================================
  11. +# System SpreeKill
  12. +# Config reward: data/xml/spreeKills.xml
  13. +EnableSpreekills = True
  14.  
  15. ### Eclipse Workspace Patch 1.0
  16. #P aCis_gameserver
  17. Index: java/net/sf/l2j/gameserver/model/actor/Player.java
  18. ===================================================================
  19. --- java/net/sf/l2j/gameserver/model/actor/Player.java  (revision 3)
  20. +++ java/net/sf/l2j/gameserver/model/actor/Player.java  (working copy)
  21.  import net.sf.l2j.gameserver.data.xml.RecipeData;
  22.  import net.sf.l2j.gameserver.data.xml.ScriptData;
  23. +import net.sf.l2j.gameserver.data.xml.SpreeKillsData;
  24. +import net.sf.l2j.gameserver.data.xml.SpreeKillsData.SpreeKills;
  25.  import net.sf.l2j.gameserver.enums.AiEventType;
  26.  import net.sf.l2j.gameserver.enums.CabalType;
  27.  import net.sf.l2j.gameserver.enums.GaugeColor;
  28.  
  29. @@ -313,6 +334,7 @@
  30.     private byte _pvpFlag;
  31.     private byte _siegeState;
  32.     private int _curWeightPenalty;
  33. +   private int _spreeKills;
  34.  
  35.     private int _lastCompassZone; // the last compass zone update send to the client
  36.  
  37. @@ -3724,7 +3760,29 @@
  38.             {
  39.                 // Add PvP point to attacker.
  40.                 setPvpKills(getPvpKills() + 1);
  41. +
  42. +               if (Config.ENABLE_SPREEKILLS)
  43. +               {
  44. +                   _spreeKills += 1;
  45. +                  
  46. +                   for (SpreeKills kills : SpreeKillsData.getInstance().getSpreeKills())
  47. +                   {
  48. +                       if (kills.getKills() == _spreeKills)
  49. +                       {
  50. +                           World.announceToOnlinePlayers("[PVP]: " + getName() + " has scored a " + kills.getMsg(), true);
  51. +                          
  52. +                           if (kills.getItemId() > 0)
  53. +                               addItem(kills.getItemId(), kills.getItemCount(), true);
  54. +                       }
  55. +                   }
  56. +               }
  57. +              
  58. \ No newline at end of file
  59. Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java
  60. ===================================================================
  61. --- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java    (revision 3)
  62. +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java    (working copy)
  63. @@ -15,6 +15,8 @@
  64.  import net.sf.l2j.gameserver.data.xml.InstantTeleportData;
  65.  import net.sf.l2j.gameserver.data.xml.ItemData;
  66.  import net.sf.l2j.gameserver.data.xml.MultisellData;
  67.  import net.sf.l2j.gameserver.data.xml.NpcData;
  68.  import net.sf.l2j.gameserver.data.xml.ScriptData;
  69. +import net.sf.l2j.gameserver.data.xml.SpreeKillsData;
  70.  import net.sf.l2j.gameserver.data.xml.SysString;
  71.  import net.sf.l2j.gameserver.data.xml.TeleportData;
  72.  import net.sf.l2j.gameserver.data.xml.WalkerRouteData;
  73.  import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
  74.  import net.sf.l2j.gameserver.model.World;
  75.  import net.sf.l2j.gameserver.model.actor.Player;
  76. @@ -233,6 +235,16 @@
  77.                         TeleportLocationData.getInstance().reload();
  78.                         player.sendMessage("Teleport locations have been reloaded.");
  79.                     }
  80. +                   else if (type.startsWith("spreekills"))
  81. +                   {
  82. +                       SpreeKillsData.getInstance().reload();
  83. +                       player.sendMessage("SpreeKills have been reloaded.");
  84. +                   }
  85.                     else if (type.startsWith("zone"))
  86.                     {
  87.                         ZoneManager.getInstance().reload();
  88.                         player.sendMessage("Zones have been reloaded.");
  89.                     }
  90.  
  91.     public void sendUsage(Player player)
  92.     {
  93.         player.sendMessage("Usage : //reload <admin|announcement|buylist|config>");
  94.         player.sendMessage("Usage : //reload <crest|cw|door|htm|item|multisell|npc>");
  95. -       player.sendMessage("Usage : //reload <npcwalker|script|skill|teleport|zone>");
  96. +       player.sendMessage("Usage : //reload <npcwalker|script|skill|spreekills|teleport|zone>");
  97.         player.sendMessage("Usage : //reload <spawnlist|sysstring|capsule>");
  98.     }
  99.    
  100.  
  101. Index: java/net/sf/l2j/gameserver/data/xml/SpreeKillsData.java
  102. ===================================================================
  103. --- java/net/sf/l2j/gameserver/data/xml/SpreeKillsData.java (revision 0)
  104. +++ java/net/sf/l2j/gameserver/data/xml/SpreeKillsData.java (working copy)
  105. @@ -0,0 +1,106 @@
  106. +package net.sf.l2j.gameserver.data.xml;
  107. +
  108. +import java.nio.file.Path;
  109. +import java.util.ArrayList;
  110. +import java.util.List;
  111. +
  112. +import net.sf.l2j.commons.data.StatSet;
  113. +import net.sf.l2j.commons.data.xml.IXmlReader;
  114. +
  115. +import org.w3c.dom.Document;
  116. +
  117. +/**
  118. + * @author Williams
  119. + *
  120. + */
  121. +public class SpreeKillsData implements IXmlReader
  122. +{
  123. +   private final List<SpreeKills> _spree = new ArrayList<>();
  124. +  
  125. +   public SpreeKillsData()
  126. +   {
  127. +       load();
  128. +   }
  129. +  
  130. +   public void reload()
  131. +   {
  132. +       _spree.clear();
  133. +       load();
  134. +   }
  135. +  
  136. +   @Override
  137. +   public void load()
  138. +   {
  139. +       parseFile("./data/xml/spreeKills.xml");
  140. +       LOGGER.info("Loaded {} spreeKills data.", _spree.size());
  141. +   }
  142. +  
  143. +   @Override
  144. +   public void parseDocument(Document doc, Path path)
  145. +   {
  146. +       forEach(doc, "list", listNode -> forEach(listNode, "pvp", node ->
  147. +       {
  148. +           final StatSet set = parseAttributes(node);
  149. +           forEach(node, "SpreeKills", setNode -> set.putAll(parseAttributes(setNode)));
  150. +           _spree.add(new SpreeKills(set));
  151. +       }));
  152. +      
  153. +   }
  154. +
  155. +   public List<SpreeKills> getSpreeKills()
  156. +   {
  157. +       return _spree;
  158. +   }
  159. +
  160. +   public class SpreeKills
  161. +   {
  162. +       private final int _kill;
  163. +       private final String _msg;
  164. +       private final int _itemId;
  165. +       private final int _itemCount;
  166. +      
  167. +       public SpreeKills(StatSet set)
  168. +       {
  169. +           _kill = set.getInteger("kills");
  170. +           _msg = set.getString("msg");
  171. +           _itemId = set.getInteger("itemId");
  172. +           _itemCount = set.getInteger("itemCount");
  173. +          
  174. +       }
  175. +
  176. +       public int getKills()
  177. +       {
  178. +           return _kill;
  179. +       }
  180. +      
  181. +       public String getMsg()
  182. +       {
  183. +           return _msg;
  184. +       }
  185. +      
  186. +       public int getItemId()
  187. +       {
  188. +           return _itemId;
  189. +       }
  190. +              
  191. +       public int getItemCount()
  192. +       {
  193. +           return _itemCount;
  194. +       }
  195. +   }
  196. +  
  197. +   public static SpreeKillsData getInstance()
  198. +   {
  199. +       return SingletonHolder.INSTANCE;
  200. +   }
  201. +  
  202. +   private static class SingletonHolder
  203. +   {
  204. +       protected static final SpreeKillsData INSTANCE = new SpreeKillsData();
  205. +   }
  206. +}
  207. \ No newline at end of file
  208. Index: java/net/sf/l2j/gameserver/GameServer.java
  209. ===================================================================
  210. --- java/net/sf/l2j/gameserver/GameServer.java  (revision 3)
  211. +++ java/net/sf/l2j/gameserver/GameServer.java  (working copy)
  212. @@ -69,6 +74,7 @@
  213.  import net.sf.l2j.gameserver.data.xml.SkillTreeData;
  214.  import net.sf.l2j.gameserver.data.xml.SoulCrystalData;
  215.  import net.sf.l2j.gameserver.data.xml.SpellbookData;
  216. +import net.sf.l2j.gameserver.data.xml.SpreeKillsData;
  217.  import net.sf.l2j.gameserver.data.xml.StaticObjectData;
  218.  import net.sf.l2j.gameserver.data.xml.SummonItemData;
  219.  import net.sf.l2j.gameserver.data.xml.TeleportLocationData;
  220. @@ -187,6 +194,11 @@
  221.         PartyMatchWaitingList.getInstance();
  222.         PartyMatchRoomList.getInstance();
  223.         RaidPointManager.getInstance();
  224. +       SpreeKillsData.getInstance();
  225. +      
  226.         StringUtil.printSection("Community server");
  227.         if (Config.ENABLE_COMMUNITY_BOARD) // Forums has to be loaded before clan data
  228.  
  229. ### Eclipse Workspace Patch 1.0
  230. #P aCis_datapack
  231. Index: data/xml/spreeKills.xml
  232. ===================================================================
  233. --- data/xml/spreeKills.xml (revision 0)
  234. +++ data/xml/spreeKills.xml (working copy)
  235. @@ -0,0 +1,21 @@
  236. +<?xml version="1.0" encoding="UTF-8"?>
  237. +<list>
  238. +   <pvp>
  239. +       <SpreeKills kills="2" msg="Double Kill" itemId="0" itemCount="0"/>
  240. +   </pvp>
  241. +   <pvp>
  242. +       <SpreeKills kills="3" msg="Triple Kill" itemId="0" itemCount="0"/>
  243. +   </pvp>
  244. +   <pvp>
  245. +       <SpreeKills kills="5" msg="Mega Kill" itemId="0" itemCount="0"/>
  246. +   </pvp>
  247. +   <pvp>
  248. +       <SpreeKills kills="8" msg="Ultra Kill" itemId="0" itemCount="0"/>
  249. +   </pvp>
  250. +   <pvp>
  251. +       <SpreeKills kills="10" msg="Monster Kill" itemId="0" itemCount="0"/>
  252. +   </pvp>
  253. +   <pvp>
  254. +       <SpreeKills kills="12" msg="Unstoppable Kill" itemId="0" itemCount="0"/>
  255. +   </pvp>
  256. +</list>
  257. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement