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

Убрать лишний дроп

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

Ребят подскажите пож как убрать дроп лишний под пвп сервер сделать

сборка l2j-dev (ХФ)

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


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

если клиент, то есть конфиг если не клиент и юзаешь шару то ручками

или убирать весь дроп и потом прописывать в евент режим мобов и их дроп(вроде в шаре оно есть)

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

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


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

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

 

Если не умеете писать батники, то тоже самое можно сделать через notepad ++. Выделяем все файлы в которых находится дроп открываем их в нем и делаем нехитрый простой как 2 пальца макрос: найти строку которая содержит фразу дропа - удалить строку или заменить на нужную нам - запускаем макрос для всех файлов - сохраняем и за 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, ищите кто сможет это прикрутить и удалить, код я дал.

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

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


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

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

 

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

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


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

дроплист в датапаке, оверы же

Сорян, я с ними дело не имел на прямую )

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


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

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

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

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

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

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

Войти

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

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

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

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

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