Как сделать?
…
svandrus,
1. @@@@CODEBLOCK0@@@@
2. Можешь воспользоваться модулем для работы с событиями по таймеру.
Axil,
а что значит week = week + 1 ?
week - день недели (0-7)
Мне просто так “hour = hour mod 24”, не годится - я там еще и события вызываю которые происходят раз в день.
Тогда сколько дней пройдет - столько раз собития вызовутся.
Я делал на основе этого примера, только без учёта дней, т.е. когда hour >= 24: day += 1
Отсюда и растут ноги у 28 часов.
Вот ты сам себе и ответил. Делай как в примере, тогда всё будет работать.
Axil:
Кто-нибудь делал алгоритм поиска пути A* на qsp?
Интересует именно версия по обходу графа, а не двухмерной сетки.
Локации с переходами между ними это же граф.
Почему именно Астар? Не лучше ли использовать для этой цели алгоритм Дейкстры?
Привет, я только начинаю разбираться в qsp, и, может быть, это глупый вопрос, но все-таки.. есть ли какая команда, чтобы можно было присвоить переменной имя данной локации (именно, как они называются в левом столбце)? Фактически это должно быть так: например, герой хочет выпить магический напиток и побродить по лабиринтам внутри своей головы, но когда добредет, он должен вернуться туда же, где он решил этот напиток выпить, пусть даже в пучину боя. т.е. выпивая и уходя в лабиринт мы прописываем $locback = ‘??’, а когда лабиринт кончается, пишем - gt ‘<<$locback>>’ . Собственно, и вопрос в том, что нужно ставить вместо ?? . Уточню, что, конечно, проблему можно решить, если самостоятельно присваивать имена локациям при переходах в какой-нибудь переменной типа “locname”, но это не подходит. Надеюсь, понятно, объяснил. Спасибо!
Гениально и просто. Благодарю!
evp:
Почему именно Астар? Не лучше ли использовать для этой цели алгоритм Дейкстры?
Хорошо, а алгоритм Дейкстры кто-нибудь на qsp реализовывал?
Axil, это не проблема. Тебе нужно готовое решение или ты готов сам потрудиться?
Если второе, то только начни, а нужна будет помощь - я помогу.
Поиск кратчайшего пути между городами
Правда, я в нём не разбирался.
Пример хороший. И в большинстве случаев дает нужный результат. Но у него есть проблемка.
Вот иллюстрация схемы городов и дорог в этом примере:
В примере ищется путь из города 4 в город 7.
Результат:
Из Город 7 в Город 4.
Город 7; Город 0; Город 2; Город 4
Однако, если мы удалим дорогу из 0 в 7, то в город 7 приехать нельзя - это единственная дорога, связывающая 7 с другими городами. Делаем это: комментируем строки 23 и 35 в локации 1:
!gs 'road',0,7
...
!gs 'road',7,0
Запускаем. И… результат не изменился. По-прежнему:
Из Город 7 в Город 4.
Город 7; Город 0; Город 2; Город 4
Надо править пример, исправлять ошибку в алгоритме.
evp,
ошибка не в реализации алгоритма Дейкстры, а в алгоритме вывода посещённых городов. Я её исправил, залил обновлённый файл.
snail,
Про время - предложенный модуль хорош, но сложноват для меня. Свою задачу сформулировал так - возможность пове.. управлять течением времени и решил немножко по-другому:
act 'Остановись мгновение...':
delact $selact
SETTIMER 999999
act 'Реал-тайм':
delact $selact
SETTIMER 500
gt $curloc
end
end
Получил в итоге иллюзию паузы и вопрос: каким может быть предельное значение SETTIMER?
P.S. Сделал SETTIMER -1 и оно замерло. Надолго ли?
Друзья! У меня еще один скорее всего глупейший вопрос. Вот только сегодня вдруг осознал, изучая чужие игры, что можно записывать все в одну строку, а не в столбик. в смысле, например, вместо:
if $orjname = ‘Идеальный меч’:
orjatck = 185
orjkrit = 120
orjinic = 18
…и так далее
end
вот так:
if $orjname = ‘Идеальный меч’: orjatck = 185&orjkrit = 120&orjinic = 18&и проч. и проч.
Сразу же захотел кое-чего переписать, однако сразу же и передумал, решив, что “старый” метод привычнее и удобнее для глаз.
Вот у меня этими if $orjname а так же всяческими if $lookname $dospname $monstr и прочими весьма и весьма перегружена локация “newloc”, учитывая что на каждый “name” приходится от десяти больше различных меняемых характеристик. Сейчас строчек в локации где-то две с половиной тыщи, хотя это только начало игры и сколько будет дальше прогнозируется вероятно около десяти тыщ.
Вопрос в следующем: Не будет ли игра подвисать от количества строк? влияет ли вообще на что-нибудь это количество? смещение всего в одну строку (вместо столбика) - прием чисто визуально-эстетический или носит еще какую-то практическую функцию?
Ну, про это даже я знаю.
http://wiki.qsp.su/help:conditional
Многострочная форма записи:
….
Допускается вложенность неограниченной глубины. Каждый уровень вложения должен заканчиваться своей строкой “END”.
А вот подвисания отмечались если циклов много-много понаделать - пока оно всех прокрутит… И сейв тогда ОЧЕНЬ большой получается.