RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2425245 views

snail:

Не надо так пробовать: Oliver ошибся. У него условие if l = 2 находится внутри условия if l = 1.
Правильно писать так:
Код:
l = rand(2,1)
if l = 1: gt ‘не уклонилась’
if l = 2: gt ‘уклонилась’
В данном случае можно обойтись без многострочной формы оператора IF.

Во втором твоём примере лишний end в строке 12. Правильно и компактно написать так:
Код:
if бонус_ловкость = 1:
l = rnd + 5
if l > 400:
gt ‘уклонилась’
else
gt ‘не уклонилась’
end
else
l = rnd
if l > 600:
gt ‘уклонилась’
else
gt ‘не уклонилась’
end
end

спасибо, я заметила, когда ввела это)
и спасибо за компактный пример!

Можно еще вопрос:
Нужно добавить в if еще значение, я пробовала отделить с помощью or, но не вышло. писала я так:

Spoiler

if бонус_ловкость = 1 or бонус_сила = 1:

то есть, нужно чтобы если одно из этих условий выполняется, то алгоритм срабатывает. Или нужно все-таки отдельно писать?

rutigl,
возможно, тебе будет интересна тема Склонятор названия предмета согласно количеству.

Lisichka:

я пробовала отделить с помощью or, но не вышло.

А что не вышло? Судя по твоей записи, всё должно быть правильно.
И ещё. Lisichka, для записи кода используй, пожалуйста, не кнопку Спойлер, а Код.

Спасибо, snail, у меня в игре предметов/свойств меньше 100, поэтому моя функция попроще.

IF Args[0] = 0: 
    $RESULT = $ARGS[1] + $ARGS[2]
ELSEIF Args[0] = 1:
    $RESULT = $ARGS[1] + $ARGS[3]
ELSE
    $RESULT = $ARGS[1] + $ARGS[4]
END

Вызов:
$s = FUNC('Case_set', 1, 'раз', '', 'а', '')
$s = FUNC('Case_set', 2, 'раз', '', 'а', '')
$s = FUNC('Case_set', 12, 'золот', 'ых', 'ой', 'ых')

snail:

Lisichka написал(а):
я пробовала отделить с помощью or, но не вышло.
А что не вышло? Судя по твоей записи, всё должно быть правильно.
И ещё. Lisichka, для записи кода используй, пожалуйста, не кнопку Спойлер, а Код.

действительно, сейчас все проверила, все работает)
спасибо, в следующий раз использую код)

Можно задать еще один вопрос:
допустим, прописано, что у героя здоровье = 20, так вот, как сделать так, чтобы, когда это здоровье заканчивалось (вычиталось в схватках, например), игрока автоматически переносило на локацию “игра окончена” или что-то в этом роде?

Lisichka,
например, прописать проверку в отдельной локации, и вызывать её по GOSUB после каждого изменения здоровья.

Nex,
спасибо, сработало!

Не подскажете, как вставить в текст кавычки?
Так:

$str = 'text1 \"text2\"'

или так:

$str = 'text1' + CHR(34) + 'text2' + CHR(34)

или как-то по-другому?
Заранее огромное спасибо.

rutigl:

Не подскажете, как вставить в текст кавычки?
Так:

$str = 'text1 \"text2\"'

или так:

$str = 'text1'   CHR(34)   'text2'   CHR(34)

или как-то по-другому?
Заранее огромное спасибо.

1-й вариант удобней

$horse = '"Белый конь"' & ! Пример

rutigl:

Не подскажете, как вставить в текст кавычки?

str — зарезервированное слово в QSP. Это функция, переводящая число в строку. Поэтому его нельзя использовать для имени переменной.

Про кавычки написано в документации. Конкретно в твоём примере значение текстовой переменной заключено в апострофы, поэтому для вывода кавычек не нужно никаких ухищрений. Достаточно просто написать:

$str1 = 'text1 "text2"'

Огромное спасибо, snail и Oliver
Век живи, век учись =)

только осваиваю учебник для редактора QGEN. опыта в программировании НЕТ. возникают вопросы, например (я наверно сильно забегаю вперед, но….) для того что бы в описании было видно переменные, пишем; “Имя планеты: <<$Имя>>
Температура на планете: <<Температура>> градусов.” - это понятно. но если я хочу что бы число100 было скрыто и вместо него отражалось допустим “жарко” а когда 20 - “тепло” и т. д. то как это вводить?

Александр (Spets_kor):

только осваиваю учебник для редактора QGEN. опыта в программировании НЕТ. возникают вопросы, например (я наверно сильно забегаю вперед, но….) для того что бы в описании было видно переменные, пишем; “Имя планеты: <<$Имя>>
Температура на планете: <<Температура>> градусов.” - это понятно. но если я хочу что бы число100 было скрыто и вместо него отражалось допустим “жарко” а когда 20 - “тепло” и т. д. то как это вводить?

Ну это уже масивы.

На первой локации пишешь

GS '#info' & ! Данная команда обрабатывает локацию #info которую ты создашь.

На локации #info пишешь

$status[1] = 'Жарко'
status[1] = 1
Температура[1] < 50
$status[2] = 'Тепло'
status[2] = 2
Температура[2] < 20

На локации где описание планеты пишешь

'Имя планеты: <<$Имя>>
Температура на планете: <<$status[sq]>>.'

Но я могу ошибаться, голова толком сейчас не работает, если не работает, подожди пока опытные ответят.

Не надо никаких массивов и дополнительных локаций. Достаточно в той локации, где описание планеты, вместо

<<Температура>> градусов.

в поле «Выполнить при посещении:» написать:

if Температура > 50:
	'жарко.'
elseif Температура > 19:
	'тепло.'
else
	'холодно.'
end

Если температура на планете больше, чем 50 градусов, выведется «жарко.»; если от 20 до 50 градусов, то «тепло.»; если же меньше, чем 20, то «холодно.» Разумеется, все значения по-всякому можно варьировать.

Log in or Register to post comments.