Форум » » FireURQ (продолжение) » Ответить

FireURQ (продолжение)

fireton: FireURQ - это GUI-based интерпретатор URQ. Блог разработчика Текущая версия:2.2.1 Основные возможности: Реализация URQL, близкая к классической URQ_DOS Расширенный синтаксис, позволяющий, например, передавать параметры в локацию-подпрограмму (отличия синтаксиса подробно описаны в файле справки). Возможность вставки изображения (или его части) в текст. Декораторы: фрагменты текста или изображения (включая анимированные GIF), которые можно поместить в любое место на экране и по-разному ими манипулировать. Пользовательские шрифты. Поддержка архивного формата квестов .QSZ, при использовании которого ресурсы можно поместить в файл квеста Расширенная поддержка музыки и звука. Поддерживаются форматы WAV, AIFF, MP3, MP2, MP1, OGG, а также трекерные форматы музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Реализован fadein и fadeout для музыки. Удобная озвучка локаций. Возможность создания exe-файла игры. Удобный режим отладки, в котором легко обнаружить ошибку и модифицировать квест без перезапуска проигрывателя. Многое другое (для справки смотрите прилагающийся файл FireURQ.html). Баги и пожелания направляйте в FireURQ Bug Tracker. Демонстрации возможностей: 1) http://ifwiki.ru/files/Fireurq_demo.qsz 2) http://ifwiki.ru/files/Decodemo.qsz 3) http://ifwiki.ru/files/Skindemo.qsz История версий Планы на следующую версию Скачать последнюю версию Документация

Ответов - 194, стр: 1 2 3 4 5 6 7 8 9 10 All

Серый Волк: Слёзно прошу добавить возможность выравнивания кнопок в ряд на одной горизонтальной линии. Общественность, присоединяйся (с) Э-многозначительный Общественность давно "за": http://fireton.ifiction.ru/2010/12/vyiravnivanie-knopok/

fireton: FireURQ - 1.3.3 =============== - 0000162: [интерпретатор] Не загружаются иконки состояния из скина (fireton) - закрыт. - 0000160: [интерфейс] Обработка нажатий на кнопку (fireton) - закрыт.

Э-многозначительный: Привет, кто-нибудь местный использует Comodo? Дело в том, что у меня повылазило окошко:


Серый Волк: Э-многозначительный, это он так шутит, вирусов в Фурке быть не должно. Подробнее о причине фуркопаники антивирусов можно прочитать тут: http://forum.ifiction.ru/viewtopic.php?id=1326

Евгений: Так вроде же на последних версиях уже не вылазит такое. Или?

fireton: Комодо тупит. Фурка завёрнута молебоксом, он не знает что это такое и считает его опасным. Вот проверка на вирустотале. Все "большие" антивирусы считают фурку нормальной.

fireton: отправил фурку в комодо как false positive, надеюсь исключат из базы

fireton: Hello, This is to inform you that false-positive with fireurq.exe (SHA1: b54d302ca39578d231acb0836b7d477eef3519ea) has been fixed. You can update to AV database Version 10102 of Comodo Internet Security Version 5.5.195786.1383 and confirm it. Regards, Florin Gogoseanu Comodo Antivirus Lab

Logger: Привет! Можно ли обрабатывать события от декораторов? Например - щелчек мышью по нему? Сорри, если где-то уже описано, но в хелпе ничего не нашел.

fireton: Декораторы - они для украшения квеста. Это не совсем спрайты. В принципе, можно что-то придумать. Потому как зачастую пазлы требуют какой-то интерактивной графики... Евг написал запрос в БТ, посмотрим...

uux: А пока Тон смотрит: Logger пишет: Можно ли обрабатывать события от декораторов? Например - щелчек мышью по нему? Фурка позволяет получать координаты мыши, поэтому для декоратора можно назначить диапазон занятых им координат и, если при клике указатель мыши находится в этом диапазоне, инициировать некую обработку. (Для этого можно использовать команду anykey, переменные mouse_x и mouse_y - подробнее см. справку по Фурке). Кстати, Тон, раз уж ты всё равно погрузился в эту тему - посмотри еще, пожалуйста, не удастся ли добавить распознавание двойного щелчка...

Logger: fireton пишет: В принципе, можно что-то придумать. Предлагаю такое решение - при щелчке на декораторе активизируется локация [имя декоратора]_click

fireton: Да понятно всё. Планов-то громадье. Надо найти время и желание всё это сделать...

Logger: А спешить не надо, мне это для совместимости требуется, реальная поддержка пока не актуальна

Chicago1920: У меня не получилось зарегаться на багтрекере. Суть проблеммы в том что в фурке (проверял на 1.3.2 и 1.3.3) видимо не работает decordell имя (удаление заданного декоратора) Пример кода :1 cls decoradd abc (200,200,10) image "1.jpg" pause 1000 decordell abc pause 1000 end По идее через секунду декоратор должен удалится, если нет ошибки в синтаксисе.

Серый Волк: Chicago1920, дело как раз в синтаксисе, оператор "decordell" прописывается как "decordel" (с одной "l").

fireton: Chicago1920 вроде ты зарегался на БТ, регистрационное письмо с твоим ником мне пришло...

Chicago1920: fireton, мне на мыло не пришел ответ

fireton: FireURQ - 1.4 ============= - 0000117: [интерфейс] Нормальные TTF шрифты (fireton) - закрыт. - 0000166: [интерпретатор] После идущих последовательно операторов 'btn', 'p' и 'pause' игнорируется оператор вывода текста ('p' или 'pln') (fireton) - закрыт. - 0000164: [интерпретатор] Неправильная обработка комментариев /**/ (fireton) - закрыт. Новые возможности: TrueType шрифты описываются строкой вида: "file.ttf[<size>,<gamma>,<weight>,<bgcolor>]" Параметры можно опускать. <size> - это размер шрифта, по умолчанию 19 <gamma> - гамма, т.е. "светлость" границ шрифта, по умолчанию 1.0 <weight> - толщина, по умолчанию 0.6 <bgcolor> - цвет подложки (hex-значение), по умолчанию 0x808080. Поскольку из TTF генерится битмапный шрифт, то края должны "подходить" к фону, на котором потом выводится текст. Дефолтный серый цвет подходит в подавляющем количестве случаев. Но если вдруг захочется идеального отображения шрифта на, скажем, красном или белом фоне, то можно подставить сюда соответствующий цвет. Альфа-составляющую можно опускать, она всё равно не используется тут. Дефолтные gamma и weight подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять. Примеры: textfont = "georgia.ttf[20,1.1]" textfont = "verdana.ttf[10,,,0xFFFFFF]" textfont = "timesi.ttf[32,,1.3]" Файлы шрифтов (.ttf) ищутся сначала в папке игры (в архиве qsz), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если шрифт из системных, то его таскать с собой не надо. Шрифты таим образом можно использовать и в коде игры, и в скинах. Появились две переменные: linespacing - вертикальное расстояние между строк текста paraspacing - вертикальное расстояние между параграфами По умолчанию обе равны 3.

Евгений: Свежий html-хелп будет лежать тут: http://dl.dropbox.com/u/8977190/FireURQ.html

fireton: Ты лучше его на вики загружай. Ну, потом.

Chicago1920: Можно ли как то в фурке отключить показ батонов? Т.е. что бы физически они были, но не показывались визуально. а нажимать их можно было б только через цифровую клавиатуру.

vito: Chicago1920 пишет: Можно ли как то в фурке отключить показ батонов? Т.е. что бы физически они были, но не показывались визуально. а нажимать их можно было б только через цифровую клавиатуру. А чем не нравится anykey?

Евгений: Положи поверх кнопок черную картинку :)

Korwin: Рациональнее на них все же цифры нарисовать и пусть пользователь сам выбирает чем ему удобнее - мышкой или клавишей.

Cheshire: В свете последних событий набрёл на очень здоровский сайт со свободными шрифтами http://openfontlibrary.org/ Ещё, конечно же, http://www.google.com/webfonts/

Chicago1920: vito пишет: А чем не нравится anykey? С ни м нельзя зациклить локацию и поставить счетчик. Евгений пишет: Положи поверх кнопок черную картинку :) Высота батонов может прыгать, потому сложновато в каждой локации подбирать положение картинки.Korwin пишет: Рациональнее на них все же цифры нарисовать и пусть пользователь сам выбирает чем ему удобнее - мышкой или клавишей. Ну мне нужно что б только с клавиатуры можно бло нажимать, а экран не загромождать.

Cheshire: Чикага, через скины сделай фон у кнопок и текст на них прозрачными. Проблема только в том, что физически они останутся и место под них будет отводиться — пустой такой кусок экрана внизу.

fireton: Chicago1920 в планах на ближайшую версию - anykey с паузой (т.е. работающий как pause), думаю это спасёт. Cheshire Вообще, как я понимаю, FreeType умеет и OpenType шрифты. Имеет ли смысл копать в этом направлении? Оно нам надо?

fireton: Вышла версия 1.5: - 0000170: [интерпретатор] Параметры linespacing и paraspacing не влияют на текстовые декораторы - 0000172: [интерфейс] Пункт "Перезагрузить" в меню - 0000171: [интерпретатор] Хочу anykey с паузой - 0000175: [интерпретатор] При изменении цвета текста в предыдущем тексте «съедаются» все последние пробелы - 0000163: [интерпретатор] Возможность множественных сохранений состояния игры - 0000174: [интерпретатор] Не работает опрос инвентаря по старой схеме - 0000173: [интерфейс] Нажатие на кнопку роняет фурку Изменился формат команды save: "старая" save локация - просто запишет сохранение в слот автосохранения и всё save локация, "имя сохранения" - поднимет интерфейс со слотами, даст выбрать слот сохранения (кроме слота автосейва) и запишет его с указанным именем save локация, "имя сохранения", номер_слота - запишет сохранение в указанный слот, без поднятия интерфейса При загрузке (выбор пункта меню "Загрузить сохранённую игру"): Если есть только автосейв - без вопросов загружается только он Если кроме автосейва занят какой-нибудь слот - поднимается интерфейс выбора из слотов Скин интерфейса сохранения/загрузки. Элемент называется saveload и располагается он в главном элементе (skin). <saveload bgcolor="C0000000" captioncolor="FFFFBB4F" captionfont="myfont"> <buttons frame="myframe" /> </saveload> Если myframe не определена, то берётся системная кнопка, которая используется обычно в игре. Если myfont не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое. Необходимо проверить ранее выпущенные игры со скинами, потому как в предыдущей версии использовалось три состояния кнопок. У команды anykey появилась возможность задавать таймаут. Например, по команде anykey z, 1000 игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную z будет записан ноль. Текстовые декораторы при создании наследуют параметры linespacing и paraspacing от общего текстового поля. Но их можно менять с помощью переменных decor_name_linespacing и decor_name_paraspacing соответственно.

Korwin: Опять новая версия! Круто! Вопрос а можно удалить все переменные за исключением системных, задающих настройки? perkill_except per1, per2 или experkill per1, per2

Евгений: Хелп отныне будет здесь: http://tinyurl.com/helpfurq

Евгений: Корвин, добро пожаловать на http://furqbt.ifwiki.ru :)

fireton: Вышла версия 1.6: - 0000182: [интерфейс] Текстовое поле заслоняет кнопки системного меню и инвентаря. - 0000181: [интерфейс] Из скина не загружается оформление кнопок в экране сохранения/загрузки. - 0000180: [интерфейс] Получать width и height от всех типов декораторов. - 0000178: [интерпретатор] Обновление mouse_x mouse_y. - 0000161: [интерфейс] Ссылки в тексте. - 0000179: [интерпретатор] "Локальные" действия. - 0000177: [интерпретатор] Падение фурки при вызове загрузки во время anykey. Изменений много: Ссылки в тексте Можно вставлять ссылки в текст, выводимый в pln. Ссылки оформляются в вики-нотации: [pre2]pln Вы стоите на берегу реки. Вдоль берега вьётся небольшая [[тропинка|trop]]...[/pre2] Здесь trop - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в btn, можно использовать параметры локации. Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом. Локальные действия Реализованы действия, не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которые: * не будут очищены кнопки * не изменится переменная current_loc * не выполнится common-локация Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить восклицательный знак: [pre2] btn !local, Эта кнопка не уведёт с локации pln Эта [[ссылка|!local_location]] тоже не уведёт с локации... [/pre2] Другое Переменная hide_link_echo скрывает эхо от ссылок, если её установить в 1. Переменная hide_local_echo скывает эхо от локальных действий, если её установить в 1. По умолчанию и так равна 1. От всех типов декораторов можно получать ширину и высоту. И от текстовых тоже, да. Переменные decor_xxx_width и decor_xxx_height, соответственно. Переменные mouse_x и mouse_y возвращают теперь текущие координаты мыши просто на момент вызова. Не надо больше вызывать anykey и ждать нажатия кнопки мыши чтобы получить их.

Korwin: 1. Ссылки это мегакруто! 2. Насчет координат мышки - правильно! 3. Насчет локальных действий не совсем понятно. Как реализовать собственно действия, то есть изменения переменных и т.п. Можно пример? 4. Можно ли изменить размер окна программы не используя скины, через системные переменные?

Евгений: Документация к Фурке, примеры и прочее на вики. Добавляется, дописывается и обновляется постепенно и неторопливо.

Евгений: Korwin пишет: Насчет локальных действий не совсем понятно. Как реализовать собственно действия, то есть изменения переменных и т.п. Можно пример? Локальные действия, насколько я понял, это типа такой хитрый proc.

hi: На windows server 2008 не идёт. :) А можно где-нибудь скачать portable версию со всеми dll-ками в одной папке?

fireton: Должна идти, если DirectX установлен. Что в логе пишет? Portable версия не нужна. fireurq.exe нормально запускается из любой локации (флешки, например) и ей ничего больше не надо для работы (кроме установленного DirectX, разумеется).

Akim: А как насчет доступности слепым что нибудь будет

fireton: Поддержка слабовидящих в планах. Всё будет.

Korwin: Делаю квест на ЛОКу. Много rnd. Стало возникать подозрение, что выдает он не слишком случайные значения, отдавая предпочтение в начале инициализации к 1. Написал программу чтобы протестировать это явление. Приношу извинения, за свои подозрения - все работает нормально. Программу выложил сюда.

крот-хомяк: вопрос: а как в файрурйовскую игру вставить картинку?

Серый Волк: Ответ: вот такой вот командой - image <имя файла>[, X, Y, ширина, высота] · имя файла – это имя файла изображения в формате JPEG, PNG или TGA. · дополнительные параметры позволяют вывести не все изображение, а его часть. При этом X и Y задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка. крот-хомяк, в папке программы есть html-файл справки под названием "FireURQ", именно в нём описаны специфичные "файрурйовские" операторы.

Хто я?: Серый волк,позволю себе сделать замечание - такого файла не было и нет. Только что качал и проверял. есть ток version.htm

Евгений: Это потому что теперь все в вики, ссылка в заглавном посте этой темы.

Хто я?: У меня такой вопрос по ФайрУрке: Как сделать так,что бы ответив на вопрос и выйдя в меню игры,а потом снова нажав на "Ответить на вопрос(кнопку)" выводился другой вопрос согласно порядку очереди(после вопроса вопрос_1,выхода в меню и снова нажатия на кнопку "Ответить на вопрос" появлялся не вопрос_3,а именно вопрос_2)?

Saruman: Хто я? пишет: Как сделать так,что бы ответив на вопрос и выйдя в меню игры,а потом снова нажав на "Ответить на вопрос(кнопку)" выводился другой вопрос согласно порядку очереди(после вопроса вопрос_1,выхода в меню и снова нажатия на кнопку "Ответить на вопрос" появлялся не вопрос_3,а именно вопрос_2)? дай кусок кода. Только не сюда, а в ветку форума, предназначенную для вопросов - твой вопрос не по FireURQ, а по URQL

Korwin: А можно сделать редактор скинов - простейший, с несколькими готовыми шаблонами разных размеров?

Akim: Блин по быстрей бы доступность для слепых! Автор скажите хотябы приблизительно когда эту функцию риализуите?

Серый Волк: Хто я?, позволю не согласиться - такой файл был всегда, и для меня стало неприятной новостью, что из последней (или, быть может, чуть ранее) сборки его убрали. Потому что хэлп теперь пишется на иф-вики. Попросил Фаертона добавить в следующую сборку ссылку на документ.

fireton: Akim пишет: Блин по быстрей бы доступность для слепых! Автор скажите хотябы приблизительно когда эту функцию риализуите? Вот в следующей версии и реализую. Думаю, надо будет делать отдельную сборку. Думаю интегрировать стандартный Speech API виндовый. Буду дублировать на него весь текстовый вывод (кроме декораторов, наверное), а так же озвучивать кнопки и менюшки.

