[Source & Client] Lineage 2 Final Rising

finfan

Выдающийся
Местный
Сообщения
93
Розыгрыши
0
Репутация
565
Реакции
149
Баллы
1 335
Праздник едет, пора врываться с шарами своего говна, согласно традициями Zone-Game! FeelsAmazingMan, может кому-то пригодится?

Исходник: aCis 340 (20) modified
Клиент: Interlude (modified)
Java: 8.0 (base memory use: 2GB)




Password: ff7

Внимание! Core.dll запакован темидой, Windows Defender и другие антивирусники рассматривают его как вирус, но в любом случае, решать вам.

Main Design Programming: FinFan (y2016-2017)
3S (Single Special Systems) Programming: Pointer*Rage (y2016)

Описание: События происходили спустя 20-лет после событий Interlude. Развязка и завязка сюжетной основы должны были вбирать в себя эпоху Последнего Восхода, в которой деятельность Shillien (Goddes of Destruction) была бы пресечена союзом Орденов Восхода (Final Rising). В связи с чем, текущие на тот момент события Goddess of Destruction имели бы конкретное объяснение в том, что они не сбылись (будущего нет Карл!). Мир должен был выбрать иную ветвь развития, в котором индивидуальность каждого обитателя Elmore-Aden была бы превыше всего.

Цель:
1. Уничтожение рандома в большей его части, чтобы в PvP не было побед исключительно из-за везения у 2-ух одинаковых игровых классов.
2. Исполнение отравлений и кровотечений на RPG-логическом уровне, который подразумевает увеличение наносимого ими урона и других манипуляций.
3. Создание фракционной системы, которая бы состояла из 4-ёх Орденов с разными целями и задачами. Смысл вступления в Ордена остаётся загадкой, поэтому система не была реализована, но какие-то куски наработок там валялись.
4. Реализация Боссовых "влияний" - это такая штука, когда каждый босс влияет на ту "плоскость" в которой находится. Для теста были реализованы "Ядовитые поля Orfen" войдя в которые, игрок начинал заражаться ядом в течение 60-ти секунд, после чего, нахождение на территории Orfen наносило ежесекундный урон и лишь её гибель отменяла данный эффект. Если Босса не было в живых, то зона была доступна для нормального исследования и охоты. EXP/SP в таких зонах удваивался а то и утраивался вне зависимости от силы самих монстров в ней.
5. Мощная реализация уникальный скилов, которые были бы атмосферны по отношению к именам классов родословной. Эта же задача включала в себя и полный анализ- доскональное изменение скиловой системы персонажей. Такие вещи позволяют более свободно чувствовать себя в плане создания собственного билда и единственного/неповторимого стиля игры.

Внимание! Самой основной задачей была прокачка LVL'а в разделе программирование игр и геймдизайна, что в дальнейшем помогло перебазироваться на C++ (не совсем с головой) и продолжать изучение Java уже в более широком кругу её спектра.

0YOrBKCSOrw.jpg Итак, создав нового персонажа и войдя в игру, первое что попадётся вам на глаза, это HTML страница. Это не новости сайта, это апдейты версий, который выпуливаются из датапака согласно последнему обновлению. Всё что вы делаете - это заполняете его ручками и суёте .\data\data\html\updates\ откуда и происходит обработка (какой апдейт брать). Чтобы понять работу искать здесь: package finalrising.updates; Её можно и удалить ибо это была практическая частица большой мечты, можно просто вручную всё делать.
Ajcz9kbqTlmTdeEOFzwPVA.png
Отображение апдейтов происходит по их дате, так же их можно пульнуть с сортировкой и созда NPC книжную полку, которую можно разместить в любом здании (магазины, церкви и т.д.) где игрок сможет прсомтаривать все апдейты сервера, т.к. в коде хранится лист этих вот хренотеней.

0YOrBKCSOrw.jpg Когда вы решите убить гремлина, вы увидите что-то на подобии вот такого: K27mNDJlSqqdcPv_1wD0Dg.png . Это не повышенные рейты, это новая система прокачки, которая берёт за основу коэффициент силы монстра. Найти его калькуляцию можно тут Msn8OVRJT9CTHFDvf16mfA.png
Это отсылка к основной из целей проекта, сделать прокачку динамической в зависимости от игрового класса, статов монстра и сложности его AI.

0YOrBKCSOrw.jpg Говоря о коэффициенте силы, вы так же заметите, что у некоторых монстров есть странные показатели статов:
Статы гремлина: mY-l_MbUTKiB9gGDU_QeMQ.png
Статы келтира: Vv3a_IyMRcyUuUISLCiVeA.png
Все знают, что начальные параметры монстров исключая боссов, имеют стандартные показатели, но здесь всё чуть изменилось. Чем сильнее монстр, тем выше у него один из ведущих показателей, а свой параметры он вообще склонен получать случайно в зависимости от своего AI. Поэтому при каждой перезагрузке сервера параметры спавнящихся монстров будут разными. Максимальная разница в 20 ед., и редактируется это в NpcTemplate.java.

0YOrBKCSOrw.jpg След. что вы заметите начиная бежать в первую деревню, это что при убийстве гварда - вам начислят карму, а гвард может высказать всё что думает.
wKq_uFoqRiOYYe4ULiAYGg.png
OakcNtolS6OfwnZjyYPWgg.png
Внимание! карма начисляет лишь за одно убийство, мне не нужно было давать карму на постоянной основе как за игроков, поэтому она выдаётся в случайном кол-ве лишь при первом убийстве гварда и только в том условии, что вы чисты (без кармы). Это просто фан-нежданчик часть. Не более того. Редактируется в L2GuardInstance.java.

0YOrBKCSOrw.jpg Телепортация теперь является мостов из одного гороад в другой. Она не ТПшит на локи, этим занимается другая система передвижения. Телепорты стоят очень дорого и все они - целевые. Для дворян они бесплатные, для бомжей - недоступные, для богатых - им решать.
HXfWHPAWQsyNujfU_QDNOw.png
Чтобы попасть на нужные локи, телепортёров заменяют страйдеры и их менеджер, которые стоят не дорого и позволяют накапливать EXP при передвжиении на них.
7jpkznAzQ5ajJBfI-_kOVw.png
Редактирование всех этих дел проходит здесь:
WxSAjQy6Q6SQ27eB41uPMQ.png
Изначально планировалось создать систему передвижений из поездов, но это сделать не получилось, так как расстановка рельс это долгий процесс, поэтому было решено сделать возможность передвижения на двух видах траспорта:
Виверны - для труднодоступных мест вроде ToI, пещеры антараса и т.д.
Страйдеры - для остальных мест.
В конечном итоге были сделаны только страйдеры, но загатовки ест ьи для виверн, т.е. всё что надо, это путь маршрута из точки А до точки Б и соответствующий вызов маунта у инстанции.
Редактирование дороги езды страйдера: \data\xml\travel_routes

0YOrBKCSOrw.jpg При открытии CBB (Alt + B) вы увидите вот такую хрень:
tIbybaEAQGCWFyrp8RMS5w.png

Это окно статуса персонажа - дополнительное. Там можно:
  1. Прокачивать параметры (STR/DEX/CON etc...) за очки GPP (получаются с уровнем) (Так же можно сбросить один раз за игру)
  2. Вкачивать мастерство для профессии, используя MAPO (mastery points) (начиная со 2-ой профы, даются с повышением уровня) (Так же можно сбросить один раз за игру)
  3. Наблюдать за скрытыми в игре (ранее) параметрами, такими как регенерация HP, MP и т.д.
  4. Наблюдать за всем видами сопротивлений
  5. Наблюдать за ментальной силой и защитой персонажа

0YOrBKCSOrw.jpg Касаемо сопротивлений, сюда я тоже добрался. Теперь все эффекты (большинство их) имеет параметр с окончанием Vuln, есть так же сопротивления с окончанием Res и вот об этих двух кандидатах мы поговорим чуть ниже.
FearVuln - снижает время действия эффектов Fear.
FearRes - снижает шанс получить эффект Fear.
Как упоминалось ранее, проект вёл главной цель - уничтожение рандома, но где-то, этот рандом мне был необходим (файты с боссами). Для таких целей, была создана система сопротивлений, которая снижает время действия эффектов. Т.е. базовый шанс прохождения всех эффектов становится 100%, а сопротивление лишь уменьшает их время действия на персонажах, но есть особенный вариант резиста, который снижает шанс их прохождения (тот самый, использующийся в ла2)
В связи с данными изменениями, все скилы персонажей и баферов были переработаны с Res составляющей на Vuln.
Res - очень редкий параметр, который на деревьях не растёт!

0YOrBKCSOrw.jpg В игру введены две полнцоенные и новые профы. Одна из них Характеризует хз какое направление, вторая исполняет чётко поставленную задачу в саппорте. После изменения эффект системы, было решено оставит ьв игре одного и единственного бафера - Prophet, который получил все бафы от своих коллег эльфов.

Эльфийские профы Elven Elder и Shillien Elder были изменены.
SHillien Elder -> Apostate/Alchemist/Biolog
TOL6ZF9OTn6l281RFBIVtw.png cFFEVs0FSVufvN3whQuG4w.png RX3NKZh7R3uUZl19cALWuw.png

Он умеет кидаться зельями, усиливать все эффекты от зелий, создавать Эксусов (прототип саммонов с механикой покемонов (вторая форма и т.д.)). Профессия может трансмутировать вещи, превращая их в первозданные источники - ломает меч и получает материалы его изготовления (может ломать любой предмет у который в игре можно изготовить имея рецепт и ресурсы). Профессия тестировалась в 4 рыла и получилась играбельно-крутая профессия, которая больше исполняет роль саппорта, но так же может и надрать задницу врага. Броски зелий можно реализовать через Respect, тогда броски потишенов получатся совсем красивыми и реалистичными по максимуму. Для бросков зелий, вам надо будет выставить их на Soulshots авто режим на панели скилов и юзнуть скилл Throw Potion.

Теги данной профы: #хилкивсем #крафтзелий #пикачувбой #трансмутациянормробит #пламенноезельеврыло

Elven ELder -> Oracle/Scholar/Priest
YRdYMFI9RVe8ebeOtVZ3rA.png dvycHJHORmqRSYUMaqWzfQ.png T5b9lcHHQMyxlzEaWNUBPA.png

Данная родословная показывает себя плюсом в PvP системе. Она умеет воровать бафы, скилы, канселить скилы, канселить бафы, давать щит на союзника котоырй поглощает магический урон, давать щит на поглощение физического (что-то одно), создавать ситуацию мультикаста (кастуя 1 скилл, после завершения накастовывается ещё один такой же со скоростью 0.5 сек) и т.д.
Теги данной профы: #нужнамана #манынет #немогуиззаманы #сранаямана

Внимание! Данная профа не сбалансирована, она делалась первой, но из-за того что идея изначально была Друид, я потерял боевой дух и вдохновение, поэтому сделал её такой какая она будет сейчас.

0YOrBKCSOrw.jpg Кокнретно изменений клиента, я выделю основные.
Классы скилов .usk и т.д. лучше не удалять ;)
Изменено окно постановки тату, так как вместо тату приехала новая система материй (вы сможете найти её в datapack с одной единственной тестовой рабочей тату) Конкретно, там были убраны STR/DEX модификации (показываемые клиентом), вы можете попросить Moveton об услугах и он всё замутит по феншую.

