jaison
Membro-
Total de itens
9 -
Registro em
-
Última visita
Sobre jaison
jaison's Achievements
Aprendiz de Novato (1/14)
0
Reputação
-
package custom.Delevel; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.cache.HtmCache; import com.l2jserver.gameserver.datatables.ExperienceTable; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.network.serverpackets.ActionFailed; import com.l2jserver.gameserver.network.serverpackets.CreatureSay; public class Delevel extends Quest { private static final int NPC = 36601; private static final int ADENA = 57; // item consumed for services private static final int COST1 = 5000; // cost per level, price=cost1*charlvl private static final int COST2 = 10000; // cost per vitality level, price=cost2*vitlvl private static final int COST3 = 20000; // cost for exp disable, price=cost3*charlvl private static final boolean DYNAMIC_PRICES = true; // if enabled, prices will be multiplied by player's level private static final int MINLVL = 20; // lowest level a player can delevel to and use other services (default: 20) private static final int KARMA = 0; // 0=don't allow karma, more=max value private static final int DELAY = 60; // delay in minutes between experience toggle private static final int ACCESSLEVEL = 20; // access level for experience toggle. Choose one that's not taken if the default one is private static final String LVL_TOO_LOW = "leveltoolow.htm"; private static final String READY = "ready.htm"; private int getDelevelPrice(final L2PcInstance player) { return DYNAMIC_PRICES ? COST1 * player.getLevel() : COST1; } private int getDevitalizePrice(final L2PcInstance player) { return DYNAMIC_PRICES ? COST2 * player.getVitalityLevel() : COST2; } private int getExpDisablePrice(final L2PcInstance player) { return DYNAMIC_PRICES ? COST3 * player.getVitalityLevel() : COST3; } private void setupAccessLevels() { try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("SELECT accessLevel FROM `access_levels`"); ResultSet rset = statement.executeQuery(); boolean accessIsSet = false; while (rset.next()) { if (rset.getInt("accessLevel") == ACCESSLEVEL) { accessIsSet = true; break; } } rset.close(); rset = null; if (!accessIsSet) { statement = con.prepareStatement("INSERT INTO access_levels VALUES (?,'Delevel Manager access',-1,-1,'',0,0,0,1,0,1,1,0)"); statement.setInt(1, ACCESSLEVEL); statement.execute(); } statement.close(); statement = null; } catch (final SQLException e) { _log.warning("Could not store Delevel Manager access level:" + e); } } public Delevel(final int questId, final String name, final String descr) { super(questId, name, descr); addStartNpc(NPC); addFirstTalkId(NPC); addTalkId(NPC); } @Override public String onSpawn(final L2Npc npc) { setupAccessLevels(); return null; } @Override public String onFirstTalk(final L2Npc npc, final L2PcInstance player) { if (player.getKarma() > KARMA) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "I don't offer my services to Karma players!")); player.sendPacket(ActionFailed.STATIC_PACKET); return null; } String htmltext = "welcome.htm"; if (player.getLevel() < MINLVL) { final QuestState qs = player.getQuestState(getName()); final String filename = ((qs != null) && (qs.get("experience") == "off") ? "emergency.htm" : LVL_TOO_LOW); htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + filename); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL)); } return htmltext; } @Override public String onAdvEvent(final String event, final L2Npc npc, final L2PcInstance player) { final QuestState st = player.getQuestState(getName()); String htmltext = null; final int VITALITY = player.getVitalityPoints(); if (event.equalsIgnoreCase("talk")) { if (player.getKarma() > KARMA) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "I don't offer my services to Karma players!")); } else if (player.getLevel() < MINLVL) { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + LVL_TOO_LOW); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL)); } else { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + READY); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL)); htmltext = htmltext.replace("%KARMA%", String.valueOf(KARMA)); htmltext = htmltext.replace("%LEVEL%", String.valueOf(player.getLevel())); htmltext = htmltext.replace("%PRICE1%", String.valueOf(getDelevelPrice(player))); htmltext = htmltext.replace("%VITLVL%", String.valueOf(player.getVitalityLevel())); htmltext = htmltext.replace("%PRICE2%", String.valueOf(getDevitalizePrice(player))); htmltext = htmltext.replace("%PRICE3%", String.valueOf(getExpDisablePrice(player))); htmltext = (st.get("experience") == null) || (st.get("experience") == "on") ? htmltext.replace("%TOGGLE%", "Disable") : htmltext.replace("%TOGGLE%", "Enable"); } } else if (event.equalsIgnoreCase("experience")) { if (player.isGM() || ((player.getAccessLevel().getLevel() > 0) && (player.getAccessLevel().getLevel() < ACCESSLEVEL))) { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/notforgm.htm"); } else if (player.getKarma() > KARMA) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "I don't offer my services to Karma players!")); } else if (player.getLevel() < MINLVL) { // The player has exp disabled and has managed to delevel himself by dying. // Since he is unable to gain exp, we enable it, // otherwise he will bug the admins/GMs, and we don't want that, do we? if (player.getAccessLevel().getLevel() == ACCESSLEVEL) { player.setAccessLevel(0); st.set("experience", "on"); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Be more careful next time, " + player.getName() + "!")); } else { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + LVL_TOO_LOW); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL)); } } else if (st.getQuestItemsCount(ADENA) < getExpDisablePrice(player)) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", You don't have enough money!")); } else if (st.get("experience") == null) { st.takeItems(ADENA, getExpDisablePrice(player)); player.setAccessLevel(ACCESSLEVEL); st.set("experience", "off"); st.set("timeleft", String.valueOf(System.currentTimeMillis() + (DELAY * 60000))); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Experience gain has been disabled!")); } else if (Long.parseLong(st.get("timeleft")) > System.currentTimeMillis()) { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/timeleft.htm"); htmltext = htmltext.replace("%DELAY%", String.valueOf(DELAY / 60) + " hour(s) and " + String.valueOf(DELAY % 60) + " minute(s)"); /*if (DELAY >= 60) { htmltext = htmltext.replace("%DELAY%", String.valueOf(DELAY / 60) + " hour(s) and " + String.valueOf(DELAY % 60) + " minute(s)"); } else { htmltext = htmltext.replace("%DELAY%", String.valueOf(DELAY) + " minute(s)"); } */ final long TIMELEFT = Long.parseLong(st.get("timeleft")); if ((TIMELEFT - System.currentTimeMillis()) > (DELAY * 60000 * 2)) // if more than 2 hours left { final int hours = (int) ((TIMELEFT - System.currentTimeMillis()) / 3600000); htmltext = htmltext.replace("%TIMELEFT%", String.valueOf(hours) + " hour(s) and " + String.valueOf(hours % 60) + " minute(s)"); } else { htmltext = htmltext.replace("%TIMELEFT%", String.valueOf((TIMELEFT - System.currentTimeMillis()) / 60000) + " minute(s)"); } } else { st.takeItems(ADENA, getExpDisablePrice(player)); player.setAccessLevel(0); st.set("experience", "on"); st.set("timeleft", String.valueOf(System.currentTimeMillis() + (DELAY * 60000))); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Experience gain has been enabled!")); } } else if (event.equalsIgnoreCase("level")) { if (player.getKarma() > KARMA) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "I don't offer my services to Karma players!")); } else if (player.getLevel() < MINLVL) { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + LVL_TOO_LOW); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL)); } else if (player.getLevel() == MINLVL) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", You can't delevel below level " + MINLVL + "!")); } else if (st.getQuestItemsCount(ADENA) < getDelevelPrice(player)) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", You don't have enough money!")); } else { st.takeItems(ADENA, getDelevelPrice(player)); player.setExp(player.getStat().getExpForLevel(player.getLevel())); // sets exp to 0%, if you don't like people abusing this by // deleveling at 99% exp, comment the previous line player.removeExpAndSp(player.getExp() - ExperienceTable.getInstance().getExpForLevel(player.getLevel() - 1), 0); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your level has been decreased!")); if (player.getLevel() >= MINLVL) { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + READY); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL)); htmltext = htmltext.replace("%KARMA%", String.valueOf(KARMA)); htmltext = htmltext.replace("%LEVEL%", String.valueOf(player.getLevel())); htmltext = htmltext.replace("%PRICE1%", String.valueOf(getDelevelPrice(player))); htmltext = htmltext.replace("%VITLVL%", String.valueOf(player.getVitalityLevel())); htmltext = htmltext.replace("%PRICE2%", String.valueOf(getDevitalizePrice(player))); htmltext = htmltext.replace("%PRICE3%", String.valueOf(getExpDisablePrice(player))); htmltext = (st.get("experience") == null) || (st.get("experience") == "on") ? htmltext.replace("%TOGGLE%", "Disable") : htmltext.replace("%TOGGLE%", "Enable"); } } } else if (event.equalsIgnoreCase("vitality")) { if (player.getKarma() > KARMA) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "I don't offer my services to Karma players!")); } else if (player.getLevel() <= MINLVL) { htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + LVL_TOO_LOW); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL + 1)); } else if (st.getQuestItemsCount(ADENA) < getDevitalizePrice(player)) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", You don't have enough money!")); } else { if (VITALITY < 240) { player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", Your Vitality can't be decreased anymore!")); } else if (VITALITY < 2000) { st.takeItems(ADENA, getDevitalizePrice(player)); player.setVitalityPoints(0, true); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!")); } else if (VITALITY < 13000) { st.takeItems(ADENA, getDevitalizePrice(player)); player.setVitalityPoints(241, true); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!")); } else if (VITALITY < 17000) { st.takeItems(ADENA, getDevitalizePrice(player)); player.setVitalityPoints(2001, true); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!")); } else if (VITALITY > 17000) { st.takeItems(ADENA, getDevitalizePrice(player)); player.setVitalityPoints(13001, true); player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!")); } htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/custom/Delevel/" + READY); htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL)); htmltext = htmltext.replace("%KARMA%", String.valueOf(KARMA)); htmltext = htmltext.replace("%LEVEL%", String.valueOf(player.getLevel())); htmltext = htmltext.replace("%PRICE1%", String.valueOf(getDelevelPrice(player))); htmltext = htmltext.replace("%VITLVL%", String.valueOf(player.getVitalityLevel())); htmltext = htmltext.replace("%PRICE2%", String.valueOf(getDevitalizePrice(player))); htmltext = htmltext.replace("%PRICE3%", String.valueOf(getExpDisablePrice(player))); htmltext = (st.get("experience") == null) || (st.get("experience") == "on") ? htmltext.replace("%TOGGLE%", "Disable") : htmltext.replace("%TOGGLE%", "Enable"); } } return htmltext; } public static void main(final String[] args) { new Delevel(-1, "Delevel", "custom"); System.out.println("CUSTOM: Delevel Manager loaded"); } }
-
Meu npc delevel , deleva mais some as skills , como desativar isso
-
FATAL: Failed to start the Game Server Listener. Reason: Cannot assign requested address: JVM_Bind java.net.BindException: Cannot assign requested address: JVM_Bind at java.net.DualStackPlainSocketImpl.bind0(Native Method) at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source) at java.net.AbstractPlainSocketImpl.bind(Unknown Source) at java.net.PlainSocketImpl.bind(Unknown Source) at java.net.ServerSocket.bind(Unknown Source) at java.net.ServerSocket.<init>(Unknown Source) at com.l2js.loginserver.FloodProtectedListener.<init>(FloodProtectedList ener.java:52) at com.l2js.loginserver.GameServerListener.<init>(GameServerListener.jav a:37) at com.l2js.loginserver.L2LoginServer.<init>(L2LoginServer.java:176) at com.l2js.loginserver.L2LoginServer.main(L2LoginServer.java:60) Ja liberei portas !! no 127.0.0.1 ele loga normal me ajudem por favor preciso testar caseiro pra depois comprar dedicado e nao jogar grana fora!!
-
FATAL: Failed to start the Game Server Listener. Reason: Cannot assign requested address: JVM_Bind java.net.BindException: Cannot assign requested address: JVM_Bind at java.net.DualStackPlainSocketImpl.bind0(Native Method) at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source) at java.net.AbstractPlainSocketImpl.bind(Unknown Source) at java.net.PlainSocketImpl.bind(Unknown Source) at java.net.ServerSocket.bind(Unknown Source) at java.net.ServerSocket.<init>(Unknown Source) at com.l2js.loginserver.FloodProtectedListener.<init>(FloodProtectedList ener.java:52) at com.l2js.loginserver.GameServerListener.<init>(GameServerListener.jav a:37) at com.l2js.loginserver.L2LoginServer.<init>(L2LoginServer.java:176) at com.l2js.loginserver.L2LoginServer.main(L2LoginServer.java:60) Ja liberei portas!! no 127.0.0.1 ele loga normal, acho q entao nao e o java!! alguem puder me ajudar eu agradeco muito , quero testa caseiro antes de compra dedicado!!
-
o gato q tem no meu servidor ta trocando medalhas e nao adicionando classes!! me ajudem plis preciso de um gato q add classes
-
Aq no meu server ta como gato de medalhas entende!!
-
Alguem pode me arrumar um NPC de classes aquele gato , procurei aq e nao achei , se alguem poder me conseguir agradeco !! e para epilogue!!
-
Atualizações Recentes de Status
-
Por favor, compartilhe a fonte da versão revisada do Orion. Obrigado.· 0 respostas
please...
-
The Event - Team vs Team· 0 respostas
The Event - Team vs Team
The event cannot be terminated when participating in the event.
The event does not end.
The event starts and does not end after teleporting.
Please tell me how. Please.
Even if the event is held for 2 minutes, it will not end.
I don't know how to proceed...