Warcraft Combat Remake

» опубликован

Описание

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

Изменения

» Характеристики
  • Физическая атака
  • Физическая защита
  • Уклонение
  • Парирование
  • Блок
  • Критический удар
  • Точность
  • Скорость атаки
  • Магическая атака
  • Подавление магии
  • Магическая защита
  • Магический критический удар
  • Магическая точность
  • Скорость чтения заклинаний
  • Владение оружием
  • Защита от оружия
  • Отражение физических эффектов
  • Отражение магических эффектов
  • Стихийная атака
  • Стихийная защита
  • Сила
  • Стойкость
  • Реакция
  • Ловкость
  • Интеллект
  • Воля

Теперь предметы нужно надевать. Каждый предмет имеет свой ранг, броню и оружие можно модифицировать камнями, вставляя один камень в оружие или броню дает разные бонусы в зависимости от типа предмета. Предмет может иметь до 4 дополнительных характеристик.
» Характеристики оружия
  • Атака (физ/маг)
  • Критический шанс (физ/маг)
  • Критический множитель (физ/маг)
  • Скорость атаки
  • Радиус
  • Точность (физ/маг)
  • Разброс
  • Характеристики брони - Защита
» пример
  • Характеристики бижутерии - Поавление магии
» пример

Полноэкранный инвентарь

Являет собой инвентарь с 5 разделами под каждый тип предмета, 2 слота под оружия, 5 слотов под броню, и 3 слота под бижутерию, 25 ячеек в одном разделе
» скриншот
Функциональность:
  • Можно выносить предметы из раздела "зелья" к герою, нажав среднюю кнопку справа-снизу, тем самым используя их по возможности.
» скрин
  • Модифицирование предметов камнями, двойной клик мыши по камню, и потом по предмету, esc отменяет наведение (цвет выбора ячейки изменяется при попытке сокета)
  • Вес рюкзака, зависит от силы героя. При превышении лимита веса герой начинает терять скорость.
  • Отображение характеристик прямо в окне инвентаря.
  • Чтение книг (в будущем)
» скрин

Механика боя

Удары со спины и сбоку не могут быть заблокированы, и от них нельзя увернуться. Вы можете заблокировать или парировать критический удар. Есть возможность отражать урон во врага, отражать эффекты обратно. Исцеление зависит от характеристики силы исцеления, которую можно повышать. Так же теперь есть такие негативные эффекты как:
  • Оглушение
  • Паралич
  • Сон
  • Страх
  • Физическая немота
  • Магическая немота
  • Универсальная немота
  • Ослепление
Все негативные эффекты накладываются с шансом, но можно настроить так что бы эффект накладывался всегда. Если вы атакуете уроном с каким то негативным эффектом в конце который должен наложиться, он не будет наложен если урон ушел в уклонение или отражение.
Дополнительные варианты активации умений:
  • Требование нужного оружия
  • Эффекта
  • Позиции (сзади)
  • Определенного кол-ва здоровья
  • Отсутствия немоты

Доступные функции

EquipWeaponItem(unit u, item i, bool flag)
Одевает оружие в основную руку, кому, какой предмет, и flag отвечает за то снимаем ли мы или одеваем
EquipOffhandWeaponItem(unit u, item i, bool flag)
Тоже самое, только в левую руку
EquipShieldItem(unit u, item i, bool flag)
EquipArmorItem(unit u, item i, bool flag)
EquipJewelryItem(unit u, item i, bool flag)
Тоже самое для остальных предметов

CreateShieldItem(int item_id, real x, real y)
CreateJewelryItem(int item_id, real x, real y)
CreateArmorItem(int item_id, real x, real y)
CreateWeaponItem(int item_id, real x, real y)
Создает предмет по айди и координатам, возвращает предмет. При создании новых предметов следует пользоваться этими функциями
RemoveCustomItem(item i)
Уничтожает предмет который нам уже не нужен

BroadcastDamage(int status, real damage, unit for)
Транслирует полученный урон и статус по юниту, тексттагом. В основном используется в базовых функциях.
GetPositionDamageBonus(unit A, unit B)
Возвращает бонус урона юнита A от позиции относительно B
GetAttackStatus(bool damage_type, unit A, unit B, real bonus)
Берет тип урона, юнита атакующего, защищающегося, и бонус точности, возвращает статус атаки
GetCriticalChance(unit A, bool damage_type, real bonus)
тоже самое, только для крит шанса, бонус это бонус шанса
MagicalDamage(unit A, unit B, real amount, bool can_crit, bool unavoidable, int eff)
Берет атакующего, цель, значение, может ли урон быть критическим, не отклоняемый ли урон, и эффект, возвращает результирующий статус атаки
PhysicalDamage(unit A, unit B, real amount, bool use_attack, bool can_crit, bool unavoidable, bool is_sound, int eff)
Тоже самое, только дополнение используется ли базовая атака, и будет ли у урона звук оружия атакующего
HealUnit(unit A, unit B, real amount)
Исцеляет юнита B юнитом A значением amount
ApplyEffect(unit source, unit victim, real x, real y, int eff, int level)
Применяет эффект от юнита source по юниту victim если он существует, если нет, то задается null и пишутся координаты по которым будет применен эффект в x и y, сам эффект и его уровень

AddBuffToUnit(unit target, unit caster, int buff_id, int level)
Добавляет бафф цели target от юнита caster, баффом buff_id и его уровень (максимум 5 уровней)
RemoveBuff(int id, unit A)
Удаляет бафф на юните

PushMissile(unit from, int skill_id, real start_x, real start_y, real end_z)
Запускает снаряд от юнита from используя скилл skill_id в координаты x, y, z

OpenInventory()
Открывает инвентарь
CloseInventory()
Закрывает (кэп)

» Конфиг
        MAX_EVADE = 70.
        MIN_EVADE = 5.
        
        MAX_PARRY = 70.
        MIN_PARRY = 5.
        
        MAX_BLOCK = 70.
        MIN_BLOCK = 5.
        
        MAX_RESIST = 65.
        MIN_RESIST = 5.
        
        MAX_CRITICAL = 52.
        MIN_CRITICAL = 0.
        
        MAX_MAG_CRITICAL = 40.
        MIN_MAG_CRITICAL = 0.
        // защита
        VALUE_BY_PERCENT_1 = 11
        FIRST_DEF_LIMIT = 350
        VALUE_BY_PERCENT_2 = 15
        SECOND_DEF_LIMIT = 650
        VALUE_BY_PERCENT_3 = 19
        // маг атака
        MA_VALUE_BY_PERCENT_1 = 16
        MA_FIRST_LIMIT = 475
        MA_VALUE_BY_PERCENT_2 = 19
        MA_SECOND_LIMIT = 725
        MA_VALUE_BY_PERCENT_3 = 22
--

Дополнения

В карте сделано пару умений, команды для инвентаря и книги это inv и book в чат

» Чейнджлог
v1.1 beta - изменение метода наложения негативных эффектов со статусом (по рангу)
v1.0 beta - создание


Просмотров: 6 512

» Лучшие комментарии


Fakov #1 - 3 года назад 2
круто че
DARGO #2 - 3 года назад 3
это жа надо такое на варик запилить))
Hate #3 - 3 года назад (отредактировано ) 0
позже добавлю мануалы по корректному созданию юнита, бафа, эффекта, скилла, и снаряда с использованием этой наработки.
а и еще предметов
Локен #4 - 3 года назад 0
А я не понял что это. Можете растолковать глупому? XD
Hate #5 - 3 года назад 4
Локен:
А я не понял что это. Можете растолковать глупому? XD
система которая полност меняет стандартную механику боя и предметов в варике.
Melissa #7 - 3 года назад 0
Родные орбы работают?
Hate #8 - 3 года назад 0
зачем тебе стандартные орбы, когда эти же эффекты можно элегантно сделать через функцию OnAttack которая срабатывает при атаке.
Melissa #9 - 3 года назад 0
Hate, дык я просто поинтересовался, работают ли, пробежался глазами по тексту и вроде ничего не заметил))
Просто любопытно.
Hate #10 - 3 года назад 0
Melissa:
Hate, дык я просто поинтересовался, работают ли, пробежался глазами по тексту и вроде ничего не заметил))
Просто любопытно.
ну просто все вещи впринципе старые можно сделать по новому, например абилка в примере на карте - оглушение противника если ты уклоняешься от удара
сделана легко так
    void OnEvade(unit attacked, unit attacker){
        if GetUnitAbilityLevel(attacked, 'A001') > 0 {
            AddBuffToUnit(attacker, attacked, 'A01G', 1)
        }
    }
