JohnyDap 37 Опубликовано 23 марта, 2020 всем привет.не могу решить проблема покупаю книги любое количество нажимаю на скил который нужно заточить жму точить забирает все книги. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
serfan1 112 Опубликовано 23 марта, 2020 В ядре чинить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Euroset 120 Опубликовано 23 марта, 2020 1000 рублей Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JohnyDap 37 Опубликовано 23 марта, 2020 В 23.03.2020 в 18:57, serfan1 сказал: В ядре чинить мб знаешь как? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
serfan1 112 Опубликовано 23 марта, 2020 В 23.03.2020 в 19:12, Asez сказал: мб знаешь как? знаю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JohnyDap 37 Опубликовано 23 марта, 2020 В 23.03.2020 в 19:15, serfan1 сказал: знаю поможешь? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
serfan1 112 Опубликовано 23 марта, 2020 В 23.03.2020 в 19:17, Asez сказал: поможешь? тебе код дать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JohnyDap 37 Опубликовано 23 марта, 2020 В 23.03.2020 в 19:18, serfan1 сказал: тебе код дать? да) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JohnyDap 37 Опубликовано 23 марта, 2020 В 23.03.2020 в 19:18, serfan1 сказал: тебе код дать? book.class да? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
serfan1 112 Опубликовано 23 марта, 2020 В 23.03.2020 в 19:54, Asez сказал: book.class да? код (Показать контент) package net.sf.l2j.gameserver.network.clientpackets; import javolution.util.FastTable; import net.sf.l2j.Config; import net.sf.l2j.gameserver.cache.Static; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.datatables.SkillTreeTable; import net.sf.l2j.gameserver.model.L2EnchantSkillLearn; import net.sf.l2j.gameserver.model.L2ShortCut; import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.actor.instance.L2FolkInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.stat.PcStat; import net.sf.l2j.gameserver.model.base.ClassId; import net.sf.l2j.gameserver.network.L2GameClient; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.ShortCutRegister; import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import net.sf.l2j.util.Rnd; public final class RequestExEnchantSkill extends L2GameClientPacket { public static boolean CONSUME_EACH_LVL = false; public static boolean RESET_LVL_ON_FAIL = true; private int _skillId; private int _skillLvl; protected void readImpl() { this._skillId = readD(); this._skillLvl = readD(); } protected void runImpl() { L2PcInstance player = ((L2GameClient)getClient()).getActiveChar(); if (player == null) { return; } L2FolkInstance trainer = player.getLastFolkNPC(); if (trainer == null) { return; } int npcid = trainer.getNpcId(); if (((trainer == null) || (!player.isInsideRadius(trainer, 150, false, false))) && (!player.isGM())) { return; } if (player.getSkillLevel(this._skillId) >= this._skillLvl) { return; } if (player.getClassId().getId() < 88) { return; } if (player.getLevel() < 76) { return; } L2Skill skill = SkillTable.getInstance().getInfo(this._skillId, this._skillLvl); int counts = 0; int _requiredSp = 10000000; int _requiredExp = 100000; byte _rate = 0; int _baseLvl = 1; L2EnchantSkillLearn[] skills = SkillTreeTable.getInstance().getAvailableEnchantSkills(player); L2EnchantSkillLearn[] arrayOfL2EnchantSkillLearn1; int j = (arrayOfL2EnchantSkillLearn1 = skills).length; for (int i = 0; i < j; i++) { L2EnchantSkillLearn s = arrayOfL2EnchantSkillLearn1; L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel()); if ((sk != null) && (sk == skill) && (sk.getCanLearn(player.getClassId())) && (sk.canTeachBy(npcid))) { counts++; _requiredSp = s.getSpCost(); _requiredExp = s.getExp(); _rate = s.getRate(player, (Config.PREMIUM_ENABLE) && (player.isPremium())); _baseLvl = s.getBaseLevel(); } } if ((counts == 0) && (!Config.ALT_GAME_SKILL_LEARN)) { player.sendPacket(Static.CANT_LEARN_SKILL); return; } if (player.getSp() >= _requiredSp) { if (player.getExp() >= _requiredExp) { if ((Config.ES_SP_BOOK_NEEDED) && ((CONSUME_EACH_LVL) || (this._skillLvl == 101) || (this._skillLvl == 141))) { int spbId = 6622; if (!player.destroyItemByItemId("Consume", spbId, 1, trainer, true)) { player.sendPacket(Static.YOU_DONT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_THAT_SKILL); } } } else { player.sendPacket(Static.YOU_DONT_HAVE_ENOUGH_EXP_TO_ENCHANT_THAT_SKILL); } } else { player.sendPacket(Static.YOU_DONT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL); return; } if (Rnd.get(100) <= _rate) { player.addSkill(skill, true); player.getStat().removeExpAndSp(_requiredExp, _requiredSp); StatusUpdate su = new StatusUpdate(player.getObjectId()); su.addAttribute(13, player.getSp()); player.sendPacket(su); sendPacket(SystemMessage.id(SystemMessageId.EXP_DECREASED_BY_S1).addNumber(_requiredExp)); sendPacket(SystemMessage.id(SystemMessageId.SP_DECREASED_S1).addNumber(_requiredSp)); player.sendPacket(SystemMessage.id(SystemMessageId.YOU_HAVE_SUCCEEDED_IN_ENCHANTING_THE_SKILL_S1).addSkillName(this._skillId)); } else { if ((RESET_LVL_ON_FAIL) && (skill.getLevel() > 100)) { this._skillLvl = _baseLvl; player.addSkill(SkillTable.getInstance().getInfo(this._skillId, this._skillLvl), true); player.sendSkillList(); } player.sendPacket(SystemMessage.id(SystemMessageId.YOU_HAVE_FAILED_TO_ENCHANT_THE_SKILL_S1).addSkillName(this._skillId)); } trainer.showEnchantSkillList(player, player.getClassId()); FastTable<L2ShortCut> allShortCuts = new FastTable(); allShortCuts.addAll(player.getAllShortCuts()); int i = 0; for (int n = allShortCuts.size(); i < n; i++) { L2ShortCut sc = (L2ShortCut)allShortCuts.get(i); if (sc != null) { if ((sc.getId() == this._skillId) && (sc.getType() == 2)) { L2ShortCut newsc = new L2ShortCut(sc.getSlot(), sc.getPage(), sc.getType(), sc.getId(), this._skillLvl, 1); player.sendPacket(new ShortCutRegister(newsc)); player.registerShortCut(newsc); } } } allShortCuts.clear(); allShortCuts = null; } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
serfan1 112 Опубликовано 23 марта, 2020 Либо же убрать стак книг в бд и в etcitems (патч) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JohnyDap 37 Опубликовано 23 марта, 2020 В 23.03.2020 в 19:59, serfan1 сказал: Либо же убрать стак книг в бд и в etcitems (патч) эсли с бд убрать тогда будет не в 1 столбик да? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
serfan1 112 Опубликовано 23 марта, 2020 В 23.03.2020 в 20:14, Asez сказал: эсли с бд убрать тогда будет не в 1 столбик да? да 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты