RU

Инквизиция I, авторы - Евген и AleKon

Евген #278 07.03.2011 17:59 479 comments 165433 views

Зацените и скажите будет ли так хорошо использовать инвентарь? Или лучше пихать картинки в доп описание?
Игра

Edited at 24.05.2011 04:07 (14 years ago)

Рассмотрим подробно.
Изначальная формула боя, взятая из моего примера(с корректировкой на то, что ты переименовал), выглядит так:

здоровье=здоровье-Первый_враг_атака_текущая

Ты пытался сделать защиту, прибавив некоторое значение “броня” в этой формуле:

здоровье=здоровье-Первый_враг_атака_текущая+броня

Это в корне неверно. В моей формуле, в переменной “Первый_враг_атака_текущая” хранится окончательное значение для урона, который нанесен игроку. Это даже видно в описании - ‘<<$Имя_первого_врага>> нанёс урон <<Первый_враг_атака_текущая>>.’ То есть, если мы желаем учесть броню, то мы должны сделать это раньше, а полученный результат записать в “Первый_враг_атака_текущая”, оставив основную формулу без изменений.

Значение для брони учитывается таким образом:

Первый_враг_атака_текущая = Первый_враг_атака + 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

Будет ли отниматься и тут и там? Или отнимется только тут?

Log in or Register to post comments.