Melissa #11 - 3 года назад 0
А добавлять/убавлять длительность баффов можно?
Hate #12 - 3 года назад 0
Melissa:
А добавлять/убавлять длительность баффов можно?
в реальном времени или что ты имеешь в виду?
Melissa #13 - 3 года назад 0
Например:
Стоит юнит в оглушении, оглушён на 5 секунд, в него кидают молот бурь который добавляет ещё 5 секунд к длительности оглушения.
(такую системку запиливал кто-то на инфо, за основу системы ауры брались, конечно)
Hate #14 - 3 года назад 0
Melissa:
Например:
Стоит юнит в оглушении, оглушён на 5 секунд, в него кидают молот бурь который добавляет ещё 5 секунд к длительности оглушения.
ну вообще я не уверен как сейчас будут взаимодействовать разные оглушения :D ибо это еще по сути бетка
можно впринципе сделать настраиваемую возможность того, будет ли добавлять или заменять бафф такого же типа
Melissa #15 - 3 года назад 0
Ясненько, ну и без этого солидно)
Hate #16 - 3 года назад 0
вообще я планировал несколько позже сделать заменяемость эффектов в зависимости от ихнего ранга, тоесть бафф оглушения с рангом 5 заменяется оглушением с рангом 10, но если попытаться повесить оглушение ранга 5 на 10, то оно будет проигнорировано
Melissa #17 - 3 года назад 0
Кстати минусочек будет в том, что не будет мигания, когда длительность баффа, изначально большая чем 10 секунд, становится меньше 10 секунд.
Так стоп, хотя это в той системе с аурами.. Но тут наверное так же?
Hate #18 - 3 года назад 0
да, этого не будет, потому что у меня используются ауры торнадо
iSmart #19 - 3 года назад 0
или я дурак или лыжи не едут. я конечно только зарегался и только начал осваивать jass и короче ни чего не понимаю, но все таки объясните почему у меня не работает. стоит jngp 5d exp2, открыл хотел провести быструю проверку, выкидывает в главное меню, решил проверить, нажал "syntax check" и вот че вылезло
прикреплены файлы
Hate #20 - 3 года назад 0
syntax check ничего не значит, убедитесь что в пути до жнгп и карты нет русских символов
iSmart #21 - 3 года назад 0
Hate:
syntax check ничего не значит, убедитесь что в пути до жнгп и карты нет русских символов
нету, это я проверил
Hate #22 - 3 года назад 0
тогда пересохраните 2 раза карту
iSmart #23 - 3 года назад 0
Hate, я думал дело в варике. поставил новый, пропатченый до 1.26, но это дело не решило. а при сохранении дает такую ерунду. может в жнгп дело?
прикреплены файлы
Hate #24 - 3 года назад 1
iSmart:
Hate, я думал дело в варике. поставил новый, пропатченый до 1.26, но это дело не решило. а при сохранении дает такую ерунду. может в жнгп дело?
кидать по пути Jass New Gen Pack 5d Exp2\AdicHelper\lib
прикреплены файлы
iSmart #25 - 3 года назад 0
Hate, благодарствую, заработало =)
Hate, а вообще поразительно! я на днях задумал сделать такую систему, прям как тут: с весом, напяливанием брони, и бой такой же хотел сделать с уклонениями, ударами со спины и т.д. и тут натыкаюсь на эту наработку =)
Hate #27 - 3 года назад 0
нет, по определенным причинам, но его можно переделать под муи