Как сделать?
…
Ребят, я жутко деревянный во всём этом, это капец, извините, но оч. хочется разобраться в следующей ситуации:
act’старт’:
gs’’
if [переменная]=1:’<картинка-1>’
‘текст’
act’Далее’:gt $curloc
gs’следующая локация’
end
… след. лок., короче рандомные ивенты, которые можно пропустить или принять:
if [переменная]=2:’<картинка-2>’
‘текст’
if [переменная]=x:’текст’
if [переменная]=xx:’текст’
…
Ну как бы понятно что всё выполняется из первой локации, но… Как в данной ситуации проще всего сделать так, чтобы первая картинка не отображалась, когда запускается условие с ‘<картинка-2>’, и отображалась во всех остальных случаях?
kanparonner,
if условие=2:
картинка=2
else
картинка=1
end
А вообще, не очень понятно какой у тебя код, gs внутри актов или снаружи, какие акты что делают…
Ну, вначале gs снаружи… во второй локе, в зависимости от ситуации… если дополнить что написано выше: act переходит к gs’stat’ - картинка-2… + act который возвращает в первую локацию…
В общем, только если дублировать картинки и чередовать их… Там просто могут быть и другие if, которым опять может вторая понадобиться, думал, может можно как-то сделать первую “картинкой по умолчанию”.
Ну в общем, ок, понятно.
act'старт':
gs '' &! пустой GOSUB? Шутишь? Допустим, он не пустой.
if [переменная]=1:'<картинка-1>'
'текст'
act'Далее':gt $curloc
gs'следующая локация'
end
... след. лок., короче рандомные ивенты, которые можно пропустить или принять:
if [переменная]=2:'<картинка-2>'
'текст'
картинка будет выводится только в случае переменная=2 а текст в любом случае.
Плохо. Очень плохо. Мог бы вынести за условие.
Либо использовать оператор отрицания NO, который будет выводить картинку во всех случаях, кроме когда переменная = 2.
if no [переменная]=2: *pl '<картинка-2>'
Добрый день!
у меня вопрос по работе с массивами. У меня есть текстовый массив $item, в нем есть $item[1], $item[2]… $item[n+1]. И есть соответствующий ему числовой массив itm[$item[1]], itm[$item[2]]…itm[$item[n+1]]
Когда игрок покупает оборудование, то соответствующей переменной маасива itm[$item] присваивается значение 1.
Теперь мне надо показать купленное пользователю. Не могу найти в документации, как сделать это одной командой, что-то типа
IF itm[$item]=1:
'<<$item>>'
END
То есть, возможно ли это в принципе, чтобы система проверяла массив itm[$item] на наличие значений 1 и по ним выводила связанные данные из текстового массива $item?
jazzy77, доброго времени суток.
Сперва хотелось бы напомнить, что вы всегда можете присоединится к дискорду (там просто быстрее отвечать на оперативные вопросы).
То есть, возможно ли это в принципе, чтобы система проверяла массив itm[$item] на наличие значений 1 и по ним выводила связанные данные из текстового массива $item?
Ну, начнем по порядку.
Во-первых: нужно провести проверку по массиву.
x = 0 &! задаем значение счетчика цикла
:mark
If no $item[x] = '':
*p $item[x] &! Тут мы используем переменную-счетчик [x] в качестве указателя на ячейку массива.
end
if x < arrsize('$item'): x = x + 1 & jump 'mark'
Теперь о проблемах:
itm[$item] - достаточно неправильная (хоть и валидная) конструкция, которая создаст проблемы на следующем этапе разработки.
Настоятельно советую сыграть пару игр в каталоге, поразмыслить и представить, как была создана та или иная механика и пересмотреть подход.
Надеюсь, смог ответить. Коллеги подправят, если что-то упустил)
Обновлено:
Если хотите наступать на грабли, то:
x = 0 &! задаем значение счетчика цикла
:mark
If itm[x] = 1:
*p itm[x] &! Тут мы используем переменную-счетчик [x] в качестве указателя на ячейку массива.
end
if x < arrsize('itm'): x = x + 1 & jump 'mark'
Не мне вас отговаривать ;)
jazzy77,
:for
if i<arrsize('$item'):
IF itm[$item[i]]=1:
'<<$item[i]>>'
END
i+=1
jump 'for'
end
Aleks Versus,*HronoStranger,* спасибо большое! Проблему понял, варианты понял, буду думать :)
В общем пришлось сделать счетчик количества секунд через свою переменную.
Grass:
В общем пришлось сделать счетчик количества секунд через свою переменную.
Получилось? Таймер на Андроиде работает как-то по своему), только не так, как нужно.
Да. settimer работает правильно, а вот msecscount непонятно. Сделал счетчик как: ПрошлоСекунд += 1 & ! В локации счетчике
Подскажите пожалуйста есть ли в qgen такой процесс как заданное количеством повторение циклов?
например: Повторить 10 раз \
Дамир Белялов,
Дык обычный цикл же
a=0
:mark
*p’.’ & wait 20
a+=1
if a<10:jump’mark’
А есть какая либо альтернатива поэкономнее, в рамках одной команды со скобкой?
