Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### Eclipse Workspace Patch 1.0
- #P Dream_DataPack
- Index: quests/com/dream/game/model/quest/pack/custom/SchemeBuffer.java
- ===================================================================
- --- quests/com/dream/game/model/quest/pack/custom/SchemeBuffer.java (revision 0)
- +++ quests/com/dream/game/model/quest/pack/custom/SchemeBuffer.java (working copy)
- @@ -0,0 +1,862 @@
- +/*
- + * Copyright (C) 2004-2013 L2J DataPack
- + *
- + * This file is part of L2J DataPack.
- + *
- + * L2J DataPack 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 3 of the License, or
- + * (at your option) any later version.
- + *
- + * L2J DataPack 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, see <http://www.gnu.org/licenses/>.
- + */
- +package dream.game.model.quest.pack.custom;
- +
- +import java.sql.Connection;
- +import java.sql.PreparedStatement;
- +import java.sql.ResultSet;
- +
- +import javolution.util.FastList;
- +import javolution.util.FastMap;
- +
- +import com.dream.Config;
- +import com.dream.L2DatabaseFactory;
- +import com.dream.game.cache.HtmCache;
- +import com.dream.game.datatables.SkillTable;
- +import com.dream.game.model.L2Skill;
- +import com.dream.game.model.actor.L2Npc;
- +import com.dream.game.model.actor.L2Summon;
- +import com.dream.game.model.actor.instance.L2PcInstance;
- +import com.dream.game.model.quest.Quest;
- +
- +/**
- + * Scheme Buffer
- + * @author Freedy
- + */
- +public class SchemeBuffer extends Quest
- +{
- + // NPC
- + private static final int BUFFER = 66000;
- +
- + // contains all possible buffs in NPC
- + private static final FastMap<String, FastList<L2Skill>> _Category_Buffs = new FastMap<>();
- + // contain all schemas buff lists from all players
- + private static final FastMap<Integer, FastMap<String, FastList<L2Skill>>> _Char_Buffs_in_Schema = new FastMap<>();
- + private static final FastMap<Integer, FastList<String>> _Char_Schemes = new FastMap<>();
- + private static boolean _loaded = false;
- +
- + private SchemeBuffer(int questId, String name, String descr)
- + {
- + super(questId, name, descr);
- + addStartNpc(BUFFER);
- + addTalkId(BUFFER);
- + loadBuffs();
- + }
- +
- + private static void loadBuffs()
- + {
- + _Category_Buffs.clear();
- + _Char_Buffs_in_Schema.clear();
- + _Char_Schemes.clear();
- + try
- + {
- + Connection con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement("select * from scheme_buffer_buffs;");
- + ResultSet result = statement.executeQuery();
- + while (result.next())
- + {
- + String cat = result.getString("category");
- + L2Skill sk = SkillTable.getInstance().getInfo(result.getInt("skill_id"), result.getInt("level"));
- + if (_Category_Buffs.get(cat) == null)
- + {
- + FastList<L2Skill> skl = new FastList<>();
- + skl.add(sk);
- + _Category_Buffs.put(cat, skl);
- + }
- + else
- + {
- + _Category_Buffs.get(cat).add(sk);
- + }
- + }
- +
- + PreparedStatement statement2 = con.prepareStatement("select * from scheme_player_buffs order by charId asc;");
- + ResultSet result2 = statement2.executeQuery();
- + while (result2.next())
- + {
- + int player = result2.getInt("charId");
- + String schema = result2.getString("scheme");
- + L2Skill sk = SkillTable.getInstance().getInfo(result2.getInt("skill_id"), result2.getInt("level"));
- +
- + if (_Char_Buffs_in_Schema.containsKey(player))
- + {
- + if (_Char_Buffs_in_Schema.get(player).containsKey(schema))
- + {
- + _Char_Buffs_in_Schema.get(player).get(schema).add(sk);
- + }
- + else
- + {
- + FastList<L2Skill> schemaskillsList = new FastList<>();
- + schemaskillsList.add(sk);
- + _Char_Buffs_in_Schema.get(player).put(schema, schemaskillsList);
- + }
- + }
- + else
- + {
- + FastMap<String, FastList<L2Skill>> schemaskills = new FastMap<>();
- + FastList<L2Skill> schemaskillsList = new FastList<>();
- + schemaskillsList.add(sk);
- + schemaskills.put(schema, schemaskillsList);
- + _Char_Buffs_in_Schema.put(player, schemaskills);
- + }
- +
- + }
- +
- + PreparedStatement statement3 = con.prepareStatement("select * from scheme_player_schemes order by charId asc;");
- + ResultSet result3 = statement3.executeQuery();
- + while (result3.next())
- + {
- + int player = result3.getInt("charId");
- + if (getSchemeNames(player) != null)
- + {
- + getSchemeNames(player).add(result3.getString("scheme"));
- + }
- + else
- + {
- + FastList<String> sk = new FastList<>();
- + sk.add(result3.getString("scheme"));
- + _Char_Schemes.put(player, sk);
- + }
- + }
- +
- + con.close();
- + _log.info("Buffs for scheme buffer were loaded.");
- + setLoaded(true);
- + }
- + catch (Exception e)
- + {
- + _log.info("Error: " + e);
- + }
- + }
- +
- + /**
- + * @param player player who is adding buff into his scheme
- + * @param skill ID of Skill
- + * @param level of Skill
- + * @param scheme where player is adding buff
- + */
- + private static void AddBuff(int player, int skill, int level, String scheme)
- + {
- + try
- + {
- + Connection con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement("INSERT INTO scheme_player_buffs (`charId`, `scheme`, `skill_id`, `level`) VALUES (" + player + ", '" + scheme + "', " + skill + ", " + level + ");");
- + statement.execute();
- + con.close();
- + }
- + catch (Exception e)
- + {
- + _log.info("Error: " + e);
- + }
- + }
- +
- + private static void DeleteBuff(int player, String scheme, int skill)
- + {
- + try
- + {
- + Connection con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement("DELETE FROM `scheme_player_buffs` WHERE `charId`='" + player + "' and`scheme`='" + scheme + "' and`skill_id`='" + skill + "';");
- + statement.execute();
- + con.close();
- + }
- + catch (Exception e)
- + {
- + _log.info("Error: " + e);
- + }
- + }
- +
- + private static void CreateScheme(int player, String scheme)
- + {
- + try
- + {
- + Connection con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement("INSERT INTO scheme_player_schemes (`charId`, `scheme`) VALUES (" + player + ", '" + scheme + "');");
- + statement.execute();
- + con.close();
- + }
- + catch (Exception e)
- + {
- + _log.info("Error: " + e);
- + }
- + }
- +
- + private static void DeleteScheme(int player, String scheme)
- + {
- + try
- + {
- + Connection con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement("DELETE FROM `scheme_player_buffs` WHERE `charId`='" + player + "' and`scheme`='" + scheme + "';");
- + PreparedStatement statement2 = con.prepareStatement("DELETE FROM `scheme_player_schemes` WHERE `charId`='" + player + "' and`scheme`='" + scheme + "';");
- + statement.execute();
- + statement2.execute();
- + con.close();
- + }
- + catch (Exception e)
- + {
- + _log.info("Error: " + e);
- + }
- + }
- +
- + @Override
- + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- + {
- + if (!isLoaded())
- + {
- + loadBuffs();
- + }
- + String html = "";
- + String[] cmd = event.split(" ");
- + switch (cmd[0])
- + {
- + case "link":
- + {
- + html = EditPage(player, cmd[1]);
- + break;
- + }
- + case "main":
- + {
- + html = EditPage(player, "mainpage.htm");
- + break;
- + }
- + case "create":
- + {
- + if (cmd.length < 2)
- + {
- + CreateNewScheme(player, "");
- + }
- + else
- + {
- + CreateNewScheme(player, cmd[1]);
- + }
- + html = EditPage(player, "manageschemes.htm;editscheme");
- + break;
- + }
- + case "addbuff":
- + {
- + AddBuffToScheme(player, cmd[1], SkillTable.getInstance().getInfo(Integer.valueOf(cmd[2]), Integer.valueOf(cmd[3])));
- + html = EditPage(player, cmd[4]);
- + break;
- + }
- + case "delbuff":
- + {
- + DelBuffFromScheme(player, cmd[1], SkillTable.getInstance().getInfo(Integer.valueOf(cmd[2]), Integer.valueOf(cmd[3])));
- + html = EditPage(player, "delbuffs.htm;" + cmd[1]);
- + break;
- + }
- + case "delscheme":
- + {
- + DeleteScheme(player, cmd[1]);
- + html = EditPage(player, "mainpage.htm");
- + break;
- + }
- + case "editscheme":
- + {
- + html = EditPage(player, "scheme.htm;" + cmd[1]);
- + html = html.replaceAll("%schemename%", cmd[1]);
- + break;
- + }
- + case "addbuffs":
- + {
- + html = EditPage(player, cmd[1]);
- + html = html.replaceAll("%schemename%", cmd[2]);
- + break;
- + }
- + case "delbuffs":
- + {
- + html = EditPage(player, "delbuffs.htm;" + cmd[1]);
- + html = html.replaceAll("%schemename%", cmd[1]);
- + break;
- + }
- + case "catadd":
- + {
- + html = EditPage(player, "category.htm;" + cmd[1]);
- + html = html.replaceAll("%schemename%", cmd[1]);
- + break;
- + }
- + case "schemes":
- + {
- + html = EditPage(player, cmd[1]);
- + html = html.replaceAll("%schemename%", cmd[1]);
- + break;
- + }
- + case "buffscheme":
- + {
- + GetBuffs(npc, player, cmd[1]);
- + html = EditPage(player, "mainpage.htm");
- + break;
- + }
- + case "summonbuffscheme":
- + GetBuffsSummon(npc, player, cmd[1]);
- + html = EditPage(player, "mainpage.htm");
- + break;
- + case "manualbuff":
- + {
- + html = EditPage(player, cmd[1]);
- + break;
- + }
- + case "getbuf":
- + {
- + GetBuff(npc, player, Integer.valueOf(cmd[1]), Integer.valueOf(cmd[2]));
- + html = EditPage(player, cmd[3]);
- + break;
- + }
- + }
- +
- + return html;
- + }
- +
- + /**
- + * @param player
- + * @param command - where all bypasses shall be edited
- + * @return
- + */
- + private static String EditPage(L2PcInstance player, String command)
- + {
- + String[] cmd = command.split(";");
- + String _path = "data/html/schemebuffer/";
- + String html = HtmCache.getInstance().getHtm(_path, player);
- + if (html == null)
- + {
- + return null;
- + }
- + switch (cmd[0])
- + {
- + case "manageschemes.htm":
- + html = html.replaceAll("%editschemes%", SchemesToAction(player, cmd[1]));
- + break;
- + case "buffschemes.htm":
- + html = html.replaceAll("%buffschemes%", SchemesToAction(player, cmd[1]));
- + break;
- + case "summon.htm":
- + html = html.replaceAll("%buffschemes%", SchemesToAction(player, cmd[1]));
- + break;
- + case "category.htm":
- + html = html.replaceAll("%categories%", ShowCategories(player, cmd[1]));
- + break;
- + case "delbuffs.htm":
- + html = html.replaceAll("%delbuffs%", DeleteBuffs(player, cmd[1]));
- + break;
- + case "addbuffs.htm":
- + if (cmd.length > 2)
- + {
- + html = html.replaceAll("%buffs%", AddBuffs(player, cmd[1], cmd[2]));
- + html = html.replaceAll("%schemename%", cmd[2]);
- + }
- + break;
- + case "manualcategories.htm":
- + html = html.replaceAll("%categories%", ShowManualCategories(player));
- + break;
- + case "manualbuff.htm":
- + html = html.replaceAll("%buffs%", ManualBuffs(player, cmd[1]));
- + break;
- +
- + }
- + return html;
- + }
- +
- + private static String SchemesToAction(L2PcInstance player, String type)
- + {
- + String action = "<a action=\"bypass -h Quest SchemeBuffer " + type + " %scheme%\">%scheme%</a><br1>";
- + String schemes = "";
- + if (getSchemeNames(player.getObjectId()) != null)
- + {
- + for (String scheme : getSchemeNames(player.getObjectId()))
- + {
- + String a = action.replaceAll("%scheme%", scheme);
- + schemes += a;
- + }
- + }
- + else
- + {
- + schemes = "You dont have any buff schemes yet.";
- + }
- + return schemes;
- + }
- +
- + private static String ShowCategories(L2PcInstance p, String scheme)
- + {
- + String cats = "";
- + String cat = "<a action=\"bypass -h Quest SchemeBuffer addbuffs addbuffs.htm;%category%;" + scheme + " " + scheme + "\">%category% </a><br1>";
- + if (!_Category_Buffs.isEmpty())
- + {
- + for (String c : _Category_Buffs.keySet())
- + {
- + String ca = cat.replaceAll("%category%", c);
- + cats += ca;
- + }
- + }
- + else
- + {
- + cats = "There are not any categories.";
- + }
- +
- + return cats;
- + }
- +
- + /**
- + * @param p
- + * @param category
- + * @param scheme
- + * @return
- + */
- + private static String AddBuffs(L2PcInstance p, String category, String scheme)
- + {
- + String buffs = "";
- +
- + String skill = "";
- + int count = 0;
- + for (L2Skill sk : _Category_Buffs.get(category))
- + {
- + if (sk.getId() < 1000)
- + {
- + skill = "0" + sk.getId();
- + }
- + else if ((sk.getId() == (4699)) || (sk.getId() == (4700)))
- + {
- + skill = "1331";
- + }
- + else if ((sk.getId() == (4703)) || (sk.getId() == (4702)))
- + {
- + skill = "1332";
- + }
- + else
- + {
- + skill = "" + sk.getId();
- + }
- + String buff = "<td fixwidth=32><img src=Icon.skill" + skill + " width=32 height=32></td><td fixwidth=100><a action=\"bypass -h Quest SchemeBuffer addbuff " + scheme + " %buff% %level% addbuffs.htm;" + category + ";" + scheme + "\">%buffname%</a></td>";
- +
- + if (_Char_Buffs_in_Schema.containsKey(p.getObjectId()))
- + {
- + if (_Char_Buffs_in_Schema.get(p.getObjectId()).containsKey(scheme))
- + {
- + if (!getSchemaBuffs(p, scheme).contains(sk))
- + {
- +
- + if ((count % 2) == 0)
- + {
- + buffs += "</tr><tr>";
- + }
- + String b = buff.replaceAll("%buff%", "" + sk.getId());
- + b = b.replaceAll("%level%", "" + sk.getLevel());
- + b = b.replaceAll("%buffname%", sk.getName());
- + buffs += b;
- + count++;
- + }
- + }
- + else
- + {
- + if ((count % 2) == 0)
- + {
- + buffs += "</tr><tr>";
- + }
- + String b = buff.replaceAll("%buff%", "" + sk.getId());
- + b = b.replaceAll("%level%", "" + sk.getLevel());
- + b = b.replaceAll("%buffname%", sk.getName());
- + buffs += b;
- + count++;
- + }
- + }
- + else
- + {
- + if ((count % 2) == 0)
- + {
- + buffs += "</tr><tr>";
- + }
- + String b = buff.replaceAll("%buff%", "" + sk.getId());
- + b = b.replaceAll("%level%", "" + sk.getLevel());
- + b = b.replaceAll("%buffname%", sk.getName());
- + buffs += b;
- + count++;
- + }
- + }
- + if (buffs.equalsIgnoreCase(""))
- + {
- + buffs = "<tr><td></td></tr>";
- + }
- + return buffs;
- + }
- +
- + private static String ShowManualCategories(L2PcInstance p)
- + {
- + String cats = "";
- + String cat = "<a action=\"bypass -h Quest SchemeBuffer manualbuff manualbuff.htm;%category%\">%category% </a><br1>";
- + if (!_Category_Buffs.isEmpty())
- + {
- + for (String c : _Category_Buffs.keySet())
- + {
- + String ca = cat.replaceAll("%category%", c);
- + cats += ca;
- + }
- + }
- + else
- + {
- + cats = "There are not any categories.";
- + }
- +
- + return cats;
- + }
- +
- + /**
- + * @param p
- + * @param category
- + * @return
- + */
- + private static String ManualBuffs(L2PcInstance p, String category)
- + {
- + int count = 0;
- + String buffs = "";
- + String skill = "";
- + for (L2Skill sk : _Category_Buffs.get(category))
- + {
- + if (sk.getId() < 1000)
- + {
- + skill = "0" + sk.getId();
- + }
- + else if ((sk.getId() == (4699)) || (sk.getId() == (4700)))
- + {
- + skill = "1331";
- + }
- + else if ((sk.getId() == (4703)) || (sk.getId() == (4702)))
- + {
- + skill = "1332";
- + }
- + else
- + {
- + skill = "" + sk.getId();
- + }
- + if ((count % 2) == 0)
- + {
- + buffs += "</tr><tr>";
- + }
- + String buff = "<td fixwidth=32><img src=Icon.skill" + skill + " width=32 height=32></td><td fixwidth=100><a action=\"bypass -h Quest SchemeBuffer getbuf %buff% %level% manualbuff.htm;" + category + "\">%buffname%</a><br1></td>";
- +
- + String b = buff.replaceAll("%buff%", "" + sk.getId());
- + b = b.replaceAll("%level%", "" + sk.getLevel());
- + b = b.replaceAll("%buffname%", sk.getName());
- + buffs += b;
- + count++;
- + }
- + if (buffs.equalsIgnoreCase(""))
- + {
- + buffs = "<tr><td>No buffs</td></tr>";
- + }
- + return buffs;
- + }
- +
- + private static String DeleteBuffs(L2PcInstance p, String scheme)
- + {
- + String buffs = "";
- + String buff = "<a action=\"bypass -h Quest SchemeBuffer delbuff " + scheme + " %buff% %level%\">%buffname%</a><br1>";
- + if (_Char_Buffs_in_Schema.containsKey(p.getObjectId()))
- + {
- + if (_Char_Buffs_in_Schema.get(p.getObjectId()).containsKey(scheme))
- + {
- + for (L2Skill sk : getSchemaBuffs(p, scheme))
- + {
- + String b = buff.replaceAll("%buff%", "" + sk.getId());
- + b = b.replaceAll("%buffname%", sk.getName());
- + b = b.replaceAll("%level%", "" + sk.getLevel());
- + buffs += b;
- + }
- + }
- + else
- + {
- + buffs = "You don't have any buffs in this scheme yet.";
- + }
- + }
- + else
- + {
- + buffs = "You don't have any buffs in this scheme yet.";
- + }
- + return buffs;
- + }
- +
- + private static void GetBuff(L2Npc npc, L2PcInstance p, int skill, int level)
- + {
- + L2Skill sk = SkillTable.getInstance().getInfo(skill, level);
- + if (sk != null)
- + {
- + L2PcInstance[] pl =
- + {
- + p,
- + };
- + if (PaidForBuff(p, sk))
- + {
- + npc.callSkill(sk, pl);
- + }
- + }
- +
- + }
- +
- + private static void GetBuffs(L2Npc npc, L2PcInstance p, String scheme)
- + {
- + if (_Char_Buffs_in_Schema.containsKey(p.getObjectId()))
- + {
- + if (_Char_Buffs_in_Schema.get(p.getObjectId()).containsKey(scheme))
- + {
- + for (L2Skill sk : getSchemaBuffs(p, scheme))
- + {
- + L2PcInstance[] pl =
- + {
- + p,
- + };
- + if (PaidForBuff(p, sk))
- + {
- + npc.callSkill(sk, pl);
- + }
- + }
- + }
- + else
- + {
- + p.sendMessage("There are not any buffs in this scheme.");
- + }
- + }
- + else
- + {
- + p.sendMessage("There are not any buffs in this scheme.");
- + }
- + }
- +
- + private static void GetBuffsSummon(L2Npc npc, L2PcInstance p, String scheme)
- + {
- + if (_Char_Buffs_in_Schema.containsKey(p.getObjectId()))
- + {
- + if (_Char_Buffs_in_Schema.get(p.getObjectId()).containsKey(scheme))
- + {
- + if (p.getPet() != null)
- + {
- + L2Summon[] summon =
- + {
- + p.getPet()
- + };
- + for (L2Skill sk : getSchemaBuffs(p, scheme))
- + {
- + if (PaidForBuff(p, sk))
- + {
- + npc.callSkill(sk, summon);
- + }
- + }
- +
- + }
- + else
- + {
- + p.sendMessage("You dont have any pet/summon.");
- + }
- + }
- + else
- + {
- + p.sendMessage("There are not any buffs in this scheme.");
- + }
- + }
- + else
- + {
- + p.sendMessage("There are not any buffs in this scheme.");
- + }
- + }
- +
- + @Override
- + public String onTalk(L2Npc npc, L2PcInstance player)
- + {
- + if (!isLoaded())
- + {
- + loadBuffs();
- + }
- + return EditPage(player, "mainpage.htm");
- + }
- +
- + private static FastList<L2Skill> getSchemaBuffs(L2PcInstance pl, String scheme)
- + {
- + return _Char_Buffs_in_Schema.get(pl.getObjectId()).get(scheme);
- + }
- +
- + private static FastList<String> getSchemeNames(int player)
- + {
- + return _Char_Schemes.get(player);
- + }
- +
- + /**
- + * @param pl
- + * @param schemeName
- + */
- + private static void CreateNewScheme(L2PcInstance pl, String schemeName)
- + {
- + if (schemeName == "")
- + {
- + pl.sendMessage("Please insert your new scheme name.");
- + return;
- + }
- + if (schemeName.length() > 16)
- + {
- + pl.sendMessage("Your scheme name can have only 16 characters!");
- + return;
- + }
- +
- + if (getSchemeNames(pl.getObjectId()) != null)
- + {
- + if (getSchemeNames(pl.getObjectId()).contains(schemeName))
- + {
- + pl.sendMessage("You already have scheme with this name.");
- + return;
- + }
- + if (getSchemeNames(pl.getObjectId()).size() >= 4)
- + {
- + pl.sendMessage("You cannot make any more schemes. Maximum is 4.");
- + return;
- + }
- + CreateScheme(pl.getObjectId(), schemeName);
- + getSchemeNames(pl.getObjectId()).add(schemeName);
- + return;
- + }
- + FastList<String> sch = new FastList<>();
- + sch.add(schemeName);
- + CreateScheme(pl.getObjectId(), schemeName);
- + _Char_Schemes.put(pl.getObjectId(), sch);
- + return;
- + }
- +
- + private static void DeleteScheme(L2PcInstance pl, String scheme)
- + {
- + DeleteScheme(pl.getObjectId(), scheme);
- + _Char_Buffs_in_Schema.get(pl.getObjectId()).remove(scheme);
- + if (_Char_Buffs_in_Schema.get(pl.getObjectId()).isEmpty())
- + {
- + _Char_Buffs_in_Schema.remove(pl.getObjectId());
- + }
- + _Char_Schemes.get(pl.getObjectId()).remove(scheme);
- + if (_Char_Schemes.get(pl.getObjectId()).isEmpty())
- + {
- + _Char_Schemes.remove(pl.getObjectId());
- + }
- + pl.sendMessage("Your scheme '" + scheme + "' was successfuly deleted.");
- + }
- +
- + /**
- + * @param p
- + * @param schema
- + * @param sk
- + */
- + private static void AddBuffToScheme(L2PcInstance p, String schema, L2Skill sk)
- + {
- + if (_Char_Buffs_in_Schema.containsKey(p.getObjectId()))
- + {
- + if (_Char_Buffs_in_Schema.get(p.getObjectId()).containsKey(schema))
- + {
- + if (!getSchemaBuffs(p, schema).contains(sk))
- + {
- + if (getSchemaBuffs(p, schema).size() >= Config.MAX_BUFFS_PER_SCHEME)
- + {
- + p.sendMessage("Your buff scheme is full.");
- + return;
- + }
- + AddBuff(p.getObjectId(), sk.getId(), sk.getLevel(), schema);
- + getSchemaBuffs(p, schema).add(sk);
- + p.sendMessage("added skill " + sk.getName());
- + }
- + }
- + else
- + {
- + AddBuff(p.getObjectId(), sk.getId(), sk.getLevel(), schema);
- + FastMap<String, FastList<L2Skill>> pbuffs = new FastMap<>();
- + FastList<L2Skill> skl = new FastList<>();
- + skl.add(sk);
- + pbuffs.put(schema, skl);
- + _Char_Buffs_in_Schema.put(p.getObjectId(), pbuffs);
- + p.sendMessage("added skill " + sk.getName() + " and scheme " + schema);
- + }
- + }
- + else
- + {
- + AddBuff(p.getObjectId(), sk.getId(), sk.getLevel(), schema);
- + FastMap<String, FastList<L2Skill>> pbuffs = new FastMap<>();
- + FastList<L2Skill> skl = new FastList<>();
- + skl.add(sk);
- + pbuffs.put(schema, skl);
- + _Char_Buffs_in_Schema.put(p.getObjectId(), pbuffs);
- + p.sendMessage("Created all in player buffs, added skill " + sk.getName() + " and scheme " + schema);
- + }
- + }
- +
- + private static void DelBuffFromScheme(L2PcInstance p, String schema, L2Skill sk)
- + {
- + DeleteBuff(p.getObjectId(), schema, sk.getId());
- + _Char_Buffs_in_Schema.get(p.getObjectId()).get(schema).remove(sk);
- + if (_Char_Buffs_in_Schema.get(p.getObjectId()).get(schema).isEmpty())
- + {
- + _Char_Buffs_in_Schema.get(p.getObjectId()).remove(schema);
- + if (_Char_Buffs_in_Schema.get(p.getObjectId()).isEmpty())
- + {
- + _Char_Buffs_in_Schema.remove(p.getObjectId());
- + }
- + }
- + }
- +
- + private static boolean PaidForBuff(L2PcInstance p, L2Skill sk)
- + {
- + if (Config.FREE_BUFFS)
- + {
- + return true;
- + }
- + boolean special = false;
- + for (String skill : Config.CUSTOM_BUFFS)
- + {
- + if (sk.getId() == Integer.valueOf(skill))
- + {
- + special = true;
- + }
- + }
- + if (special)
- + {
- + if (p.getInventory().getInventoryItemCount((Config.BUFF_CUSTOM_ITEM_ID), -1) < Config.BUFF_PRICE_CUSTOM)
- + {
- + p.sendMessage("You don't have enough required items.");
- + return false;
- + }
- + p.getInventory().destroyItemByItemId("Buff", Config.BUFF_CUSTOM_ITEM_ID, Config.BUFF_PRICE_CUSTOM, p, null);
- + return true;
- + }
- + if (p.getInventory().getInventoryItemCount((Config.BUFF_ITEM_ID), -1) < Config.BUFF_PRICE)
- +
- + {
- + p.sendMessage("You don't have enough required items.");
- + return false;
- + }
- + p.getInventory().destroyItemByItemId("Buff", Config.BUFF_ITEM_ID, Config.BUFF_PRICE, p, null);
- + return true;
- + }
- +
- + public static void main(String[] args)
- + {
- + new SchemeBuffer(-1, SchemeBuffer.class.getSimpleName(), "Scheme Buffer");
- + }
- +
- + /**
- + * @return the _loaded
- + */
- + public static boolean isLoaded()
- + {
- + return _loaded;
- + }
- +
- + /**
- + * @param _loaded the _loaded to set
- + */
- + public static void setLoaded(boolean _loaded)
- + {
- + SchemeBuffer._loaded = _loaded;
- + }
- +}
- \ No newline at end of file
- #P Dream_GameServer
- Index: src/com/dream/Config.java
- ===================================================================
- --- src/com/dream/Config.java (revision 1821)
- +++ src/com/dream/Config.java (working copy)
- @@ -2126,6 +2126,15 @@
- public static int BANKING_GOLDBAR_PRICE;
- public static int BANKING_GOLDBAR_ID;
- + public static boolean FREE_BUFFS;
- + public static int MAX_BUFFS_PER_SCHEME;
- + public static int MAX_SCHEMES;
- + public static int BUFF_PRICE;
- + public static int BUFF_ITEM_ID;
- + public static int BUFF_PRICE_CUSTOM;
- + public static int BUFF_CUSTOM_ITEM_ID;
- + public static String[] CUSTOM_BUFFS;
- +
- public static void loadCustomConfig()
- {
- try
- @@ -2190,6 +2199,15 @@
- L2Properties p = new L2Properties("./config/main/bosses.properties");
- EPIC_REQUIRE_QUEST = Boolean.parseBoolean(p.getProperty("QuestRequired", "true"));
- + FREE_BUFFS = Boolean.parseBoolean(customSettings.getProperty("FreeBuffs", "False"));
- + MAX_BUFFS_PER_SCHEME = Integer.parseInt(customSettings.getProperty("MaximumBuffs", "24"));
- + MAX_SCHEMES = Integer.parseInt(customSettings.getProperty("MaximumSchemes", "4"));
- + BUFF_PRICE = Integer.parseInt(customSettings.getProperty("BuffCost", "100000"));
- + BUFF_ITEM_ID = Integer.parseInt(customSettings.getProperty("BuffItemId", "57"));
- + CUSTOM_BUFFS = customSettings.getProperty("CustomBuffs", "0").split(";");
- + BUFF_CUSTOM_ITEM_ID = Integer.parseInt(customSettings.getProperty("CustomBuffItemId", "6673"));
- + BUFF_PRICE_CUSTOM = Integer.parseInt(customSettings.getProperty("CustomBuffCost", "100"));
- +
- }
- catch (Exception e)
- {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement