Перейти к содержанию

Mangol

Постоялец
  • Публикаций

    205
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1
  • Отзывы

    0%

Весь контент Mangol

  1. Mangol

    L2JS-DEV

    1 вопрос. Багрепорты это всё класс, кул, зебест. Вот я использую твою сборку на 600 онлайна. Мне нужно сделать что то типа. Некого хранилища, ну... скажем в 600 игроков, да так, чтобы я смог вытянуть одного из них из этого хранилища, скажем по ключу под названием id. Ну наверное ты подумал о HashMap<Integer, Player>(); ... Но вот незадача, нужно из этих 600 человек, ну... скажем удалить некое кол-во игроков, от 100, до 250. Хотел бы посмотреть на реализацию этого. Да, и хотел бы это увидеть с HashMap<Integer, Player>();
  2. Mangol

    L2JS-DEV

    на первом х678 накрутки, на втором 2956 ?
  3. Mangol

    L2JS-DEV

    На деле все по другому. Там вшита магия которую никто не видит.
  4. В ссылке указано это, я лишь подчеркнул в каких случаях он может вызывать его. Ну все верно. G1 создает ячейки, по дефолту их около 2 тысяч на сколько я помню. Ну так оракл гласит по доке. Так же он отдельно большие части ложит отдельно. Ну, и самое приятно что он более точно прогнозирует STW в отличии от предыдущих поколений, и старается вложится в это время. Да и вообще, он может вызывать фулл, не только когда в old gen не хватает памяти. В G1 всё разбито на множество ячеек, что довольно умно в отличии от предыдущих поколений GC.(Parralel, CMS),ну самое первое поколение думаю скоро выпилят. Пока по дефолту java 8 использует Parralel.
  5. Это значит, что какие-то объекты не достижимы для очистки и накапливаются в old space, что со временем приведет к переполнению этой области памяти. Я не согласен с этим, если объект попал в old space, это не значит что его нельзя очистить, это значит лишь то, что объект пережил чистки, и не нуждается пока что в чистке. Но как только дело подойдет к пределу old gen, и его будет мало, он будет запускать полную очистку, шерстя по old space. Более точная инфа вроде вот тут. http://netflix.github.io/spectator/en/latest/ext/jvm-gc-causes/ Обычно сразу чистятся локальные ссылки. YourKit либо на крайний случай можно использовать VisualVM, но на сколько я помню, он не сохраняет показания которые пришла. В отличии от YourKit
  6. Mangol

    Таблица items_delayed

    Какой оффлайн? Только если чар онлайн. При добавлении в итем, когда чар в оффлайне, и такой итем уже существовал в кэшах, то соответственно при входе твое кол-во итем никогда не изменится пока не протухнет кэш. Ещё очень забавно, когда ты выйдешь, твои значения итемов обновлятся назад, на то кол-во которое было. Вот.....
  7. 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, ищите кто сможет это прикрутить и удалить, код я дал. П.С. Помогать прикручивать не буду.
  8. Не правда! Лжец! ТС - грамотный, разбирается в любых слушателях(знает толк - юзай под сраку 80 раз каждым игроком).
  9. Я думал так лучше будет
  10. Самому смешно, не 1 ый такой вброс, ну куда уже дальше то нести ахинею. Возможно еще вброшу пару вырезок данного индивида.
  11. Очень интересный индивид обидает на данных просторах форума. Он же javans, он же возможно Himka skype: l2jvirtual ну он же Ancient Человек очень умён, возможно при поддержке шизофрении, и синдромом чсв.
  12. Разговор окончен, будут хоть какие то скриншоты будем разговаривать. Вести пустой диалог с пустым местом я не собираюсь.
  13. Можно сделать куда проще, с внешней подгрузкой скриптов, и на загрузке уже всё отловить, и изолировать.
  14. Пруфы будут ? Или только с поста на пост, как горный козёл скакать ?
  15. Запятых отсыпать ? Так пруфы будут про 300 онлайна?
  16. Броад каст будет происходить, и сам спавн в мир тоже.
  17. Подарите сие судорю запятых пару тысяч. Как минимум я не обязан показывать на данный момент лайф сервера.Ой, и где показали ? По поводу Килроя, и команды, нам виднее что мы делаем, и сколько мы делаем.
  18. http://prntscr.com/emee80 http://prntscr.com/emeez4 gtfo красавчик. А теперь докажи обратное.
  19. Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден.
  20. 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, ищите кто сможет это прикрутить и удалить, код я дал. П.С. Помогать прикручивать не буду.
×
×
  • Создать...