Перейти к содержанию

finfan

Новичок
  • Публикаций

    6
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент finfan

  1. до 2к онлайна на лайве, свыше 2к ничего не могу сказать увы.
  2. Доброго времени суток друзья! Есть на руках эмулятор, который разрабатывался с 2014 года. На данный момент эмулятор разрабатывается в закрытом режиме. Мы ищем 5 человек, которые получат его бесплатно в замен на фидбэк (тестинг). Язык: Java, Groovy Основные фишки: Реализация GameWorld'ов (аналог инстансов) Новый движок зон Шаблонизатор velocity для билда ваших любимых HTML КаГ на оффе спавн ACP из коробки Божественный чат фильтр Вменяемые формулы (не все xD) DROP каГ на оффе Поддержка fence Dependly inject Божественный рефактор global AI (вменяемый) Поддержка модулей (extensions) Существенное улучшение сетевого потока (позволяет держать больше игроков с наименьшими лагами у клиента) И т.д. т.к. вы всё равно не получите исходы, вам не надо знать больше ;D! Дальнейшие планы: Полный рефактор работы с базой и подключение хибернейт (люди смогут безболезненно поменять базу данных с MySQL на Postgres или любую другую) Реврайт всех дверей, т.к. сейчас они не очень лол ;D Замки/Форты и их осады Party система Кланы Олимпиада (вынос её в отдельный модуль) REST API Модульные (то что можно подключать и отключать - как плагины) проекты: Олимпиада "Combo Breaker!" "Пикачу я выбираю тебя!" "Вызов дерзости" "Hunter X Hunter" "Dynamic Environment" "C.H.A.S.E.R." "Reaper" "Fairy Arcana" P.S. Чуть не забыл, ВСЕ фидбэкеры будут получать обновления БЕСПЛАТНО, БЕЗ РЕГИСТРАЦИИ и СМС.
  3. Можно тогда переменную counter сделать volatile и по плану всё будет нормально ;D либо синхронайз запулять там где нужно, хотя всё это - дерьмо, лучший вариант это листенер ;D
  4. Это просто примеры, вам надо смотреть конкретно свою реализацию. Вариант 1: int counter = registeredPlayers.size(); for(Player next : registeredPlayers) { if(next.isDead()) counter--; } if(counter <= 1) { //завершаем эвент } Вариант 2: //изначально имеем слушатель или костыль типо слушателя, который записывает данные. Лучший вариант void onPlayerDie(Player participiant) { // удаляем участника из листа если он отъехал registeredPlayers.remove(participiant); if(registeredPlayers.size() <= 1) { //завершаем эвент } } Вариант 3: // у нас в эвенте есть прееменная private int counter; // которая считает убитых при их смерти counter++; //и ещё есть максимальное кол-во участников в текущем эвенте private static final MAX_PLAYERS = 20; // определяем после counter++ есть ли победитель? boolean hasWinner = MAX_PLAYER - counter <= 1; if(hasWinner) { //то завершаем эвент } Хороший Тон - Слушатель, т.к. нет особой вылазки в код. Не надо конкретно лазить в Event код чтобы менять что-то внутри его функционала.
  5. Праздник едет, пора врываться с шарами своего говна, может кому-то пригодится? Исходник: aCis 340 (20) modified Клиент: Interlude (modified) Java: 8.0 (base memory use: 2GB) Скачать исходник .RAR Скачать исходник .ZIP Скачать клиент 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 уже в более широком кругу её спектра. Документация Итак, создав нового персонажа и войдя в игру, первое что попадётся вам на глаза, это HTML страница. Это не новости сайта, это апдейты версий, который выпуливаются из датапака согласно последнему обновлению. Всё что вы делаете - это заполняете его ручками и суёте .\data\data\html\updates\ откуда и происходит обработка (какой апдейт брать). Чтобы понять работу искать здесь: package finalrising.updates; Её можно и удалить ибо это была практическая частица большой мечты, можно просто вручную всё делать. Отображение апдейтов происходит по их дате, так же их можно пульнуть с сортировкой и созда NPC книжную полку, которую можно разместить в любом здании (магазины, церкви и т.д.) где игрок сможет прсомтаривать все апдейты сервера, т.к. в коде хранится лист этих вот хренотеней. Когда вы решите убить гремлина, вы увидите что-то на подобии вот такого: . Это не повышенные рейты, это новая система прокачки, которая берёт за основу коэффициент силы монстра. Найти его калькуляцию можно тут Это отсылка к основной из целей проекта, сделать прокачку динамической в зависимости от игрового класса, статов монстра и сложности его AI. Говоря о коэффициенте силы, вы так же заметите, что у некоторых монстров есть странные показатели статов: Статы гремлина: Статы келтира: Все знают, что начальные параметры монстров исключая боссов, имеют стандартные показатели, но здесь всё чуть изменилось. Чем сильнее монстр, тем выше у него один из ведущих показателей, а свой параметры он вообще склонен получать случайно в зависимости от своего AI. Поэтому при каждой перезагрузке сервера параметры спавнящихся монстров будут разными. Максимальная разница в 20 ед., и редактируется это в NpcTemplate.java. След. что вы заметите начиная бежать в первую деревню, это что при убийстве гварда - вам начислят карму, а гвард может высказать всё что думает. Внимание! карма начисляет лишь за одно убийство, мне не нужно было давать карму на постоянной основе как за игроков, поэтому она выдаётся в случайном кол-ве лишь при первом убийстве гварда и только в том условии, что вы чисты (без кармы). Это просто фан-нежданчик часть. Не более того. Редактируется в L2GuardInstance.java. Телепортация теперь является мостов из одного гороад в другой. Она не ТПшит на локи, этим занимается другая система передвижения. Телепорты стоят очень дорого и все они - целевые. Для дворян они бесплатные, для бомжей - недоступные, для богатых - им решать. Чтобы попасть на нужные локи, телепортёров заменяют страйдеры и их менеджер, которые стоят не дорого и позволяют накапливать EXP при передвжиении на них. Редактирование всех этих дел проходит здесь: Изначально планировалось создать систему передвижений из поездов, но это сделать не получилось, так как расстановка рельс это долгий процесс, поэтому было решено сделать возможность передвижения на двух видах траспорта: Виверны - для труднодоступных мест вроде ToI, пещеры антараса и т.д. Страйдеры - для остальных мест. В конечном итоге были сделаны только страйдеры, но загатовки ест ьи для виверн, т.е. всё что надо, это путь маршрута из точки А до точки Б и соответствующий вызов маунта у инстанции. Редактирование дороги езды страйдера: \data\xml\travel_routes При открытии CBB (Alt + вы увидите вот такую хрень: Это окно статуса персонажа - дополнительное. Там можно: Прокачивать параметры (STR/DEX/CON etc...) за очки GPP (получаются с уровнем) (Так же можно сбросить один раз за игру) Вкачивать мастерство для профессии, используя MAPO (mastery points) (начиная со 2-ой профы, даются с повышением уровня) (Так же можно сбросить один раз за игру) Наблюдать за скрытыми в игре (ранее) параметрами, такими как регенерация HP, MP и т.д. Наблюдать за всем видами сопротивлений Наблюдать за ментальной силой и защитой персонажа Касаемо сопротивлений, сюда я тоже добрался. Теперь все эффекты (большинство их) имеет параметр с окончанием Vuln, есть так же сопротивления с окончанием Res и вот об этих двух кандидатах мы поговорим чуть ниже. FearVuln - снижает время действия эффектов Fear. FearRes - снижает шанс получить эффект Fear. Как упоминалось ранее, проект вёл главной цель - уничтожение рандома, но где-то, этот рандом мне был необходим (файты с боссами). Для таких целей, была создана система сопротивлений, которая снижает время действия эффектов. Т.е. базовый шанс прохождения всех эффектов становится 100%, а сопротивление лишь уменьшает их время действия на персонажах, но есть особенный вариант резиста, который снижает шанс их прохождения (тот самый, использующийся в ла2) В связи с данными изменениями, все скилы персонажей и баферов были переработаны с Res составляющей на Vuln. Res - очень редкий параметр, который на деревьях не растёт! В игру введены две полнцоенные и новые профы. Одна из них Характеризует хз какое направление, вторая исполняет чётко поставленную задачу в саппорте. После изменения эффект системы, было решено оставит ьв игре одного и единственного бафера - Prophet, который получил все бафы от своих коллег эльфов. Эльфийские профы Elven Elder и Shillien Elder были изменены. SHillien Elder -> Apostate/Alchemist/Biolog Он умеет кидаться зельями, усиливать все эффекты от зелий, создавать Эксусов (прототип саммонов с механикой покемонов (вторая форма и т.д.)). Профессия может трансмутировать вещи, превращая их в первозданные источники - ломает меч и получает материалы его изготовления (может ломать любой предмет у который в игре можно изготовить имея рецепт и ресурсы). Профессия тестировалась в 4 рыла и получилась играбельно-крутая профессия, которая больше исполняет роль саппорта, но так же может и надрать задницу врага. Броски зелий можно реализовать через Respect, тогда броски потишенов получатся совсем красивыми и реалистичными по максимуму. Для бросков зелий, вам надо будет выставить их на Soulshots авто режим на панели скилов и юзнуть скилл Throw Potion. Теги данной профы: #хилкивсем #крафтзелий #пикачувбой #трансмутациянормробит #пламенноезельеврыло Elven ELder -> Oracle/Scholar/Priest Данная родословная показывает себя плюсом в PvP системе. Она умеет воровать бафы, скилы, канселить скилы, канселить бафы, давать щит на союзника котоырй поглощает магический урон, давать щит на поглощение физического (что-то одно), создавать ситуацию мультикаста (кастуя 1 скилл, после завершения накастовывается ещё один такой же со скоростью 0.5 сек) и т.д. Теги данной профы: #нужнамана #манынет #немогуиззаманы #сранаямана Внимание! Данная профа не сбалансирована, она делалась первой, но из-за того что идея изначально была Друид, я потерял боевой дух и вдохновение, поэтому сделал её такой какая она будет сейчас. Кокнретно изменений клиента, я выделю основные. Классы скилов .usk и т.д. лучше не удалять Изменено окно постановки тату, так как вместо тату приехала новая система материй (вы сможете найти её в datapack с одной единственной тестовой рабочей тату) Кокнретно, там были убраны STR/DEX модификации (показыаемые клиентом), вы можете попросить Moveton об услугах и он всё замутит по феншую. И это далеко не всё, на рассказа обо всём мне пришлось бы писать целую книгу из 500 страниц, чтобы детально объяснить зачем я это делал. Поэтому выкладываю документы, которыми я руководствовался на протяжении всей разработки. Дизайн документ Final Rising, который не совсем совпадает с оригиналом реализации, но там есть многие вещи, которые надо знать. Так же документ с изменения скилов и будущими планировками, не всеми но частью. Шара с разрешения поинтера и меня. Разработка данного проекта была ведена с душой и логикой в совокупе, столько часов общения с поинтером и его помощь в целом не может быть описана никакими словами, это тот момент, когда программист уровня НГ++ (дарк соулс сложность :)) любит своё дело и делает это ради фана. Так же стоит отметить, что за всё время его помощи, он ни разу не взял с меня ни копейки и (по сути к моему делу) относился как к своему родному, за что ему - Большое! Огромнейшее! Человеческое! Спасибо! В моменты разработки я чувствовал себя геймдизайнером и программистом в одном лице, и это самое охренительное чувство, которое я когда-либо испытывал (оргазм тут и рядом не валялся FeelsAmazingMan)! P.S. Без сомнений, этот опыт проектирования и разработки, останется для меня самым запоминаемым и самым весёлым в моей жизни nichoci! P.S.2. Внимание! при старте проекта у вас может быть косячок в виде не прогруженых материй, но это норма, просто большинство из них не реализованы, вот он и ругается. Можно ли его ставить на лив? На свой страх и риск, спустя 2 года я бы много чего там переписал касательно кода, однако если его доработать в плане древа мастерств у классов, то для PvP сервака сгодится с головой. Если вы не программист, то ни о каких ливах и речи быть не может. Легаси там всё же осталось + мусор от меня остался, который бы желательно почистить. Всем добра и приятных праздников. Здоровья всем! P.S.3 присутствует остров Хеллбоунд от deMEV который там просто хз чё делает ;). Удалите его из клиента и будет вам счасть (замените оригинальными файлами водных квадратов) или закажите у deMEV геодату на это дело с запилом своих ствистоперделок. ПО изначальной задумке там должен был сидеть Гильгамешь со своей братвой и бить морду игрокам.
×
×
  • Создать...