-
Публикаций
126 -
Зарегистрирован
-
Посещение
-
Победитель дней
6 -
Отзывы
0%
Сообщения, опубликованные PointerRage
-
-
Обычный A* по евклидовому расстоянию + модификатор высоты. Везде применяется стандартная практика - поиск по графу. В жтс, как и везде, для построения графа используются данные из геодаты по проходимости точек.
- 1
-
ITT врыв от бывшего разработчика этого говна.
В 24.04.2018 в 00:48, gvb сказал:Мне очень интересно знать, кроме меня их кто-то ковырял(ет) вообще ? Или я один мазахист
fork2/fork3 был основан на второй люцере. Думаю, что Вы уж точно должны знать, где он стоит и по сей день. Больше я не видел производных работ от второй люцеры, поэтому, видимо, почти один:) Ну и ковырять без прода - гиблое дело, впрочем, так везде. Рекомендую забить на это говно и просто использовать некоторые механики оттуда [в плане легковесных библиотек для построения кода], которые были дописаны и улучшены в fork2/fork3, найти их можно тут (улучшенные гитавовские слушатели [с поддержкой многопоточного уведомления и предикатами], шедулер а-ля спринг, стартап система). Некоторые из этих библиотек используется другими лыадвыа командами, в некоторых эмуляторах серверов (привет BDO-Emu ), а некоторые и вообще в проектах, которые не связаны с пейратством.
В 24.04.2018 в 07:41, gawric сказал:я поверхностно ковырял ->код очень грязный:) не берусь брать на сколько он работоспособен....
Внезапно, он работает. Хотя кое-где есть довольно таки критические баги. Ну и огромное количество легаси кода с 2006 года тоже дает о себе знать.
В 24.04.2018 в 07:41, gawric сказал:Была даже идея перевести его на Kotlin дабы уменьшить кол-во строк кода и попробовать хотя бы частично перевести на spring или dagger
Забивать бульдозером маленький гвоздь, да? Я смотрю, что это последнее время становится популярным, впрочем, также, как и использование новомодных языков.
Давайте по честному: зачем Вам спринг в игровом сервере? Спринг отлично подходит, если Вам нужно за день написать какой-то веб-сервис с мордой, который получает данные по типу REST из какой-нибудь Уругваи. Вот для этого он создан и в таких задачах его применение - идеально. В остальных случаях, он будет избыточен и можно легко и просто выкинуть 98% этого всего говна, что там есть. Также, как если и писать нормальный веб-сервис не за день, а за месяц, на нормальном EE 7.0 с беком имплементации от какого-нибудь TomEE или IBM WebSphere.
Вот что требуется в игровом сервере? Депедли инжекты? Autowire из бута легко заменить на Guice. Репозитории из спринг орм, в виде, "ляп-ляп интерфейс и в прод" -- легко заменяются абстрактным CRUD репозиторием. Что еще? А больше в игровом сервере и не нужно. Ну, окей, вывести REST апишку: это можно сделать и с помощью встроенного уэб-сервера в джаве (его вроде бы не удаляли из стандартной библиотеки, верно?).
- 1
- 1
-
Продано. Тред можно закрывать.
-
5 часов назад, †DeMoN†™ сказал:Более 90% проектов на яве - это системное программирование.
Извините, но Вы говна объелись? Какое нахрен системное программирование на джаве?
А про веб -- просто смешно. Вы хоть одним глазком посмотрите на энтерпрайз, где и используется в большинстве случаев джава, а только потом говорите. PHP видишь ли у них тут погоняет вебом. Хотя спорить не буду, для страничек-бложеков васи пупкина -- рулит
Если интересно где же она, та самая джава, то откройте любой банк и у каждого второго будет бекэнд на джаве. Плюс почти все банк-клиенты для юридических лиц - запилены на джаве. Я уже не говорю про другие секторы, кроме банковского.
По сабжу: релиз говно, он нужен по большей части для разбиения самого RT на части, что даст плюсы всяким там андроид-девам, плюс начальные реализации нескольких интересных проектов, которые будут доступны в полную силу лишь в J10/J11, плюс улучшения для других JVM-языков (что сделано не на уровне языка, а на уровне самой JVM и байткода) типа котлина, скалы, груви и так далее. Остальные улучшения, типа стек-валкинга - смотрятся очень бедно и, в принципе, они не имеют никакого влияния.
- 1
-
В 29.12.2017 в 10:31, styler сказал:От куда такая цена? Он 40к новый стоит
В модификации, которую предлагаю я, на всех сайтах цена от 52 000 до 65 000.
-
JTS Source 2015
Исходный код JTS 2015 года. Такой же, который был и в квесте.
-
Добавил
-
Добавлено30.12.2017
-
Категория
-
АвторJTS Team
-
ХроникиHigh Five
- 4
- 2
-
-
С наступающим и приятной шары:)
В комплекте есть также скомпиленная библиотека fork2-commons, большую часть ее исходного кода можно найти тут.- 1
- 2
-
Не голосовал, ибо мультивыбора нет
Дома стоит подпиленная кубунта. На серверах, в основном, стоит дебиан, а если серьезное что-то, то центось (сосурити, все дела, всякие вайт-списки динамических библиотек и так далее). С 2010 до захвата мира systemd - арч в качестве домашней системы, да и на некоторых тестовых серверах.
- 1
-
Нет, просто брал несколько одинаковых машин. Одна из них оказалась невостребованной.
-
Спасибо Манголу за создание треда, т.к. сам создать не смог (прав не хватает).
По покупке в личку ко мне.
-
Геодвигло:
- неадекватно обрабатывает трехмерную (cansee) трассировку луча снизу наверх (и наоборот), например: трейс видимости со стены вниз и наоборот.
- неадекватно обрабатывает трехмерную (cansee) трассировку луча, если в середине трейса есть провал по высоте, например: трейс с башни на башню.
- патчфинд неверно ищет путь в многослойных локациях (там где есть переход с одного слоя на другой)
Это так, на вскидку.
- 1
-
Диалог со скриптами.
-
А в чем принципиальные различия между веб-сервером и игровым?Ой да господи, речь о вебсервере, а не о ядре игры..... Разумеется нода для этого не предназначена...
На мозилле проверьте. Хотя, там уже могли и починитьНе наблюдал проблем с d3.js
-
Быстр без логики? Ну, может быть, только кому нужен сервер без логики? Сервер с которым ко мне прибегали - был игровым, игра была клоном агарио, а это расчеты векторного передвижения и столкновений объектов.Я не буду тут сейчас бить пяткой в грудь и устраивать холивары, но нода достаточно быстр. И способен поддерживать куда более чем 4000 одновременных соединений. Вопрос скорее к реализации и криворукости.
WebGL который не на всех браузерах поддерживается (а те куски, которые поддерживаются - работают ужасно криво, с симптомами "цпу в сотку") - думаю был плохим примером4. Использование современных API - filerider, canvas, webgl, html5API и многое, многое другое.
-
Отец всего этого безобразия l2jserver, поэтому ориентируйтесь на него. Никаких API у 98% эмуляторов лыдва нет и не будет, ибо "разработчики" не умеют в код. Рекомендую к прочтению статейку Блеккки от 2009 года, которая по прежнему актуальна.Касательно интерлюда думаю ничего не изменилось, так как последний реальный коммит, связанный с разработкой, а точнее с переписыванием SQL запросов был сделан 10 лет назад...
Ладно спасибо всем кто помог прояснить ситуацию, в любом случае найду что поковырять.....
В первую очередь нужно будет поставить сервак себе, и изучить таблицы. Так как исходя их ответов выше никаких дополнительных API и веб обвязок нету для взаимодействия сервера и сайта, а вся работа идет напрямую с базой, что на мой взгляд очень странно....
А это меня интересовало в первую очередь.
Если АПИ сделано нормально, а не рукажопами, то никакого замедления не будет, т.к. все данные, которые вываливаются наружу / принимаются должны кешироваться, включая игровые сущности (например те же предметы и контейнеры). А там, где есть кеш, можно вообще повредить базу данных и нарушить работу сервера, если в рантайме чето там руками в БД пихать. Как минимум, есть хорошие такие шансы схватить коллизию ключей (и да, для уэберов - они далеко не AUTO_INCREMENT).Ну да, я честно говоря думал что так оно и есть на самом деле... Веб дергает апиху ядра, а та пишет что и куда нужно....
Не знаю еще правда как это все на производительности будет отражено...
А так ну сам посуди, веб положили вместе с базой и сервак лег..... + никто не исключает уязвимости веба на предмет SQL иньекций.... да мало ли как его можно нагнуть
Все таки я за концепцию "разделяй и властвуй!"
Но не стоит волноваться! Все равно в 98% эмулях ладвы нет никакого кеша Правда это не отменяет остальные проблемы по большей части.
1. Стресс - говно мамонта, которое ненужно.Естественно первое и самое главное что меня интересует - это существующие движки. Читал в основном используют некий стрес веб - специально написанный движок для сайтов LineAge. Вроде как он сделан на пыхе, его возможности?
Стоит ли заморачиваться на его изучение (возможную доработку, переписку)?
Вообще думаю бэк запилить на ноде, а фронт сделать в стиле SPA, своего рода такое изоморфное приложение, с фронтом на реакте.
(Кто в теме тот понимает о чем я, другие же могут задать вопросы).
Хочется изучить данную тему и, возможно, создать для Вас админы нечто более современное с учетом мобильных возможностей игроков и прочих приколюх современной Web разработки.
2. Не стоит заморачиваться.
3. Перестаньте уже таскать за собой фронтэнд язык в серверный сегмент, ему там не место. За... заели уже своим NodeJS. Пример из жизни:
Ко мне прибегают ребята, которые написали сервак на ноде и слезно умоляют что-то сделать и как-то оптимизировать это говно, т.к. оно еле тащит 4 000 клиентов. Я называю им ценник в 4 раза дороже стоимости этого сервера на ноде (за переписку на нормальный язык) и они платят, либо вообще закрывают стартап, если таких денег у них нет.
4. "Приколюхи современной веб разработки" (на фронте, как я понимаю, ибо упомянуты мобильные девайсы) -- это проц в 100% и сжирание 100500 гб ОЗУ при просмотре картинки котиков? Ненужно.
-
Скрипты должны быть в UTF-8 without BOM.в общем, после насильной смены кодировки в компиляторе и IDE после компила перестали работать скрипты на сервере.
Сервер Debian 8 x64. То ли я тупой , то ли что)
-
ПАТАМУШТА ОНА НЕНУЖНО, ПЛАТНАЯ И РАБОТАЕТ В CP1251!!11КАК ЭТО ПЕРЕСТАТЬ ОНА ЛИЦЕНЗИОННАЯ
-
Автор - Ник, который еще первую люцеру пилил Это капитальное ненужно, которое устарело на много лет. И да, оно не работает начиная с 7 версии джавы, т.к. нет поддержки инструкции байткода invokedynamic.
-
Перестань юзать винду, она дефолтно всегда работает в cp-1251.Перестань юзать эклипс, он в дефолте ставит Cp-1251
Компилятору javac укажите кодировку исходников. Для gradle: compileJava.options.encoding = 'UTF-8'Я юзаю IntelliJ. Исходы буржуев , у них изначально видимо стоит другая кодировка.
-
L2AttackableAI.
Корабли - L2Ship/L2VehicleЧетоТам или типа того. Я у себя их вообще удалил, поэтому точно не скажу.
- 1
-
Делал у себя по фану регруп мобов вокруг игрока. Вот код, может поможет чем-то или наведет на какие-нибудь мысли
... if(!firstTarget.character.isMoving() && regroupLock.compareAndSet(false, true)) { //regroup to other location ThreadPoolManager.getInstance().scheduleGeneral(() -> regroupLock.set(false), Rnd.get(11), TimeUnit.SECONDS); if(regroup(range)) { return; } } ... protected boolean regroup(int range) { final L2Attackable actor = getActor(); final int collision = actor.getTemplate().getCollisionRadius() * 2 + MathUtil.DiscreteSize; final int currentCount = actor.getWorld().getVisible(L2Attackable.class, actor, collision, false).size(); if(currentCount == 0) { return false; } final Location target = firstTarget.character.getLocation(); final Location current = actor.getLocation(); final Location currentGeo = MathUtil.conv2geo(current); final List<Location> around = new ArrayList<>(360 / 20); for(int i = 0; i < 360; i += 20) { final Vector3 pos = target.toVector3(); final Vector2 direction = pos.toVector2(); direction.rotate2(i); direction.normalize(); pos.multiplyAndAdd(direction, range); around.add(new Location(pos.toPoint3())); } Collections.sort(around, (o1, o2) -> { //sort locations by distance final double distance1 = o1.getDistance2(current); final double distance2 = o2.getDistance2(current); return distance1 == distance2 ? 1 : distance1 < distance2 ? -1 : 1; }); int count = currentCount; int selectedIndex = -1; for(int i = 0; i < around.size(); i++) { final Location loc = around.get(i); if(loc.getZ() == Short.MIN_VALUE) { continue; } if(currentGeo.equalsWoZ(MathUtil.conv2geo(loc))) { //pass current point continue; } if(!GeoData.getInstance().raycast2(current, loc, actor.getInstanceId()) || !GeoData.getInstance().raycast3(loc.getX(), loc.getY(), loc.getZ(), target.getX(), target.getY(), target.getZ())) { continue; } final List<L2Attackable> actors = actor.getWorld().getVisible(L2Attackable.class, loc, collision, false); if(actors.isEmpty()) { selectedIndex = i; break; } if(count > actors.size()) { count = actors.size(); selectedIndex = i; } } if(selectedIndex == -1) { return false; } params.set("isRegroup", true); setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, around.get(selectedIndex)); return true; }
- 1
-
Во-первых, я уже более двух лет не работаю с "проектами". А во-вторых, мне никогда ничего не продавали и не сливали. Да и вообще, я всегда предпочитал не особо распространяться, где работаю, как работаю и с кем, поэтому всякие чушки со своими сливами идут мимо, они даже не знают о моем существовании.О этого не кто не застрахован а так как вы работаете с топ проектами то думаю вам также много чего продавали или сливали.
Если говорить, про конкретно мои проекты, то я обычно предлагаю продавальщикам и вымогальщикам опробовать некие колбасные изделия. В остальном же, сами игроки рассказывают баги, если они есть. Если Вам не рассказывают - это проблема Вашей работы с коммунити, не более того.
UPD: немного не верно сказал, про "не работу"; на данный момент я изредка делаю какую-либо сдельную работу людям, с которыми успешно работал в прошлом, либо которые пришли по рекомендации.
Менее приятными, это говно и иже с ним? А что поделать, если люди не хотят синхронизировать старты своих серверов, либо просто ведут себя, как последние ушлепки? Хотя, с другой стороны, эти же ребята работают и на другую сторону монеты.Но! Зная как топ проекты работают с другими менее приятными людьми, не делают некого святыми.
Какого бага? Сплоита, который я нашел? Вы даже не знаете, как он функционирует и что конкретно он делает, о чем разговор вообще? Или у Вас крайняя степень ФГМ, когда мои два сообщения прошли мимо? Повторю еще разок: вовку развели - сказав ему, что поставили фикс сплоита и он подумал, что нашел сплоит, который я продавал.Ну вот смысл с этого бага? Ну будешь ты бегать и кикать по 1 человеку.. 10 человек за 5 минут... В итоге за час грубо говоря 50 - 60 человек... И? Смысл ?)
И да, откуда такая математика (в стиле: "у нас реализация 98%" )? Или че, идиотизм вовки заразителен?
-
Как есть, не больше и не меньше. Или может быть еще бредовее звучит угроза от "партнера" лить грязь с картона на агрегатора палки на открытии пвпзоны?Мне лично без разницы что вы употребляете, но то что вы пишите звучит немного бредово.
Тогда хренли Вы забыли в моей теме?А то что вы там себе составили в уме, меня некоем образом не интересует да и не должно не как интересовать вообще.
Если Вы заметили в логах только брань, то все как-то очень плохо. У человека нет мозга, от слова совсем, а его попытки развести меня на сплоит, это просто успех, от которого я долго смеялся Ну, и не стоит забывать, что данный человек не более чем личер.Владимир человек своеобразный и эксцентричный, много брани, но работать с ним можно.
Кстати, он мне чем-то теому напоминает, интересно чем? (:
Как только утихомирите своего "партнера".Я не собираюсь влазить в ваши воины, могу лишь только попросить не лить грязь в мой адрес а это уже зависит от совести человека.
-
Не нужно меня приписывать, не зная всей сути.
Автор эксплоита я и слив его Владимиру не рассчитывал что будет так как все сложилось, по этому я его попросил чтоб он не убивал проекты а просто выставить его на продажу, на что он и согласился.
Скрины:
Да мне как-то все равно. Факт в том, что Вы повязаны с "Вовой" (именно он бегал и шантажировал администраторов сплоитом с ДДСками 2009 года ), который вымаливал у меня сплоит (сначала денег обещал, потом вымаливал, потом угрожал, а потом опять вымаливал), но так и не получил его, и как только его развели ребята с кетры (при этом они же его до этого развели на раскрытие страш-ш-шного сплоита с ДДСками) сказав, что купили у меня фикс и-и-и-и... внезапно якобы мой сплоит выставляется Вами на продажу. Чудеса да и только
Анивей, как я уже написал в первом предложении - мне насрать, "правду" от Вас я не хочу знать и у меня уже сформировалось свое виденье всей картины в целом.
P.S: ну чисто так поржать немного логов с "Вовой", при том, что парень вообще ни в зуб ногой, в какой-либо код/
Заливальщик троянов и вирусов, апаснастэ пиупиу:
TELE GA, [03.10.17 01:00] смотри TELE GA, [03.10.17 01:00] можно еще как то файлы TELE GA, [03.10.17 01:00] вливать? TELE GA, [03.10.17 01:00] типо клан значка? TELE GA, [03.10.17 01:00] или клан значок максимум TELE GA, [03.10.17 01:01] я думал вируса вписать туда TELE GA, [03.10.17 01:01] и как то залить что бы формат TELE GA, [03.10.17 01:01] оставался TELE GA, [03.10.17 01:01] не изменный
Любитель уязвимостей, нихрена не понимающий в коде и не знающий, что такое отладчик, а также просто прекрасный человек:
TELE GA, [03.10.17 00:48] я тебе реально говорю TELE GA, [03.10.17 00:48] не знаю функции дебагера TELE GA, [03.10.17 00:48] я думаю это какие то хуйни в патче TELE GA, [03.10.17 00:48] которые отслеживают TELE GA, [03.10.17 00:48] го даже я те дам ип зайдешь TELE GA, [03.10.17 00:48] через свой патч TELE GA, [03.10.17 00:48] покажешь кик TELE GA, [03.10.17 00:49] чет мало вериться что прям ты так маштабно все описал TELE GA, [03.10.17 00:49] 100% 1 раз заюзал и сплалися и все TELE GA, [03.10.17 00:49] покажи визуально TELE GA, [03.10.17 00:49] на любом сервере TELE GA, [03.10.17 00:49] на твой выбор TELE GA, [03.10.17 00:51] взял раздраконил меня n3k0, [03.10.17 00:52] ну право, смешно уже читать, честное слово. человек, который имеет свой пакетхак пробует меня убедить, что не знает что такое отладчик, а когда ему отказали в продаже - пытается заставить меня всеми правдами и неправдами продемонстрировать работу сплоита. ну надо же понимать границы и иметь уважение к собеседнику, ты тут не дропа себе берешь у всяких низкосортных социоблядей для расчехления дампов картона. не нужно считать собеседника за имбицила, пожалуйста, а то мне становится грустно. TELE GA, [03.10.17 00:54] бля чувак, я тебе реально написал TELE GA, [03.10.17 00:54] что я не знаю что такое дебагер TELE GA, [03.10.17 00:54] поверь я словами не бросаюсь, если сказал что даю слово пацана что я не знаю то знач я не зню TELE GA, [03.10.17 00:54] я же пакетник не писал n3k0, [03.10.17 00:54] тогда все что у тебя есть — лишь работа и заслуга других людей TELE GA, [03.10.17 00:54] у меня талант находить дырки TELE GA, [03.10.17 00:54] мне чисто плевать я заплатил за эту работу TELE GA, [03.10.17 00:55] юзаешь какую то проверку TELE GA, [03.10.17 00:55] если просто то что у тебя закрывается и у других в пиду такой крит
- 1
Нужна помощь с гео (LostWorld)
в Ядро сервера
Опубликовано
Если отключать увеличенный вес точек, которые граничат с непроходимыми элементами графа, то можно получить интересный кейс с диагональными точками, которые могут участвовать в конечном пути:
ooToo oTxxx oTxxx
Где о - открытая точка, x - непроходимая точка, а T - точка, которая попадет в результат поиска. В контексте обсуждаемой говноигры, это даст зацеп за угол и ломание экстраполяции движения на клиенте, и как следствие - кровавые слезы администратора сервера. Данный кейс надо учитывать и добавлять диагональным точкам граничащим с непроходимыми точками дополнительный вес.
Также, для сглаживания пути, могу порекомендовать этот алгоритм (следует применять после примитивной очистки средней точки из тех точек лежащих на одной оси, потому-что таким образом будет меньше проходов "тяжелой" очистки).
И да, если серьезно, то вес точки -- это одно, а эвристика -- другое. Не следует путать теплое с мягким.