RU 📌 Pinned

Как сделать?

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

Lucifer,
Держи ссылку, Aleks Versus тут все разжевал - Dynamic

Tom Run,
Спасибо

$place_name,$place_location,$place_info = %<<$Place>>
$place_name,$place_location,$place_info = %$args[0]

Подскажите, пожалуйста, насколько я понял, при распаковке в кортеж нельзя подставить случайное значение?

Aranta, я не совсем понял вопрос, но если правильно понял то ответ в справке:

Кортежи нельзя изменять. То есть, например, в кортеже из трёх элементов нельзя заменить второй элемент. Нужно распаковать кортеж в переменные, изменить одну из переменных и снова упаковать в кортеж.

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

Aleks Versus Moderator 07.12.2024 16:25 (1 year ago)

Aranta,
для этого нужно использовать функцию arritem. Если передаёшь имя кортежа, как аргумент, делай так:

$place_name, $place_location, $place_info = arritem('%<<$args[0]>>')

будь внимателен с префиксами типов. В моём примере он уже подставлен.

Aleks Versus,
Хмм, сам бы не догадался! Благодарю!

Вполне себе #2722 11.12.2024 13:16 (1 year ago)

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

Вполне себе, код не кого, не ждёт, он выполняется от начала и до конца. Его можно прервать, или затормозить (тормозит весь код - зависает игра на выставленное время).
Пропиши условия для функции, или создай 2 функции и вызывай одну перед картинкой вторую после.
Функцию можно прописать в самой картинке (в гиперссылки).
“но не в списке действий.” - чтобы срабатывала не от действия, а автоматически? - вынеси функцию за пределы действия (как вариант в основной код).
Может я не так понял, тогда опиши как это должно работать (может с примером кода), или кто-то поймёт лучше.

Вполне себе #2722 11.12.2024 18:24 (1 year ago)

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 переносишь в переменную или в другую локацию и вызываешь код с помощью операторов. Хотя если код маленький то можно вписать его в саму гиперссылку однострочной записью через амперсанд &.

Вполне себе #2722 12.12.2024 05:12 (1 year ago)

Tom Run,
Ты меня опять не понял. Как сделать Динамику или, что занести в ACT и как - я понимаю. Меня интересует как “остановить” работу “Процедуры” для ожидания некоего действия (в моем случае - выбора одной или другой картинки кликом мышки)
Суть то не в том, чтобы занести в Действия, а в том, чтобы из Локации вызвать функцию (Gs и Func), внутри которой происходит обработка клика, чтобы не менять локацию через Gt. Задача после обработки “Процедуры” вернуться в ту же точку кода из которой она была вызвана.

Вполне себе,
Если код должен сработать автоматически - то кроме как через COUNTER, я вариантов не вижу.
Если ты какой-то вариативности хочешь через MSG, то используй $INPUT. В нем можно сделать описание, что нужно ввести для конкретного результата.
Если выбор по клику мышки на картинку, то почему нельзя привязать ссылку на конкретный код?
И сдается мне, что без обновления локации никак не обойтись.

Вполне себе #2722 12.12.2024 05:56 (1 year ago)

dmvikar,
Уже все попробовал. Увы. Пока только переходом на локацию-обработчик.
Надо просить Байта, чтобы в инфополе (MSG) была возможность вставить другие кнопки и выдавать результат после закрытия.

Вполне себе:

dmvikar,
Надо просить Байта, чтобы в инфополе (MSG) была возможность вставить другие кнопки и выдавать результат после закрытия.

Как ты себе это представляешь? Это будет тот же инпут, только удобный.
К тому же, вопросы по msg уже поднимались, но ничего не изменилось.
Бытует мнение, что эти окошки вредны и не нужны вовсе.

Log in or Register to post comments.