Как сделать?
…
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, то «холодно.» Разумеется, все значения по-всякому можно варьировать.