- 打卡等级:殷海萨
- 打卡总天数:875
- 打卡月天数:14
- 打卡总奖励:5460
|
发表于 2021-5-14 21:27:38
|
显示全部楼层
l2jtw的么?
L2JTW的源码好像没有给宠物加的这个内核!~
需要自己加scriptsscripts.cfg里添加
data\scripts\custom\NpcBuffer.java
以及
data\scripts\custom里面新增NpcBuffer.java这个文件
下面这个npcbuffer的java 可能需要修改部分数据才能使用!~
- /*
- * 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
- */
- package custom.NpcBuffer;
- import static com.l2jserver.gameserver.util.Util.formatAdena;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import com.l2jserver.Config;
- import com.l2jserver.L2DatabaseFactory;
- import com.l2jserver.gameserver.datatables.ItemTable;
- import com.l2jserver.gameserver.datatables.SkillTable;
- import com.l2jserver.gameserver.instancemanager.QuestManager;
- import com.l2jserver.gameserver.model.actor.L2Npc;
- import com.l2jserver.gameserver.model.actor.L2Summon;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
- import com.l2jserver.gameserver.model.actor.instance.L2ServitorInstance;
- import com.l2jserver.gameserver.model.actor.stat.PcStat;
- import com.l2jserver.gameserver.model.actor.stat.SummonStat;
- import com.l2jserver.gameserver.model.actor.status.PcStatus;
- import com.l2jserver.gameserver.model.actor.status.SummonStatus;
- import com.l2jserver.gameserver.model.entity.TvTEvent;
- import com.l2jserver.gameserver.model.items.L2Item;
- import com.l2jserver.gameserver.model.olympiad.OlympiadManager;
- import com.l2jserver.gameserver.model.quest.Quest;
- import com.l2jserver.gameserver.model.quest.QuestState;
- import com.l2jserver.gameserver.model.skills.L2Skill;
- import com.l2jserver.gameserver.model.skills.L2SkillType;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- import com.l2jserver.gameserver.network.serverpackets.SetSummonRemainTime;
- import com.l2jserver.gameserver.network.serverpackets.SetupGauge;
- import gnu.trove.list.array.TIntArrayList;
- /**
- * @autor: Rin4a and ????
- * @Adapted by JMD for L2JServer.com
- */
- public class NpcBuffer extends Quest
- {
- private static final boolean DEBUG = false;
-
- private static void print(Exception e)
- {
- _log.warning(">>>" + e.toString() + "<<<");
- if (DEBUG)
- {
- e.printStackTrace();
- }
- }
-
- private static final String QUEST_LOADING_INFO = "NpcBuffer";
- private static final int NPC_ID = 1000003;
-
- private static final String TITLE_NAME = "血玫瑰天堂II状态师";
- private static final boolean SCRIPT_RELOAD = true;
- private static final boolean SMART_WINDOW = true;
- // private static final int VIP_ACCESS_LEVEL = Config.NpcBuffer_VIP_ALV;
- private static final boolean ENABLE_BUFF_SECTION = true;
- private static final boolean ENABLE_SCHEME_SYSTEM = true;
- private static final boolean ENABLE_HEAL = true;
- private static final boolean ENABLE_BUFFS = true;
- private static final boolean ENABLE_RESIST = true;
- private static final boolean ENABLE_SONGS = true;
- private static final boolean ENABLE_DANCES = true;
- private static final boolean ENABLE_CHANTS = true;
- private static final boolean ENABLE_OTHERS = true;
- private static final boolean ENABLE_SPECIAL = true;
- private static final boolean ENABLE_CUBIC = false;
- private static final boolean ENABLE_BUFF_REMOVE = true;
- private static final boolean ENABLE_BUFF_SET = true;
- private static final boolean FREE_BUFFS = true;
- private static final boolean TIME_OUT = true;
- private static final int TIME_OUT_TIME = 0;
- private static final int MIN_LEVEL = 1;
- private static final int BUFF_REMOVE_PRICE = 10000;
- private static final int HEAL_PRICE = 10000;
- private static final int BUFF_PRICE = 10000;
- private static final int RESIST_PRICE = 10000;
- private static final int SONG_PRICE = 10000;
- private static final int DANCE_PRICE = 10000;
- private static final int CHANT_PRICE = 10000;
- private static final int OTHERS_PRICE = 10000;
- private static final int SPECIAL_PRICE = 10000;
- private static final int CUBIC_PRICE = 10000;
- private static final int BUFF_SET_PRICE = 10000;
- private static final int SCHEME_BUFF_PRICE = 10000;
- private static final int SCHEMES_PER_PLAYER = 4;
- private static final int CONSUMABLE_ID = 57;
- private static final int MAX_SCHEME_BUFFS = Config.BUFFS_MAX_AMOUNT;
- private static final int MAX_SCHEME_DANCES = Config.DANCES_MAX_AMOUNT;
-
- private static final String SET_FIGHTER = "战士";
- private static final String SET_MAGE = "魔法";
- private static final String SET_ALL = "全部";
- private static final String SET_NONE = "不使用";
-
- private String rebuildMainHtml(QuestState st)
- {
- String MAIN_HTML_MESSAGE = "<html><head><title>" + TITLE_NAME + "</title></head><body><center>";
- String MESSAGE = "";
- int td = 0;
- String[] TRS =
- {
- "<tr><td height=25>",
- "</td>",
- "<td height=25>",
- "</td></tr>"
- };
-
- MAIN_HTML_MESSAGE += "<table border=0 cellpadding=0 cellspacing=0>";
- MAIN_HTML_MESSAGE += "<tr><td><img src="L2UI_CT1.frame_df_silhouette_left" width=90 height=33></td><td width=10 align=center><img src="L2UI_CT1.RADARMAP_DF_ICN_TARGET01" width=16 height=16></td><td><img src="L2UI_CT1.frame_df_silhouette_right" width=90 height=33></td></tr>";
- MAIN_HTML_MESSAGE += "</table>";
-
- final String bottonA, bottonB, bottonC;
- if (st.getInt("Pet-On-Off") == 1)
- {
- bottonA = "自动宠物状态";
- bottonB = "一键治愈宠物";
- bottonC = "清除宠物状态";
- MAIN_HTML_MESSAGE += "<button value="切换至角色状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " buffpet 0 0 0" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Info_Down" fore="L2UI_CT1.OlympiadWnd_DF_Info">";
- }
- else
- {
- bottonA = "自动状态";
- bottonB = "一键治愈";
- bottonC = "一键清除";
- MAIN_HTML_MESSAGE += "<button value="切换至宠物状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " buffpet 1 0 0" width=200 height=31 back="l2ui_ct1.olympiadwnd_df_heroconfirm_down" fore="l2ui_ct1.olympiadwnd_df_heroconfirm">";
- }
-
- if (ENABLE_BUFF_SECTION)
- {
- if (ENABLE_BUFFS)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="一般状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_buffs 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_RESIST)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="抵抗状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_resists 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_SONGS)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="诗歌状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_songs 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_DANCES)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="舞蹈状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_dances 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_CHANTS)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="战狂颂歌" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_chants 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_SPECIAL)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="特殊状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_special 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_OTHERS)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="其他状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_others 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- }
- if (ENABLE_CUBIC)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="晶体状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect view_cubic 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (MESSAGE.length() > 0)
- {
- MAIN_HTML_MESSAGE += "<BR1><table width=100% border=0 cellspacing=0 cellpadding=1 bgcolor=444444><tr>" + "<td><font color=00FFFF>状态栏:</font></td><td align=right></td></tr></table>" + "<BR1><table cellspacing=0 cellpadding=0>" + MESSAGE + "</table>";
- MESSAGE = "";
- td = 0;
- }
- if (ENABLE_BUFF_SET)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="" + bottonA + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " castBuffSet 0 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_HEAL)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="" + bottonB + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " heal 0 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
- if (ENABLE_BUFF_REMOVE)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="" + bottonC + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " removeBuffs 0 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
-
- if (MESSAGE.length() > 0)
- {
- MAIN_HTML_MESSAGE += "<BR1><table width=100% border=0 cellspacing=0 cellpadding=1 bgcolor=444444><tr>" + "<td><font color=00FFFF>自动栏:</font></td><td align=right><font color=LEVEL>" + formatAdena(BUFF_SET_PRICE) + "</font> 金币</td></tr></table>" + "<BR1><table cellspacing=0 cellpadding=0>" + MESSAGE + "</table>";
- MESSAGE = "";
- td = 0;
- }
- if (ENABLE_SCHEME_SYSTEM)
- {
- MAIN_HTML_MESSAGE += generateScheme(st);
- }
- if (st.getPlayer().isGM())
- {
- MAIN_HTML_MESSAGE += "<br><button value="管理员选项" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect manage_buffs 0 0" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- MAIN_HTML_MESSAGE += "<br><font color=303030>" + TITLE_NAME + "</font>" + "</center></body></html>";
- return MAIN_HTML_MESSAGE;
- }
-
- private String generateScheme(QuestState st)
- {
- List<String> schemeName = new ArrayList<>();
- List<String> schemeId = new ArrayList<>();
- String HTML = "";
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rss = con.prepareStatement("SELECT * FROM npcbuffer_scheme_list WHERE player_id=?");
- rss.setInt(1, st.getPlayer().getObjectId());
- ResultSet action = rss.executeQuery();
- while (action.next())
- {
- schemeName.add(action.getString("scheme_name"));
- schemeId.add(action.getString("id"));
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- HTML += "<BR1><table width=100% border=0 cellspacing=0 cellpadding=1 bgcolor=444444><tr>" + "<td><font color=00FFFF>自定栏:</font></td><td align=right><font color=LEVEL>" + formatAdena(SCHEME_BUFF_PRICE) + "</font> 金币</TD></TR></table>" + "<BR1><table cellspacing=0 cellpadding=0>";
- if (schemeName.size() > 0)
- {
- String MESSAGE = "";
- int td = 0;
- String[] TRS =
- {
- "<tr><td>",
- "</td>",
- "<td>",
- "</td></tr>"
- };
- for (int i = 0; i < schemeName.size(); ++i)
- {
- if (td > 2)
- {
- td = 0;
- }
- MESSAGE += TRS[td] + "<button value="" + schemeName.get(i) + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " cast " + schemeId.get(i) + " x x" width=130 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + TRS[td + 1];
- td += 2;
- }
-
- if (MESSAGE.length() > 0)
- {
- HTML += "<table>" + MESSAGE + "</table>";
- }
- }
- if (schemeName.size() < SCHEMES_PER_PLAYER)
- {
- HTML += "<BR1><table><tr><td><button value="新建" action="bypass -h Quest " + QUEST_LOADING_INFO + " create_1 x x x" width=85 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>";
- }
- else
- {
- HTML += "<BR1><table width=100><tr>";
- }
- if (schemeName.size() > 0)
- {
- HTML += "<td><button value="编辑" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_1 x x x" width=85 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>" + "<td><button value="删除" action="bypass -h Quest " + QUEST_LOADING_INFO + " delete_1 x x x" width=85 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td></tr></table>";
- }
- else
- {
- HTML += "</tr></table>";
- }
- return HTML;
- }
-
- private String reloadPanel(QuestState st)
- {
- return "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>" + "<font color=303030>" + TITLE_NAME + "</font><br>" + "<img src="L2UI.SquareGray" width=250 height=1><br>" + "<table width=260 border=0 bgcolor=444444>" + "<tr><td><br></td></tr>" + "<tr><td align=center><font color=FFFFFF>此页面仅GM可见.<br1>可供GM管理和编辑状态师脚本<br1><font color=LEVEL>是否更新状态师脚本</font></font></td></tr>" + "<tr><td></td></tr></table><br>" + "<img src="L2UI.SquareGray" width=250 height=1><br><br>" + "<button value="是" action="bypass -h Quest " + QUEST_LOADING_INFO + " reloadscript 1 0 0" width=50 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<button value="否" action="bypass -h Quest " + QUEST_LOADING_INFO + " reloadscript 0 0 0" width=50 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "</center></body></html>";
- }
-
- private String getItemNameHtml(QuestState st, int itemval)
- {
- return "&#" + itemval + ";";
- // return ItemTable.getInstance().getTemplate(itemval) != null ? "&#" + itemval + ";" : "No Name";
- }
-
- @SuppressWarnings("unused")
- private String getItemName(QuestState st, int itemval)
- {
- L2Item t = ItemTable.getInstance().getTemplate(itemval);
- return t != null ? t.getName() : "No Name";
- }
-
- private int getBuffCount(String scheme)
- {
- int count = 0;
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rss = con.prepareStatement("SELECT buff_class FROM npcbuffer_scheme_contents WHERE scheme_id=?");
- rss.setString(1, scheme);
- ResultSet action = rss.executeQuery();
- while (action.next())
- {
- ++count;
- }
- }
- // catch (SQLException e) { count = 0; } //TODO:
- catch (SQLException e)
- {
- print(e);
- }
- return count;
- }
-
- private String getBuffType(int id)
- {
- String val = "none";
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement act = con.prepareStatement("SELECT buffType FROM npcbuffer_buff_list WHERE buffId=? LIMIT 1");
- act.setInt(1, id);
- ResultSet rs = act.executeQuery();
- if (rs.next())
- {
- val = rs.getString("buffType");
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- return val;
- }
-
- private boolean isEnabled(int id, int level)
- {
- boolean val = false;
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement act = con.prepareStatement("SELECT canUse FROM npcbuffer_buff_list WHERE buffId=? AND buffLevel=? LIMIT 1");
- act.setInt(1, id);
- act.setInt(2, level);
- ResultSet rs = act.executeQuery();
- if (rs.next())
- {
- if ("1".equals(rs.getString("canUse")))
- {
- val = true;
- }
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- return val;
- }
-
- private boolean isUsed(String scheme, int id, int level)
- {
- boolean used = false;
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rss = con.prepareStatement("SELECT id FROM npcbuffer_scheme_contents WHERE scheme_id=? AND skill_id=? AND skill_level=? LIMIT 1");
- rss.setString(1, scheme);
- rss.setInt(2, id);
- rss.setInt(3, level);
- ResultSet action = rss.executeQuery();
- if (action.next())
- {
- used = true;
- }
- }
- // catch (SQLException e) { count = 0; } //TODO:
- catch (SQLException e)
- {
- print(e);
- }
- return used;
- }
-
- private int getClassBuff(String id)
- {
- int val = 0;
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement getTipo = con.prepareStatement("SELECT buff_class FROM npcbuffer_buff_list WHERE buffId=?");
- getTipo.setString(1, id);
- ResultSet gt = getTipo.executeQuery();
- if (gt.next())
- {
- val = gt.getInt("buff_class");
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- return val;
- }
-
- private String showText(QuestState st, String type, String text, boolean buttonEnabled, String buttonName, String location)
- {
- String MESSAGE = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>";
- MESSAGE += "<font color=LEVEL>" + type + "</font><br>" + text + "<br>";
- if (buttonEnabled)
- {
- MESSAGE += "<button value="" + buttonName + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect " + location + " 0 0" width=100 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- MESSAGE += "<font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- st.playSound("ItemSound3.sys_shortage");
- return MESSAGE;
- }
-
- private String reloadConfig(QuestState st)
- {
- try
- {
- if (QuestManager.getInstance().reload(QUEST_LOADING_INFO))
- {
- st.getPlayer().sendMessage("状态师脚本和设定重载成功.");
- }
- else
- {
- st.getPlayer().sendMessage("状态师脚本重载失败,请修改错误后重启GS");
- }
- }
- catch (Exception e)
- {
- st.getPlayer().sendMessage("状态师脚本重载失败,请修改错误后重启GS");
- print(e);
- }
- return rebuildMainHtml(st);
- }
-
- private NpcBuffer(int id, String name, String descr)
- {
- super(id, name, descr);
- addStartNpc(NPC_ID);
- addFirstTalkId(NPC_ID);
- addTalkId(NPC_ID);
- }
-
- private boolean isPetBuff(QuestState st)
- {
- return st.getInt("Pet-On-Off") != 0;
- }
-
- private String createScheme()
- {
- return "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br><br>状态名字禁止使用中文和符号 <br><br>自定状态名字: <edit var="name" width=100><br><br>" + "<button value="建立自定状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " create $name no_name x x" width=200 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- }
-
- private String deleteScheme(L2PcInstance player)
- {
- String HTML = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>删除自定状态:<br><br>";
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rss = con.prepareStatement("SELECT * FROM npcbuffer_scheme_list WHERE player_id=?");
- rss.setInt(1, player.getObjectId());
- ResultSet action = rss.executeQuery();
- while (action.next())
- {
- HTML += "<button value="" + action.getString("scheme_name") + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " delete_c " + action.getString("id") + " " + action.getString("scheme_name") + " x" width=200 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- HTML += "<br><button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- return HTML;
- }
-
- private String editScheme(L2PcInstance player)
- {
- String HTML = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>选择您想要管理的状态:<br><br>";
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rss = con.prepareStatement("SELECT * FROM npcbuffer_scheme_list WHERE player_id=?");
- rss.setInt(1, player.getObjectId());
- ResultSet action = rss.executeQuery();
- while (action.next())
- {
- String name = action.getString("scheme_name");
- String id = action.getString("id");
- HTML += "<button value="" + name + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " manage_scheme_select " + id + " x x" width=200 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- HTML += "<br><button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- return HTML;
- }
-
- private String getOptionList(String scheme)
- {
- int bcount = getBuffCount(scheme);
- String HTML = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>现在有 <font color=LEVEL>" + bcount + "</font> 个状态存在于您的自定状态里!<br><br>";
- if (bcount < (MAX_SCHEME_BUFFS + MAX_SCHEME_DANCES))
- {
- HTML += "<button value="增加状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " manage_scheme_1 " + scheme + " 1 x" width=200 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (bcount > 0)
- {
- HTML += "<button value="重置状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " manage_scheme_2 " + scheme + " 1 x" width=200 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- HTML += "<br><button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_1 0 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<button value="首页" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- return HTML;
- }
-
- private String buildHtml(String buffType)
- {
- String HTML_MESSAGE = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><br>";
-
- List<String> availableBuffs = new ArrayList<>();
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement getList = con.prepareStatement("SELECT buffId,buffLevel FROM npcbuffer_buff_list WHERE buffType="" + buffType + "" AND canUse=1 ORDER BY Buff_Class ASC, id");
- ResultSet rs = getList.executeQuery();
- while (rs.next())
- {
- // try :
- int bId = rs.getInt("buffId");
- int bLevel = rs.getInt("buffLevel");
- String bName = SkillTable.getInstance().getInfo(bId, bLevel).getName();
- bName = bName.replace(" ", "+");
- availableBuffs.add(bName + "_" + bId + "_" + bLevel);
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
-
- if (availableBuffs.size() == 0)
- {
- HTML_MESSAGE += "No buffs are available at this moment!";
- }
- else
- {
- if (FREE_BUFFS)
- {
- HTML_MESSAGE += "所有的状态都是 <font color=LEVEL>免费</font>!";
- }
- else
- {
- int price = 0;
- switch (buffType)
- {
- case "buff":
- price = BUFF_PRICE;
- break;
- case "resist":
- price = RESIST_PRICE;
- break;
- case "song":
- price = SONG_PRICE;
- break;
- case "dance":
- price = DANCE_PRICE;
- break;
- case "chant":
- price = CHANT_PRICE;
- break;
- case "others":
- price = OTHERS_PRICE;
- break;
- case "special":
- price = SPECIAL_PRICE;
- break;
- case "cubic":
- price = CUBIC_PRICE;
- break;
- default:
- if (DEBUG)
- {
- throw new RuntimeException();
- }
- }
- HTML_MESSAGE += "所有的特殊状态小号 <font color=LEVEL>" + formatAdena(price) + "</font> 金币!";
- }
- HTML_MESSAGE += "<BR1><table>";
- for (String buff : availableBuffs)
- {
- buff = buff.replace("_", " ");
- String[] buffSplit = buff.split(" ");
- String name = buffSplit[0];
- int id = Integer.parseInt(buffSplit[1]);
- int level = Integer.parseInt(buffSplit[2]);
- name = name.replace("+", " ");
- HTML_MESSAGE += "<tr><td>" + getSkillIconHtml(id, level) + "</td><td><button value="" + name + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " giveBuffs " + id + " " + level + " " + buffType + "" width=190 height=32 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td></tr>";
- }
- HTML_MESSAGE += "</table>";
- }
- HTML_MESSAGE += "<br><button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- return HTML_MESSAGE;
- }
-
- private String generateQuery(int case1, int case2)
- {
- StringBuilder qry = new StringBuilder();
- if (ENABLE_BUFFS)
- {
- if (case1 < MAX_SCHEME_BUFFS)
- {
- qry.append(","buff"");
- }
- }
- if (ENABLE_RESIST)
- {
- if (case1 < MAX_SCHEME_BUFFS)
- {
- qry.append(","resist"");
- }
- }
- if (ENABLE_SONGS)
- {
- if (case2 < MAX_SCHEME_DANCES)
- {
- qry.append(","song"");
- }
- }
- if (ENABLE_DANCES)
- {
- if (case2 < MAX_SCHEME_DANCES)
- {
- qry.append(","dance"");
- }
- }
- if (ENABLE_CHANTS)
- {
- if (case1 < MAX_SCHEME_BUFFS)
- {
- qry.append(","chant"");
- }
- }
- if (ENABLE_OTHERS)
- {
- if (case1 < MAX_SCHEME_BUFFS)
- {
- qry.append(","others"");
- }
- }
- if (ENABLE_SPECIAL)
- {
- if (case1 < MAX_SCHEME_BUFFS)
- {
- qry.append(","special"");
- }
- }
- if (qry.length() > 0)
- {
- qry.deleteCharAt(0);
- }
- return qry.toString();
- }
-
- private String viewAllSchemeBuffs$getBuffCount(String scheme)
- {
- int count = 0;
- int D_S_Count = 0;
- int B_Count = 0;
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rss = con.prepareStatement("SELECT buff_class FROM npcbuffer_scheme_contents WHERE scheme_id=?");
- rss.setString(1, scheme);
- ResultSet action = rss.executeQuery();
- while (action.next())
- {
- ++count;
- int val = action.getInt("buff_class");
- if ((val == 1) || (val == 2))
- {
- ++D_S_Count;
- }
- else
- {
- ++B_Count;
- }
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- String res = count + " " + B_Count + " " + D_S_Count;
- return res;
- }
-
- private String viewAllSchemeBuffs(String scheme, String page, String action)
- {
- List<String> buffList = new ArrayList<>();
- String HTML_MESSAGE = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><br>";
- String[] eventSplit = viewAllSchemeBuffs$getBuffCount(scheme).split(" ");
- int TOTAL_BUFF = Integer.parseInt(eventSplit[0]);
- int BUFF_COUNT = Integer.parseInt(eventSplit[1]);
- int DANCE_SONG = Integer.parseInt(eventSplit[2]);
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- if (action.equals("add"))
- {
- HTML_MESSAGE += "您可以增加 <font color=LEVEL>" + (MAX_SCHEME_BUFFS - BUFF_COUNT) + "</font> 个一般状态和 <font color=LEVEL>" + (MAX_SCHEME_DANCES - DANCE_SONG) + "</font> 个舞蹈诗歌!";
- String QUERY = "SELECT * FROM npcbuffer_buff_list WHERE buffType IN (" + generateQuery(BUFF_COUNT, DANCE_SONG) + ") AND canUse=1 ORDER BY Buff_Class ASC, id";
- PreparedStatement getBuffCount = con.prepareStatement(QUERY);
- ResultSet rss = getBuffCount.executeQuery();
- while (rss.next())
- {
- String name = SkillTable.getInstance().getInfo(rss.getInt("buffId"), rss.getInt("buffLevel")).getName();
- name = name.replace(" ", "+");
- buffList.add(name + "_" + rss.getInt("buffId") + "_" + rss.getInt("buffLevel"));
- }
- }
- else if (action.equals("remove"))
- {
- HTML_MESSAGE += "您有 <font color=LEVEL>" + BUFF_COUNT + "</font> 个状态和 <font color=LEVEL>" + DANCE_SONG + "</font> 个舞蹈诗歌";
- String QUERY = "SELECT * FROM npcbuffer_scheme_contents WHERE scheme_id=? ORDER BY Buff_Class ASC, id";
- PreparedStatement getBuffCount = con.prepareStatement(QUERY);
- getBuffCount.setString(1, scheme);
- ResultSet rss = getBuffCount.executeQuery();
- while (rss.next())
- {
- String name = SkillTable.getInstance().getInfo(rss.getInt("skill_id"), rss.getInt("skill_level")).getName();
- name = name.replace(" ", "+");
- buffList.add(name + "_" + rss.getInt("skill_id") + "_" + rss.getInt("skill_level"));
- }
- }
- else if (DEBUG)
- {
- throw new RuntimeException();
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
-
- HTML_MESSAGE += "<BR1><table border=0><tr>";
- final int buffsPerPage = 20;
- final String width, pageName;
- int pc = ((buffList.size() - 1) / buffsPerPage) + 1;
- if (pc > 5)
- {
- width = "25";
- pageName = "P";
- }
- else
- {
- width = "50";
- pageName = "页 ";
- }
- for (int ii = 1; ii <= pc; ++ii)
- {
- if (ii == Integer.parseInt(page))
- {
- HTML_MESSAGE += "<td width=" + width + " align=center><font color=LEVEL>" + pageName + ii + "</font></td>";
- }
- else if (action.equals("add"))
- {
- HTML_MESSAGE += "<td width=" + width + ">" + "<button value="" + pageName + ii + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " manage_scheme_1 " + scheme + " " + ii + " x" width=" + width + " height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>";
- }
- else if (action.equals("remove"))
- {
- HTML_MESSAGE += "<td width=" + width + ">" + "<button value="" + pageName + ii + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " manage_scheme_2 " + scheme + " " + ii + " x" width=" + width + " height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>";
- }
- else if (DEBUG)
- {
- throw new RuntimeException();
- }
- }
- HTML_MESSAGE += "</tr></table>";
-
- int limit = buffsPerPage * Integer.parseInt(page);
- int start = limit - buffsPerPage;
- int end = Math.min(limit, buffList.size());
- int k = 0;
- for (int i = start; i < end; ++i)
- {
- String value = buffList.get(i);
- value = value.replace("_", " ");
- String[] extr = value.split(" ");
- String name = extr[0];
- name = name.replace("+", " ");
- int id = Integer.parseInt(extr[1]);
- int level = Integer.parseInt(extr[2]);
- if (action.equals("add"))
- {
- if (!isUsed(scheme, id, level))
- {
- if ((k % 2) != 0)
- {
- HTML_MESSAGE += "<BR1><table border=0 bgcolor=333333>";
- }
- else
- {
- HTML_MESSAGE += "<BR1><table border=0 bgcolor=292929>";
- }
- HTML_MESSAGE += "<tr><td width=35>" + getSkillIconHtml(id, level) + "</td><td fixwidth=170>" + name + "</td><td><button value="增加" action="bypass -h Quest " + QUEST_LOADING_INFO + " add_buff " + scheme + "_" + id + "_" + level + " " + page + " " + TOTAL_BUFF + "" width=65 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>" + "</tr></table>";
- k += 1;
- }
- }
- else if (action.equals("remove"))
- {
- if ((k % 2) != 0)
- {
- HTML_MESSAGE += "<BR1><table border=0 bgcolor=333333>";
- }
- else
- {
- HTML_MESSAGE += "<BR1><table border=0 bgcolor=292929>";
- }
- HTML_MESSAGE += "<tr><td width=35>" + getSkillIconHtml(id, level) + "</td><td fixwidth=170>" + name + "</td><td><button value="重置" action="bypass -h Quest " + QUEST_LOADING_INFO + " remove_buff " + scheme + "_" + id + "_" + level + " " + page + " " + TOTAL_BUFF + "" width=65 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>" + "</table>";
- k += 1;
- }
- }
- HTML_MESSAGE += "<br><br><button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " manage_scheme_select " + scheme + " x x" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<button value="首页" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- return HTML_MESSAGE;
- }
-
- private String viewAllBuffTypes()
- {
- String HTML_MESSAGE = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>";
- HTML_MESSAGE += "<font color=LEVEL>[状态管理]</font><br>";
- if (ENABLE_BUFFS)
- {
- HTML_MESSAGE += "<button value="一般状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list buff Buffs 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_RESIST)
- {
- HTML_MESSAGE += "<button value="抵抗状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list resist Resists 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_SONGS)
- {
- HTML_MESSAGE += "<button value="诗歌" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list song Songs 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_DANCES)
- {
- HTML_MESSAGE += "<button value="舞蹈" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list dance Dances 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_CHANTS)
- {
- HTML_MESSAGE += "<button value="颂歌" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list chant Chants 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_SPECIAL)
- {
- HTML_MESSAGE += "<button value="特殊状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list special Special_Buffs 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_OTHERS)
- {
- HTML_MESSAGE += "<button value="其他状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list others Others_Buffs 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_CUBIC)
- {
- HTML_MESSAGE += "<button value="晶体状态" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list cubic cubic_Buffs 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
- }
- if (ENABLE_BUFF_SET)
- {
- HTML_MESSAGE += "<button value="状态设定" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list set Buff_Sets 1" width=200 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br>";
- }
- HTML_MESSAGE += "<button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- return HTML_MESSAGE;
- }
-
- private String viewAllBuffs(String type, String typeName, String page)
- {
- List<String> buffList = new ArrayList<>();
- String HTML_MESSAGE = "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>";
- typeName = typeName.replace("_", " ");
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- final PreparedStatement getBuffCount;
- if (type.equals("set"))
- {
- getBuffCount = con.prepareStatement("SELECT * FROM npcbuffer_buff_list WHERE buffType IN (" + generateQuery(0, 0) + ") AND canUse=1");
- }
- else
- {
- getBuffCount = con.prepareStatement("SELECT * FROM npcbuffer_buff_list WHERE buffType=?");
- getBuffCount.setString(1, type);
- }
- ResultSet rss = getBuffCount.executeQuery();
- while (rss.next())
- {
- String name = SkillTable.getInstance().getInfo(rss.getInt("buffId"), rss.getInt("buffLevel")).getName();
- name = name.replace(" ", "+");
- String usable = rss.getString("canUse");
- String forClass = rss.getString("forClass");
- String skill_id = rss.getString("buffId");
- String skill_level = rss.getString("buffLevel");
- buffList.add(name + "_" + forClass + "_" + page + "_" + usable + "_" + skill_id + "_" + skill_level);
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- Collections.sort(buffList);
-
- HTML_MESSAGE += "<font color=LEVEL>[状态管理 - " + typeName + " - Page " + page + "]</font><br><table border=0><tr>";
- final int buffsPerPage;
- if (type.equals("set"))
- {
- buffsPerPage = 12;
- }
- else
- {
- buffsPerPage = 20;
- }
- final String width, pageName;
- int pc = ((buffList.size() - 1) / buffsPerPage) + 1;
- if (pc > 5)
- {
- width = "25";
- pageName = "P";
- }
- else
- {
- width = "50";
- pageName = "Page ";
- }
- typeName = typeName.replace(" ", "_");
- for (int ii = 1; ii <= pc; ++ii)
- {
- if (ii == Integer.parseInt(page))
- {
- HTML_MESSAGE += "<td width=" + width + " align=center><font color=LEVEL>" + pageName + ii + "</font></td>";
- }
- else
- {
- HTML_MESSAGE += "<td width=" + width + "><button value="" + pageName + "" + ii + "" action="bypass -h Quest " + QUEST_LOADING_INFO + " edit_buff_list " + type + " " + typeName + " " + ii + "" width=" + width + " height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>";
- }
- }
- HTML_MESSAGE += "</tr></table><br>";
-
- int limit = buffsPerPage * Integer.parseInt(page);
- int start = limit - buffsPerPage;
- int end = Math.min(limit, buffList.size());
- for (int i = start; i < end; ++i)
- {
- String value = buffList.get(i);
- value = value.replace("_", " ");
- String[] extr = value.split(" ");
- String name = extr[0];
- name = name.replace("+", " ");
- int forClass = Integer.parseInt(extr[1]);
- int usable = Integer.parseInt(extr[3]);
- String skillPos = extr[4] + "_" + extr[5];
- if ((i % 2) != 0)
- {
- HTML_MESSAGE += "<BR1><table border=0 bgcolor=333333>";
- }
- else
- {
- HTML_MESSAGE += "<BR1><table border=0 bgcolor=292929>";
- }
- if (type.equals("set"))
- {
- String listOrder = null;
- if (forClass == 0)
- {
- listOrder = "List="" + SET_FIGHTER + ";" + SET_MAGE + ";" + SET_ALL + ";" + SET_NONE + ";"";
- }
- else if (forClass == 1)
- {
- listOrder = "List="" + SET_MAGE + ";" + SET_FIGHTER + ";" + SET_ALL + ";" + SET_NONE + ";"";
- }
- else if (forClass == 2)
- {
- listOrder = "List="" + SET_ALL + ";" + SET_FIGHTER + ";" + SET_MAGE + ";" + SET_NONE + ";"";
- }
- else if (forClass == 3)
- {
- listOrder = "List="" + SET_NONE + ";" + SET_FIGHTER + ";" + SET_MAGE + ";" + SET_ALL + ";"";
- }
- HTML_MESSAGE += "<tr><td fixwidth=145>" + name + "</td><td width=70><combobox var="newSet" + i + "" width=70 " + listOrder + "></td>" + "<td width=50><button value="更新" action="bypass -h Quest " + QUEST_LOADING_INFO + " changeBuffSet " + skillPos + " $newSet" + i + " " + page + "" width=50 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td></tr>";
- }
- else
- {
- HTML_MESSAGE += "<tr><td fixwidth=170>" + name + "</td><td width=80>";
- if (usable == 1)
- {
- HTML_MESSAGE += "<button value="通用" action="bypass -h Quest " + QUEST_LOADING_INFO + " editSelectedBuff " + skillPos + " 0-" + page + " " + type + "" width=80 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td></tr>";
- }
- else if (usable == 0)
- {
- HTML_MESSAGE += "<button value="禁用" action="bypass -h Quest " + QUEST_LOADING_INFO + " editSelectedBuff " + skillPos + " 1-" + page + " " + type + "" width=80 height=22 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td></tr>";
- }
- }
- HTML_MESSAGE += "</table>";
- }
- HTML_MESSAGE += "<br><br><button value="返回" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect manage_buffs 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<button value="首页" action="bypass -h Quest " + QUEST_LOADING_INFO + " redirect main 0 0" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
- return HTML_MESSAGE;
- }
-
- private void manageSelectedBuff(String buffPosId, String canUseBuff)
- {
- String[] bpid = buffPosId.split("_");
- String bId = bpid[0];
- String bLvl = bpid[1];
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement upd = con.prepareStatement("UPDATE npcbuffer_buff_list SET canUse=? WHERE buffId=? AND buffLevel=? LIMIT 1");
- upd.setString(1, canUseBuff);
- upd.setString(2, bId);
- upd.setString(3, bLvl);
- upd.executeUpdate();
- upd.close();
- }
- catch (SQLException e)
- {
- print(e);
- }
- }
-
- private String manageSelectedSet(String id, String newVal, String opt3)
- {
- String[] bpid = id.split("_");
- String bId = bpid[0];
- String bLvl = bpid[1];
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement upd = con.prepareStatement("UPDATE npcbuffer_buff_list SET forClass=? WHERE buffId=? AND bufflevel=?");
- upd.setString(1, newVal);
- upd.setString(2, bId);
- upd.setString(3, bLvl);
- upd.executeUpdate();
- upd.close();
- }
- catch (SQLException e)
- {
- print(e);
- }
- return viewAllBuffs("set", "状态设定", opt3);
- }
-
- private void addTimeout(QuestState st, int gaugeColor, int amount, int offset)
- {
- int endtime = (int) ((System.currentTimeMillis() + (amount * 1000)) / 1000);
- st.set("blockUntilTime", String.valueOf(endtime));
- st.getPlayer().sendPacket(new SetupGauge(gaugeColor, (amount * 1000) + offset));
- }
-
- private void heal(L2PcInstance player, boolean isPet)
- {
- L2Summon target;
- if (!isPet)
- {
- PcStatus pcStatus = player.getStatus();
- PcStat pcStat = player.getStat();
- pcStatus.setCurrentHp(pcStat.getMaxHp());
- pcStatus.setCurrentMp(pcStat.getMaxMp());
- pcStatus.setCurrentCp(pcStat.getMaxCp());
- }
- else if (/* isPet && */(target = player.getSummon()) != null)
- {
- SummonStatus petStatus = target.getStatus();
- SummonStat petStat = target.getStat();
- petStatus.setCurrentHp(petStat.getMaxHp());
- petStatus.setCurrentMp(petStat.getMaxMp());
- if (target instanceof L2PetInstance)
- {
- L2PetInstance pet = (L2PetInstance) target;
- pet.setCurrentFed(pet.getMaxFed());
- player.sendPacket(new SetSummonRemainTime(pet.getMaxFed(), pet.getCurrentFed()));
- }
- else if (target instanceof L2ServitorInstance)
- {
- L2ServitorInstance summon = (L2ServitorInstance) target;
- summon.decTimeRemaining(summon.getTimeRemaining() - summon.getTotalLifeTime());
- player.sendPacket(new SetSummonRemainTime(summon.getTotalLifeTime(), summon.getTimeRemaining()));
- }
- else if (DEBUG)
- {
- throw new RuntimeException();
- }
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- if (DEBUG)
- {
- System.out.println(getScriptName() + "#onAdvEvent('" + event + "'," + (npc == null ? "NULL" : npc.getId() + npc.getName()) + "," + (player == null ? "NULL" : player.getName()) + ")");
- }
- QuestState st = player.getQuestState(QUEST_LOADING_INFO);
- String[] eventSplit = event.split(" ", 4);
- if (eventSplit.length != 4)
- {
- player.sendPacket(SystemMessageId.INCORRECT_NAME_TRY_AGAIN);
- return null;
- }
- String eventParam0 = eventSplit[0];
- String eventParam1 = eventSplit[1];
- String eventParam2 = eventSplit[2];
- String eventParam3 = eventSplit[3];
-
- switch (eventParam0)
- {
- case "reloadscript":
- if (eventParam1.equals("1"))
- {
- return reloadConfig(st);
- }
- if (eventParam1.equals("0"))
- {
- return rebuildMainHtml(st);
- }
- if (DEBUG)
- {
- throw new RuntimeException();
- }
-
- case "redirect":
- switch (eventParam1)
- {
- case "main":
- return rebuildMainHtml(st);
- case "manage_buffs":
- return viewAllBuffTypes();
- case "view_buffs":
- return buildHtml("buff");
- case "view_resists":
- return buildHtml("resist");
- case "view_songs":
- return buildHtml("song");
- case "view_dances":
- return buildHtml("dance");
- case "view_chants":
- return buildHtml("chant");
- case "view_others":
- return buildHtml("others");
- case "view_special":
- return buildHtml("special");
- case "view_cubic":
- return buildHtml("cubic");
- default:
- if (DEBUG)
- {
- throw new RuntimeException();
- }
- }
-
- case "buffpet":
- if ((int) (System.currentTimeMillis() / 1000) > st.getInt("blockUntilTime"))
- {
- st.set("Pet-On-Off", eventParam1);
- if (TIME_OUT)
- {
- addTimeout(st, 3, TIME_OUT_TIME / 2, 600);
- }
- }
- return rebuildMainHtml(st);
-
- case "create":
- {
- String param = eventParam1.replaceAll("[ !" + """ + "#$%&'()*+,/:;<=>?@" + "\\[" + "\\\" + "\\]" + "\\^" + "`{|}~]", ""); // JOJO
- if ((param.length() == 0) || param.equals("no_name"))
- {
- player.sendPacket(SystemMessageId.INCORRECT_NAME_TRY_AGAIN);
- return showText(st, "警告", "请输入正确的自定状态名称!", true, "返回", "main");
- }
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement ins = con.prepareStatement("INSERT INTO npcbuffer_scheme_list (player_id,scheme_name) VALUES (?,?)");
- ins.setInt(1, player.getObjectId());
- ins.setString(2, param);
- ins.executeUpdate();
- ins.close();
- }
- catch (SQLException e)
- {
- print(e);
- }
- return rebuildMainHtml(st);
- }
-
- case "delete":
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rem;
- rem = con.prepareStatement("DELETE FROM npcbuffer_scheme_list WHERE id=? LIMIT 1");
- rem.setString(1, eventParam1);
- rem.executeUpdate();
- rem.close();
- rem = con.prepareStatement("DELETE FROM npcbuffer_scheme_contents WHERE scheme_id=?");
- rem.setString(1, eventParam1);
- rem.executeUpdate();
- rem.close();
- }
- catch (SQLException e)
- {
- print(e);
- }
- return rebuildMainHtml(st);
-
- case "delete_c":
- return "<html><head><title>" + TITLE_NAME + "</title></head><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br>您真的想要删除 '" + eventParam2 + "' 这个自定状态么?<br><br>" + "<button value="是" action="bypass -h Quest " + QUEST_LOADING_INFO + " delete " + eventParam1 + " x x" width=50 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<button value="否" action="bypass -h Quest " + QUEST_LOADING_INFO + " delete_1 x x x" width=50 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">" + "<br><font color=303030>" + TITLE_NAME + "</font></center></body></html>";
-
- case "create_1":
- return createScheme();
- case "edit_1":
- return editScheme(player);
- case "delete_1":
- return deleteScheme(player);
- case "manage_scheme_1":
- return viewAllSchemeBuffs(eventParam1, eventParam2, "add");
- case "manage_scheme_2":
- return viewAllSchemeBuffs(eventParam1, eventParam2, "remove");
- case "manage_scheme_select":
- return getOptionList(eventParam1);
-
- case "remove_buff":
- {
- String[] split = eventParam1.split("_");
- String scheme = split[0];
- String skill = split[1];
- String level = split[2];
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rem = con.prepareStatement("DELETE FROM npcbuffer_scheme_contents WHERE scheme_id=? AND skill_id=? AND skill_level=? LIMIT 1");
- rem.setString(1, scheme);
- rem.setString(2, skill);
- rem.setString(3, level);
- rem.executeUpdate();
- }
- catch (SQLException e)
- {
- print(e);
- }
- int temp = Integer.parseInt(eventParam3) - 1;
- final String HTML;
- if (temp <= 0)
- {
- HTML = getOptionList(scheme);
- }
- else
- {
- HTML = viewAllSchemeBuffs(scheme, eventParam2, "remove");
- }
- return HTML;
- }
-
- case "add_buff":
- {
- String[] split = eventParam1.split("_");
- String scheme = split[0];
- String skill = split[1];
- String level = split[2];
- int idbuffclass = getClassBuff(skill);
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement ins = con.prepareStatement("INSERT INTO npcbuffer_scheme_contents (scheme_id,skill_id,skill_level,buff_class) VALUES (?,?,?,?)");
- ins.setString(1, scheme);
- ins.setString(2, skill);
- ins.setString(3, level);
- ins.setInt(4, idbuffclass);
- ins.executeUpdate();
- ins.close();
- }
- catch (SQLException e)
- {
- print(e);
- }
- int temp = Integer.parseInt(eventParam3) + 1;
- final String HTML;
- if (temp >= (MAX_SCHEME_BUFFS + MAX_SCHEME_DANCES))
- {
- HTML = getOptionList(scheme);
- }
- else
- {
- HTML = viewAllSchemeBuffs(scheme, eventParam2, "add");
- }
- return HTML;
- }
-
- case "edit_buff_list":
- return viewAllBuffs(eventParam1, eventParam2, eventParam3);
-
- case "changeBuffSet":
- if (eventParam2.equals(SET_FIGHTER))
- {
- eventParam2 = "0";
- }
- else if (eventParam2.equals(SET_MAGE))
- {
- eventParam2 = "1";
- }
- else if (eventParam2.equals(SET_ALL))
- {
- eventParam2 = "2";
- }
- else if (eventParam2.equals(SET_NONE))
- {
- eventParam2 = "3";
- }
- else if (DEBUG)
- {
- throw new RuntimeException();
- }
- return manageSelectedSet(eventParam1, eventParam2, eventParam3);
-
- case "editSelectedBuff":
- {
- eventParam2 = eventParam2.replace("-", " ");
- String[] split = eventParam2.split(" ");
- String action = split[0];
- String page = split[1];
- manageSelectedBuff(eventParam1, action);
- final String typeName;
- switch (eventParam3)
- {
- case "buff":
- typeName = "Buffs";
- break;
- case "resist":
- typeName = "Resists";
- break;
- case "song":
- typeName = "Songs";
- break;
- case "dance":
- typeName = "Dances";
- break;
- case "chant":
- typeName = "Chants";
- break;
- case "others":
- typeName = "Others_Buffs";
- break;
- case "special":
- typeName = "Special_Buffs";
- break;
- case "cubic":
- typeName = "Cubics";
- break;
- default: /* if (DEBUG) */
- throw new RuntimeException();
- }
- return viewAllBuffs(eventParam3, typeName, page);
- }
-
- case "viewSelectedConfig":
- throw new RuntimeException();
-
- case "changeConfig":
- throw new RuntimeException();
-
- case "heal":
- if ((int) (System.currentTimeMillis() / 1000) > st.getInt("blockUntilTime"))
- {
- if (st.getQuestItemsCount(CONSUMABLE_ID) < HEAL_PRICE)
- {
- return showText(st, "对不起", "您没有足够的道具:<br>您需要: <font color=LEVEL>" + HEAL_PRICE + " " + getItemNameHtml(st, CONSUMABLE_ID) + "!", false, "0", "0");
- }
- final boolean getSummonbuff = isPetBuff(st);
- if (getSummonbuff)
- {
- if (player.getSummon() != null)
- {
- heal(player, getSummonbuff);
- }
- else
- {
- return showText(st, "警告", "您不能使用宠物状态.<br>请先召唤出您的宠物再使用!", false, "Return", "main");
- }
- }
- else
- {
- heal(player, getSummonbuff);
- }
- st.takeItems(CONSUMABLE_ID, HEAL_PRICE);
- if (TIME_OUT)
- {
- addTimeout(st, 1, TIME_OUT_TIME / 2, 600);
- }
- }
- return SMART_WINDOW ? null : rebuildMainHtml(st);
-
- case "removeBuffs":
- if ((int) (System.currentTimeMillis() / 1000) > st.getInt("blockUntilTime"))
- {
- if (st.getQuestItemsCount(CONSUMABLE_ID) < BUFF_REMOVE_PRICE)
- {
- return showText(st, "对不起", "您没有足够的道具:<br>您需要: <font color=LEVEL>" + BUFF_REMOVE_PRICE + " " + getItemNameHtml(st, CONSUMABLE_ID) + "!", false, "0", "0");
- }
- final boolean getSummonbuff = isPetBuff(st);
- if (getSummonbuff)
- {
- if (player.getSummon() != null)
- {
- player.getSummon().stopAllEffects();
- }
- else
- {
- return showText(st, "警告", "您不能使用宠物状态.<br>请先召唤出宠物再使用!", false, "Return", "main");
- }
- }
- else
- {
- player.stopAllEffects();
- }
- st.takeItems(CONSUMABLE_ID, BUFF_REMOVE_PRICE);
- if (TIME_OUT)
- {
- addTimeout(st, 2, TIME_OUT_TIME / 2, 600);
- }
- }
- return SMART_WINDOW ? null : rebuildMainHtml(st);
-
- case "cast":
- if ((int) (System.currentTimeMillis() / 1000) > st.getInt("blockUntilTime"))
- {
- TIntArrayList buffs = new TIntArrayList();
- TIntArrayList levels = new TIntArrayList();
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement rss = con.prepareStatement("SELECT * FROM npcbuffer_scheme_contents WHERE scheme_id=? ORDER BY id");
- rss.setString(1, eventParam1);
- ResultSet action = rss.executeQuery();
- while (action.next())
- {
- // enabled = 1;
- int id = Integer.parseInt(action.getString("skill_id"));
- int level = Integer.parseInt(action.getString("skill_level"));
- switch (getBuffType(id))
- {
- case "buff":
- if (ENABLE_BUFFS)
- {
- if (isEnabled(id, level))
- {
- buffs.add(id);
- levels.add(level);
- }
- }
- break;
- case "resist":
- if (ENABLE_RESIST)
- {
- if (isEnabled(id, level))
- {
- buffs.add(id);
- levels.add(level);
- }
- }
- break;
- case "song":
- if (ENABLE_SONGS)
- {
- if (isEnabled(id, level))
- {
- buffs.add(id);
- levels.add(level);
- }
- }
- break;
- case "dance":
- if (ENABLE_DANCES)
- {
- if (isEnabled(id, level))
- {
- buffs.add(id);
- levels.add(level);
- }
- }
- break;
- case "chant":
- if (ENABLE_CHANTS)
- {
- if (isEnabled(id, level))
- {
- buffs.add(id);
- levels.add(level);
- }
- }
- break;
- case "others":
- if (ENABLE_OTHERS)
- {
- if (isEnabled(id, level))
- {
- buffs.add(id);
- levels.add(level);
- }
- }
- break;
- case "special":
- if (ENABLE_SPECIAL)
- {
- if (isEnabled(id, level))
- {
- buffs.add(id);
- levels.add(level);
- }
- }
- break;
- default:
- if (DEBUG)
- {
- throw new RuntimeException();
- }
- }
- }
- }
-
- catch (SQLException e)
- {
- print(e);
- }
-
- if (buffs.size() == 0)
- {
- return viewAllSchemeBuffs(eventParam1, "1", "add");
- }
- if (!FREE_BUFFS)
- {
- if (st.getQuestItemsCount(CONSUMABLE_ID) < SCHEME_BUFF_PRICE)
- {
- return showText(st, "对不起", "您没有足够的道具:<br>您需要: <font color=LEVEL>" + SCHEME_BUFF_PRICE + " " + getItemNameHtml(st, CONSUMABLE_ID) + "!", false, "0", "0");
- }
- }
-
- final boolean getSummonbuff = isPetBuff(st);
- for (int i = 0; i < buffs.size(); ++i)
- {
- if (!getSummonbuff)
- {
- SkillTable.getInstance().getInfo(buffs.get(i), levels.get(i)).applyEffects(player, player);
- }
- else
- {
- if (player.getSummon() != null)
- {
- SkillTable.getInstance().getInfo(buffs.get(i), levels.get(i)).applyEffects(player, player);
- }
- else
- {
- return showText(st, "警告", "您不能使用宠物状态.<br>请先召唤出宠物再召唤!", false, "Return", "main");
- }
- }
- }
- st.takeItems(CONSUMABLE_ID, SCHEME_BUFF_PRICE);
- if (TIME_OUT)
- {
- addTimeout(st, 3, TIME_OUT_TIME, 600);
- }
- }
- return SMART_WINDOW ? null : rebuildMainHtml(st);
-
- case "giveBuffs":
- {
- final int cost;
- switch (eventParam3)
- {
- case "buff":
- cost = BUFF_PRICE;
- break;
- case "resist":
- cost = RESIST_PRICE;
- break;
- case "song":
- cost = SONG_PRICE;
- break;
- case "dance":
- cost = DANCE_PRICE;
- break;
- case "chant":
- cost = CHANT_PRICE;
- break;
- case "others":
- cost = OTHERS_PRICE;
- break;
- case "special":
- cost = SPECIAL_PRICE;
- break;
- case "cubic":
- cost = CUBIC_PRICE;
- break;
- default:
- throw new RuntimeException();
- }
-
- if ((int) (System.currentTimeMillis() / 1000) > st.getInt("blockUntilTime"))
- {
- if (!FREE_BUFFS)
- {
- if (st.getQuestItemsCount(CONSUMABLE_ID) < cost)
- {
- return showText(st, "对不起", "您没有足够的道具:<br>您需要: <font color=LEVEL>" + cost + " " + getItemNameHtml(st, CONSUMABLE_ID) + "!", false, "0", "0");
- }
- }
- L2Skill skill = SkillTable.getInstance().getInfo(Integer.parseInt(eventParam1), Integer.parseInt(eventParam2));
- if (skill.getSkillType() == L2SkillType.SUMMON)
- {
- if (st.getQuestItemsCount(skill.getItemConsumeId()) < skill.getItemConsume())
- {
- return showText(st, "对不起", "您没有足够的道具:<br>您需要: <font color=LEVEL>" + skill.getItemConsume() + " " + getItemNameHtml(st, skill.getItemConsumeId()) + "!", false, "0", "0");
- }
- }
- final boolean getSummonbuff = isPetBuff(st);
- if (!getSummonbuff)
- {
- if (eventParam3.equals("cubic"))
- {
- if (player.getCubics() != null)
- {
- }
- player.useMagic(SkillTable.getInstance().getInfo(Integer.parseInt(eventParam1), Integer.parseInt(eventParam2)), false, false);
- }
- else
- {
- SkillTable.getInstance().getInfo(Integer.parseInt(eventParam1), Integer.parseInt(eventParam2)).applyEffects(player, player);
- }
- }
- else
- {
- if (eventParam3.equals("cubic"))
- {
- if (player.getCubics() != null)
- {
- }
- player.useMagic(SkillTable.getInstance().getInfo(Integer.parseInt(eventParam1), Integer.parseInt(eventParam2)), false, false);
- }
- else
- {
- if (player.getSummon() != null)
- {
- SkillTable.getInstance().getInfo(Integer.parseInt(eventParam1), Integer.parseInt(eventParam2)).applyEffects(player, player);
- }
- else
- {
- return showText(st, "警告", "您不能使用宠物状态.<br>请先召唤出宠物再使用!", false, "Return", "main");
- }
- }
- }
- st.takeItems(CONSUMABLE_ID, cost);
- if (TIME_OUT)
- {
- addTimeout(st, 3, TIME_OUT_TIME / 10, 600);
- }
- }
- return SMART_WINDOW ? null : buildHtml(eventParam3);
- }
- case "castBuffSet":
- if ((int) (System.currentTimeMillis() / 1000) > st.getInt("blockUntilTime"))
- {
- if (!FREE_BUFFS)
- {
- if (st.getQuestItemsCount(CONSUMABLE_ID) < BUFF_SET_PRICE)
- {
- return showText(st, "对不起", "您没有足够道具:<br>您需要: <font color=LEVEL>" + BUFF_SET_PRICE + " " + getItemNameHtml(st, CONSUMABLE_ID) + "!", false, "0", "0");
- }
- }
- List<int[]> buff_sets = new ArrayList<>();
- final int player_class;
- if (player.isMageClass())
- {
- player_class = 1;
- }
- else
- {
- player_class = 0;
- }
- final boolean getSummonbuff = isPetBuff(st);
- if (!getSummonbuff)
- {
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement getSimilarNameCount = con.prepareStatement("SELECT buffId,buffLevel FROM npcbuffer_buff_list WHERE forClass IN (?,?) ORDER BY id ASC");
- getSimilarNameCount.setInt(1, player_class);
- getSimilarNameCount.setString(2, "2");
- ResultSet rss = getSimilarNameCount.executeQuery();
- while (rss.next())
- {
- int id = rss.getInt("buffId");
- int lvl = rss.getInt("buffLevel");
- buff_sets.add(new int[]
- {
- id,
- lvl
- });
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- for (int[] i : buff_sets)
- {
- SkillTable.getInstance().getInfo(i[0], i[1]).applyEffects(player, player);
- }
- }
- else
- {
- if (player.getSummon() != null)
- {
- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
- {
- PreparedStatement getSimilarNameCount = con.prepareStatement("SELECT buffId,buffLevel FROM npcbuffer_buff_list WHERE forClass IN (?,?) ORDER BY id ASC");
- getSimilarNameCount.setString(1, "0");
- getSimilarNameCount.setString(2, "2");
- ResultSet rss = getSimilarNameCount.executeQuery();
- while (rss.next())
- {
- int id = rss.getInt("buffId");
- int lvl = rss.getInt("buffLevel");
- buff_sets.add(new int[]
- {
- id,
- lvl
- });
- }
- }
- catch (SQLException e)
- {
- print(e);
- }
- for (int[] i : buff_sets)
- {
- SkillTable.getInstance().getInfo(i[0], i[1]).applyEffects(player.getSummon(), player.getSummon());
- }
- }
- else
- {
- return showText(st, "警告", "您不能使用宠物状态<br>请先召唤出宠物再使用!", false, "Return", "main");
- }
- }
- st.takeItems(CONSUMABLE_ID, BUFF_SET_PRICE);
- if (TIME_OUT)
- {
- addTimeout(st, 3, TIME_OUT_TIME, 600);
- }
- }
- return SMART_WINDOW ? null : rebuildMainHtml(st);
-
- }
- return rebuildMainHtml(st);
- }
-
- @Override
- public String onFirstTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState st = player.getQuestState(QUEST_LOADING_INFO);
- if (st == null)
- {
- st = newQuestState(player);
- }
- if (player.isGM())
- {
- if (SCRIPT_RELOAD)
- {
- return reloadPanel(st);
- }
- return rebuildMainHtml(st);
- }
- else if ((int) (System.currentTimeMillis() / 1000) > st.getInt("blockUntilTime"))
- {
- {
- if (OlympiadManager.getInstance().isRegistered(player))
- {
- return showText(st, "警告", "您不能加状态,因为您在 <font color=FF0000>奥赛!</font><br>当您结束奥赛的时候,<br>再来找我加吧.", false, "Return", "main");
- }
- else if (TvTEvent.isPlayerParticipant(player.getObjectId()))
- {
- return showText(st, "警告", "您不能加状态,因为您在 <font color="FF0000">TvT活动!</font><br>当您结束TvT活动的时候,<br>再来找我加吧", false, "Return", "main");
- }
- else if (player.getLevel() < MIN_LEVEL)
- {
- return showText(st, "警告", "您等级太低了!<br>您的等级只要要在 <font color=LEVEL>" + MIN_LEVEL + "</font>,<br>才可以在我这里加状态!", false, "Return", "main");
- }
- else if (player.getPvpFlag() > 0)
- {
- return showText(st, "警告", "您不能加状态,因为您在 <font color=800080>延迟中!</font><br>稍后请重试!", false, "Return", "main");
- }
- else if (player.isInCombat())
- {
- return showText(st, "警告", "您不能加状态,因为您在战斗中!<br>停止攻击后重试!", false, "Return", "main");
- }
- else
- {
- return rebuildMainHtml(st);
- }
- }
- }
- else
- {
- return showText(st, "对不起", "您需要稍等一会!<br>如果您想使用我的状态!", false, "Return", "main");
- }
- }
-
- @Override
- public boolean showResult(L2PcInstance player, String res)
- {
- if (SMART_WINDOW)
- {
- if ((player != null) && (res != null) && res.startsWith("<html>"))
- {
- NpcHtmlMessage npcReply = new NpcHtmlMessage(5, 1); /* ! */
- npcReply.setHtml(res);
- player.sendPacket(npcReply);
- player.sendPacket(ActionFailed.STATIC_PACKET);
- return false;
- }
- }
- return super.showResult(player, res);
- }
-
- private String getSkillIconHtml(int id, int level)
- {
- String iconNumber = getSkillIconNumber(id, level);
- return "<button action="bypass -h Quest " + QUEST_LOADING_INFO + " description " + id + " " + level + " x" width=32 height=32 back="Icon.skill" + iconNumber + "" fore="Icon.skill" + iconNumber + "">";
- }
-
- private String getSkillIconNumber(int id, int level)
- {
- String formato;
- if (id == 4)
- {
- formato = "0004";
- }
- else if ((id > 9) && (id < 100))
- {
- formato = "00" + id;
- }
- else if ((id > 99) && (id < 1000))
- {
- formato = "0" + id;
- }
- else if (id == 1517)
- {
- formato = "1536";
- }
- else if (id == 1518)
- {
- formato = "1537";
- }
- else if (id == 1547)
- {
- formato = "0065";
- }
- else if (id == 2076)
- {
- formato = "0195";
- }
- else if ((id > 4550) && (id < 4555))
- {
- formato = "5739";
- }
- else if ((id > 4698) && (id < 4701))
- {
- formato = "1331";
- }
- else if ((id > 4701) && (id < 4704))
- {
- formato = "1332";
- }
- else if (id == 6049)
- {
- formato = "0094";
- }
- else
- {
- formato = String.valueOf(id);
- }
- return formato;
- }
-
- static public void main(String[] args)
- {
- new NpcBuffer(-1, QUEST_LOADING_INFO, "custom");
- System.out.println("INFO Custom Buffer Load Success");
- }
- }
复制代码
|
|