Как сделать?
…
Здравствуйте. А как сделать так, чтобы при линейном диалоге, команда покинуть локацию располагалась бы ниже диалога, или временно скрывалась, перед началом диалога, и появлялась после его завершения?
Нубай,
Ставишь условие, при котором она будет появляться и все.
if конец_диалога=1:
act'Завершить разговор':
конец_диалога=0
...
end
end
Спасибо, у меня еще вопросы появились.
А как сделать так, чтобы такое действие убиралось, после нажатия, через delact оно исчезает просто. Может по условию через if?
*pl “ты вкладываешь в удар всю силу”
act “Ударить”: msg “Бесполезно, надо искать другой путь”
end
И второй вопрос, можно ли как-то тестировать на предмет правильности кода отдельную локацию. Я еще не до конца уроки Алекса посмотрел, но загорелось вот попробовать. Уверен, что есть такой способ. А то я сейчас с самого начала, все локации и диалоги прогоняю и правлю ошибки. Только, если можно какой-то простой способ, если он есть вообще. PS: Сильно не пинайте, я только учусь. :)
Нубай,
да, верно мыслишь, можно делать действие по условию. Я не совсем понимаю, что ты имеешь ввиду под “убиралось”, но если правильно понял:
! открываем условие
if ударил=0:
! открываем действие
act "Ударить":
*pl "ты вкладываешь в удар всю силу"
ударил=1
msg "Бесполезно, надо искать другой путь"
goto $curloc
! закрываем действие
end
! закрываем условие
end
Сейчас есть два способа проверить код на конкретные ошибки, не запуская:
1. Плагин Pseudopod’а для VS Code — >здесь<
2. Анализатор кода от Nex’а — >Здесь<
Оба варианта работают с файлами формата TXT2GAM. Это обычные текстовые файлы, но QSP-код там записывается в определённом порядке. Quest Generator умеет конвертировать файлы .qsp в файлы TXT2GAM (меню игра - экспорт)
Нубай,
Если не осилишь того, что посоветовал Алекс, тестируй через плеер. В стартовой локации пропиши debug=1. Сделай сохранение рядом с тестируемым моментом (но не сам момент!), загружай и проверяй.
Спасибо за ответы, дабы не захламлять тему нужную, знайте, что всегда спасибо за помощь от вас, за будущие вопросы от меня. :)
Здравствуйте. Подскажите пожалуйста, возможно ли сделать интерактивную карту с выбором локации методом клика по изображению? Есть такая возможно у qsp? Если есть, можно пример кода?
waganwils,
Есть возможности MAP/AREA.
Есть возможность порезать карту на прямоугольники и вывести через таблицу, а уже в таблице делать кликабельным что хочешь.
Код сейчас не дам, может сам быстрее сообразишь, пока дождешься примера.
waganwils,
обрати внимание на эту тему: https://qsp.org/forum/651-html-tegi-map-i-area
Ребят подскажите по календарю пожалуйста. Я сам не понимаю как его делать. Выбрал тему про Юлианский календарь, высчитал нужную мне дату, проблема только в том, что он часы и минуты по 0 показывает, как сделать нужное мне время. Второй вариант выбрал из этой темы https://qsp.org/forum/23-kak-sdelat пост от cleep, дату стартовая нормально делается, и даже на первой локации время нормально считает, но потом начинаются ошибки, то время не считает, то говорит, что такой локации нет, что-то не так делаю. Объяснить более точно затрудняюсь, так как не понимаю алгоритма календаря. Более подробно разъяснено в теме про Юлианский календарь, только бы еще знать как часы и минуты установить.
Нубай,
Тут https://qsp.org/forum/790-kalendar-po-metodu-sceta-ulianskih-dnej читал?
Да, с этой темы пробовал, все как по шагам описано, но часы почему-то 0 часов, 0 минут ставит, хотя дату верно, какую мне надо. Может просто часы в стартовой локации прописать, или так не корректно?
Нубай,
Значит что-то упустил, проверяй внимательнее.
На стартовой локации инициализируешь названия дней и месяцев, JDNstart.
Чтоб календарь присвоил значения переменным (посчитал время) нужно в него сходить через
gs 'calendar'
А чтоб часы отобразились нужно еще
*nl $weekday[weekday] + ',' + day + $month[month] + ' ' + year + 'года' + '. ' + $hour + ':' + $minut
Последнюю строчку можно в $ONNEWLOC добавить.
Разобрался наконец с Юлианским календарем, самое то важное в закрепленной теме и не было сказано. У меня вопрос и просьба одновременно. Где можно посмотреть простенький пример кода. Хочу сделать так, чтобы от времени суток и дня недели, зависело присутствие определенных NPC на локации, но не представляю как это сделать, есть мысль через IF но не понимаю как время указывать. И еще, где можно про RAND подробно прочитать? Так как хочется еще добавить случайных событий.
Нубай,
ну предположим текущее время у тебя прописано в переменных hour и minute. Тогда, если персонаж на локации с 8:00 до 15:30, указываем промежутки:
if (hour>=8 and hour<15) or (hour=15 and minute<=30):
*pl "Дядя Валинор восседает на троне."
else
*pl "Трон пустует"
end
Особо про RAND читать нечего. Это просто функция, возвращающая случайное число в указанном промежутке:
rand(0,1) & ! вернёт либо ноль, либо единицу
rand(0,9) & ! вернёт случайным образом цифру
rand(100,200) & ! вернёт число в промежутке между 100 и 200, включительно.