Инквизиция I, авторы - Евген и AleKon
Зацените и скажите будет ли так хорошо использовать инвентарь? Или лучше пихать картинки в доп описание?
Игра
Рассмотрим подробно.
Изначальная формула боя, взятая из моего примера(с корректировкой на то, что ты переименовал), выглядит так:
здоровье=здоровье-Первый_враг_атака_текущая
Ты пытался сделать защиту, прибавив некоторое значение “броня” в этой формуле:
здоровье=здоровье-Первый_враг_атака_текущая+броня
Это в корне неверно. В моей формуле, в переменной “Первый_враг_атака_текущая” хранится окончательное значение для урона, который нанесен игроку. Это даже видно в описании - ‘<<$Имя_первого_врага>> нанёс урон <<Первый_враг_атака_текущая>>.’ То есть, если мы желаем учесть броню, то мы должны сделать это раньше, а полученный результат записать в “Первый_враг_атака_текущая”, оставив основную формулу без изменений.
Значение для брони учитывается таким образом:
Первый_враг_атака_текущая = Первый_враг_атака + rand(сколько нужно) - броня
IF Первый_враг_атака_текущая < 0 :
Первый_враг_атака_текущая = 0
END
Еще раз отмечу, что основную формулу нужно оставить в ее изначальном виде:
здоровье=здоровье-Первый_враг_атака_текущая
Урон, который наносит игрок, рассчитывается аналогично. Код, который ты не знал куда приткнуть(то, что у тебя обозначено как “counter”), вообще здесь не нужен.
Спасибо Некс
А это куда:
if Первый_враг_здоровье>Первый_враг_макс_здоровье:
Первый_враг_здоровье = Первый_враг_макс_здоровье
end
if здоровье>макс_здоровье:
здоровье=макс_здоровье
end
Евген,
Сказал уже, что этот код не нужен вообще.
Возник ещё один вопрос.
У меня написано
описание_атаки = rand(1,6)
if атака_текущая = 0:
'Вы со всей силы махнули <b><<$оружие>></b>, но промахнулись и не попали по <b><<$Имя_первого_врага>></b>'
end
if описание_атаки = 1:
'Вы наотмашь ударили <b><<$Имя_первого_врага>></b> <b><<$оружие>></b> нанеся <b><<атака_текущая>></b> урона.'
end
И тд
А при игре он выдаёт
Вы со всей силы махнули кулаками, но промахнулись и не попали по Зомби
Вы наотмашь ударили Зомби кулаками нанеся 0 урона.
Пробывал exit, не помогает.
Евген,
Во-первых, ставить exit нельзя, т.к. у тебя еще должны отработать строки в конце локации,
здоровье=здоровье-Первый_враг_атака_текущая+броня
xgt $curloc
Ну а решается это так:
сразу после строки
if атака_текущая = 0:
пишем
описание_атаки = -1
а я пробывал так только я писал 10 или тому подобное и через строку которую ты сказал.
Евген,
я тебе уже сказал, как сделать. Сделай в точности так, как я сказал, и сообщи о результатах.
Дак я сделал сразу же. Всё работает.
Великолепно, значит все вопросы решены.
Ну я так понял если атака не будет прибавлять жизни то
if Первый_враг_здоровье>Первый_враг_макс_здоровье:
Первый_враг_здоровье = Первый_враг_макс_здоровье
end
if здоровье>макс_здоровье:
здоровье=макс_здоровье
end
не нужно?
Евген,
именно. Уже два раза об этом сказал.
Вот у меня такой код:
if Ж_меч_одел = 1:
Ж_меч_одел = 0
$оружьё = 'Кулаки'
$оружие = 'кулаками'
атака = атака-4
броня = броня-1
end
'Паренёк забирает у вас ваш железный меч и отдаёт деньги.'
Деньги = Деньги+1500
delobj 'Железный меч'
Нужна ли строка
Ж_меч_одел = 0
Если есть возможность получить эту вещь заново?
Евген,
нужна.
Значит хорочо, но ещё вопрос.
В менюхе предмета у меня стоит что если переменная
Ж_меч_одел = 0
То
атака = атака-4
броня = броня-1
Будет ли отниматься и тут и там? Или отнимется только тут?