Quantcast
Channel: Форум администраторов игровых серверов
Viewing all 7621 articles
Browse latest View live

[Point Blank] How to edit file pointblank th

$
0
0
How to edit file i3RefTex , i3Subset , i3Uil , i3UILib , i3VTex , i3VTexSub
pointblank v.41 TH

Продам проект. Срочно.

$
0
0


Доброго всем дня.
Вот и назрело решение продать своё детище La2Titan.ru
Сервер был открыт в 2007 году. Скоро будет 11 лет.
Сборка PTS от Ванганта + доработки.
Хроники Interlude. (Много дополнений).
Рейты всегда были х50. Сейчас х300. (При желании меняются).


Внимание! Проект продаётся только в 1 руки! Полностью рабочий проект готовый к запуску.

Кратко:
Проект продаётся полностью. Сайты, хостиги, домены, апдейтер,своё железо, админки, дизайн PSD, своё радио, личный кабинет, форум,группа VK, все рекламные материалы и т.д.

Причина продажи: Ушёл в оффлайн бизнес. Отсутствие времени. Просто надоело однообразие за 11 лет.

Прибыль за последнии открытия:
В среднем получалось 500-700к за открытие. За исключение последнего. Где то 400к только. Всю статистику по платежам могу показать наглядно.

Скептикам:
Сразу скажу. Проект успешный и каждое открытие приносит деньги. Доказательство - статистика в платёжном кабинете агрегатора. Есть свои ярые фанаты, которые играют на каждом открытии. Пару кланов ждут открытия. У меня лично нет времени и лишних денег на рекламу.

Некоторые фишки игрового сервера:
Летающий корабль до острова пиратов со своими особенностями.
16 автоматических ивентов!Каждый час что то новое.
Процентное улучшите вещей и оружия.
Система перерождений. (На каждый саб).
Новая система «Хербо-рун».
Мутация. Хамелеоны. Агатионы. Маскировка.
Механические чистильщики.
За каждый час игры в игре выдаётся специальная валюта.
И многое другое.
Подробнее о сервере можете посмотреть тут: http://la2titan.ru/promo

https://www.youtube.com/watch?v=fNwBC8l0ijQ


Список того, что продаётся:

Домены:
Основной сайт la2titan.ru + вспомогательные сайты для радио, админки.
Есть хостинг под апдейтер, под клиент и патчи.

Дизайн сайта PSD:
Если не изменяет память дизайн + вёрстка обошлись 70 000 рублей. Сейчас цены у автора дороже. А так же дизайн PSD под личный кабинет. Каждая страница сайта и Лк уникальны.


Админка:
Шикарная админка для управления сервером. Можно выдавать игрокам вещи, валюту, банить, смотреть любую информацию, статистику и многое другое.

Железо:
Сервер свой, стоит в дата центре в Москве. 1U. Покупался за 120 000 рублей. На 2 ксионах, 2 диска 15 000 оборотов. Онлайн держался 1000+ без лагов когда то. Подробные характеристики вышлю по запросу. Оплата ежемесячная 4200 рублей за место в стойке + интернет канал.

Личный кабинет:
Это отдельная тема. Проработан досконально. Есть встроенные игры. Даже рулетка. Игроки там просаживают немного денег). Очень удобные настройки и статистика прямо в личном кабинете. Вплоть до изменения количества выдаваемой донат валюты и поощрения за голосования.
https://www.youtube.com/watch?v=yesTTL1YZAA

Форум:
Покупалась лицензия. Дизай переделан под стиль сайта. Все актуальные заплатки стоят. Быстрый.

Апдейтер:
Дизайн и функционал делался под заказ.

Группа VK:
Живая. Люди голосуют, пишут. Ждут вайп).


Радио:
Уникальное радио. Где можно заказать музыку. Огромный плейлист. Есть любая музыка. Удобно вести прямые эфиры, ивенты, конкурсы и т.д и т.п.


Возможно я что то забыл. Вспомню, допишу.

Цена: 300к рублей. (Обычно на рекламу тратили 150-200. Считаю цену полностью оправданной. Сервер со своей историей и игроками.



Контакты:
Skype: La2admin
ICQ: 620472

Эмулятор сервера Timezero

$
0
0
Играл ли кто-нибудь из вас в игру Timezero?

офф сайт: http://www.timezero.ru

Мною был найден архив, похожий на эмулятор сервера для timezero.ru, ссылка:

https://cloud.mail.ru/public/CBo2/GY5yRghzG

Написан сервер, исходя из того что я узнал, на Delphy 7.



Давайте вместе рабираться как его запустить и настроить.

Видео по теме:
https://www.youtube.com/watch?v=JvSr5iFuox4

Как вы видите в видео, название программы timezero without mail.ru совпадает. Похоже это тотже эмулятор.

Отписывайтесь в теме у кого получится запустить.

Настрою ленты плагина WPGrabber для WordPress

$
0
0
Настрою парсинг с любых сайтов, при желании возможен перевод, поиск и замена любых частей теста.
Использую в ленте "дополнительный шаблон обработки"
Доноров предоставляете вы - я настраиваю. @servakov (https://t.me/servakov)

Пример парсинга ленты foto-interiors.com плагином wpgrabber


Пример парсинга ленты remortira.ru



Стоимость настройки 1 ленты (ссылки) 200 руб. (заказ от 10 и более лент по цене 150 руб).
Перенастройка неработающих лент 100 руб. (Только заказанных и настроенных у меня.)



JTS Source 2018

$
0
0
Шел однажды Протагонист по бескрайним просторам Тамриэля. Путь был долгий, время близилось к глубокому вечеру, еще один день месяца Огня Очага подходил к концу. Протагонист решает сделать привал.
На утро, открыв глаза, он обнаруживает недалеко от себя странно одетого молодого мага, перемещающегося на непонятной магической штуке с двумя колесами, а в руке держит светло-металлический некрономикон с выгравированным яблоком по центру.
Протагонист, почувствовав угрозу, схватил свой меч и закрылся щитом. Маг, увидев Протагониста, немедленно устремился к нему, как будто все это время искал именно его. Дистанция сокращалась очень быстро, перемещения мага на непонятном двемерском механизме напомнили ему самые страшные подземелья Сиродила с личами. Протагонист приготовился и решил изучать тактику нового врага, закрывшись щитом. Однако на расстоянии двух ударов маг остановился и начал диалог:
“Тоже за закладкой?”
Протагонист фыркнул непониманием.
“Или уже нашел?”
“Я не колдую” - отвечает Протагонист, подумав, что речь о закладке для некрономикона
“А, значит нашел уже.” - отвечает маг.

“Слушай, ты, наверно, из этих, рол-плееров да? Мне бы сейчас не помешали 3 миски жира троля. Взамен на них я могу тебе дать карту сокровищ. Что скажешь?” - продолжил маг.
Немного подумав, Протагонист поддался духу авантюризма и согласился на обмен, с мыслью о том, что все равно бы продал этот жир первому торгашу за 30 септимов. Он передал 3 миски с трольим жиром, а маг странную запечатанную карту сокровищ. Напоследок Протагонист спросил мага, зачем ему жир? Маг неразборчиво ответил что-то про zone-game и защиту клиента, после чего исчез за горизонт на своем двемерском механизме.

Протагонист развернул карту и увидел следующее:


На обратной стороне текст неизвестного автора:
Магические сферы Мебиуса сосуществуют только в паритете. Угловые сферы всегда имеют положительный заряд, однако обьединять их между собой могут только отрицательные, по всем направлениям. Звериным оком помечены исключительные сферы, именно сумму их зарядов нужно рассчитать чтобы найти синергию.

Начав подсчет Протагонист не заметил как бумажный свиток поглотил его и он оказался в неизвестном мрачном месте. Впереди него виднелось неизвестное двемерское устройство. На вход оно принимало ту самую синергию со свитка. На устройстве выгравирована надпись Integer и какой-то непонятный маршрут:
Дважды направо, четырежды налево, один раз направо, шесть раз налево.
Для Протагониста такой маршрут не имел никакого смысла, однако поместив синергию в устройство он все же получил из него ключ, в тот же момент устройство исчезло, после чего Протагонист решил отправиться к далекому свету в кромешной тьме. Прибыв к огню он обнаружил каменные врата с надписями на дверях, окруженных горами костей. Надписи гласили: “Проход откроется лишь обладателю ключа, ведущему подсчет как если бы у него было 16 пальцев на руках”. У Протагониста было 10 пальцев, однако это не помешало ему вообразить то, что у него есть еще 6 дополнительных, помещая ключ в двери.

Двери медленно открывались, за ними начинали виднеться горы золота и драгоценных камней, а в центре комнаты огромная платформа с сундуком на ней. На платформе было написано: “Лишь зеркально противоположный ключ откроет эти сокровища тому, кто считает по 16 пальцам”, а ниже непонятная Протагонисту запись: https://mega.nz/#!lgVkhKoR!lkH1AYZEw...gU6eExVEM6FWNU
Открыв сундук Протагонист получил непонятную ему диковинку, которой однажды непременно воспользуется.

[Point Blank] UDP3 bc.log

$
0
0
Hi i'm working on udp3.

I've fixed spawn and I'm now working on Packet 3.

The server send back the worked data to both client, but the bc.log give that error and I see all the player stopped on spawn.

(this error is given for all packet 3 answer)
Код:

[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:23s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:24s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:25s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:26s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:26s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:27s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:27s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:28s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:28s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:29s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:29s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:30s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:30s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:31s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:31s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:32s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:32s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:33s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:33s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:34s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:34s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:35s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:35s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:36s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:36s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:37s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:37s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:38s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:38s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:39s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:39s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:40s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:40s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:41s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:41s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:42s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:42s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:43s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:43s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:44s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1
[2018/5/26-19h:23m:44s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 0
[2018/5/26-19h:23m:45s] UDP Out nUserIdx != SLOT_DEDICATION_IDX:nUserIdx= 1

Anyone know why give that error?

Услуги по дизайну от MexVision!

$
0
0
Предоставляю услуги по дизайну сайтов/форумов.
Я как дизайнер, зарекомендовал себя уже давно, но на данном форуме впервые.

Свободно работаю в Photoshop, Illustrator.

Так как на данном форуме я новичок, готов взяться за роботу с заниженными ценами.

Вот одна из моих последних работ.
Она кстати в продаже.



Связь:
Skype: mexsmg2012

Добавлено через 16 минут
Вот еще несколько участков макетов для оценки качества работ.

Raid Boss with effect

$
0
0
Представляю вашему вниманию бесплатного Raid Boss с эффектом.
Написан изначально для Interlude Хроник.
Пользуйтесь кому нужно)
По всем вопросам обращайтесь в скайп: iPerfect_Dev
https://cloud.mail.ru/public/G7bu/4Toc3v3yS


[ПРОДАМ] PSD макет WoW

$
0
0
Всем привет, продаю свой новый игровой PSD макет на тему игры World of Warcraft, кому интересно можете обращаться в ЛС на форуме, а так же:
Skype:* Millennium671
Вконтакте - страница
Посмотреть его в оригинальном размере можете ЗДЕСЬ
Шот макета:

Клиент -> меню

$
0
0
Привет. Скажите, какой файл отвечает за текст в этом меню?

[Point Blank] Struct BI?

$
0
0
Знает кто структуру пакета ?

[IMG][/IMG]

Куплю базы la2 номеров с платежных систем

$
0
0
Куплю базы мобильных номеров Lineage 2 проектов.
*Актуальность номеров за 2017-2018 год
*Выгрузка номеров с платежных систем Unitpay и др.
*Хроники Interlude и High Five
*Минимальный размер базы - 500 номеров.
*Демонстрация выгрузки баз с платежных систем по скайпу или на видео.

Предложения по Skype: whiteskype7777 или в ЛС на форуме. Сразу указываем объем базы, хроники и вашу цену.

Продам проект

$
0
0
Доброго времени суток!
К сожалению, ввиду неумелых действий человека, который отвечал за проект в который в общем счете было влито порядка 700.000 рублей - вынужден выставить на продажу.

Сайт Lineagers.Ru

В проект входит: доменное имя lineagers.ru (существует с 2012 года) и lineagers.pro, сайт был рекламирован во всех известных каталогах начиная от ТОП VIP l2oops заканчивая директом и адвордсом. На данный момент в день 200-300 чистых уников посещает сайт.
Фирменный трейлер с большим количеством живых просмотров, и по сей день люди наталкиваются на это видео и переходят на сайт:
https://www.youtube.com/watch?v=O24_UXUHQ7o
Группа в VK с 10к подписчиками и множеством оформленных постов.
Веб обвязка MMOWeb, 2 авторских шаблона (PSD + верстка).
Множество рекламных баннеров как для l2top так и для google adwords и Yandex Direct
Сборки и базы данных не продаются.

Репутация проекта:

За короткое время поскольку рекламная кампания проекта была действительно масштабная, и денег не жалели на это - о проекте узнало 80-90% сообщества игроков. Мы проводили различные денежные конкурсы на стримах как до открытия, так и после, все деньги были исправно выплачены как победителям розыгрышей, так и кланам, которых мы покупали для игры у нас. Никого не обделили, и репутацию проекта сохранили в чистоте.

Состояние проекта на данный момент:

Было два сервера, Interlude и С4, оба сервера закрыты.

Донат:
На Interlude за неделю удалось собрать около 200 000 руб и все на этом.
На C4 собрали тысяч 20 не больше.

Кому может быть интересно предложение:
Если вы не дилетант, не новичок в сфере открытия игровых серверов, то вполне может воспользоваться готовым именем у которого есть чистая репутация перед игроками и кланами, кланы не будут просить никаких предоплат для игры, поскольку уже имели с нами дело и их не обманули. Бонусом идет трейлер и дополнительный автономный трафик в виде 200-300 уников в день (чистых).

Кому интересно предложение, пишите в ЛС за подробностями.

[Point Blank] Stuct Death?

$
0
0
Структуру протокола смерти не подскажете?

[Point Blank] Help UDP3 HP , Damage , Object , Death

$
0
0
Help Structure UDP3 HP , Damage , Object , Death


Добавлено через 35 секунд
@PROGRAMMATOR Help Structure UDP3 HP, Damage, Object, Death

ОС для сервера (опрос)

$
0
0
На какой ОС предпочитаете держать сервак и почему?

[Point Blank] need to fix connection

$
0
0
This files was shared : https://www.sendspace.com/file/260tkq

and i need some help :

i need help ? i have vps have 2 ips (local ip : run server on it , Public ip : using it to make the players login the game throw using port forward , but it did not work with me ?)

@PROGRAMMATOR @Awiion

[Point Blank] UDP3 POSITION ERROR

$
0
0
UDP3 Event Position Error how to fix



@PROGRAMMATOR

RUS:
вы что-то понимаете?
ENG:
Do you understand something?

BattleUdpReceive
Код:

                                else
                                        {
                                            send.buffer.writeByte(4);
                                            send.buffer.writeByte(255);
                                            send.buffer.writeFloat(udp.time);
                                            send.buffer.writeByte(udp.session);
                                            send.buffer.writeShort(udp.length);
                                                        send.buffer.writeInt(0);
                                                        //send.buffer.writeBytes(udp.bytes3.clone()); //*UDP3*// 
                                                        //asyncEvent(udp.read, r, p, udp, send.buffer);
                       
                                                        try
                                                        {
                                                                asyncEvent(udp.read, r, p, udp, send.buffer);
                                                        }
                                                        catch (Throwable e)
                                                        {
                                                                Software.setColor(Color.YELLOW, Color.BLACK);
                                                    logging("ERROR", true);
                                                    Software.setColor(Color.WHITE, Color.BLACK);
                                                        }
                                        }
                                        for (Player c : r.players.values())
                                        {
                                                if (c.state == SlotState.BATTLE && c.sender != null && r.isUDP(c.slot, p.slot == r.leader))
                                                        ctx.writeAndFlush(new DatagramPacket(Unpooled.copiedBuffer(send.buffer), c.sender));
                                        }
                                }
                        }
                                        break;
                                }
                       
                    send.close();
            }
            catch (Throwable e)
            {
                        Logger.gI().info("errorUDP", e, "", getClass());
            }
            finally
            {
                    if (receive.refCnt() != 0) receive.release();
                    if (udp.read.refCnt() != 0) udp.read.release();
                    if (send.buffer.refCnt() != 0) send.buffer.release();
                ReferenceCountUtil.release(msg);
            }
            udp = null;
        }

