Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
20.12.2010 15:18

Casralis
Участник (+2)
Зарегистрирован: 20.12.2010
Сообщений: 15

Как осуществить обработку команды в поле ввода?

Заранее извиняюсь за глупый вопрос (если он такой, скорее всего как раз такой)  я только новичок в этом деле, да еще и совсем не разбираюсь в программных кодах и тд.
Собираюсь создавать игру с помощью QGEN.
Итак сам вопрос - как сделать так чтобы при вводе необходимой команды в поле ввода - был переход на необходимую локацию?
Да,да, я знаю, я профан.
Пожалуйста подскажите

Неактивен

0    0    #2
20.12.2010 15:31

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Как осуществить обработку команды в поле ввода?

см. справку

Как сделать, чтобы игрок мог перейти на новую локацию только при вводе верного пароля?

Например, так (с созданием дополнительного действия):

Код:

if input('Введите пароль') = 'мой пароль':act 'Пройти':gt 'секретная база'

Или так (без дополнительного действия):

Код:

if input('Введите пароль') = 'мой пароль':gt 'секретная база'

C сообщением при неверном пароле:

if input('Введите пароль') = 'мой пароль':
        gt 'секретная база'
else
        'Вход запрещен!'
end

Также можно воспользоваться строкой ввода (см. функцию "$USER_TEXT").

Вопросы лучше задавать на форуме QSP

Неактивен

0    0    #3
20.12.2010 16:28

Casralis
Участник (+2)
Зарегистрирован: 20.12.2010
Сообщений: 15

Re: Как осуществить обработку команды в поле ввода?

Благодарю за ответ
А если будет несколько правильных вариантов ответа, и для каждого из них будет соответствующая локация? Попробовал добавить еще один такой код но с другим ответом в следующую строку действия, работает но почему-то требует два раза ввести одно и тоже, а третий вариант три - как от этого избавится?

Неактивен

0    0    #4
20.12.2010 16:29

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Как осуществить обработку команды в поле ввода?

Casralis написал:

Итак сам вопрос - как сделать так чтобы при вводе необходимой команды в поле ввода - был переход на необходимую локацию?

1. Создаём локацию, в которой у нас будут обрабатываться команды игрока. Пусть она называется, например, "ОбработкаВвода".
2. Где-нибудь в самом начале кода игры указываем движку, что именно эта локация будет обрабатывать команды игрока:

Код:

$USERCOM='ОбработкаВвода'

3. В локации "ОбработкаВвода" пишем код типа этого:

Код:

!Запоминаем команду игрока
$Команда=USER_TEXT
!Очищаем строку ввода команд
CMDCLEAR
!Обрабатываем команды
if $Команда='на дерево':
    GT 'Дерево'
elseif $Команда='в колодец':
    GT 'Колодец'
end

Как-то так.


Прикрепленные файлы:
example_where2go.zip, Размер: 593 байт, Скачано: 530

Неактивен

0    0    #5
20.12.2010 16:50

Casralis
Участник (+2)
Зарегистрирован: 20.12.2010
Сообщений: 15

Re: Как осуществить обработку команды в поле ввода?

Olegus t.Gl. написал:

1. Создаём локацию, в которой у нас будут обрабатываться команды игрока. Пусть она называется, например, "ОбработкаВвода".
2. Где-нибудь в самом начале кода игры указываем движку, что именно эта локация будет обрабатывать
Как-то так.

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

Неактивен

0    0    #6
20.12.2010 16:55

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Как осуществить обработку команды в поле ввода?

Casralis написал:

Olegus t.Gl. написал:

1. Создаём локацию, в которой у нас будут обрабатываться команды игрока. Пусть она называется, например, "ОбработкаВвода".
2. Где-нибудь в самом начале кода игры указываем движку, что именно эта локация будет обрабатывать
Как-то так.

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

Ну так именно этот подход и используется — строка ввода команды висит постоянно. В отдельной локации лишь обрабатываются введённые игроком команды. Посмотри пример.

Неактивен

0    0    #7
20.12.2010 17:07

Casralis
Участник (+2)
Зарегистрирован: 20.12.2010
Сообщений: 15

Re: Как осуществить обработку команды в поле ввода?

Olegus t.Gl. написал:

Ну так именно этот подход и используется — строка ввода команды висит постоянно. В отдельной локации лишь обрабатываются введённые игроком команды. Посмотри пример.

О круть, спасибо. Что-то я сразу не понял, думаю с опытом придет
А можно данную функцию как то фиксировать на локации, при необходимости.

Отредактировано Casralis (20.12.2010 17:49)

Неактивен

0    0    #8
20.12.2010 18:40

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Как осуществить обработку команды в поле ввода?

Да, можно.

Неактивен

0    0    #9
20.12.2010 18:50

Casralis
Участник (+2)
Зарегистрирован: 20.12.2010
Сообщений: 15

Re: Как осуществить обработку команды в поле ввода?

Nex написал:

Да, можно.

А как, если не секрет
Снова извиняюсь за свое незнание

Неактивен

0    0    #10
20.12.2010 18:57

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Как осуществить обработку команды в поле ввода?

Код:

IF $CURLOC = 'имя нужной локации':
  операторы
END

Ставь в конце вопроса вопросительный знак, пожалуйста.

Отредактировано Nex (20.12.2010 18:58)

Неактивен

0    0    #11
20.12.2010 19:21

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Как осуществить обработку команды в поле ввода?

Casralis написал:

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

Насколько я понимаю, ты хочешь работать с кодом обработки введённой команды в той локации, к которой та или иная команда относится?

Неактивен

0    0    #12
20.12.2010 19:41

Casralis
Участник (+2)
Зарегистрирован: 20.12.2010
Сообщений: 15

Re: Как осуществить обработку команды в поле ввода?

Nex написал:

Ставь в конце вопроса вопросительный знак, пожалуйста.

Огромное спасибо, впредь буду ставить.

Неактивен

0    0    #13
20.12.2010 19:48

Casralis
Участник (+2)
Зарегистрирован: 20.12.2010
Сообщений: 15

Re: Как осуществить обработку команды в поле ввода?

Olegus t.Gl. написал:

Насколько я понимаю, ты хочешь работать с кодом обработки введённой команды в той локации, к которой та или иная команда относится?

Мне скорее нужен результат для той или иной команды в той или иной локации.
например:
используется одна и та же команда, так её и назовем "команда"

"команда" в локации 1 = результат 1 (имеется в виду локация с описанием результата)
"команда" в локации 2 = результат 2
"команда" в локации 3 = результат 3

и далее в этом духе.
Ну, впрочем итак всё решаемо, тем, что вы оба мне уже сказали, так что мне и этого хватит.

Отредактировано Casralis (20.12.2010 19:50)

Неактивен

0    0    #14
20.12.2010 20:04

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Как осуществить обработку команды в поле ввода?

Хм… А вот пример помудрёней. Пришлось переместить вывод описаний в код, но зато стало возможным обрабатывать команды в конкретных локациях.


Прикрепленные файлы:
example_where2go_p2.zip, Размер: 1,300 байт, Скачано: 535

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru