KaRmiN 1265 Опубликовано 10 июня, 2015 Давно на форуме видел тему из скриптом для покупки lvl в донат шопе Помогите найти((( 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0qD0ku 10 Опубликовано 10 июня, 2015 (изменено) public final class L2DonateLvlInstance extends L2FolkInstance { public L2DonateLvlInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onAction(L2PcInstance player) { if (!canTarget(player)) { return; } if (getObjectId() != player.getTargetId()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), 0)); player.sendPacket(new ValidateLocation(this)); } else { if (!canInteract(player)) { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); return; } NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); TextBuilder sb = new TextBuilder(); sb.append("<html><body>"); sb.append("<a action=\"bypass -h npc_" + getObjectId() + "_levelup 1\">Поднять уровнь</a>"); sb.append("</body></html>"); html.setHtml(sb.toString()); player.sendPacket(html); } player.sendPacket(new ActionFailed()); } @Override public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("levelup")) { String[] com = command.split(" "); byte i = Byte.parseByte(com[1]); if(player.getInventory().getItemByItemId(4037).getCount() > 10) { player.getInventory().destroyItemByItemId("Donatelevel", 4037, 10, player, this); player.getStat().addLevel(i); } } else { super.onBypassFeedback(player, command); } } } Начало положил) html с полем ввода, сообщения и т.д. дело 5 минут) После того как пост увидел, решил хоть чем-то помочь и написал на скорую руку) Изменено 10 июня, 2015 пользователем 0qD0ku 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 11 июня, 2015 Давно на форуме видел тему из скриптом для покупки lvl в донат шопе Помогите найти((( 1) http://forummaxi.ru/topic/60636-increaselevel/ 2) http://forummaxi.ru/topic/60646-buylevel/ а сам метод повышения уровня придется доделать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0qD0ku 10 Опубликовано 11 июня, 2015 1) http://forummaxi.ru/topic/60636-increaselevel/ 2) http://forummaxi.ru/topic/60646-buylevel/ а сам метод повышения уровня придется доделать. Чем Вам мой метод не подошел? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KaRmiN 1265 Опубликовано 11 июня, 2015 Чем Вам мой метод не подошел? Знал бы я... что с ним делать( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0qD0ku 10 Опубликовано 11 июня, 2015 Донат шоп имеется? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 11 июня, 2015 Чем Вам мой метод не подошел? player.getStat().addLevel(i); чтото похожее в тех 2 скриптах . для повышения уровня нужно считать exp и производить изменения . но все зависит от сборки. данный метод player.getStat().addLevel(i); может дать только визуальное повышения уровня и если чар получает +exp лвл слетает, вот так вот. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0qD0ku 10 Опубликовано 11 июня, 2015 player.getStat().addLevel(i); чтото похожее в тех 2 скриптах . для повышения уровня нужно считать exp и производить изменения . но все зависит от сборки. данный метод player.getStat().addLevel(i); может дать только визуальное повышения уровня и если чар получает +exp лвл слетает, вот так вот. Ты точно проверил ?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 11 июня, 2015 (изменено) в пв так можно сделать String LEVEL = "20"; byte lvl = Byte.parseByte(LEVEL); if ((lvl >= 1) && (lvl <= 81)) { long pXp = player.getExp(); long tXp = net.sf.l2j.gameserver.model.base.Experience.LEVEL[lvl]; if (pXp > tXp) { player.removeExpAndSp(pXp - tXp, 0); } else if (pXp < tXp) { player.addExpAndSp(tXp - pXp, 0); } } по сути если +1 лвл, тогда плеер.гетлвл+1 Изменено 11 июня, 2015 пользователем Demoncool Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0qD0ku 10 Опубликовано 11 июня, 2015 в пв так можно сделать String LEVEL = "20"; byte lvl = Byte.parseByte(LEVEL); if ((lvl >= 1) && (lvl <= 81)) { long pXp = player.getExp(); long tXp = net.sf.l2j.gameserver.model.base.Experience.LEVEL[lvl]; if (pXp > tXp) { player.removeExpAndSp(pXp - tXp, 0); } else if (pXp < tXp) { player.addExpAndSp(tXp - pXp, 0); } } по сути если +1 лвл, тогда плеер.гетлвл+1 Ребятки вы вручную выполняете работу метода addlevel) public boolean addLevel(byte value) { if ((getLevel() + value) > (Experience.MAX_LEVEL - 1)) { if (getLevel() < (Experience.MAX_LEVEL - 1)) { value = (byte) (Experience.MAX_LEVEL - 1 - getLevel()); } else { return false; } } boolean levelIncreased = ((getLevel() + value) > getLevel()); value += getLevel(); setLevel(value); // Sync up exp with current level if ((getExp() >= getExpForLevel(getLevel() + 1)) || (getExpForLevel(getLevel()) > getExp())) { setExp(getExpForLevel(getLevel())); } if (!levelIncreased) { return false; } getActiveChar().getStatus().setCurrentHp(getActiveChar().getStat().getMaxHp()); getActiveChar().getStatus().setCurrentMp(getActiveChar().getStat().getMaxMp()); return true; } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты