Jump to content
  • 0

I Guess It's "simple" To Create...


Question

Posted

Hello fellas...

 

I came to an idea and I hope it's not hard to to and if you have the time, could you please give me a suggestions how to do the following...

 

I'm not asking to write the whole code for me. I just want to give it try and do it by myself so I can continue practicing my basic knowledge.

 

The thing is: When every player, comes up to XX amount of PvP points, he gets a YY item with ZZ id spawned in his inventory (quests) item, automatically.

 

If you can, tell me where should I start.

 

Peace!

Recommended Posts

  • 0
Posted (edited)

check the void,

+        if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP1)
+        {
+            activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD1, Config.PVP_AMOUNT1, activeChar, activeChar);
+            activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+        }
+        
+        else if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP2)
+        {
+            activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD2, Config.PVP_AMOUNT2, activeChar, activeChar);
+            activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+        }
+        
+        else if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP3)
+        {
+            activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD3, Config.PVP_AMOUNT3, activeChar, activeChar);
+            activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+        }

 

 

before it was >= at every check now its == so player will be rewarded only at XX pvp

Edited by Fanky
  • 0
Posted

by pvp points you mean pvp amount or a completely new system called 'pvp points'?

 

if its the second,you have to provide more informations about this system

  • 0
Posted

There is a method called onKillUpdatePvPKarma which takes care about the kills... basically, one check and couple of methods that gives the item.

  • 0
Posted

by pvp points you mean pvp amount or a completely new system called 'pvp points'?

 

if its the second,you have to provide more informations about this system

Not a new pvp system ofcourse. The one that's already existing, but only when the player reaches the XX amount. The item is automatically spawned in his inventory.

  • 0
Posted (edited)

I wrote something for you

### Eclipse Workspace Patch 1.0
#P gameserver
Index: java/net/sf/l2j/gameserver/customs/PvPRewards.java
===================================================================
--- java/net/sf/l2j/gameserver/customs/PvPRewards.java	(revision 0)
+++ java/net/sf/l2j/gameserver/customs/PvPRewards.java	(working copy)
@@ -0,0 +1,57 @@
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+package net.sf.l2j.gameserver.customs;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+
+public class PvPRewards
+{
+	public static PvPRewards getInstance()
+	{
+		PvPRewards _instance = null;
+		if (_instance == null)
+		{
+			_instance = new PvPRewards();
+		}
+		
+		return _instance;
+	}
+	
+	public void addRewardPvP(L2PcInstance activeChar)
+	{
+		if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP1)
+		{
+			activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD1, Config.PVP_AMOUNT1, activeChar, activeChar);
+			activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+		}
+		
+		else if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP2)
+		{
+			activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD2, Config.PVP_AMOUNT2, activeChar, activeChar);
+			activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+		}
+		
+		else if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP3)
+		{
+			activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD3, Config.PVP_AMOUNT3, activeChar, activeChar);
+			activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+		}
+	}
+}
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(revision 42)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -56,6 +56,7 @@
 import net.sf.l2j.gameserver.communitybbs.BB.Forum;
 import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager;
 import net.sf.l2j.gameserver.communitybbs.Manager.RegionBBSManager;
+import net.sf.l2j.gameserver.customs.PvPRewards;
 import net.sf.l2j.gameserver.datatables.AccessLevels;
 import net.sf.l2j.gameserver.datatables.AdminCommandAccessRights;
 import net.sf.l2j.gameserver.datatables.CharNameTable;
@@ -4810,7 +4811,10 @@
     {
         // Add karma to attacker and increase its PK counter
         setPvpKills(getPvpKills() + 1);
+        PvPRewards.getInstance().addRewardPvP(this);
         
+        
+        
         PvpPkColorSystem.getInstance().checkPvpColors(this);
 
         // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java	(revision 41)
+++ java/net/sf/l2j/Config.java	(working copy)
@@ -686,6 +686,16 @@
 	public static Map<Integer, Integer> PK_COLORS_LIST;
 	public static boolean ALLOW_PVP_COLOR_SYSTEM;
 	public static boolean ALLOW_PK_COLOR_SYSTEM;
+	
+	public static int PVP_AMOUNTPVP1;
+	public static int PVP_AMOUNT1;
+	public static int PVP_REWARD1;
+	public static int PVP_AMOUNTPVP2;
+	public static int PVP_AMOUNT2;
+	public static int PVP_REWARD2;
+	public static int PVP_AMOUNTPVP3;
+	public static int PVP_AMOUNT3;
+	public static int PVP_REWARD3;
     //--------------------------------------------------
 
     /**
@@ -810,6 +820,16 @@
             	String[] more_splitted_pks = i.split(",");
             	PVP_COLORS_LIST.put(Integer.parseInt(more_splitted_pks[0]), Integer.decode("0x" + more_splitted_pks[1]));
             	}
+            	
+            	PVP_AMOUNTPVP1 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor1stReward","100"));
+            	PVP_REWARD1 = Integer.parseInt(pvpmods.getProperty("Reward1ID","57"));
+            	PVP_AMOUNT1 = Integer.parseInt(pvpmods.getProperty("Amount1","10000"));
+            	PVP_AMOUNTPVP2 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor2ndReward","100"));
+            	PVP_REWARD2 = Integer.parseInt(pvpmods.getProperty("Reward2ID","57"));
+            	PVP_AMOUNT2 = Integer.parseInt(pvpmods.getProperty("Amount2","10000"));
+            	PVP_AMOUNTPVP3 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor3rdReward","100"));
+            	PVP_REWARD3 = Integer.parseInt(pvpmods.getProperty("Reward3ID","57"));
+            	PVP_AMOUNT3 = Integer.parseInt(pvpmods.getProperty("Amount3","10000"));
             }
             catch (Exception e)
             {

Edited by Fanky
  • 0
Posted

I was looking for something like this for items and custom skills. But I'm getting a few errors and warnings, but it could be because I am on Highfive beta. 

PvPRewards _instance = null;
		if (_instance == null)
		{
			_instance = new PvPRewards();
		}
		

Warning says: Redundant null check: The variable_instance can only be null at this location.

And errors for 

			PVP_AMOUNTPVP1 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor1stReward","100"));
			PVP_REWARD1 = Integer.parseInt(pvpmods.getProperty("Reward1ID","57"));
			PVP_AMOUNT1 = Integer.parseInt(pvpmods.getProperty("Amount1","10000"));
			PVP_AMOUNTPVP2 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor2ndReward","100"));
			PVP_REWARD2 = Integer.parseInt(pvpmods.getProperty("Reward2ID","57"));
			PVP_AMOUNT2 = Integer.parseInt(pvpmods.getProperty("Amount2","10000"));
			PVP_AMOUNTPVP3 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor3rdReward","100"));
			PVP_REWARD3 = Integer.parseInt(pvpmods.getProperty("Reward3ID","57"));
			PVP_AMOUNT3 = Integer.parseInt(pvpmods.getProperty("Amount3","10000"));

pvpmods cannot be resolved.
  • 0
Posted (edited)

That's what I figured, I am currently trying to mess around with it and add it to the PVP_CONFIG_FILE section like the rest of all the pvp settings here like PVP_AMOUNTPVP1 = PVPSettings.getInt("PvpsRequiredFor1stReward", "100"); but no luck so far.

Edited by brett16
  • 0
Posted

you have to place thse config files in the place that your pvp configs are stored

 

 

PVP_AMOUNTPVP1 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor1stReward","100"));
            PVP_REWARD1 = Integer.parseInt(pvpmods.getProperty("Reward1ID","57"));
            PVP_AMOUNT1 = Integer.parseInt(pvpmods.getProperty("Amount1","10000"));
            PVP_AMOUNTPVP2 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor2ndReward","100"));
            PVP_REWARD2 = Integer.parseInt(pvpmods.getProperty("Reward2ID","57"));
            PVP_AMOUNT2 = Integer.parseInt(pvpmods.getProperty("Amount2","10000"));
            PVP_AMOUNTPVP3 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor3rdReward","100"));
            PVP_REWARD3 = Integer.parseInt(pvpmods.getProperty("Reward3ID","57"));
            PVP_AMOUNT3 = Integer.parseInt(pvpmods.getProperty("Amount3","10000"));
  • 0
Posted
// Load PvP L2Properties file (if exists)
			final PropertiesParser PVPSettings = new PropertiesParser(PVP_CONFIG_FILE);
			
			KARMA_DROP_GM = PVPSettings.getBoolean("CanGMDropEquipment", false);
			KARMA_AWARD_PK_KILL = PVPSettings.getBoolean("AwardPKKillPVPPoint", false);
			KARMA_PK_LIMIT = PVPSettings.getInt("MinimumPKRequiredToDrop", 5);
			KARMA_NONDROPPABLE_PET_ITEMS = PVPSettings.getString("ListOfPetItems", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650,9882");
			KARMA_NONDROPPABLE_ITEMS = PVPSettings.getString("ListOfNonDroppableItems", "57,1147,425,1146,461,10,2368,7,6,2370,2369,6842,6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621,7694,8181,5575,7694,9388,9389,9390");
			PVP_AMOUNTPVP1 = PVPSettings.getInt("PvpsRequiredFor1stReward", 100);
			PVP_REWARD1 = PVPSettings.getInt("Reward1ID", 57);
			PVP_AMOUNT1 = PVPSettings.getInt("Amount1", 10000);
			PVP_AMOUNTPVP2 = PVPSettings.getInt("PvpsRequiredFor2ndReward", 100);
			PVP_REWARD2 = PVPSettings.getInt("Reward2ID", 57);
			PVP_AMOUNT2 = PVPSettings.getInt("Amount2", 10000);
			PVP_AMOUNTPVP3 = PVPSettings.getInt("PvpsRequiredFor3rdReward", 100);
			PVP_REWARD3 = PVPSettings.getInt("Reward3ID", 57);
			PVP_AMOUNT3 = PVPSettings.getInt("Amount3", 10000);

I have no errors so I am going to test it now see if this works.

  • 0
Posted

It works if you want the reward for every pvp kill, doesn't just give the reward at the 100th pvp count. I gave myself 99 pvps and killed a test character for 100 and got the reward, and kept killing it a few more times and kept getting the reward.

  • 0
Posted (edited)

i'm sry,it was fast.

just do it like this and its gonna be okey

### Eclipse Workspace Patch 1.0
#P gameserver
Index: java/net/sf/l2j/gameserver/customs/PvPRewards.java
===================================================================
--- java/net/sf/l2j/gameserver/customs/PvPRewards.java    (revision 0)
+++ java/net/sf/l2j/gameserver/customs/PvPRewards.java    (working copy)
@@ -0,0 +1,57 @@
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+package net.sf.l2j.gameserver.customs;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+
+public class PvPRewards
+{
+    public static PvPRewards getInstance()
+    {
+        PvPRewards _instance = null;
+        if (_instance == null)
+        {
+            _instance = new PvPRewards();
+        }
+        
+        return _instance;
+    }
+    
+    public void addRewardPvP(L2PcInstance activeChar)
+    {
+        if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP1)
+        {
+            activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD1, Config.PVP_AMOUNT1, activeChar, activeChar);
+            activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+        }
+        
+        else if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP2)
+        {
+            activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD2, Config.PVP_AMOUNT2, activeChar, activeChar);
+            activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+        }
+        
+        else if(activeChar.getPvpKills() == Config.PVP_AMOUNTPVP3)
+        {
+            activeChar.getInventory().addItem("PvP Reward", Config.PVP_REWARD3, Config.PVP_AMOUNT3, activeChar, activeChar);
+            activeChar.sendMessage("You've been rewarded for your pvp amounts!");
+        }
+    }
+}
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision 42)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (working copy)
@@ -56,6 +56,7 @@
import net.sf.l2j.gameserver.communitybbs.BB.Forum;
import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager;
import net.sf.l2j.gameserver.communitybbs.Manager.RegionBBSManager;
+import net.sf.l2j.gameserver.customs.PvPRewards;
import net.sf.l2j.gameserver.datatables.AccessLevels;
import net.sf.l2j.gameserver.datatables.AdminCommandAccessRights;
import net.sf.l2j.gameserver.datatables.CharNameTable;
@@ -4810,7 +4811,10 @@
{
// Add karma to attacker and increase its PK counter
setPvpKills(getPvpKills() + 1);
+ PvPRewards.getInstance().addRewardPvP(this);

+ 
+ 
PvpPkColorSystem.getInstance().checkPvpColors(this);

// Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java    (revision 41)
+++ java/net/sf/l2j/Config.java    (working copy)
@@ -686,6 +686,16 @@
    public static Map<Integer, Integer> PK_COLORS_LIST;
    public static boolean ALLOW_PVP_COLOR_SYSTEM;
    public static boolean ALLOW_PK_COLOR_SYSTEM;
+    
+    public static int PVP_AMOUNTPVP1;
+    public static int PVP_AMOUNT1;
+    public static int PVP_REWARD1;
+    public static int PVP_AMOUNTPVP2;
+    public static int PVP_AMOUNT2;
+    public static int PVP_REWARD2;
+    public static int PVP_AMOUNTPVP3;
+    public static int PVP_AMOUNT3;
+    public static int PVP_REWARD3;
//--------------------------------------------------

/**
@@ -810,6 +820,16 @@
    String[] more_splitted_pks = i.split(",");
    PVP_COLORS_LIST.put(Integer.parseInt(more_splitted_pks[0]), Integer.decode("0x" + more_splitted_pks[1]));
    }
+     
+     PVP_AMOUNTPVP1 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor1stReward","100"));
+     PVP_REWARD1 = Integer.parseInt(pvpmods.getProperty("Reward1ID","57"));
+     PVP_AMOUNT1 = Integer.parseInt(pvpmods.getProperty("Amount1","10000"));
+     PVP_AMOUNTPVP2 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor2ndReward","100"));
+     PVP_REWARD2 = Integer.parseInt(pvpmods.getProperty("Reward2ID","57"));
+     PVP_AMOUNT2 = Integer.parseInt(pvpmods.getProperty("Amount2","10000"));
+     PVP_AMOUNTPVP3 = Integer.parseInt(pvpmods.getProperty("PvpsRequiredFor3rdReward","100"));
+     PVP_REWARD3 = Integer.parseInt(pvpmods.getProperty("Reward3ID","57"));
+     PVP_AMOUNT3 = Integer.parseInt(pvpmods.getProperty("Amount3","10000"));
}
catch (Exception e)
{
Edited by Fanky
Guest
This topic is now closed to further replies.


×
×
  • Create New...