multi-tentacled: не липнет гиф файлы пачемута( GIF gr8 me.gif, 10, 0 или не так? как? может был вопрос извените но не клеит...

noname: я хочу ознакомить с FireURQ автора, не видевшего досурку. можно ли сделать единое описание FireURQ? (или уже сделано, просто я всё ещё пользуюсь старыми версиями) кроме того, у него не руссифицированные ОС и единственная возможность сделать, чтоб "видно было по-русски"- пользоваться своими шрифтами, вшитыми в платформу или в игру. вот.

Korwin: multi-tentacled пишет: не липнет гиф файлы пачемута( GIF gr8 me.gif, 10, 0 или не так? как? может был вопрос извените но не клеит... FireURQ позволяет вставлять изображения в текст квеста. Для этого служит команда image. Синтаксис: image <имя файла>[, X, Y, ширина, высота] имя файла – это имя файла изображения в формате JPEG, PNG или TGA. про гиф-файлы не сказано. точно можно так: decoradd гиф (10,0) GIF me.gif

Korwin: noname пишет: можно ли сделать единое описание FireURQ? http://ifwiki.ru/FireURQ - там внизу есть ссылка на документацию

fireton: Вышла версия 1.6.1 - 0000186: [интерпретатор] Не меняется время в слотах сохранения (fireton) - отработан. - 0000188: [интерпретатор] гиперссылки продолжают работать в отработанных локациях. (fireton) - отработан. - 0000190: [интерфейс] FireURQ потребляла 100% процессорного времени (fireton) - отработан. - 0000189: [интерпретатор] Странности с Юзом (fireton) - отработан.

Korwin: БРАВО!!

Steks: Было бы здорово если бы можно было создать шаблон вывода, например на чем-то вроде на CSS.

Korwin: А чем же не нравятся скины?

Steks: Очень ограничена настройка у скинов. Например я хочу две кнопки вывести сверху, над текстом, еще одну посередине внизу, а остальные в ряд по горизонтали. Не сочтите эти "хотелки" через чур завышенными, но во многие игры это могло бы привнести удобство, если например хочется сделать кнопку периодически доступную игроку, но логически отделить ее от инвентаря. Было бы уместно проверять в Common необходимость вывода кнопки, а затем просто ее вывод, а шаблон вывода уже определил бы, что вывести ее необходимо сверху от текста. Например: игра про сыщика. При небольших верных догадках игрока накапливаются очки, когда их накапливается пять, то открывается доступ к "блестящей идее", ее можно использовать для того чтобы сыщик вдруг по мельчайшим штрихам вдруг выдал интересную мысль - последовательность действий преступника, удивив этим самым своих помощников и наблюдателей, для ускорения процесса дела.

Korwin: Честно говоря, я считаю, что качество текстовой игры в минимальной степени зависит от расположения кнопок. Вывод дополнительной кнопки можно сделать и современными средствами, без дополнений в платформу. Где конкретно будет располагаться данная кнопка - не так важно, более того, логичнее ее делать там, где игрок привык искать новые кнопки - то есть внизу. Я пробовал делать квесты с появлением новых возможностей в определенных местах в инвентаре. Получались весьма "зубодробительные" вещи - в которых пользователь вставал в тупик. Не потому, что он тупой, а потому что я сделал нестандартный игровой интерфейс. Все вышесказанное - как всегда - мое скромное мнение, не претендующее на то, чтобы быть единственной истиной.

Windwalker: Есть пара вопросов по FireURQ. 1.При переходах по goto не обновляется переменная current_loc,это можно изменить?(поведение фурки в этом случае) 2.Почему-то при сохранении save current_loc и последующей загрузке локации не появляются ни текст ни кнопки,хотя инвентарь сохраняется,это как исправить?(Сохранение написал через предмет инвентяря,только для отладки игры пока ) Пример кода :use_режим отладки_сохраниться save current_loc end P.S.Снимаю вопрос,уже ответили в другой теме

Eddie: Кто подскажет, как можно на определенной локации полностью закрыть доступ к инвентарю? При это не допускается удалять предметы, либо прятать действия, применяемые к ним, параметром _hide=1. Требуется просто взять и закрыть весь инвентарь. А потом снова его открыть...

vito: Eddie пишет: При это не допускается удалять предметы, либо прятать действия, применяемые к ним, параметром _hide=1. А можно узнать, почему не допускается?

Eddie: Можно узнать. Локация будет вызываться несколько раз за игру. В этой локации у игрока не должно быть доступа к инвентарю. При этом у игрока может быть абсолютно разный набор предметов (квест не совсем линейный). Соответственно, неизвестно, какие именно предметы нужно будет удалять и потом восстанавливать в инвентаре. Поэтому вариант с удалением предметов не проканает.

vito: Все равно не понимаю. Что, мы в конкретный момент времени не знаем, какие предметы должны быть в инвентаре? И нельзя сделать для всех предметов в игре специальный флаг, в инвентаре они должны быть или нет, и в зависимости от этого добавлять их в инвентарь при необходимости? Вообще, наверно, инвентарь можно отрубать, играя со скинами, но тут я не сильна. Либо еще можно постоянно выводить декоратор в определенный участок экрана, при клике на котором будет отображаться инвентарь (реализованный альтернативными средствами), а основной инвентарь отрубить.

Eddie: vito пишет: Что, мы в конкретный момент времени не знаем, какие предметы должны быть в инвентаре? Совершенно верно. В конкретный момент мы не знаем, какие именно предметы соберет игрок. Это зависит от его блуждания по квесту. В этом-то и есть основная загвоздка. Если бы квест был линеен - проблемы бы не было совсем. А так... vito пишет: Либо еще можно постоянно выводить декоратор в определенный участок экрана, при клике на котором будет отображаться инвентарь (реализованный альтернативными средствами), а основной инвентарь отрубить. С реализацией инвентаря через декоратор чета не понял. Как это возможно?

noname: Eddie пишет: Совершенно верно. В конкретный момент мы не знаем, какие именно предметы соберет игрок. 1. vito намекает, что можно взять, да и проверить(программно), какие предметы игрок уже взял, а какие- нет. её идею с флагами я понял так: для каждого предмета(специально для реализации твоей задумки) заводим флаг: был ли в инвентаре такой-то предмет перед заходом в твою особую комнату. перед заходом в комнату, для каждого предмета проверяем, есть ли он в инвентаре и выставляем нужные флаги, а предметы из инвентаря все выкидываем. после выхода из комнаты, проверяем флаги и соответствующие предметы ложим в инвентарь. 2. альтернативная реализация инвентаря это так: делаешь кнопку или декоратор, по нажатию на которую ты сам выводишь список собранных предметов. в этом случае ты совсем не используешь в программе команд работы с инвентарём, а делаешь всё сам, по-своему. 3. можно напрячь Фаертона и выпросить у него ввести функцию отключения инвентаря. входим в особую комнату- отключаем инвентарь. все предметы остаются на месте. при необходимости, программно можно в инвентарь что-то добавлять или убирать, в-общем, всё работает так же, но только игроку инвентарь не доступен. при выходе из комнаты включаем инвентарь обратно. -- лично мне наиболее нравится первый способ, как относительно простой и универсальный одновременно: так ты сможешь отключать не весь инвентарь а, например, заблокировать все вещи, кроме некоторых, которые использовать можно. кроме того, если поднапрячься, и завести больше флагов, то можно сделать ещё лучше: не удалять предметы, а блокировать только те действия, которые не возможны. т е, например, оставить возможность игроку осматривать вещи. в этом случае делается всё то же самое, только флаги отвечают не за предметы, а за действия, которые можно совершать с предметами. и, соответственно, при входе в комнату, не удаляем предмет, а блокируем соотв действия. // реализация этого требует некоторого опыта в программировании. с другой стороны, если универсальность не нужна, зато нужно как можно проще, то да- тогда лучше способ N3.

Eddie: Угу, noname. Вариант №1 один я тоже рассматривал, причем именно с блокированием действий, а не выкидыванием предметов из инвентаря. Но флагов уж больно много получается. Муторный немного алгоритм выходит... Идеален был бы вариант №3. Но вот будет ли Фаертон вносить такое обновление в фурку...

Korwin: Eddie пишет: Идеален был бы вариант №3. Но вот будет ли Фаертон вносить такое обновление в фурку... Я что-то не пойму Ваших страданий? :start pln Проверка инвентаря. Вы взяли меч и щит. inv+ Меч inv+ Щит btn dark,Войти в пещеру end :dark if Меч then dark_Меч=1 & inv- Меч if Щит then dark_Щит=1 & inv- Щит pln Вы в пещере. Так темно, что не видно, есть ли у Вас что-то! btn light,Выйти из пещеры. end :light pln Вы снаружи. Все видно. btn dark,Войти в пещеру end :common if dark_Меч=1 then inv+ Меч & dark_Меч=0 if dark_Щит=1 then inv+ Щит & dark_Щит=0 end "Муторный алгоритм" это всего то две строчки кода на каждый предмет - одна на входе в локацию, а вторая на выходе из нее. Строчки размножаются копипастом. Предметы прописываются ручками. В чем проблема-то?

Eddie: Блин, да не проблема это, Корв. Я так и реализовал алгоритм. Просто искал возможность сделать все немного проще, без присвоения флагов наличия предметов и выкидывания их из инвентаря с последующим восстановлением. Все-таки это увеличило исходный код на пару сотен строк. В любом случае, спасибо за помощь vito, noname, Korwin. P.S. А вот команды типа "инвентарь_hide=1" фурке все-таки не достает.

noname: Eddie пишет: Все-таки это увеличило исходный код на пару сотен строк. если такая особая локация встречается в нескольких местах, как у тебя, то лучше убирание и добавление предметов обратно сделать подпрограммами. тогда получится примерно две строки кода на предмет + ещё немножко строк.

Eddie: noname пишет: если такая особая локация встречается в нескольких местах, как у тебя, то лучше убирание и добавление предметов обратно сделать подпрограммами. тогда получится примерно две строки кода на предмет + ещё немножко строк. Согласен полностью. Я через proc организовал алгоритм. Насчет пары сотен строк я погорячился, конечно. По три строки на предмет вышло. (присвоил флажок, восстановил предмет в инвентаре по наличию флажка, обнулил флажок).

noname: Eddie пишет: Согласен полностью. Я через proc организовал алгоритм. Насчет пары сотен строк я погорячился, конечно. По три строки на предмет вышло. (присвоил флажок, восстановил предмет в инвентаре по наличию флажка, обнулил флажок). при таком алгоритме можно не обнулять флаг после выхода из комнаты, а при присвоении флажка, присваивать тем предметам, которых нет- ноль, а тем предметам, которые есть- единицу. предыдущие значения флажков тогда будут не важны, и можно будет не опасаться, что где-то случайно поднятый флаг повлияет на результат.

fireton: FireURQ - 1.6.2 =============== - 0000194: [интерпретатор] В текстовом декораторе нельзя указать шрифт без указания цвета - 0000191: [интерпретатор] Невозможно ввести пробел в input

Vulcano: Внесу и свою копейку. При написании кода тоже столкнулся с некоторыми трудностями. Возможно уже что-то и писали из этого, однако в логах разработчика ничего не нашел 1. Злосчастный оператор if...then, почему бы не сделать срабатывание тела оператора не в одной строчке а во всех, пока не встречается else или какой-то знак окончания тела. Иногда очень громоздко получается прописывать все действия в одну строчку через &. Конструкция могла бы выглядеть вот так: if x>1 then [ <действие1> ... <действиеN> ] Я понимаю, что сейчас пишу нечто очень банальное, поскольку во многих языках программирования сделано нечто подобное с разными скобочками, словами и т.д. Но это же просто удобно. 2. Как вы относитесь к тому, чтобы написать некий простенький статус бар с обычными, почти для всех игр, элементами: Полоска здоровья/маны (или численное представление; на выбор), значения нескольких переменных, вроде денег, патронов, и т.д. Такие переменные есть в 90% игр и смотреть свое здоровье в инвентаре и прочие названные статусные переменные, ну как-то странно. Я знаю, что можно сделать окно статуса, но постоянно вызывать его - очень надоедает. А так глянул на строчку вверху квеста и все стало понятно. Конечно же для предметов однозначно подходит инвентарь, да и для характеристик в виде статусного окна. А вот остальное... Заранее спасибо за возможность высказать мнение.

fireton: 1. Исторически сложилось. Блоков кода нет. Можно делать некое подобие через знак подчёркивания в начале строки. Делать блоки кода - значит переделывать весь парсер и интерпретатор, а мне влом. 2. Это всё можно делать декораторами. Числовые значения - текстовыми, полосочки-"градусники" - типа RECT.

Korwin: fireton пишет: 1. Исторически сложилось. Блоков кода нет. Можно делать некое подобие через знак подчёркивания в начале строки. Делать блоки кода - значит переделывать весь парсер и интерпретатор, а мне влом. Более того, подобная переделка интерпретатора может уничтожить совместимость со всеми написанными ранее играми! Не надо, а?

fireton: FireURQ - 1.7 ============= - 0000195: [интерпретатор] Выпадающие меню - 0000196: [интерфейс] Не должны работать ссылки при input и anykey В фурке появилась возможность создания выпадающих меню в ответ на нажатие на ссылку или на кнопку. Формат вызова такой: [pre2]btn %menu, По этой кнопке будет меню ... :menu btn someloc, Первый пункт меню btn anotherloc, Второй пункт меню btn yetonemoreloc, Третий пункт меню end[/pre2] Другими словами, все кнопки в меню-локации превращаются в пункты меню. Причём можно делать меню вложенными. В меню-локациях не разрешается использовать практически ничего, кроме конструкций if..then..else, goto, proc и работы с переменными, которые можно назначать и проверять. Ну и btn, понятное дело, можно использовать. Все фантомные btn (ведущие на несуществующую локацию) становятся неактивными пунктами меню. Если в качестве имени кнопки использовать "-" (дефис), то в меню будет вставлена полоска-разделитель. Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): menu_textfont - шрифт меню menu_bgcolor - цвет фона (можно делать и полупрозрачным) menu_bordercolor - цвет рамки menu_textcolor - цвет пунктов меню menu_hindent - отбивка по горизонтали menu_vindent - отбивка по вертикали menu_selectioncolor - цвет фона выбранного элемента menu_seltextcolor - цвет шрифта выбранного элемента menu_disabledcolor - цвет шрифта неактивного элемента Более наглядно значения этих переменных можно посмотреть в руководстве по скинам, там даже картинка есть, поясняющая каждую из переменных:

apromix: fireton пишет: Блоков кода нет. Можно делать некое подобие через знак подчёркивания в начале строки. Делать блоки кода - значит переделывать весь парсер и интерпретатор, а мне влом. Один из вариантов сделать блоки кода и не потерять совместимость со старым кодом - это ввести препроцессор кода, который перед стартом квеста пробежит по коду и если найдет блок кода, то выстроит его в одну строку с & между операторами

fireton: Куда ты предлагаешь его "ввести"? ;) Прямо в фурку? Нельзя, потому кк привязка к номерам строк потеряется. Это может быть фичей для твоего редактора, though.

