Advertisement
AcaciaX9

Pvp Assist System

Mar 23rd, 2023 (edited)
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | Gaming | 0 0
  1. package com.synergy;
  2.  
  3. import org.l2jmobius.commons.util.Rnd;
  4. import org.l2jmobius.gameserver.enums.ClassId;
  5. import org.l2jmobius.gameserver.model.Party;
  6. import org.l2jmobius.gameserver.model.actor.Player;
  7. import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
  8.  
  9. import java.util.HashMap;
  10. import java.util.List;
  11.  
  12. // credits @Excellence
  13. public class Synergy {
  14.  
  15. public static final HashMap<Integer, synergyClass> _classes = new HashMap<>();
  16.  
  17. public void handle(Player dead, Player alive)
  18. {
  19. Party party = alive.getParty();
  20. if (party != null)
  21. {
  22. if (alive.isInCombat())
  23. {
  24. List<Player> partyMembers = party.getMembers();
  25. for (int i = 0; i < partyMembers.size(); i++)
  26. {
  27. Player singleMember = partyMembers.get(i);
  28. synergyClass synergyClass = _classes.get(singleMember.getClassId().getId());
  29. if (synergyClass == null || singleMember == alive || !singleMember.isInsideRadius3D(dead, 1500))
  30. continue;
  31.  
  32. boolean award = Rnd.get(100) < synergyClass._chance;
  33. if (award)
  34. {
  35. singleMember.sendPacket(new ExShowScreenMessage("You gained a PvP assist! Killer: [" + alive.getName() + "] Killed: [" + dead.getName() +"]", ExShowScreenMessage.TOP_CENTER, 5000, 1, true, false));
  36. singleMember.addExpAndSp(synergyClass._exp, 1); //value next to _exp is Sp
  37. singleMember.setPvpKills(singleMember.getPvpKills() +1);
  38.  
  39. //singleMember._spreeKills++;
  40. //SpreeSystem.getInstance().sp(singleMember, singleMember._spreeKills);
  41. // since you dont use these though you can add anything you like for the assister to count
  42.  
  43. }
  44. }
  45. }
  46. }
  47. }
  48.  
  49. public static final class synergyClass
  50. {
  51. final int _chance;
  52. final long _exp;
  53.  
  54. public synergyClass(int chance, int exp)
  55. {
  56. _chance = chance;
  57. _exp = exp;
  58. }
  59. }
  60.  
  61. static
  62. {
  63. /** Healers (add classes here)*/
  64. _classes.put(ClassId.CARDINAL.getId(), new synergyClass(38, 100000)); //38 value is the chance the next to it is the exp reward
  65. _classes.put(ClassId.EVA_SAINT.getId(), new synergyClass(38, 100000));
  66. _classes.put(ClassId.SHILLIEN_SAINT.getId(), new synergyClass(38, 100000));
  67. // you can add class you need in here
  68. /** Tanks (add classes here)*/
  69. _classes.put(ClassId.HELL_KNIGHT.getId(), new synergyClass(22, 100000));
  70. _classes.put(ClassId.PHOENIX_KNIGHT.getId(), new synergyClass(22, 100000));
  71. _classes.put(ClassId.SHILLIEN_TEMPLAR.getId(), new synergyClass(22, 100000));
  72. /** Supports */
  73. _classes.put(ClassId.DOMINATOR.getId(), new synergyClass(18, 100000));
  74. _classes.put(ClassId.DOOMCRYER.getId(), new synergyClass(18, 100000));
  75. }
  76.  
  77. public static Synergy getInstance()
  78. {
  79. return SingletonHolder.INSTANCE;
  80. }
  81.  
  82. private static class SingletonHolder
  83. {
  84. protected static final Synergy INSTANCE = new Synergy();
  85. }
  86. }
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement