Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Evento Quake PvP System

Iniciado por Swarlog, Ago 06, 2022, 02:07 AM

Tema anterior - Siguiente tema

Swarlog

Index: D:/Other/WorkSpace/l2jbg/L2J_Server/java/com/l2jserver/Config.java
===================================================================
--- D:/Other/WorkSpace/l2jbg/L2J_Server/java/com/l2jserver/Config.java (revision 4957)
+++ D:/Other/WorkSpace/l2jbg/L2J_Server/java/com/l2jserver/Config.java (working copy)
@@ -41,6 +41,8 @@
 
 import javax.xml.parsers.DocumentBuilderFactory;
 
+import javolution.util.FastList;
+
 import org.w3c.dom.Document;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
@@ -84,8 +86,8 @@
  public static final String SECURITY_CONFIG_FILE = "./config/security.properties";
  public static final String EMAIL_CONFIG_FILE = "./config/email.properties";
  public static final String CH_SIEGE_FILE = "./config/ConquerableHallSiege.properties";
+ public static final String QUAKEPVP_CONFIG_FILE = "./config/QuakePvPReward.properties";
 
-
  //--------------------------------------------------
  // L2J Variable Definitions
  //--------------------------------------------------
@@ -1060,6 +1062,20 @@
  public static int SOD_TIAT_KILL_COUNT;
  public static long SOD_STAGE_2_LENGTH;
 
+ // Quake PvP Reward System by (Micr0)
+ public static boolean ALLOW_QUAKE_PVP;
+ public static boolean ALLOW_QUAKE_PVP_SET_HERO;
+ public static boolean ALLOW_QUAKE_PVP_REWARD_SKILL;
+ public static List<int[]> QUAKE_REWARD_1 = new FastList<int[]>();
+ public static List<int[]> QUAKE_REWARD_2 = new FastList<int[]>();
+ public static List<int[]> QUAKE_REWARD_3 = new FastList<int[]>();
+ public static List<int[]> QUAKE_REWARD_5 = new FastList<int[]>();
+ public static List<int[]> QUAKE_REWARD_10 = new FastList<int[]>();
+ public static List<int[]> QUAKE_REWARD_15 = new FastList<int[]>();
+ public static List<int[]> QUAKE_REWARD_25 = new FastList<int[]>();
+ public static List<int[]> QUAKE_REWARD_SKILL = new FastList<int[]>();
+
+
  //chatfilter
  public static ArrayList<String> FILTER_LIST;
 
@@ -2859,6 +2875,294 @@
 
  try
  {
+ L2Properties QuakeSettings = new L2Properties();
+ is = new FileInputStream(new File(QUAKEPVP_CONFIG_FILE));
+ QuakeSettings.load(is);
+
+ ALLOW_QUAKE_PVP = Boolean.parseBoolean(QuakeSettings.getProperty("AllowQuakeSystem", "false"));
+ ALLOW_QUAKE_PVP_SET_HERO = Boolean.parseBoolean(QuakeSettings.getProperty("EnableSetHero", "false"));
+ ALLOW_QUAKE_PVP_REWARD_SKILL = Boolean.parseBoolean(QuakeSettings.getProperty("EnableRewardSkills", "false"));
+
+ // reward 1
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeReward1", "0,0").split(";");
+ for (String rewarditem1 : propertySplit)
+ {
+ String[] reward1Split = rewarditem1.split(",");
+ if (reward1Split.length != 2)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem1[Config.load()]: invalid config property -> Reward items \"" + rewarditem1 + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_1.add(new int[]
+ {
+ Integer.valueOf(reward1Split[0]), Integer.valueOf(reward1Split[1])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewarditem1.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem1[Config.load()]: invalid config property -> Reward items \"" + rewarditem1 + "\"");
+ }
+ }
+ }
+ }
+ }
+ // end reward 1
+
+ // reward 2
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeReward2", "0,0").split(";");
+ for (String rewarditem2 : propertySplit)
+ {
+ String[] reward2Split = rewarditem2.split(",");
+ if (reward2Split.length != 2)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem2[Config.load()]: invalid config property -> Reward items \"" + rewarditem2 + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_2.add(new int[]
+ {
+ Integer.valueOf(reward2Split[0]), Integer.valueOf(reward2Split[1])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewarditem2.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem2[Config.load()]: invalid config property -> Reward items \"" + rewarditem2 + "\"");
+ }
+ }
+ }
+ }
+ }
+ // end reward 2
+
+ // reward 3
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeReward3", "0,0").split(";");
+ for (String rewarditem3 : propertySplit)
+ {
+ String[] reward3Split = rewarditem3.split(",");
+ if (reward3Split.length != 2)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem3[Config.load()]: invalid config property -> Reward items \"" + rewarditem3 + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_3.add(new int[]
+ {
+ Integer.valueOf(reward3Split[0]), Integer.valueOf(reward3Split[1])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewarditem3.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem3[Config.load()]: invalid config property -> Reward items \"" + rewarditem3 + "\"");
+ }
+ }
+ }
+ }
+ }
+ // end reward 3
+
+ // reward 5
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeReward5", "0,0").split(";");
+ for (String rewarditem5 : propertySplit)
+ {
+ String[] reward5Split = rewarditem5.split(",");
+ if (reward5Split.length != 2)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem5[Config.load()]: invalid config property -> Reward items \"" + rewarditem5 + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_5.add(new int[]
+ {
+ Integer.valueOf(reward5Split[0]), Integer.valueOf(reward5Split[1])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewarditem5.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem5[Config.load()]: invalid config property -> Reward items \"" + rewarditem5 + "\"");
+ }
+ }
+ }
+ }
+ }
+ // end reward 5
+
+ // reward 10
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeReward10", "0,0").split(";");
+ for (String rewarditem10 : propertySplit)
+ {
+ String[] reward10Split = rewarditem10.split(",");
+ if (reward10Split.length != 2)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem10[Config.load()]: invalid config property -> Reward items \"" + rewarditem10 + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_10.add(new int[]
+ {
+ Integer.valueOf(reward10Split[0]), Integer.valueOf(reward10Split[1])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewarditem10.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem10[Config.load()]: invalid config property -> Reward items \"" + rewarditem10 + "\"");
+ }
+ }
+ }
+ }
+ }
+ // end reward 10
+
+ // reward 15
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeReward15", "0,0").split(";");
+ for (String rewarditem15 : propertySplit)
+ {
+ String[] reward15Split = rewarditem15.split(",");
+ if (reward15Split.length != 2)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem15[Config.load()]: invalid config property -> Reward items \"" + rewarditem15 + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_15.add(new int[]
+ {
+ Integer.valueOf(reward15Split[0]), Integer.valueOf(reward15Split[1])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewarditem15.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem15[Config.load()]: invalid config property -> Reward items \"" + rewarditem15 + "\"");
+ }
+ }
+ }
+ }
+ }
+ // end reward 15
+
+ // reward 25
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeReward25", "0,0").split(";");
+ for (String rewarditem25 : propertySplit)
+ {
+ String[] reward25Split = rewarditem25.split(",");
+ if (reward25Split.length != 2)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItems25[Config.load()]: invalid config property -> Reward items \"" + rewarditem25 + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_25.add(new int[]
+ {
+ Integer.valueOf(reward25Split[0]), Integer.valueOf(reward25Split[1])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewarditem25.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardItem25[Config.load()]: invalid config property -> Reward items \"" + rewarditem25 + "\"");
+ }
+ }
+ }
+ }
+ }
+ // end reward 25
+
+ // reward Skill
+ if (ALLOW_QUAKE_PVP)
+ {
+ String[] propertySplit = QuakeSettings.getProperty("PvPQuakeRewardSkills", "0,0,0,0").split(";");
+ for (String rewardskills : propertySplit)
+ {
+ String[] rewardskillsSplit = rewardskills.split(",");
+ if (rewardskillsSplit.length != 4)
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardSkill[Config.load()]: invalid config property -> Reward Skills \"" + rewardskills + "\"");
+ }
+ else
+ {
+ try
+ {
+ QUAKE_REWARD_SKILL.add(new int[]
+ {
+ Integer.valueOf(rewardskillsSplit[0]), Integer.valueOf(rewardskillsSplit[1]), Integer.valueOf(rewardskillsSplit[2]), Integer.valueOf(rewardskillsSplit[3])
+ });
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!rewardskills.equals(""))
+ {
+ ALLOW_QUAKE_PVP = false;
+ System.out.println("RewardSkills[Config.load()]: invalid config property -> Reward Skills \"" + rewardskills + "\"");
+ }
+ }
+ }
+ }
+ }
+ // End reward Skill
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ throw new Error("Failed to Load " + QUAKEPVP_CONFIG_FILE + " File.");
+ }
+
+ try
+ {
  FILTER_LIST = new ArrayList<String>();
  LineNumberReader lnr = new LineNumberReader(new BufferedReader(new FileReader(new File(CHAT_FILTER_FILE))));
  String line = null;
Index: D:/Other/WorkSpace/l2jbg/L2J_Server/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- D:/Other/WorkSpace/l2jbg/L2J_Server/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 4957)
+++ D:/Other/WorkSpace/l2jbg/L2J_Server/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -197,6 +197,7 @@
 import com.l2jserver.gameserver.network.serverpackets.ExOlympiadMode;
 import com.l2jserver.gameserver.network.serverpackets.ExPrivateStoreSetWholeMsg;
 import com.l2jserver.gameserver.network.serverpackets.ExSetCompassZoneCode;
+import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
 import com.l2jserver.gameserver.network.serverpackets.ExSpawnEmitter;
 import com.l2jserver.gameserver.network.serverpackets.ExStartScenePlayer;
 import com.l2jserver.gameserver.network.serverpackets.ExStorageMaxCount;
@@ -571,6 +572,9 @@
  private boolean _noble = false;
  private boolean _hero = false;
 
+ /**PvP Quake Reward System (Micr0)*/
+ private int QuakePvPSystem = 0;
+
  /** The L2FolkInstance corresponding to the last Folk wich one the player talked. */
  private L2Npc _lastFolkNpc = null;
 
@@ -5505,6 +5509,7 @@
  {
  reviveRequest(this, null, false);
  }
+ QuakePvPSystem = 0;
  return true;
  }
 
@@ -5692,17 +5697,132 @@
 
  /**
  * Increase the pvp kills count and send the info to the player
- * @param target
+ *
+ * @param target
  */
  public void increasePvpKills(L2Character target)
  {
  if (target instanceof L2PcInstance
- && AntiFeedManager.getInstance().check(this, target))
+ && AntiFeedManager.getInstance().check(this, target))
  {
  // Add karma to attacker and increase its PK counter
  setPvpKills(getPvpKills() + 1);
 
- // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
+ if (Config.ALLOW_QUAKE_PVP)
+ {
+ QuakePvPSystem++;
+ switch (QuakePvPSystem)
+ {
+ case 1:
+ for (int[] reward1 : Config.QUAKE_REWARD_1)
+ {
+ addItem("Loot", reward1[0], reward1[1], this, true);
+ }
+ PlaySound _snd1 = new PlaySound(1, "firstblood", 0, 0, 0, 0, 0);
+ sendPacket(_snd1);
+ sendMessage("You will be rewarded for 1,pvp kill!");
+ ExShowScreenMessage _msg1 = new ExShowScreenMessage("Frist Blood", 3333);
+ sendPacket(_msg1);
+ break;
+ case 2:
+ for (int[] reward2 : Config.QUAKE_REWARD_2)
+ {
+ addItem("Loot", reward2[0], reward2[1], this, true);
+ }
+ PlaySound _snd2 = new PlaySound(1, "doublekill", 0, 0, 0, 0, 0);
+ sendPacket(_snd2);
+ sendMessage("You will be rewarded for 2,pvp kill!");
+ ExShowScreenMessage _msg2 = new ExShowScreenMessage("Duble Kills", 3333);
+ sendPacket(_msg2);
+ break;
+ case 3:
+ for (int[] reward3 : Config.QUAKE_REWARD_3)
+ {
+ addItem("Loot", reward3[0], reward3[1], this, true);
+ }
+ PlaySound _snd3 = new PlaySound(1, "triplekill", 0, 0, 0, 0, 0);
+ sendPacket(_snd3);
+ sendMessage("You will be rewarded for 3, pvp kill!");
+ ExShowScreenMessage _msg3 = new ExShowScreenMessage("Triple Kills", 33333);
+ sendPacket(_msg3);
+ break;
+ case 5:
+ for (int[] reward5 : Config.QUAKE_REWARD_5)
+ {
+ addItem("Loot", reward5[0], reward5[1], this, true);
+ }
+ PlaySound _snd4 = new PlaySound(1, "megakill", 0, 0, 0, 0, 0);
+ sendPacket(_snd4);
+ sendMessage("You will be rewarded for 5,  pvp kill!");
+ ExShowScreenMessage _msg5 = new ExShowScreenMessage("Mega Kills", 3333);
+ sendPacket(_msg5);
+ break;
+ case 10:
+ for (int[] reward10 : Config.QUAKE_REWARD_10)
+ {
+ addItem("Loot", reward10[0], reward10[1], this, true);
+ }
+ PlaySound _snd5 = new PlaySound(1, "ultrakill", 0, 0, 0, 0, 0);
+ sendPacket(_snd5);
+ sendMessage("You will be rewarded for 10, pvp kill!");
+ ExShowScreenMessage _msg10 = new ExShowScreenMessage("Ultra Kills", 3333);
+ sendPacket(_msg10);
+ break;
+ case 15:
+ for (int[] reward15 : Config.QUAKE_REWARD_15)
+ {
+ addItem("Loot", reward15[0], reward15[1], this, true);
+ }
+ PlaySound _snd10 = new PlaySound(1, "monsterkill", 0, 0, 0, 0, 0);
+ sendPacket(_snd10);
+ sendMessage("You will be rewarded for 15, pvp kill!");
+ ExShowScreenMessage _msg15 = new ExShowScreenMessage("Monster Kills", 3333);
+ sendPacket(_msg15);
+ break;
+ case 25:
+ for (int[] reward25 : Config.QUAKE_REWARD_25)
+ {
+ addItem("Loot", reward25[0], reward25[1], this, true);
+ }
+ PlaySound _snd15 = new PlaySound(1, "killingspree", 0, 0, 0, 0, 0);
+ sendPacket(_snd15);
+ sendMessage("You will be rewarded for 25, pvp kill");
+ ExShowScreenMessage _msg25 = new ExShowScreenMessage("Killing Spree, 25 Kills Are you kidding me O.o!", 3333);
+ sendPacket(_msg25);
+ if (Config.ALLOW_QUAKE_PVP_SET_HERO)
+ {
+ setHero(true);
+ sendMessage("You Are now Hero, Congratulations!");
+ }
+ }
+ }
+
+ if (Config.ALLOW_QUAKE_PVP_REWARD_SKILL)
+ {
+ for (int[] rewardskills : Config.QUAKE_REWARD_SKILL)
+ {
+ if (getPvpKills() == rewardskills[3])
+ {
+ final int skillId = rewardskills[0];
+ addSkill(SkillTable.getInstance().getInfo(skillId, rewardskills[1]));
+ sendPacket(new ExShowScreenMessage("You got a skill! your skill is " + getSkillLevel(rewardskills[1]) + " level!", 4444));
+
+ ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+ {
+ public void run()
+ {
+ stopSkillEffects(skillId);
+ removeSkill(skillId);
+ sendPacket(new ExShowScreenMessage("Rewarded Skill has ben removed", 4444));
+ }
+
+ },
+ rewardskills[2]);
+ }
+ }
+ }
+ // Send a Server->Client UserInfo packet to attacker with its Karma
+ // and PK Counter
  sendPacket(new UserInfo(this));
  sendPacket(new ExBrExtraUserInfo(this));
  }