Vulcano: Дались вам эти блоки кода. Нет, ну и не надо, слишком длинные строки в условии можно просто загонять в proc. После обновления 1.6.2 заметил странную вещь. К примеру в коде ... Ответ="Ответ#Ответ10_1$" if Ответ="Ответ4" and Волшебник=1 then ... напрочь переставал работать в If'ах знак &, только с and условие работало корректно. Сейчас все вроде бы норм, специально проверял, но сам факт.

fireton: Vulcano пишет: напрочь переставал работать в If'ах знак &, только с and условие работало корректно. Сейчас все вроде бы норм, специально проверял, но сам факт. Если сможешь написать маленький примерчик, подтверждающий ошибку, то запости, пожалуйста, в багтрекер.

Vulcano: Снова появлялась данная ошибка уже на последней версии Фурки. Возможно все дело в локальных ссылках. Или я может что накосячил, проверка на простом коде не вызвала никаких сбоев, но на сложном с применением декораторов, локальных ссылок и зацикленной локации ни в какую не идет. Скинул фрагмент своего кода в багтрекер.

fireton: Я тебе в багтрекере отписал, но повторю здесь. Знак & никогда не работал как логический оператор. В урке это способ объединить несколько операторов типа pln, btn, goto в один. Это нужно для того, чтобы можно было записать несколько операторов под if..then, например. Логическим оператором "И" является AND и только он. Так что, если ты где-то использовал & как логический оператор, то проверь код - там ошибки. Извини, я просто сразу не совсем понял в чём проблема, я думал, что & не работает после then.

Vulcano: А, ладно, учту, хотя в простых примерах условий & работает нормально, и чем это объясняется, я вообще не понимаю в таком случае. Т.е. условие типа if z=1 & Здоровье=10 then ... будет обрабатываться как следует. Проверял лично. А в навороченных кодах & работать отказывается. Поясните мне, почему, если вам не трудно. Так, для общего развития хочется знать Есть еще вопрос. Почему при выводе текстового декоратора на любом фоне буква "э", если она первая в слове, видна очень плохо? Подставлял различные шрифты, размеры, пробовал заменять цвет подложки и т.д. Все равно декоратору не нравится эта буква и он ее будто бы нечетко вырисовывает.

Vulcano: А можно поинтересоваться, сколько переменных может держать Фурка в оперативном использовании? К примеру, существует большой код, где в начале задается свыше 250 переменных. Они используются в последствие, но так или иначе обращения к ним происходят неоднократно. Дополнительно свыше 100 переменных изменяются динамически и вряд ли это предел квеста, скорее всего будет добавлено еще столько же различного рода переменных. Заранее благодарю.

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

Korwin: Проще всего задать вопрос самой программе: :start num=10000 pln Эта программа считает сколько переменных можно использовать в FireURQ. После нажатия кнопки СТАРТ она будет выводить в строчку имя новой переменной и общее количество переменных. Если число переменных достигнет #num$ программа остановится. n=0 btn loop,СТАРТ end :loop n=n+1 a#n$=n cls pln a#n$=#a#n$$ Всего переменных: #n$ pause 20 if n<num then goto loop pln ВСЕ! В FireURQ может быть #num$ переменных end Я проверил до 100000 - мне хватит на всё!

Vulcano: Ага, ну я примерно так и подозревал, что дело не в программе, а в мощностях компа. Спасибо.

fireton: Вышла версия 1.8, там ссылки в декораторах, инклюды и другое всякое. Здесь описывать неудобно, поэтому расписал новые возможности на блоге.

Eddie: Прекрасно. просто прекрасно!

Vulcano: Чего-то код, написанный на 1.7.0 теперь на последней версии не запускается. Я уже час сижу бьюсь над кодом, но в некоторых местах Фурка просто закрывается по непонятным причинам. На предыдущей версии все было идеально. Хотелось бы уточнить, что за баги были поправлены, возможно одним из них я случайно пользовался в своем коде. Никаких репортов и прочих ошибок Фурка не выдает. Просто закрывается и процесс выпрыгивает из Диспетчера. Будто я просто нажал на закрыть. Можно ли как-то отследить строку кода, на которой она прерывается. Суть отладки так и не понял, если не составит труда, прошу объяснить как ей пользоваться. Заранее спасибо.

fireton: В папке, куда установлена фурка, есть лог. Там должна быть ошибка, по которой происходит вылет. Посмотри что там. Ну и код (минимально, чтобы ошибка воспроизводилась). И всё это в БТ. Будем чинить. В 1.8 действительно много изменений, но внутренних (рефакторил, менял архитектуру приложения). Вероятно, какие-то грабли не учёл. :( Я тогда 1.8.1 повременю выпускать... Жду.

Vulcano: Как файл лога называется и какое имеет расширение. В папке с фуркой не нашел ничего подобного. Устанавливал поверх старой версии, может чего где накосячил?

fireton: fireurq.log, лежит рядом с fireurq.exe. Если у юзера нет прав писать, скажем, в "Program Files", то лог не создаётся. Могу порекомендовать, скопировать fireurq.exe в другую папку, в которую писать прав достаточно, и запустить оттуда.

Vulcano: Просто запустил от админа. Лог появился, вот содержание лога: 8 Апрель 2013 г., 18:22:58 Delphi 2D engine starting... Engine version: 0.51 D3D Driver : nvd3dum.dll Description: NVIDIA GeForce GT 440 Version: 13.1106 Mode: 800 x 600 x X8R8G8B8 Sound Device: Динамики (Realtek High Definition Audio) Sample rate : 44100 Init done. ОШИБКА: Access violation at address 00406EAC in module 'fireurq.exe'. Read of address 000A0D28 Finishing... The End. К этому можно добавить, что ошибка непостоянная. Иногда не появляется и весь код отрабатывается без сучка без задоринки. А иногда на первой же метке вырубает с таким вот логом.

fireton: Ага! Возможно, это та же ошибка, над которой я сейчас работаю. Кусочек кода пришлёшь, в котором это воспроизводится?

Vulcano: ок, без проблем, пришлю. В багрепорт, или прямо сюда?

Vulcano: Создал на багтрекер новый вопрос, приложил код.

fireton: Работаю. Да, похоже это та же ошибка.

fireton: FireURQ - 1.8.1 =============== - 0000212: [интерпретатор] AV когда декоратор удаляет сам себя (fireton) - закрыт. Внимание, важный багфикс.

noname: 19:48 noname играю в человек из никогда и заметил что в фурке прокрутка немного не того не этого.. 19:49 noname вот фраза "я слышу шум дождя и звук прибоя" я вижу только её верхнюю часть 19:49 noname слегка прокручиваю вниз и теперь я вижу только её нижнюю часть 19:49 noname неудобно 19:49 noname не удаётся увидеть эту фразу нормально 19:50 noname Евг, это ты прокрутку ускорил или она вообще в фурке такая? 19:50 noname Евг 19:50 Евг я вообще не понимаю о чем ты говоришь 19:50 noname про игру "человек из никогда" 19:51 noname и про прокрутку текста колёсиком мыши 19:51 Евг а что с ней 19:51 Евг ну запусти в инстеде 19:51 noname что с ней- см выше 19:51 Евг там другая прокрутка наверное 19:52 noname есть текст и какая-то фраза внизу виден только её верх 19:52 noname прокручиваю вниз слегка 19:52 noname и вижу теперь только низ фразы 19:52 noname то есть есть фраза, которую толком не увидишь 19:52 Евг может это баг 19:52 Евг напиши фаеру в багтерекер

Серый Волк: После того, как Фаер прикрутил фурке новые шрифты: http://fireton.ifiction.ru/2011/12/novyie-shriftyi-v-furke/ http://fireton.ifiction.ru/2012/05/novyie-shriftyi-v-furke-2/ размер основного окна программы немного изменился. В ряде игр, которые были написаны до смены шрифта, авторы подстраивали свои тексты под размер окошка. И если раньше весь текст помещался на одном экране, то теперь из-за того, что окошко стало чуточку меньше, появились прокрутки там, где по замыслу автора их быть не должно. Полагаю, что проблема возникла именно из-за этого. noname, хорошо бы приложить скриншот.

noname: прокрутка в фурке прокручивает целый экран а это неправильно потому что если ты внизу видел часть строки то после прокрутки вниз увидишь остальную её часть вверху не сможешь увидеть строку целиком хуже всего если там будет половина надо прокручивать чуть меньше экрана на пол-строки меньше

Cheshire: Всех спасёт зажатый Ctrl.

noname: Cheshire, можно объяснять каждому новому игроку про Ctrl, можно и пол-строки прочитать. но- неудобно.

забылпарольифигсним: Открыл свой не особо старый квест (ну года два) в последней (линк с плут.инфо) фиреурке и это... image kartinko.gif - уже не работает?!!

fireton: В БТ. С примером кода и картинкой.

Flashback: Не знаю, фича ли, но оператор gametitle срабатывает с запозданием лишь после выполнения anykey (а если их несколько, то лишь после самого последнего). Пример: :1st gametitle = "Предупреждение" anykey end "Предупреждение" появится в заголовке лишь опосля нажатия любой клавиши. Но если сунуть pause 1 после gametitle, то все норм.

Серый Волк: забылпарольифигсним, БТ тут: FireURQ Bug Tracker.

fireton: FireURQ - 1.9 ============= - 0000211: [интерпретатор] Вывод в текстовый файл (fireton) - отработан. - 0000034: [интерфейс] Запись лога не только ключом, но еще и из меню furq. (fireton) - отработан. - 0000223: [интерпретатор] Access violation по ctrl+r (fireton) - отработан. - 0000217: [интерфейс] Сделать чтобы пробел работал как enter (fireton) - отработан. - 0000221: [интерпретатор] в qsz файле не проигрывается музыка с длинным названием (например Danny Wright – New Life.mp3) (fireton) - отработан. - 0000213: [интерпретатор] Новые виды декораторов, реагирующих на клик (fireton) - отработан. - 0000215: [интерпретатор] Текстовые декораторы не работают при загрузке из сохранения (fireton) - отработан. Описание новых команд и переменных

Ajenta: Спасибо Фаер, ты гений :))

Chicago1920: 0000196: Не должны работать ссылки при input и anykey Подробности Ссылки не должны быть видны и не должны работать при anykey и input. (c) Для чего это сделано и как это можно обойти?

fireton: Это сделано специально и обойти это нельзя. При INPUT и ANYKEY фурка ждёт совершенно определённого ввода от игрока и нельзя мешать его со ссылками. Кнопки при ANYKEY и INPUT тоже не работают, а ссылки - это аналог кнопок.

Chicago1920: fireton написал лс

Prime: Здравствуйте, Фаертон. В последней версии Фурки была введена новая функция - вывод текста в файл. Однако расширение записываемого файла может быть только .txt. Как я прочитал в вашем блоге, это ограничение было наложено для того, чтобы предотвратить создание вредоносных программ через игры под Фурку. У меня есть предложение - разрешить создавать и записывать файлы не только с расширением .txt, но и .qst. qst-файлы не могут причинить никакого вреда, а, вместе с тем, с помощью них можно будет не выходя из программы создавать, например, дополнительные моды к играм, чтобы потом их к квесту подключать через инклюды. Кроме того, можно будет изготавлевать qst-файлы и записывать в них определённые данные из игры, что позволит сделать бесконечную, самопродолжающуюся, непрерывную игру, или создать эффект онлайн-квеста.

fireton: Инклюды подключаются в момент старта игры. Динамически что-то сгенерить а потом подключить нифига не получится. А раз выходить из игры всё равно придётся, то не проблема и переименавать сгенерённый файл. А "бесконечная, самопродолжающаяся" игра - это утопия. Это просто нельзя сделать в сколько-нибудь приемлемом виде. Наиболее удачной реализацией этой концепции является "Белый бычок" от Евга, но думаю, такой уровень детализации игрового мира, как в этой игре, тебя вряд ли устроит. ;)

Prime: Привет всем. Fireton, я предлагаю немного подработать систему инклюдов в Фурке. Было бы удобнее, если бы код из подгружаемого через инклюд файла вставлялся в то место, где находится этот самый инклюд (как в Акурке). Это позволит обрабатывать подгруженную программу в нужное время и там где надо. Или вот другая проблема с инклюдами: у меня есть главный файл квеста (назовём его Quest.qst) и подгружаемый файл (Inc.qst). В Quest.qst содержется основной код игры, а в Inc.qst - несколько дополнительных переменных, необходимых для работы квеста. На первой локации в Quest.qst имеется строка "%include Inc.qst". Однако при выполнении Quest.qst, интерпретатор почему-то совершенно не воспринимает переменные из Inc.qst, хотя сам инклюд написан абсолютно правильно! Я поэкспериментировал с подгрузками, и выяснил, что Фурка только тогда получает данные из Inc.qst, когда код в нём находится под какой-нибудь меткой, например, :per. Таким образом, в главном файле квеста придётся написать примерно так: :первая_локация %include Inc.qst proc per end А в Inc.qst - соответственно: :per Первая_переменная=x Вторая_переменная=y N-ая_переменная=w end Согласитесь, что было бы удобнее выполнять подгрузку по-акурковски: В главном файле пишем: :первая_локация include Inc.qst end А в подгружаемом: Первая_переменная=x Вторая_переменная=Y N-ая_переменная=w - Всё, все данные из Inc.qst подгружены к Quest.qst! Я конечно не говорю, что нужно скопировать в FireURQ систему инклюдов с Акурки, но данный аспект нужно всё же перенять :))) Или можно сделать настройку принципа подгрузки по системной переменной (как например сделано с count_...) - если переменная равна 1, то по-акурковски, если 2 - то по-старому.

fireton: Ну вот так в фурке сделано. Инклюды - это аналог php-шного require(), а не сишного include. Переделывать я не буду. Я и так не хотел их делать... Текст квеста в фурке сразу целиком загружается в память. соответственно, все инклюды прицепляются в конец при анализе текста уже загруженного.

fireton: FireURQ - 1.9.1 =============== - 0000225: [интерфейс] AV после нажатия на ссылку (fireton) - закрыт. - 0000228: [интерфейс] Картинки никогда не освобождаются из памяти (fireton) - закрыт. - 0000229: [интерфейс] Переменная decor_имя_enabled для кнопок-декораторов (fireton) - закрыт. - 0000230: [интерфейс] Нажатия на декораторы отрабатываются даже если декоратор не виден (fireton) - закрыт. - 0000231: [интерпретатор] Встроенная функция копирования части строки (fireton) - закрыт. - 0000232: [интерпретатор] Сделать одинарные и двойные кавычки равнозначными (fireton) - закрыт. - 0000236: [интерпретатор] Расширение синтаксиса кнопки (fireton) - закрыт. Всё, достойное упоминания, описано в блоге.

Ajenta: Фаер - герой! :)))

Chicago1920: Как считаете, на Win 95-98 бедет работать фурка?

Серый Волк: В рубрику "Вопросы с ifiction.ru": Здравствуйте! Сейчас попробовал превратить небольшой пример программы в qsz в исполняемый файл с расширением eхе. Все получилось, только прога не "видит" собственный скин, лежащий возле игрового файла. Скин работает только в файле qsz. Можно ли этот недочет исправить? (с) Vladimir

Windwalker: Спасибо Фаертону за замечательный плеер.Мне очень нравится. P.S.Уже второй год пишу свою игру на URQ,в ней пока нет сюжета,только движок(боевая система с множеством возможностей),и тот далек от завершения.Но файл игры весит уже 115 Кб. Если не заброшу это дело по каким либо причинам,получится долгострой.

fireton: Серый Волк пишет: Здравствуйте! Сейчас попробовал превратить небольшой пример программы в qsz в исполняемый файл с расширением eхе. Все получилось, только прога не "видит" собственный скин, лежащий возле игрового файла. Скин работает только в файле qsz. Можно ли этот недочет исправить? Я не понял. Он пытается превратить QSZ в EXE и у него не работают скины? Или он пытается положить скин рядом с exe-файлом? Что значит "собственный скин, лежащий возле игрового файла"?

Vladimir: Здравствуйте, Антон. Я запаковал игру вместе со своим скином (свои кнопки и декор-линия) в zip, потом поменял расширение на qsz. При запуске этого файла плеером FireURQ стандартный скин заменяется моим. Попробовал с помощью проги qsz2exe превратить упаковку qsz в exe-файл. После запуска игры, обнаружил, что кнопки и декор-линия в игре стандартные, а мой в самом exe-щнике программа "не видит". И еще. Предложение по Фурке. В некоторых старых адвентюрах на спектруме есть тоже прокрутка текста, но интересней она тем, что сверху есть небольшая картинка и она статична и прокручивается текст только под картинкой. При смене локации картинка меняется. Можно ли такое сделать на Фурке? Определить переменную по типу textalign, например, topmargin (отступ сверху), в которой записывается число строк сверху, которые не должны прокручиваться и текст там не выводится. Да, чуть не забыл. Вставил в прогу для проверки скрипт декоратора (decorscr star "mvr 50, 0, 1000/rot R(-90,90), 1500/rst"). Он у меня не заработал. Работают только отдельные команды для декоратора. ps. Нашел инфу про установление размеров текстового блока, поэтому вопрос о скроллинге под картинкой отпал.

fireton: Vladimir пишет: Я запаковал игру вместе со своим скином (свои кнопки и декор-линия) в zip, потом поменял расширение на qsz. При запуске этого файла плеером FireURQ стандартный скин заменяется моим. Попробовал с помощью проги qsz2exe превратить упаковку qsz в exe-файл. После запуска игры, обнаружил, что кнопки и декор-линия в игре стандартные, а мой в самом exe-щнике программа "не видит". Только что попробовал сделать экзешник из своей демки со скином. Всё отлично работает. Сделайте, пожалуйста минимальный пример (qsz файл), на котором ошибка повторяется, создайте запрос на багтрекере и прикрепите пример туда. Попробуем разобраться.

Vladimir: Здравствуйте, Антон. Разобрался я в своей проблеме. Я упаковывал папку с игрой, поэтому и была ошибка, а нужно было упаковывать сами файлы игры , находящимися внутри папки. Хотя если делать со стандартным скином, то разницы в способе упаковки нет (можно упаковать и папку с игрой)

Vulcano: Давно тут не появлялся, вот вспомнил старый свой проект. Есть идея, может подскажут здесь как ее грамотно осуществить. Собственно вся загвоздка в луте вещей, причем не просто луте, а рандомном. Сделать это не сложно, возникает проблема обработки этих рандомных вещей при их одевании или снятии. Обрабатывать такие манипуляции возможно только с помощью тотального описания всех возможных вариантов лута, чтобы изначально в коде игры присутствовали пары строк для двух состояний одной и той же вещи: Use_Снять_что-то, Use_Надеть_что-то. С кучей if'ов внутри для проверки, а что именно за характеристики будут добавляться персонажу, ну и их дальнейший расчет. Для примера я взял 90 предметов префикс - название предмета, плюс характеристику грейда: белый, зеленый, синий. Префиксов - 6, названий предметов - 5. Суть вопроса, как сделать работу со встроенным инвентарем менее затрудненной? Уже пробовал заменить название предмета на переменную, но так не получается, она не обрабатывается в названии локации как переменная, даже числовая. Стряпать отдельный текстовый инвентарь - можно, но хочется воспользоваться встроенным. Есть идеи? PS а где можно прочитать про нововведения с примерами, блог недоступен(((

Ajenta: Не надо делать в инвентаре предметы. Лучше делать менюшкой или отдельным интерфейсом, потому что будет хлам полный. Особенно если предметов накопится больше 15-ти да ещё с параметрами и всяким. Тут надо чётко продумать юзер интерфейс, чтобы игроку было удобно в этой всей куче.

Серый Волк: Vulcano пишет: PS а где можно прочитать про нововведения с примерами В заглавном посте темы нижняя ссылка "Документация".

Vulcano: Лучше делать менюшкой или отдельным интерфейсом Что под этим подразумевается? Если можно с простенькими примерами, чтобы суть словить. Менюшки вроде бы только еще назначены для Фурки в следующем обновлении, или я что-то упустил? В заглавном посте темы нижняя ссылка "Документация" Там очень неудобно смотреть последние нововведения и мне показалось, что там описано не все. Тем более примеров всего три - больших, но поведения некоторых команд, особенно новых, нет: расширение синтаксиса кнопки, пример включения в квест инклюда и т.д. А в блоге все это видимо было, жаль не застал.

vito: Vulcano пишет: Суть вопроса, как сделать работу со встроенным инвентарем менее затрудненной? Постараюсь ответить на вопрос так, как его поняла. Первое, что я бы сделала - систематизировала бы все-все возможные предметы по их характеристикам и возможным префиксам. Да, это будет самая муторная часть работы, но без нее ИМХО не обойтись. Пусть имеется n значений для первого модификатора предметов и m - для второго (в принципе можно масштабировать для любого количества модификаторов). Пусть они меняют следующие параметры игрока: силу, ловкость, ум. Пусть их можно надевать на голову, туловище или ноги. Тогда необходимо будет создать n*m наборов параметров и меток следующего вида: [pre2]idisp_Предмет_1_1="Деревянный шлем" ; Именно под таким названием данный предмет теперь будет отображаться в инвентаре Предмет_1_1_сила=0 Предмет_1_1_ловкость=2 Предмет_1_1_ум=1 Предмет_1_1_голова=1 ; Шлем надеваем на голову Предмет_1_1_туловище=0 Предмет_1_1_ноги=0 Предмет_1_1_надет=0 ; Флаг "надет/снят" use_Предмет_1_1_Снять_hide=1-#Предмет_1_1_надет$ ; Если предмет не надет, действие по его снятию будет скрыто use_Предмет_1_1_Надеть_hide=#Предмет_1_1_надет$ ; Если предмет уже надет, действие по его надеванию будет скрыто ; Аналогично для объектов Предмет_2_1, Предмет_1_2,..., вплоть до Предмет_n_m ; Далее, где-то определяем набор параметров, показывающих, надето ли что-то на голову, туловище или ноги игрока Игрок_голова=0 Игрок_туловище=0 Игрок_ноги=0 ; Мы можем осмотреть, надеть или снять шлем :use_Предмет_1_1 pln Обычный шлем из твердых пород дерева. pln end :use_Предмет_1_1_Надеть ; Обращение к общей процедуре надевания proc Н(1, 1) end :use_Предмет_1_1_Снять ; Обращение к общей процедуре снятия proc Сн(1, 1) end ; Общие процедуры - определяются только один раз ; Общая процедура надевания :Н ; Сначала проверяем, на какую часть тела надевается предмет if Предмет_#Н_1$_#Н_2$_голова=1 then goto Н_голова if Предмет_#Н_1$_#Н_2$_туловище=1 then goto Н_туловище if Предмет_#Н_1$_#Н_2$_ноги=1 then goto Н_ноги :Н_голова ; Проверяем, надето ли что-то уже у игрока на голове if Игрок_голова=0 then Игрок_голова=1 & proc Н_успех else pln Сначала необходимо снять имеющийся головной убор. end :Н_туловище ; Проверяем, надето ли что-то уже у игрока на туловище if Игрок_туловище=0 then Игрок_туловище=1 & proc Н_успех else pln Сначала необходимо снять имеющуюся одежду. end :Н_ноги ; Проверяем, надето ли что-то уже у игрока на туловище if Игрок_ноги=0 then Игрок_ноги=1 & proc Н_успех else pln Сначала необходимо снять имеющуюся обувь. end :Н_успех ; Успешное надевание предмета - соответствующее сообщение и смена параметров pln Ты надеваешь #%idisp_Предмет_#Н_1$_#Н_2$$. pln Предмет_#Н_1$_#Н_2$_надет=1 ; Флаг, что все надето use_Предмет_#Н_1$_#Н_2$_Надеть_hide=1 ; Действие по надеванию теряет смысл use_Предмет_#Н_1$_#Н_2$_Снять_hide=0 ; Зато появляется действие по снятию ; Меняем параметры игрока Игрок_сила=Игрок_сила+Предмет_#Н_1$_#Н_2$_сила Игрок_ловкость=Игрок_сила+Предмет_#Н_1$_#Н_2$_ловкость Игрок_ум=Игрок_сила+Предмет_#Н_1$_#Н_2$_ум end ; Общая процедура снятия :Сн ; Сначала проверяем, на какую часть тела надевается предмет if Предмет_#Сн_1$_#Сн_2$_голова=1 then Игрок_голова=0 if Предмет_#Сн_1$_#Сн_2$_туловище=1 then goto Игрок_туловище=0 if Предмет_#Сн_1$_#Сн_2$_ноги=1 then goto Игрок_ноги=0 ; Сообщение pln Ты снимаешь #%idisp_Предмет_#Сн_1$_#Сн_2$$. pln Предмет#Сн_1$_#Сн_2$_надет=0 ; Флаг, что все снято use_Предмет#Сн_1$_#Сн_2$_Надеть_hide=0 ; Отображение действия по надеванию use_Предмет_#Сн_1$_#Сн_2$_Снять_hide=1 ; Скрытие действия по снятию ; Меняем параметры игрока Игрок_сила=Игрок_сила-Предмет_#Сн_1$_#Сн_2$_сила Игрок_ловкость=Игрок_сила+Предмет#Сн_1$_#Сн_2$_ловкость Игрок_ум=Игрок_сила+Предмет_#Сн_1$_#Сн_2$_ум end[/pre2] Пример не отлаживала, так что могут вылезти ошибки

Ajenta: Витана монстр :))) Меня бы на такой пример не хватило, наверное.

apromix: Это наглядный пример "менее затрудненной" работы с инвентарем

Серый Волк: Как долго я ждал случая, чтобы это запостить! :) Картинка, если не ошибаюсь, Saint'а.

vito: apromix пишет: Это наглядный пример "менее затрудненной" работы с инвентарем Согласна, что выглядит все громоздко. Но поймите - если у человека куча предметов с прорвой свойств, влияющих на самые разнообразные характеристики персонажа, если "обрабатывать такие манипуляции возможно только с помощью тотального описания всех возможных вариантов лута", то совсем простого решения у него никак не получится. В моем примере вся работа по обработке снятия/надевания предмета и сопутствующему этим действиям изменению характеристик персонажа сконцентрирована всего в двух общих процедурах. Да, они объемистые (а с учетом конкретных стоящих перед Vulcano задач, возможно, распухнут еще сильнее), но зато их надо прописать всего один раз, а дальше просто "штамповать" однотипные простенькие наборы свойств предметов и вызовы в одну строчку к этим общим процедурам. ИМХО при большом количестве предметов это здорово упрощает и сокращает код (при условии, конечно, что автор потратит время на проработку целостной системы работы с предметами - именно эту часть работы я назвала самой муторной в своем предыдущем посте). И да, я бы с удовольствием ознакомилась с альтернативными предложениями по упрощению работы с инвентарем в рамках поставленных Vulcano граничных условий.

Ajenta: vito пишет: Согласна, что выглядит все громоздко. Но поймите - если у человека куча предметов с прорвой свойств, влияющих на самые разнообразные характеристики персонажа, если "обрабатывать такие манипуляции возможно только с помощью тотального описания всех возможных вариантов лута", то совсем простого решения у него никак не получится. В моем примере вся работа по обработке снятия/надевания предмета и сопутствующему этим действиям изменению характеристик персонажа сконцентрирована всего в двух общих процедурах. Да, они объемистые (а с учетом конкретных стоящих перед Vulcano задач, возможно, распухнут еще сильнее), но зато их надо прописать всего один раз, а дальше просто "штамповать" однотипные простенькие наборы свойств предметов и вызовы в одну строчку к этим общим процедурам. ИМХО при большом количестве предметов это здорово упрощает и сокращает код (при условии, конечно, что автор потратит время на проработку целостной системы работы с предметами - именно эту часть работы я назвала самой муторной в своем предыдущем посте). Нет нет, всё хорошо. Я как раз пишу код обычно ещё "муторней" и "движком" не заморачиваюсь. Разве только там, где если нужно поменять параметр, чтобы не пришлось его искать по коду везде, а он был только в одном месте. С проверками же у меня обычно полный бардак.

Saint: Серый Волк пишет: Картинка, если не ошибаюсь, Saint'а Моя, ага. А вот пример не мой... И чей не помню. Может быть ,Фиретона...

Vulcano: ...Пример не отлаживала, так что могут вылезти ошибки Блин, не думал, что кто-то отважиться нечто подобно сделать. Спасибо большое за пример. В голове у меня вертелось нечто такое же, но разложить по полочкам я это не мог. Сейчас стала понятна суть и (о боже, твою ж мать) объем работы. Как я понял, организовать работу инвентаря как-то по-другому не получится, только описание всех вариантов с последующий их проверкой в процедурах? Был бы рад еще примерам, задача, как вы все могли заметить, не из легких. И да, неужели никогда, никто, ничего подобного не пытался сделать на URQL? Хотя обмозговывал тут на днях кое-какую идею по поводу ссылок, декораторов и отдельного инвентаря (т.е. не через Use_, а вообще графического), но это блин движок на предметы и инвентарь с нуля. Причем с таким диким количеством строк кода, что я даже чисел таких не знаю:-) Была еще идея с использованием менюшек, но я так и не понял, как? Кстати, забыл спросить, а инклюд загружает весь код сразу в оперативную, как и основной код. Таким образом, сначала читается основной код до конца, а затем подключает инклюды, или последовательно? Загружается весь код, встречается инклюд, Фурка тянет все из него, а затем продолжает подгружать основной код? Вот не очень понимаю работу этой функции.

vito: Vulcano пишет: Как я понял, организовать работу инвентаря как-то по-другому не получится, только описание всех вариантов с последующий их проверкой в процедурах? Вы же не конкретизируете постановку задачи, может, что-нибудь можно обобщить и, таким образом, сократить объем работы. А так - да, если у Вас много-много способов использования инвентаря, то от описания всех вариантов применения и сочетаний никак не отвертеться ИМХО. И это не имеет отношения к платформе.

Ajenta: Vulcano пишет: Блин, не думал, что кто-то отважиться нечто подобно сделать. Спасибо большое за пример. В голове у меня вертелось нечто такое же, но разложить по полочкам я это не мог. Сейчас стала понятна суть и (о боже, твою ж мать) объем работы. Как я понял, организовать работу инвентаря как-то по-другому не получится, только описание всех вариантов с последующий их проверкой в процедурах? Был бы рад еще примерам, задача, как вы все могли заметить, не из легких. И да, неужели никогда, никто, ничего подобного не пытался сделать на URQL? Хотя обмозговывал тут на днях кое-какую идею по поводу ссылок, декораторов и отдельного инвентаря (т.е. не через Use_, а вообще графического), но это блин движок на предметы и инвентарь с нуля. Причем с таким диким количеством строк кода, что я даже чисел таких не знаю:-) Были идеи, и всё делается. Зависит, опять же, от конкретной задачи. Не сказала бы, что уж такое дикое количество кода нужно, всё всегда можно универсализировать, если подумать. Задача может и не из лёгких, но и не из сложных. Можно всё сделать через нативный инвентарь, собственно я в последней игре на локу с ним как раз извращалась, мало что действия по нему не добавляла. А так на самом деле свой инвентарь сделать гораздо проще, и скомпоновать как надо и вывод сделать. Ну, как бы понятно, что пару-тройку дней на это придётся потратить, при условии, что вы же не 8 часов в день игрой занимаетесь :)

Серый Волк: Бородатый блог про фурку снова в строю: http://if.zhuchkovs.com/

fireton: Вышла версия 2.0 Всяческие описания возможностей новой версии

qwerty: Я порылся в документации и не понял- как на фурке организовать целочисленное деление? Допустим, имеется x монет, которые по команде "накупить барахла", тратятся по 5 монет на 1шт барахла. На самом деле ситуация чуть сложнее, НО в данный момент интересует как можно проще получить целочисленное деление, которое будет очень востребовано в моей игре.

fireton: В 2.0 появилась встроенная функция _int. Так что можно писать как-то так: proc _int(a/b) c=_result В с будет результат деления нацело.

опятьзабылпароль: В фурке 2.0 почему-то не работают старые команды вида: :use_Стальной меч Осмотреть :use_Стальной меч Воспользоваться Как быть?

fireton: Почитать доки внимательно. [pre]:use_Стальной меч_Осмотреть :use_Стальной меч_Воспользоваться[/pre]

опятьзабылпароль: Однако, давно ничего не писал под урку, забыл синтаксис, а в 1.1.3 это, кстати, работало без "_"... Ок, спасибо за очень быстрый ответ!

liontka4: Последняя версия антивируса AVG определяет интерпретатор, как снабжённый трояном Dropper (

Vulcano: Всем привет. Давно тут не появлялся, но регулярно наблюдаю за выходом новых версий Фурки. Ну, как, регулярно... все замерло и уже год как не движется с места. Разработчик Фурки больше не занимается программой?

Saint: Vulcano пишет: Разработчик Фурки больше не занимается программой? Многоуважаемый fireton на данный момент взял тайм-аут, и занимается другими проектами. А что бы Вы, уважаемый Vulcano, хотели бы еще впихнуть в FireURQ? Функционал, на сегодняшний день, интерпретатора достаточен для того, чтобы сделать очень и очень достойную игру.

Vulcano: Saint пишет: А что бы Вы, уважаемый Vulcano, хотели бы еще впихнуть в FireURQ? Это очень каверзный вопрос. Все равно что спрашиваться про скотч, что бы вы еще хотели склеить? Ну а если серьезно, причина моего вопроса проста. Программа крайне нравиться и нравятся идеи, которые реализуются fireton. Было бы грустно осознавать, что FireURQ 2.0 это предел возможностей. Вот и все.

Ajenta: Vulcano пишет: Это очень каверзный вопрос. Все равно что спрашиваться про скотч, что бы вы еще хотели склеить? Ну а если серьезно, причина моего вопроса проста. Программа крайне нравиться и нравятся идеи, которые реализуются fireton. Было бы грустно осознавать, что FireURQ 2.0 это предел возможностей. Вот и все. Не предел. Автор платформы даже уже много чего нового сделал, но не смог после этого фурку собрать и окончательно демотивировался - устал. В общем, надо либо его мотивировать, пока непонятно чем. Либо ждать, когда мотивация придёт к нему сама, как муза. Но я верю в лучшее, и в то, что платформа ещё разовьётся.

Korwin: Евгений пишет: С сохранениями совсем другое дело. Правда почему-то после загрузки после гейм овера нужно сначала ткнуть в какой-нибудь элемент меню или поскроллить туда-сюда, чтобы ссылки заработали. Как сделать правильно сохранение из use_Предмет, fireton?

uux: Korwin пишет: Как сделать правильно сохранение из use_Предмет, fireton? Я не Файер, но отвечу. Точно так же, как в Досурке: save локация_для_восстановления Цитирую по: "Описание URQL для URQ_DOS версии 1.35 от 23.11.2006 года" Автор: Korwin (Евгений Туголуков)

Ajenta: Дв, Корвин, мы все пользуемся твоей докой :)

apromix: Если демотивировался и устал, может фурку стоит выложить на гитхаб?

Ajenta: Фаер уже вернулся к дописыванию фурки. Он обещал!!! 6))))

Вета: Народ, а как фулскрин то запилить?

Вета: Прошу помочь с инвентарем в игре. Есть вот такой код: :инвентарь decordel decoradd инвентарь14 (400,50, -1) TEXT "Инвентарь", 0xFF330000, "adventure.ttf[60]" decoradd инвентарь13 (0,0, 1) IMAGE "pic/inven.jpg" if комната_эмили=1 then decoradd экзит (900,50, -100) IMGBUTTON "pic/exit.png", 0, 0, 100, 100, "room_emili0" end Сама картинка инвентаря разделена на 8 ячеек (но они все на одной картинке прорисованы). Нужно, чтобы при взятии предмета, декоратор-картинка этого предмета добавлялся в свободную ячейку (то есть на определенные координаты, где эта ячейка располагается). Я уже голову сломала, но не понимаю, как это сделать именно с декораторами...

uux: Вета пишет: Сама картинка инвентаря разделена на 8 ячеек (но они все на одной картинке прорисованы). Нужно, чтобы при взятии предмета, декоратор-картинка этого предмета добавлялся в свободную ячейку (то есть на определенные координаты, где эта ячейка располагается). Я уже голову сломала, но не понимаю, как это сделать именно с декораторами... Можно попробовать разбить на 8 отдельных картинок. А вообще нечто похожее видел вот в этой игре. http://urq.plut.info/node/442 Глянь, там исходный код вроде не зашифрован.

Вета: Спасибо, уже все получилось.

qwerty: Можно ли в своей игре сделать так, чтобы игра загружала файл сохранения, если он есть?

qwerty: Тот же вопрос другими словами: Помню, в старой Master of Orion, да и в тысяче других игр, в меню есть пункт "продолжить", что бывает удобно. Возможно ли сделать такое в своей игре на FireURQ, теми средствами, которые уже реализованы?

fireton: В текущей реализации - нельзя. Можно только вызвать меню загрузки.

Vulcano: Всем доброго времени суток. Хотел тут задать вопросик, но для начала приветствую fireton и рад, что он вернулся к Фурке Собственно вопросик: существует ли обработка в Фурке операторов ">=", "<="? А то я тут напахал гигантский кусок кода, строк на 500, и если нет, я выйду в окно

fireton: Работают. А попробовать разве не быстрее, чем писать на форум?

Vulcano: fireton пишет: Работают. А попробовать разве не быстрее, чем писать на форум? Быстрее, но для этого нужен свободный комп с установленной Фуркой. А его как раз под рукой не было. Код писал просто в блокноте на планшете и в какой-то момент до меня дошло, что я не пользовался раньше этими операторами и не знаю, работают ли они. В документации ничего не нашел. Спасибо за ответ

fireton: Вышла новая версия FireURQ - 2.1 Описание того, что было сделано, читайте тут:http://if.zhuchkovs.com/2017/03/fireurq-2-1/

