Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.synergy;
- import org.l2jmobius.commons.util.Rnd;
- import org.l2jmobius.gameserver.enums.ClassId;
- import org.l2jmobius.gameserver.model.Party;
- import org.l2jmobius.gameserver.model.actor.Player;
- import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
- import java.util.HashMap;
- import java.util.List;
- // credits @Excellence
- public class Synergy {
- public static final HashMap<Integer, synergyClass> _classes = new HashMap<>();
- public void handle(Player dead, Player alive)
- {
- Party party = alive.getParty();
- if (party != null)
- {
- if (alive.isInCombat())
- {
- List<Player> partyMembers = party.getMembers();
- for (int i = 0; i < partyMembers.size(); i++)
- {
- Player singleMember = partyMembers.get(i);
- synergyClass synergyClass = _classes.get(singleMember.getClassId().getId());
- if (synergyClass == null || singleMember == alive || !singleMember.isInsideRadius3D(dead, 1500))
- continue;
- boolean award = Rnd.get(100) < synergyClass._chance;
- if (award)
- {
- singleMember.sendPacket(new ExShowScreenMessage("You gained a PvP assist! Killer: [" + alive.getName() + "] Killed: [" + dead.getName() +"]", ExShowScreenMessage.TOP_CENTER, 5000, 1, true, false));
- singleMember.addExpAndSp(synergyClass._exp, 1); //value next to _exp is Sp
- singleMember.setPvpKills(singleMember.getPvpKills() +1);
- //singleMember._spreeKills++;
- //SpreeSystem.getInstance().sp(singleMember, singleMember._spreeKills);
- // since you dont use these though you can add anything you like for the assister to count
- }
- }
- }
- }
- }
- public static final class synergyClass
- {
- final int _chance;
- final long _exp;
- public synergyClass(int chance, int exp)
- {
- _chance = chance;
- _exp = exp;
- }
- }
- static
- {
- /** Healers (add classes here)*/
- _classes.put(ClassId.CARDINAL.getId(), new synergyClass(38, 100000)); //38 value is the chance the next to it is the exp reward
- _classes.put(ClassId.EVA_SAINT.getId(), new synergyClass(38, 100000));
- _classes.put(ClassId.SHILLIEN_SAINT.getId(), new synergyClass(38, 100000));
- // you can add class you need in here
- /** Tanks (add classes here)*/
- _classes.put(ClassId.HELL_KNIGHT.getId(), new synergyClass(22, 100000));
- _classes.put(ClassId.PHOENIX_KNIGHT.getId(), new synergyClass(22, 100000));
- _classes.put(ClassId.SHILLIEN_TEMPLAR.getId(), new synergyClass(22, 100000));
- /** Supports */
- _classes.put(ClassId.DOMINATOR.getId(), new synergyClass(18, 100000));
- _classes.put(ClassId.DOOMCRYER.getId(), new synergyClass(18, 100000));
- }
- public static Synergy getInstance()
- {
- return SingletonHolder.INSTANCE;
- }
- private static class SingletonHolder
- {
- protected static final Synergy INSTANCE = new Synergy();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement