Поиск сообщества

Показаны результаты для тегов 'java'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общий
    • Новости
  • Lineage II
    • Ядро сервера
    • Датапак
    • Клиент игры
    • Сайт для сервера
    • Общение
    • Прочее
    • Мастерская
    • Мануалы
  • Торговый раздел
    • Товары
    • Услуги
    • Работа
    • Покупка
    • Рынок игровых аккаунтов и предметов
    • Арбитраж
  • Разное
    • Творчество
    • Новости игровой индустрии
    • Hi-Tech
    • Общение на любую тему
    • Работа с ОС
    • Программирование
  • Другие игры
    • Counter-Strike
    • World Of Warcraft
    • ArcheAge
    • Blade and Soul
    • Dota 2
    • Guild Wars 2
    • Minecraft
    • Tera
    • Rust
    • RF Online
    • The Elder Scrolls Online
    • Прочие онлайн игры
  • Раздел "Разработчиков"
    • [PTS] AdvExt
    • [High Five] JTS-Dev
    • [High Five] L2Dev-New
    • [High Five] Jopacode
    • [High Five] L2J-Dev
    • [Interlude] Lucera2
    • [Interlude] L2jGroot
    • [Interlude] L2jWod
    • [Interlude] OVC-Dev
    • [Interlude] Pain-Team
    • [Interlude] J2Dev
  • Архив
    • Архив старых тем
  • unfuckable const Add
  • Lineage II High Five-5 Нужна Помощь
  • L2B Web Dev Обсуждения
  • L2B Web Dev Stress Web 13
  • L2B Web Dev Обсуждения
  • Linux Sysadmin's Статьи
  • L2j Development Темы
  • Client-DevModding Гайды(Мануалы)
  • Lineage II High Five-5 Вопросы и их решение
  • L2B Web Dev JavaScript
  • Client-DevModding Флудильня
  • Linux Sysadmin's Услуги
  • Lineage II High Five-5 Исходники и сборки
  • Client-DevModding Помощь
  • Lineage II High Five-5 Мануалы
  • Lineage II High Five-5 Ваши Предложения
  • Linux Sysadmin's Вопросы

Категории

  • Lineage II
    • Сборки
    • Исходники серверов
    • Серверные дополнения
    • Клиентские дополнения
    • Web составляющие
    • Патчи для клиента
    • Прочее
  • Web графика
    • Дизайны (PSD)
    • Скрипты\движки
    • Прочая графика
  • World of Warcraft
  • RF Online
  • Counter-Strike
    • Сборки
    • Моды
    • Плагины
    • Скрипты
    • Софт
    • WEB
    • Прочее
  • Rust
  • Другое
  • Client-DevModding Файлы
  • L2j Development Файлы
  • Lineage II High Five-5 Файлы
  • L2B Web Dev Файлы
  • Steve — Dogs Family Файлы от Steve-Dogs Family

Категории

  • Lineage 2
    • Java сервер
    • Работа с клиентом
    • Web для сервера
  • Counter-Strike
  • World of Warcraft
  • RF Online
  • Dota 2
    • Dedicated сервер
    • Web часть
    • Работа с клиентом
  • Rust
  • Творчество
  • Работа с OS
    • *nix
    • Windows
  • L2B Web Dev тест
  • L2B Web Dev Инструкции
  • Client-DevModding Инструкции
  • L2j Development Инструкции
  • Lineage II High Five-5 Инструкции
  • Steve — Dogs Family Мануалы от [Steve-Dogs.Ru]

Найдено: 49 результатов

  1. Наполню ваш форум

    Наполню ваш форум по 2 рубля за сообщение. В долг не наполняю, за обещания тоже. Связь через форум, либо скайп: aftersshok
  2. Помогите со скриптом

    Всем привет. Хочу реализовать следующий скрипт: Игроки бьют моба в инвуле, через 100 ударов, шанст что убьют 1%, через 150- 2% и так далее. Все написал, застрял только на одном, как сделать проверку на количество ударов. Сделал через шанс, но моб может и с первого удара упасть. Предполагаю что должно быть так: if (Проверка на количество ударов > 100) { if (CHANCE[0] > Rnd.get(1, 100)) { npc.doDie(attacker); } } else if (Проверка на количество ударов > 150) { if (CHANCE[1] > Rnd.get(1, 100)) { npc.doDie(attacker); } } Подскажите пожалуйста какая должна быть проверка.
  3. Карта Interlude (java)

    При создании карты обнаружил "блуждающего" рб - Discarded Guardian. Для определения координат беру x-y c таблицы raidboss_spawnlist, а именно: loc_x = 48000 ; loc_y=243378, и попадаю по понятным причинам на место http://prntscr.com/jz9n3k Непонятно только, почему с использованием координаты loc_z=-6611 я попадаю на http://prntscr.com/jz9j2m , то есть его реальное место пребывания. Хотя на "поверхности" его координаты уже будут приближены к loc_х=-111195 , loc_у=233004 Если подземелье физически перенесено на "пустую" область карты, тогда вопрос - это только Elven Ruins ? К примеру рб с кат не улетают в пустоту. Или есть и другие подобные приколы, которые я ещё не обнаружил? В принципе, если это только с одним рб такая штука, не проблема сделать для него исключение. Но хотелось бы понять причину происходящего. И что-то мне подсказывает что проблема не в сборке l2jlovely, у кого есть Lucera 3 или pain-team проверьте пожалуйста какие там координаты данного рб. Спасибо.
  4. Здравствуйте, активно развивающийся RVR проект на базе L2 ищет в команду Java-программиста на ставку в 120.000-150.000 рублей! Несколько слов о проекте: - проект в формате RVR- война рас - сборка написана с 0, 28 протокол - написан на Java - Проект разрабатывается более года, возникла необходимость взять еще одного кодера в команду. То есть, работа с нами будет стабильной и на длительный срок Что мы можем предложить? - ЗП от 120.000 до 150.000 рублей в месяц. - Полный рабочий день, детально решим конкретно с кандидатом. - Регулярные выплаты ЗП, перрспективу длительного сотрудничества. - Дружелюбный коллектив - Работу по ТЗ Что ожидаем мы от кандидата? - Большой опыт работы, в том числе с L2 проектами. - Готовность и способность качественно реализовывать трудные задачи. - Возможность голосового общения. В 2018 году не трудно купить микрафон Мы готовы рассмотреть ваши встречные условия работы и возможно достигнем взаимопонимания. Анкеты отправляйте личным сообщением.
  5. J2Dev Interlude

    Хроники : Interlude (746 protocol) Платформа : java 8 Форум : j2dev.ru Skype : nonsens18 ICQ : 2082139 Хочу познакомить вас со сборкой Lineage 2 Interlude Разработка ведётся на исходном коде Overworld (High Five) downgrade до Interlude Update 3 [protocol 746] Основной упор идёт в реализацию pts контента, формулы, статы, квесты, аи, заселение локаций, мелкие фишки. Краткое описание продукта : Фантомы, симуляция онлайна(будут доробатываться). Нпц в виде игроков с лёгкой настройкой(без извращений с указанием типа нпц, меняется только его внешний вид, аи и прочие его функции продолжают работать). Полнофункциональная Community Board(баффер, магазин, телепорт, сервисы, регистрация на ивенты). Множество настроек и сервисов которые помогут разнообразить ваш сервер и выделить его среди остальных. PvP Events (DeathMatch, LastHero, TvT, CtF, KoreanStyle) с возможностью лёгкой настройки места проведения ивента. Все основные формулы приведены в offlike вариант. Есть возможность настроить сервер как под дополнения, так и под классический сервер. Все статы npc, дроп взяты с pts(для идиотов, с экстендеров) платформы. Сборка в постоянной доработке и оптимизации потребления памяти и процессорного времени. Цена за сборку 100$ в комплекте идёт geodata, первый месяц обновлений бесплатен, со второго месяца 20$. Тест сервер поднимаю по первой просьбе, в дальнейшем будет запущен постоянно. Сборка привязывается на 1 ip адрес (Перепривязка бесплатна). Так же возможно написание квестов, сервисов, эвентов по вашему ТЗ, цена зависит от сложности и затрат по времени. updates *Заинитил параметр для base land rate Blow скиллов *Удалил лишние импорты *calcBlow изменена формула, теперь учавствует и base land rate Blow скиллов *Подрихтовал рандомайзер *Поправил шансы леталов для Lethal Shot\Lethal Blow *Небольшая чистка кода *Поправил вывод FString от нпцов *Заинитил параметр hit_time_factor (влияет на анимацию атаки) *Корректировка формулы calcBlow *Добавил защиту от накрутки по хвид в сервисе награды за пвп *Добавил оффлайк аи для дерева по квесту 0421 *L2GameClientPacket расширил логирование, при неизвестных данных от клиента логируем имя аккаунта а не только ip адрес *Добавлена возможность выдавать КРП или фул скилы при создание клана *Коррекция диалога для роспуска клана *Добавил конфиги на возможность отключения дропа с мобов рейдов(как дроп только того что есть в списке так и дроп только того чего нет в списке) *Shutdown to LOGGER *Поправил вывод названия проффесий (т.к. удалил говно из strings.xml) *Вывод аннонсов о старте игры на олимпиаде из fstring.xml *Добавил конфиг на возможность вывода аннонса об олимпе в трейд чат(мб переделать на вывод по энуму ChatType) *Fix ServerObjectInfo opcode *PolyMorphedNpcInfo fix *PolymorphedData item's equip fix +Start condition for Quests *AdminBan method's name rename *Разделил локации ночного и дневного торговцев *npc parsing pts ai params skills *Чистка оружия с SA Light (оружие просто меньше весит) *Чистка скиллов от тех которых нет на интерлюде(2400 скиллов улетело в помойку) *Возможность указать несколько итемов для дропа с чампионов *ArrayUtils добавил методы для парсинга массивов примитивов из строки *Чистка хандлера Help *Update ServerInfo handler *Добавил отображение название зон при входе и выходе из них(только для админ персонажей) *Добавил в HtmlUtils метод который вернёт название класса по его айди *Добавил конфиг на отображение информации о профессии и статистике оппонента (не тестил) *Events small cleanup code *Спаун эвент менеджеров в xml *Удалил с арен эвентов зоны которые отсутсвуют в интерлюде *Косметика QuestSell *Fix Venomus Poison *Звук при юзе blow скиллов(вроде как на пэтэсэ) *MoSMonk AI to fstring *Добавил аи для сундуков с 4ех рб по квесту FateWhisper *Добавил аи для 4ёх рб по квесту FateWhisper *Добавил AI для Archangel *Удалил скилл вызывал Npe при загрузке(остался с хроник выше) todo очистить все скиллы от лишнего барахла туда же и итемы *EffectList optimize *_705_PathToSubclass minor fix npcId(custom) *ResidenceFunction optimize *Полиморфы(Нпцы в виде игроков) *xml полиморфов *Почистил код от остатков душ карамелек *Корректировки шанса сбития каста *Корректировки шанса снять стан при ударе *Добавил возможность включения и отключения показа шанса скиллов для игроков *Заинитил параметр с птс при спауне рейдов играет музыка *Подрихтовал StatFunctions *Небольшая чистка класса Creature *Корректировка расчёта уворота и точности для нпц и мобов *Параметр corpse_time (время исчезновения трупа) *Удалил названия квестов из strings.xml зачем они там если все они есть в fstring.xml *CabaleBuffer use fstring pts like *Quest use fstring pts like +PtsUtils *FString parser holder xml *Методы для нпц чтобы отсылать текст из fstring.xml(аля птс) *Fix Akamanah type to DUAL *NpcParser to NpcTemplateParser *update ignore list from pts npcdata *rework xml parsers to jdom2 *AuthResponse.java logging *update configs *Упрощённый квест на сабкласс *Вывод в лог запусков эвентов, или наоборот какой из них не запустился *Обновил либу mysql-connector-java-5.1.43.jar *PvPEvent не стартуем если запущен какой либо другой *Сделал заготовку под шансовый спаун *Привёл в адекватный вид формулу расчёта миссов физ атакой *Добавил метод на определение ресурс это или нет *Конфиг на логгирование пакетов -EmptyIterator -JoinedIterator *rework LazyArrayList(убрать вообще) *small correct for new PvpEvents *HTML massage for admin like pts *Удалил неиспользуемые пакеты *Подрихтовал DeathMatch *Задействовал affectLimit у скиллов(вообще просто в xml был прописан и всё) *Косметика для ивентов *Эвенты поправил проверку на состоянии регистрации на олимпе *Frintezza *SavingSnowman fixed *Зоны для арен эвентов *ивенты *Удалил к хуям логирование удаления фантомов, ибо нахуй оно нужно? *Если string null то берём от английского языка *String's to xml *Fixed Pvp events arenas loading *PvPEvent from epilogue *SkillUtils для быстрого использования различных функций по скиллам *Темплейты арен для TvT CtF DeathMatch KoreanStyle LastHero *Парсеры и холдеры для ивентов TvT CtF DeathMatch KoreanStyle LastHero *xml файлы арен для ивентов TvT CtF DeathMatch KoreanStyle LastHero *ShadowTraderInstance fixed генерируем каждому игроку свой итем *Functions fix NPE *Чистка конфигов *Синх стрингов *Сделал более адекватное отображение онлайна в админке(шутдаун) *Добил админ спаун *Сделал 1 минуту для совершения покупки у теневого торговца *Подрихтовал пакеты установки значков отличия клану и альянсу *Save Admin spawn to xml *fix npe при удалении фантома *Fixed parseInt parseLong *Phantom's *Переименовал некоторые пакеты под оффлайк *Поправил хандлер КлиентПакетов *Подрихтовал GamePacketHandler *Аннонсы для подозрительного торговца, переделал инвентарь(нужен будет для полиморфов) +Новые слушатели OnPlayerClassChange OnPlayerSkillAdd OnPlayerSkillRestored *Заготовки на эвент теневой торговец(появляется где вздумается) и продаёт нескольким людям итем из своей коллекции. *Перелопатил GameObjectsStorage нахуй нужно то древнее говно что было. *Fix RequestBuyItem *Добавил логирование пакетов(добавить под конфиг) *Подрихтовал данные полиморфов и парсер *ChangeMoveType fix *Убрал логирование загрузки скилл файлов и геофайлов(нахуй не надо) *Реализация пакета ServerObjectInfo *Правка профф манагера в коммунити отсылал не тот месседж для указания необходимого уровня. *character_quests.sql расширил ещё и имена квестов(на всякий случай) *Поправил таблицу character_quests позволяем хранить вар более 20 символов *Переименовал несколько классов клиент пакетов в оффлайк вариант *Поправил опкоды серверных пакетов(удалить их нахуй вообще и оставить тупо в энуме) *Сделал полную валидацию dds картинок *Выпилил старую либу trove обновил до последней(в итоге надо вообще бы избавиться) *ItemHolder\Parser to ItemTemplateHolder\Parser *HtmCache optimize *Чистка кода *Добавил инфу *Optimize scripts code Hide
  6. 09-02-2018 L2J-DEV.RU

    коректировка штмл квеста _002_WhatWomenWant Фикс ссылок, добавил птс диалоги Допил фикса для всех статуй по квесту 178 Переведены все телепорты локации и территории городов Добавил точки телепорта каты и некрополи фикс лага при атаке Верный итем в q340 из сундука html-ru квестов (116,154,164,229,333,341,432) на футболе вместо анчера вешается рут фикс квеста _128_PailakaSongofIceandFire (после завершения выдаем 2 лв виталити) фикс квеста _415_PathToOrcMonk (дроп итемов идет только с начальным оружием расы) фикс логики в квесте _337_AudienceWithLandDragon Глобал обновление: Перевод миньенов на приватесов удаление експ даты и спавна, перевод в один правки по суперпоинту перевод нпс магазина в ДП(нпс) + HikariCP фикс бага когда ХП ниже 0 обновлен спавн ХБ порядок вывода сообщений при входе(тест РПГ) Добавлены новые параметры, верный парс дропа и прочих параметров physical_avoid_modify physical_hit_modify коректировка квест _337_AudienceWithLandDragon онлайн отображение реков(от админов) Исправленный квадрат фринты переделан конфиг на лвл мобов, теперь формат (id,level;id1,level и так далее)возможно лучше будет сделать по диапазону Вернул оружие у нпс в парсе. Добавлен птс диалог Нпс в пайлаке 129 квест птс диалоги 129 пайлака
  7. Куплю исходный код acis

    Добрый день, куплю acis 374 исходник. Писать в личные сообщения.
  8. Куплю исходный код acis

    Добрый день, куплю acis 374 исходник. Писать в личные сообщения.
  9. Добрый день, уважаемые форумчане, столкнулся с проблемой реализации выдачи бонусов за голосование, пользуюсь сборкой L2jFrozen, настроил конфиг "/gameserver/config/powerpak/powerpak.properties" следующим образом: L2TopDeamonEnabled = True L2TopDeamonPollInterval = 5 - проверку указал L2TopDeamonURL = http://l2top.ru/editServ/?adminAct=lastVotes&uid=30660&key=bb78bc3184090b565daea0913d0a71ab - скрипт последних 500 голосовавших. L2TopDeamonPrefix = server - префикс L2TopDeamonRewardItem = 6673 - ид предмета L2TopDeamonMin = 1 - минимальное количество L2TopDeamonMax = 1 - максимальное количество L2TopDeamonMessage = оставил пустым L2TopDeamonDoNotRewardAtFirstTime = False - выдача бонусов игрокам которые первый раз голосуют в топе(выключил) Первый запрос конфига (включен): # Do you want enable powerpack? PowerPakEnabled = True И не могу понять почему при голосование не начисляются бонусы игроку, возможно кто сталкивался, и знает как реализовать? Благодарю за внимание.
  10. Не работает Java machine

    Доброго времени суток, столкнулся с проблемой в работе Java, при запуске ОС(работаю на Windows Server 2012 R2 x64), не запускается Java Machine, при попытке запустить в ручную по пути /bin/java.exe , выбрасывает консоль, но нечего не происходит, иконку java в панель не выводит, переустанавливал как через онлайн установщик, так же через офлайн разрядность х86_x64, ранее работала, но сегодня при перезагрузке сервера, что то пошло не так, и данный софт перестал функционировать, не могу понять в чем проблема, подскажите пожалуйста что делать? Заранее благодарю. P.S: "Проблема связана с запуском Login Server, вот лог ошибки " 2017.11.30 22:04:52,986 SEVERE 1 com.l2jfrozen.loginserver.L2LoginServer FATAL: Failed to start the Game Server Listener. Reason: Cannot assign requested address: JVM_Bind ""
  11. Релиз Java SE 9

    21 сентября вышел очередной релиз платформы Java SE. С выхода предыдущего релиза Java SE 8 прошло три с половиной года. Самым главным глобальным нововведением является Java Platform Module System — поддержка концепции модулей на уровне языка и JVM. Теперь сама стандартная библиотека JDK разбита на модули, а Java-разработчики имеют возможность создавать собственные модули, определять зависимости между ними, а также управлять видимостью пакетов в модуле для других модулей. Подробнее про систему модулей Java 9 можно прочитать в книге Java 9 Modularity. Другие важные нововведения: Команда jshell — функциональность REPL (read-eval-print loop) для платформы Java. Multi-Release JAR Files — возможность объединять в одном JAR-файле разные версии классов и ресурсов для разных версий Java. jlink — инструмент для создания собственных сборок JRE под конкретную программу, включающих только нужные для запуска модули. Браузерный плагин Java Plug-in и технология апплетов теперь помечены как устаревшие. Де факто апплеты уже не поддерживаются в современных браузерах. Небольшие изменения в синтаксисе языка Java; например, в интерфейсах теперь поддерживаются private-методы. Новый API для управления процессами (ProcessHandle). Новый API для прохода по стеку вызовов (StackWalker). Различные мелкие улучшения стандартной библиотеки, например, синтаксис для создания неизменяемых коллекций (List.of, Set.of, Map.of) и новые методы в API Stream и CompletableFuture. Новые возможности ECMAScript 6 (let, const, for..of и т. д.) в JavaScript-интерпретаторе Nashorn, а также новый API для синтаксического анализа JavaScript (Parser). Поддержка HiDPI для приложений AWT и Swing под Windows и Linux. Поддержка GTK3 как альтернативы GTK2 для создания окон AWT, Swing и JavaFX под Linux. По умолчанию используется GTK2, либо, если он недоступен, GTK3. Список изменений Скачать
  12. Многим специалистам не редко приходится сталкиваться с задачей воссоздания исходного кода того или иного Java-приложения, и тут приходится задуматься, какой же декомпилятор лучше выбрать, как сэкономить время и максимально эффективно выполнить поставленную задачу. В этой статье мы рассмотрим основные популярные декомпиляторы Java приложений. Java Decompiler Видимо, самый популярный декомпилятор Java. Сам он предоставляет консольный интерфейс, уже давно не поддерживается и не обновляется, но все же многие графические инструменты, работающие с данным декомпилятором, до сих пор делают его используемым в случае необходимости декомпиляции небольших Java-классов. Mocha Является одним из первых выпущенных Java декомпиляторов. Как и JavaDecompiler, Mochaпредоставляет консольный интерфейс, последний релиз состоялся аж в 1996 г. DJ Java Decompiler Долгое время использовался лишь в качестве графической оболочки Java Decompiler для более быстрой и удобной выборки аргументов командной строки для вызова JAD. Однако в текущей версии наблюдается поддержка аннотаций. Fernflower Наверно один из лучших декомпиляторов Java-приложений на текущий момент. В последней версии включена поддержка параметрических типов, аннотаций, утверждений, перечисляемых типов, также действительно грамотно декомпилирует байт-код, полученный из-за известных багов компиляторов. JD-Core Высоко функциональная библиотека для декомпиляции байт-кода Java, разработка которой велась в рамках «Java Decompiler project». Написана полностью на C++ (необычайно быстра), не требует специальной установки, корректно выполняет свою непосредственную задачу, правда распространяется данный декомпилятор как часть приложения JD-GUI, что не дает возможности ее разработки в стороннем проекте. Подводя итоги, можно лишь сказать, что выбор все же остается за программистом, так что решать, на каком декомпиляторе остановиться, только вам. Сам я пользуюсь Fernflower, который присутствует у нас на форуме в разделе "Файлы". Возможно у вас есть свои предложения по поводу декомпиляторов? Ссылка на оригинал Дополнительно: BytecodeViewer Procyon
  13. В данной заметке я хочу показать каким образом можно определять и устранять утечки памяти в Java на примере из моей повседневной работы. Мы не будем здесь рассматривать возможные причины появления утечек, об этом будет отдельная статья, так как тема достаточно обширная. Стоит заметить, что речь пойдет о диагностике именно Heap Memory, об утечках в других областях памяти будет отдельная статья. Инструменты Для успешной диагностики нам понадобятся два инструмента: Java Mission Control (jmc) и Eclipse Memory Analyzer. Вобщем-то можно обойтись только Memory Analyzer, но с JMC картина будет более полной. JMC входит в состав JDK (начиная с 1.7) Memory Analyzer может быть загружен отсюда: MAT Анализ использования памяти Прежде всего, нужно запустить приложение со следующими флагами JVM: -XX:+UnlockCommercialFeatures -XX:+FlightRecorder Не используйте эти опции на production системе без приобретения специальной лицензии Oracle! Эти опции позволят запустить Flight Recorder – утилита, которая поможет собрать информацию об использовании памяти (и много другой важной информации) во время выполнения программы. Я не буду описывать здесь как запустить Flight Recorder, эта информация легко гуглится. В моем случае было достаточно запустить FR на 10-11 минут. Рассмотрим следующий рисунок, на котором показана классическая «пила» памяти, а так же важный сигнал, что что-то не так с использованием памяти: Можно увидеть, что после каждого цикла очистки памяти, heap все больше заполняется, я выделил это желтым треугольником. «Пила» все время как бы ползет вверх. Это значит, что какие-то объекты не достижимы для очистки и накапливаются в old space, что со временем приведет к переполнению этой области памяти. Выявление утечки Следующим шагом нужно выявить, что именно не доступно для очистки и в этом нам поможет Memory Analyzer. Прежде всего, нужно загрузить в программу heap dump работающего приложения с предполагаемой утечкой памяти. Это можно сделать с помощью «File → Acquire Heap Dump». После загрузки в диалоге «Getting Started Wizard» выбрать «Leak Suspects Report» после этого откроется краткий обзор возможных утечек памяти: Если вернуться на вкладку «Overview» и выбрать «Dominator Tree», то можно увидеть более подробную картину: Дерево показывает структуру «тяжелого» объекта, а так же размер его полей (по типу). Можно видеть, что одно из полей объекта MasterTenant занимает более 45% памяти. Устранение утечки Имея результат анализа из предыдущего пункта, следующим шагом идет устранение накапливания объектом памяти. Тут все сильно зависит от конкретного кода. Общая рекоменация – нужно найти и проанализировать все места, где происходит инициализация или изменение соответствующего поля или полей, чтобы понять механизм накапливания памяти. В моем случае в коллекцию постоянно добавлялись записи из множества (около 150) потоков при определенных условиях. После находжения и устранения утечки, не лишним будет пройти все шаги снова, проанализировать память и отчет Memory Analyzer, чтобы убедиться что фикс помог. Ссылка на оригинал
  14. Привет Forummaxi! Хочу поделиться с вами одним инструментом, который помогает делать меньше ошибок в коде и реже гуглить по вопросам разработки. О чем это ты? Программируете на Java? Codota поможет вам в этом! Этот помощник разработан, чтобы помочь вам писать код, не проверяя лишний раз документацию. Codota понимает код и предлагает вам правильные решение в нужное время. Означает ли это, что однажды роботы возьмут на себя наши рабочие места разработчиков? Возможно. Но пока еще нет. Кодить это сложно. Такие сервисы, как StackOverflow или GitHub, безусловно, помогают нам в этом. Теперь у Java-разработчиков есть еще один альтернативный вариант: ИИ-помощник Codota. Лично я всегда хотел получить помощь искусственного интеллекта при разработке. Codota учится на существующем коде, чтобы помочь вам быстрее и умнее строить программное обеспечение. Он работает с любой IDE, которую вы используете, и использует свои изученные модели кода, чтобы предложить наилучший вариант. Как это работает? По словам создателей этого сервиса, Codota создает прогностические модели кода, которые предполагают доработку кода и связанный контент на основе текущего контекста, присутствующего в вашей среде IDE. Программа сочетает в себе методы анализа программ, обработки естественного языка и машинного обучения для изучения кода. Затем он предоставляет результаты различных моделей для любой заданной задачи. Если вы установили Codota, появляется окно, связанное с вашей IDE. Поэтому, когда вы выбираете переменную, тип или метод, Codota дает примеры кода, основываясь на том, что вы уже написали. Можно назвать хорошей гадалкой по фрагментам кода. Так, а это точно ИИ? Ну, по словам Марселя Бруха, Codota оценивает и сортируют примеры кода по релевантности. В настоящее время, Codota ограничена Java, т.к. прежде сервис должен начать понимать язык, который анализирует. Давай теперь про минусы Конечно, есть некоторые рамки. Codota еще не знает сути кода. В качестве примера вам часто будет предоставлен кусок кода какого-то другого программиста из мира сего. Очевидно, это означает, что нет гарантии на всегда красивый и чистый код. Но поскольку база знаний Codota основывается на таких сервисах, как GitHub, BitBucket и StackOverflow, то каждый день ИИ становится лучше. Codota работает на Linux, Windows и MacOS. Программа работает с Eclipse, IntelliJ и Android Studio. Также, есть довольно интересное промо-видео, в котором подробно показано, как это работает. Ссылка на оригинал
  15. Нужны знания.

    Здравствуйте уважаемые форумчане. Изучаю java. Практически осилил syntax. Дальнейшее обучение требует побольше работать с кодом. Хорошие люди отправили меня к вам, ибо тут сидят администраторы игр на java. Не прошу брать в ученики, ибо время каждого бесценно. Хочу просто поработать в команде над кодом. Может есть среди вас человек, которому требуется такой как я Буду очень рад.
  16. Компания Oracle, начавшая судиться с Google из-за Java ещё в 2010-м, после прошлогоднего судебного поражения решила не сдаваться, и теперь подала новую апелляцию. В интернете сразу выпала месячная норма комментариев «эта компания юристов только и может судиться, нет чтобы что хорошее сделать». Для пропустивших предыдущие серии этой мыльной оперы — краткое содержание: 2007 год: Google представляет новую систему Android, использующую Java. Глава Sun Microsystems Джонатан Шварц в своём блоге радостно поздравляет Google с этим. 2010 год: Oracle покупает Sun, получая Java, и не поздравляет Google с успехом Android, а подаёт в суд «из-за нарушения авторских и патентных прав» в случае с Java API. 2012 год: суд решает, что «структура, последовательность и организация» API не подлежат копирайту, победа за Google. Oracle подаёт апелляцию. 2014 год: рассмотрение апелляции приводит к решению «всё-таки подлежат, но использование может подпадать под fair use». Дело требует нового рассмотрения. 2016 год: новый судебный процесс завершается тем, что в случае с Android был fair use, победа опять за Google. 2017 год: Oracle снова подаёт апелляцию. Эта музыка будет вечной (если не забыть зарядить андроидфон).
  17. JDK 10 и Project Amber

    Сегодня от ключевых людей из команды Java появились сразу две новости: Марк Рейнхольд сообщил об открытии репозиториев JDK 10, в которые коммиттеры уже могут размещать багфиксы и мелкие улучшения. Можете прочитать официальное письмо Марка об этом, а можете — хабрапост Тагира Валеева. В общем, стоило окончательно устаканиться фичам «девятки», как можно уже начинать переживать о том, что попадёт в десятку. Брайан Гетц выставил на голосование новое предложение: создать Project Amber для внесения туда JEP с «маленькими, ориентированными на продуктивность языковыми фичами» (вроде недавних Enhanced Enums и Lambda Leftovers). То есть предложение не в том, чтобы затеять какое-то гигантское нововведение, а в том, чтобы сгруппировать и так появляющиеся маленькие — дав им отдельный общий репозиторий, списки рассылки и так далее. https://twitter.com/RichardWarburto/status/824305443975626752?ref_src=twsrc%5Etfw Непонятно только, почему назвать проект решили «янтарь». Это звучит как что-то, навсегда застывшее и активно не развивающееся!
  18. Молодой учёный Росс Тейт опубликовал текст о проблеме в системе типов Java (а также Scala), делающей эту систему «unsound». Как поясняет тот же текст, слово «unsound» (буквально — «ненадёжный», «необоснованный») в данном контексте говорит, что система типов предоставляет разработчикам не все те гарантии поведения программ, которые должна была предоставить по задумке создателей. Система типов Java призвана, например, гарантировать, что метод, требующий Integer, не примет String. Тейт и Нада Амин (исследователь, участница команды Scala) обнаружили хитрый случай, в котором гарантия не соблюдается — так что компилятор, вполне соответствующий спецификации, скомпилирует код, присваивающий переменной значение другого типа (впрочем, это не означает возможности исполнять его на JVM, и вряд ли вы столкнётесь с таким кодом в рабочем проекте). Впервые Амин и Тейт сообщили о своей находке в ноябре на конференции OOPSLA (update: как заметил наш читатель, в Фейсбуке сообщали и того раньше), представив там соответствующую научную публикацию. Но после конференции на это обратили внимание только в академических кругах, а вот теперь заговорили в индустрии, что и побудило Тейта написать его новый текст, предназначенный для разработчиков. Внимание многих привлёк недавний твит Джошуа Блоха с примером «ломающего систему» кода: https://twitter.com/joshbloch/status/822948565433466881/photo/1?ref_src=twsrc%5Etfw Как написал Блох в следующем твите, «Другими словами, Нада Амин и Росс Тейт обнаружили такую дыру в 12-летней системе типов в Java-дженериках, что сквозь неё можно на грузовике проехать». Не все согласны с такой оценкой. Нашлось много заявлений вроде «но ведь такой код в реальной жизни никто никогда не пишет» и «но ведь он выбрасывает исключение ClassCastException». Тейт в своём тексте отвечает на первое, что это не вопрос юзабилити, а вопрос безопасности — то есть мы должны думать не о том, пишем ли мы такой код сами, а о том, может ли в принципе написать такой код злонамеренный разработчик. А на второе — что с исключением нам просто повезло. Мол, так случайно получилось из-за того, что при добавлении дженериков заботились об обратной совместимости, а если бы что-то пошло иначе (например, дженерики в Java были изначально), его бы не было, что открывало бы большой простор для злоупотреблений. Так что, хотя в итоге всё обошлось без ужасных последствий, подход всё равно неправильный, и разработчикам других языков надо мотать на ус. Помимо текста Тейта и видеоинтервью с ним и Амин, доступна страница, на которой можно лично побаловаться с примерами кода. А чем же изначально была вызвана проблема? Тейт пишет, что в конечном счёте всё сводится к null-pointer bug — «но в отличие от большинства таких багов, на обнаружение этого ушло 12 лет». В общем, связанные с null проблемы бывают не только у рядовых разработчиков!
  19. Как утверждает издание The Register, всё больше клиентов и партнёров Oracle получают от компании сообщения о том, что они используют Java с нарушением лицензии и должны заплатить. В одном из случаев запрошенная сумма составила $100 000. По словам издания, на рынке возникла путаница из-за всеобщего представления «Java бесплатна» и из-за того, что платные Java SE Advanced Desktop, Java SE Advanced и Java SE Suite скачиваются вместе с обычной Java SE, а не отдельными платными загрузками. В результате многие годами пользовались коммерческими компонентами без соответствующего лицензирования, все привыкли воспринимать это как статус-кво и никто не ожидал подвоха — а теперь Oracle принялась активно закручивать гайки, наняв 20 людей специально для того, чтобы разбираться с «неплательщиками». Причём в число неплательщиков включили не только клиентов Oracle, но даже её партнёров, у которых теперь ощущение «как с нами можно так было так поступить, мы ж сотрудничаем». Реакция сообщества на текст The Register оказалась двоякой. В Твиттере многие возмущены действиями Oracle и считают это поводом выбирать другие платформы, где не окажешься неожиданно должен много денег. https://twitter.com/OvidPerl/status/810063984892268544?ref_src=twsrc%5Etfw А вот на Hacker News комментаторы оказались скептично настроены по отношению к тексту The Register. Они замечают, что там много громких утверждений, но при этом толком упомянут только один конкретный случай, а всё остальное может быть преувеличением. Действительно, в тексте хватает скользких оборотов вроде «giant is understood to have hired 20 individuals»: вроде и заявили громко о «20 нанятых людях», но сняли с себя ответственность расплывчатой оговоркой «is understood» (кем? на каких основаниях?), если информация окажется ложной — взятки гладки. В общем, панически менять платформу на основании такого текста вряд ли стоит, а вот следить, появится ли ещё информация об этом, есть смысл. Мы будем следить, если появится — сообщим вам.
  20. Java 9

    У Java 9 сегодня значимая веха, а заодно мы вспомнили ещё несколько недавних ссылок, связанных с «девяткой»: Веха в следующем: Марк Рейнхольд сообщил, что JDK 9 добралась до состояния Feature Complete, и работа переходит в стадию «пофиксить одни баги и разобраться, почему не станем фиксить другие». В общем, всё то, что вы хотите видеть в Java, но до этого момента не попало в девятку, теперь уже точно и не попадёт! Зато в июльскую дату релиза теперь верится сильнее. Похоже, после стольких лет откладывания Jigsaw вот теперь до него действительно рукой подать. https://twitter.com/mreinhold/status/822209640037425154 От мечтаний о «рукой подать» вернёмся к суровой реальности. На Reddit недавно опубликовали вопрос «Какая наиболее старая версия Java используется у вас в продакшене и что мешает обновиться?», и типичным ответом оказалось «1.6, потому что клиент решает, что у него на сервере». А в другом реддит-треде «Что вы думаете о Java 9?» комментаторы сходятся на том, что у неё нет настолько очевидных преимуществ, как у «восьмёрки», поэтому распространение окажется медленнее («такое сложно будет продать нашим менеджерам»). Вместе всё это напоминает нам, что для многих разработчиков светлое модульное будущее наступит совсем не в день релиза JDK 9: повезёт в первую очередь тем, кто будет начинать новые проекты. Впрочем, работающим над давно существующим проектом не обязательно впадать в депрессию: на TechBeacon специально для них опубликовали текст «The legacy developer’s guide to Java 9». Там, например, про multi-release JAR, призванные помочь с одновременной поддержкой разных версий Java. А тем временем различные издания продолжают осваивать тему «девятка — это не только модули», разбирая различные JEP. В этом месяце в блоге Takipi написали о JEP 259: Stack-Walking API, а на Voxxed рассмотрели JEP 269: Convenience Factory Methods for Collections.
  21. Обьект+Клас

    Для знатоков! Обьект+Класс не могу понять разницы между ними в условиях л2, в не условиях тоже?
  22. Lineage 2 Bugs

    Идея написать свой простенький багтрекер появилась довольно давно, т.к. существующие решения не всегда отвечают поставленным задачам, взять например продвинутые версии такие как redmine или trac, все хорошо, куча различных опций, статусов проекта, можно кому то конкретному назначить, но для простого игрока это сложно, рядовой игрок не хочет разбираться в этом всем, он хочет отписать об ошибке и дальше играть в любимую игру, терпения на эти системы хватает у единиц, большинство только от вида этих систем убегает в ужасе. Можно сделать привычными средствами форума, 5-7 разделов на каждую группу ошибок, игрокам это тоже привычнее, но данный подход превращает жизнь разработчика в сущий ад, т.к. игрок считает что если он написал пост в стиле "админ пофикси целесту", то все, админы призовут на помощь потомков ванги и проблема будет решена, так же часто бывают ситуации когда на одну и туже проблему создается по 3-5 тем и тут уже разработчик видя 30 страниц ошибок убегает в ужасе Так вот в чем же преимущества новой системы: При создании заявки игроку предлагается выбрать тип проблемы, далее в зависимости от выбора откроется нужная форма с нужной логикой, например игрок хочет описать ошибку по умению, первое это название самого умения, используется "умный поиск", ввести "левое" называние не получиться, только из списка Далее игроку нужно заполнить 3 формы: Как работает сейчас, Как должно работать и Ссылки на офф. источники, данный подход мотивирует людей писать адекватные репорты, проверено не один раз Система автоматически по названию проблемы группирует их, исходя из этого можно понятно что исправлять в первую очередь, ведь согласитесь 10 жалоб на какое-то умение важнее 1 жалобы на богом забытый квест в богом забытой локации на 23м уровне Таблица в Панели Управления умеет сортировать данные по столбцам с использованием jQuery, без перезагрузок страницы Система написана с использованием технологии Spring Framework, и запускается в пару кликов Было принято решение перевести данный продукт в Open Source, ссылка на GitHub https://github.com/Eanseen7/Lineage-2-Bugs P.s. На полноценный продукт данный web пока еще не претендует, просьба строго не судить, скорее наброски и пример использования технологии Spring
  23. Lineage 2 CMS

    Истоки нашей CMS идут из 2015 года, именно в этом году, была выпущена наша первая CMS Рынок требовал удобный, качественный и самое главное безопасный продукт, коих на рынке тогда не было. Со временем функционал нашей CMS модернизировался и развивался, благодаря технологии Spring Framework Но все же, в процессе тестов CMS с использованием технологии Spring Framework зарекомендовала себя очень хорошо, и было принято решение заняться новой версией с учетом полученного опыта и отзывов. А теперь поговорим о новой версии: Лучшая безопасность, исключены любые "дырки", которыми славятся PHP разработки Поддержка шаблонов Колесо Удачи reCAPTCHA Поддержка Email уведомлений Неограниченное кол-во логин и game серверов, платформа позволяет работает не только с проектами Lineage 2, но и с любыми Java серверами Никаких SQL запросов, обмен информацией осуществляется по протоколу XMLRPC, легко интегрируется в любую сборку У каждого пользователя в личном кабинете имеется свой удобный склад и история операций с предметами Поощрение за голосование в MMOTOP Добавление новостей и статических страниц Вывод тем с форума Поддержка UnitPay Продукт постоянно дорабатывается Было принято решение перевести данный продукт в Open Source, ссылка на GitHub https://github.com/Eanseen7/Lineage-2-CMS
  24. Доброго времени суток, ув. форумчане. Появилось свободное время и я решил написать небольшую софтину для личного пользования. Суть программы в том, что она упрощает жизнь фрилансеру ( всем, наверное, знакомы ситуации, когда теряешь данные о своих клиентах ( что и кому делал, на какие суммы, дату и пр. ) ). В программу входят функции с полным спиком клиентов, суммы заказов, проверка на черный список, расчет персональных скидок, возможнсть удаления и пр. - стандарт, одним словом. Так вот, столкнулся я с одним вопросом, который не могу решить - как рассчитывать скидки. Накапливать ли их дисконт от общей суммы всех заказов, или же рассчитывать % скидки исходя из суммы разового заказа? Буду рад услышать любое мнение. Спасибо.
  25. С php на java

    Ребят нужна помощь. Делаю бота для одной онлайн игры и есть проблема с авторизацией. Сделать мне это нужно на java, а знаю я её плохо в отличии от php. Суть проблемы в чем. Написал туже авторизацию на php и все норм. Вот код: <?php class ml{ var $auth_url = "http://mlgame.ru/auth"; var $salt_url = "http://mlgame.ru/salt"; var $game_url = "http://s30.mlgame.ru/"; var $password; var $login; function __construct(){} function curl_get($host, $referer = null){ $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $referer); curl_setopt($ch, CURLOPT_USERAGENT, "Opera/14.00 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51"); curl_setopt($ch, CURLOPT_URL, $host); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt'); $html = curl_exec($ch); echo curl_error($ch); curl_close($ch); return $html; } function get_salt(){ $salt = json_decode($this->curl_get($this->salt_url), TRUE); return $salt['salt']; } function get_password(){ //MD5( MD5(clearText) + salt ); return md5(md5($this->password)."".$this->get_salt()); } function auth(){ $to = $this->auth_url."?username=".$this->login."&password=".$this->get_password()."&version=web67894&autologin=false&captcha=null"; $auth = $this->curl_get($to, $this->game_url); return $auth; } } if(isset($_POST)) { $ml = new ml(); $ml->login = 'dambenok68'; $ml->password = 'admin2501'; } //echo $ml->auth(); ?> <?php $json = $ml->auth(); $obj = json_decode($json); $result = $obj->{'result'}; if($result == 'ok') { echo 'Авторизация успешна<br>Salt: '; } else { echo 'Неверный логин/пароль '; } ?> Пишу тоже самое на java но авторизация не проходит. Код: package mlgame; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.CookieHandler; import java.net.CookieManager; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.message.BasicNameValuePair; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class auth { private static final String USER_AGENT = "Opera/14.00 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51"; private static final String AUTH_URL = "http://mlgame.ru/auth"; private static final String SALT_URL = "http://mlgame.ru/salt"; private static String cookies; private static HttpClient client = HttpClientBuilder.create().build(); private static String get_salt() { HttpGet request = new HttpGet(SALT_URL); request.addHeader("User-Agent", USER_AGENT); try { HttpResponse response = client.execute(request); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); final JSONObject obj = new JSONObject(rd.readLine()); return obj.getString("salt"); } catch (ClientProtocolException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } catch (JSONException e) { e.printStackTrace(); return null; } } private static String encrypt(String password) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(password.getBytes()); byte byteData[] = md.digest(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < byteData.length; i++) { sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1)); } return sb.toString(); } public static Boolean login(String user, String pass) { try { auth http = new auth(); String password = encrypt(encrypt(pass + get_salt())); CookieHandler.setDefault(new CookieManager()); List<NameValuePair> params = new ArrayList<NameValuePair>(5); params.add(new BasicNameValuePair("username", user)); params.add(new BasicNameValuePair("password", password)); params.add(new BasicNameValuePair("version", "web67894")); params.add(new BasicNameValuePair("autologin", "false")); params.add(new BasicNameValuePair("captcha", "null")); HttpPost post = new HttpPost(AUTH_URL); post.setHeader("Host", "mlgame.ru"); post.setHeader("User-Agent", USER_AGENT); post.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); post.setHeader("Accept-Language", "en-US,en;q=0.5"); post.setHeader("Cookie", getCookies()); post.setHeader("Connection", "keep-alive"); post.setHeader("Referer", AUTH_URL); post.setHeader("Content-Type", "application/x-www-form-urlencoded"); post.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); HttpResponse response = client.execute(post); setCookies(response.getFirstHeader("Set-Cookie") == null ? "" : response.getFirstHeader("Set-Cookie").toString()); int responseCode = response.getStatusLine().getStatusCode(); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); } //System.out.println(result.toString()); final JSONObject obj = new JSONObject(result.toString()); if(obj.getString("result") == "error" && obj.getString("errorText") == "wrong account") { System.out.println("Login failed"); return false; }else{ return true; } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return false; } catch (UnsupportedEncodingException e) { e.printStackTrace(); return false; } catch (ClientProtocolException e) { e.printStackTrace(); return false; } catch (IOException e) { e.printStackTrace(); return false; } catch (JSONException e) { e.printStackTrace(); return false; } } public static String getCookies() { return cookies; } public static void setCookies(String cookies) { cookies = cookies; } }