CHEL: FireURQ 2.1 - Фурка больше не один единственный exe, в который запаковано всё. Это связано с тем, что антивирусы считают упакованное приложение какой-то просто страшной угрозой и стирают его нафик. Поэтому я «распаковал» фурку. На самом деле очень хорошая новость.

Vladimir: Обнаружена ошибка в документации по скриптам декораций "FireURQ:Особенности реализации URQL" - Скрипты декораторов - Пример decorscr star "mvr 50, 0, 1000/rot R(-90,90), 1500/rst" Пример работать не будет, так как правильный синтаксис такой: decor name = "команды скрипта"

Ajenta: Vladimir пишет: Обнаружена ошибка в документации по скриптам декораций "FireURQ:Особенности реализации URQL" - Скрипты декораторов - Пример decorscr star "mvr 50, 0, 1000/rot R(-90,90), 1500/rst" Пример работать не будет, так как правильный синтаксис такой: decor name = "команды скрипта" Вообще-то пример из вики как раз рабочий, а вот в вашем я сильно не уверена. Так что если есть ошибка, то она явно не в эту строку закралась.

Vladimir: Ajenta пишет: Вообще-то пример из вики как раз рабочий, а вот в вашем я сильно не уверена. Так что если есть ошибка, то она явно не в эту строку закралась. Вот рабочий код из моей проги: decor_text_mess_script = "col 0xFF333333,900 / pau #square_pause$ / col 0x01F333333,900 / del" Без знака "=" сия команда выдаёт ошибку А вам советую прежде чем отвечать с сомнением, сначала проверить собственный код со скриптом и убедится в моей правоте. Вот пример из вашего "Лабиринт чудовищ": :зелье_взяли зелье_взяли = 1 inv+ Зелье здоровья decoradd text_save (0, 570, - 1) TEXT "~ Зелье здоровья добавлено в инвентарь ~", "georgia.ttf[17]" & decor_text_save_width = 800 & decor_text_save_align = 3 & decor_text_save_color = 0x01990033 & decor_text_save_script = "col 0xFFffffff,900 / pau 1500 / col 0x01Fffffff,900 / del" goto a61 end

Ajenta: Vladimir пишет: Ajenta пишет:  цитата: Вообще-то пример из вики как раз рабочий, а вот в вашем я сильно не уверена. Так что если есть ошибка, то она явно не в эту строку закралась. Вот рабочий код из моей проги: decor_text_mess_script = "col 0xFF333333,900 / pau #square_pause$ / col 0x01F333333,900 / del" Без знака "=" сия команда выдаёт ошибку А вам советую прежде чем отвечать с сомнением, сначала проверить собственный код со скриптом и убедится в моей правоте. Вот пример из вашего "Лабиринт чудовищ": :зелье_взяли зелье_взяли = 1 inv+ Зелье здоровья decoradd text_save (0, 570, - 1) TEXT "~ Зелье здоровья добавлено в инвентарь ~", "georgia.ttf[17]" & decor_text_save_width = 800 & decor_text_save_align = 3 & decor_text_save_color = 0x01990033 & decor_text_save_script = "col 0xFFffffff,900 / pau 1500 / col 0x01Fffffff,900 / del" goto a61 end И в то же время в ёжике и тумане я делала: decorscr star1 "mov #ej_x-20$, 600, #скорость/del" и всё работало! апд. и даже так decorscr star_n* "mvr 0, 600, #скорость$/del" и всё прекраснейшим образом работает в новой фурке. Так что, прежде чем давать советы, проверяйте тщательнее свой код.

Vladimir: Ajenta, разобрался. Я невнимательно прочитал. В документации есть два способа назначения скриптов, НО пример приведён только с командой. А примера с назначением переменной НЕТ. Я же делал пример именно с переменной и синтаксис пришлось выдумывать самому, а там без знака = не работает. Хорошо бы вставить пример для новичков.

Ajenta: Vladimir пишет: Ajenta, разобрался. Я невнимательно прочитал. В документации есть два способа назначения скриптов, НО пример приведён только с командой. А примера с назначением переменной НЕТ. Я же делал пример именно с переменной и синтаксис пришлось выдумывать самому, а там без знака = не работает. Хорошо бы вставить пример для новичков. Хорошо, спасибо, вставим. Хотя это и вы можете сделать. Вики вообще может редактировать любой желающий. апд. В документации есть такая строчка если что: decor_имя_script – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. что автоматически означает синтаксис decor_имя_script = ... как в примере с другими переменными но может быть вы правы и это стоило бы добавить как пример в описание самих скриптов.

Vladimir: В последней своей программе "Москва-Париж" ловится ошибка системного вида при клике стрелкой мышки на то место, где до этого была ссылка-опция, создаваемая pln [[ ]] и причём в этом же месте устанавливается другая ссылка, но она ещё не "загорелась", а только вывелся её текст.

Ajenta: Vladimir пишет: В последней своей программе "Москва-Париж" ловится ошибка системного вида при клике стрелкой мышки на то место, где до этого была ссылка-опция, создаваемая pln [[ ]] и причём в этом же месте устанавливается другая ссылка, но она ещё не "загорелась", а только вывелся её текст. А можно, пожалуйста, пример кода с ошибкой? Или сразу файлик с кодом и с описанием шагов воспроизведения.

uux: А чего у нас в этой теме текущая версия 2.1? Уже давным-давно 2.2 намного актуальнее:).

Vladimir: uux пишет: А чего у нас в этой теме текущая версия 2.1? Уже давным-давно 2.2 намного актуальнее:). FireURQ 2.2 от 29.06.2017 - это не так уж и давно. Запустил свою игру на версии 2.2 В фулскрине позиция стрелки после каждого клика устанавливается в 0 и 0 и играть не удобно. В оконном режиме такого нет. Иногда выводится несколько одних и тех же сообщений при многократном кликании на ссылку (двойной, тройной, четверной клик). Если кликать по одному разу на ссылку и не торопиться, то всё нормально. От вылета ошибки избавился путём замены anykey с паузой на pause с тем же параметром. Ajenta пишет: А можно, пожалуйста, пример кода с ошибкой? Или сразу файлик с кодом и с описанием шагов воспроизведения. Код подправил: заменил anykey на pause, а файлик тут: download

Vladimir: Из за ошибки стрелки в фулскрине перешёл на версию Фурки 2.1 где подобной ошибки нет. Но там при двойном клике по опции такой же недочёт, что и в версии 2.2: вывод сообщения локации второй раз. И ещё: в версии 2.2 не работает моя мини игра "Останови Экспресс", а в версии 2.1 работает. Мини-игры вызываются в игре "Москва-Париж" так: кликаем на МОЗГ затем кликаем на иконку с вопросиком. Ещё раз кликаем на вопросик и выходим обратно.

fireton: uux пишет: А чего у нас в этой теме текущая версия 2.1? Уже давным-давно 2.2 намного актуальнее:). Поменял. Vladimir пишет: В фулскрине позиция стрелки после каждого клика устанавливается в 0 и 0 и играть не удобно. В оконном режиме такого нет. Да, эта ошибка в плане на 2.2.1. Vladimir пишет: И ещё: в версии 2.2 не работает моя мини игра "Останови Экспресс", а в версии 2.1 работает. Мини-игры вызываются в игре "Москва-Париж" так: кликаем на МОЗГ затем кликаем на иконку с вопросиком. Ещё раз кликаем на вопросик и выходим обратно. Я бы очень оценил, если бы вы зарегистрировались на http://bt.fireurq.ru и написали бы туда запрос с описанием проблемы (ссылка "Создать инцидент"). Идеально - с кусочком кода, при котором проблема воспроизводится. Очень трудно, если приходится искать проблему в игре, выделять код и т.д. Для исправления удобнее всего - минимальный код, воспроизводящий проблему. И, пожалуйста, описание того эффекта, который ожидается и того результата, который вместо этого получается.

Vladimir: fireton пишет: Очень трудно, если приходится искать проблему в игре, выделять код и т.д Проблема мини игры Останови экспресс проявляется только в фулскрине. В игре установлено прозрачное клик-поле decoradd min2_space ( 27 , 92 , -5 ) CLICKAREA 649 , 404 , "press_anyclick" по которому не происходит клика, так как координаты мыши всегда в левом верху. В оконном режиме клик по прозрачной области осуществляется.

Vladimir: Не могу понять почему оператор TEXTBUTTON и BTN в одних процедурах ведёт себя как GOTO, а в других как PROC? Написал тестовый пример, в котором ожидается при нажатии на нижнюю кнопку переход с удалением декораторов, но почему то, декораторы восстанавливаются. Подозреваю, что кнопка ведёт себя как переход на подпрограмму с возвратом и с восстановлением декораторов. Как в этой программе удалить всё-таки работающие декораторы? тест BTN

Ajenta: На самом деле всё работает правильно и переход осуществляется по гоуту, а не прок. Но есть один нюанс в урке, что она не забывает локации вызванные по прок, а у вас оно ещё и вертится в бесконечном цикле. То есть чтобы всё работало, как вы хотите, надо вставить вот такую команду: forget_procs в локацию :p_вывод_предыстории сразу после метки Тогда оно забудет все предыдущие локации.

Vladimir: Спасибо, Ajenta, за помощь. Я правильно понял, что все proc в процедуре с кнопкой заносят в стек свои адреса, а команда forget_procs очищает стек переходов?

fireton: Vladimir пишет: Я правильно понял, что все proc в процедуре с кнопкой заносят в стек свои адреса, а команда forget_procs очищает стек переходов? Да, так и есть.

fireton: Вышла 2.2.1, багфикс для версии 2.2. скачать список изменений

Korwin: Вопрос: Пробовал ли кто-нибудь запускать FireURQ на планшете под Windows 8 или выше?

Ajenta: Korwin пишет: Вопрос: Пробовал ли кто-нибудь запускать FireURQ на планшете под Windows 8 или выше? Пробовали, запускалось.

vito: Fireton, в стартовом посте так и висит версия FireURQ 2.2.1. Надо бы обновить...



полная версия страницы