Перейти к содержанию
Авторизация  
InovatorUA

Обсуждение работы с HF серверами

Рекомендуемые сообщения

Всем доброго времени суток.

Хотим разобратся и настроить сервер с интересной задумкой.

Много вопросов появилось в ходе работы, по этому решили создать тему что-бы не флудить на форуме.

Думаю другим людям тоже будет интересно так как актуальной информации нет на форуме.

 

Для тех кто говорит что куча таких тем, отвечу сразу открыл 4 темы по забросам в базу, и они не подходят под ХФ или же под сборку Гринда,по этому хотелось бы в одной теме собрать ответы для начинающих разработчиков.

 

Далее все вопросы и разделы буду закреплять в шапке.

 

Работа с базой ( полезные запросы )
 

1. Как удалить всех мобов ниже 61 уровня (сборка GrindTeam)

2. Как удалить весь дроп кроме адена (сборка GrindTeam)

3. Как удалить всех нпц кроме гвардов (сборка GrindTeam)

Изменено пользователем InovatorUA
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Всем доброго времени суток.

Хотим разобратся и настроить сервер с интересной задумкой.

Много вопросов появилось в ходе работы, по этому решили создать тему что-бы не флудить на форуме.

Думаю другим людям тоже будет интересно так как актуальной информации нет на форуме.

 

Для тех кто говорит что куча таких тем, отвечу сразу открыл 4 темы по забросам в базу, и они не подходят под ХФ или же под сборку Гринда,по этому хотелось бы в одной теме собрать ответы для начинающих разработчиков.

 

Далее все вопросы и разделы буду закреплять в шапке.

 

Работа с базой ( полезные запросы )

 

1. Как удалить всех мобов ниже 61 уровня (сборка GrindTeam)

2. Как удалить весь дроб кроме адена (сборка GrindTeam)

3. Как удалить всех нпц кроме гвардов (сборка GrindTeam)

 

если сборка Гринда та что я думаю(ХФ) то никак, этих данных нету в бд, все в хмл

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если сборка Гринда та что я думаю(ХФ) то никак, этих данных нету в бд, все в хмл

тоесть дроп и нпц все в хмл файлах ? и они не прописаны в сборке ?

 

а как изменить их в файлах кучей

Изменено пользователем InovatorUA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тоесть дроп и нпц все в хмл файлах ? и они не прописаны в сборке ?

 

а как изменить их в файлах кучей

Без знаний ни как, поэтому можешь завязывать сразу с начинаниями)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Удалять ручками

2) Прописывать конфиг (если их нету)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без знаний ни как, поэтому можешь завязывать сразу с начинаниями)

ну ведь я и создал на форуме тему что-бы получить консультацию ? или это форум для профгуру, которые только письками меряются кто круче ?.

Вроде-бы форум для обсуждения помощи и нароботках :)

Не хочу обидеть вас этим. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну ведь я и создал на форуме тему что-бы получить консультацию ? или это форум для профгуру, которые только письками меряются кто круче ?.

Вроде-бы форум для обсуждения помощи и нароботках :)

Не хочу обидеть вас этим. 

элементарно берем и удаляем. ах да некоторые моменты за-пилены в ядре и после ваши манипуляций выльется масса исключений. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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, ищите кто сможет это прикрутить и удалить, код я дал.

П.С. Помогать прикручивать не буду.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужны исходники,в некоторых сборках уже выведен конфиг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если лень ковыряться с файлами - можно задействовать OnSpawnListener (пример в папке со скриптами думаю найти можно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если лень ковыряться с файлами - можно задействовать OnSpawnListener (пример в папке со скриптами думаю найти можно)

Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден.

правда ??? круто оставьте свой помой при себе

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

правда ??? круто оставьте свой помой при себе

http://prntscr.com/emee80

http://prntscr.com/emeez4

gtfo красавчик. А теперь докажи обратное. :lol:

Изменено пользователем Mangol

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

http://prntscr.com/emee80

http://prntscr.com/emeez4

gtfo красавчик. А теперь докажи обратное. :lol:

 

http://prntscr.com/emee80

http://prntscr.com/emeez4

gtfo красавчик. А теперь докажи обратное. :lol:

и кому нужно сие дерьмо ? с кусками скринов ваше дерьмо даже 300 человек не потянет уже показали себя хватит JTS мусорка - когда был Кил рой  вы еще что то могли а теперь вы помойка !  которая  просто шлак среди команд  я бы в жизни не поставил бы вашу работу на сервер - докажи обратное укажи хоть 1 сервер с онлайном свыше 200 живых

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден.

Про броадкаст спауна и слова не было, а значит этот варик можно использовать как костыль (как я уже говорил, "Если ТСу лень ковыряться в файлах")

Изменено пользователем CalypsoToolz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и кому нужно сие дерьмо ? с кусками скринов ваше дерьмо даже 300 человек не потянет уже показали себя хватит JTS мусорка - когда был Кил рой  вы еще что то могли а теперь вы помойка !  которая  просто шлак среди команд  я бы в жизни не поставил бы вашу работу на сервер - докажи обратное укажи хоть 1 сервер с онлайном свыше 200 живых

:lol: Подарите сие судорю запятых пару тысяч.   Как минимум я не обязан показывать на данный момент лайф сервера.Ой, и где показали ?

 

По поводу Килроя, и команды, нам виднее что мы делаем, и сколько мы делаем.

Изменено пользователем Mangol

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про броадкаст спауна и слова не было, а значит этот варик можно использовать как костыль (как я уже говорил, "Если ТСу лень ковыряться в файлах")

Броад каст будет происходить, и сам спавн в мир тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:lol: Подарите сие судорю запятых пару тысяч.   Как минимум я не обязан показывать на данный момент лайф сервера.Ой, и где показали ?

 

По поводу Килроя, и команды, нам виднее что мы делаем, и сколько мы делаем.

держите свою помойку при себе она не где стоит где есть более 500+ живых

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

держите свою помойку при себе она не где стоит где есть более 500+ живых

Запятых отсыпать ?

Так пруфы будут про 300 онлайна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запятых отсыпать ?

Так пруфы будут про 300 онлайна?

да ваша работа давно ходит по рукам которая ошибка на ошибке увы мангол живешь 2015 - а твое познание тем боле пишешь красиво спору нет но дыра на дыре костыль на костыле

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Броад каст будет происходить, и сам спавн в мир тоже.

ну как бы думаю понятно что нужно будет делать что-то типа 

actor.getSpawn().deleteAll();

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да ваша работа давно ходит по рукам которая ошибка на ошибке увы мангол живешь 2015 - а твое познание тем боле пишешь красиво спору нет но дыра на дыре костыль на костыле

Пруфы будут ? Или только с поста на пост, как горный козёл скакать ?

Изменено пользователем Mangol

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

ну как бы думаю понятно что нужно будет делать что-то типа 

actor.getSpawn().deleteAll();

Можно сделать куда проще, с внешней подгрузкой скриптов, и на загрузке уже всё отловить, и изолировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно сделать куда проще, с внешней подгрузкой скриптов, и на загрузке уже всё отловить, и изолировать.

а смысл ? если дураку понятно что ваше дерьмо не где не юзают

 

я проще возьму ИЛ у Демона и буду жить спокойно чем ваш парафин от которого больше буду писать баг репорты чем юзать какашку

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а смысл ? если дураку понятно что ваше дерьмо не где не юзают

 

я проще возьму ИЛ у Демона и буду жить спокойно чем ваш парафин от которого больше буду писать баг репорты чем юзать какашку

Разговор окончен, будут хоть какие то скриншоты будем разговаривать. Вести пустой диалог с пустым местом я не собираюсь.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...