0YOrBKCSOrw.jpg И это далеко не всё, на рассказа обо всём мне пришлось бы писать целую книгу из 500 страниц, чтобы детально объяснить зачем я это делал. Поэтому выкладываю документы, которыми я руководствовался на протяжении всей разработки.

, который не совсем совпадает с оригиналом реализации, но там есть многие вещи, которые надо знать.
Так же , не всеми но частью.

Шара с разрешения поинтера и меня.
Разработка данного проекта была ведена с душой и логикой в совокупе, столько часов общения с поинтером и его помощь в целом не может быть описана никакими словами, это тот момент, когда программист уровня НГ++ (дарк соулс сложность :)) любит своё дело и делает это ради фана.
Так же стоит отметить, что за всё время его помощи, он ни разу не взял с меня ни копейки и (по сути к моему делу) относился как к своему родному, за что ему - Большое! Огромнейшее! Человеческое! Спасибо! В моменты разработки я чувствовал себя геймдизайнером и программистом в одном лице, и это самое охренительное чувство, которое я когда-либо испытывал (оргазм тут и рядом не валялся FeelsAmazingMan)!

P.S. Без сомнений, этот опыт проектирования и разработки, останется для меня самым запоминаемым и самым весёлым в моей жизни nichoci!

P.S.2. Внимание! при старте проекта у вас может быть косячок в виде не прогруженых материй, но это норма, просто большинство из них не реализованы, вот он и ругается.
Можно ли его ставить на лив? На свой страх и риск, спустя 2 года я бы много чего там переписал касательно кода, однако если его доработать в плане древа мастерств у классов, то для PvP сервака сгодится с головой.

Если вы не программист, то ни о каких ливах и речи быть не может. Легаси там всё же осталось + мусор от меня остался, который бы желательно почистить.

Всем добра и приятных праздников. Здоровья всем!

P.S.3 присутствует остров Хеллбоунд от deMEV который там просто хз чё делает ;). Удалите его из клиента и будет вам счасть (замените оригинальными файлами водных квадратов) или закажите у deMEV геодату на это дело с запилом своих ствистоперделок. ПО изначальной задумке там должен был сидеть Гильгамешь со своей братвой и бить морду игрокам.
 

Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Спасибо тебе :)
С наступающим
 
а ты шо сдулся?)
 
finfan, ясн, за документацию спасибо, сам сурс для меня малоинтересен а вот идеи и суть другое дело. Почитаю на досуге.
 
finfan, ясн, за документацию спасибо, сам сурс для меня малоинтересен а вот идеи и суть другое дело. Почитаю на досуге.
Конкретно сейчас я занимаюсь полностью новым гейм-дизайном, ну и соответственно легаси код переписываю с нуля. Я вряд ли доведу это до конца, но практика по связыванию всех "игровых лабиринтов" поможет мне в дальнейшем писать своё детище с абсолютного нуля, ведь ещё так много тем в разработке игр окутано туманом тайны.
 
finfan, Желаю успехов, сам пилю проект уже как 1.5 года, но тут самое опасное не остаться в стадии вечной разработки. К тому же понял, что если нету еще 2-3 людей под рукой именно для обдумывания систем и других взглядов тоже очень плохо. Один человек увы не как не может всё предусмотреть, и может пропустить уйму ошибок критических (или конфликтов в архитектуре и связки систем) . Само собой и при группе людей будут ошибкипри продакшене, но всё равно без них явно одному более менее стабильный продукт не сделать, или понадобится овер много времени + фокус группа постоянная и тд.
 
Последнее редактирование:
Ждём продолжения :OnionHead: Нужно реанимировать вселенную л2 :Cowboy:
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Твои идеи, твои идеи - прост огонь (твое бы дело в русло классика).
 
Огромное спасибо за шару, идеи космос! Сам только начинаю в этом деле но надеюсь что твои записи очень помогут в "выравниваниирукизжепы" в коддинге)
 
С новым годом
 
есть у кого архив с документацией?
 
Назад
Сверху Снизу