AsyncEvent
Код:

public void asyncEvent(ByteBuf read, Room r, Player p, UDP_Model udp, ByteBuf sender) throws Throwable
        {
                byte opc = read.readByte();

                UDP_P2P subHead = UDP_SubHead.getSubHead(opc);
                subHead.slot = read.readShort();
                subHead.length = read.readShort();
                subHead.flag = read.readInt();

                BattleUdpBuffer ss = new BattleUdpBuffer();

                ss.buffer.writeByte(opc);
                ss.buffer.writeShort(subHead.slot);
                ss.buffer.writeShort(subHead.length);
                ss.buffer.writeInt(subHead.flag);
               
                if ((subHead.flag & 0x04) > 0) //Pos Rotate
                {
                        UDP_PosRotation half = new UDP_PosRotation(read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort());
                        p.pos = half;
                        ss.buffer.writeShort(half.posX);
                        ss.buffer.writeShort(half.posY);
                        ss.buffer.writeShort(half.posZ);
                        ss.buffer.writeShort(half.camX);
                        ss.buffer.writeShort(half.camY);
                        ss.buffer.writeShort(half.area);

                        Software.setColor(Color.GREEN, Color.BLACK);
                        core.models.MapLocation map = MapsLocalXML.gI().get(r.map, half.area);
                        if (map != null)
                        {
                                RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(map.local)));
                                System.out.println(" [" + map.index + "] " + map.local);
                                System.out.flush();
                        }
                        else
                        {
                                //RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(half.area)));
                        }
                        Software.setColor(Color.WHITE, Color.BLACK);
            Software.setColor(Color.CYAN, Color.BLACK);
                        String local = null;
                        logging("[Burning Hall] Slot " + udp.slot + "; " + local, true);
            Software.setColor(Color.WHITE, Color.BLACK);
                        subHead.flag ^= 4;
                }
                ss.buffer.writeBytes(Unpooled.copiedBuffer(read));
                BitShift.onlyEncrypt(ss.buffer, udp.length);
                sender.writeBytes(Unpooled.copiedBuffer(ss.buffer));
                ss.close();
               
                int k = 0;
                if (k == 0)
                        return;
               
                if ((subHead.flag & 0x01) > 0) //ActionState
                {
                        int acao = read.readInt();
                        UDP_Action action = UDP_Action.valueOf(acao);
                        if (action.value > 0)
                                RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(action)));
                        ss.buffer.writeInt(acao);
                        subHead.flag ^= 0x01;
                }
                if ((subHead.flag & 0x02) > 0) //Animation
                {
                        short value = read.readShort();
                        ss.buffer.writeShort(value);
                        subHead.flag ^= 0x02;
                }
                if ((subHead.flag & 0x08) > 0) //Use Object
                {
                        short value = read.readShort();
                        ss.buffer.writeShort(value);
                        subHead.flag ^= 0x08;
                }
                if ((subHead.flag & 0x20) > 0) //Radio Chat
                {
                        UDP_Chat radio = UDP_Chat.valueOf(read.readByte());
                        byte area = read.readByte();
            Software.setColor(Color.YELLOW, Color.BLACK);
            logging(" Slot " + udp.slot + " is release a radio chat: radId, localId [" + radio.value + ";" + area + "]", true);
            Software.setColor(Color.WHITE, Color.BLACK);
                        ss.buffer.writeByte(radio.value);
                        ss.buffer.writeByte(area);
                        subHead.flag ^= 0x20;
                }
                if ((subHead.flag & 0x40) > 0) //HP Sync
                {
                        UDP_HPSync hp = new UDP_HPSync(read.readShort(), false);
                        if (hp.life < 1)
                                hp.death = true;
                        logging(" HP Sync slot " + p.slot + " >> hp " + hp + " death: " + hp.death, true);
                        RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf("[HP] Life " + hp + " death: " + hp.death)));
                        ss.buffer.writeShort(hp.life);
                        subHead.flag ^= 0x40;
                }
                if ((subHead.flag & 0x100) > 0) //Object Status
                {
                        ss.buffer.writeShort(read.readShort()); //unk
                while (read.isReadable())
                {
                  int type = read.readByte();
                  if (type == 8) //Jogador
              {
                  int objid = read.readShort();
                  int unk1 = read.readShort();
                  byte byte1 = read.readByte();
                  int unk2 = read.readShort();
                  byte byte2 = read.readByte();
                  int hp = read.readShort();
                  ss.buffer.writeByte(type);
                  ss.buffer.writeShort(objid);
                  ss.buffer.writeShort(unk1);
                  ss.buffer.writeByte(byte1);
                  ss.buffer.writeShort(unk2);
                  ss.buffer.writeByte(byte2);
                  ss.buffer.writeShort(hp);
                  Software.setColor(Color.GREEN, Color.BLACK);
                  logging("hitPlayer: objIdx: " + objid + "; unk1: " + unk1 + "; unk2: " + unk2 + "; hp: " + hp, true);
                  Software.setColor(Color.WHITE, Color.BLACK);
              }
              else if (type == 3)
              {
                  int objId = read.readShort();
                  int unk1 = read.readShort();
                  int partIdx = read.readShort();
                  boolean destroyed = read.readBoolean();
                  Software.setColor(Color.YELLOW, Color.BLACK);
                  logging("hitObject: objIdx: " + objId + "; partIdx: " + partIdx + "; unk: " + unk1 + "; destroyed: " + destroyed, true);
                  Software.setColor(Color.WHITE, Color.BLACK);
                  ss.buffer.writeByte(type);
                  ss.buffer.writeShort(objId);
                  ss.buffer.writeShort(unk1);
                  ss.buffer.writeShort(partIdx);
                  ss.buffer.writeBoolean(destroyed);
              }
              read.discardReadBytes();
                }
                        subHead.flag ^= 0x100;
                }
                ss.close();
        }

L2J-Devs (High Five) Open-Source

[Point Blank] Request Code Encrypt Udp 3

$
0
0
How to encrypt UDP3 ?
@PROGRAMMATOR
Viewing all 7621 articles
Browse latest View live