Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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 net.sf.l2j.gameserver.scripting.scripts.custom;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import net.sf.l2j.commons.lang.StringUtil;
- import net.sf.l2j.L2DatabaseFactory;
- import net.sf.l2j.gameserver.datatables.CharNameTable;
- import net.sf.l2j.gameserver.datatables.ClanTable;
- import net.sf.l2j.gameserver.model.actor.L2Npc;
- import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
- import net.sf.l2j.gameserver.model.base.Sex;
- import net.sf.l2j.gameserver.model.olympiad.OlympiadManager;
- import net.sf.l2j.gameserver.network.SystemMessageId;
- import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
- import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
- import net.sf.l2j.gameserver.scripting.Quest;
- import net.sf.l2j.gameserver.scripting.QuestState;
- public class Services extends Quest
- {
- private static final int NPC_ID = 50008;
- // Noblesse Status
- private static final int NOBL_ID = 57;
- private static final int NOBL_AMOUNT = 1;
- // PK Reduce
- private static final int PK_ID = 57;
- private static final int PK_AMOUNT = 1;
- // Character Name
- private static final int NAME_ID = 57;
- private static final int NAME_AMOUNT = 1;
- // Clan Name
- private static final int CLAN_NAME_ID = 57;
- private static final int CLAN_NAME_AMOUNT = 1;
- // Clan Level
- private static final int CLAN_LVL_ID = 57;
- private static final int CLAN_LVL_AMOUNT = 1;
- // Clan Reputation Points
- private static final int CLAN_REP_ID = 57;
- private static final int CLAN_REP_AMOUNT = 1;
- // Gender
- private static final int GENDER_ID = 57;
- private static final int GENDER_AMOUNT = 1;
- public Services()
- {
- super(-1, "custom");
- addStartNpc(NPC_ID);
- addTalkId(NPC_ID);
- addFirstTalkId(NPC_ID);
- }
- @Override
- public String onFirstTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState st = player.getQuestState(getName());
- if (st == null)
- st = newQuestState(player);
- return OlympiadManager.getInstance().isRegistered(player) ? "Services-Blocked.htm" : "Services.htm";
- }
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmlText = event;
- QuestState st = player.getQuestState(getName());
- if (event.equals("setNoble"))
- {
- if (!player.isNoble())
- {
- if (st.getQuestItemsCount(NOBL_ID) >= NOBL_AMOUNT)
- {
- st.takeItems(NOBL_ID, NOBL_AMOUNT);
- player.setNoble(true, true);
- player.broadcastPacket(new MagicSkillUse(player, player, 5103, 1, 1, 0));
- htmlText = "NoblesseServices-Success.htm";
- }
- else
- htmlText = "NoblesseServices-NoItems.htm";
- }
- else
- htmlText = "NoblesseServices-AlredyNoble.htm";
- }
- else if (event.equals("levelUpClan"))
- {
- if (player.isClanLeader())
- {
- if (player.getClan().getLevel() < 5)
- {
- player.getClan().changeLevel(5);
- player.getClan().broadcastClanStatus();
- player.broadcastPacket(new MagicSkillUse(player, player, 5103, 1, 0, 0));
- htmlText = "ClanLevelUp.htm";
- }
- else if (player.getClan().getLevel() < 8)
- {
- if (st.getQuestItemsCount(CLAN_LVL_ID) >= CLAN_LVL_AMOUNT)
- {
- st.takeItems(CLAN_LVL_ID, CLAN_LVL_AMOUNT);
- player.getClan().changeLevel(player.getClan().getLevel() + 1);
- player.getClan().broadcastClanStatus();
- player.broadcastPacket(new MagicSkillUse(player, player, 5103, 1, 0, 0));
- htmlText = "ClanLevelUp.htm";
- }
- else
- htmlText = "ClanLevelUp-NoItems.htm";
- }
- else
- htmlText = "ClanLevelUp-MaxLevel.htm";
- }
- else
- htmlText = "ClanLevelUp-NoLeader.htm";
- }
- else if (event.equals("changeGender"))
- {
- if (st.getQuestItemsCount(GENDER_ID) >= GENDER_AMOUNT)
- {
- st.takeItems(GENDER_ID, GENDER_AMOUNT);
- player.getAppearance().setSex(player.getAppearance().getSex() == Sex.MALE ? Sex.FEMALE : Sex.MALE);
- player.sendMessage("Your gender has been changed.");
- player.broadcastUserInfo();
- player.decayMe();
- player.spawnMe();
- player.broadcastPacket(new MagicSkillUse(player, player, 5103, 1, 1, 0));
- htmlText = "ChangeGender-Success.htm";
- }
- else
- htmlText = "ChangeGender-NoItems.htm";
- }
- else if (event.startsWith("changeName"))
- {
- try
- {
- String newName = event.substring(11);
- if (!StringUtil.isValidPlayerName(newName))
- {
- player.sendPacket(SystemMessageId.NAMING_CHARNAME_UP_TO_16CHARS);
- return null;
- }
- else if (CharNameTable.getInstance().getPlayerObjectId(newName) > 0)
- {
- player.sendPacket(SystemMessageId.NAMING_NAME_ALREADY_EXISTS);
- return null;
- }
- if (st.getQuestItemsCount(NAME_ID) >= NAME_AMOUNT)
- {
- st.takeItems(NAME_ID, NAME_AMOUNT);
- player.setName(newName);
- CharNameTable.getInstance().updatePlayerData(player, false);
- player.getClan().broadcastClanStatus();
- player.broadcastUserInfo();
- player.store();
- htmlText = "ChangeName-Success.htm";
- }
- else
- htmlText = "ChangeName-NoItems.htm";
- }
- catch (Exception e)
- {
- player.sendPacket(SystemMessageId.NAMING_CHARNAME_UP_TO_16CHARS);
- }
- }
- else if (event.startsWith("reducePks"))
- {
- try
- {
- final int amount = Integer.parseInt(event.substring(10));
- if (amount <= 0 || amount > player.getPkKills())
- {
- player.sendMessage("Incorrect value. Please try again.");
- return null;
- }
- if (st.getQuestItemsCount(PK_ID) >= PK_AMOUNT * amount)
- {
- st.takeItems(PK_ID, PK_AMOUNT * amount);
- player.setPkKills(player.getPkKills() - amount);
- player.sendMessage("You have successfuly cleaned " + amount + " PKs.");
- player.broadcastUserInfo();
- htmlText = "PkServices-Success.htm";
- }
- else
- htmlText = "PkServices-NoItems.htm";
- }
- catch (Exception e)
- {
- player.sendMessage("Incorrect value. Please try again.");
- }
- }
- else if (event.startsWith("changeClanName"))
- {
- if (player.isClanLeader())
- {
- try
- {
- String clanName = event.substring(15);
- if (st.getQuestItemsCount(CLAN_NAME_ID) >= CLAN_NAME_AMOUNT)
- {
- if (!StringUtil.isAlphaNumeric(clanName))
- {
- player.sendPacket(SystemMessageId.CLAN_NAME_INVALID);
- return null;
- }
- else if (clanName.length() < 2 || clanName.length() > 16)
- {
- player.sendPacket(SystemMessageId.CLAN_NAME_LENGTH_INCORRECT);
- return null;
- }
- else if (ClanTable.getInstance().getClanByName(clanName) != null)
- {
- player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_ALREADY_EXISTS).addString(clanName));
- return null;
- }
- st.takeItems(CLAN_NAME_ID, CLAN_NAME_AMOUNT);
- player.getClan().setName(clanName);
- try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_name=? WHERE clan_id=?"))
- {
- statement.setString(1, clanName);
- statement.setInt(2, player.getClan().getClanId());
- statement.execute();
- }
- catch (Exception e)
- {
- _log.info("Error updating clan name for player " + player.getName() + ". Error: " + e);
- }
- player.getClan().broadcastClanStatus();
- htmlText = "ChangeClanName-Success.htm";
- }
- else
- htmlText = "ChangeClanName-NoItems.htm";
- }
- catch (Exception e)
- {
- player.sendPacket(SystemMessageId.CLAN_NAME_INVALID);
- }
- }
- else
- htmlText = "ChangeClanName-NoLeader.htm";
- }
- else if (event.startsWith("setReputationPoints"))
- {
- try
- {
- final int points = Integer.parseInt(event.substring(20));
- if (player.isClanLeader())
- {
- if (points <= 0)
- {
- player.sendMessage("Please, put a higher value.");
- htmlText = "ClanReputationPoints.htm";
- }
- if (st.getQuestItemsCount(CLAN_REP_ID) >= CLAN_REP_AMOUNT * points)
- {
- st.takeItems(CLAN_REP_ID, CLAN_REP_AMOUNT * points);
- player.getClan().addReputationScore(points);
- player.getClan().broadcastClanStatus();
- htmlText = "ClanReputationPoints-Success.htm";
- }
- else
- htmlText = "ClanReputationPoints-NoItems.htm";
- }
- else
- htmlText = "ClanReputationPoints-NoLeader.htm";
- }
- catch (Exception e)
- {
- player.sendMessage("Incorrect value. Please try again.");
- }
- }
- return htmlText;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement