1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Формула нанесения урона
Вот приблизительный геймплей:
Обрисую маленькую стычку:
Герой
HP 520
ATK 8
DEF 6
Враг
HP 280
ATK 5
DEF 3
1-й варианнт: Герой атакует Врага с фулл ХП. Результат около 190 урона (Враг остался с 90 HP)
2-й варианнт: Враг атакует Героя с фулл ХП. Результат 65 урона (Герой остался с 455 HP)
Так вот, нужно составить формулу атаки, где дамаг идёт зависящий от HP с влиянием ATK и DEF.
Можете помочь? Заранее большое спасибо!
========================================
Платформа RPG Maker MV.
Делай так, как подсказывает сердце, а об остальном пускай заботятся другие.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Смотреть видео мне лень, так что опираюсь на то, что описано текстом. В RMMV атакующий обозначается a (то есть его атака — a.atk, защита — a.def, здоровье — a.hp, макс. здоровье — a.mhp), а защищающийся — b (b.atk, b.def, d.hp, b.mhp).
Попробуем вывести из этого формулу. Предположим, что атака зависит от атаки атакующего (a.atk) и защиты защищающегося (b.def). Также предположим, что пока что считаем только для полного HP.
Предположим, что у нас нет степеней (a.atk в квадрате, b.def в кубе и т.п.), а только коэффициенты, то есть урон = katk * a.atk + kdef * b.def + const. Также предположим, что при нулевой атаке и нулевой защите урон равен 0, так что +const отбросим.
Подставим a.atk, b.def и урон:
Герой атакует врага (a.atk = 8, b.def = 3), урон = 90:
katk * 8 + kdef * 3 = 90
Враг атакует героя (a.atk = 5, b.def = 6), урон = 65:
katk * 5 + kdef * 6 = 65
Итого у нас такая систему уравнений:
8*katk + 3*kdef = 90
5*katk + 6*kdef = 65
Решаем её:
8*katk = 90 - 3*kdef
5*katk = 65 - 6*kdef
katk = 11 1/4 - 3/8 kdef
katk = 13 - 6/5 kdef
11 1/4 - 3/8 kdef = 13 - 6/5 kdef
-3/8 kdef + 6/5 kdef = 13 - 11 1/4
(-15/40 + 48/40) * kdef = 1 3/4
33/40 kdef = 1 3/4
kdef = 1 3/4 * 40/33 = 7/4 * 40/33 = (7 * 40)/(4 * 33) = 70/33 ≈ 2.1212
katk = 11 1/4 - 3/8 kdef = 11 1/4 - 3/8 * 70/33 = 11 1/4 - (3*70)/(8*33) = 45/4 - 210/264 = (66*45 - 210)/264 = 2760/264 = 115/11 = 10 5/11 ≈ 10.4545
Итого наша формула (подчёркнутое можно вставлять в мейкер):
урон = 10.4545 * a.atk + 2.1212 * b.def
Проверяем, работает ли оно:
10.4545 * 8 + 2.1212 * 3 = 89.9996 ≈ 90
10.4545 * 5 + 2.1212 * 6 = 64.9996 ≈ 64
Вроде бы работает
НО!!!! Такая формула не может быть!!
урон = 10.4545 * a.atk + 2.1212 * b.def
значит «чем больше у тебя защита, тем сильнее тебя бьют»! Это просто нелогично!
Значит, одна из наших начальных предпосылок была неверна. Вероятно, предпосылка про то, что у нас нет степеней.
Если честно, я без понятия, как считать со степенями. Потому что можно взять любую произвольную степень и посчитать для неё коэффициенты, и они будут правильными. a.atk2? a.atk1.5? a.atk1.7? По-хорошему можно взять любую, и все будут правильными.
Давайте для начала посчитаем для степени 2.
Тогда получится так:
урон = katk * a.atk2 + kdef * b.def
katk * 82 + kdef * 3 = 90
katk * 52 + kdef * 6 = 65
64 * katk + 3*kdef = 90
25 * katk + 6*kdef = 65
64 * katk = 90 - 3*kdef
25 * katk = 65 - 6*kdef
katk = 90/64 - 3*kdef/64
katk = 65/25 - 6*kdef/25
Лень заморачиваться с дробями, запишу десятичными — всё равно на компьютере считаю:
katk = 1.40625 - 0.046875 * kdef
katk = 2.6 - 0.24 * kdef
1.40625 - 0.046875 * kdef = 2.6 - 0.24 * kdef
0.24 * kdef - 0.046875 * kdef = 2.6 + 1.40625
0.193125 * kdef = 4.00625
kdef = 4.00625 / 0.193125
kdef = 20.744336569579286
katk = 2.6 - 0.24 * kdef = 2.6 - 0.24 * 20.744336569579286 = -2.378640776699028
«Прекрасный» результат! Теперь атака уменьшает урон, а защита увеличивает. Абсолютно логичная формула получилась.
В общем, я не знаю, как это решить с заданными числами. Наверное, надо попробовать с разными степенями и посмотреть, при какой katk>0, kdef<0. Но, наверное, это должен делать кто-то, кто знает математику.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Doctor_Bug
-
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
- Сообщений: 574
- Спасибо получено: 897
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Бой идет в стиле армия против армии, где HP отображается как количество войск в армии. Более того, по обе стороны поля битвы может быть несколько армий.
С одной стороны вражеские армии (враг 1, враг 2 и т. д., каждый со своим количеством войск и характеристик), а с другой стороны союзные армии (персонаж 1, персонаж 2 и т. д.).
Характеристики ATK и DEF принадлежат генералу (персонажу), представляющему армию, что немного влияет на урон.
В идеале я хочу получить приблизительную формулу:
DMG = количество войск + некоторое влияние ATK персонажа - некоторое влияние DEF противника.
Маленькие примеры:
Герой
HP 500
ATK 8
DEF 6
Враг
HP 300
ATK 3
DEF 3
Герой первый атакует врага с полным HP. Результат около 180 урона. Враг остался с 120 HP.
Враг первый атакует Героя с полным HP. Результат около 50 урона (или 30, если враг получил повреждение и атакует с 120 HP). Герой остался с 450 HP (470 HP).
Герой
HP 560
ATK 8
DEF 6
Враг
HP 570
ATK 7
DEF 6
Герой первый атакует врага с полным HP. Результат около 160 урона. Враг остался с 410 HP.
Враг первый атакует Героя с полным HP. Результат 150 урона. Герой остался с 410 HP.
Постепенно, по ходу игры, войска будут увеличиваться (до 1000, 10 000 и даже до 70 000 к концу игры).
Вот приблизительная формула, что уже у меня получилась, но это всё равно не то.
Проблема формулы в том, что если в одной сторны вдвое меньше войск, чем во второй, то дамаг идёт в молоко, то есть жырный НОЛЬ. Я поставил обчисление, где если дамаг 0, то нанести 80% из оставшихся войск... но, например, с 300 войсками (когда ещё не достиглась отметка дамаг=О) перс наносит слабый урон 50(это я из неба достал, не хочу сейчас считать) тогда как с 280 войсками (когда урон идёт как 80%) перс наносит 240 урона(опять тыкнул пальцем). Из-за чего получается нестыковка, где с меньшим количеством войск получилось больше урона.
Dmy, посмотрев геймплейный видос, можно легче понять что я хочу. Но всё равно большое тебе спасибо, мне твои расчёты могут пригодиться!
Doctor_Bug, да. Персонаж - является лицом своего войска. В битве могут участвовать несколько персонажей (а значит и несколько войск). HP - это количество войск в отряде. Статов у генералов будет всего 2: ATK и DEF, которые слегка влеяют на урон. В основном весь урон приходит от ХP.
Делай так, как подсказывает сердце, а об остальном пускай заботятся другие.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Doctor_Bug
-
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
- Сообщений: 574
- Спасибо получено: 897
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Doctor_Bug пишет: Возможно эта статья поможет
handbookhmm.ru/1-damage
Спасибо, но это мне и так понятно. Проблема в нестандартности самой боёвки...
Dmy, Doctor_Bug, если лень смотреть видос, тогда может игра Sengoku Rance что-то скажет? Там похожая боёвка.
Делай так, как подсказывает сердце, а об остальном пускай заботятся другие.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Я лично вижу это так:
ХП Войска = ХП Генерала + ХП количества юнитов в войске.
АТК Войска = Базовая боеспособность * АТК Генерала - Базовая обороноспособность * ДЕФ Генерала.
Базовая боеспособность: Базовый урон юнита * Кол-во юнитов войска
Базовая обороноспособность: Базовая защита юнита * Кол-во юнитов
То есть, по факту, статы, которые мы видим - это коэффициенты, которые умножаются на общую боеспособность войск. Рассмотрим на примере. У нас есть:
Герой
HP 500
ATK 8
DEF 6
HP 300
ATK 3
DEF 3
Допустим, ХП героя вычисляются таким образом:
350 (Базовые ХП Генерала) + 150 (Кол-во Юнитов)
Допустим, урон каждого юнита равен 0,5. Тогда боевспособность войска без генерала = 150 * 0.5 = 75.
Соответственно, базовая атака войска с генералом = 75 * 8 = 600.
Допустим, ХП врага вычисляются таким образом:
200 (Базовые ХП Генерала) + 100 (Кол-во юнитов)
Допустим, защита каждого юнита равна 0,7. Тогда обороноспособность войска без генерала = 70.
Соответственно, базовая защита юнита с генералом = 70 * 3 = 210.
То есть, итоговый урон по войску будет 600 - 150 = 390.
Главная фишка в том, чтобы поиграть с теми самыми коэффициентами базовой атаки одного юнита, чтобы получить нужные тебе числа урона. Ну и баланс выстраивать вокруг них.
Her Third Eye is drawing me closer
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
idavollr пишет: А зачем делать формулу, которая базируется на ХП цели? Тут абсолютно точно не используется процентажный урон.
Я лично вижу это так:
ХП Войска = ХП Генерала + ХП количества юнитов в войске.
АТК Войска = Базовая боеспособность * АТК Генерала - Базовая обороноспособность * ДЕФ Генерала.
Базовая боеспособность: Базовый урон юнита * Кол-во юнитов войска
Базовая обороноспособность: Базовая защита юнита * Кол-во юнитов
То есть, по факту, статы, которые мы видим - это коэффициенты, которые умножаются на общую боеспособность войск. Рассмотрим на примере. У нас есть:
Герой
HP 500
ATK 8
DEF 6
HP 300
ATK 3
DEF 3
Допустим, ХП героя вычисляются таким образом:
350 (Базовые ХП Генерала) + 150 (Кол-во Юнитов)
Допустим, урон каждого юнита равен 0,5. Тогда боевспособность войска без генерала = 150 * 0.5 = 75.
Соответственно, базовая атака войска с генералом = 75 * 8 = 600.
Допустим, ХП врага вычисляются таким образом:
200 (Базовые ХП Генерала) + 100 (Кол-во юнитов)
Допустим, защита каждого юнита равна 0,7. Тогда обороноспособность войска без генерала = 70.
Соответственно, базовая защита юнита с генералом = 70 * 3 = 210.
То есть, итоговый урон по войску будет 600 - 150 = 390.
Главная фишка в том, чтобы поиграть с теми самыми коэффициентами базовой атаки одного юнита, чтобы получить нужные тебе числа урона. Ну и баланс выстраивать вокруг них.
Спасибо, я тоже пришёл к подобному выводу. Просто каждый генерал будет с 1 ХП. Думаю если поставить атаку и защиту войска на переменные... хмм... будет морока, но это самый лучший вариант.
Ладно, спасибо всем!
Делай так, как подсказывает сердце, а об остальном пускай заботятся другие.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
ХП Войска = ХП Генерала + ХП количества юнитов в войске. -> понятия не имею как это провернуть.
С героем всё просто, можно дать ему итем (войско) с характеристиками, но как увеличить ХП врагу?
Я в тупике...
Делай так, как подсказывает сердце, а об остальном пускай заботятся другие.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
После прочтения я всё ещё немного не улавливаю общей темы, но если вас интересует моё мнение, то (отвечая на последний вопрос) можно выдавать врагам статус эффект, который зависит от "генерала" врага. Если генералов много, это немного заморочно/нудно, но по факту можно сделать для каждого генерала отдельный статус эффект который увеличивает параметры войска и накладывать его на армию с помощью нулевого хода битвы или путём события.
В общем, такую вот идею выдала слизь в моей голове. Если я ошиблась или просто не поняла происходящего, прошу прошения. ( ̄▽ ̄)
Постскриптум - Я не в курсе как работает функция "быстрый ответ", так что звиняйте, если сдублировала сообщение.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
НАКОНЕЦ-ТО!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Doctor_Bug
-
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
- Сообщений: 574
- Спасибо получено: 897
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Eokati пишет: Неа. Не получается таки.
ХП Войска = ХП Генерала + ХП количества юнитов в войске. -> понятия не имею как это провернуть.
С героем всё просто, можно дать ему итем (войско) с характеристиками, но как увеличить ХП врагу?
Я в тупике...
Ну так ты делаешь все расчеты в калькуляторе и в мукер вставляешь уже итоговые, подсчитанные значения.
Her Third Eye is drawing me closer
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
SiQiuRi пишет: Добрый вечер, Йокати-тен!
После прочтения я всё ещё немного не улавливаю общей темы, но если вас интересует моё мнение, то (отвечая на последний вопрос) можно выдавать врагам статус эффект, который зависит от "генерала" врага. Если генералов много, это немного заморочно/нудно, но по факту можно сделать для каждого генерала отдельный статус эффект который увеличивает параметры войска и накладывать его на армию с помощью нулевого хода битвы или путём события.
В общем, такую вот идею выдала слизь в моей голове. Если я ошиблась или просто не поняла происходящего, прошу прошения. ( ̄▽ ̄)
Постскриптум - Я не в курсе как работает функция "быстрый ответ", так что звиняйте, если сдублировала сообщение.
Тля, я уже несколько дней ломаю голову над этой проблемой и так зацыклился на долбанной формуле, что у меня совсем вылетели из головы статус эффекты!
Спасибо!
Нужно передохнуть немного и опять нырять в мучения.
PanzerCat пишет: Фига, тут ТоталВар мукерят!
НАКОНЕЦ-ТО!
У меня уже практически всё готово, осталась только долбанная боёвка!!
Doctor_Bug пишет: Ну с подобной темой и мне придется столкнутся для второго проекта. И да Eokati, я смотрел видео изначально, ибо почему я решил что идет тема про войска и подсчет урона.
О! Брат по долбки о стенку!
И да, я случайно добавил тебя в том сообщении, оно предназначалось только Dmy. Сори.
idavollr пишет:
Eokati пишет: Неа. Не получается таки.
ХП Войска = ХП Генерала + ХП количества юнитов в войске. -> понятия не имею как это провернуть.
С героем всё просто, можно дать ему итем (войско) с характеристиками, но как увеличить ХП врагу?
Я в тупике...
Ну так ты делаешь все расчеты в калькуляторе и в мукер вставляешь уже итоговые, подсчитанные значения.
Ты меня не понял, я имел ввиду, что не знал как ХП врага поделить на "базовое" и "генерала". Наложение статус эффекта должно помочь, осталось только завтра всё испробовать.
Делай так, как подсказывает сердце, а об остальном пускай заботятся другие.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

