RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2437282 views

Aleks Versus Moderator 16.04.2014 09:42 (11 years ago)

Антон,
Всё можно есть, если очень хотеть.
Значение месяца выставляешь в зависимости от того, какой это день в году.
0…30 - январь
31…58 - февраль
59…89 - март
и т.д. Если дни считаются с 0:

if день>-1 and день<31:
     месяц = 1
elseif день>30 and день<59:
     месяц = 2
....
end

365-й день года таким образом будет под номером 364.
С днями недели несколько сложнее. Номер дня недели следует вычислять не исходя из номера дня в году, а исходя из того, сколько игрового времени прошло. Где-то совсем недавно уже встречался код, который только ленивый не прокомментировал. Попробуй поискать в этом форуме с конца вверх по сообщениям.

Я даже тебе подскажу, что это за сообщение. 16 декабря 2013 года от vais.

Антон,
не деление на 7, а остаток от деления на 7. Остаток вычисляется с помощью оператора MOD.

1) Как повесить выбор действия на цифровые кнопки клавиатуры?

2) Можно ли задать определенное форматирование текста для всех локаций сразу(тип шрифта, размер)? Если возможно, то как это сделать?

Aleks Versus Moderator 17.04.2014 10:13 (11 years ago)

Герасим,
http://wiki.qsp.su/help:fonts - настройки шрифтов.

Действия не вешаются на кнопки. Они им соответствуют. 1 - первому действию (самое верхнее), 2 - второму и т.д. Т.е. при использовании цифровой клавиатуры можно обеспечить действия типа “идти вперёд, назад, лево, право”, расположив действия в правильном порядке.

Spoiler

пустое действие[1]
назад[2]
пустое действие[3]
лево[4]
пустое действие[5]
право[6]
пустое действие[7]
вперёд[8]
пустое действие[9]

Aleks Versus,

Спасибо за ответ.

С календарем справился…. конечно результат получился не очень…. мягко говоря… так в году 360 дней… а все месяцы состоят из 30 дней.
Но пока… в рамках изучения принципов и понимания ряда возможностей этого достаточно.
Теперь вопрос… точнее два…
Первый. .. как сделать чтобы время отражалось в спец окне…. но не дополнительных описаний или предметах (которые справа) а просто оконце слева.
Второй вопрос… как сделать чтобы время было постоянно высвечено в этом окне… а не только в начале старта…

Антон,

! В начале игры назначаем обработчик перехода на новую локацию.
$ONNEWLOC = 'ONNEWLOC'

! В локации "ONNEWLOC" выводим дату.
... Вывод текущей даты ...

Спасибо… теперь дата всегда на глазах… но в основном окне… а не в отдельном окошке.

Антон,
ты сам написал, что в дополнительное описание либо инвентарь выводить не нужно.
Помимо них у нас нет никаких “специальных” окон - только основное описание и всё.

Обычно для вывода всяких статусов пользуются окном дополнительного описания. Оно для этого и предназначено.

Aleks Versus Moderator 19.04.2014 07:24 (11 years ago)

Антон:

Спасибо… теперь дата всегда на глазах… но в основном окне… а не в отдельном окошке.

Может тебе воспользоваться таблицей? <table></table>?

А как сделать, чтобы я из редактора квестов (пользуюсь qgen’ом) мог сразу попасть на нужную мне локацию? Предположим надо мне проверить, работает ли нужное мне действие, а оно где нибудь в конце игры или ну просто далеко от начала и доходить до этого момента каждый раз как-то неудобно. Можно было бы сделать переход на нужную мне локацию в самом начале квеста, а потом удалить, так забуду еще удалить. Есть ли там какая-то функция, которая позволяет с какой локации начать?

RomaDova,

сделать переход на нужную мне локацию в самом начале квеста, а потом удалить

Только так.

Aleks Versus Moderator 20.04.2014 20:17 (11 years ago)

RomaDova,
можешь сделать простейший отладчик. Создаёшь локацию с следующим кодом:

dynamic $user_text

Я обычно называю такие локации inputTEXT. Подглядел в какой-то игре, понравилось название. На самой первой локации пишешь:

$usercom = 'inputTEXT' & ! используй имя своей локации
showinput 1 & ! показывает поле ввода на экране

Теперь любая строка, введённая в поле ввода, будет выполняться как код. Введёшь с ошибкой, получишь ошибку, так что ничего сложного лучше не писать. Но зато ты всегда можешь переместиться на нужную тебе локацию, введя в поле ввода команду:

goto 'нужная мне локация'

Или проверить значение переменной, просто написав её имя в поле ввода.

P.S.: естественно все команды в такой импровизированной “командной строке” срабатывают лишь после того, как ты нажал Enter.

Отладчик тоже можно забыть отключить в релизной версии :)

А можно как нибудь посмотреть список задействованных в квесте переменных? Чтобы не забыть есть ли у меня уже переменная с таким именем и не запутаться.

Log in or Register to post comments.