InovatorUA 15 Опубликовано 20 марта, 2017 (изменено) Всем доброго времени суток. Хотим разобратся и настроить сервер с интересной задумкой. Много вопросов появилось в ходе работы, по этому решили создать тему что-бы не флудить на форуме. Думаю другим людям тоже будет интересно так как актуальной информации нет на форуме. Для тех кто говорит что куча таких тем, отвечу сразу открыл 4 темы по забросам в базу, и они не подходят под ХФ или же под сборку Гринда,по этому хотелось бы в одной теме собрать ответы для начинающих разработчиков. Далее все вопросы и разделы буду закреплять в шапке. Работа с базой ( полезные запросы ) 1. Как удалить всех мобов ниже 61 уровня (сборка GrindTeam) 2. Как удалить весь дроп кроме адена (сборка GrindTeam) 3. Как удалить всех нпц кроме гвардов (сборка GrindTeam) Изменено 20 марта, 2017 пользователем InovatorUA 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexZr 95 Опубликовано 20 марта, 2017 Всем доброго времени суток. Хотим разобратся и настроить сервер с интересной задумкой. Много вопросов появилось в ходе работы, по этому решили создать тему что-бы не флудить на форуме. Думаю другим людям тоже будет интересно так как актуальной информации нет на форуме. Для тех кто говорит что куча таких тем, отвечу сразу открыл 4 темы по забросам в базу, и они не подходят под ХФ или же под сборку Гринда,по этому хотелось бы в одной теме собрать ответы для начинающих разработчиков. Далее все вопросы и разделы буду закреплять в шапке. Работа с базой ( полезные запросы ) 1. Как удалить всех мобов ниже 61 уровня (сборка GrindTeam) 2. Как удалить весь дроб кроме адена (сборка GrindTeam) 3. Как удалить всех нпц кроме гвардов (сборка GrindTeam) если сборка Гринда та что я думаю(ХФ) то никак, этих данных нету в бд, все в хмл 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
InovatorUA 15 Опубликовано 20 марта, 2017 (изменено) если сборка Гринда та что я думаю(ХФ) то никак, этих данных нету в бд, все в хмл тоесть дроп и нпц все в хмл файлах ? и они не прописаны в сборке ? а как изменить их в файлах кучей Изменено 20 марта, 2017 пользователем InovatorUA Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Flylink 85 Опубликовано 20 марта, 2017 тоесть дроп и нпц все в хмл файлах ? и они не прописаны в сборке ? а как изменить их в файлах кучей Без знаний ни как, поэтому можешь завязывать сразу с начинаниями) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 20 марта, 2017 1) Удалять ручками 2) Прописывать конфиг (если их нету) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
InovatorUA 15 Опубликовано 20 марта, 2017 Без знаний ни как, поэтому можешь завязывать сразу с начинаниями) ну ведь я и создал на форуме тему что-бы получить консультацию ? или это форум для профгуру, которые только письками меряются кто круче ?. Вроде-бы форум для обсуждения помощи и нароботках Не хочу обидеть вас этим. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 20 марта, 2017 ну ведь я и создал на форуме тему что-бы получить консультацию ? или это форум для профгуру, которые только письками меряются кто круче ?. Вроде-бы форум для обсуждения помощи и нароботках Не хочу обидеть вас этим. элементарно берем и удаляем. ах да некоторые моменты за-пилены в ядре и после ваши манипуляций выльется масса исключений. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 package org.mmocore.gameserver; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.FileFilterUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import org.mmocore.gameserver.data.xml.holder.ItemHolder; import org.mmocore.gameserver.data.xml.parser.ItemParser; import org.mmocore.gameserver.data.xml.parser.OptionDataParser; import org.mmocore.gameserver.tables.SkillTable; import org.mmocore.gameserver.templates.item.ItemTemplate; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Collection; /** * @[member='Authority'] Mangol */ public final class RemoveNpcDrop { public static void main(String[] args) throws IOException, DocumentException { SkillTable.getInstance().load(); OptionDataParser.getInstance().load(); ItemParser.getInstance().load(); final Collection<File> files = FileUtils.listFiles(new File("./data/npc/"), FileFilterUtils.suffixFileFilter(".xml"), FileFilterUtils.directoryFileFilter()); for(File f : files) { if(!f.isHidden()) { final SAXReader reader = new SAXReader(); reader.setValidation(false); Document document = reader.read(f); for(final Element element : document.getRootElement().elements()) { final int npcId = Integer.parseInt(element.attributeValue("id")); element.elements().stream().filter(block -> block.getName().equalsIgnoreCase("rewardlist")).forEach(block -> { for(Element e : block.elements()) { if(e.getName().equalsIgnoreCase("group")) { for(Element r : e.elements()) { int itemId = Integer.parseInt(r.attributeValue("item_id")); if(itemId != 57) e.detach(); /* ItemTemplate template = ItemHolder.getInstance().getTemplate(itemId); if(template == null) continue; if(template.isHerb() || template.isCommonItem() || template.isRecipe() || template.getItemClass() == ItemTemplate.ItemClass.MATHERIALS || template.getItemClass() == ItemTemplate.ItemClass.SPELLBOOKS) r.detach();*/ if(e.elements().isEmpty()) e.detach(); } } else if(e.getName().equalsIgnoreCase("reward")) { int itemId = Integer.parseInt(e.attributeValue("item_id")); if(itemId != 57) e.detach(); /* ItemTemplate template = ItemHolder.getInstance().getTemplate(itemId); if(template == null) continue; if(template.isHerb() || template.isCommonItem() || template.isRecipe() || template.getItemClass() == ItemTemplate.ItemClass.MATHERIALS || template.getItemClass() == ItemTemplate.ItemClass.SPELLBOOKS) e.detach();*/ } } if(block.elements().isEmpty()) block.detach(); }); } OutputFormat of = new OutputFormat("\t", true); of.setOmitEncoding(false); of.setEncoding("UTF-8"); XMLWriter writer = null; try { String name = "/".split(document.getName())["/".split(document.getName()).length - 1]; writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("./data/new_npc/" + name), "UTF8"), of); writer.write(document); } finally { if(writer != null) { writer.flush(); writer.close(); } } } } } } Удаление дропа из xml, оставит только адену. Писалось под lostworld, ищите кто сможет это прикрутить и удалить, код я дал. П.С. Помогать прикручивать не буду. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CrazyCort 26 Опубликовано 20 марта, 2017 Нужны исходники,в некоторых сборках уже выведен конфиг. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 20 марта, 2017 Если лень ковыряться с файлами - можно задействовать OnSpawnListener (пример в папке со скриптами думаю найти можно) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 Если лень ковыряться с файлами - можно задействовать OnSpawnListener (пример в папке со скриптами думаю найти можно) Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Norman 78 Опубликовано 20 марта, 2017 Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден. правда ??? круто оставьте свой помой при себе Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 (изменено) правда ??? круто оставьте свой помой при себе http://prntscr.com/emee80 http://prntscr.com/emeez4 gtfo красавчик. А теперь докажи обратное. Изменено 20 марта, 2017 пользователем Mangol Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Norman 78 Опубликовано 20 марта, 2017 http://prntscr.com/emee80 http://prntscr.com/emeez4 gtfo красавчик. А теперь докажи обратное. http://prntscr.com/emee80 http://prntscr.com/emeez4 gtfo красавчик. А теперь докажи обратное. и кому нужно сие дерьмо ? с кусками скринов ваше дерьмо даже 300 человек не потянет уже показали себя хватит JTS мусорка - когда был Кил рой вы еще что то могли а теперь вы помойка ! которая просто шлак среди команд я бы в жизни не поставил бы вашу работу на сервер - докажи обратное укажи хоть 1 сервер с онлайном свыше 200 живых Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 20 марта, 2017 (изменено) Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден. Про броадкаст спауна и слова не было, а значит этот варик можно использовать как костыль (как я уже говорил, "Если ТСу лень ковыряться в файлах") Изменено 20 марта, 2017 пользователем CalypsoToolz Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 (изменено) и кому нужно сие дерьмо ? с кусками скринов ваше дерьмо даже 300 человек не потянет уже показали себя хватит JTS мусорка - когда был Кил рой вы еще что то могли а теперь вы помойка ! которая просто шлак среди команд я бы в жизни не поставил бы вашу работу на сервер - докажи обратное укажи хоть 1 сервер с онлайном свыше 200 живых Подарите сие судорю запятых пару тысяч. Как минимум я не обязан показывать на данный момент лайф сервера.Ой, и где показали ? По поводу Килроя, и команды, нам виднее что мы делаем, и сколько мы делаем. Изменено 20 марта, 2017 пользователем Mangol Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 Про броадкаст спауна и слова не было, а значит этот варик можно использовать как костыль (как я уже говорил, "Если ТСу лень ковыряться в файлах") Броад каст будет происходить, и сам спавн в мир тоже. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Norman 78 Опубликовано 20 марта, 2017 Подарите сие судорю запятых пару тысяч. Как минимум я не обязан показывать на данный момент лайф сервера.Ой, и где показали ? По поводу Килроя, и команды, нам виднее что мы делаем, и сколько мы делаем. держите свою помойку при себе она не где стоит где есть более 500+ живых Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 держите свою помойку при себе она не где стоит где есть более 500+ живых Запятых отсыпать ? Так пруфы будут про 300 онлайна? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Norman 78 Опубликовано 20 марта, 2017 Запятых отсыпать ? Так пруфы будут про 300 онлайна? да ваша работа давно ходит по рукам которая ошибка на ошибке увы мангол живешь 2015 - а твое познание тем боле пишешь красиво спору нет но дыра на дыре костыль на костыле Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 20 марта, 2017 Броад каст будет происходить, и сам спавн в мир тоже. ну как бы думаю понятно что нужно будет делать что-то типа actor.getSpawn().deleteAll(); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 (изменено) да ваша работа давно ходит по рукам которая ошибка на ошибке увы мангол живешь 2015 - а твое познание тем боле пишешь красиво спору нет но дыра на дыре костыль на костыле Пруфы будут ? Или только с поста на пост, как горный козёл скакать ? Изменено 20 марта, 2017 пользователем Mangol Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 ну как бы думаю понятно что нужно будет делать что-то типа actor.getSpawn().deleteAll(); Можно сделать куда проще, с внешней подгрузкой скриптов, и на загрузке уже всё отловить, и изолировать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Norman 78 Опубликовано 20 марта, 2017 Можно сделать куда проще, с внешней подгрузкой скриптов, и на загрузке уже всё отловить, и изолировать. а смысл ? если дураку понятно что ваше дерьмо не где не юзают я проще возьму ИЛ у Демона и буду жить спокойно чем ваш парафин от которого больше буду писать баг репорты чем юзать какашку Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mangol 101 Опубликовано 20 марта, 2017 а смысл ? если дураку понятно что ваше дерьмо не где не юзают я проще возьму ИЛ у Демона и буду жить спокойно чем ваш парафин от которого больше буду писать баг репорты чем юзать какашку Разговор окончен, будут хоть какие то скриншоты будем разговаривать. Вести пустой диалог с пустым местом я не собираюсь. 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты