Действие по таймеру
Как сделать?
Ожидание БЕЗ задержки, то есть чтобы игрок мог совершать действия на локации, но чтобы, скажем, через 5 сек произошло действие?
AntiPod,
В стартовой локации пишем
SETTIMER 1000
$COUNTER = 'COUNTER'
В локации, где “запускаем” таймер
run = 1
В локации “COUNTER” пишем
IF run = 1:
IF run_count = 5:
...НУЖНОЕ НАМ ДЕЙСТВИЕ...
run = 0
run_count = 0
ELSE
run_count = run_count + 1
END
END
А если прописать
SETTIMER 1000
$COUNTER = 'COUNTER'
в той локации, где запускается таймер, а ран=1 не писать и в каунтере написать
IF run_count = 5:
...НУЖНОЕ НАМ ДЕЙСТВИЕ...
run = 0
run_count = 0
ELSE
run_count = run_count + 1
END
Изменится ли что-то? Ведь плеер узнает про локацию счетчик только в тот момент, когда будет запущена необходимая локация.
З.Ы. Я новичок, с меня взятки гладки.
NoNick,
переменная “run” в приведенном мной коде нужна для того, чтобы вовремя остановить и сбросить счетчик “run_count”.
Проще говоря, в моем примере таймер сработает после 5 секунд, произведет действие и выключится.
В твоем, таймер сработает через пять секунд, произведет действие, потом через пять секунд сработает еще раз, опять произведет действие, и т.д. до бесконечности.
Не заметил. Тогда вот так
run_count = run_count + 1
IF run_count=5:
операторы
END
А каунтер задать как в моем пред. посту.
Правда, потом таймер не остановится.
вопрос: есть локация, в которой играет музыка и текст выводится блоками через различные временные интервалы - под музыку, когда весь текст выведен, музыка останавливается и появляется возможность перейти на другую локацию.
через wait всё работает, но хочется добавить возможность пропустить сей процесс и сразу перейти к следующей локации - как это лучше сделать?
idleberry,
см. второй пост темы.
я честно пытался, но плеер после моего кода виснет….
что то при таких нехилых манипуляциях для такой простой вещи мне уже и игру то делать расхотелось…
честное слово - написать программу на любом языке и скомпиллировать её в ехешник и то проще чем использовать qsp.
ну я сегодня ещё попробую, но третий день подряд делать одну локацию - это не то чего я жду от редактора текстовых квестов…. ><
idleberry:
что то при таких нехилых манипуляциях для такой простой вещи мне уже и игру то делать расхотелось…
честное слово - написать программу на любом языке и скомпиллировать её в ехешник и то проще чем использовать qsp.
Я как-то делал отдельную библиотеку для работы с таймером в QSP. Вот тут: http://forum.ifiction.ru/viewtopic.php?id=1615 можно посмотреть пример работы.
так, заработало, но….
я понял что вообще не представляю как работает локация-счётчик (информация в справке не даёт нужного и полного представления о поведении этой локации)
объясните мне чтоли подробно, если можно, что происходит с момента присвоения переменной имени локации и далее.
а ещё что будет если в коде локации-счётчика я присвою этой переменной другое значение…
Olegus t.Gl. мощно, спасибо, надеюсь никогда не понадобится :3
я смотрю в архиве не только таймер есть.
idleberry,
QSP предназначен для создания текстовых игр, а не анимационных эффектов. Поэтому неудивительно, что ты столкнулся с трудностями.
idleberry,
Насколько я ещё не забыл, игрок не может ничего щёлкнуть, будь то выбор действия, переход по ссылке, работа со строкой ввода или инвентарём, пока плеер выполняет какой-либо код. Поскольку ты используешь wait - задержку, плеер не позволит игроку баловаться, пока не выполнит wait и весь следующий за ним код. Чтобы была возможность пропускать анимацию, нужно изначально давать игроку выбор: просматривать анимацию/пропустить анимацию.
а как сделать таймер, запускающийся заново каждый раз при заходе на локацию “запуска” и обнуляющийся при переходе на другую?
Imm0ral,
см. мой пример во втором сообщении. При переходе на другую локацию пишешь
run = 0
и таймер отключается.