Mangol
Постоялец-
Публикаций
205 -
Зарегистрирован
-
Посещение
-
Победитель дней
1 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Mangol
-
1 вопрос. Багрепорты это всё класс, кул, зебест. Вот я использую твою сборку на 600 онлайна. Мне нужно сделать что то типа. Некого хранилища, ну... скажем в 600 игроков, да так, чтобы я смог вытянуть одного из них из этого хранилища, скажем по ключу под названием id. Ну наверное ты подумал о HashMap<Integer, Player>(); ... Но вот незадача, нужно из этих 600 человек, ну... скажем удалить некое кол-во игроков, от 100, до 250. Хотел бы посмотреть на реализацию этого. Да, и хотел бы это увидеть с HashMap<Integer, Player>();
-
на первом х678 накрутки, на втором 2956 ?
-
На деле все по другому. Там вшита магия которую никто не видит.
-
В ссылке указано это, я лишь подчеркнул в каких случаях он может вызывать его. Ну все верно. G1 создает ячейки, по дефолту их около 2 тысяч на сколько я помню. Ну так оракл гласит по доке. Так же он отдельно большие части ложит отдельно. Ну, и самое приятно что он более точно прогнозирует STW в отличии от предыдущих поколений, и старается вложится в это время. Да и вообще, он может вызывать фулл, не только когда в old gen не хватает памяти. В G1 всё разбито на множество ячеек, что довольно умно в отличии от предыдущих поколений GC.(Parralel, CMS),ну самое первое поколение думаю скоро выпилят. Пока по дефолту java 8 использует Parralel.
-
Это значит, что какие-то объекты не достижимы для очистки и накапливаются в old space, что со временем приведет к переполнению этой области памяти. Я не согласен с этим, если объект попал в old space, это не значит что его нельзя очистить, это значит лишь то, что объект пережил чистки, и не нуждается пока что в чистке. Но как только дело подойдет к пределу old gen, и его будет мало, он будет запускать полную очистку, шерстя по old space. Более точная инфа вроде вот тут. http://netflix.github.io/spectator/en/latest/ext/jvm-gc-causes/ Обычно сразу чистятся локальные ссылки. YourKit либо на крайний случай можно использовать VisualVM, но на сколько я помню, он не сохраняет показания которые пришла. В отличии от YourKit
-
Какой оффлайн? Только если чар онлайн. При добавлении в итем, когда чар в оффлайне, и такой итем уже существовал в кэшах, то соответственно при входе твое кол-во итем никогда не изменится пока не протухнет кэш. Ещё очень забавно, когда ты выйдешь, твои значения итемов обновлятся назад, на то кол-во которое было. Вот.....
-
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, ищите кто сможет это прикрутить и удалить, код я дал. П.С. Помогать прикручивать не буду.
-
Не правда! Лжец! ТС - грамотный, разбирается в любых слушателях(знает толк - юзай под сраку 80 раз каждым игроком).
- 3 ответа
-
- 1
-
Самому смешно, не 1 ый такой вброс, ну куда уже дальше то нести ахинею. Возможно еще вброшу пару вырезок данного индивида.
-
Очень интересный индивид обидает на данных просторах форума. Он же javans, он же возможно Himka skype: l2jvirtual ну он же Ancient Человек очень умён, возможно при поддержке шизофрении, и синдромом чсв.
-
Разговор окончен, будут хоть какие то скриншоты будем разговаривать. Вести пустой диалог с пустым местом я не собираюсь.
-
Можно сделать куда проще, с внешней подгрузкой скриптов, и на загрузке уже всё отловить, и изолировать.
-
Пруфы будут ? Или только с поста на пост, как горный козёл скакать ?
-
Запятых отсыпать ? Так пруфы будут про 300 онлайна?
-
Броад каст будет происходить, и сам спавн в мир тоже.
-
Подарите сие судорю запятых пару тысяч. Как минимум я не обязан показывать на данный момент лайф сервера.Ой, и где показали ? По поводу Килроя, и команды, нам виднее что мы делаем, и сколько мы делаем.
-
http://prntscr.com/emee80 http://prntscr.com/emeez4 gtfo красавчик. А теперь докажи обратное.
-
Что за бред? Данный слушатель срабатывает только тогда, когда объект уже в процессе спавна. А значит броадкаст спавна будет виден.
-
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, ищите кто сможет это прикрутить и удалить, код я дал. П.С. Помогать прикручивать не буду.