Автор | Сообщение |
|
Отправлено: 04.11.08 15:15. Заголовок: Как это сделать?
Только начал программить на QSP. Вопрос: как сделать так, чтобы после выполнения одного действия, в этой же локации становились видны другие, до этого не видимые? Хелп читал - не нашёл ответа. И ещё - можно ли с помощью оператора DYNAMIC создавать новые действия и предметы?
|
|
Профиль
Цитата
Ответить
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|
|
| демиург
|
|
|
Отправлено: 05.12.08 11:33. Заголовок: Подскажите плизз, ка..
Подскажите плизз, как можно узнать название не текущей, а предыдущей локации. Можно как-то это сделать средствами языка, а не добавлением переменных?
|
|
Профиль
Цитата
Ответить
|
|
| moderator
|
|
|
Отправлено: 05.12.08 12:19. Заголовок: ну так понадобится в..
ну так понадобится всего 1 переменная. На предыдущей локации пишешь $loc=$CURLOC А на текущей можешь проверить IF $loc <> 'подвал': и т.д.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 05.12.08 12:38. Заголовок: Можно сделать такое ..
Можно сделать такое для всей игры сразу, автоматически - на $ONNEWLOC добавляем код $prevloc=$curloc Теперь при обработке кода новой локации (при переходах) в $prevloc будет имя предыдущей локации.
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 05.12.08 16:15. Заголовок: О, спасибо :)..
О, спасибо :)
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 09.12.08 13:04. Заголовок: Byte пишет: Можно ..
Byte пишет: цитата: | Можно сделать такое для всей игры сразу, автоматически - на $ONNEWLOC добавляем код $prevloc=$curloc Теперь при обработке кода новой локации (при переходах) в $prevloc будет имя предыдущей локации. |
| А можно пожалуйста пример, а то я видимо что-то делаю неправильно, потому что у меня это всё не работает.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.12.08 13:55. Заголовок: #2 $onnewloc='ne..
#2 $onnewloc='new' act 'next':gt '3' - #3 'Вы перешли с локации <<$prevloc>>' - #new $prevloc=$curloc - Если переменную $prevloc нужно использовать в коде действий, то нужно во временной переменной в коде локации сохранить имя предыдущей: #2 $onnewloc='new' act 'next':gt '3' - #3 $ploc=$prevloc 'Вы перешли с локации <<$prevloc>>' act 'show':'Вы перешли с локации <<$ploc>>' - #new $prevloc=$curloc - UPD: Есть ещё такой вариант: #2 $onnewloc='new' act 'next':gt '3' - #3 'Вы перешли с локации <<$prevloc>>' act 'show':'Вы перешли с локации <<$aprevloc>>' - #new $aprevloc=$prevloc $prevloc=$curloc - То есть, для кода локации используется $prevloc, а для кода действий $aprevloc.
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 10.12.08 14:06. Заголовок: ммммм... Я запуталас..
ммммм... Я запуталась. Давайте так. Я создаю локацию с именем "onnewloc" пишу на ней $prevloc=$curloc насколько я поняла - это должнло выполняться всегда, когда я перехожу на новую локацию? но если я на локации с названием "Карта" делаю act 'next': gt $prevloc он говорит, что такой локации не существует, при условии, что в локацию Карта - я захожу с какой-то локации. Что здесь не так? Где ошибка?
|
|
Профиль
Цитата
Ответить
|
|
| moderator
|
|
|
Отправлено: 10.12.08 14:23. Заголовок: Ajenta в самой перво..
Ajenta в самой первой локации напиши $ONNEWLOC = 'onnewloc' Байт, будь лаконичнее. К тому же девушка наверняка пользуется QGen4, а не TXT2GAM.
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 10.12.08 14:35. Заголовок: Угу, пасиб, попробую..
Угу, пасиб, попробую.
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 10.12.08 15:01. Заголовок: Тааак. Сделала как ..
Тааак. Сделала как сказали. Я сделала вывод переменной $prevloc на экран Происходит следующее Перехожу я на карту - $prevloc пишет название предыдущей локации. Делается act 'next': gt $prevloc после чего $prevloc - пишет Карта и никуда не переходит я что-то опять не так делаю. :( что ему ещё нехватает?
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 10.12.08 15:03. Заголовок: А пользуюсь действит..
А пользуюсь действительно QGen'ном и именно четвёртым.
|
|
Профиль
Цитата
Ответить
|
|
|
| moderator
|
|
|
Отправлено: 10.12.08 15:14. Заголовок: В локации "onnew..
В локации "onnewloc" должно быть это: $aprevloc=$prevloc $prevloc=$curloc Когда используешь "имя предыдущей локации", то для действий используй переменную $aprevloc, а для остального - $prevloc. т.е. действие должно быть таким: act 'next': gt $aprevloc Извини, что сразу не разобрался.
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 10.12.08 15:17. Заголовок: Урра!!! Заработало! ..
Урра!!! Заработало! Чмок и большущее спасибо Сама бы фиг догадалась.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 25.02.09 18:19. Заголовок: Люди, я очень давно ..
Люди, я очень давно здесь не был - появился вопрос. Есть вот такой код цитата: | $USERCOM=$CURLOC $USRTXT = '' if (первое_посещение=1): 'Встаю. В комнате полумрак - не понятно, ещё ночь или уже утро?' act 'посмотреть на будильник': !смотрит прямо end первое_посещение=0 end if ($USRTXT = '1'): ! посмотрел направо cla act 'посмотреть на будильник': end end if ($USRTXT = '2'): cla act 'включить свет': !посмотрел прямо 'включил свет' end end if ($USRTXT = '3'): act 'открыть шторы': !посмотрел назад end end |
| При вводе в поле ввода числа 2 должно появляться действие 'включить свет'. На деле оно ещё и выполняется - почему? Кстати, denis - это я, админ, напомни мне мой пароль, пожалуйста. игру, которую я делал, я успешно по**рил во второй раз - теперь уже путем форматирования жёсткого.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 25.02.09 18:53. Заголовок: Всё, разобрался, это..
Всё, разобрался, это баг - Byte, поправь, сейчас если ставишь после act: комментарий, то действие сразу выполняется.
|
|
Профиль
Цитата
Ответить
|
|
| moderator
|
|
|
Отправлено: 25.02.09 19:18. Заголовок: denis-1 это не баг. ..
denis-1 это не баг. Это запланированные Байтом грабли. Восклицательный знак в языке QSP - не просто комментарий, а оператор комментария, который: нельзя использовать в конструкциях IF a=b : !наше условие *PL 'a равно b' END , т.к. он посчитает комментарий за оператор, а раз после двоеточия стоит оператор, то IF будет считаться однострочным; то же касается и ACT; нельзя использовать так: *PL 'строка1' ! Byte's soft *PL 'строка2' , т.к. кавычки и апострофы внутри комментария необходимо экранировать точно так же, как и в строковых константах - из-за апострофа движок посчитает, что комментарий продолжается на следующей строке.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 25.02.09 20:03. Заголовок: Ага, спасибо. Завтра..
Ага, спасибо. Завтра выложу (тьфу-тьфу-тьфу!) завязку игры для тестирования. :)
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 25.02.09 20:38. Заголовок: А можно в этой теме ..
А можно в этой теме выкладывать поэпизодно игру, если она конкурсная? Т.е. выложу 2-3 эпизода, а в полной версии их 18-20? Просто мне для тестирования нужно.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 25.02.09 20:44. Заголовок: Допускается только з..
Допускается только закрытое тестирование (можно высылать небольшому кругу лиц - с оговорками). Игра или её части не должны быть опубликованы ранее срока сдачи игр. denis, и ещё - если собираешься участвовать в конкурсе, нужно подать заявку (автор+предварительное название).
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 25.02.09 21:27. Заголовок: Отлично! Завтра вышл..
Отлично! Завтра вышлю тебе и Nex-у! :)
|
|
Профиль
Цитата
Ответить
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|