Как сделать?
…
EL_RIO:
$loc=$curloc
Разве loc - не зарезервированное слово для функции?
Farfignugen:
И блоки с циклами нужны для того, что бы туда вставлять проверки действий.
мне не кажется удобным вставлять блоки проверки действий в календарь. Но хозяин - барин.
Farfignugen:
Не все может быть кратным часам или минутам.
Покажи в своём коде пример действия, которое будет происходить раз в 1 день 22 часа 59 минут.
Farfignugen:
Но дело в том, что циклы в этом коде редко срабатывают, и вообще никак не нагружают систему.
Пока автор не воткнёт твой календарь в аэру и не выставит переход в 10040 минут. :lol:
Разве loc - не зарезервированное слово для функции?
В нынешней версии классического плеера, будет работать. В следующей, а также в Андроид-плеере и Навигаторе, уже нет.
Nex:
В нынешней версии классического плеера, будет работать.
Будет работать, как функция проверки наличия локации, или как переменная?
Nex:
В нынешней версии классического плеера, будет работать. В следующей, а также в Андроид-плеере и Навигаторе, уже нет.
Функция добавлена в 5.7.0. Так что и в нынешней версии не будет работать.
Aleks Versus,
работает в качестве обычной переменной.
newsash,
ты ошибаешься.
Nex:
ты ошибаешься.
Пруф, см. пункт 2.
UPD: Выяснилось, что действительно есть такой баг, что $LOC работает как переменная.
$MOD, $OBJ, $LOC, $NO, $AND, $OR - работают, как переменные
MOD, OBJ, LOC, NO, AND, OR - работают как функции.
Является ли символ $ частью имени переменной, в таком случае?
killvar ‘loc’ убивает массив $loc.
Aleks Versus:
Является ли символ $ частью имени переменной, в таком случае?
Если закопаться в механизм хранения переменных интерпретатором, то каждая переменная - это массив структур из двух элементов, один из которых - число, а второй - строка. А на уровне языка QSP обращение к строке идёт через ‘$’, а к числу - без этого знака. Для переменных с названиями MOD, OBJ, LOC, NO, AND, OR доступно только строковое значение (с использованием ‘$’), а обращение к числовому перебивается вызовом функции.
Лично я считаю это недоработкой языка, нужно Байту передать.
P.S. Кому нечего делать, можно ещё поэкспериментировать с ‘$$$переменная’. :)
newsash,
Помоги разобраться:
if selobj = ‘плакат с девицей’:
*clear
‘<b>Плакат с девицей</b>’
‘Забавный такой и информативный плакат’
‘<a href=“EXEC:pl1=3 & delobj $selobj & *clear”>сорвать</a>’
end
end
Так вот “pl1” не присваивается значение “3” но все остальное работает то есть клеар и удаление выделенного объекта.
попробуй изменить переменную на pal1
Либо, если дело не в неправильном чтении pl, значит переменной где-то ещё присваивается другое значение.
P.S.: проверил. Всё прекрасно работает. pl1 присваивается значение 3. Проверяй остальной код.
Alex Versus. Спасибо за ответ но.. Еще сильнее запутался(( Может такое происходить из-за того что код выше обрабатывается в локации “счетчик предметов”?
Pasha,
“счетчик предметов” я так полагаю ты поместил в $onobjsel?
$onobjsel = "счетчик предметов"
Так?
Значение в pl1 передаётся, когда ты нажимаешь на гиперссылку. Это точно. Проверь, где ещё используется pl1. Скорее всего где-то дальше по коду. Т.е. после того, как ты срываешь плакат, происходят ещё какие-то действия. Тебе нужно отследить, где именно меняется pl1. Поскольку ссылка уничтожает предмет “плакат с девицей”, выделение снимается и обработка локации “счетчик предметов” не происходит.
Вот исходник##text##
Pasha,
проверил. Переменной pl1 присваивается значение 3. Всё работает.
Можешь проверить сам.
Spoiler
Создаёшь локацию ‘usercom’ и пишешь в ней следующее:
dynamic $user_text
На локации “начало” меняешь:
showinput 0
на
showinput 1
Это покажет строку ввода на экране.
Четвёртой строкой на локации “начало” напиши
$usercom = 'usercom'
Теперь весь код, вводимый в строку ввода, будет выполняться по нажатии “enter”. То есть можешь ввести “pl1” в строку ввода и на экран выведется его значение.
Вот подправленный исходник
##text##
Ну да, всё понятно. Небольшое недопонимание, как работает QSP.
У тебя при выборе предмета выполняется вся локация “меню_объекта” целиком.
По нажатию ссылки выполняется только код ссылки, т.е. pl1=3, но код “меню_объекта” уже выполнен со старым значением.
Чтобы всё работало, нужно в код EXEC дописать команду gs ‘‘меню_объекта’’.