Форум » » Специальная тема для гостей и вновь прибывших. Здесь вы можете задавать свои вопросы. (продолжение) » Ответить

Специальная тема для гостей и вновь прибывших. Здесь вы можете задавать свои вопросы. (продолжение)

Серый Волк: Дорогие гости, если у вас есть небольшие "одноразовые" вопросы, пожалуйста, не стоит заводить под каждый из них отдельную тему на форуме, задавайте их здесь. Также, тут можно просто поздороваться или даже представиться. Спасибо :)

Ответов - 265, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All

Korwin: оператор forget_procs в Mobile Quest не работает?

multi-tentacled: cls выкидывает на семёрке!

Серый Волк: Судя по встроенной в прогу справке - оператора "forget_procs" в Mobile Quest нету. WindwalkerAsGuest, провёл мини-расследование насчёт оказии с регистрацией, речь о регистрации на форуме, да? В профиле нет твоих контактов, напиши мне на serwj-volk(собака)yandex.ru, попробуем восстановить твой аккаунт. multi-tentacled, не особо понятен твой пост.

multi-tentacled: ну как же вот cls в начале локации...нажимаешь btn к ней и фурка тупо вылетает когда читает cls...это такие шутки или что? :арсенал if inv_ЗОЛОТО>1 then btn купить2, КУПИТЬ РЕСУРСЫ? if inv_ЗОЛОТО>1 then btn купить, КУПИТЬ ОРУЖИЕ? if inv_ЗОЛОТО>1 then btn купить3, КУПИТЬ БРОНЮ? if inv_ЗОЛОТО>1 then btn купить4, КУПИТЬ СВИТОК ЗАКЛИНАНИЙ? btn гном, НАЗАД... End :купить2 cls if inv_ЗОЛОТО>4 then btn соль, Каменная соль -5$ if inv_ЗОЛОТО>9 then btn перец, Острый перец -10$ if inv_ЗОЛОТО>9 then btn завтрак, Завтрак туриста -10$ if inv_ЗОЛОТО>9 then btn лечен, Перцовый пластырь - 10$ if inv_ЗОЛОТО>9 then btn магия, Упаковка таблеток - 10$ btn арсенал, НАЗАД... End

Серый Волк: Протестировал приведённый код, ничего не вылетело. Четыре раза.

vito: Банальный совет: multi-tentacled, проверьте еще версию FireURQ.

WindwalkerAsGuest: Серый Волк,я напишу как окажусь дома,сейчас пароля к своему почтовику под рукой нет,спасибо заранее. И еще один вопрос по урке,кто нибудь может привести примеры,как временно отключать метки use_предмет_действие

WindwalkerAsGuest: Я попробовал динамические метки вида use_предмет_#действие$ ,где действие - строковая переменная,действие появилось в списке,но при выборе его интерпретатор выдал ошибку "метка use_предмет_действие не найдена"

Korwin: Насколько мне известно из общения с Виктором Коряновым и Антоном Жучковым "динамические метки не поддерживаются и поддерживаться не будут". Причина в том, насколько помню, что каждой метке соответствует определенный адрес в памяти. При изменении имени непонятно что делать с адресами. Пусть авторы платформ меня поправят, если понял их неправильно.

multi-tentacled: с cls разобрался! прошу прощения за излишнюю назойливость. теперь вопрос который меня очень волнует в последнее время: напиток берсерка(например +10 силы на время) выпитый во время сражения повышает ваше постоянное значение силы и она снижается(ровно настолько на сколько повысилась) после того как битва заканчивается...яснее ясного что выпить их можно целую тучу, как сделать чтобы совокупность полученных бонусов отнималась(не больше не меньше)?

WindwalkerAsGuest: multi-tentacled,Рискну предположить,что можно перед боем сохранить исходное значение силы в отдельную переменную.Или сохранить в переменную сколько раз пил напиток use_напиток берсерка_выпить берсерка выпито = берсерка выпито + 1 {нужный код} end

multi-tentacled: отличная идея!!! надо попробовать!!(всё гениальное просто))) конечно если кто знает другие способы буду очень благодарен любой инфе

Мухтар: Ну даже не знаю я не пишу такие большие квесты.Ну а так просите о чем хотите по крайней мере что нибудь могу поправить.

WindwalkerAsGuest: Но лучший вариант,это на время боя сделать отдельный набор переменных,временных,и можно творить с параметрами что угодно :)

Steks: multi-tentacled Как поборник ООП я сильно использую локацию Common, для реализации внутренней механики, ибо другими методами отделить зерна от плевел в коде не представляется мне возможным. Минусом предложенного метода, мне кажется, является то, что описывать реализацию вам придется перед каждой битвой, и это куча переменных и запутанность в коде. Однако в небольшом проекте это сделать проще. Поэтому, хоть и с опозданием, предлагаю на рассмотрение такой метод. Минусом моего подхода является относительная сложность реализации. В общем всю локацию Common я визуально разбиваю на логические секции комментариями. Каждая секция отвечает за собственные детали внутренней механики. В том числе, одна из них, за временные бонусы. Есть переменные которые указывают, наложен тот или иной эффект на персонажа, и при желании, сколько раз он наложен. Также есть переменные настоящих параметров, и текущих параметров персонажа. В локации Common происходит проверка, на каждый эффект в отдельности, если переменная эффекта больше или равна единице, то производим необходимое действие. Например в данном случае переменной текущей силы мы приравняем переменную настоящей силы плюс произведение переменной эффекта на значение константы эффекта. Где переменная эффекта это переменная в которой указано наложен ли эффект и сколько раз, а константа эффекта это сила действия эффекта, например в данном случае это 10 (увеличение силы зельем). Конечно это не идеальное решение. Но оно позволяет легко расширять набор бонусов, без заморочки в остальной части кода.

multi-tentacled: Steks/ замечательно! только я ничего не понял... у меня профессиональное образование художника-оформителя.(мне нужен пример)

Steks: Хорошо, приду домой напишу пример втечение суток.

WinwalkerAsGuest: Задолбала одна ошибка,пишу значит в одной метке instr рука правая = Бронзовый меч а в другой хочу выполнить условие if рука правая = Бронзовый меч then,так почему то условие не выполняется,хотя при этом прекрасно выполняется для левой руки,несколько раз проверял написание,даже копипастил из левой в правую,все равно без толку.Выполняется только if правая рука <> Бронзовый меч then Мистика какая-то...

WindwalkerAsGuest: Кхе,сообщение я написал с грубейшими ошибками... Но код я уже много раз перепроверял...

multi-tentacled: Steks\ с нетерпением жду! похоже снова дэдлайн начинается ...эта трабла и другие похожие!

Мухтар: Слушай,WindwalkerAsGues а ты в отладке проверь.

WinwalkerAsGuest: Мухтар,Steks, Проблему решил,там пробел между строкой и оператором and почему-то считался как пробел в значении переменной,и почему-то только в той строчке кода. У меня все работает с одним знаком = ,ставить два не пробовал. А вот кто бы мне обьяснил как записать в одну строковую переменную значение из другой(подробный синтаксис)

Steks: multi-tentacled, написал тебе пример. Здесь не совсем так как делаю я, просто не хотел чересчур усложнять. Однако от проверки перед каждым боем это избавит. Если у тебя нет хитро работающих бонусов, то такая реализация будет излишней. Также стоит помнить, что Common выполняется либо по переходу на локацию, либо по нажатию игроком кнопки (зависит от интерпритатора). Непосредственно при реализации боя необходимо использовать текущее значение силы, а не реальное. :init ; Character stats stat_strength_current = 0 stat_strength_real = 5 ; Bonuses bonus_berserk_potion bonus_berserk_potion_strength_add = 10 proc common goto main_menu end :main_menu cls pln Main menu pln pln Текущее значение силы (с учетом бонусов): #stat_strength_current$ pln Реальное значение силы (без бонусов): #stat_strength_real$ btn get_berserk_potion, Взять две бутылки зелья btn main_menu, Обновить end :get_berserk_potion inv_Зелье берсерка = 2 goto main_menu end :use_Зелье берсерка_Выпить pln Зелье берсерка выпито. inv- Зелье берсерка bonus_berserk_potion = bonus_berserk_potion + 1 end :common stat_strength_current = stat_strength_real ; Bonuses check ; Berserk potion if (bonus_berserk_potion >= 0) then stat_strength_current = stat_strength_current + (bonus_berserk_potion * bonus_berserk_potion_strength_add) end WinwalkerAsGuest, про два пробела я конечно ошибся, потому и удалил свое сообщение не заметив твоё. Просто давно на URQL ничего не писал. Теперь как в одну строковую записать значение другой. Собственно как и не строковой. instr str1 = Hello instr str2 = world! str1 = str2 pln #%str1$ pln #%str2$ Выводит: world! world! Если не работает попробуй вместо str1 = str2 написать instr str1 = #%str2$

WindwalkerAsGuest: Steks,Моя беда в том,что ни один из предложенных вариантов не работает. В последнем случае я вижу в окне отладки str1 = #%str2$

Steks: WindwalkerAsGuest, какой интерпретатор используется? Под fireURQ, DOS_URQ и WinURQ все должно работать.

Steks: multi-tentacled прокомментировал чтобы стало понятней :init ; Блок инициализации и начальной настройки игры ; Параметры игрока stat_strength_current = 0 ; Текущее значение силы игрока stat_strength_real = 5 ; Действительное значение силы игрока ; Бонусы bonus_berserk_potion = 0 ; Сколько эффектов зелья берсерка действует на игрока bonus_berserk_potion_strength_add = 10 ; Сколько силы добавляет один подобный эффект proc common ; Выполняем локацию common для установки текущих значений параметров игрока в актуальные goto main_menu ; Отправляем интерпретатор в локацию меню end :main_menu cls pln Main menu pln pln Текущее значение силы (с учетом бонусов): #stat_strength_current$ ; Выводим значение текущей силы pln Реальное значение силы (без бонусов): #stat_strength_real$ ; Выводим действительное значение силы btn get_berserk_potion, Взять две бутылки зелья ; Выводим кнопку для добавления двух бутылок в инвентарь btn main_menu, Обновить ; Эта кнопка просто направляет в эту же локацию, однако при этом выполнится и локация common end :get_berserk_potion inv_Зелье берсерка = 2 ; Даем игроку две бутылки зелья goto main_menu ; И возвращаем его в меню ничего не спрашивая и не ожидая от него end :use_Зелье берсерка_Выпить ; Добавляем к зелью действие Выпить pln Зелье берсерка выпито. inv- Зелье берсерка ; Так как зелье выпито заберем одну бутылку из инвентаря bonus_berserk_potion = bonus_berserk_potion + 1 ; И увеличим значение переменной в которой хранится количество эффектов зелья берсерка на единицу end :common ; Эта локация будет выполняться практически при любом нажатии на кнопку или когда интепретатор встретит goto (зависит от интерпретатора) stat_strength_current = stat_strength_real ; Сначала присвоим текущему значению силы её значение действительное значение. Это нужно для того, чтобы дальше в этой локации мы могли просто прибавлять к текущему значению любые другие бонусы или отнимать штрафы, или и то и другое. Это дает нам возможность наложить несколько эффектов сразу. ; Проверка бонусов ; Зелье берсерка if (bonus_berserk_potion >= 0) then stat_strength_current = stat_strength_current + (bonus_berserk_potion * bonus_berserk_potion_strength_add) ; В данном случае мы проверили наложен ли эффект (в принципе от проверки можно и вовсе отказаться) ; Затем к текущему значению силы stat_strength_current прибавили произведение количества наложенных эффектов берсерка и значения на которое должна быть увеличина сила одинм эффектом (bonus_berserk_potion * bonus_berserk_potion_strength_add) ; Еще раз, в скобках справа bonus_berserk_potion это количество наложенных эффектов (количество выпитых зелий, мы увеличиваем его когда игрок выпивает зелье), а bonus_berserk_potion_strength_add это значение увеличения силы одним зельем (это значение мы задали когда инициализировали игру и проводили начальные настройки). Перемножив эти значения мы получим значение насколько должна быть увеличена сила при заданном количестве выпитых зелий. end

WindwalkerAsGuest: Steks,я начал писать под Mobile Quest,в это время компа у меня под рукой не было.Так что проверить иначе не мог.Интернет у меня будет только с 1 октября :)

WindwalkerAsGuest: Вообще хочется чтобы код работал и на мобиле,я его слишком долго шлифовал:-) Если кто нибудь знает особенности работы Mobile Quest,прошу поделитесь инфой

WindwalkerAsQuest: Серый волк,написал вам на почтовый ящик.Заранее благодарю.

Черный кот: Можно ли поменять цвет фона букв в фурке?

WindwalkerAsGuest: Скачал последнюю версию фурки,понравилось:-) Теперь правлю код под нее. И соответственно вопрос,как сохранить input в переменную? "input = имя переменой" не работает...

WindwalkerAsGuest: Блин,невнимательность меня погубит. У самого в коде "input имя_переменной"

WindwalkerAsGuest: Назрел вопрос,а какой командой можно закрыть окно с игрой в фурке,если можно вообще?

Серый Волк: Черный кот, поясни, пожалуйста, что имеется в виду под "цвет фона букв"? WindwalkerAsGuest, возможности сделать это средствами языка urql (то есть - командой) нет.

Windwalker: Серый волк,спасибо за инфу. А есть ли отдельная команда,для работы с массивами,или все делается через переменные? Ничего,что из меня столько вопросов сыплется?

Korwin: Windwalker пишет: А есть ли отдельная команда,для работы с массивами,или все делается через переменные? Все делается через переменные и #$ :example1 i=1 :loop1 massiv#i$=rnd10 i=i+1 if i<20 then goto loop1 i=1 pln загрузили массив из 20 числовых переменных случайными значениями от 1 до 10: pln :loop2 p #massiv#i$$,#$ i=i+1 if i<20 then goto loop2 end Windwalker пишет: Ничего,что из меня столько вопросов сыплется? Это очень хорошо...

Мухтар: Что верно то верно.И у меня нету вопросов(извините если ляпнул что-то не то).

Черный кот: Задать цвет фона, обычно он черный...

Черный кот: И еще кое-что, как вставлять gif-картинки

Korwin: Тип RECT – это просто цветной прямоугольник: decoradd <имя> (<x>,<y>[, <z>]) RECT ширина, высота [, цвет] Таким образом команда decoradd background (0,0,1) RECT 800, 600, 0xFFFFFF - даст белый фон http://ifwiki.ru/FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.94.D0.B5.D0.BA.D0.BE.D1.80.D0.B0.D1.82.D0.BE.D1.80.D1.8B - тут же найти как вставить gif-декоратор decoradd <имя> (<x>,<y>[, <z>]) GIF "имя_gif-файла"

Windwalker: Как в фурке выполнить деление чтобы в итоге было 100% целое число?

Мухтар: Ну-с не знаю что сказать это смотря как.Можно побольше инфы? А то неясно что у вас там.

Flashback: Целочисленное деление, наверное, он хочет.

Windwalker: Flashback пишет: Целочисленное деление, наверное, он хочет. Именно его и хочу

Steks: Windwalker Что такое целочисленное деление? Деление с остатком? На ум приходит ухищрение с переводом числа в текст, и дальнейшим отбрасыванием знака после запятой. Я не пробовал реализовывать это на urql, но насколько я помню команды для этого в ней имеются. Я вот тоже искал команду или оператор в urql, который вернул бы остаток от деления, но не нашел. Может плохо искал.

vito: Steks пишет: Я вот тоже искал команду или оператор в urql, который вернул бы остаток от деления, но не нашел. Может плохо искал. Идем сюда http://urq.plut.info/soft, скачиваем Описание URQL для URQ_DOS версии 1.35 от 23.11.2006 года от Корвина, текстовым поиском ищем Пример 6: Вычисление целой и дробной части числа. Берем на заметку системную переменную fp_prec, задающую число знаков после запятой при вычислениях. И демо-пример, вычисляющий целочисленное частное и остаток от деления введенного числа на 5 (программа завершается вводом нуля): [pre] :start pln Введите число input x if x=0 then end fp_prec=0 y=#x/5$ if y*5>x then y=y-1 z=x-y*5 pln Целочисленное частное: #y$ pln Остаток: #z$ fp_prec=5 goto start [/pre]

Steks: vito Спасибо. Просто на URQL я не писал ничего уже шесть лет, да и тогда я обошелся без этого. Но теперь мне это пригодиться. Перечитаю мануал.

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

Korwin: 1. Вопросы по FireURQ задаются в соответствующем топике. 2. Пример кода в таких случаях значительно ускоряет разбор ситуации. Компетентный специалист подскажет в чем дело... не один, так другой.

frodo: Windwalker 1. Описание URQL для URQ_DOS версии 1.35 от 23.11.2006 года:current_loc и previous_loc теперь меняются только при btn-переходах. Проблема решается простым присваиванием - после метки: [pre2]:label current_loc = "label" ...[/pre2] - или перед goto: [pre2]current_loc = "label" & goto #%current_loc$[/pre2] 2. Нужно так: [pre2] save #%current_loc$[/pre2] Если сделать save current_loc, интерпретатор будет грузить игру для локации с названием "current_loc" - а это, как мне кажется, не то, что нужно.

Windwalker: frodo пишет: Проблема решается простым присваиванием - после метки: :label current_loc = "label" ... - или перед goto: current_loc = "label" & goto #%current_loc$ 2. Нужно так: save #%current_loc$ Если сделать save current_loc, интерпретатор будет грузить игру для локации с названием "current_loc" - а это, как мне кажется, не то, что нужно. Спасибо большое,видимо я невнимательно читал описание,если конечно имеется ввиду тот самый документ от Корвина

Korwin: Windwalker - excuse me Frodo, спасибо большое. Теперь мне надо самому перечитывать тот документ - кое-что уже забыл!!!

Eddie: Привет всем! Случайно наткнулся на этот сайт. С большим удовольствием осознаю, что интерактивная литература еще жива.)) Сам в детстве дико торчал от книжек Браславского (Шелтон, Повелитель безбрежной пустыни... ностальгия прямо). Выражаю признательность всем присутствующим и планирую поселиться здесь надолго.

Eddie: Кстати, немного не разобрался со статусами игр. "В разработке", "бета" - это просто так, для описания завершенности игры, или тут есть добровольцы-тестировщики, которые имеют достут к работам, находящимся в стадии "бета"?

Серый Волк: Приветствую Eddie, добро пожаловать, устраивайся :) Да, статусы "готовая/ббета/в разработке" просто нужны для отображения степени готовности игры к употреблению, никаких иных скрытых механизмов они не несут.

Eddie: Привет, Волк! Насколько я понял - ты здесь один из боссов.)) А не считаете ли нужным набрать команду добровольцев-тестировщиков, которые тестировали бы игры по желанию авторов до того, как этим играм попадать на общий обзор? Таким образом, можно избежать неприятных ощущений игрока от багов, которые преследуют игры со статусом "готовая"? Мое знакомство с этим сайтом началось с "Тень над Риверкроссом". Игра достаточно интересна и затянула. Но вот во второй половине встретился баг, препятствующий дальнейшему прохождению - пришлось лезть в исходный код, искать ошибку и исправлять.

Серый Волк: Боссов у нас нет, анархия наш мать и порядок :) Что касается новых игр, попадающих в каталог, то перед публикацией я их просматриваю на проходимость. Что касается игр старых, то набрать такую команду невозможно, заниматься этим попросту некому. Хотя единичные вспышки активности, когда кто-то правит старые игры или портирует их на Фурку, попутно подправляя мелкие косяки, бывают. К слову, есть порт "Тени над Риверкроссом" под платформу Инстед, я в него не играл, но говорят, там правили какие-то баги: Проигрыватель Инстед http://rilarhiv.ru/instead/instead-1.8.0.exe Порт игры "Тень..." http://rilarhiv.ru/instead/sor.rar

Eddie: А сам Браславский здесь появляется? И есть ли у него портированные на FireURQ "классические книжки"?

Серый Волк: Нет, Браславский здесь не появляется, всё-таки его профиль - книги-игры, а наш - текстовые квесты, а это несколько разные вещи. У поклонников книг-игр есть своё сообщество, вот на их форуме Браславский бывает: http://quest-book.ru/forum/ Портов книг-игр Браславского под FireURQ'у нету. Но вот по этой страшной ссылке: http://quest-book.ru/directory/author/%C4%EC%E8%F2%F0%E8%E9+%C1%F0%E0%F1%EB%E0%E2%F1%EA%E8%E9/ можно посмотреть какие из его книгр есть в интерактивном варианте на других движках. Ещё, Eddie, погляди личные сообщения, отправил тебе секретное послание :)

Flashback: Я тоже хочу секретное послание.

Eddie: Если быть совсем уж честным - то к книгам-играм Браславского у меня масса претензий. Я считаю их нечестными по отношению к игроку. Эти долбаные развилки с внезапной смертью типа "направо пойдешь-умрешь, а налево пойдешь - к очередной развилке придешь" просто бесили в свое время. Плюс еще практически непобедимые "финальные боссы". Вот и хотелось бы высказаться ему в лицо! )))

Saint: А что плохого в том, что развилки ведут к смерти? Это-же игра...

Eddie: Плохо тем, что игра в этом случае сводилась к "угадал/неугадал". От игрока абсолютно ничего не зависело.

Мухтар: А в "Полцарства за коня" не пробовали? Там всё пороще.

Chicago1920: Дорогие друзья и Евг! Совершенно закономерно, у меня возник следующий вопрос - а будет ли в этом году проводится традиционная ежегодная урк-забава aka Операция С Новым Годом? Искренне Ваш и Евга.

noname: Chicago1920 пишет: Совершенно закономерно, у меня возник следующий вопрос - а будет ли в этом году проводится традиционная ежегодная урк-забава aka Операция С Новым Годом? Искренне Ваш и Евга. а как же ЗОКа? не хорошо распылять усилия- не выйдет ни то, ни то. вот если бы их можно было как-то объединить..

Chicago1920: noname пишет: а как же ЗОКа? Зока ж для девочек. Побеждают игры про феечек и прочие волшебные палочки. А вот Операция это обоюдоприятное поздравление с новым годом

Eddie: А разве важно не участие прежде всего? К тому же Волк, вроде, приз может присудить не девчачьему квесту "про феечек", а вполне пацанскому про "насилье и секс".

Серый Волк: Дорогой мой Chicago1920, конечно же будет. Ты большой молодец, что придумал и ввёл эту добрую традицию. И ещё бОльший молодец, что напоминаешь о ней. А добрые традиции должны жить-поживать и не зафейливаться.. Тем более, что в этом году у нас появились новые активные люди, которым, надеюсь, будет интересно поучаствовать в новогодней забаве. Пойду создам топик. А ЗОКа что, три года не мешала же, и в этот раз не помешает.

Михаил Фаул: У меня есть вопрос, с которым я долго маюсь. Подскажите мне, как пользоваться rnd на наглядном примере, а то я с ног сбился ищя пример в учебнике Korwina.

Евгений: Вот тут есть ответ: http://urq.borda.ru/?1-0-0-00000320-000-0-0 А вообще самый простой способ понять - выводить непонятное на экран и смотреть, что оно делает. Например: :0 pln #rnd42$ btn 0, еще раз end

noname: текст простой игры, использующей rnd6 для "броска кубиков" и rnd3 для рандомизации описания исхода боя: invkill perkill vic = 0 ; количество побед :1 pln Вы вызвали на поединок оскорбившего добродетель, pln и бой неизбежно кончится гибелью одного из вас. btn 2, принять боевую стойку end :2 d1 = rnd6 d2 = rnd6 d3 = rnd6 s1 = d1+d2+d3 ; Ваша концентрация k1 = rnd6 k2 = rnd6 k3 = rnd6 s2 = k1+k2+k3 ; концентрация противника s3 = 6+rnd6+rnd6 ; если s2>s3, противник принимает решение атаковать pln pln Ваша концентрация #d1$+#d2$+#d3$ =#s1$ pln она, как и концентрация противника, pln определяется суммой броска трёх шестигранных кубиков. btn 3, атаковать btn 15, выжидать момент end :3 r= rnd3 if s1>s2 then r=r+3 if s1<s2 then r=r+6 if s1=s2 then r=r+9 goto #r$ end :4 pln Голова Вашего противника pln отлетела в кусты, оставив кровавый шлейф. goto 13 end :5 pln Вы рассекли противника одним ударом от правого бедра до левого уха, pln и сожрали его селезёнку. goto 13 end :6 pln Неожиданным прямым выпадом pln Вы пронзили сердце врага. goto 13 end :7 pln Ваша голова отлетела в кусты, оставив кровавый шлейф. goto 14 end :8 pln Противник рассёк Вас одним ударом от правого бедра до левого уха, pln и сожрал твою селезёнку. goto 14 end :9 pln Неожиданным прямым выпадом pln Враг пронзил Ваше сердце. goto 14 end :10 pln Клинки яросно схлестнулись меж ваших лиц, pln ты чувствуешь горячее дыхание врага. btn 2, отступить в боевую стойку end :11 pln Мощные рубящие удары, pln со страшным лязгом столкнулись на уровне бёдер. btn 2, отступить в боевую стойку end :12 pln Ваш удар не достал врага, pln но и Вам удалось увернуться от атаки. btn 2, отступить в боевую стойку end :13 vic = vic+1; pln pln Концентрация противника #k1$+#k2$+#k3$ =#s2$ pln была хуже Вашей #d1$+#d2$+#d3$ =#s1$ pln Необходимое сделано. pln pln На Вашем счету #vic$ побед, pln можете вернутся к котелку с бататовой кашей, над костром. pln btn 1, кто-то только что совершил недозволенное end :14 vic = 0 pln pln Концентрация противника #k1$+#k2$+#k3$ =#s2$ pln оказалась лучше Вашей #d1$+#d2$+#d3$ =#s1$ pln Вы погибли. pln pln Заново? btn 1, ладно end :15 if s2>s3 then goto 16 goto 17 end :16 pln Враг ринулся в атаку btn 3, .. end :17 r= rnd3 pln Невозмутимы самураи перед боем. if r=3 then pln Лепесток цветка плавно падает с сакуры. goto 2 end

Михаил Фаул: Спасибо за столь быстрый ответ на мой вопрос. Из прошлого вопроса вытекает этот. Вот код. :Сила pln Итак, определим твою жизненную силу силы = rnd6 if силы = 0 then btn Сила,Кинуть куб еще раз if силы = 1 then Inv+22,жизней if силы = 2 then Inv+18,жизней if силы = 3 then Inv+14,жизней if силы = 4 then Inv+24,жизней if силы = 5 then Inv+16,жизней if силы = 6 then Inv+20,жизней Inv_Сила>10 then btn 1,Далее end По задумке, должна задаться жизнь и появиться кнопка. Но ничего не происходит. Наверное, это можно организовать в виде процесса. Был бы рад, если бы кто небудь продемонстрировал как.

noname: силы = rnd6 получится целое число от 1 до 6 включительно. следующая строка : if силы = 0 then btn Сила,Кинуть куб еще раз никогда не будет выполнена. а здесь: Inv_Сила>10 then btn 1,Далее вероятно, пропущен if. ещё не ясно, откуда берётся значение Inv_сила. я вижу в коде переменную силы и жизней. кроме того, ещё один тонкий момент: между Inv+ и числом должен быть пробел. вот исправленный пример: :Сила pln Итак, определим твою жизненную силу силы = rnd6 if силы = 1 then Inv+ 22,жизней if силы = 2 then Inv+ 18,жизней if силы = 3 then Inv+ 14,жизней if силы = 4 then Inv+ 24,жизней if силы = 5 then Inv+ 16,жизней if силы = 6 then Inv+ 20,жизней if Inv_жизней>10 then btn 1,Далее end в этом примере кнопка появляется, а так же подсвечивается инвентарь, в котором можно увидеть полученное количество жизней.

Михаил Фаул: И снова вы дали очень хороший совет. И большое спасибо вам за это. У меня еще вопрос(надеюсь я этими вопросами вам не надоел?;-) ). Допустим, берем здоровье. Как сделать процесс common, который при исчезновении здоровья отправляет игрока в определенную комнату и где ставить ссылку на common?

qwerty: noname пишет: в этом примере кнопка появляется, а так же если в этом куске кода задаётся начальное количество жизней, то я бы советовал вместо "Inv+ 20, жизней" писать "Inv_жизней=20". ведь требуется не добавить жизни, а выставить именно такое количество жизней, как я понял. Михаил Фаул пишет: У меня еще вопрос(надеюсь я этими вопросами вам не надоел?;-) ). мы рады, что появляются новые пользователи FireURQ)) common- это особая локация, которая исполняется автоматически, при переходе игрока из любой локации в любую другую. при выполнении локации common, когда доходим до end, выполнение передаётся следующей локации- к той, в которую надо было перейти. это удобно для организации самых разных событий: отсчёт времени, организация голода, проверки на то, не выполнились ли условия для выполнения какого-то особого действия. удобная штука, если научиться ею пользоваться. конкретно, в случае, если героя надо отправить в конец игры, нужно предварительно сделать forget_procs. эта команда заставляет "забыть" о том, что по достижении end нужно было куда-то переходить. после выполнения этой команды процедура не вернёт управление туда, откуда её вызвали, а локация common не вернёт игрока туда, куда он собирался перейти. чтобы лучше понять написанное, предлагаю простой пример: :начало Inv_цветок= 0 Inv_мозоль = 0 r=0 pln Начало btn поле, идти в поле btn горы, идти в горы btn лес, идти в лес end :поле pln Поле btn горы, идти в горы btn лес, идти в лес end :горы pln Горы btn поле, идти в поле btn лес, идти в лес end :лес pln Лес btn поле, идти в поле btn горы, идти в горы end :дом pln вы набрали достаточно цветов и вернулись домой pln btn начало, заново end :common ; регулярные действия: Inv+ цветок if Inv_цветок= 10 then forget_procs&goto дом ; неожиданное событие: r= r+rnd3-1 if r>5 then r=0 & Inv+ мозоль & pln вы натёрли мозоль & pln end попробуйте убрать forget_procs, и увидите, как изменится выполнение программы. или попробуйте добавить forget_procs в локацию common перед последним end. причём, в моём примере, есть погрешности. дело в том, что по нажатии кнопки "заново" тоже выполнится сначала локация common. это не всегда хорошо. может случиться так, что события, которые уместны в игре, будут не уместны при использовании игроком начального меню. например, персонаж не должен умереть от голода от того, что игрок слишком долго лазит по до-игровому меню. для этого common можно переключать: в конце руководства от Корвина есть список системных переменных. там в начале есть переменная common. изучайте документацию, разбирайтесь, экспериментируйте, спрашивайте)) желаю успехов!

Михаил Фаул: Спасибо.)) Кстати, не скажете в каких играх есть битвы 1 на 1(очень надо)?

Евгений: http://quest-book.ru/quest/2414/ А на урке не помню :)

qwerty: Михаил Фаул, из того, что может подойти, вспомнил сходу вот это: "Контакт" Chicago1920 (159 Кбайт) под Акурку "Демоны бездны" порт книги-игры Стива Джексона (p_alex) (5,64 Мбайт) под Акурку(впрочем, там, вродь запускающийся пакет) лежит здесь: http://rilarhiv.ru/urq.htm но можно придумать и другие системы боя.

Михаил Фаул: qwerty, большое спасибо, вы меня уже несколько раз выручали.

Серый Волк: Некоторые игры с боями: "Забытый герой красной горы" - http://rilarhiv.ru/urq/ForgottenHeroVvarndefell.zip "Приключения бравого толкиениста" [AkURQ1.28pre1] - http://rilarhiv.ru/urq/PBT.rar "Вирус" - http://rilarhiv.ru/urq/Virus.rar "ВЖЖ!-2 или Все хотят Колокольчик Бессмертия" http://urq.plut.info/node/370 /на мой взгляд - лучшие битвы один на один/

Михаил Фаул: Срочно нужен соавтор, который поправит мои глупые ошибки в коде. Крайный срок - до послезавтра.

Saint: Михаил. В личку отписал.

Vulcano: Всем доброго времени суток. Есть такая вот задачка. Необходимо присвоить массиву строковый тип данных. Т.е. каждый элемент массива от 1 до i при выводе на экран будет выдавать разные строчки текста. Можно ли это осуществить с помощью URQL, пользуюсь интерпретатором FireURQ. Заранее спасибо.

Евгений: Можно. :ввод имя1="Вася" имя2="Петя" имя3="Геннадий" количество имен=3 pln "Массив" сформирован, кол-во элементов - #количество имен$. btn вывод, вывести массив end :вывод i=0 :вывод_loop i=i+1 if i>количество имен then end pln #i$) #%имя#i$$ goto вывод_loop end

Vulcano: Отлично, уже проверил. Такой непривычный и нелогичный синтаксис. Спасибо, очень помогли.

Chicago1920: Евг, а теперь залей это на плут и объяви своей новой долгожданной игрой)

fireton: Vulcano пишет: Такой непривычный и нелогичный синтаксис. Очень многое в URQ делается с помощью подстановок. Это очень мощный инструмент, хотя да, его синтаксис выглядит порою жутковато.

Vulcano: Есть еще одна задачка. Как сделать так, чтобы при нажатии по конкретному декоратору выводилась подсказка в виде еще одного декоратора с текстом. Я разобрался с примером тултипов на Вики, но как определить область нажатия мыши, равной конкретному декоратору и как грамотно написать код для определения нажатия клавиши мыши в пределах этой области. Заранее спасибо.

vito: Vulcano пишет: как определить область нажатия мыши, равной конкретному декоратору и как грамотно написать код для определения нажатия клавиши мыши в пределах этой области Функция добавления декоратора: decoradd <имя_декоратора> (<абсцисса верхнего левого угла декоратора>, <ордината верхнего левого угла декоратора>) image <название графического файла в кавычках> Абсцисса и ордината левого верхнего угла отсчитываются от левого верхнего угла экрана (обзовем их x0, y0). Габариты (в пикселях) графического файла по горизонтали и вертикали (обзовем их dx и dy) заранее известны. Проверка ввода пользователя после вывода декоратора осуществляется при помощи функции anykey <код_клавиши> if код_клавиши=256 then ... ; код 256 означает, что была нажата кнопка мыши Абсцисса и ордината мыши возвращаются в системных переменных mouse_x и mouse_y, соответственно. При щелчке левой кнопкой мыши в пределах нашего декоратора будут выполнены следующие условия: mouse_x>=x0 and mouse_x<=x0+dx and mouse_y>=y0 and mouse_y<=y0+dy Как-то так.

Vulcano: Тогда поясните мне вот эту строчку? "Переменные mouse_x и mouse_y возвращают теперь текущие координаты мыши просто на момент вызова. Не надо больше вызывать anykey и ждать нажатия кнопки мыши чтобы получить их." fireton Как обойтись без anykey и возможно ли это? В попытках уже проклял все на свете, при условии что декоратор - текст.

Vulcano: Ну и попутно сразу возник вопрос. Можно ли задать декоратору координаты mouse_x и mouse_y. Что-то вроде такого: decoradd Имя (mouse_x, mouse_y, -1) RECT 210, 40 Понятно, что выполняться будет данная строка тогда, когда будет выполнено конкретное условие.

vito: Vulcano пишет: Тогда поясните мне вот эту строчку? "Переменные mouse_x и mouse_y возвращают теперь текущие координаты мыши просто на момент вызова. Не надо больше вызывать anykey и ждать нажатия кнопки мыши чтобы получить их." fireton Как обойтись без anykey и возможно ли это? В попытках уже проклял все на свете, при условии что декоратор - текст. Одно другому не противоречит. anykey нужен для проверки того, была ли нажата кнопка мыши. С декораторами-текстами никогда не работала, возможно, там все сложнее. Я бы в таком случае поступила так: перевела бы текст в графический файл и работала бы с ним, как с нормальным графическим декоратором. Vulcano пишет: Ну и попутно сразу возник вопрос. Можно ли задать декоратору координаты mouse_x и mouse_y. Теоретически никаких проблем быть не должно. Самое простое - проверить экспериментально.

Vulcano: Спасибо за ответы. Экспериментально проверил, координаты mouse_x, mouse_y ставятся без проблем. Переводить декораторы текста в графические файлы слишком накладно, просто ужасно забивать 36 разных фраз в графику. Очень не хватает реализации событий для декораторов, например обычный или двойной клик мыши. Где-то в предложениях Фурки что-то такое читал и присоединяюсь к тому, что это очень упростило бы жизнь многим квестописателям. В момент проверки выяснил странную закономерность. Если в декораторе ранее был использован цвет в формате 0xf83232, то все последующие декораторы отказываются принимать цветовую схему формата 0xFF030086. Или я что-то снова недопонимаю?

Steks: Попробуй сделать прозрачный png прямоугольник, и модифицируй его так-же как текст. Отлавливай его события.

Vulcano: С предыдущими вопросами благополучно справился, за что несказанно всех благодарю. Есть еще один каверзный вопросик, который никак не дает покоя. Можно ли научить все декораторы скролировать вместе с прокуручиванием текстовой области интерпретатора? Когда текст заходит за пределы, автоматически включается режим скрола. Текст, конечно же, прокручивается, как и положено, а вот декораторы стоят на месте, как вкопанные. Оно и понятно, у них прописаны жесткие координаты, в том то и загвоздка, можно ли какими-то известными способами заставить декораторы прокручиваться? Заранее благодарен за все ответы

Серый Волк: Vulcano, увы, такого способа нет, заставить декораторы скроллироваться вместе с текстом нельзя.

fireton: Декораторы нельзя, можно просто встроить картинку в текст, если тебе нужна просто картинка.

Vulcano: Мне нужно что-то по типу форматирования в Word'е. Когда картинка вписана в текст, т.е. сделаны настройки обтекания "по контуру". Можно ли что-то подобное сделать с декоратором или с обычной вставкой картинки? Есть еще кое-что. Как после различных манипуляций с цветом текста сделать его исходным, базовым, по типу "_sysfont"?

fireton: Обтекания картинок нет. Я хотел когда-то сделать, но поскольку весь рендеринг текста и форматирование я писал сам, то понимаю, какой там адский геморрой это всё переделывать (и не факт, что я чего-нибудь не разломаю). Аджента одно время активно просила это самое обтекание, но в конце концов смирилась и больше не просит. :) Чтобы установить начальный цвет используй вот такое: [pre2]Style_dos_textcolor = 7[/pre2] У фурки нет "системного цвета" шрифта. Есть типа стартовый, серый. А там ты уж меняй его как хочешь. Назначь константу в начале квеста, каким будет твой "системный" цвет и назначай его. Как по-умолчанию, я написал выше.

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

fireton: Какой-то баг во FreeType. Это он так её отрисовывает... Надо будет поэкспериментировать с более свежей версией. Интересно, что с стандартным шрифтом всё хорошо. Ну или приведи кусочек кода, чтобы говорить более предметно.

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

vito: Vulcano пишет: И раз уж у меня есть лишняя минутка, хотелось бы спросить у старожил, как пользоваться оператором count_? Где-то читал, что это счетчик, но так и не понял, счетчик для каких целей? Можно ли например с помощью него посчитать, сколько раз была вызвана та или иная локация и прочее? Если кто-то подкинет примерчик, буду несказанно благодарен. Из описания URQL, доступного для скачивания на сайте: Вход на локацию Очень интересной особенностью является то, что при входе на локацию после перехода (Btn, Goto, Proc) происходит увеличение переменной с именем count_имя-локации на 1. Пример: [pre2]proc abs & proc abs & proc abs end :abs pln #count_abs$ end[/pre2] При этом после выполнения кода (интересно, что в примере 1ый end можно не писать) переменная count_abs примет значение 3 (если до этого не вызывалась abs). Учитывая, что после возврата из просмотра инвентаря или работы с действиями count_имя локации увеличивается также, не рекомендуется применять переменные-счетчики для действительного определения числа посещений локации - лучше использовать обычные переменные.

Vulcano: спасибо за ответ, учту.

fireton: Vulcano пишет: А чего говорить предметно. Есть у вас пример в Wiki в Документации к Фурке на тему тултипов через декораторы. На всех версиях Фурки проверял, везде буква "э" в начале слова нечетко прорисовывается. Там всего одно слово в тултипе через ссылку "дерево", но этого, я думаю, будет достаточно. Загляните туда, пример ваш. Ну, я проверял. "Э" тонкими линиями почему-то рисуется при использовании шрифта "Arial". C основным шрифтом (Georgia) такого не наблюдается, там "э" хорошая. Если у тебя и с другими шрифтами беда, присылай скриншот и код, буду разбираться. Возможно, надо таки обновить FreeType...

Vulcano: Если память не изменяет, то там на gorgia.ttf "Э" тонкими линиями рисуется, ок в баг трекер завтра отправлю, как свободен буду.

Vulcano: Оставил вопрос на баг трекере. Заметил, что на некоторых шрифтах вообще отсутствуют знаки препинания или даже цифры. Код и скрин приложил. Попутно появился очень каверзный вопрос, есть ли функция в FURQе для модуля числа. Порылся, функция такая раньше была для Акурки и называлась Abs(), хотелось бы что-то подобное. Пытался применять эту функцию для Фурки, не идет, может делаю как-то не так, если кто подскажет, как выйти из положения, буду очень благодарен.

Korwin: Input k proc abc pln #k§ :abc if k<0 then k=-k end

Korwin: Я не вижу частого применения функции модуля в текстовых играх. То, что можно реализовать просто - не нуждается в спец-функции.

Vulcano: т.е. отдельной функции нет вообще? жаль... но все равно спасибо за пример и оперативность

Vulcano: Существует ли возможность разбивать квестовый код на несколько подфайлов и ссылать на них из основного файла при необходимости, дабы не перегружать основной код. Т.е. некая отдельная библиотека скриптов (меток), к которым обращение происходит только при определенных условиях. Заранее спасибо.

Korwin: Vulcano пишет: Существует ли возможность разбивать квестовый код на несколько подфайлов и ссылать на них из основного файла при необходимости, дабы не перегружать основной код. Т.е. некая отдельная библиотека скриптов (меток), к которым обращение происходит только при определенных условиях. Ответ на данный вопрос возможен на разных уровнях дзен: 1. Да! 2. Но попытаюсь таки истолковать Ваш вопрос более полезно для общества: Если эта возможность важна для удобства редактирования - есть возможность писать код в нескольких файлах, а потом собрать их при помощи bat-файла в единое целое... и при соблюдении некоторых условий, в том числе. Учитывая то, что FireURQ реально может справиться с очень длинным текстовым файлом - даже urq_dos могла теоретически сглотить файл до 2 Гб размером - другое дело, могли ли Вы написать 2 гигабайта кода?), вопрос о перегрузке основного кода в готовом квесте выглядит несколько хмм... странным. 3. ...тем не менее, если нужно почему-то именно то, что написал Vulkano: urq_dos.exe, AkURQ.exe поддеривали команду include имя_файла.qst Тем не менее, пользоваться ею разработчики не рекомендовали по причинам, им лучше известным, чем мне. Например, потому, что во включенных таким образом файлах могли не работать подстановки кода через #%переменная$. FireURQ версии 1.7 и ранее, насколько мне известно, не поддерживала команду include. За более точными сведениями - к разработчику.

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

fireton: Я делал так. Писал %run.cmd следующего содержания: [pre2] copy main.qst+*.inc.qst mybelovedgame.qst start mybelovedgame.qst [/pre2] При этом в main.qst - "стартовый" код, т.е. тот, с которого начинается выполнение игры. А в location1.inc.qst, location2.inc.qst и так далее - локации, библиотечки функций и тому подобное. Надо только учитывать, что код получается "сквозной", т.е. надо следить, чтобы, например, названия меток локаций не повторялись в разных кусочках. Потому что фурка воспринимает этот код как единый файл (каким он, собственно, и является). Добавлю, что в 1.8 будет реализована директива #include, которая позволит "собирать" квест без привлечения сторонних cmd-файлов.

Евгений: fireton пишет: Добавлю, что в 1.8 будет реализована директива #include, которая позволит "собирать" квест без привлечения сторонних cmd-файлов. Отлично. Жду не дождусь.

Vulcano: Во, попробую сделать через описанный пример. Хотя пользоваться позже буду новым оператором. Спасибо за ответ.

Буяльский Владислав: Доброго времени суток всем! Так долго не был на форуме. Хочется узнать по поводу фурки. Как-то летом мы с фаертоном обсуждали тему приспособления фурки к Jaws. И ещё. Возникла такая очень досадная проблема. Для проверки квестов я пользуюсь проигрывателем AKURQ 1.28.pre3, но на windows 7, при переходе на другую локацию, jaws просто не успевает прочитать описание этой локации. Клавишей таб я могу перемещаться только между списком кнопок и инвентарём. Было бы очень замечательно если бы с помощью таба можно было бы попасть и в окно описания локации, и прочитать её стрелками. На других проигрывателях возникают какие-то ошибки, которые не появляются в этом проигрывателе. да и ошибок то в принципе не может быть. Это точно.

Серый Волк: Владислав, привет! К сожалению, порадовать пока нечем. Разработка и поддержка программы Акурка прекращена лет пять назад, надежд на какие-либо доработки нет. По поводу Jaws и фурки, надеюсь, в эту тему придёт её разработчик и расскажет о своих планах.

fireton: Тут такое дело. Если реализовать поддержку голоса в фурке, как мы обсуждали раньше, это потребует сильной переделки программы. У меня руки опускаются, когда я думаю, сколько придётся пилить. К примеру, сейчас в фурке есть ссылки в тексте. Но перемещаться по ним с клавиатуры нельзя. И как это сделать, чтобы было можно, и не разломать при этом текущий функционал (тот же anykey), я не знаю. А ещё есть текстовые декораторы, которые вообще непонятно как озвучивать. Выходит, слабовидящим игры с декораторами всё равно будут недоступны... Беда просто. К Jaws, повторю, фурку приспособить нельзя. Никак. Можно только из самой фурки через text-to-speech движок озвучивать текст и кнопки. Но при такой реализации играть можно будет разве что в "Хомяка Семёна"... Я время от времени подступаюсь к проблеме, но как всё реализовать хорошо, пока не придумал. Если б хотя бы ссылки как-то сделать, фиг с ними, с декораторами...

Буяльский Владислав: Мда. Это очень и очень печально, что работа над акуркой прекратилась:( Как же тогда проверять квесты на работоспособность, в которых есть фоновая музыка, сопровождающие звуки и строки ввода на пример. В винурке всё это или не работает, или на начале выполнения квеста выдаёт кучу ошибок, каких не возникало в акурке. И при чём эти ошибки в тех строках, где их не может быть по определению. Вот если бы можно было бы привязать в акурке к клавише таб переход в ещё одно окошко, и чтение его стрелками, то это было бы замечательно! На мой взгляд. Просто я не использую каких-то декораций, украшений и тому подобного. Только текст, и по возможности звуковое сопровождение. Сам незрячий, поэтому в принципе не вижу в этом надобности, да и возможности это реализовывать. Вот интересно, по какому принципу была написана игра зеркало? И на каком языке? Там был вшит синтезатор николай, который прочитывал появляющийся текст в титрах. Ну и вообще читал без проблем описание локаций и меню по горячим клавишам и так, стрелками. Если это известно, как и на каком языке написана, подскажите пожалуйста, можно ли сделать что-то подобное? Естественно другая игра, но такой же принцип работы. запускаем из exe файла, как отдельное приложение, и играем. Большое спасибо. p.s. использование картинок не обязательно. Даже и не нужно.

vito: fireton пишет: Я время от времени подступаюсь к проблеме, но как всё реализовать хорошо, пока не придумал. Если б хотя бы ссылки как-то сделать, фиг с ними, с декораторами... В порядке мозгового штурма. А если озвучку декораторов и голосовой переход по ссылкам возложить на автора игры?

Korwin: Ночью думал - видимо, тоже в порядке мозгового штурма и получил две мысли: 1. А может быть сделать в FireURQ режим для озвучки текстов и кнопок по нажатию клавиши TAB? В этом режиме по нажатию этой клавиши активировалось бы: - чтение текста - чтение названий кнопок - чтение инвентаря - далее по кругу. В тексте можно было бы выделять ссылки сменой голоса, допустим на женский или выдавать звоночек, то есть текст читался бы от ссылки до ссылки. 2. Владислав, а вы можете играть в онлайн игры на AXMA Story Maker? Сайт Гиперкнига

Буяльский Владислав: Никогда не слышал об этом. И что самое интересное, по ссылке скачать программу загрузка не происходит. А точнее сказать вообще ничего не происходит. Было бы интересно посмотреть игры на этой платформе. А по поводу игры зеркало, вопрос остался в силе. Я просмотрел вчера кое-какие файлы этой игры, в основном текстовые и ini файлы. некоторые ini файлы отображаются неверно, наверно это из-за кодировки. Да и как-то не понятна структура файлов игры, и язык, на котором она написана.

Korwin: Владислав, там не надо скачивать программу, вы пока в онлайн игры поиграйте. Если получится то к вашим услугам будет целая библиотека игр. Могу предложить пока семь игр на свой вкус: Драконы и принцессы Побег из рая Мертвые тоже люди Шапка Мономаха Двадцать желаний Гражданка Готье Приватир Её Величества Если эти игры понравятся, то можно скачивать программу и пробовать творить. Что касается "Зеркала" - свяжусь с автором ремейка и отпишусь. Связался с разработчиком программы - он высказал сомнение в том, что Jazz будет нормально работать с Зеркалом и другими подобными играми, в силу использования графического движка. Кодировка UTF-8. Рекомендация - использовать все же программу AXMA Story Maker для виндоус

Буяльский Владислав: Да в роде как не жалуюсь на озвучку игры зеркало jaws. у меня стоит версия 13, с синтезатором катерина. и в роде всё нормально озвучивается, и титры, и описания локаций. ну и меню конечно же. В общем всё в роде нормально.

Буяльский Владислав: Всем привет! Вопрос емного не по теме, но всё же. Подскажите пожалуйста, можно ли связаться с каким-нибудь из разработчиков звуковых игр? Игры на подобии "Том хантер" или "Крейзи теннис". Это зарубежные разработчики. А есть ли российские? Хотелось бы узнать, как можно создать подобную игру? Что для этого нужно, и как вообще это всё происходит. На пример создание 3д звукового пространства. Или если кто знает, подскажите пожалуйста, где можно найти материалы и инструменты для создания игр такого плана. Если нужно будет, могу скинуть пару игр для примера. Большое спасибо!

Хломидоманад: 3d-аудиоигры предполагают использование специализированного движка, который часто пишется конкретно для этой задачи. Из коммерческих игр есть относительно известный аудиохоррор для iPhone/iPad под названием Papa Sangre (http://www.papasangre.com), для которого разработчики создали собственный бинауральный движок Papa Engine (http://www.papaengine.com). Я так понимаю, они собираются релизить движок для использования третьими лицами, но явно не за просто так. (Кстати, советую почитать на википедии про бинауральный звук и послушать сэмплы, которых в интернетах полно.) Любительских игр такого плана довольно много, наверно, ты их знаешь больше, чем я. Есть русская поделка под названием Techno Shock (http://www.tiflocomp.ru/games/ts/), сделанная, похоже, на авторском движке. Можно было бы попытаться использовать и "мейнстримовые" графические 3d-движки типа Blender (вот сэмпл), но для незрячего автора, при отсутствии зрячих соавторов, это не вполне вариант. А вообще лично мне более интересной кажется концепция "интерактивных аудиокниг", т.е. игр с записанной актёрской озвучкой и точками выбора, типа CYOA. Что-то типа "Shoot Your Evil Twin Brother..." без недопарсера. :) Была такая японская игра для приставок Sega Saturn, называлась Real Sound: Kaze no Regret (http://en.wikipedia.org/wiki/Real_Sound:_Kaze_no_Regret) -- она как раз была ориентирована как на незрячих, так и на видящих игроков. Автор даже настоял, чтобы "Сега" раздала тысячу приставок в комплекте с игрой незрячим геймерам. После чего обанкротился. Была ещё какая-то серия аудиоигр на немецком, но я по-немецки не понимаю и покупать их не решился. ps Выше попадаются линки на видеозаписи, но в них важен по сути только звуковой компонент. Не знаю, правда, насколько тот же ютюб приспособлен для "прослушивания" ролика и чтения описаний под ним с помощью скринридеров.

Буяльский Владислав: На своём сайте: http://vlad-mus.liric.info я выложу несколько аудио игр для примера. Хотелось бы узнать, может всё-таки как-то возможно сделать пусть не такой масштабный проект, а маленькую подобную игру. Кстати вот здесь очень много говорится об этом, но я не знаю, что из всего этого полезно, какой из предложенного можно воспользоваться литературой и движками. http://www.tiflocomp.ru/games/design/ Пусть движок на английском, это в принципе не проблема. Мне важно другое. Как и с чего начать работать именно в этом направлении. Спасибо!

Smile_Charly: здравствуйте, существуют ли интерактивные игры для мобильного не сенсорного телефона? И могли бы дать ссылку? Лучше всего, если есть онлайн :) Сам сижу с телефона поэтому сложно пользоваться поиском.

Евгений: Посмотри игры Горафа на твии: http://pavlenko.biz/ А также http://hyperbook.ru/lib.php и http://kvester.ru Это все онлайн и работает даже на старых телефонах (главное, чтобы браузер был) :) Есть еще парсерные игры онлайн - http://rinform.stormway.ru/, но не знаю насколько набор текста будет удобен с телефона.

Серый Волк: Smile_Charly, а какая операционная система у телефона?

Smile_Charly: спасибо за ссылки и если честно не могу найти тип ос на свой телефон у меня самсунь s3350

Серый Волк: Smile_Charly, погуглил немного, кажется, у этого телефона собственная "Samsung OS". В любом случае java-игры он должен понимать. Так что, можем предложить: Забавно-занятный квест "Золотой ключик или как всё было на самом деле": http://rilarhiv.ru/mobileil/Txtquest.rar (59 кб) java-плеер urq-игр http://rilarhiv.ru/mobileil/aurq_j2me.rar (59 кб) и игры для него http://rilarhiv.ru/mobileil/aurqQuests2.rar (1,4 Мб) И всякое по мелочи из категории "- java-игры -" на этой страничке: http://rilarhiv.ru/mobileil.htm

Flashback: Евгений пишет: Посмотри игры Горафа на твии: http://pavlenko.biz/ Кто общается с ним, скажите ему, что у него на сайте ссылка битая на игру 1812.

Буяльский Владислав: Всем привет! Хотелось бы узнать, может возможно ли добавить к проигрывателю квестов AKURQ 1.28.pre3 Переход по клавише таб в окно описания локации? Там можно перемещаься только между окном кнопок и окном инвентаря, а вот окно описания локации пропускается. Просто при работе в windows 7 скрин-ридер не успевает прочитать описание локации, а сразу начинает читать кнопки. Это очень неудобно при создании нового квеста, непонятно, допущены ли ошибки, и нормально ли вообще выполняется квест. Спасибо.

Серый Волк: Привет, Владислав! Разработка и поддержка программы Акурка прекращена лет пять назад. Мы спросим у автора программы, но надежд на какие-либо доработки практически нет.

Grouent Vaey: Добрый день, друзья помогите завершить квест! Суть проблемы: xml, нужно закончить оформление. Квест очень простой, в смысле это просто интерактивная книга с минимумом взаимодействий, главное требование к оформлению конечно читабельность. Я могу кое-как настроить параметры шрифта и цвета, непосредственно через файл квеста, но этого мало, нужно еще увеличить расширение (что я могу) и собственно - переключиться в полноэкранный режим (что сделано). Что нужно сделать: оформить текст через .xml подключить сторонний шрифт (ttf) у меня пока что по умолчанию Georgia (его и нужно подключить, или Palatino Linotype, Constantia, Cambria, Century) - для всего текста; 2) увеличить межстрочные интервалы (если возможно) хотя бы до 1,5 пункта; 3) фон будет светлым, потому цвет шрифта должен быть черным; 4) (не для xml, хотя если это можно сделать через него - отлично) выровнять изображения по центру. Как я вижу результат: светлый фон, полноэкранный режим, альтернативная заставка, темный шрифт в блоке по центру (отступы порядочные), межстрочный интервал около 1,5 пункта, изображения (по одному широкому на локацию в "шапке") посередине, кнопки если и оформлены графически - то минимально, что-то вроде круглых скобок в которые заключена ссылка, инвентарь подойдет стандартный, только инвертировать цвета, музыка на фоне, изменяется при переходе на определенные локации, и если возможно - оформить ссылку как гиперссылку с переходом на сайт квеста. Собственно, всё. Еще не подключал музыку, надеюсь с ней проблем не возникнет. В идеале еще бы кнопки изменить, и начать хотя бы с того что - убрать стандартное оформление, т.е. сделать их просто в виде текста. Инвентарь в принципе не нужен, манипуляций с вещами нет, хотя сами вещи играют некоторую роль в игре. В общем, если будут идеи как оформить инвентарь - говорите. Если есть какие советы по оформлению - рад выслушать. Изображения я подключаю через файл квеста, и руководства мне не помогли чтобы хоть как-то выровнять их, как я понимаю нужно оформлять через декораторы, но не знаю. Заранее спасибо! Всех кто поможет - запишу под "благодарности" в титры :) P.S. Есть еще проблемка, заметил при отладке, суть в выводе случайного числа. В общем - игрок переходит на локацию где кроме стандартного текста есть такой код: runaway_pass=rnd rnd#*10$ if runaway_pass > 8 then btn forecourt, Бежать на втором дыхании! if runaway_pass 8 < then btn f_runaway_pass, Бежать пока есть силы! Отладчик пишет "Ожидается константа или переменная". Т.е. мне нужно чтобы с вероятностью 20% - игрок получил ссылку "1", и соответственно с вероятностью 80% - ссылку "2".

vito: Grouent Vaey пишет: Есть еще проблемка, заметил при отладке, суть в выводе случайного числа. В общем - игрок переходит на локацию где кроме стандартного текста есть такой код: runaway_pass=rnd rnd#*10$ if runaway_pass > 8 then btn forecourt, Бежать на втором дыхании! if runaway_pass 8 < then btn f_runaway_pass, Бежать пока есть силы! Отладчик пишет "Ожидается константа или переменная". Т.е. мне нужно чтобы с вероятностью 20% - игрок получил ссылку "1", и соответственно с вероятностью 80% - ссылку "2". Кажется, должно выглядеть так: [pre2] runaway_pass=rnd10 if runaway_pass > 8 then btn forecourt, Бежать на втором дыхании! if runaway_pass < 8 then btn f_runaway_pass, Бежать пока есть силы! [/pre2] Красным выделены отличия от оригинального текста

Grouent Vaey: Спасибо vito! Отладчик молчит, надеюсь всё работает. В общем, я почти со скином разобрался, остались детали, которые думаю и сам доделаю.

Grouent Vaey: Буду признателен если подправите код вставки музыки. В вики говорится что треки могут сменятся с плавным переходом - это то что нужно. Т.е. - есть локация где играет музыка через такой вот код: music nature_theme.mp3 fademusic=125, 200 Насколько я могу слышать - громкость не максимальная, что значит что 2-ая строка - работает (макс. 255) но это особого значения не имеет, громкость можно установить как я понял и через другое условие. Загвоздка вот в чем: при переходе не след. локацию - меняется музыка, и переход этот нужно сделать плавным, в вики сказано следующее: music <имя файла>|stop[, <время в миллисекундах>] Тут я не могу понять что значит вертикальная линия и запятая внутри квадр. скобок? Как правильно оформить эту строку чтобы при переходе на локацию с ней - новая музыка воспроизводилась с возрастающей громкостью, а та что была до нее - соотвественно затухала? Я пробовал по всякому, с запятой и без, без пробелов после расширения муз. файла и с пробелом, с верт. линией и без :) ничего не работает.

Steks: Собственно: Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости. Вертикальная черта означает "или". То есть или пишешь имя файла, или ключевое слово "stop". В квадратных скобках написано то, что писать не обязательно. В твоем случае при переходе на новую локацию, где должна начать играть новая музыка, стоит написать например: [pre2]music sample.mp3, 1000[/pre2] Что будет означать воспроизвести файл sample.mp3 вместо текущего. При этом воспроизведение начать с громкости ноль, и поднять громкость до максимума в течение 1000 миллисекунд. Предыдущая композиция будет в это время плавно затухать.

Grouent Vaey: Спасибо Steks, это как раз то - что нужно, всё работает. Квест почти готов, осталось его скомпилировать в ехе, только я не совсем понимаю как это сделать, смсквест не умеет.

vito: Grouent Vaey пишет: Спасибо Steks, это как раз то - что нужно, всё работает. Квест почти готов, осталось его скомпилировать в ехе, только я не совсем понимаю как это сделать, смсквест не умеет. В дистрибутив Фурки входит утилита qsz2exe. Лежит в том каталоге, в который инсталлятор устанавливает Фурку.

Grouent Vaey: Спасибо, я видел, только при ее запуске - появляется на секунду окошко и всё... т.е. нужно либо в ехе либо в qsz как я понял - это архив - запаковать просто

Grouent Vaey: всё, разобрался - просто надо было запаковать в зип-архив и переименовать в qsz. Было бы прекрасно, если бы нашелся человек или даже два - готовых потестить квест.

Eddie: Grouent Vaey пишет: Было бы прекрасно, если бы нашелся человек или даже два - готовых потестить квест. Ну... я могу. ) Если моя кандидатура подходит на роль тестировщика.

Grouent Vaey: Eddie спасибо, проверь ЛС я написал, единственно - адрес на квест будет другой, вышлю чуть позже.

Prime: Вот у меня тоже возник вопрос по поводу компиляции игры под фурку в exe. Короче говоря ничего не выходит. Делаю я всё так: 1. Запаковываю файл с кодом игры (.qst) в обычный zip, туда же кладу папку со звуками. 2. Помещаю этот архив в папку с Фуркой. 3. Изменяю расширение с .zip на .qsz. 4. Запускаю файл qsz2exe.exe. При этом на мгновение появляется какое-то окно, а затем оно пропадает и я оказываюсь опять в папке с дистрибутивом фурки. Вот только архив с игрой как был qsz так и остался, т.е. в экзешник даже не подумал переделаться. И нового файла с расширением .exe в папке тоже не появилось. Кстати, если что, у меня стоит 64-битная семёрка. Может под этой ОС фурка работает не очень стабильно? Буду очень признателен тому, кто сможет прояснить для меня эту проблему.

vito: Prime пишет: 4. Запускаю файл qsz2exe.exe. При этом на мгновение появляется какое-то окно, а затем оно пропадает и я оказываюсь опять в папке с дистрибутивом фурки. Вот только архив с игрой как был qsz так и остался, т.е. в экзешник даже не подумал переделаться. И нового файла с расширением .exe в папке тоже не появилось. Формат вызова утилиты qsz2exe: qsz2exe <имя файла игры> Надо бы запустить сеанс DOS (или как там командная строка в семерке называется), перейти в папку с игрой и уже после этого запускать qsz2exe...

Prime: А через батник это можно сделать?

vito: Prime пишет: А через батник это можно сделать? Да, конечно. В батнике прописать текст qsz2exe <имя файла игры>

Windwalker: Все никак не могу решить проблему с дробными числами. Как мне советовали пробовал через fp_prec,но к моему удивлению сия переменная отвечает лишь за вывод чисел на экран,переменные остаются с дробными значениями.Это играет роль когда ставишь fp_prec опять отличной от нуля. Есть ли другой способ привести дробные значения к целым числам? Пишу довольно сложную в исполнении рпг... P.S.Пока ждал ответ,сам разобрался,сорри.

Ajenta: Хорошо, что разобрался. Рпг это круто. Уважаю :)

Steks: Я извращался вот так: :floor ;Parameters floor_value = floor_1 ;Process decoradd dummy (0, 0, 0) IMAGE SOURCE_BULLET decorscr dummy "col 0, 0, 0, #floor_value$, 0" result = decor_dummy_color end

noname: я написал мини-игру, но, по некоторым, имеющим быть на моей стороне обстоятельствам, не сумел выложить её на плут сейчас. итак, представляю вам свою игру: название: предопределённость и свобода: три ответа автор: noname игра на gfile.ru (откуда вскоре будет автоматически удалена): http://gfile.ru/a44yK

Серый Волк: noname пишет: откуда вскоре будет автоматически удалена А мы её возьмём и спасём: http://urq.plut.info/node/975 noname пишет: по некоторым, имеющим быть на моей стороне обстоятельствам, не сумел выложить её на плут Если проблема в забытом пароле - сигналь в личку, решим.

SVD: Здравствуйте. Попытался написать игру. Хочется выложить на сайт и узнать мнение о ней... Никак не пойму - это возможно сделать???? КАК?

vito: SVD пишет: Хочется выложить на сайт и узнать мнение о ней... Никак не пойму - это возможно сделать???? КАК? На сайте http://urq.plut.info слева, в разделе "Вход для пользователей" выбрать ссылку "Создать новую учетную запись", после чего следовать подсказкам системы. После создания учетной записи Вы, по идее, сможете добавить новый материал про свою игру. (Регистрация на сайте отличается от регистрации на форуме). Если возникнут проблемы с регистрацией, продолжайте постить в этой теме - Вам помогут.

Серый Волк: Привет, SVD. Всё, как vito сказала - для того, чтобы выложить игру на сайт нужно быть на нём зарегистрированным. После того, как зарегистрируешься и зайдёшь на сайт под учётной записью, в верхнем левом углу появится менюшка. Последовательность действий такая: "Создать материал" --> "Игра", дальше заполняются поля о названии, авторе, жанре, даётся описание игры, прикрепляется сам файл. После заполнения этой формы жмём "Отправить" и ждём, когда игру вытащат из модерации (это не долго).

Saint: Серый Волк пишет: это не долго Когда как... Иногда целых шесть, или даже семь, часов приходится ждать!!!

Иоанн: Замечал игры, где в FireURQ совершенно другой интерфейс и кнопки расположены по другому) Как это заменить? Просто в описании изменения скина FireURQ самому - не нашел это) Не подскажете?

