гайд как прочитать вот ето: https://vsmuta.com/info/formula
Если вьі помните уроки информатики в школе вьі можите ето сделать и без етого гайда но если нет то можите освежит свою память сдесь.
Итак что нужно знать:
Коментари:
любой текст после символов "//"
Они ни начто не влияют, написаньі только ради лудшего понимания происходящего
Примерьі:
// Противник заблокировал удар и нет пробития блока
// Если мы оказались здесь, то будет нанесения урона по противнику
Константьі:
Любое числа
Переменьіе:
Переменьіе ето любой текст написан без пробелов. В перемоной сохраняется ее значение (какоето число например). Сам текст (имя переменой) можит бьіть любой и написан Димой для лудшего понимания назначения етой переменой.
Примерьі:
Урон // числововая переменая
🟢Есть_Уворот_Противника // булевая переменая
УвеличениеУсталости // числововая переменая
Типьі даньіх:
бьівают двух видов: числое и булевое. Числове ето любое число. Булевое может иметь только два значения "да" или "нет". Переменьіе булевого типа дима обозначает значками 🟢 или 🔴 перед ее названием. Числовного типа без значка
Операция присвоения значения:
обозначается символом "=" (не путать с "==" ето совсем другая операция)
Устанавливает значене переменой
Примерьі:
УвеличениеУсталости = 0 // Устанавливаем перемегой "УвеличениеУсталости" значение 0
Шанс = 10 // Устанавливаем перемегой "Шанс" значение 10
🟢Есть_Уворот_Противника = 📜 Формула Расчета Шанса на Уворот Противника() // Устанавливаем значение булевой переменой "Есть_Уворот_Противника" то значение что вернула формула расчета шанча на уворот. Тоесть "да" или "нет", увернулся противник или нет
Арифметические операции:
Все операции знакомьіе нам со школьі: сложение "+", вьічитание "-", умножение "*", деление "/". Операция между двумя числовьіми значениями, резулттатом операции есть число
Примерьі:
кэф = Удача + Влияние_Мф // До значения удачи добавляем значение переменой "Влияние_Мф" и сумму присвоиваем переменой "кэф"
Урон = Урон / 2 // значение переменой "Урон" делим на 2, затем результат присваиваем в ту же переменую "Урон"
Комбинация арифметической операции и присвоения
Записуются как "+=", "-=" и тд.
Примерьі:
УвеличениеУсталости += 0.65 // тоже самое что "УвеличениеУсталости = УвеличениеУсталости + 0.65" тоесть увеличить значение переменой "УвеличениеУсталости" на 0.65
Урон -= Мастерство_Противника * 1.5 // мастерство противника умножаем на 1.5 затем отнемаем от значения переменой "Урон", результат сохраняем в той же переменой "Урон"
операции сравнения:
Операции результатом которьіх будет булевое значение, тоесть "да" или "нет"
"==" проверка на равенство, ">" больше, "<" менше, ">=" больше или равно, "<=" менше или равно
Примерьі:
Cила% >= 45 // значение переменой "Cила%" больше или равна 45.
Уровень == 6 // уровень игрока равен 6
Булевьіе операции:
Их тут только одна: "и". Операция над булевьіми переменьіми. Результат булевое значение
Примерьі:
🟢Есть_Блок_Противника и 🟢Есть_Пробитие // если в переменьіх "🟢Есть_Блок_Противника" и "🟢Есть_Пробитие" то резльтут будет "да", во всех других случаях результат будет "нет"
теперь сложнее
Ветвение:
Виглядит вот так: Если(🟢Условие) <операция>
если 🟢Условие "да" тогда вьіполняем <операцию> после скобки ")", если "нет" тогда ее игнорируем и идем дальше
Пример:
Если(Cила% >= 46) Урон -= (Сила - НаименьшийСтат) / 6 //если значение переменой "Cила%" больше или равна 46 тогда от перееную "Урон" уменшаем на значение которьіе вьічисляем как "(Сила - НаименьшийСтат) / 6"
также могут использоватся фигурньіе скопки "{" ,"}" тогда вьіполняем все что в скопках
Пример:
Если(Усталость < Усталость_Противника)
{
// если "Усталость" менше чем "Усталость_Противника" тогда исполняем все что в скопках
}
также может иметь такой вид:
Если(🟢Условие)
{
// если условие "да" тогда исполняем все что в скопках
}
⛓️ // <- обратите внимание на значек
{
// если "нет" тогда тогда все что в етих скопках
}
или такой:
Если(🟢Условие1)
{
// если Условие1 "да" тогда исполняем все что в фигурньіх скопках и игнорируем все что в остальньіх скопках
}
⛓️
Если(🟢Условие2)
{
// если Условие1 "нет", мьі смотрим на Условие2, если оно "да" тогда исполняем все что в а етих скопках
}
⛓️
{
// Если Условие1 и Условие2 мьі "нет", тогда уже попадаем сида и исполняем все что тут
}
Укороченое ветвение:
🟢Условие ? Значение1 : Значение2
Если 🟢Условие "да" тогда берем Значение1, если "нет" тогда Значение2
Пример:
УвеличениеУсталости_Противнику += 🟢Есть_Блок_Противника ? 0.7 : 1.25 // если 🟢Есть_Блок_Противника "да" тогда увеличиваем значение переменой "УвеличениеУсталости_Противнику" на 0.7, если "нет" тогда на 1.25
Ну и последние
Функии\формульі
Имеют вид: <иконка>Название(Параметр1, Параметр2)
Могут бьіть без параметров, типу: <иконка>Название()
Или без имени <иконка>(Параметр1, Параметр2)
Функции принимают на вход какието параметрьі (значения), чтото с ними делат и возвращают результат
Пример:
📜 Формула Расчета Шанса на Критический Удар()
📜 Формула Расчета Шанса на пробив блока(➡️ Есть_КритУдар)
🎲(1, 100)
🎲((Минимальный_Урон), (Максимальный_Урон))
Например, фунция генереции случайного числа:
🎲(x, y) // возвращяет случайное число от "x" до "y"
--------------------------------------------------
Попробуем прочитать и понять все что мьі уже прошли на какомто примере
Возьмем строчку с формул по сложней, например ету:
Если(🟢Есть_КритУдар и 🟢Есть_Уворот_Противника) 🟢Есть_Уворот_Противника = 🎲(1, 3) >= 2
Разберем ее по кусках:
Если(🟢Есть_КритУдар и 🟢Есть_Уворот_Противника) // если значение переменьіх 🟢Есть_КритУдар и 🟢Есть_Уворот_Противника "да", тогда
🎲(1, 3) // генерируем случайное число от 1 до 3. Тоесть 1, 2 или 3
🎲(1, 3) >= 2 // К полученому случайному числу применяем операцию сравнения ">=", получаем булевое значение. Тоесть если у нас сгенерироль 1 то результат будет"нет", если 2 или 3 тогда "да"
🟢Есть_Уворот_Противника = 🎲(1, 3) >= 2 // результат присваиваем булевой переменой 🟢Есть_Уворот_Противника
Тоесть, если перевести на человеческий язьік, звучит оно так:
Если нам прокнул крит а противнику уворот, то с вероятностю 33%, уворот противника отменяется
Ну и еще один пример:
возьмем строчку и разберемся как устанавливается значение переменой 🟢Есть_Пробитие
🟢Есть_Пробитие = 📜 Формула Расчета Шанса на пробив блока(➡️ Есть_КритУдар)
Мьі видим что ее значение присваивается с функции "📜 Формула Расчета Шанса на пробив блока". Орбатите внимание что в функцию передается значение булевой переменой "🟢Есть_КритУдар", иконка ➡️ говорит нам об етом
Дальше ищем саму функцию, и читаем:
Шанс = 10, // устанавливаем значение переменой "Шанс" в 10. Ето наша вероятность по умолчанию.
Если(Усталость < Усталость_Противника) // если наша усталость менше чем у противника тогда:
{
Шанс += (Усталость_Противника - Усталость), // увеличиваем "Шанс" на разницу усталости. Тоесть если усталось у нас 10 а у противника 30, тогда шанс будет увеличен на 20, тоесть иметь значение 30
}
Если(Шанс > 25) Шанс = 25, // ...если "Шанс" больше за 25, устанавливаем в 25. Ето наше максимальное значение
Если(🟢Есть_КритУдар) Шанс = 50, // ...если значение переменой "🟢Есть_КритУдар" "да" (мьі ее передавали как параметр), тогда присваиваем "Шанс" значение 50
⬅️ Шанс >= 🎲(1, 100), // ... Генерируем члучайное значение от 1 до 100, сравниваем оператором ">=" с переменой "Шанс" и полученое булевое значение возвращаем как результат функции, иконка ⬅️
Ну и на человеческий:
Шанс пробить блок 10% и увеличивается на разницу вашей и противника усталости, но не больче чем 25%. Однако, если вьі кританули, то шанс пробить блок всегда равен 50%
где взять гайд для прочтения гайда по формулам?
когда я учился и информатики как таковой не было в школьных предметах))
Найду немного времени, распишу как работают формульі "человеческим язьіком" :)
by Смутная Леди, 2022