Citar# ---------------------------------------- #
#    PvPQuakeReward System V3.1 By (Micr0) #
# ---------------------------------------- #
#Default: False
AllowQuakeSystem = false

# Default: false
# when do 25 killings without dying become heroes
EnableSetHero = false

# Default: false
EnableRewardSkills = false

# Default Reward: 57,100;
# Example: id,count;id,count;
PvPQuakeReward1 = 57,100;

# Default Reward: 57,200;
# Example: id,count;id,count;
PvPQuakeReward2 = 57,200;

# Default Reward: 57,300;
# Example: id,count;id,count;
PvPQuakeReward3 = 57,300;

# Default Reward: 57,500;
# Example: id,count;id,count;
PvPQuakeReward5 = 57,500;

# Default Reward: 57,10000;
# Example: id,count;id,count;
PvPQuakeReward10 = 57,10000;

# Default Reward: 57,1000000;
# Example: id,count;id,count;
PvPQuakeReward15 = 57,1000000;

# Default Reward: 57,10000000;
# Example: id,count;id,count;
PvPQuakeReward25 = 57,10000000;

# Default Reward: 1530,1,60000,10;
# Example: SkillID,SkillLvL,SkillTime,PvpToReward;
# Warning Skill Time is in Millisecond
# for 1 min use 60000 2 min 120000 and etc
# Work only when > EnableRewardSkills = true
PvPQuakeRewardSkills = 1530,1,60000,10;