Серый Волк: Иоанн, а можно назвать такие игры? Тогда нам будет проще, возможно, в разных играх внешний вид делался по-разному. Например в "Гробах" ( http://urq.plut.info/node/360) для реализации нестандартного отображения текста и кнопок используется оператор textpane_left. Про него написано здесь: http://ifwiki.ru/FireURQ:Особенности_реализации_URQL#.D0.94.D1.80.D1.83.D0.B3.D0.BE.D0.B5 "Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные textpane_left, textpane_top, textpane_width и textpane_height" (с) Если не ошибаюсь, то эту фишку подсмотрел в одной из демок возможностей фурки: 1) http://ifwiki.ru/files/Fireurq_demo.qsz 2) http://ifwiki.ru/files/Decodemo.qsz 3) http://ifwiki.ru/files/Skindemo.qsz

Иоанн: Спасибо. А можно ли менять/окрашивать часть картинки в какой-либо цвет в зависимости от изменения каких либо числовых параметров?

Ajenta: Иоанн Можно. Всё можно. Подготовьте картинки с разным окрашиванием и выводите в зависимости от этих параметров.

Иоанн: Просто например хотелось бы взять карту, а потом в зависимости от числовых данных - окрашивать один из её секторов в, например, красный цвет. Но если заранее раскрашивать картинки и вставлять их в зависимости - то цельной карты не получится. Будут какие-то куски и обрывки...

vito: Иоанн пишет: Просто например хотелось бы взять карту, а потом в зависимости от числовых данных - окрашивать один из её секторов в, например, красный цвет. Но если заранее раскрашивать картинки и вставлять их в зависимости - то цельной карты не получится. Будут какие-то куски и обрывки... Стандартный подход - общая картинка разбивается на мелкие фрагменты, для альтернативно окрашиваемых фрагментов делаются дубли. Вся картинка в целом выводится как набор фрагментов-декораторов (про декораторы см. здесь: http://ifwiki.ru/FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.94.D0.B5.D0.BA.D0.BE.D1.80.D0.B0.D1.82.D0.BE.D1.80.D1.8B), если надо поменять фрагмент картинки - соответствующий фрагмент-декоратор отключается и вместо него выводится дубль. Ключевые факторы успеха - правильный подбор размера картинки под экран и умение считать пиксели декораторов. Займусь саморекламой - пример реализации схожей задачи (правда, более простой) есть в моей игре "ШБ": http://urq.plut.info/shb В файле shb.qst найдите метку :prcInit_Picture для начала, правда, неплохо было бы доиграть хотя бы до эпизода с метанием крысы, чтобы понять, каков результат работы кода.

frodo: В "Памяти Вселенной" (глава 5) я делал так: существует одна большая картинка - план помещений, и один декоратор-прямоугольник полупрозрачного цвета, который окрашивает участок плана в светло-красный цвет и, таким образом, указывает на позицию игрока. Создаются они как-то так: [pre2] ОБЩ_ПЛАН_x = 230 ОБЩ_ПЛАН_y = 50 ОБЩ_ПЛАН_color = 0x80FF0000 ... :host_plan_add if not exist_dec_host_plan then exist_dec_host_plan = 1 _& decoradd dec_host_plan (ОБЩ_ПЛАН_x,ОБЩ_ПЛАН_y, 20) IMAGE image_plan _& decoradd dec_host_pos (ОБЩ_ПЛАН_x,ОБЩ_ПЛАН_y, 10) RECT 1,1,ОБЩ_ПЛАН_color end [/pre2] Обратите внимание: координата "z" у dec_host_pos меньше, то есть этот декоратор будет на переднем плане. В пятой главе имена локаций имеют вид "этаж6_комната5", "этаж7_комната5" или "этаж5_коридор3", и в конце каждой локации вызывается процедура, которая парсит "current_loc" и меняет координаты и размеры декоратора "dec_host_pos". Упрощенно это выглядит так: [pre2] :host_plan_parse ; добавляем к разделителям знак подчеркивания tokens_delim=tokens_delim+"_" tokens current_loc if token2 = "комната1" then x = 180 & y = 160 & w=45 & h = 55 if token2 = "комната2" then x = 140 & y = 180 & w=38 & h = 35 ... ; Перерисовываем указатель с новыми параметрами: if exist_dec_host_plan then _ decordel dec_host_pos _& decoradd dec_host_pos (ОБЩ_ПЛАН_x+x,ОБЩ_ПЛАН_y+y, 10) RECT w,h, ОБЩ_ПЛАН_color end [/pre2] Конечно, Вы можете указывать положение и размер прямоугольника непосредственно из локации и не связываться с оператором tokens - я использовал этот подход только потому, что переделывал кусок старого кода. В самой игре код немного сложнее - кроме создания плана есть еще процедуры для удаления и скрытия, да и для полупрозрачного прямоугольника позиция не всегда четко определена.

Иоанн: Спасибо

Иоанн: А как сделать так, что бы при нажатии на кнопку менялись данные переменных? А то у меня что-то не получается btn <метка>[(param1, param2, ...)], <текст на кнопке>, как по инструкции Например у меня есть 1,Вещь и 1,Предмет. И при нажатии на первую кнопку надо увеличить Вещь на 1, а предмет уменьшить на 1. А если жать на вторую - то соответственно будет наоборот. При этом ты перейдешь на другую локацию. Как это сделать? А то у меня выходит то постоянно плюсовение переменных вне заивимости от нажимания на кнопки, то оно добавляет кусок кода в инвентарь, считая его за новый предмет (например: Вещь,) ) или не показывает кнопку. Заранее благодарю

frodo: Сам пока не проверял но, так как параметры преобразовываются в переменные, имя которых начинается с имени локации, то имя локации следует начинать с буквы, а не цифры. Могу предложить такое: [pre2]:старт btn лок1(1), Вещь btn лок1(-1), Предмет end :лок1 вещь = вещь + лок1_1 предмет = предмет - лок1_1 ... end[/pre2]

Иоанн: Дело такое, что там решаешь вопрос и в зависимости от выбранного варианта - должны изменяться переменные. А с этой локации, где ты выбираешь, ты возвращаешься на предыдущую локацию(основную в этой игре). И да. Можете подробнее разъяснить смысл кода, расписанного вами. Именно во второй его части - когда переходишь на лок1. Что оно делает? лок1_1 например что такое?

fireton: Иоанн, вам надо внимательно почитать документацию на фурку.

frodo: Иоанн, В качестве параметров могут передаваться числа, строки и переменные. В целевой локации они будут доступны как переменные вида <имя локации>_<порядковый номер параметра>. Например, представим такую кнопку: btn location(1, "text", x), Дальше.. Если ее нажать, в локации location будут доступны следующие переменные: location_1 будет равна 1 (первый параметр); location_2 будет равна "text" (второй параметр); location_3 будет равна переменной x. Возвращаясь к нашему примеру. Если пользователь нажал кнопку "Вещь", первым параметром (лок1_1) передается 1. Это эквивалентно следующему: [pre2] вещь = вещь + 1 предмет = предмет - 1 [/pre2] Если пользователь нажал кнопку "Предмет", лок1_1 будет равна -1. Т.е. сложение заменяется вычитанием и наоборот (минус на минус дает плюс) [pre2] вещь = вещь + (-1) предмет = предмет - (-1) [/pre2]

Иоанн: Спасибо большое)

Иоанн: А если я например хочу так: !.Основная локация. Жмем кнопку и переходим к Событию. Затем: !!.Событие. Три варианта ответа, изменяющие переменные, но все три кнопки ведут назад в Основную локацию, лишь меняя переменные. А учитывая, что события будут разные... и переменных, при нажатии, меняется за раз больше чем 5 штук... То вот тем же путем получится это реализовать?

vito: Иоанн пишет: А если я например хочу так: !.Основная локация. Жмем кнопку и переходим к Событию. Затем: !!.Событие. Три варианта ответа, изменяющие переменные, но все три кнопки ведут назад в Основную локацию, лишь меняя переменные. А учитывая, что события будут разные... и переменных, при нажатии, меняется за раз больше чем 5 штук... То вот тем же путем получится это реализовать? А зачем возвращаться из события сразу в основную локацию? Почему не сделать, скажем, так: [pre2] :основная_локация btn событие, кнопка end :событие btn пер(1, 2, 3, 4, 5), вариант1 btn пер(6, 7, 8, 9, 10), вариант2 btn пер(11, 12, 13, 14, 15), вариант2 end :пер переменная1=пер_1 переменная2=пер_2 переменная3=пер_3 переменная4=пер_4 переменная5=пер_5 goto основная_локация end [/pre2]

frodo: Иоанн, передача параметров в кнопках хорошо работает, если, в целом, должен получиться один и тот же результат, но параметризованный. Если же результат для каждой кнопки свой, то и вести они должны на разные локации. Пример параметризации: [pre2]:старт btn локация("кошка", "мяукает", "Мяу!"), Погладить кошку. btn локация("собака", "лает", "Гав!"), Погладить собаку. btn локация("рыбка", "разговаривает", "Бульк!"), Погладить рыбку. end :локация животное = локация_1 действие = локация_2 звук = локация_3 pln - А как эта #%животное$ #%действие$? pln - Эта #%животное$ говорит "#%звук$" end[/pre2] Разные действия предполагают разные решения: [pre2]:интро pln Нужно получить 4 литра. :результат pln В 5-литровой банке #банка5$ литров. pln В 3-литровой банке #банка3$ литра. if банка5 = 4 then pln Победа! & end btn перелить_3_5, Перелить из 3-литровой банки в 5-литровую. btn перелить_5_3, Перелить из 5-литровой банки в 3-литровую. btn наполнить("банка5", 5), Наполнить 5-литровую. btn наполнить("банка3", 3), Наполнить 3-литровую. btn опорожнить("банка5"), Опорожнить 5-литровую. btn опорожнить("банка3"), Опорожнить 3-литровую. end :опорожнить #%опорожнить_1$ = 0 goto результат :наполнить #%наполнить_1$ = наполнить_2 goto результат :перелить_3_5 delta = 5 - банка5 if delta > банка3 then delta = банка3 банка5 = банка5 + delta банка3 = банка3 - delta goto результат :перелить_5_3 delta = 3 - банка3 if delta > банка5 then delta = банка5 банка3 = банка3 + delta банка5 = банка5 - delta goto результат[/pre2] (Внимательный программист заметил бы, что перелить_3_5 и перелить_5_3 тоже можно параметризовать и свести к одной локации, но для примера оставим. Если кому интересно, улучшенный вариант загадки здесь)

Kalten: Приветствую! Такая ситуация: Имеется два случайных числа M =RND15 и N =RND15 Как можно сделать так, чтобы если M больше N, то выполнялся б один код, а если наоборот N больше M, то иной? p.s. это все касаемо платформы AKURQ1.28pre6. Буду очень признателен за ответ!

Ajenta: Kalten пишет: Приветствую! Такая ситуация: Имеется два случайных числа M =RND15 и N =RND15 Как можно сделать так, чтобы если M больше N, то выполнялся б один код, а если наоборот N больше M, то иной? p.s. это все касаемо платформы AKURQ1.28pre6. Буду очень признателен за ответ! На любой платформе я так понимаю будет следующее if M > N then p Код который будет else p Другой код причём код внутри ифа следует писать через & например (как я обычно делаю): if M > N then _ p Код который будет & _ p Ещё какой-то код else _ p Другой код

Kalten: Благодарю, Ajenta! Не знал, что знаки < > работают в урке так, как положено. Подскажите, а такой код будет верен, или?... If M < or = N then GoTo код1 Else код2

Ajenta: Kalten пишет: Благодарю, Ajenta! Не знал, что знаки < > работают в урке так, как положено. Подскажите, а такой код будет верен, или?... If M < or = N then GoTo код1 Else код2 Нет не будет так нельзя писать, посмотрите справку если что, возможны <, >, <> - это не равно, =, <=, >= ну и между ними or и and в вашем же случае надо писать через then else. Подругому никак.

Kalten: Написал примерно вот так: :1 M =rnd3 N =RND3 If #N$ = #M$ then goto x If #n$ < #M$ then goto x Else Pln Нет нет нет!!! BTN 1,еще разок End Вроде работает,но не уверен,что это действительно верно, а точнее правильно. Кстати,подскажите пожалуйста, возможна ли дешифровка файлов qs2, qs3? Т.е. Что это теоретически возможно- это понятно. Но есть ли утилиты, или какие либо редакторы для таких файлов?

Ajenta: Kalten пишет: Написал примерно вот так: :1 M =rnd3 N =RND3 If #N$ = #M$ then goto x If #n$ < #M$ then goto x Else Pln Нет нет нет!!! BTN 1,еще разок End Вроде работает,но не уверен,что это действительно верно, а точнее правильно. Кстати,подскажите пожалуйста, возможна ли дешифровка файлов qs2, qs3? Т.е. Что это теоретически возможно- это понятно. Но есть ли утилиты, или какие либо редакторы для таких файлов? В урке нельзя просто так переносить на другую строку переменные и действия. Так работать не будет if then else должны быть на одной строке. Или же перед оператором должен быть знак подчёркивания. Или так: :1 M =rnd3 N =RND3 If #N$ = #M$ then goto x If #n$ < #M$ then goto x Else Pln Нет нет нет!!! BTN 1,еще разок End или так: :1 M =rnd3 N =RND3 If #N$ = #M$ then goto x If #n$ < #M$ then goto x _ Else _ Pln Нет нет нет!!! BTN 1,еще разок End В вашем же варианте else просто не сработает. И ещё, не нужно переменные "открывать". Достаточно сравнения как в любом языке. Я бы написала так. чтобы можно было ещё и проверить результат. :1 M =rnd3 N =rnd3 pln N = #N$ pln M = #M$ if N = M then goto x if N < M then goto x _ else _ pln Нет нет нет!!! btn 1,еще разок End

Kalten: Приветствую! Agenta, Спасибо за помощь! Вот,что не ясно: Agenta Писала: * В урке нельзя просто так переносить на другую строку переменные и действия. Так работать не будет if then else должны быть на одной строке. Или же перед оператором должен быть знак подчёркивания. * Может этого нельзя делать в FireURQ? Т.к. в AKURQ1.28pre6 такой вот код работает, да и другие: :1 M =rnd3 N =rnd3 pln N = #N$ pln M = #M$ if N = M then goto x if N < M then goto x else pln Нет нет нет!!! btn 1,еще разок End

Kalten: Приветствую! Такая ситуация: имеется некое кол-во предметов,"к примеру 10", из которых можно взять только не больше 5-ти. Подскажите,пожалуйста,как такое можно сделать? Т.е. чтобы стояло ограничение на 5 предметов? "список предметов планирую выводить через btn с использованием конструкции IF Then, чтобы как только предмет взял,то тот появлялся в инвентаре,а из списка исчезал. Это, думаю, реализую,а вот ограничение как поставить,не знаю.

