Как сделать?
…
Вполне себе, код не кого, не ждёт, он выполняется от начала и до конца. Его можно прервать, или затормозить (тормозит весь код - зависает игра на выставленное время).
Пропиши условия для функции, или создай 2 функции и вызывай одну перед картинкой вторую после.
Функцию можно прописать в самой картинке (в гиперссылки).
“но не в списке действий.” - чтобы срабатывала не от действия, а автоматически? - вынеси функцию за пределы действия (как вариант в основной код).
Может я не так понял, тогда опиши как это должно работать (может с примером кода), или кто-то поймёт лучше.
Tom Run:
Может я не так понял, тогда опиши как это должно работать (может с примером кода), или кто-то поймёт лучше.
Все просто. В плеере есть инфоокно: MSG ‘Ляляля’. Но это окно не возвращает ничего, там только одна кнопка “Ок”.. Типа “видел, прочел, пора закрываться”.
Нет кнопок “Да” и “Нет”, “Принять” и “Отменить”. Я хочу сделать функцию, которая будет выполнять эту задачу.
I=Func(’CheckPoint’)
If I=On :
Gt ‘Go_Next’
Else
Gt ‘Go_Away’
End
И теперь у меня вопрос, как, не используя действия (Act ‘Блаблабла’ : Gt ‘Жужужу’) сделать так, чтобы функция CheckPoint ждала нажатия на одну из картинок (ссылок) внутри себя. Если я использую ACT, то оно отобразится в поле Действий, а мне это не надо.
В принципе, можно попробовать вывести сообщение с ссылками, запустить Таймер - COUNTER. В Таймере проверять, состояние флагов, и если флаг “On” или “Off” то процедуру больше не вызывать и перейти к выдаче результата.
Это будет очень полезная фича для универсального применения.
Например. Идет игра, в игре что-то происходит, и выдается какое-то сообщение с двумя кнопками - “Да”-”Нет”. Игрок нажимает и игра движется в нужном направлении, с локации уходить не надо, ничего менять не надо, просто мессага в нужном месте и с нужное время.
Я обратился, чтобы не изобретать велосипед - вдруг кто подобное делал?
Вполне себе,теперь понятно, оператор dynamic или gs позволяют избавиться от действий. Весь код из ACT переносишь в переменную или в другую локацию и вызываешь код с помощью операторов. Хотя если код маленький то можно вписать его в саму гиперссылку однострочной записью через амперсанд &.
Tom Run,
Ты меня опять не понял. Как сделать Динамику или, что занести в ACT и как - я понимаю. Меня интересует как “остановить” работу “Процедуры” для ожидания некоего действия (в моем случае - выбора одной или другой картинки кликом мышки)
Суть то не в том, чтобы занести в Действия, а в том, чтобы из Локации вызвать функцию (Gs и Func), внутри которой происходит обработка клика, чтобы не менять локацию через Gt. Задача после обработки “Процедуры” вернуться в ту же точку кода из которой она была вызвана.
Вполне себе,
Если код должен сработать автоматически - то кроме как через COUNTER, я вариантов не вижу.
Если ты какой-то вариативности хочешь через MSG, то используй $INPUT. В нем можно сделать описание, что нужно ввести для конкретного результата.
Если выбор по клику мышки на картинку, то почему нельзя привязать ссылку на конкретный код?
И сдается мне, что без обновления локации никак не обойтись.
dmvikar,
Уже все попробовал. Увы. Пока только переходом на локацию-обработчик.
Надо просить Байта, чтобы в инфополе (MSG) была возможность вставить другие кнопки и выдавать результат после закрытия.
Вполне себе:
dmvikar,
Надо просить Байта, чтобы в инфополе (MSG) была возможность вставить другие кнопки и выдавать результат после закрытия.
Как ты себе это представляешь? Это будет тот же инпут, только удобный.
К тому же, вопросы по msg уже поднимались, но ничего не изменилось.
Бытует мнение, что эти окошки вредны и не нужны вовсе.
dmvikar:
Бытует мнение, что эти окошки вредны и не нужны вовсе.
Тоды, ой!
Как говорил один мой хороший знакомый - БСЭЖ (Будем С Этим Жить). :D
Вполне себе,
Если я использую ACT, то оно отобразится в поле Действий, а мне это не надо.
Я тут решил что тебе просто нужно код перенести, чтоб он не отображался в действии. А так-то и у меня не получилось реализовать твою идею через msg.
Как вариант я сделал иначе:
Создал скрытую таблицу в тексте и поместил ее в динамик. В таблице есть вопрос и варианты - да/нет. При определенном выборе эта таблица появляется и игрок выбирает ответ. После ответа таблица сворачивается.
Мне показалось это даже красивее выглядит, просто мне не нравятся всплывающие окна в игре. Обычно их делают при выходе, например: - Вы точно хотите выйти?, или - Не забудьте сохраниться…
Ну тут уже на вкус и цвет, просто предложил.
Вполне себе,
в qSpider есть возможность делать такие окошки. У меня выходило видео на эту тему для старой версии qSpider, сейчас это делается ещё проще и без JS.
https://youtu.be/IRqC_2pFYbQ
Если ты хочешь всё-таки реализовать нечто подобное на классике, то в принципе такое сделать можно. По крайней мере я такое делал, но у меня реализация жёстко привязана к моей игре.
https://youtu.be/OxOozZ9tn3M
Tom Run:
Как вариант я сделал иначе:
Создал скрытую таблицу в тексте и поместил ее в динамик. В таблице есть вопрос и варианты - да/нет. При определенном выборе эта таблица появляется и игрок выбирает ответ. После ответа таблица сворачивается.
Хм… Это интересно… весьма… И разумно.. Надо будет с этой мыслью переспать..
А всплывающие окошки, это не плохо, главное с ними не мудрить и оставлять их на особые случаи.
Aleks Versus:
в qSpider есть возможность делать такие окошки. У меня выходило видео на эту тему для старой версии qSpider, сейчас это делается ещё проще и без JS.
Я уже писал. Новый Спайдер не поджевал настройки окон с Классики и не вкурил операторов КуСП 5.9.1… (((
Пока для меня он неюзабелен…
А вот за твой ролик по классике - спасибо
И снова, здравствуйте.
Камрады и сочувствующие, а также гуру Куспа. А можно ли по номеру индекса (именно по числовому номеру) позиции массива узнать как он (индекс) в реальности называется (текстовое)?
Поясню, чтобы понять самому:
Имеем массив А с индексами “Вася”, “Коля”, “Петя”, “Рыба” и массив Б с индексами “Жора”, “Вася”, “Пиво” Если применить CopyArr Б, А, то А будет с индексами “Жора”, “Вася”, “Пиво”, а мне нужно, чтобы в А изменился только параметр с индексом “Вася”, а остальные индексы “Жора” и “Пиво” - добавились или были проигнорированы (опционально).
Как это на практике: Имеем большой массив данных (130 индексов и значений - характеристики персонажа), все индексы строковые, а значения - по разному, есть и тех и этих. И есть отдельно несколько пресетов. Немного с общими данными, а есть с индивидуальными, индексы в них не по порядку относительно “большого массива”, а по необходимости, в зависимости от пресета. Хочется написать универсальный алгоритм внесения данных по их индексу из одного массива в другой с игнорированием или добавлением “Разночтений” по индексам.
Или если такое (универсальный алгоритм) есть - то скажите где искать?
Вполне себе,
Плохая идея проворачивать такое со строковыми индексами, на самом деле они все равно числовые.
Если у тебя есть полный список всех возможных индексов, то ты можешь просто перечитать по ним целевой массив и узнать, есть ли в нем значение для этого индекса. И добавить значение, если нет.
dmvikar:
Плохая идея проворачивать такое со строковыми индексами, на самом деле они все равно числовые.
Я в курсе, что числовые… И знаю как листать массивы, но сегодня массив такой, а завтра другой, а динамически формируемый - третий. Или сначала надо занести в массивы индексы, а потом по индексам определять? Ну, это такое себе.. На каждый массив свой обработчик? Не айс.
Потому и задал вопрос, есть ли возможность узнать индекс в тестовом выражении, ведь где-то же он хранится?!