danier 0 Опубликовано 31 июля, 2013 Как сделать автомотическую выдачу проффесий в GOD -Tauti, не через квесты. Может есть какая то команда? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KillerProMW 84 Опубликовано 31 июля, 2013 реализовуй сервис или же функцию в конфиге прописывай Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
danier 0 Опубликовано 31 июля, 2013 реализовуй сервис или же функцию в конфиге прописывай А какая эта функция в конфиге? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DXVSI 36 Опубликовано 31 июля, 2013 Квесты проходи не ленись! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
danier 0 Опубликовано 31 июля, 2013 Квесты проходи не ленись! Да нет, хотелось бы просто пвп поиграть Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
exspertxd 11 Опубликовано 31 июля, 2013 Почти в любой сборке выше хф есть конфиг: AWAKING_FREE = otherSettings.getProperty("AwakingFree", false); Ищите. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Russian 49 Опубликовано 31 июля, 2013 Как сделать автомотическую выдачу проффесий в GOD -Tauti, не через квесты. Может есть какая то команда? ТС напишите в лс посмотрим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Russian 49 Опубликовано 31 июля, 2013 эхх ладно тут: находим это: public static void loadOtherConfig() { ExProperties otherSettings = load(OTHER_CONFIG_FILE); ниже добавляем AWAKING_FREE = otherSettings.getProperty("AwakingFree", false); и добавляем выше этого метода public static void loadOtherConfig() public static boolean AWAKING_FREE; дальше идём в класс AwakingManager.java: Обычно он лежит тут gameserver\src\main\java\org\mmocore\gameserver\instancemanager Находим метод public void load() { и добавляем if (Config.AWAKING_FREE) CharListenerList.addGlobal(this); Идём сюда gameserver\src\main\java\org\mmocore\gameserver\network\clientpackets открываем RequestChangeToAwakenedClass и заменяем package org.mmocore.gameserver.network.clientpackets; import org.mmocore.commons.threading.RunnableImpl; import org.mmocore.gameserver.Config; import org.mmocore.gameserver.ThreadPoolManager; import org.mmocore.gameserver.instancemanager.AwakingManager; import org.mmocore.gameserver.model.Player; import org.mmocore.gameserver.model.base.ProfessionRewards; import org.mmocore.gameserver.model.base.ClassId; import org.mmocore.gameserver.network.serverpackets.ExShowUsmVideo; import org.mmocore.gameserver.utils.ItemFunctions; public class RequestChangeToAwakenedClass extends L2GameClientPacket { private static final int SCROLL_OF_AFTERLIFE = 17600; //private static final int STONE_OF_DESTINY = 17722; private boolean change; private int MY_CLASS_ID; private int MY_OLD_CLASS_ID; @Override protected void readImpl() throws Exception { change = readD() == 1; } @Override protected void runImpl() throws Exception { if(!Config.AWAKING_FREE) { final Player player = getClient().getActiveChar(); if(player == null) return; if(!change) return; ClassId classId = player.getClassId(); for (ClassId cid : ClassId.VALUES) { if(cid.childOf(classId) && cid.getClassLevel().ordinal() == classId.getClassLevel().ordinal() + 1) { if(player.getInventory().getCountOf(SCROLL_OF_AFTERLIFE) > 0) { ItemFunctions.removeItem(player, SCROLL_OF_AFTERLIFE, 1, true); if(player.getVar("AwakenedID") != null) { MY_CLASS_ID = player.getVarInt("AwakenedID"); ProfessionRewards.checkedAndGiveChest(player, MY_CLASS_ID); } if(player.getVar("AwakenedOldIDClass") != null) { MY_OLD_CLASS_ID = player.getVarInt("AwakenedOldIDClass"); ProfessionRewards.checkedAndGiveWeapon(player, MY_OLD_CLASS_ID); } AwakingManager.getInstance().SetAwakingId(player); ThreadPoolManager.getInstance().schedule(new RunnableImpl() { @Override public void runImpl() throws Exception { player.sendPacket(new ExShowUsmVideo(ExShowUsmVideo.Q010)); } }, 15000); } /* * else { if (player.getInventory().getCountOf(STONE_OF_DESTINY) > 0 && player.getInventory().getCountOf(SCROLL_OF_AFTERLIFE) > 0) * { player.getInventory().removeItemByItemId(SCROLL_OF_AFTERLIFE , 1); AwakingManager.getInstance().SetAwakingId2(player); * ThreadPoolManager.getInstance().schedule(new RunnableImpl() { * * @Override public void runImpl() throws Exception { player.sendPacket(new ExShowUsmVideo(ExShowUsmVideo.Q010)); } }, 15000); } } */// TODO return; } } } else { Player player = getClient().getActiveChar(); if(player == null) return; if(player.getLevel() < 85) return; if(player.getClassId().level() < 3) return; if(player.isAwaking()) return; AwakingManager.getInstance().SetAwakingId(player); } } } тут же открываем RequestCallToChangeClass package org.mmocore.gameserver.network.clientpackets; import org.mmocore.gameserver.Config; import org.mmocore.gameserver.instancemanager.AwakingManager; import org.mmocore.gameserver.model.Player; import org.mmocore.gameserver.model.base.ClassId; import org.mmocore.gameserver.network.serverpackets.ExCallToChangeClass; import org.mmocore.gameserver.network.serverpackets.ExShowScreenMessage; import org.mmocore.gameserver.network.serverpackets.components.NpcString; public class RequestCallToChangeClass extends L2GameClientPacket { @Override protected void readImpl() throws Exception { } @Override protected void runImpl() throws Exception { if (!Config.AWAKING_FREE) { Player player = getClient().getActiveChar(); if (player == null) return; if (player.getVarB("GermunkusUSM")) return; int _cId = 0; for (ClassId Cl : ClassId.VALUES) { if (Cl.level() == 5 && player.getClassId().childOf(Cl)) { _cId = Cl.getId(); break; } } if (player.isDead()) { sendPacket(new ExShowScreenMessage(NpcString.YOU_CANNOT_TELEPORT_WHILE_YOU_ARE_DEAD, 10000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, false, ExShowScreenMessage.STRING_TYPE, -1, false), new ExCallToChangeClass(_cId, false)); return; } if(player.isInParty()) { sendPacket(new ExShowScreenMessage(NpcString.YOU_CANNOT_TELEPORT_IN_PARTY_STATUS, 10000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, false, ExShowScreenMessage.STRING_TYPE, -1, false), new ExCallToChangeClass(_cId, false)); return; } //player.processQuestEvent("_10338_SeizeYourDestiny", "MemoryOfDisaster", null); AwakingManager.getInstance().onStartQuestAccept(player); } else { Player player = getClient().getActiveChar(); if (player == null) return; if (player.getLevel() < 85) return; if (player.getClassId().level() < 3) return; // TODO: РљРѕРіРґР° будет готов квест - удалить это нах AwakingManager.getInstance().SendReqToAwaking(player); } } } P.S было бы хорошо указать сборочку и возможно оно у вас есть Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WesteroS 132 Опубликовано 31 июля, 2013 (изменено) реализовуй сервис или же функцию в конфиге прописывай что это за совет? что за ересь? про прописанную функцию в конфиге можно через чек кондишн(крон/шедулед ежеминутный) if lvl = 85 & classId=3 set classId=4 else return Изменено 31 июля, 2013 пользователем WesteroS Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
danier 0 Опубликовано 31 июля, 2013 Лааадно, щас попробуемс Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WesteroS 132 Опубликовано 1 августа, 2013 (изменено) Но наверное правильнее будет через класс, отвечающий за повышение уровня написать if (levelGetted() = 85 & classId = 3) set classId =4 что-то подобное, это я тривиально написал, нужно конечно проверку на совпадение 3 и 4 профы написать, что-бы не выдавал рандом профу, а только ту, что твоя Изменено 1 августа, 2013 пользователем WesteroS Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WesteroS 132 Опубликовано 1 августа, 2013 а руссиану - я только в 1 сборке видел авйкенинг менеджер, это новелл, не факт что у него он есть Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Russian 49 Опубликовано 1 августа, 2013 а руссиану - я только в 1 сборке видел авйкенинг менеджер, это новелл, не факт что у него он есть я же попросил уточнить и разве в одной? Ребелион-тим шара таути там он есть, novell, l2j-europa он практически везде есть Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WesteroS 132 Опубликовано 1 августа, 2013 видимо я мало сборок видел. ну наверное потому что все основой ребу взяли Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты