Hello, how are you? I'm using a low rate server and found a code that I would like to implement but I don't have much knowledge in Java so I would like to ask you for help. The code consists of when creating the character, it already comes with buffs. I will leave the code and I would be very grateful if anyone can adapt it for me.
- Code:
### Eclipse Workspace Patch 1.0
#P Hero-GS
Index: config/players.properties
===================================================================
--- config/players.properties (revision 36)
+++ config/players.properties (working copy)
@@ -5,6 +5,15 @@
#Amount of adenas that a new character is given, default is 100
StartingAdena = 250000
+#Newbie Characters have starting buffs
+StartingBuffs = True
+
+#Starting Buffs for Mystics.
+StartingBuffsMage = 1204,2;1085,3;
+
+#Starting Buffs for Fighters.
+StartingBuffsFighter = 1204,2;1086,2;
+
# If True, when effects of the same stack group are used, lesser
# effects will be canceled if stronger effects are used. New effects
# that are added will be canceled if they are of lesser priority to the old one.
Index: java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java (revision 35)
+++ java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java (working copy)
@@ -22,15 +22,18 @@
import net.sf.l2j.gameserver.datatables.SkillTreeTable;
import net.sf.l2j.gameserver.idfactory.IdFactory;
import net.sf.l2j.gameserver.model.L2ShortCut;
+import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.model.L2SkillLearn;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.template.PcTemplate;
import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
import net.sf.l2j.gameserver.model.item.kind.Item;
+import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.CharCreateFail;
import net.sf.l2j.gameserver.network.serverpackets.CharCreateOk;
import net.sf.l2j.gameserver.network.serverpackets.CharSelectInfo;
+import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.scripting.Quest;
import net.sf.l2j.gameserver.scripting.ScriptManager;
@@ -146,6 +149,7 @@
newChar.addAdena("Init", Config.STARTING_ADENA, null, false);
}
if(Config.STARTING_BUFFS)
{
if(!newChar.isMageClass())
{
for (int[] buff : Config.STARTING_BUFFS_F) //Custom buffs for fighters
{
L2Skill skill = SkillTable.getInstance().getInfo(buff[0], buff[1]);
if (skill != null)
{
skill.getEffects(newChar, newChar);
newChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(buff[0]));
}
}
}
else
{
for (int[] buff : Config.STARTING_BUFFS_M) //Custom buffs for mystics
{
L2Skill skill = SkillTable.getInstance().getInfo(buff[0], buff[1]);
if (skill != null)
{
skill.getEffects(newChar, newChar);
newChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(buff[0]));
}
}
}
}
newChar.setXYZInvisible(template.getSpawnX(), template.getSpawnY(), template.getSpawnZ());
newChar.setTitle("");
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java (revision 46)
+++ java/net/sf/l2j/Config.java (working copy)
@@ -401,6 +401,9 @@
/** Misc */
public static int STARTING_ADENA;
+ public static boolean STARTING_BUFFS;
+ public static List<int[]> STARTING_BUFFS_M = new ArrayList<int[]>();
+ public static List<int[]> STARTING_BUFFS_F = new ArrayList<int[]>();
public static boolean EFFECT_CANCELING;
public static double HP_REGEN_MULTIPLIER;
public static double MP_REGEN_MULTIPLIER;
@@ -1075,6 +1078,47 @@
// players
ExProperties players = load(PLAYERS_FILE);
STARTING_ADENA = players.getProperty("StartingAdena", 100);
STARTING_BUFFS = players.getProperty("StartingBuffs", true);
String[] propertySplit = players.getProperty("StartingBuffsMage", "1204,2").split(";");
STARTING_BUFFS_M.clear();
for (String buff : propertySplit)
{
String[] buffSplit = buff.split(",");
if (buffSplit.length != 2)
_log.warning("StartingBuffsMage[Config.load()]: invalid config property -> StartingBuffsMage \"" + buff + "\"");
else
{
try
{
STARTING_BUFFS_M.add(new int[]{Integer.parseInt(buffSplit[0]), Integer.parseInt(buffSplit[1])});
}
catch (NumberFormatException nfe)
{
if (STARTING_BUFFS_M.equals(""))
System.out.println("EROOOOOOOOOOOR WITH STARTING BUFS");
}
}
}
propertySplit = players.getProperty("StartingBuffsFighter", "1204,2").split(";");
STARTING_BUFFS_F.clear();
for (String buff : propertySplit)
{
String[] buffSplit = buff.split(",");
if (buffSplit.length != 2)
_log.warning("StartingBuffsFighter[Config.load()]: invalid config property -> StartingBuffsFighter \"" + buff + "\"");
else
{
try
{
STARTING_BUFFS_F.add(new int[]{Integer.parseInt(buffSplit[0]), Integer.parseInt(buffSplit[1])});
}
catch (NumberFormatException nfe)
{
if (STARTING_BUFFS_F.equals(""))
System.out.println("EROOOOOOOOOOOR WITH STARTING BUFS");
}
}
}
EFFECT_CANCELING = players.getProperty("CancelLesserEffect", true);
HP_REGEN_MULTIPLIER = players.getProperty("HpRegenMultiplier", 1.);
MP_REGEN_MULTIPLIER = players.getProperty("MpRegenMultiplier", 1.);