vito: Kalten пишет: Приветствую! Такая ситуация: имеется некое кол-во предметов,"к примеру 10", из которых можно взять только не больше 5-ти. Вы не написали, имеются в виду однотипные предметы или разные. Для однотипных существует системная переменная inv_<Название предмета>. Скажем, если в игре имеется куча кирпичей, из которых можно взять не более пяти, можно сделать проверку так: [pre2]:Локация pln Ты стоишь у кучи кирпичей. btn Взять_кирпич, Взять кирпич end :Взять_кирпич if inv_Кирпич>=5 then pln Ты понимаешь, что больше пяти кирпичей тебе не унести. else inv+ Кирпич & pln Ты берешь кирпич из кучи. goto Локация end[/pre2] Если предметы разнородные, я бы ввела некую переменную, которая отслеживала бы количество предметов в инвентаре. При этом надо будет вручную увеличивать ее каждый раз, когда берется очередной предмет, и уменьшать, когда игрок избавляется от предмета. Например: [pre2]Количество_предметов=0 :Локация pln Ты стоишь у кучи игрушек. btn Взять_куклу, Взять куклу btn Взять_мишку, Взять мишку btn Взять_машинку, Взять машинку // и т. д. end :Взять_куклу if Количество_предметов<5 then inv+ Кукла & Количество_предметов=Количество_предметов+1 & pln Ты берешь куклу. else pln Ты не сможешь унести в руках столько игрушек. end :Взять_мишку if Количество_предметов<5 then inv+ Мишка & Количество_предметов=Количество_предметов+1 & pln Ты берешь мишку. else pln Ты не сможешь унести в руках столько игрушек. end :Взять_машинку if Количество_предметов<5 then inv+ Машинка & Количество_предметов=Количество_предметов+1 & pln Ты берешь машинку. else pln Ты не сможешь унести в руках столько игрушек. end [/pre2]

Kalten: Приветствую! Спасибо, Vito! Есть еще один вопрос: в первой локации введена переменная с определенным числом. По ходу игры эта переменная меняет свое значение. Так вот, можно ли сделать как-то так,чтобы при нулевом значении переменной происходило то или иное событие? Имею ввиду,можно ли сделать так, чтобы в одном месте сделать примерно так: If V1 < 1 Then GoTo Exit и не повторять этот код во всех локациях,где значение V1 меняется?

vito: Из "Описания URQL", имеющегося на сайте: Подробнее о Common метках: Часто необходимо выполнять некую общую последовательность действий для всех локаций... Именно для этого есть :Common метка - при вызове btn метка,Название метки на самом делается следующее: proc Common & GoTo метка к примеру, то есть вызывается Common и при встрече end идет выход из процедуры и только после этого уже переход на требуемую метку. Но ведь для разных частей квеста порой требуется разные Common локации, поэтому системная числовая переменная Common отвечает за имя вызываемой локации: :Common_номер к примеру при Common=5 будет вызов :Common_5. Никаких ограничений по номерам (подряд или нет) не накладывается, для простоты рекомендуется использовать только целые числа. Если Common=-5, то вызов будет соотвественно :Common_-5. Можно также обойтись и без использования локации Common вообще, например в КАЖДОЙ локации писать proc CommonLoc_#CommonLoc_N$, при этом будет происходить подобный же механизм(только имя Common локации будет :CommonLoc). Использование локации common сильно упрощает написание квестов, в которых надо вести учет ходов игрока (например, для введения игрового времени, голода, запаса энергии в лампе и т.п.)

EudGenius: Я решил начать вовсю использовать use-метки для предметов.Но вот незадача - когда я дошел до "плохого" предмета(типа отравленного печенья и т.д.) я застрял - goto, btn и прочие команды работают, но после использования предмета меня отправляет на ту локацию, где я до этого был(а там и описание локации, и кнопки разные), то есть игрок при "смерти" вполне может нажать одну из этих кнопок и спокойно продолжить игру.Что мне делать? :( Как-то так: :место inv+ Отрава btn вернуться, Вернуться. end :use_отрава_Выпить pln ТЫ отравился и сдох. goto конец end ; Ну или вместо "гото" кнопка какая-то...Короче, убить игрока не получается.

Ajenta: Юзай команду cls - это очистка экрана, тогда гг сдохнет, как ты хочешь :) типа такого например :место inv+ Отрава btn вернуться, Вернуться. end :use_отрава_Выпить cls pln ТЫ отравился и сдох. goto конец end

EudGenius: Ajenta Я так пробовал. Для полной картины сойдет отакой код: :место pln Бла-бла-бла. inv+ Отрава btn вернуться, Вернуться. end :use_отрава_Выпить cls pln ТЫ отравился и сдох. goto конец end :Вернуться pln Бла-бла-бла В конце злобный неуязвимый персонаж вполне может нажать на кнопку "Вернуться". Его хоть за стопицот локаций переноси, а старые кнопки останутся.

Korwin: EudGenius пишет: Ajenta Я так пробовал. На какой версии программы Вы работаете? У меня Ваш пример работает как надо. clsb попробуйте?

EudGenius: Korwin пишу под досурку.Обе версии.

EudGenius: clsb вместо cls ничего не дает :/ Даже не чистит экран.

Korwin: EudGenius пишет: Korwin пишу под досурку.Обе версии. Несколько странный выбор, при всей моей ностальгической любви к досурке. FireURQ - отличный современный интерпретатор URQL. Лучший из всех. При этом - с "живым" и очень отзывчивым разработчиком. Но если есть какие-то супер важные причины для использования именно досурки, то было бы логично пользоваться именно моим руководством по ней. http://urq.plut.info/system/files/+URQL.doc А там поискать описание оператора forget_procs - особенного для досурки 12). "proc <метка> "- передает управление на метку <метка>, то есть инструкции квеста выполняются с метки <метка>, но когда встречается "end" возвращает управление обратно, оператору, следующему за proc, при условии, что не было оператора forget_procs. (forget_procs - "забывает" все переходы по процедурам.) :место pln Бла-бла-бла. inv+ Отрава btn вернуться, Вернуться. end :use_отрава_Выпить cls pln ТЫ отравился и сдох. forget_procs goto конец end :Вернуться pln Бла-бла-бла end

EudGenius: Korwin , единственная супер-важная причина использовать именно досурку - олдскульный интерфейс и отсутствие тормозов на любом ПеКа :) (а также нормальное использование ASCII- картинок, в досе любой символ одной ширины). Под Фурку надо много чего переписывать, хотя если бы в ней опционально включался дос-режим, было бы классно.Да и парсер под Фуркой будет выглядеть жутко(я до сих пор хочу сделать пускай и простой, но парсер под урку). *ушел пробовать новый оператор*

EudGenius: И, да, я читал именно это руководство (хотя описания для малышей в нем нет). Как мне убрать надоедливое дальше при выводе кучи pln?

Ajenta: EudGenius пишет: Korwin , единственная супер-важная причина использовать именно досурку - олдскульный интерфейс и отсутствие тормозов на любом ПеКа :) (а также нормальное использование ASCII- картинок, в досе любой символ одной ширины). Под Фурку надо много чего переписывать, хотя если бы в ней опционально включался дос-режим, было бы классно.Да и парсер под Фуркой будет выглядеть жутко(я до сих пор хочу сделать пускай и простой, но парсер под урку). *ушел пробовать новый оператор* В фурке можно использовать моноширинный шрифт. Можно изменить интерфейс на досовский и спокойно делать всё, что нравится. Ни на одном компе она ещё не тормозила. А парсер под досурку будет таким же как и под фурку, в этом плане ничего не меняется - это всё одна и та же урка.

EudGenius: В фурке можно использовать моноширинный шрифт. Можно изменить интерфейс на досовский и спокойно делать всё, что нравится. Ни на одном компе она ещё не тормозила. А парсер под досурку будет таким же как и под фурку, в этом плане ничего не меняется - это всё одна и та же урка. *Ушел искать клевые досовские фичи в фурке*

Korwin: EudGenius пишет: Да и парсер под Фуркой будет выглядеть жутко(я до сих пор хочу сделать пускай и простой, но парсер под урку). В FireURQ есть просто чудесные операторы для организации парсера... хотя на самом деле парсер на URQ

TarnumMC: Знатоки, скажите пожалуйста команду, при которой при нажатии левой кнопки мыши появляется текст. Примерно так: " <щелк> Привет! <щелк> у меня вопрос <щелк> я уверен мне помогут! <щелк> Спасибо! "

Серый Волк: TarnumMC, для этого используется оператор anykey. Пример: :1 pln Привет! anykey pln У меня ответ. anykey pln Я уверен, тебе поможет. anykey pln Пожалуйста, приходи ещё! end

TarnumMC: Серый Волк, спасибо тебе огромное!

TarnumMC: И снова здравствуйте! Решил изменить скин, но не могу найти файл skin.xml А еще у меня не было руководства пользователя (в виде справочника). А еще я хочу заменить "Инвентарь" на "Трюм" где можно найти изображение кнопки?

Ajenta: Файл скина создаётся самостоятельно исходя из описания - http://ifwiki.ru/FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B Кнопку нужно рисовать самому и прописывать в скине, опять же по мануалу.

777: зареестрируй для меня пользователя на сайте http://urq.plut.info/ у меня не получается!!!

Серый Волк: 777 пишет: зареестрируй для меня пользователя на сайте http://urq.plut.info/ у меня не получается!!! 777, сбрось мне в личные сообщения (Кнопочка "Л.С" под этим сообщением, между кнопками "Профиль" и "Цитата") имя/ник, под которым хочешь зарегистрироваться на сайте, и адрес своей электронной почты.

Iunel: У меня есть одна идея по поводу Таймера в игре, создал отдельную тему. Знатоки, посмотрите, как вам. Я бы сюда написал, но флудить не стану. http://urq.borda.ru/?1-0-0-00000490-000-0-0-1434062706

ottoBTW: Доброго времени, видел в документации возможность разбиения на несколько файлов qst. Как это реализуется? И как этим воспользоваться в плане синтаксиса?

Ajenta: Это позволяет сделать команда %include includes\forest.qst В данном случае это означает, что в папке includes (имя ставьте своё) у меня лежит forest.qst файл с локациями. Он подключается с помощью %include к основному файлу игры. Писать команду нужно в первой локации игры.

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

vito: ottoBTW пишет: Вопрос вот в чем, можно ли сохранить название локации в переменной и можно ли потом эту переменную подставить в баттон, что бы она считывала название локации из переменной? Цитата из документации: "current_loc и previous_loc (строковые системные переменные) хранят имена соответственно текущей и предыдущей посещенной локаций. " В кнопку подставляется через #%$.

Kalten: Приветствую! Вопрос интересует по AkURQ. В одной локации в комнату забирается вор и крадёт пару предметов. Любых. Только ограничение- украсть он должен что-то из заклинаний, драгоценных камней. Может кто подскажет, как такое реализовать?! Мне ничего дельного в голову не приходит. Благодарю!

Серый Волк: Привет, Kalten. А как именно это событие будет отображаться в игровом мире? - мы заходим в комнату, а в ней не хватает каких-то двух предметов? (например, мы раньше заходили в эту комнату и там был Сапфир Желаний и Изумруд Знания, а потом мы заходим ещё раз - а этих предметов там уже нет, потому что их похитил вор) - мы играем за самого вора, заходим в комнату и крадём два случайных предмета? (мы тыкаем в кнопку "Красть" и забираем два рандомных предмета? Или мы можем украсть предметы по своему выбору, но не любые, а только драгоценности?) - или как-то по-другому? Как там всё это происходит с точки зрения игрока? Пока не особо понятно, что и для чего ты хочешь сделать, расскажи подробнее.

Kalten: Герой ночует в гостинице. Ночью он спугивает вора, но поутру, проснувшись, обнаруживает, что у него нет двух предметов...

Kalten: Мне на ум приходит только реализация через перечисления камней и заклинаний. К примеру так: dfg=0 :1 If Алмаз and dfg < 2 Then dfg =dfg +1 & Inv- Алмаз If Бриллиант and dfg < 2 Then dfg =dfg +1 & Inv- Бриллиант If Изумруд and dfg < 2 Then dfg =dfg +1 & Inv- Изумруд If Рубин and dfg < 2 Then dfg =dfg +1 & Inv - Рубин If Сапфир and dfg < 2 Then dfg =dfg +1 & Inv- Сапфир If dfg=2 then PLN ты видишь, что у тебя украли две вещи. End Но такой метод, наверное, не аптимален, хоть и работает.

Kalten: Приветствую! Подскажите, можно ли в действии с предметом, к примеру: :Use_Заклинание-огня_Применить, прописать локации, в которых данное действие будет недоступно? Понимаю, что это возможно, но сообразить не могу. На ум приходит только такая конструкция: :1 (та локация, в которой применить заклинание нельзя) Hide_Use_Заклинание-огня=1 Тут содержимое локации XBTN 2, Hide_Use_Заклинание-огня=0,Далее End p.s. А можно ли имя локации использовать, как условие в конструкции if then else? Я пытался, не получилось... Но может просто, что-то делал не так... Благодарю!

vito: Ваш вариант вполне имеет право на жизнь. Можно еще в самой процедуре Use_Заклинание-огня_Применить проверять текущую локацию и, если это действие запрещено, выдавать соответствующее сообщение, например (синтаксис может быть не совсем точен - в документацию лезть сейчас нет времени): :Use_Заклинание-огня_Применить if currentloc="Лес" then pln Только лесного пожара тебе и не хватало для полного счастья! & end ; Штатное применение заклинания огня end

liontka4: Здравствуйте! У меня вопрос: как сделать через фурку 2.0 стэндэлон, там нет такой кнопки?.. И ещё, про регистрацию на сайте: у меня вместо возможности поменять пароль список ошибок: в чём дело, в браузере? liontka4

Kalten: Vito, а работает ли current_loc на akurq1.28? Попробовал использовать её, но не получается. Может что-то делаю не так? Пробовал такой пример: :Use_Заклинание-огня_Применить If current_loc=лес Then pln нельзя поджигать лес! else Goto огонь end Если имя локации брать в кавычки, то акурка виснет и приходится грохать процесс. Спасибо!

vito: liontka4 пишет: Здравствуйте! У меня вопрос: как сделать через фурку 2.0 стэндэлон, там нет такой кнопки?.. Пакуете файл игры (со всеми мультимедийными файлами) в ZIP-архив (например, при помощи архиватора WinZip). Меняете расширение с zip на qsz. Применяете к файлу утилиту qsz2exe (после установки FireURQ лежит в том же каталоге, что и исполняемый файл FireURQ).

vito: Kalten пишет: а работает ли current_loc на akurq1.28? Лично я с Акуркой никогда не работала. Попробуйте посмотреть справку по AkURQ от Корвина (можно посмотреть здесь: http://urq.plut.info/soft ).

Kalten: Vito справкой этой пользуюсь. Там написано следующее: *** current_loc и previous_loc (строковые системные переменные) хранят имена соответственно текущей и предыдущей посещенной локаций. previous_loc удобно использовать для сохранения игры из любой локации при помощи действия типа use_inv_Запись. Для первой локации previous_loc равна ее имени (чтобы сохранение работало и для нее). current_loc и previous_loc теперь меняются только при btn-переходах. Location = имя текущей локации, работает везде, вне зависимости от того, каким образом осуществлен переход в текущую локацию (через proc, goto, btn и т.д.) *** Пробовал и location использовать, но, видимо, всё же где-то допускаю ошибку.

vito: Kalten пишет: Пробовал и location использовать, но, видимо, всё же где-то допускаю ошибку. AkURQ еще славится своей глючностью, вполне может быть, что какая-то фича не пашет.

Kalten: Не стал заморачиваться с location и т.д. сделал, как обычно, используя переменную... Что получилось, и получилось ли, можно увидеть по ссылке: http://urq.plut.info/node/1520

n27i: Здраствуйте, вопрос: Как сменить имя учетной записи?

Серый Волк: n27i, как оказалось, этого сделать нельзя. Зарегистрированное имя участника на форумах Borda.ru редактировать невозможно, поэтому нужно заранее продумать желаемое имя. (с) из инструкций пользователя форума

qwerty: Такой вопрос: Как вывести символ, по его коду? Мне это нужно для вывода символа с кодом 059 ;

vito: qwerty пишет: Как вывести символ, по его коду? Мне это нужно для вывода символа с кодом 059 ; ##59$ И не забываем читать описание URQL от Корвина.

qwerty: Пользуюсь версией FireURQ 1.8.1 ВОПРОС: как создать экзешник игры, использующей картинки? То есть, у меня в папке с игрой лежит и сам файл.qst(один) и картинки.jpg Как это всё собрать в один файл.qsz ?

Cheshire: Но ведь... это... написано в справке... [url=http://ifwiki.ru/FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.A4.D0.BE.D1.80.D0.BC.D0.B0.D1.82_.D0.BA.D0.B2.D0.B5.D1.81.D1.82.D0.BE.D0.B2_QSZ]click here[/url]

Евгений: http://tinyurl.com/qstqsz

qwerty: Спасибо! Тогда такой вопрос: как сделать файл.qs2? Это, как я понимаю, файлы, запакованные с паролем(или нет?) Например, игра uux-а Телепорт, выложена здесь именно в виде qs2. Вообще, ВОПРОС на самом деле, о том, можно ли эффективно защитить исходники игры от просмотра? Дело в том, что я собираюсь опубликовать исходники своей игры, посланной на КРИЛ, позже.. а до того времени, хотелось бы, чтобы их было не слишком легко подсмотреть. === И это.. нельзя ли что-нить сделать с сообщением Чешира? Оно же ужас что делает со страницей.

uux: qwerty пишет: Тогда такой вопрос: как сделать файл.qs2? Это, как я понимаю, файлы, запакованные с паролем(или нет?) Например, игра uux-а Телепорт, выложена здесь именно в виде qs2. Вообще, ВОПРОС на самом деле, о том, можно ли эффективно защитить исходники игры от просмотра? Дело в том, что я собираюсь опубликовать исходники своей игры, посланной на КРИЛ, позже.. а до того времени, хотелось бы, чтобы их было не слишком легко подсмотреть. Qwerty, ничего лучшего со времени Досурки на этот счет не придумали: существует утилита urq_code. В состав дистриба FireURQ она не входит, но, возможно, если попинать очень-очень вежливо попросить Файера (в т. ч. в Фурковском багтрекере), он что-нибудь изобретет. Пока же urq_code, кажется, можно скачать в составе Досурки (если я ошибаюсь и ее там нет, можешь обратиться напрямую - вышлю на электронную почту экзешник, хранящийся у меня с давних времен). Если интересно, можешь почитать о проблемах взаимодействия данной утилиты с современными ОС (как минимум начиная с Windows 7) в последнем сообщении этой ветки Прости, но точных рецептов, как заставить urq_code работать под 64-битной+ ОС, у меня не осталось. Дома у меня Windows Vista, где все программы такого рода более-менее пашут, хотя и никуда при этом не торопятся:). Относительно надежности подобной шифровки также не могу дать никаких комментариев. Лучше не поленись, зарегься на канале и напрямую спроси об этом у Евга (помнится, в былинные стародавние времена шифровка не мешала ГКЙ-аксакалам лазить в исходный код; с другой стороны, тогда и Вик был еще активным членом сообщества).

ayot: Привет! у меня проблема с установкой УРКи, и с сайтом urq.plut.info, почему когда я пытаюсь скачать УРКу со страницы загрузки программ - Chrome блокирует вот таким образом: ( https://drp.io/i/Nk_fAafUM ) А саму программу блокируют антивирусы, при этом на Вирустотале вот такой анализ https://www.virustotal.com/ru/file/a6a25ddddf3be8dd6c253231c7841024514adf1a55370626223f7cd39cc8c1bc/analysis/ с оценкой -35 можно это как-то пофиксить, или там действительно вирусы?

Серый Волк: ayot, это старая, известная проблема проигрывателя FireURQ, причин для волнения нет: http://forum.ifiction.ru/viewtopic.php?id=1326 - тут есть о причинах такого поведения некоторых антивирусников http://bt.fireurq.ru/my_view_page.php - это багтрекер программы с заданием "Нужна облегченая версия фурки, которая не определяется как вирус"

apromix: Вирусов там точно нет Скачивай и устанавливай спокойно. Урка Fireurq завернута Molebox'ом, насколько мне память не изменяет, от этого на нее матерятся антивирусы.

tosha: Ладно бы скачать можно было, но 2 моих браузера блокируют закачку как раз из-за "вирусов" в архиве.

apromix: Скачай Firefox, на время скачивания и установки отключи антивирус. Если ничего не получится, ставь QSP

Cheshire: ayot пишет: Chrome блокирует Have no fear, Cheshire is here! То, что я сейчас покажу, лучше ни с чем кроме фурки не использовать. Да, когда мы пытаемся скачать фурку с ифвики.ру заботливый Хром четырежды (!) запрашивает подтверждение и всячески нам мешает, но того, кто прошёл горнило урки, ничто не может остановить! Итак: Для начала нужно посмотреть поподробнее, что же там такого ужасного написано (подсказка: ничего, просто первая палка в колёса) Первый звоночек прозвучал, а мы бесстрашно переходим на «заражённый сайт» и ожидаем конца закачки Файл скачался, но Хром всё ещё не уверен в нашей безнадёжности Переходим на страницу загрузок и храбро жмём «СОХРАНИТЬ» Хром начинает что-то подозревать, но не оставляет попыток спасти нас от нас же самих. Смеёмся ему в лицо и отважно жмём «Всё равно продолжить» Продолжая смеяться, запускаем, наконец, фурку! И бьёмся головой об стол. КОНЕЦ

apromix: Никто и не спорит - это сложный квест

ayot: да уж, квест действительно сложный))) в общем, спасибо всем за отзыв, я буду ждать когда сделают ( http://bt.fireurq.ru/view.php?id=283 ) новую, пусть и облегченную версию фурки, хотя интересно какого именно функционала в ней не будет.

apromix: Есть же AkURQ

ayot: apromix пишет: Есть же AkURQ Прикольно, как и др. проигрыватели, но они не поддерживают картинки, таблицу стилей, звуки в игре. Онлайн версия тоже не вариант. AkURQ 2 у меня запускается, а др. 1.28 нет.

apromix: К сожалению кроме браузерной урки ничего нового за последнее время не появилось. Попробуй еще модуль для instead.

apromix: О, проверил, не скачивается с этой страницы. Ссылка ведет на гуглкод, который уже прикрыли. Значит просто скачай сам instead и затем установи модуль с помощью лаунчера.

qwerty: Что с иркой? #urq is an invite only channel.

Серый Волк: qwerty пишет: Что с иркой? Боролись с хулиганом, поставили какой-то жутко приватный режим, временная мера.

Vladimir: Два вопроса к fireton-у: в фурке есть "горячие" клавиши, которые "ловит" интерпретатор, например "I" для вывода меню инвентаря, а есть ли системная переменная, которая может хранить в себе (возвращать) код нажатой клавиши? Если есть, то какое имя оно имеет?

Vladimir: Ещё вопрос, так как не нашёл данную тему в документации по FireURQ: каким образом числовую переменную можно преобразовать в символьную (строковую) нужно в проге типа такой: v_num = 2 ; это число, которое нужно преобразовать в строковую переменную v_char_num = #v_num$ ; это сама команда, которую я не нашёл, но может быть такой синтаксис имеется v_mess = "Вы ввели: " + v_char_num ; это сложение двух строк pln #%v_mess$ ; это вывод двух строк end

Korwin: Vladimir, :1 input v_num ; это число, которое нужно преобразовать в строковую переменную pln #v_num$ instr v_char_num=#v_num$ ; это сама команда, которую я не нашёл, но может быть такой синтаксис имеется instr v_mess = Вы ввели##58$ #%v_char_num$ ; это сложение двух строк pln #%v_mess$ ; это вывод двух строк btn 1,Еще end

fireton: Vladimir пишет: каким образом числовую переменную можно преобразовать в символьную (строковую) [pre] x = 2 str = "икс равен #x$" [/pre]

fireton: Vladimir пишет: Два вопроса к fireton-у: в фурке есть "горячие" клавиши, которые "ловит" интерпретатор, например "I" для вывода меню инвентаря, а есть ли системная переменная, которая может хранить в себе (возвращать) код нажатой клавиши? Если есть, то какое имя оно имеет? Нет, нету. Код нажатой клавиши можно получить только по anykey, но он ждёт нажатия. Формат команды anykey: anykey <переменная>, <количество миллисекунд, которые ждать до нажатия клавиши> Один или оба параметра можно опускать. Если указать переменную, то в неё будет записан код клавиши или кнопки мыши. Если указать миллисекунды (в этом случае переменную всё равно надо указывать), то команда ждёт указанное время, и если нажатия не было переходит на следующую команду. В переменной в этом случае будет ноль.

Борланд: Можно ли изменить никнейм на сайте?

Серый Волк: Борланд, можно. В меню пользователя (под "новости" и "библиотека"): "Мои учетные данные" -> "Изменить" Если не получится - пиши в личку форума, я попробую поменять сам под админкой.

Борланд: Как создать случайное событие в Fire URQ. К примеру: вы зашли в подворотню и дальше первый вариант: Оттуда выскакивает гопник и трясёт с вас деньги; и второй вариант: оттуда вылетает взъерошеный рыжий кошак?

cHameleon: Борланд, как вариант: event = rnd3 if event = 1 then pln Оттуда выскакивает гопник if event = 2 then pln Оттуда вылетает взъерошенный рыжий кошак if event = 3 then pln Оттуда никто не выскакивает

Борланд: Спасибо большое, я так название NPC генерировал, только вместо "pln" писал "instr".

Борланд: А как сделать так, что бы была доля вероятности какого либо события? Так? event=rnd100 if event>80 then pln Оттуда выскакивает гопник и трясёт с вас деньги. inv- rnd50, Деньги if event<80 then pln Оттуда вылетает взъерошеный рыжий кошак.

Энолка: event=rnd100 if event>80 then pln Оттуда выскакивает гопник и трясёт с вас деньги. inv- rnd50, Деньги if event<80 then pln Оттуда вылетает взъерошеный рыжий кошак. Забыл вариант: "if event=80 then pln ..."

Борланд: Ах да, точно. Спасибо!

Борланд: Ещё один очень важный для меня вопрос по поводу того, как сделать квест в интерпретаторе Fire URQ. Как сделать так, чтобы после встречи с мобом не привязаным к какой либо определённой локации можно было вернуться назад в ту локацию, где этот моб был. Например: когда я делаю битву игрока с мобом, нужно в случае победы вернуться в ту самую локацию, где я его встретил.

Ajenta: Можете воспользоваться переменными, и возвратом по переменной в локацию. Вроде такого предыдущая_локация = "лес" (ваше название локации) - это пишете в локациях, куда собираетесь возвращаться. а в боёвке при возврате пишете: goto #%предыдущая_локация$ - это вернёт вас на ту локацию, какое название будет в переменной.

Korwin: Дополню ответ Ajenta: current_loc и previous_loc (строковые системные переменные) хранят имена соответственно текущей и предыдущей посещенной локаций. previous_loc удобно использовать для сохранения игры из любой локации при помощи действия типа use_inv_Запись. Для первой локации previous_loc равна ее имени (чтобы сохранение работало и для нее). current_loc и previous_loc теперь меняются только при btn-переходах.



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