Форум » » уроки URQ » Ответить

уроки URQ

qwerty: Они самые. предлагаю вести такую тему, где будет по шагам описано создание игры на досурке. UPD уроки по досурке (URQ_DOS от 30.11.04). Скачать её(досурку), а так же её описание можно здесь: http://urq.plut.info/soft (см ссылки: [quote]Скачать URQ_DOS от 30.11.04 - 132 Кб Описание URQL для URQ_DOS версии 1.35 от 23.11.2006 года от Корвина.[/quote] ) UPD(11.02.09, 0:59): оказался недостаточно организован, что бы вести уроки. НО с удовольствием отвечу в этой теме на любые вопросы по urq_dos. появляюсь на форуме не реже 1 раза в неделю

Ответов - 139, стр: 1 2 3 4 5 6 7 All

noname: вот простейший пример::хоббит pln pln Вы у хоббичьей норы. pln У входа в нору на скамеечке сидит Бильбо Беггинс, и курит трубку. pln btn разговор, поприветствовать хоббита btn мост, идти на север- к мосту через речку end :мост pln pln Вы у моста. pln Мост разрушен. Прохода нет! pln btn хоббит, идти обратно btn ремонт, а можно ли его починить? end если вышеприведённый текст набить в блокноте в файл, к примеру game.qst, и проиграть его проигрывателем urq_dos.exe(72кб), то в досовском окошке на экране увидим описание игровой ситуации:Вы у хоббичьей норы. У входа в нору на скамеечке сидит Бильбо Беггинс, и курит трубку. а чуть ниже- варианты возможных действий:поприветствовать хоббита идти на север- к мосту через речку причём, выбрав второй вариант- перейдём к другой игровой ситуации, описанной в тексте программы под названием "мост". да, не всем может понравится досовская консоль. ну, в таком случае можно воспользоваться fireurq.

qwerty: Ну вот- начало положено! Хотя я вообще-то предполагал как-то более упорядоченно начать, а не так сумбурно и сразу. Насчёт FireURQ: это, конечно, хороший выбор, но релиза пока нет. даже не известно, как будет выглядеть его интерфейс. Так что, если без фантастики, то будем ориентироваться на "URQ_DOS от 30.11.04". Скачать его можно здесь: http://urq.plut.info/soft Запускать из командной строки, например, Total Commander-а: urq_dos.exe game.qst Настроить шрифт можно через левый верхний значок появившейся консоли: свойства/шрифт.

noname: qwerty, а лучше- через bat-файл. да, кстати Хелп по AkURQ от Korwin'a по твоей ссылке не скачивается- он пропал вместе со всем аплоадом. какая жалость! я как-то скачивал весь аплоад НО, к сожалению, на момент его исчезновения у меня на винте остались жалкие крохи. всё собирался скачать снова- да так и опоздал... выкладываю хелп по URQL от Корвина: http://slil.ru/26532134 upd Внёс исправление 27.01.09-го в 16:42 - по ссылке в сообщении, действительно, скачивается описание не Акурки, а языка URQL, который поддреживается досуркой и фуркой. Диалект Акурки слегка отличается.


Byte: Что за маскарад? :)

qwerty: Значит так, УРОК ПЕРВЫЙ: Ну, из-за слегка поспешных действий noname, первые несколько операторов мы можем рассмотреть на живом примере. Хотя в дальнейшем мы постепенно создадим другой пример, и без цитат из Толкиена. Авторские права, всё-таки. Итак: 1. Текст программы разбит на локации. Названия локаций пишутся после знака двоеточие " : " 2. Оператор end завершает описание локации. Дойтя до end интерпретатор завершает обработку, и ждёт выбора действия игроком. Если же никаких действий в данной локации не предусмотрено, то end завершит игру. 3. Оператор pln выводит текст, после чего переводит строку. это как writeln в Паскале, или print в Бэйсике. 4. Оператор "btn локация, название" создаёт 'кнопку'(она же бАттон, с ударением на А), при выборе игроком которой, произойдёт переход на локацию с названием 'локация'. Надпись на кнопке (описание выбора игрока) пишется через запятую. Т е кнопка btn локация, название будет видна в игре как название Всё не так просто- всё гораздо проще, хотя имеется и множество ньюансов. На сегодня всё, загляну сюда ещё через неделю!

Nex: Byte это у него раздвоение личности. Вот до чего доводят текстовые квесты!

fireton: qwerty, вспомнил пароль от аккаунта? ;)

qwerty: УРОК ВТОРОЙ: Пока нет noname, надеюсь успеть дать вначале теорию, а уже потом- пример. Итак, с помощью уже изученных в первом уроке операторов, уже можно создать игру любой сложности. Была бы задумка. С другой стороны, авторы иногда задумывают такие задумки, что реализовать их таким методом очень непросто. Например, пусть игрок играет шахматным конём, ходит по доске по шахматным правилам, и вступает в диалог только с теми, кто находится на соседних полях. Даже если из игры убрать остальных персонажей, то и тогда конь может находиться в 64-х ситуациях, каждую из которых придётся прописывать ручками. Ясно, что это- никуда не годится. В таких случаях авторам приходят на помощь переменные. Даже если вы не собираетесь делать ничего столь замороченного, как описанное выше, переменные всё равно могут здорово упростить написание более-менее 'живой' игры. Пример: :инициализация на_коне = 1 волшебный_меч = 0 принцесс_спасено = 0 узнал_секрет = 0 goto начало end :начало pln pln Царь послал тебя выручить свою дочь из лап дракона. "Езжай куда угодно, pln да только без неё- не возращайся!" - таков был царский наказ. Делать нечего- pln собрался ты в путь-дорогу, снарядился лучшим оружием и доспехами. Лучшего pln коня тебе из царских конюшен отдали. Да только видано ли дело- с драконом pln справиться? pln btn развилка, дальше end :развилка pln if на_коне=1 then pln Долго ли, коротко ли ты ехал, да прискакал к горюч-камню, у которого дорога if на_коне=0 then pln Долго ли, коротко ли ты шёл, да пришёл к горюч-камню, у которого дорога pln надвое разбегается. А на камне том надпись выбита: pln "Налево пойдёшь- коня потеряешь." pln "Направо- логово ужасного дракона. Можно звать просто Горынычем." pln btn старичок, налево btn горыныч, направо btn царь, назад- к царю if (узнал_секрет=1) and (волшебный_меч=0) then btn сдвинуть_камень, сдвинуть камень end :старичок if на_коне=0 then goto старичка_нет pln pln Вскоре наткнулся ты на седого старичка, который расселся посреди дороги. pln - Подсоби, внучек, дай своего коня. А то я уже не ходок. А я тебе секрет pln открою. Да не один, а сразу три секрета. pln btn отдать_коня, отдать коня btn развилка, вернуться на развилку end :отдать_коня pln pln Старичок лихо уселся на коня, и так повёл свою речь: pln - Первый секрет: надпись на камне выбил Горыныч. Я за объяву про коня ему pln свой жуб отдал. pln - Второй секрет: не всё оказывается таким, как кажется. Я вот, например, pln не старичок вовсе, а злой колдун Мамез в полном расцвете сил. pln - Третий секрет: к казённому добру надо относиться бережно, и малознакомым pln личностям коней не раздаривать. pln - Это всё. - сказал вмиг помолодевший Мамез, и умчался. pln pln На дороге остался клочок какой-то тряпки. pln на_коне=0 btn развилка, вернуться к камню btn подобрать_тряпку, подобрать тряпку end :старичка_нет pln pln Дорога уходит в дальние дали. Тебе туда не надо. Тем более- без коня. if узнал_секрет=0 then pln На дороге ты видишь клочок какой-то тряпки. pln btn развилка, вернуться к камню if узнал_секрет=0 then btn подобрать_тряпку, подобрать тряпку end :подобрать_тряпку pln pln Тряпка оказалась платком Мамеза, которым он, видимо, вытирал пот. На ней pln вышито: "Пельмени в печи, волшебный меч- под камнем. Не забудь поесть перед pln тем, как идти на работу. Твоя Василиса." pln pln Хмм... Видимо, не все секреты раскрыл тебе злой колдун! pln узнал_секрет=1 btn развилка, вернуться к камню end :сдвинуть_камень pln pln Достав волшебный меч-кладенец, ты поставил камень на место. pln волшебный_меч=1 btn развилка, дальше end :горыныч if принцесс_спасено=1 then goto логово pln pln В логове тебя встретил радушный Змей Горыныч в домашнем халате, и пушистых pln тапочках. Дипломатическая беседа проходила за обильным столом, прислуживала pln вам та самая царская дочь- Несмеяна. pln btn развилка, вернуться к развилке btn попросить, попросить Горыныча вернуть Несмеяну if волшебный_меч=1 then btn обмен, попробовать выменять Несмеяну на волшебный меч end :логово pln pln Ты стоишь, в обнимку с Несмеяной, у логова Змея Горыныча. Вход заперт. pln btn развилка, к развилке end :попросить pln pln Дракон напрочь отказался. Ни уговоры, ни твоё оружие на него не подействовали. pln А взять её без разрешения- совесть не позволяет. pln btn горыныч, дальше end :обмен pln pln - Как он у тебя оказался? Впрочем, неважно: забирай девку, а у меня появились pln срочные дела... pln принцесс_спасено=1 btn горыныч, дальше end :царь if принцесс_спасено=0 then goto царь_недоволен pln pln Как вернулся ты к царю с его дочерью- сразу он закатил пир на весь мир... pln А на утро- на дочке пришлось жениться. pln pln Вот и сказочке КОНЕЦ, а кто слушал- молодец! pln end :царь_недоволен pln pln Как вернулся ты к царю ни с чем- сразу начал он кудесить, и тебя хотел pln повесить... Но немного погодя, пощадить решил тебя. pln btn развилка, опять отправиться в путь end

noname: про коня на шахматном поле ты лихо загнул! сделать, что ли? а пример длиной 144 строчки! проще ничего не смог придумать? и про переменные ни фига не объяснил: что это такое, как их объявлять, операторы if..then и goto. щазз ещё и глюков наловлю

qwerty: Уймись, noname- некогда мне. Потом объясню. ОБЪЯВЛЕНИЕ для гостей этой темы: любые вопросы по URQL приветствуются! Бываю на форуме редко. Но не реже, чем раз в неделю.

elmortem: Вопрос от гостя: Когда уже будут сформированы единые стандарты языка, которые будут поддерживаться всеми интерпретаторами? ^___^

noname: дорогой, elmortem. единые стандарты языка сформированы очень давно. но, дело urql не стоит на месте! так, например, автор акурки пошёл альтернативным путём, и хотя он таки и 'не дошёл' до логического конца, которым мог бы стать безбажный релиз, но было сделано очень многое. так же в файрурке, наряду с поддержкой стандарта urql добавлены новые возможности. развитие языка- общепринятая практика. добавлю, что на последней версии досурки, рекомендованной в этой теме выше, идут все квесты, написанные под любую версию досурки. конкурент урки не может этим похвастаться- не все скачанные с их сайта старые файлы примеров идут под новую версию. ИМХО- в любом случае, развитие необходимо, даже если ради него приходится отступать от стандартов. одной из особенностей урки является сравнительная многочисленность пишущихся под неё игр. и авторы часто выбирают альтернативные недоработанные версии, вместо стандартной досурки. чтож, - их право! и это никоим образом не умаляет достоинств urql. так же, как если б кто-то, взяв куспелевские исходники, создал бы альтернативный акусп, то это ни в коей мере не умалило бы достоинств куспа. надеюсь, полностью ответил на твой вопрос. скачать наиболее удобоваримое описание стандарта URQL можно здесь: http://slil.ru/26532134 UPD да, и напоминаю об одной особенности выкладываемых в сообщениях темы текстов: несколько пробелов подряд заменяются одним. так что, если при запуске примера в текстах описания кое-где не сделаны отступы в начале строки- не автора вина. если кто знает, как помочь этой проблеме- буду благодарен.

elmortem: наиболее удобоваримое описание стандарта URQL Какая противоречива строка. Стандарты либо есть, либо нет. Тогда каждый кроит их по своему. Примерно похожая ситуация сейчас с HTML/CSS/JavaScript. Каждый браузер кроит стандарты по своему. Так что на вопрос вы мой не ответили, сроков выхода стандартов не написали.

qwerty: ответ to elmortem:Ситуация такова: стандарт есть. Текста с названием 'стандарт URQL' нет. Есть досурка, признанная в качестве стандарта, на которую принято ровняться.наиболее удобоваримое описание стандарта URQLОписаний чего угодно может быть множество, и они могут различаться. Так например, у меня были разные книги с описанием C++ от разных авторов: один из них начинал с описания структурной схемы языка, и вставлял скриншоты, другой- вставлял цитаты из Кэролла, и стремился сделать описание языка удобочитаемым. Впрочем, возможно, и составлю когда-нибудь текст 'стандарт URQL', и тогда urql станет первой РИЛ-ориентированной платформой, имеющей 'стандарт'. Но можешь и ты это сделать. Упомянутое выше описание может в этом помочь. Будут сложности- спрашивай. Желаю удачи!---про переменные ни фига не объяснил: что это такое, как их объявлять, операторы if..then и goto. щазз ещё и глюков наловлюОтвет для noname, и всех интересующихся: За дебагинг буду благодарен. А теперь, объясню, как смогу: Про переменные:Что такое переменные? Ну, кто не разберётся- пусть спросит. Тогда и подумаю, как объяснить. Никакого специального объявления переменных в URQL не требуется. Но для удобства я их объявляю в начале игры::инициализация на_коне = 1 волшебный_меч = 0 принцесс_спасено = 0 узнал_секрет = 0 goto начало end Если значение переменной специально не задано, то оно равно нулю. В данном примере показан пример числовых переменных(в языках Си и Паскаль такой тип принято называть вещественным)- это могут быть как положительные, так и отрицательные, как дробные, так и целые числа. В одном из следующих примеров будут показаны и строковые переменные.--- про оператор GOTO ..В тексте первой же локации видим новый оператор::инициализация на_коне = 1 волшебный_меч = 0 принцесс_спасено = 0 узнал_секрет = 0 goto начало end goto- оператор безусловного перехода. Применяется: goto локация. По этой команде выполнение программы продолжится в локации локация. В нашем примере мы переходим к локации с именем начало. В дальнейших примерах будет рассмотрена возможность переходить в любое место программы, а не только на начало локации.--- Про оператор IF .. THEN ..Переменные создаются для активного влияния на ход игры. Чтобы реализовать эту возможность, существует оператор условия: If Условие then Действия Если выполняется Условие, то производятся Действия. А если нет, то- нет.pln if на_коне=1 then pln Долго ли, коротко ли ты ехал, да прискакал к горюч-камню, у которого дорога if на_коне=0 then pln Долго ли, коротко ли ты шёл, да пришёл к горюч-камню, у которого дорога pln надвое разбегается. А на камне том надпись выбита:В данном отрывке примера от того, есть ли конь у нашего героя, зависит текст выводимого сообщения. Информация о том, есть ли у него конь, хранится в переменной на_коне. В ситуации, когда герой теряет коня, автор игры должен позаботиться о том, что бы переменная отображала изменения ситуации:pln - Это всё. - сказал вмиг помолодевший Мамез, и умчался. pln pln На дороге остался клочок какой-то тряпки. pln на_коне=0 В дальнейших примерах мы не раз ещё вернёмся к оператору if..then.. и его возможностям.--- Фу-ух! Неужели это всё? До встречи через неделю! p.s. Эх, я-то ожидал, что скрытые тексты будут "открываться" не зависимо друг от друга... p.p.s. И ещё о шахматах: когда-то давно, Victor написал интересную прогу qwerty-bench на досурке. Хорошо бы её найти... UPD С удовольствием даю ссылку на http://www.vkoranov.newmail.ru/ Помимо прочего, там можно найти и qwerty-bench-vic, сделанный по моей просьбе Виктором для демонстрации работы с массивами.

elmortem: qwerty Стандарт, который нигде не зафксирован - миф. Досурка не может быть стандартом пока существуют и поддерживаются квестописателями другие интерпретаторы. И не нужно путать "описание чего-либо" и "описание стандарта чего-либо". В случае с С++ есть описание стандарта С++ от его автора Страуструпа, все остальные описания основаны на этом стандарте, оталкиваются от него и не вносят в него изменения. Стандарты URQL нужны не мне, а вам. Если вы этого не понимаете - мне всё равно. Можете и дальше агонизировать... upd: Арвагравия... P.S. Грязную провокацию нонейма оставляю без внимания...

Ехидна: Помогите, пожалуйста! Пыталась сделать все, как было написано в уроках. Однако когда попыталась сделать inv_Вампирья стрела=15 все последующие предметы, дописаные как Inv_ или даже inv+ в инвентаре выбиваются тоже как 15! Я уже просто не знаю что делать. Может, кто-то сумеет подсказать в чем дело?.. Заранее спасибо.

qwerty: Ехидна, Во-первых было бы интересно глянуть на код. Возможно, дело не в одной этой строчке. (Хотя вряд ли. Наверное, всё-таки в этой) Во-вторых... в данный момент исследую этот вопрос- ждите ответа... UPD Есть прекрасные сложные квесты, состоящие только из локаций и переходов, но, как правило, создатели квестов предпочитают еще и добавлять в игру предметы, заставляя играющих активно работать с ними. При грамотном использовании этой возможности можно значительно разнообразить игровой процесс, есть интересные квесты, которые построены исключительно на манипулировании предметами.Inv+ [Количество,]ПредметПосле выполнения этого оператора игроку дается Количество (1 по умолчанию) предметов Предмет. Можно прибавить и отрицательное количество предметов - это все равно, что вычесть их из инвентаря. Помните только, что число предматов в инвентаре не может быть меньше нуля - если количество предметов инвентаря после выполнения оператора меньше либо равно нуля, тогда соответствующий предмет из инвентаря убирается. например: inv+ Кирпич или: inv+ 10,Рублей Исследование завершено. Готов выложить пример программы, работающей с Вампирьими стрелами, и не затрагивающей кол-во листков подорожника. Но для начала выскажу рекомендацию: - Хорошо бы избегать по-возможности пробелов в названиях предметов. Например писать Вампирьих_стрел вместо Вампирьих стрел. Либо придумать вампирьим стрелам уникальное название: кровострелы. Давно ходил слух, что при пробелах в названии предметов происходит что-то не то. В данный момент продолжаю попытки нащупать проблему. Вот пример программы: :10 pln pln Допустим, у героя УЖЕ есть изначально 10 Вампирьих стрел pln И тридцать три листка подорожника (залечивать раны) pln Проверьте работу программы, пользуясь клавишей 'i' для показа инвентаря: pln Кол-во листков подорожника должно оставаться неизменным! pln inv +33,листка подорожника inv +10,Вампирьих стрел btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :20 inv +5, Вампирьих стрел pln pln Денег у героя- куры не клюют. Теперь у него на 5-ть стрел больше. pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :30 if inv_Вампирьих стрел < 5 then goto 50 inv -5, Вампирьих стрел pln pln Теперь у нашего героя на 5-ть стрел меньше. pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :40 inv_Вампирьих стрел = 15 pln pln Теперь у нашего героя ровно 15-ть стрел. pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :50 pln pln У нашего героя нет столько стрел для продажи! pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end

Ехидна: qwerty Вот код. :Системное inv_Клановый меч=1 inv_Костяной лук=1 inv_Вампирья стрела=15 goto Начало end Затем по сюжету персонаж может выстрелить в человека - следовательно, стрела отнимается... :Выстрел inv- Вампирья Стрела if 1 Вампирья Стрела then invkill Вампирья Стрела btn Обыск, Обыскать тело. end :Обыск inv_Металлический браслет=1 pln Больше здесь просто было нечего делать. btn Уйти, Вы уходите. end Вот... (текст я вырезаю, он же ненужен, нэ?.. Но если нужен, могу бросить полностью... просто там лирики много)

Ехидна: (кстати, только что заметила: если переставить текст так :Системное inv_Вампирья стрела=15 inv_Клановый меч=1 inv_Костяной лук=1 то и лук, и меч тоже будут выбиваться как 15 штук...)

qwerty: Ехидна, спасибо, щазз проверю... UPD ОПС! обратил внимание на: "...все последующие предметы, дописаные как ..." Переставил операторы местами: inv +10,Вампирьих стрел inv +33,листка подорожника И всё равно жуткое заклинание 15-ти сработало нормально. Впрочем, может в таком варианте проглючит какая-нибудь последовательность действий? Щаззз опробую Ваш код UPD Вы пользуетесь urq_dos.exe, скачанной по ссылке в этой теме? UPD Да, проблема обнаружена: Ваш код действительно не работает. Слухи о нежелательности пробелов в названиях предметов пока не подтвердились. Щазз готовлю исправленную версию Вашего кода.

Ехидна: qwerty Скопировала программу полностью. Количество листов подорожника не меняется, да. Но с ними и действий не происходит. И стрелы почему-то не отнимаются. Может, я просто не понимаю чего-то? Нет, к сожалению не urq_dos.exe... SMSQ.EXE Спасибо))

qwerty: UPD: как это срелы не отнимаются? Последовательность Ваших действий, плизз... --- SMSQ.exe - программа для редактирования квестов. Я ещё ни разу её так и не запустил- пишу в блокноте. Выкладываю пример, подготовленный с учётом Вашего кода(тестировал в обоих вариантах- с добавлением 15-ти стрел и ДО и ПОСЛЕ остального снаряжения): :Системное pln pln Ваше снаряжение: меч, лук, стрелы. pln inv+ Клановый меч inv+ Костяной лук inv+ 15, Вампирья стрела btn Выстрел, Выстрел end :Выстрел if inv_Вампирья стрела <1 then goto inv- Вампирья Стрела pln pln Попал. Убил. pln btn Обыск, Обыскать тело. end :Обыск inv+ Золотая монетка pln pln Вы нашли лишь одну золотую монетку. pln btn Выстрел, стрелять ещё end :Не_выстрел pln pln Стрелы закончились! pln btn Конец, конец end :конец pln pln Без стрел- КОНЕЦ нашему герою... pln end

noname: да, SMSQ.exe - программа для редактирования квестов. а urq_dos.exe - интерпретатор квестов (см первые три сообщения этой темы). есть ещё несколько других интерпретаторов urql, но окончательного релиза у них пока нет. пока что единственный оконченный(и практически безглючный) интерпретатор- досурка. впрочем, можно уже пользоваться и безглючной fireurq, хотя и она сама, и особенно её интерфейс- в процессе разработки. UPD интерпретатор квестов- программа, читающая квест и пытающаяся исполнить его команды UPD некоторые пользуются, на свой страх и риск, Акуркой. в ней есть как глюки, так и некоторые отличия в языке программирования. впрочем, можно и с ней разобраться. а чем пользуетесь Вы, Ехидна, для запуска квеста?

Ехидна: qwerty пишет: SMSQ.exe - программа для редактирования квестов Ламером родился - ламером помрешь...)) Странно.. пока что (не считая стрел) все шло как по маслу и писалось на ура..)) ..эх, все равно то же самое... Можете пожалуйста дать ссылку на urq_dos.exe? Буду пытаться переделывать там, может хоть там пойдет... noname Пользовалась URQ(Win).exe - она единственная читала *.qst

qwerty: Да, и хочу подвести итоги обсуждения проблемы: Присвоение вида inv_Вампирские стрелы = 15 работает в досурке только если в инвентаре уже есть предмет Вампирские стрелы. (Это- пожалуй, действительно не совсем корректно. Но так уж есть.) Добавление предметов в инвентарь, и убирание предметов из инвентаря производятся командами inv+ и inv- соответственно. Если какого-либо предмета в инвентаре стало ноль штук- он автоматически убирается из инвентаря. Никаких особых действий по удалению предмета из инвентаря после этого не требуется. Из-за этого, кстати может сглючить выложенный мой пример про Вампирские стрелы: если продать все стрелы, и в инвентаре стрел не останется- "заклинание 15-ти" не сработает. Выкладываю для сравнения исправленную версию(обратите внимание на изменение в начале локации "40" по сравнению с предыдущей версией ЭТОГО примера на предыдущей странице): :10 pln pln Допустим, у героя УЖЕ есть изначально 10 Вампирьих стрел pln И тридцать три листка подорожника (залечивать раны) pln Проверьте работу программы, пользуясь клавишей 'i' для показа инвентаря: pln Кол-во листков подорожника должно оставаться неизменным! pln inv +10,Вампирьих стрел inv +33,листка подорожника btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :20 inv +5, Вампирьих стрел pln pln Денег у героя- куры не клюют. Теперь у него на 5-ть стрел больше. pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :30 if inv_Вампирьих стрел < 5 then goto 50 inv -5, Вампирьих стрел pln pln Теперь у нашего героя на 5-ть стрел меньше. pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :40 inv+ Вампирьих стрел inv_Вампирьих стрел = 15 pln pln Теперь у нашего героя ровно 15-ть стрел. pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end :50 pln pln У нашего героя нет столько стрел для продажи! pln btn 20, купить ещё 5 стрел btn 30, продать 5 стрел btn 40, произнести жуткое заклинание 15-ти end

noname: цитата из 3-го сообщения темы: qwerty пишет: "URQ_DOS от 30.11.04". Скачать его можно здесь: http://urq.plut.info/soft вот ещё ссылка на ту же программу: http://tightbow.narod.ru/URQL_dos.rar и ещё: инвентарь ведь можно организовать и по-своему, через переменные, как показано в первом примере qwerty в этой теме (пример про принцессу и дракона). UPD проверил последний пример qwerty и на wcl-версии досурки- тоже всё работает. обычно предпочитаю ту, что в папке dos32 в архиве по ссылке. wcl(win)-версия в папке wcl в архиве по ссылке

Ехидна: noname пишет: "URQ_DOS от 30.11.04". Скачать его можно здесь: http://urq.plut.info/soft Скачала. Внутри три urq_code.exe (25Кб, 53Кб и 71Кб). Ни одна из них не запускается. Чую, прийдется таки через переменные писать стрелы... Может, я просто что-то не поставила? Или чего-то не понимаю?..

qwerty: Ехидна, внутри есть urq_code.exe - программа для шифрования квестов, а в папках dos32 и wcl есть программы urq_dos.exe - две версии. Для начала я бы советовал попробовать dos32-версию urq_dos.exe Об использовании программы упоминалось(возможно, слишком поверхностно) в начале этой темы. Так же можете попробовать и fireurq по ссылке http://ifwiki.ru/files/FireURQ.zip - им проще пользоваться. Файрурка, хоть и недоделанная- тоже без глюков, и изначально рассчитана на Windows, а не DOS. В отличие от моей любимой досурки, которую Вы скачали, и которая изначально писалась под DOS. О том, как запустить: сейчас допишу...

qwerty: Итак, как запустить досурку (файл dos_urq.exe из папки dos32 скачанного архива): Ну, раз уж Вы создаёте файлы *.qst, то для Вас не должно быть проблемой и создать, *.bat - файл такого содержания: urq_dos.exe name.qst где name.qst - собственно, Ваш квест. Я, лично, не делаю таких go.bat- файлов, а просто запускаю досурку из командной строки Total Commander-а: у меня в папке с квестами лежит досурка (dos_urq.exe), я сношу её Ctrl+Enter в коммандную строку, и туда же- свой квест. Получается строчка: urq_dos.exe name.qst. Нажимаю <Enter>. Всё. Вместо Total Commander-а можно пользоваться так же фаром, или любым другим подобным навигатором.

Ехидна: qwerty Огромное-преогромное нечеловеческое СПАСИБО! Скачала "Акурку"... Наверное, лаг со стрелами был в проигрывателе... Теперь все работает! Еще раз спасибо, что не махнули рукой, глядя на мое ламерство. *потопало писать дальше свой потенциально титанический труд...*

noname: Файрурку можно скачать тут: http://ifwiki.ru/files/FireURQ.zip язык тот же, даже слегка расширенный. запуск- просто запустить эту программу. интерфейс- графический, ещё не доделанный. для начала- сойдёт. а там- мож уже и допишут.

qwerty: noname, на файрурке мой пример не заработал... Пойду жаловаться Тону. p.s. Что хорошо в файрурке, так это то, что её автор над ней работает. ссылка на её тему: http://urq.borda.ru/?1-0-0-00000258-000-0-0-1232357681 UPD Спасибо за благодарность, Ехидна, а то мне уж начало становиться стыдно за убогую досурку... Но всё ещё будет, и будет- хорошо! И будет у нас хороший графический интерпретатор под Windows...

fireton: Присвоение вида inv_Вампирские стрелы = 15 работает в досурке только если в инвентаре уже есть предмет Вампирские стрелы. (Это- пожалуй, действительно не совсем корректно. Но так уж есть.) А в фурке - всегда работает.

noname: А в фурке - всегда работает. fireton, ок! да, фурка обещает стать новым стандартом проигрывателя квестов на языке URQL. если интерфейс будет удачным. qwerty, ИМХО: 1) тему нужно было начинать с объяснений, как скачать и запустить досурку. и архив надо было свой выложить, чтоб в нём был только файл dos_urq.exe, и файл описания. 2) дать затравку будущим авторам в виде хорошего старого квеста, типа Корвиновского Винни-Пуха. Холм Фей, конечно получше в плане геймплея и общего впечатления будет, но Винни-Пух красивше. Пух очень подходит для первого знакомства. 3) примерам нужно давать названия. это стало видно в ходе общения- приходится объяснять: в таком-вот примере, на такой странице темы... ужос! примеры названия должны иметь. и должна быть основная тема- большая программа, которую постепенно пишем с самого начала до самого конца уроков. финал- готовый интересный квест. 4) что бы ты там ни говорил, народ всё равно тянется к Акурке. надо и про неё объяснять: как такой-то пример сделать на Акурке, чтоб работал. Акурка имеет интересные графические возможности и, в конце-концов, нужно проявить уважение к автору этой платформы. а то ты как-то жестковато по ней проехался. 5) в шапке темы нужны работающие активные ссылки. кроме указанного в п1, могу порекомендовать ещё выкладывать свежий архив 'уроки URQ' с причёсанным текстом уроков, а не как в этой теме, и с *.qst приложениями - примерами. впрочем, лучше бы их начинающие авторы писали ручками... 6) и не вешай нос- зря ты на досурку 'убогой' обзываешься. для некоторых дос-консоль - самый лучший интерфейс. для тебя, например :)

qwerty: Уточню: я рад, что URQL поддерживается не только досуркой, но и другими интерпретаторами. Пусть, даже в них наблюдается использование других 'диалектов'. Кардинально переделывать предыдущие сообщения темы пока не буду, Разве что ссылки добавлю/исправлю и т п. Думаю над созданием файла 'уроки URQ'. В связи с этим возможна задержка с выпуском очередных 'уроков'.

qwerty: Пожалуй, вот что я могу сделать для РИЛ-движения: 1. Переработать описание URQL в 'уроки DOS URQ' с добавлением множества примеров по всякому поводу 2. Разбирать всякие глюки, дебажить квесты, помогать с алгоритмами.(Заглядываю на этот форум(как и на иф-фикшен) почти ежедневно.) 3. Дать здесь ссылку на http://urq.plut.info/ , где случайно заглянувшие новички смогут ознакомиться с разделом игры, например. Рекомендую те из игр, что находятся под вкладкой 'готовые'. Будьте осторожны: многие из игр писаны 'на любителя', или с целью 'поэкспериментировать', и могут быть 'несъедобны'. 4. И, заглянув правде в глаза, я не могу не дать ссылку на форум конкурентов: http://qsp.borda.ru/ Там обсуждают куспель. Новичкам полезно бы сразу знать об обоих платформах. 5. Ну, и конечно- территория, где встречаются все платформы: http://forum.ifiction.ru/ --- п2 выполняю всегда с удовольствием. п1 надо поднапрячься и через неделю выложить хоть что-то промежуткое промежуточное в вордовском формате. Окончательный вариант должен быть НЕ в вордовском формате. С завершением работы над 'уроки DOS URQ' эту тему буду считать исчерпанной, и продолжу 'выпускать пар' в теме 'живой игровой мир(продолжение)'. --- Кста, я уже говорил, что noname и qwerty- одно лицо? Люблю постить на форумах. НО не хочу, что бы одна и та же аватарка была по всей теме. Вот и внёс некоторое разнообразие...

Nex: Пиши игру!

Nex: По ссылке из этого сообщения лежит вовсе не описание акурки от Корвина, а описание досурки от Корвина. http://urq.borda.ru/?1-0-0-00000268-000-0-0#002.001 Мне нужно описание акурки.

Saruman: Nex пишет: Мне нужно описание акурки. http://tightbow.narod.ru/AkURQ.chm - вот оно

noname: спасибо! у меня оно куда-то затерялось. надо бы поправить ссылку на плуте. один вопрос 'по понятиям':Локация – одно из базовых понятий текстовых адвентюр. Локация - элементарная единица игрового мира. Это может быть комната, пещера, ее часть, дом... Играющий исследует игровой мир посредством перемещений между локациями. Служебная локация - локация, не предназначенная для явного перехода на нее. Т.е. она используется лишь как контейнер для группы операторов. Вызывается обычно оператором proc имя_локациимне видится здесь некоторая путаница: локации игрового мира это одно, а 'локации' программы- совершенно другое, однозначного соответствия практически никогда нет. предлагаю 'разрулить' эти понятия,и впредь, в дальнейшем будущем, фрагменты кода программы больше 'локациями' не называть. а дать им какое-нить другое название. видимо, для этого придётся делать большой опрос на иффикшене - ведь это касается в равной мере как урки, так и куспа.

Nex: noname здесь всё зависит от автора. Чем более автор игры углубляется в программирование, тем меньше его локации соответствуют определению "единица игрового мира". В парсерных движках типа RTADS есть чёткое разграничение, там как бы "всё предусмотрено", а в менюшных самопалах QSP и URQ - нет. Учитывая то, что большая часть "новоприбывших" садятся писать на URQ и QSP "такое, чего раньше не было", и большинство из них - программисты, то разграничения понятий и не предвидится. Все будут только глубже закапываться в код, за редким приятным исключением. Для упрощения терминологии можешь "служебные локации" называть "процедурами". Только учти при этом, что в некоторых менюшных играх не будет ни одной "настоящей игровой локации".

Григорий: "Служебная локация" это не процедура, а метка, туда можно попасть и с помощью оператора безусловного перехода. В урке с самого начала метки зачем-то назвали локациями, из-за чего и возникла некоторая путаница. Кроме того, "локация" выше описана в терминологии парсерных игр, хотя в урке этот термин употребляется в том же смысле, что и геймбуковское "параграф". Т.е. де факто в урке "служебная локация" повсеместно называется просто "локацией", а понятия "локация" в приведенном смысле просто не существует, это чуждая urq-идеологии терминология парсера. Сам конечно не понял что написал. Короче - терминология хреновая, но ее нельзя поменять, потому что она уже много лет как устоялась.

ASBer: Эх... хорошо то у вас как! Может сделать к ТОМу чисто менюшный интерфейс в URQ стиле без всякой командной строки? Локации будут локациями, а меток вообще не будет... ;)

Nex: Я надеюсь, это сейчас шутка была. От движкоделов чего угодно можно ожидать...

uux: Nex пишет: noname здесь всё зависит от автора. Чем более автор игры углубляется в программирование, тем меньше его локации соответствуют определению "единица игрового мира". В парсерных движках типа RTADS есть чёткое разграничение, там как бы "всё предусмотрено", а в менюшных самопалах QSP и URQ - нет. Nex, не флуда ради, а педантизьма для;). В TADS'е тоже не так просто разделить локации, которые видит игрок, и локации служебные. Иногда одну локацию в игровом мире бывает удобно представить несколькими объектами-локациями в коде. В некоторых случаях имеет смысл ввести локацию в коде, вообще не имеющую эквивалента в игровом мире (т. е. в которую игрок не будет попадать в принципе). Я уж не говорю про "вложенные" локации (например, если ГП стоит в комнате на стуле - считать стул отдельной локацией или нет?) А уж к парсерности/менюшности классификация локаций ИМХО вообще не имеет отношения. Тут все зависит от структуры конкретного языка. В urql логично было бы назвать "настоящими" локациями промежутки между меткой и оператором end, где есть кнопки, хотя и такое определение не будет вполне строгим. Про QSP сказать ничего не могу, так как незнаком с языком. Только, Бога ради, не считай это приглашением к дискуссии по выработке строгого определения локации в игре - я к этому не готов;). ASBer пишет: Может сделать к ТОМу чисто менюшный интерфейс в URQ стиле без всякой командной строки? Локации будут локациями, а меток вообще не будет... ;) Nex пишет: Я надеюсь, это сейчас шутка была. От движкоделов чего угодно можно ожидать... Хех... Какая же это шутка? В том же ТАДСе, например, чаще всего как раз обходятся без меток, при этом чисто менюшная игра там делается... ну, наверное, не на раз, но все-таки делается.

ASBer: На правах флуда: Nex пишет: Я надеюсь, это сейчас шутка была. От движкоделов чего угодно можно ожидать... uux пишет: Хех... Какая же это шутка? В том же ТАДСе, например, чаще всего как раз обходятся без меток, при этом чисто менюшная игра там делается... ну, наверное, не на раз, но все-таки делается. - Технически - это легко реализуемо без переделки движка, просто парсер не буден задействован. Менюшные игры даже будет легче делать чем парсерные. - Фактически - врядли кто соблазнится на СИ-подобный язык и ООП для изготовления менюшных игр, поэтому можно считать шуткой.

Korwin: Гмм... кто тут вечно пищал, что для больших пребольших квестов надо ООП? Вот - пожалуйста. Я пищал? Склероз!

qwerty: Так и на урке можно в стиле оопа писать. Тут только самодисциплина нужна. А для больших-пребольших квестов нужна строгая самодисциплина, строгое соблюдение единого, продуманного, стиля. ну и, переписывать игру с самого начала, время от времени- когда выяснится, что стиль кодинга выбран неудачно. Тут уж никакая платформа, мне лично, не помогает. К сожалению, трудность с большими квестами ещё и в том, что быстро реализовать задумку не удаётся, а долго- ... Ну, каждый чел меняется со временем, разные идеи притягивают интерес, мысли скачут, не стоят на месте- короче, через какое-то достаточно длительное время уже пропадает желание реализовывать основную идею, заложенную изначально. p.s. Да, вот и 'уроки' я щазз пока не делаю- думал над примерами, и начал писать одну маленькую прогу... Хорошо, если ко втронику успею закончить. Так, ничего особенного- в основном операторы pln и btn. Если допишу, то единственное, что текст проги будет демонстрировать- важность строгого кодинга. UPD Не, к ближайшему вторнику- точно не успеваю.

noname: однако, в очередной раз ненаписанная игра, навела меня на мрачные мысли: что имеет смысл писать? и что из этого возможно написать? простенькая игруха qwerty01-"Суд" несла в себе какой-то смысл, а её создание- доставило удовольствие(не смотря на сплошной плагиат). в игре меньше 9кб, 12-ть "фрагментов", и три концовки. операторы: pln, btn, end. qwerty02-"Убить Мамеза" был попыткой реализовать идеальный(с моей тз) геймплей- выбор из 6-ти персонажей, но сюжет-один, но выбор приходится делать разный, в зависимости от персонажа. создание- доставило удовольствие, хотя сделать игру законченной, видимо не удалось. менее 57кб, под конец дебажить и доделывать стало чуточку нуднее, но мой интерес к творилову был на высоком уровне. операторы: rnd, pln, btn, end, if..then, goto, работа с переменными. далее- пошли "серьёзные" задумки, которые оказалось невозможно реализовать даже в максимально упрощённом виде. например, после qwerty02 хотел к концу 2006-го года создать игру с тремя ГГ, взаимодействующими друг с другом, и видящими ситуацию с разных точек зрения. игрок играет за любого из 3-х ГГ, за 2-х других- играет комп. чтоб хоть как-то дать почувствовать игроку идею, требовалось не менее 3-х ключевых выборов, хотя бы из 2-х вариантов каждый. за "своих" ГГ комп делал бы выбор случайным образом(т е всего 9-ть развилок- выбор предоставляется каждому ГГ по очереди, хотя каждый не видит непосредственно выбора других, а только его последствия). фишка была в том, что ход игры в равной степени зависел как от игрока, так и от других игроков-своеобразное "развенчание" игрока. в этом-то и была суть. игра разрослась невероятно. к тому времени, как я догадался урезать её до вышеописанного варианта, я уже начал терять интерес к этой, фактически небольшой задумке, на которую понадобилось бы терпения куда больше, чем я мог потратить на одну небольшую идею. операторы: pln, btn, end. далее- небольшое "сочинение" о человеческой жизни, недописанный кусок которого выложен в теме "ЖИМ". одна из стоящих моих идей. думаю, релиз только ухудшит идею, не говоря уж о том, что если я буду писать большой труд- я буду писать его всё хуже и хуже. далее- размышления на тему "ЖИМ", открыл целую тему по этому поводу. попытка написания квеста то ли на ЛОКу-2008, то ли на КРИЛ-2008. идея была в передаче определённого мироощущения. квест был разбит на 5-ть глав, из которых третью так и не дописал. активная работа с переменными, а именно учёт влияния прошлых действий на последующее развитие мира и привело к непомерному разрастанию игры. упрощение привело бы к "убийству" идеи. бросил, потеряв интерес. к счастью, удалось сделать кое-что для поднятия самооценки: квартиру в "дом, который построил URQ", генератор лабиринтов в теме "ЖИМ", нечто на ХОККУ-2009(пока не положенный на плут). пожалуй, поделка на конкурс хокку вполне достойна на_звания qwerty03. т о мои нечётные поделки- сплошной плагиат, а чётные- недоделки. сейчас у меня постоянно "варятся" несколько идей. засев за очередное творилово, я сразу сказал себе: выбери самую незначительную идею, и упрости её до предела. так я и сделал: небольшой "рисунок" начинается с единственного выбора "нарисовать небо". далее- можно либо "добавить облака", либо "нарисовать солнце". игрок, по замыслу, с лёгкостью творит свой мир. всего 4-ре объекта, каждый из которых может либо не быть, либо быть в одном из 3-х состояний: небо(ясное/облака/тучи), солнце(утро/день/вечер), флора(трава/+дерево/+плоды), фауна(хомяк/медведь/человек). операторы: pln, btn, end. дописав до дерева и, слегка затронув хомяка, я почувствовал, что до ума доводить эту игру будет слишком муторно. многие описания можно было лишь слегка модифицировать, но всё равно на долю автора выпало довольно много работы: напр, тучи в небе, пока нет земли, роняют капли в никуда, и так- в каждом конкретном случае есть что прописать вручную. для красоты. сухой шаблонный вывод никуда не сгодился бы. концовка- свеженарисованный человек оказался бы автором игры(qwerty), взглянул бы с экрана на игрока, и- выключил игру[b- начать сначала,...]. для столь простой идеи трудозатраты оказались слишком высоки. интерес пропал. собирался доделать её к этому вторнику. дано: есть идеи, владею urql, могу освоить любой другой язык, получается программить. проблема: те идеи, которые стоит реализовать, и стоит реализовать именно в виде РИЛ,(а не, к примеру, просто рассказа)- не могут быть реализованы. и никакие РТАДСы с ООПами тут не помогут: в случае необходимости реализовать сюжетные ветвления- возрастание объёма необходимого для набивания текста ничуть не меньше. вот такие вот грустные мысли. надеюсь через неделю написать сообщение повеселее.

Nex: noname возьми соавтора, некоторым для создания игры нехватает именно навыков программирования, ты бы мог им помочь.

fireton: что имеет смысл писать? Ты не поверишь. Имеет смысл писать игру, в которую будет интересно играть. И совершенно не важно на каком уровне технического кунг-фу она написана.

Saruman: noname пишет: дано: есть идеи, владею urql, могу освоить любой другой язык, получается программить. проблема: те идеи, которые стоит реализовать, и стоит реализовать именно в виде РИЛ,(а не, к примеру, просто рассказа)- не могут быть реализованы. и никакие РТАДСы с ООПами тут не помогут: в случае необходимости реализовать сюжетные ветвления- возрастание объёма необходимого для набивания текста ничуть не меньше. вот такие вот грустные мысли. надеюсь через неделю написать сообщение повеселее. I love Sinclair, DOS and URQ Ага! До тебя тоже дошла вселенская грусть автора! Единственный выход подсказывает Маяковский "Наступить на горло собственной песне" и заранее прописать то, что хочешь сделать. Писать на заказ. Свой. Не можешь ограничить себя сам - предложи соавторство Платову. P.S. I love Sinclair too

Nex: noname я правильно понимаю, что на QSP-Compo ты уже окончательно забил?

qwerty: Nex, не хочу я на него забивать. по крайней мере- сейчас уже не хочу. qsp- хорошая платформа. на фоне застоя и развала урки- просто отличная. настроения писать щазз под неё нет. возможно, слеплю что-нить миниатюрное, парсерное. а может, и нет. денежное вознаграждение для меня перестало быть побуждающим мотивом к чему-либо. хочется поддержать РИЛ-движение. и отметить упорство Байта, который долгие годы верил в свою платформу. и она таки стала лучшей. надеюсь- ненадолго :) пока ещё надеюсь, что fairurq, или другая urql-платформа вас 'сделает'

Ktirff: Доброго времени суток) У меня есть несколько вопросов по urql, ответы на которые, в общем-то, можно найти в документациях\faq'ах, но прошу помощи форумчан) 1. Как сделать фоновый рисунок в Акурке и Фурке? Как сделать рисунок рядом с текстом? 2. Как изменить основной цвет фона и шрифта в Фурке? 3. Можно ли как-то переименовать инвентарь в Акурке или сделать дополнительное меню в том же стиле? 4. Как добавить музыку в акурке и фурке, сильно ли она грузит систему?

noname: А) ну, про фурку ответить просто: пока интерфейс в разработке, и НЕ поддерживаются не только рисунки, но даже и изменения цвета/размера шрифтов. что, конечно же не есть гут на данный момент хороших GUI-платформ URQL просто нет. есть фурка в стадии разработки, и акурка в стадии 'заброшенной разработки'. ну, и- досурка с дос-консолью Б) ну, про акурку- сложнее. потому что про неё я мало знаю. НО скажу, что могу. надеюсь, кто-нить ещё заглянет сюда и даст более толковый ответ: 1. фоновый рисунок в Акурке либо невозможен, либо делается не стандартными средствами 1. рисунок рядом с текстом в Акурке я видел только в одном квесте, но я не вникал в его код. обычно такое почему-то не делают как это сделать- не знаю (вообще-то в Акурке, вроде бы, возможен вывод и массивов рисунков и рисунков с наложением, но я на Акурку ни разу не писал, т к её язык отличается от URQL) 3. нельзя 4. по моим наблюдениям- не сильно. вообще не замечал. добавить музыку можно так: Music="\sound\A.mid" в данном случае в папке с игрой находится подпапка sound с файлом A.mid, который будет крутиться по кругу подробнее- в описании. (самому что ли посмотреть?) В) какие продвинутые вопросы!

qwerty: кроме описалова можно глянуть игрухи под Акурку, напр по ссылке http://urq.borda.ru/?1-0-0-00000272-000-0-0-1235465237 игра 'похищенные' не зашифрована. кроме картинок и музыки использует ссылки хотя, этож книги-игры... ну, мож кто подскажет более подходящие примеры. upd: вот, свежая игруха Рыцари Математики: http://urq.plut.info/taxonomy/term/1 тоже не шифрованная

Ktirff: Вопросы не такие продвинутые, как может показаться :) Я блуждаю в операторах "простейшего" интерпретатора как в дремучем лесу) Спасли smsq и faq korwin'a по досурке. Из полученных ответов выстраивается следующая цепочка) 1. "Фоновый рисунок в Акурке либо невозможен, либо делается не стандартными средствами". Я склоняюсь ко второму варианту, потому что оф. википедия презентует вот такую картинку http://ru.wikipedia.org/wiki/Файл:AkURQ.jpg (ссылка немного косячит) Именно этим данный интерпретатор мне и понравился изначально) 2. "рисунок рядом с текстом в Акурке я видел только в одном квесте, но я не вникал в его код. обычно такое почему-то не делают". Из всех виденных игр, наиболее распространённое явление - это картинка, которая свободно "висит в пространстве". Ну вот как в примере игры "Рыцари Математики" или более старой "Без права на надежду". Совершенно не подходящий вариант и без интеграции вовнутрь текстового поля, не вижу никакого смысла) 3. Музыка. Её можно добавлять только в формате .mid? Если я закину полноценный мп3-файл на несколько мегабайт - он будет проигрываться? 4. Я посмотрел игру "похищенные" :) Даже не представляете, сколько радости ощутил)) Лет 6-7 назад, эта книга-игра скрашивала мой школьный досуг и была одной из первой в жанре if. Теперь по делу. На протяжении всего текста квеста используются стандартные метки urql (может еще какие-то операторы, подробно не всматривался), но в большинстве своём там html-код. Игра выглядит очень приятно и склонен заново переучиться на хтмл, ради соответствующего дизайна) Как мне кажется, использовался какой-то редактор для создания текста, а не упорный труд ручками в блокноте. Что-нибудь посоветуете на этот счёт? upd: 5ый вопрос еще появился) Как сделать случайное событие при выборе варианта действий? Т.е. одно из подготовленных заранее.

noname: Спасли smsq и faq korwin'a по досуркевот, несколько сырое, описание Акурки: http://tightbow.narod.ru/AkURQ.chm Как сделать случайное событие при выборе варианта действий? Т.е. одно из подготовленных заранее в чём сложность-то, не пойму? приведи пример, чего ты хочешь

qwerty: наверное что-то вроде этого: :1 invkill perkill goto 2 end :2 pln Ты стоишь у очень широкого обрыва pln Ветер обдувает решительное лицо, pln Лучи заходящего солнца окрасили обнажённую катану. pln За спиной- враг pln r=rnd2 btn #2+r$, говорить btn #4+r$, действовать end :3 pln вариант говорить- А pln btn 2, откат end :4 pln вариант говорить- Б pln btn 2, откат end :5 r=rnd2 if r=2 then goto 7 pln действие успешно pln btn 2, откат end :6 pln действие неудачно pln btn 2, откат end :7 pln критический успех! pln btn 2, откат end

noname: здесь демка html-возможностей акурки by Korwin: http://slil.ru/27246304 ничего сложного нет. знания html практически не требуется. да и в 'похищенных' код довольно прост остаёстся только прояснить вопросы: - как сделать в акурке фоновый рисунок - как сделать в акурке текст рядом с картинкой я этого не знаю помню, была такая игра, где ГГ в море собирал брёвна для плота и т п после кораблекрушения. там ещё был массив картинок. короче, технически игра была- на уровне. вроде бы и текст с картинкой рядом был. не помню

uux: noname пишет: помню, была такая игра, где ГГ в море собирал брёвна для плота и т п после кораблекрушения. там ещё был массив картинок. короче, технически игра была- на уровне. вроде бы и текст с картинкой рядом был. не помню Игра с ЛОК-2007, называется "Бриг КРИК". Есть здесь.

Ktirff: Спасибо большое за ответы и ссылки) в "бриг крик" лежит только файл квеста, никаких картинок нет) хотя из кода выкопал пару интересных вещей. Попробую поработать с html, сопоставлю свои возможности с тем, что требуется. Программер из меня не ахти.. qwerty, да, то что нужно) а можно снабдить текст комментариями? я пытался понять, что к чему, но совершенно запутался :) вот эта странная переменная r, как она работает.

uux: Ktirff пишет: Спасибо большое за ответы и ссылки) в "бриг крик" лежит только файл квеста, никаких картинок нет) хотя из кода выкопал пару интересных вещей. Попробую поработать с html, сопоставлю свои возможности с тем, что требуется. О, вспомнил! "Бриг КРИК" участвовала еще в КРИЛ-2008, и ее можно найти в архиве участников данного конкурса.

qwerty: Ktirff, вот простая прога с комментариями: ; это- комментарий :размышления pln pln что бы ещё сделать? pln номер=rnd3 ; генерим случайное число от 1 до 3 включительно btn дело_#номер$, придумать ; вместо #номер$ подставится значение переменной 'номер' end :дело_1 ; если номер=1, попадём сюда pln pln а напишу-ка я супер-мега квест! pln btn размышления, дальше end :дело_2 pln pln а напишу-ка я новый urql-интерпретатор! pln btn размышления, дальше end :дело_3 pln pln а забью-ка я на всё, и лягу спать! pln btn размышления, думать ещё btn конец, лечь спать end :конец pln pln --- КОНЕЦ --- pln end

noname: Ktirff пишет: вот эта странная переменная r, как она работает ну, к написанному qwerty могу добавить только: читай описание языка URQL от Korwinа. скачать его можно, например, в шапке ЭТОЙ темы по второй ссылке цитирую: ; Это комментарий в одну строку ещё: Rnd[Num] - целое случайное число от 1 до Num, меняется при каждом вызове. и ещё: 17). "#переменная$" - вставляет значение числовой переменной. Использование: Обычно так и используется. Пример: x=5 pln #x$ goto b#x$ btn b#x$,Неизвестная локация 18). #%переменная$ - вставляет значение строковой переменой. Использование: Обычно так и используется. Пример: instr x=loc pln #%x$ goto b#%x$ btn b#%x$,Неизвестная локация как это работает- см пост qwerty чуть выше ну, теперь не должно остаться никаких неясностей

Ktirff: Спасибо, разобрался :) Фон вставлять можно, через стандартные html-тэги :) Вероятно, еще появятся вопросы, тогда обращусь к вам и вашему терпению) вот, кстати, чего удалось добиться на данный момент http://keep4u.ru/imgs/b/2009/03/18/35/35fb30579a654a494f.jpg

qwerty: выглядит вкусно! Ktirff пишет: [в Акурке] Фон вставлять можно, через стандартные html-тэги :) это как? не все это знают- поделись, плиззз to uux: О, вспомнил! "Бриг КРИК" участвовала еще в КРИЛ-2008, и ее можно найти в архиве участников данного конкурса конкурс "КРИЛ-2007"

Ktirff: Чтобы сделать фон, я воспользовался такой формой (возможно, в ней есть что-то лишнее): <style type="text/css"> body {background-image: url(#quest_path$/[имя картинки с расширением]); } </style> Теперь меня волнует проблема вставки стандартного urql в этот html-код) Как можно воспользоваться операторами if, input и аналогичными. В faq по Акурке Корвин указал только пример работы с pln, btn. Какие-то интересные моменты, заметил в квесте "возрождение" http://urq.plut.info/node/137 . Попробую там покопаться)..

noname: дай простой пример того, что хочешь сделать. вот, переведённый в html, пример про самурая: :1 invkill perkill html true btn_visible false inv_visible false goto 2 end :2 r=rnd2 <html> Ты стоишь у очень широкого обрыва<br> Ветер обдувает решительное лицо,<br> Лучи заходящего солнца окрасили обнажённую катану.<br> За спиной- враг<br> <br> <a href="btn:#2+r$">говорить</a><br> <a href="btn:#4+r$">действовать</a><br> </html> end :3 <html> вариант говорить- А<br> <br> <a href="btn:2">откат</a><br> </html> end :4 <html> вариант говорить- Б<br> <br> <a href="btn:2">откат</a><br> </html> end :5 r=rnd2 if r=2 then goto 7 <html> действие успешно<br> <br> <a href="btn:2">откат</a><br> </html> end :6 <html> действие неудачно<br> <br> <a href="btn:2">откат</a><br> </html> end :7 <html> критический успех!<br> <br> <a href="btn:2">откат</a><br> </html> end

Ktirff: Мне надо сделать html-обработку оператора if, как то: :Бар pln Горький дым мешает разглядеть обстановку бара. Что вы хотите сделать? btn бармен,подойти к бармену if Записка then btn столик,сесть за столик if matrix=0 then btn незнакомец,пройти в дальнюю сторону зала end Если надо изменять параметры переменных, то они объявляются до <html> вставки, это я уже понял)

qwerty: ну, поскольку ни с html, ни с Акуркой толком не знаком, могу предложить лишь не вполне удобный вариант. а именно- переименовывать кнопки например, так: :инициализация invkill perkill html true btn_visible false inv_visible false ; список переменных записка=0 ; флаг наличия записки, которую ГГ найдет в Баре matrix=-13 ; флаг глюка матрицы ; обсчёт всех переменных proc обсчт ; Акурка, блин, не различает ё и е goto Бар end :Бар <html> Горький дым мешает разглядеть обстановку бара. Что вы хотите сделать?<br><br> <a href="btn:#%Бар_бат2$">#%Бар_кап2$</a><br> <a href="btn:#%Бар_бат3$">#%Бар_кап3$</a><br> </html> end :светильники записка=1 ; в случаях, когда значения переменных могли измениться ; вызываем процедуру обсчёта ; после работы с переменными, но до html-вставки proc обсчт <html> На столиках расставлены оригинальные китайские фонарики. Под одним из них, ты заметил клочок бумаги<br><br> <a href="btn:#%Бар_бат2$">#%Бар_кап2$</a><br> <a href="btn:#%Бар_бат3$">#%Бар_кап3$</a><br> <a href="btn:Бар">осмотреться</a><br> </html> end :посетители matrix=0 proc обсчт <html> Завсегдатаи бара пьют, общаются, расслабляются. В дальней стороне зала, твоё внимание привлёк одинокий незнакомец. Причудливая игра теней, странным образом, постоянно меняет его внешность<br><br> <a href="btn:#%Бар_бат3$">#%Бар_кап3$</a><br> <a href="btn:#%Бар_бат2$">#%Бар_кап2$</a><br> <a href="btn:Бар">осмотреться</a><br> </html> end :столик <html> Ты сидишь за столиком, на котором из-под светильника виден клочок бумаги<br><br> <a href="btn:Бар">встать</a><br> </html> end :незнакомец <html> Ты подошёл к странному незнакомцу<br><br> <a href="btn:Бар">отойти</a><br> </html> end :обсчт if записка=1 then Бар_бат2= "столик" & Бар_кап2= "сесть за столик" if записка=0 then Бар_бат2= "светильники" & Бар_кап2= "осмотреть светильники" if matrix=0 then Бар_бат3= "незнакомец" & Бар_кап3= "пройти в дальнюю сторону зала" if matrix<>0 then Бар_бат3= "посетители" & Бар_кап3= "осмотреть посетителей" end ; идея в том, что бы подменять те ссылки, которых не должно быть видно, ссылками на нечто, не важное для сюжета, а лишь создающее атмосферу квеста

noname: qwerty, скрывать кнопки в html можно. если нужно (тема про досурку ударилась твёрдо ушла в сторону Акурки, а это- не мой конёк). так, например, в следующем мини-примере ссылка целиком хранится в одной текстовой переменной. а если это переменная пуста- то и ссылки не будет(так что твой пример можно здорово упростить, и при этом УБРАТЬ не нужные кнопки, как того хотел автор(Ktirff). твой пример переделывать не буду, а только дам иллюстрирующий мини-примерчик: :инициализация invkill perkill html true btn_visible false inv_visible false instr a= <a href="btn:1">опробовать</a> ; убери комментарий со следующей строки, ; и сравни результат: ;instr a= goto 001 end :001 <html> Вот лежит колобок, без рук, без ног. Помнит [#гг_закл$] заклинаний<br><br> #%a$ </html> end

qwerty: подведу итог: видимо, наиболее корректным стилем программирования под Акурку, с использованием html будет предварительное формирование html-текста в особой переменной: ; заполняем куски текста. как-нибудь так: if ... then text1= ... if ... then text2= ... if ... then text3= ... ; что бы пропустить переменную- присваиваем ей пустое значение instr код_локации = #%text1$#%text2$#%text3$ ; собственно, 'код_локации' можно тоже формировать с ифами <html>#%код_локации$</html> ; вот и всё т е 'безусловные' локации делаем как обычно, а в начале составных локаций, составляем их текст с использованием переменных text1..textn ИМХО- проще не придумаешь. и, повторюсь, я на самом деле не знаю языка html, и поддерживает ли Акурка какие-то ещё его возможности, кроме вывода текста(с форматированием и выбором шрифтов/цвета и т п), и гиперссылок, и картинок(в т ч - фона) // все примеры с html-вставками проверял на Акурке pre6

noname: переходим к водным процедурам... то есть, от Акурки к fireurq. вот, например, очередной пример игры-головоломки. никаких специфических функций fireurq в игре не используется, НО что бы перевести её на Акурку, возможно, понадобится изменить работу с токенами. а для перевода на dos_urq, возможно, понадобится изменить выводимые строки, что бы они нормально размещались на экране. не знаю- тестировал только на fireurq когда Вы в неё поиграете- поймёте, что тестировать эту игруху было ой, как не просто // блин, и как в этой фразе правильно расставить запятые? короче, вот эта игруха: // кажися, Korwin любил головоломки? ; посадить ... [на плот] ; высадить ... [с плота] ; переплыть [реку [на плоту]] :инициализация invkill perkill clrscr=1 cls instr перс1им= маму instr перс2им= Таню instr перс3им= Машу instr перс4им= папу instr перс5им= Ваню instr перс6им= Борю instr перс7им= зэка instr перс8им= копа перс1где = 1 ; 1-2-3 берег-плот-перег перс2где = 1 перс3где = 1 перс4где = 1 перс5где = 1 перс6где = 1 перс7где = 1 перс8где = 1 там1= 8 ; кол-во персонажей там там2= 0 там3= 0 плот_где= 1 ; 1-3 ходы=0 goto intro end :intro pln pln Представляю Вашему вниманию ГОЛОВОЛОМКУ, на подобии "волк,коза и капуста". Неблагополучная семья, и полицейский с заключённым направляются в исправительное поселение. В игре время не ограничено, но для получения максимального фана от игры, рекомендую засечь время. Интересно, как быстро Вы сможете её решить? pln btn rules, правила головоломки end :rules pln pln Цель игры: Перевести группу из 8-ми человек через реку. Когда все буду на другом берегу- победа твоя pln pln Правила такие: Перебраться через реку можно только на плоту. Одновременно на плоту помещаются не более 2-х человек. Управлять плотом умеют только родители и полисмен. Нельзя оставлять заключённого с членами семьи без присмотра полицейского. Нельзя оставлять папу с дочками без присмотра мамы. Нельзя оставлять маму с сыновьями без присмотра папы pln btn ruling, управление игрой end :ruling pln pln Управление осуществляется посредством ввода команд с клавиатуры pln pln Игра понимает следующие команды: pln pln посадить <кого-то> [на плот] pln высадить <кого-то> [с плота] pln переплыть [реку [на плоту]] pln pln например: посадить зэка на плот pln pln в квадратные скобки заключена необязательная часть команды pln btn start, начать игру end :start clrscr=1 cls if плот_где=1 then pln плот находится у первого(исходного) берега реки pln p На другой берег нужно переправить #там1$ чел: n=0 :start_label1 n=n+1 if перс#n$где=1 then p #%перс#n$им$ if n<8 then goto start_label1 pln pln p На плоту мы видим #там2$ чел: n=0 :start_label2 n=n+1 if перс#n$где=2 then p #%перс#n$им$ if n<8 then goto start_label2 pln pln p Уже удалось переправить #там3$ чел: n=0 :start_label3 n=n+1 if перс#n$где=3 then p #%перс#n$им$ if n<8 then goto start_label3 pln pln if плот_где=3 then pln плот находится у желаемого(второго) берега реки instr vvod= пусто input vvod if vvod="" then goto start tokens vvod if token1= "посадить" then goto action_посадить if token1= "высадить" then goto action_высадить if token1= "переплыть" then goto action_переплыть goto action_help end :action_help clrscr=1 cls pln pln *** введена неизвестная команда "#%token1$" ! *** pln pln Игра понимает следующие команды: pln pln посадить <кого-то> [на плот] pln высадить <кого-то> [с плота] pln переплыть реку [на плоту] pln pln в квадратные скобки заключена необязательная часть команды pln pln команды нужно вводить именно в такой форме. например: посадить зэка на плот pln pln *** никаких других команд игра не понимает! *** btn start, ОК! end :action_help2 clrscr=1 cls pln pln ** указан неизвестный персонаж "#%token2$" ! ** pln pln Для команд "посадить" и "высадить" нужно указывать персонажа именно так, как он упомянут в описании ситуации. соблюдая падеж, регистр букв, и прочая pln pln Например: pln посадить папу pln высадить Машу pln pln ** игра понимает лишь минимальный набор жёстко заданных команд! ** btn start, ОК! end :action_help3 clrscr=1 cls pln pln * Вы уже посадили "#%token2$" на плот до этого ! * pln pln внимательно читайте описание ситуации btn start, ОК! end :action_help4 clrscr=1 cls pln pln * персонажу "#%token2$" не удаётся забраться на плот! * pln pln плот находится у другого берега реки btn start, ОК! end :action_help5 clrscr=1 cls pln pln * персонажу "#%token2$" не удаётся забраться на плот! * pln pln на плоту уже находится два человека. больше туда никто не поместится btn start, ОК! end :action_help6 clrscr=1 cls pln pln * "#%token2$" не удаётся высадить с плота! * pln pln Этот персонаж находится на берегу btn start, ОК! end :action_help7 clrscr=1 cls pln pln * не удаётся переплыть реку! * pln pln На плоту нет никого, кто умел бы им управлять. Это умеют только мама, папа и коп btn start, ОК! end :action_посадить n=0 flag1=0 :action_посадить_label1 n=n+1 if перс#n$им=token2 then goto action_посадить_label2 if n<8 then goto action_посадить_label1 goto action_help2 :action_посадить_label2 if перс#n$где=2 then goto action_help3 if перс#n$где<>плот_где then goto action_help4 if там2=2 then goto action_help5 перс#n$где=2 там2=там2+1 там#плот_где$= там#плот_где$-1 ходы=ходы+1 goto start end :action_высадить n=0 flag1=0 :action_высадить_label1 n=n+1 if перс#n$им=token2 then goto action_высадить_label2 if n<8 then goto action_высадить_label1 goto action_help2 :action_высадить_label2 if перс#n$где<>2 then goto action_help6 перс#n$где=плот_где там2=там2-1 там#плот_где$= там#плот_где$+1 ходы=ходы+1 goto start end :action_переплыть if (перс1где<>2)and(перс4где<>2)and(перс8где<>2)then goto action_help7 плот_где=4-плот_где ; автоматическая высадка(для облегчения проверки недопустимой ситуации) n=0 :action_переплыть_label1 n=n+1 if перс#n$где=2 then перс#n$где=плот_где & там2=там2-1 & там#плот_где$=там#плот_где$+1 if n<8 then goto action_переплыть_label1 ходы=ходы+1 ; проверки: зэк=7 коп=8 if (перс7где<>перс8где)and(там#перс7где$>1) then goto Failure1 ;мама=1 сыновья= 5 и 6, папа=4 if (перс1где<>перс4где)and((перс1где=перс5где)or(перс1где=перс6где)) then goto Failure2 ;папа=4 дочери= 2 и 3, мама=1 if (перс1где<>перс4где)and((перс4где=перс2где)or(перс4где=перс3где)) then goto Failure3 if там3=8 then goto victory goto start end :victory clrscr=1 cls pln pln + +++ +++++ ПОЗДРАВЛЯЮ ! +++++ +++ + pln pln Вам удалось решить эту головоломку за #ходы$ ходов pln pln + +++ +++++ +++++++ ВЫ ПОБЕДИЛИ !!! +++++++ +++++ +++ + pln pln и зэк с копом, и вся неблагополучная семейка успешно добрались до исправительного поселения Бобруйск-2050 btn инициализация, начать заново end :Failure1 clrscr=1 cls pln pln * нельзя оставлять зэка с любым из членов семьи без присмотра копа! * pln pln ... сцены секса и насилия вырезаны цензурой ... pln pln ***** игра окончена ***** pln btn инициализация, начать заново end :Failure2 clrscr=1 cls pln pln * нельзя оставлять маму с любым из сыновей без присмотра папы! * pln pln ... сцены секса и насилия вырезаны цензурой ... pln pln ***** игра окончена ***** pln btn инициализация, начать заново end :Failure3 clrscr=1 cls pln pln * нельзя оставлять папу с любой из дочерей без присмотра мамы! * pln pln ... сцены секса и насилия вырезаны цензурой ... pln pln ***** игра окончена ***** pln btn инициализация, начать заново end

qwerty: щазз перевыложу. при выкладывании сообщением пробелы урезаются. я это знал. обычно это не критично для игры, НО не на этот раз. выкладываю 'нормальную' версию, т е ту же прогу, но 'прикреплённым' файлом. игра проверена. пройти можно, но сложно нажми сюда, что бы скачать файл 'головолом.qst' со slil.ru p.s. прошу прощения за нечаянную лажу подпись: noname (он же= qwerty) upd и, да- файл на сервисе slil.ru автоматически удаляется через месяц после последнего скачивания...

Chicago1920: А вот такой вопрос на смекалку. Как говорил великий (?) Евг(?) - "в урке немного возможностей, но при должной смекалке...". так вот... a=0 :1 cls a=a+1 pln #a$ pause 1000 ;эникей goto 1 end Простой пример. Зацикленная локация. И тут... Я хочу ввести в локации эникей. Соответственно дойдя до него, система встанет в ожидании нажатия клавиши. И не произойдет переход по goto. Можно ли каким то оригинальным кодом это обойти?

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

noname: Chicago1920А вот такой вопрос на смекалкузвучит так, как будто это возможно, и ты знаешь как. чему я удивлён можно попробовать так: засечь текущее время в тиках(1/50мс), поставить паузу требуемой длительности(желательно от 2сек и более). после паузы опять засечь время в тиках, и сравнить разницу. если была нажата клавиша, то разница по времени будет меньше паузы, так как нажатие клавиши прерывает паузу таким образом, можно вести отчёт, как в твоём примере, и в то же время среагировать на нажатие клавиши если нужно что-то более другое- поясни, какой конкретно эффект должно производить нажимание клавиш --- гораздо проще всё вышеописанное можно реализовать другим, более традиционным способом: a=0 :1 cls a=a+1 pln #a$ btn fin, конец pause 2000 goto 1 end :fin end --- естественно, кнопок может быть и больше // тестировано на dos_urq

Chicago1920: noname пишет: звучит так, как будто это возможно, и ты знаешь как. чему я удивлён Не хотел ввести тебя в заблуждение ненароком, но я этого не знаю. noname пишет: можно попробовать так: засечь текущее время в тиках(1/50мс), поставить паузу требуемой длительности(желательно от 2сек и более). после паузы опять засечь время в тиках, и сравнить разницу. если была нажата клавиша, то разница по времени будет меньше паузы, так как нажатие клавиши прерывает паузу таким образом, можно вести отчёт, как в твоём примере, и в то же время среагировать на нажатие клавиши Приведи маленький примерчик кода, пожалуйста.

qwerty: 1. для начала- пример с баттонами: ; сделано под dos_urq32 (под wcl версию не тестил) Clrscr=1 Urq_delay=0 a=0 :1 cls a=a+1 pln #a$#%post$ btn a, a btn b, b btn fin, конец pause 2000 goto 1 end :a instr post= a goto 1 end :b instr post= b goto 1 end :fin end ; конец программы 2...... так как нажатие клавиши прерывает паузу извиняюсь, ошибся. нажатие баттона прерывает паузу, а простое нажатие клавиш- нет. к сожалению... таким образом, приводить пример незачем 3. насчёт того, как засечь и сравнить время можно посмотреть в конце описания, среди полезных алгоритмов от "мэтров": Goraph Паузы меньше секунды в досурке, как известно, не работают :) Однако есть алгоритм, который позволяет их реализовывать. В начале квеста замеряем величину паузы длиной в секунду (лучше взять паузу побольше если вам нужна точность - пауза в 40-60 секунда обеспечит вам лучшую точность чем секундная пауза). Зачем это нужно? Просто досурка и гуи досурка возвращают разные значение времени, плюс оно может быть разным на разных компьютерах - поэтому мы вычилсляем значение для той среды, в которой мы запущены. t1=time pause 1000 t2=time t_etalon=(t2-t1)/1000 ;Там где нам нужна пауза, пишем такой код - величина паузы в миллисекундах - в данном случае полсекунды пауза=500 & proc stop ; а вот и сама процедура, которая делает нашу паузу длинной меньше секунды :stop стоп_таймер=time пауза=пауза*t_etalon if t_etalon=0 then пауза=1 :stop_loop if (time-стоп_таймер)‹пауза then goto stop_loop end Данный код придуман и разработан всеми любимым Евгом. Я его лишь несколько уточнил (на этапе временного эталона). 4. щаззз вышлю тебе личкой мыл. напиши, что ты хочешь сделать- подумаем, как... p.s. поскорее бы уйти от досурки к виндовому интерпретатору- надоело уже наблюдать, как всплывают очередные особенности работы досовских приложений под винду. хотя, говорят, под дос последняя досурка уже и не идёт, но от этого не легче

Chicago1920: А вот подскажите, почему этот код работает: :1 inv+ Оружие1 inv+ Оружие2 weapon=1 goto 2 end :2 cls p В руках оружие #weapon$ btn 2,2 end :Use_Оружие1_Взять в руки weapon=1 goto 2 end :Use_Оружие2_Взять в руки weapon=2 goto 2 end А этот уже нет: :1 inv+ Оружие1 inv+ Оружие2 weapon=1 goto 2 end :2 cls p В руках оружие #weapon$ pause 2000 goto 2 end :Use_Оружие1_Взять в руки weapon=1 goto 2 end :Use_Оружие2_Взять в руки weapon=2 goto 2 end Вернее неккоректная работа с инвентарем. Тестировалось на акурке.

noname: А вот подскажите, почему этот код работаетс точки зрения URQL правильно будет так: :1 inv+ Оружие1 inv+ Оружие2 weapon=1 goto 2 end :2 cls p В руках оружие #weapon$ btn 2,2 end :Use_Оружие1_Взять в руки weapon=1 end :Use_Оружие2_Взять в руки weapon=2 end НО 1. на AkURQpre6 корректно это работать НЕ будет 2. в досурке(dos32/dos_urq) - работает нормально, после выхода из инвентаря выполняется код локации 2, и игрок видит правильное отображение текущего оружия. (по умолчанию cls НЕ очищает весь экран- режим работы оператора cls задаётся системной переменной clrscr) 3. в fireurq это почти работает... куда конкретно передаётся управление по выходе из инвентаря- не ясно, НО во всяком случае не на метку 2. это видно потому, что при выборе оружия инфа не обновляется- надо жать баттон "2". зато твой, Chicago1920, некорректный пример работает одинаково хорошо на всех упомянутых интерпретаторах. в отличие от корректного варианта, который верно работает лишь на досурке. вот такие вот пироги... --- А этот уже нетэтот пример, равно как и его более корректная модификация (без переходов из инвентаря) работает лишь на fireurq. досурка "прощёлкивает", видимо, из-за отсутствия баттонов, а Акурка вообще имеет свою загадочную логику работы с инвентарём --- p.s. а вот если бы я делал боёвку, я бы сделал так: где-нибудь в начале игры ( или даже- внизу каждого экрана вывода) писал бы сообщение "h= help", или что-то в этом духе (естественно, это- не вместо, но в дополнение к инструкции во вступительном меню). в любой момент игры по нажатию кнопки "h" выводился бы список управляющих клавиш(по нажатию <esc>- возвращаемся к отображению текущей ситуации). список, например, такой: " h- показывает список управляющих клавиш 1- выбор оружия1 2- выбор оружия2 i- показать весь инвентарь для возврата нажмите h ещё раз " а вся обработка делалась бы через anykey. очень удачно это можно сделать на досурке. в смысле внешнего вида. ну, для тех, кому не страшен серый ДОС, я имею ввиду. с закосом под традиционные рогалики. это- лишь один из возможных вариантов, который хорошо подойдёт не ко всякой игрухе //--- и, да- буду рад комментариям знатоков Акурки и Фурки относительно того, куда уходит цирк передаётся управление после выполнения действия над предметом из инвентаря

Chicago1920: noname пишет: а вот если бы я делал боёвку, я бы сделал так я вот тоже уже склоняюсь к этому варианту. спасибо тебе за столь скурпулезный анализ!

Malevi4: Помогите вылажите норм ссылку на скачку проги для написания этих квестов, а то что не скачиваю так ток проигрыватели

Chicago1920: Malevi4 , да можешь в блокноте или в вордпаде писать. потом сменишь расширение на *.qst

Chicago1920: Вопрос к qwerty или к noname'у , так как он ловко решает любые задачки касательно кода. За что тебе огромное спасибо!!! Итак, вопрос связанный с математикой. Сразу скажу, ответа я не знаю, но хотел бы узнать. Допустим у нас есть трехмерное пространство. с координатами x,y,z. Причем, каждая из этих переменных может иметь значение от 0 до 100. И так же допустим, что каждая точка в этих координатах равна 0. Далее, вводим точку=1 с координатаи x=50,y=50,z=50. Задачка. Написать код, чтобы вокруг этой точки, создать куб допустим размерами 10/10/10, где все точки будут равны 1. Задачка2. Сложнее. Создать вокруг заданной точки шар, с заданным значением радиуса. Например 20 точек. Был бы очень признателен за ответ.

qwerty: Chicago1920 пишет: Malevi4 , да можешь в блокноте или в вордпаде писать. потом сменишь расширение на *.qst истинно так. но скажу ещё: можно в своём менеджере файлов(о, какое умное слово!), ну т е в твоём Total Commander, или Far, или что там у тебя ещё, ну короче- можно в нём создавать и редактировать текстовые файлы. расширение можно сменить на *.qst простым переименовыванием. НО можно проигрывать и не переименованные файлы(например с расширением *.txt) Malevi4, если будут ещё вопросы- всегда рад ответить

noname: UPD: Задача2 тоже простая, но мне щазз срочно надо бежать в гости к нужному человеку- щазз пытаююсь устроиться на работу ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Chicago1920, попробую ответить на первую задачку. даже не буду пытаться понять, зачем это нужно, так что условия оставляю по возможности немодифицированными итак, Задача1: а) как только программа запустилась, мы уже вправе считать, что у нас есть такое пространство, заполненное нулями, и обращаться с ним соответственно- ведь изначально все переменные обнулены (однако не лишне использовать perkill для очистки переменных при игре заново, без выхода из программы). будем считать, что у нас есть массив x0..x100,y0..y100,z0..z100, заполненный нулями б) я так понимаю, что сама точка 50/50/50 должна содержать единицу. а так же одинаковое кол-во точек влево и вправо от неё, которые являются частью куба, тоже будут содержать единицы. тогда получаем: (N+N+1=нечётное число), а никак не 10. для решения задачи принял диаметр(то самое кол-во точек влево и вправо) равным 5, тогда куб будет иметь размеры 11/11/11 в) если б знал, зачем это нужно- возможно, сделал бы проще г) итак, вот сама прога: точки1 д) поскольку прикреплённые через zalil файлы уничтожаются через месяц после последнего скачивания, то выкладываю текст проги для истории (однако читать его с сайта не так уж и удобно- нет пробелов-отступов): :1 invkill perkill xpixel= 50 ypixel= 50 zpixel= 50 diameter= 5 goto just_do_it end :just_do_it cx2=xpixel+diameter cy2=ypixel+diameter cz2=zpixel+diameter cx1=xpixel-diameter :loop_cx cy1=ypixel-diameter :loop_cy cz1=zpixel-diameter :loop_cz проверка=проверка+1 ; кол-во точек x#cx1$=1 y#cy1$=1 z#cz1$=1 cz1=cz1+1 if cz1<=cz2 then goto loop_cz cy1=cy1+1 if cy1<=cy2 then goto loop_cy cx1=cx1+1 if cx1<=cx2 then goto loop_cx goto report end :report надо=(diameter*2+1)*(diameter*2+1)*(diameter*2+1) if проверка=надо then goto успех pln pln в программу вкралась ошибка, о повелитель! pln (да прославится твоё имя в веках) pln не вели казнить, вели слово молвить: pln Твои никчёмные рабы(да падёт позор на их головы) pln заполнили #проверка$ точек, вместо #надо$! end :успех pln pln задание выполнено успешно pln заполнено #проверка$ точек end

Chicago1920: noname кхм... там внутри куба все точки=1 ? Может чуть закоментишь ход расчета?

Malevi4: Вот еще один вопрос есть ли таки проигрыватели и команды что бы к описанию локации или персонажа и тд появлялись картинки, корочь чтоб игра сопровождалось не только описанием месности но и ее рисунком. Если да то скажите какая команда делает это и какие проигрыватели для этого существуют. То же самое касается и мелодии, музыки. Возможно ли это в таких играх?

Malevi4: корочь планирую сделать реал очь интересню игруху с картинками муз сопровождением и тд кто всегда готов помочь =) плз дайте аську свою иль контакт плз.

Серый Волк: Malevi4 - да, использование музыки возможно. Оформление описаний локаций картинками так же возможно, делается это просто. Когда у нас заработает сайт, а сайт заработает когда мистер Ай-яй-яй (он же латыш, он же бревно, он же евг, он же хозяин http://urq.plut.info/ , он же повелитель вестника !Евг, где свежий выпуск вестника? народ жаждет!)... фу...какое улиточное предложение)) нельзя так писать. Так вот, когда заработает сайт (в оч ближайшее время) мы с удовольствие поделимся ссылками на те проигрыватели, которые поддерживают интересующие тебя возможности, а noname одним лёгким пассом над клавиатурой расскажет, как вставлять всякую там мультимедию в текстовые игры. =)

Malevi4: спс жду с нетерпением буду пока сюжед дальше продумывать

Серый Волк: Malevi4 а вообще... скинь в ЛС адрес ящика, вышлю и прогу и справочник к ней. Менее пяти минут изучения последнего и ты с легкостью озвучишь и раскрасишь картинками тексты.

uux: Собственно, можно и без лички. Вот здесь все ссылки на AkURQ (1.28 pre 1 и pre 6) рабочие. AkURQ 1.28 pre 1 считается несколько более стабильной. AkURQ и есть интерпретатор урки с поддержкой картинок. А здесь можно хелп по ней найти. AkURQ 2 - увы, глубокая бета и уже, видимо, навсегда.

Malevi4: скинул те ящик напишу на всяк еще здесь flop94@bk.ru

Malevi4: Почитаю мануалы но надеюсь тут тож напишут как вставить картинку и музыку

noname: Chicago1920 пишет: noname кхм... там внутри куба все точки=1 ? нет, там- грубая ошибка. спешил. а теперь- засыпаю... но задача и вправду простая, только координаты точки надо было сделать x#cx1$y#cy1$z#cz1$=1 т е три координаты точки это- одно, а при обращении к массиву точек все эти три координаты должны быть в одной переменной (аналогично a[cx1,cy1,cz1]:=1 в паскале) завтра выложу правильное решение хорошо было бы ещё встроить более совершенную проверку, но на это уж времени может и не быть- щазз готовлюсь к поступлению на новую работу (когда высплюсь). старую я вчера бросил

qwerty: Malevi4 пишет: Почитаю мануалы но надеюсь тут тож напишут как вставить картинку и музыку напишут. завтра. насколько я помню, выложенные на одном из последних урковских конкурсах игрухи ВСЕ шли, в том числе и под Акурку пре6. несмотря на то, что были писаны под разные платформы(ну, там ещё про Алису в urq-ляндии было). так что думаю, имеет смысл ориентироваться именно на неё вообще, я Акурку плохо знаю, так что будем разбираться вместе. и следует учитывать тот факт, что: возможно, срок от запроса в тему до моего ответа на него увеличится до 1-й недели. впрочем, есть ещё надежда на 'помощь зала' да и на досурке мой опыт не велик. кстати, Malevi4, а ты не пробовал искать ответ на свой вопрос в этой теме? вдруг нечто подобное уже обсуждалось?

Malevi4: Пишу я квест на SMSquest, как понял для акурки =), с тем как вставлять мелодию немного разобрался, а насчет картинок надеюсь на вашу помощь. И еще один вопросик, как сделать так чтоб человек мог сохранить игру? И желательно чтоб он всегда имел возможность перейти в главное меню.

Chicago1920: Malevi4 Тебе картинки как нужно - просто отдельное окошко с картинкой чтоб появилось или вставить в окно проигрывателя в игру (как в вэб страничке?) Нужно ли наложение картинок? Т.е. Поверх главной картинки, в заданные места можно поверх нарисовать еще картинок (например для отражения места персонажа на карте)? Если что, пиши сюда, в личку, на мыло Chicago1920@mail.ru или аську 254881271.

noname: Chicago1920, вот свежая версия задачи1: ( проверено на dos32\urq_dos ) :1 invkill perkill ; ; параметры программы: ; координаты точки, ; и 'диаметр' квадратного заполнения ; xpixel= 50 ypixel= 50 zpixel= 50 diameter= 5 ; ; размер массива нам щазз неважен: ; он может быть хоть бесконечным во все стороны ; goto just_do_it end :just_do_it ; ; заполняем единицами кубическую область массива ; от cx1/cy1/cz1 = 45/45/45 ; до cx2/cy2/cz2 = 55/55/55 (включительно) ; cx2=xpixel+diameter cy2=ypixel+diameter cz2=zpixel+diameter cx1=xpixel-diameter :loop_cx cy1=ypixel-diameter :loop_cy cz1=zpixel-diameter :loop_cz проверка=проверка+1 ; кол-во точек элемент_x#cx1$_y#cy1$_z#cz1$=1 cz1=cz1+1 if cz1<=cz2 then goto loop_cz cy1=cy1+1 if cy1<=cy2 then goto loop_cy cx1=cx1+1 if cx1<=cx2 then goto loop_cx ; ; в циклах особой сложности нет- просто три вложенных цикла ; счётчики циклов- cx1,cy1 и cz1 ; сначала заполняем строчку от (cx1,cy1, zpixel-diameter) ; до ( cx1, cy1, z2) ; т е для начальных cx1 и cy1 заполняем весь диапазон по z ; затем- наращиваем cy1 на единицу, ; и- повторяем цикл по z сначала до конца ; когда и по y дойдём до конца- ; нарастим на единицу cx1 ; после чего опять повторим цикл по y с самого начала ; а в него вложен цикл по z ; ИТОГ: ; в цикле по X для каждого X будет выполнен с начала до конца цикл по Y ; в цикле по Y для каждого Y будет выполнен с начала до конца цикл по Z ; в цикле по Z элементу с текущими координатами cx1 cy1 cz1 присваиваем =1 ; ; таким образом в трёх циклах перебираются все элементы, ; а в их сердцевине производится всего два действия: ; проверка=проверка+1 ; кол-во точек ; элемент_x#cx1$_y#cy1$_z#cz1$=1 goto report end :report надо=(diameter*2+1)*(diameter*2+1)*(diameter*2+1) if проверка=надо then goto успех pln pln в программу вкралась ошибка, о повелитель! pln (да прославится твоё имя в веках) pln не вели казнить, вели слово молвить: pln Твои никчёмные рабы(да падёт позор на их головы) pln заполнили #проверка$ точек, вместо #надо$! end :успех pln pln о, великий, задание выполнено успешно! pln заполнено #проверка$ точек pln btn проверить, проверить end :проверить pln pln введите координату x: pln input cx1 pln pln введите координату y: pln input cy1 pln pln введите координату z: pln input cz1 pln pln элемент_x#cx1$_y#cy1$_z#cz1$ = #элемент_x#cx1$_y#cy1$_z#cz1$ $ pln btn проверить, проверить ещё end

qwerty: Chicago1920, вот задача2: (проверено на старой доброй досурке) :1 invkill perkill clrscr=1 urq_delay=0 ; ; параметры программы: ; координаты точки, диаметр заполнения ; xpixel= 50 ypixel= 50 zpixel= 50 diameter= 5 ; ; задаём кубическую область, в пределах которой ; будем проверять все точки на вхождение в шар: ; xmin= xpixel-diameter ymin= ypixel-diameter zmin= zpixel-diameter xmax= xpixel+diameter ymax= ypixel+diameter zmax= zpixel+diameter ; ; обращаться к элементам массива будем, например, так: ; элемент_x12_y10_y5=1 ; goto just_do_it end :just_do_it cx = xmin :loop_cx cy = ymin :loop_cy cz = zmin :loop_cz ; ; *** а вот здесь всё и происходит ; ; расстояние м/ду двумя точками вычисляется как корень суммы квадратов разниц координат ; r= sqrt( (x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2 ; и если расстояние от текущей точки до центра заполнения не больше диаметра, ; то- присваиваем элементу с текущими координатами единицу ; ; НО на самом деле мы будем сравнивать квадрат диаметра с суммой квадратов разниц координат, ; так как корень на урке сделать- это уже другая задача, и лучше возложить её на движкоделов ; r= (xpixel-cx)*(xpixel-cx) + (ypixel-cy)*(ypixel-cy) + (zpixel-cz)*(zpixel-cz) if r <= (diameter*diameter) then элемент_x#cx$_y#cy$_z#cz$=1 & проверка=проверка+1 cls pln x= #cx$ из #xmax$ ; ; ; ; *** теперь осталось только 'закрыть' циклы ; cz=cz+1 if cz <= zmax then goto loop_cz cy=cy+1 if cy <= ymax then goto loop_cy cx=cx+1 if cx <= xmax then goto loop_cx cls goto успех end :успех pln pln задание выполнено успешно! pln заполнено #проверка$ точек pln btn проверить, проверить end :проверить pln pln введите координату x: pln input cx pln pln введите координату y: pln input cy pln pln введите координату z: pln input cz pln pln элемент_x#cx$_y#cy$_z#cz$ = #элемент_x#cx$_y#cy$_z#cz$ $ pln r= (xpixel-cx)*(xpixel-cx) + (ypixel-cy)*(ypixel-cy) + (zpixel-cz)*(zpixel-cz) ; pln квадрат расстояния от этого элемента до центра заполнения = #r$ if r < (diameter*diameter) then pln и он находится внутри области заполнения if r = (diameter*diameter) then pln и он находится на границе области заполнения if r > (diameter*diameter) then pln и он находится за пределами области заполнения pln btn проверить, проверить ещё end

Malevi4: У кого был опыт написания таких игр с помощью html кода. Плз обьясните в чем проблема. Пишу: <br><HR><br><p align="center"><font size=4 face= Comic Sans MS> <a href="btn:1">Начало игры</a><br> <br><br> Но шрифт не меняется

noname: Malevi4 пишет: У кого был опыт написания таких игр с помощью html кода. Плз обьясните в чем проблема. Пишу: <br><HR><br><p align="center"><font size=4 face= Comic Sans MS> <a href="btn:1">Начало игры</a><br> <br><br> Но шрифт не меняется а если взять название шрифта, в котором есть пробелы, в кавычки- работает: ;Версия 1.0 html true btn_visible false inv_visible false Music="\sound\A.mid" :0 <html> <div align="center"><img src="#quest_path$/pic/0.jpg" class="foto"></div><br> <HR><br> <p align="center"> <font size=4 face="Comic Sans MS"> Книга адресована детям 10 лет и старше.<br> Это книга-игра, где тебя ждет множество приключений, - на этот раз тебя похитили террористы.<br> Время от времени тебе придется делать выбор. Что принесет он? Успех или поражение? Твои приключения - результат твоего выбора. Тебе самому решать, куда пойти, что сделать.<br> И помни: назад пути нет! Поэтому хорошенько подумай, прежде чем действовать. Игра есть игра: ты можешь проиграть, а можешь и выиграть!<br></p> <br><HR><br><p align="center"><font size=4 face=Arial> <a href="btn:1">Играть</a><br> <br><br></html> end ............... кусок кода взят из книгры "похищены", только вместо ариала в первую локацию вставил комика только жирность шрифта надо убрать- ИМХО жирный шрифт плохо смотрится на комике тестировано на AkURQ1.28pre6 особенно заметно отличие жирных комика и ариала на букве "е" попробуй поискать игру "похищены", если у тебя её ещё нет

Malevi4: Я по ее коду и делаю, но чет не сработало ща попробую с кавычьками

Malevi4: Еще вопрос я пробую перевест на акурке квест в екзешный файл с помощью (утилиты-квест к движку) Но когда загружаю екзешный файл все картинки и музыка пропадают в отличии если просто проигрывать квест на акурке.

qwerty: 10.06.09 в 00:21 Malevi4 пишет: Почитаю мануалы но надеюсь тут тож напишут как вставить картинку и музыку это- не совсем хороший запрос. пересмотрел мануал(по Акурке). там про всё это есть. и про сохранения. хороший вопрос, это когда ты, ознакомившись с мануалом, пытаешься что-то сделать, а оно почему-то не получается- это другое дело а мануал сюда перепечатывать смысла не вижу. ссылок вполне достаточно Malevi4 пишет: Еще вопрос я пробую перевест на акурке квест в екзешный файл с помощью (утилиты-квест к движку) Но когда загружаю екзешный файл все картинки и музыка пропадают в отличии если просто проигрывать квест на акурке. вот, это- хороший вопрос. тока этой утилитой лучше не пользоваться, по причине, которую можно прочитать в предупреждении, которое видно при запуске утилиты думаю, достаточно распространять сам квест отдельно, а движок- отдельно. если у человека уже есть установленная AkURQpre6, то ему совсем не сложно скачать и запустить игру: она по-любому будет занимать меньше места, чем экзешник, и к тому же, в отличие от экзешника, файл *.qst не может быть заражён вирусом если у человека ещё нет AkuURQpre6, то скачать её (146кб в архиве) тоже просто таким образом, предлагаю распространять движок- отдельно; игры- отдельно --- ещё вопрос: а не является ли невозможность сделать экзешник досадным косяком Акурки отвечаю: да, так оно и есть. и исправляться Акурка уже не будет... остаётся надеяться на Firetonа с его FireURQ

Malevi4: Мда... Просто думал так легче будет тем кто не знаком еще с акуркой просто сделать екзешник шоб сразу мой квест на акурке выбило. Как например в игре Похищены.

Malevi4: А да и про картинки с мелодией я уже разобрался пишу html кодом

noname: Malevi4 пишет: просто сделать екзешник шоб сразу мой квест на акурке выбило. Как например в игре Похищены тем, кто не знаком с Акуркой- можно сделать как в игре Похищены: запуск ч/з start.bat --- хотя, ИМХО лучше бы игры с их файлами не валить в одну кучу с платформой, а сделать им отдельную подпапку games в папке Акурки, а в ней- игры каждая в своей подпапке. запустить Акурку и выбрать квест не так уж и сложно. в конце-концов текстовые игры теоретически ориентированы на людей, умеющих и любящих шевелить мозгой извиняюсь, не сочтите за наезд- просто констатация факта + моё личное мнение

Malevi4: так я вот и спрашиваю как сделать файл этот с расширением bat

qwerty: Malevi4, в отличие от экзешников(*.exe), файлы с расширением *.bat вполне можно писать, так же как и наши квесты- в блокноте в данном случае достаточно всего одной строчки: akurq.exe quest.qst при запуске bat-файла эта строчка сработает так же, как если бы ты ввёл её с клавиатуры, т е- запустится акурка, а в ней запустится квест quest.qst // важно!: чтоб это сработало, файлы akurq.exe и quest.qst должны быть в одной папке с твоим bat-файлом суть ИМХО из сообщ noname как раз в том, что такой способ не очень хорош- посмотри на архив Похищены: там папки игры свалены в кучу с папками Акурки. НО этого можно было бы и избежать. ведь автор квеста сам указывает относительные пути к картинкам и музыке опять же- неудобство запуска квеста посредством AkURQ.exe всё-таки сильно преувеличено: наверняка твои друзья сталкивались с прогами, в которых можно загружать какие-то файлы. это- элементарная вещь. НО хозяин- барин: делай, как хошь- буду рад помочь

Malevi4: Спс я наверна уже надоел. Но в мануале который у меня есть не смог найти команды для сохранения игры в определенном месте с помощью html кода. Если не сложно напишите или поищите, прийду с концультации по экзаменам тож в инете полажу.

noname: 1 в html вроде как нет команды сохранения (кроме того, что я плохо знаком с досуркой и акуркой, я ещё совсем не работал с html. разбираюсь на ходу). НО такая команда есть в Акурке 2 если в проге используется html-код, это вовсе не значит, что надо отказаться от всего, что он делать не позволяет (кста, на 4-й странице темы есть что-то про html в акурке) 3 вопрос с сохранением в html-коде- это очень хороший вопрос. буду разбираться 4 и да, помощь знающих людей всегда приветствуется. я ведь так- всего лишь энтузиаст 5 и когда наконец fireton сделает интерфейс к FireURQ?

Malevi4: блин гдеж мне найти эту команду

qwerty: Malevi4 пишет: блин гдеж мне найти эту команду перечитай описание Акурки ещё раз. особенно текст, после слов Сохранение текста, выделенных жирным крупным шрифтом. если не найдёшь- дам свою ссылку на то описание, которое у меня пример использования сохранения в html-квесте: (тестировалось на Акурке pre6) invkill perkill html true btn_visible false inv_visible false :0 <html> <br> как только ты вошёл в лабиринт, за твоей спиной со страшным грохотом закрылась тяжеленная решётка<br> <br> <a href="btn:1">дальше</a><br> <br> </html> end :1 <html> <br> преддверие лабиринта пещер<br> <br> <a href="btn:2">идти на север</a><br> <a href="btn:3">идти на запад</a><br> <a href="btn:4">идти на юг</a><br> <a href="btn:5">идти на восток</a><br> </html> end :2 ; ; так как после загрузки игрок попадёт сюда, то ; надо позаботиться о включении html-режима снова ; ( при загрузке он отключается ) ; html true ; вот так <html> <br> в центре пещеры- столб странного света<br> <br> <a href="btn:1">вернуться назад</a><br> <a href="btn:2сохр">войти в освещённый круг</a><br> </html> end :2сохр save 2 ; после загрузки игрок попадёт в локацию 2 <html> <br> игра сохранена<br> <br> <a href="btn:2">дальше</a><br> </html> end :3 <html> <br> решётка преграждает путь к свободе<br> <br> <a href="btn:1">дальше</a><br> </html> end :4 <html> <br> тупик<br> <br> <a href="btn:1">вернуться</a><br> <a href="btn:4">отдохнуть</a><br> </html> end :5 <html> <br> ты умер в жутких муках,<br> но не увидел того, что тебя убило<br> <br> </html> end

Malevi4: Я извеняюсь, уже вас точно задолбал своими вопросиками но немогли бы вы мне это написать на этом примере. html true btn_visible false inv_visible false Music="\mus\1.mid" :7.5 x=7.5 <html> <font size=4 face=Arial> <style type="text/css"> body {background-image: url(#quest_path$/pict/2.bmp);} </style> <div align="center"><img src="#quest_path$/pict/6.bmp" class="foto"></div><br> <HR><br> <p align="center"> <font size=3 face=Arial> Я сорвал цветок и постучался в двери.<br> Их открыла красивая молодая девушка. Я не дал бы ей больше 25 лет.<br> У нее были темные волосы и глаза зеленого цвета. Она была одета в белое платье. Наконец-то я увидел и хозяина дома. Мущина был полной противоположностью хозяйки. Он был блондином с синими глазами. У него было спортивное телосложение, видно что он любит повисеть на турничьке. Одет он был в черную майку и синие джинсы.<br> - Ну что ж ты так стучишь! Ах да, симпотичьные цветочки, надеюсь вы посадите их потом обратно. - пошутила девушка.<br> - Так вы наверно наш новый сосед? - спросил мущина. </p> <HR><br><p align="center"><font size=3 face=Comic Sans MS> <a href="btn:8">Ответить:да я ваш новый сосед, мое имя Том Хоукинс</a> <br><br> </html> end :8 x=8 <html> <font size=4 face=Arial> <style type="text/css"> body {background-image: url(#quest_path$/pict/2.bmp);} </style> <div align="center"><img src="#quest_path$/pict/7.jpg" class="foto"></div><br> <HR><br> <p align="center"> <font size=3 face=Arial> Вообщем так мы и познакомились.<br> Женщину звали Люси Вэст, а мужщину Дэниэль Вэст.<br> Люси работала медсестрой ( в одной из местных полеклиник), а Дэн был археологом<br> Семья Вэстов произвела на меня хорошее впечатления, надеюсь я на них тоже.<br> Я не заметил как пролетело время, было уже очень поздно. Допив чай я отправился домой<br> Уставший от разпаковки моих вещей, я плюхнулся на кравать и сразу же заснул.<br> Именно с этого сна все и началось... Все эти странные события.<br> </p> <HR><br><p align="center"><font size=3 face=Comic Sans MS> <a href="btn:9">Смотреть сон</a> <p align="center"><font size=3 face=Comic Sans MS> <a href="btn:sohr">Cохранить игру</a> <br><br> </html> end Допустим что локации 7.5 и 8 это 0 и 1

Malevi4: после сохранения надо чтоб назад на локцию 7.5 вернуло

noname: 1. вот текст локации sohr, на которую мы перейдём по нажатии баттона "сохранить игру": :sohr save 8 ; после загрузки игрок попадёт в локацию 8 <html> <br> игра сохранена<br> <br> <a href="btn:8">дальше</a><br> </html> end ну, оформление покрасивше сам ей сделаешь, и вот ещё что: 2. в начале локации 8 нужно вставить инициализацию html-режима, вот так: :8 html true x=8 <html> ..... это важно, так как после загрузки состояния игры режим html отключается 3. можешь попробовать выводимый твоей прогой текст скопировать ч/з ctrl+insert и вставить в word ч/з shift+insert. отловил бы пару ошибок 4. упорства и удачи тебе в деле квестописания! UPD не заметил слов: после сохранения надо чтоб назад на локцию 7.5 вернуло ты же сохраняешься в локации 8! потому и возврат я сделал туда же, но можешь исправить на 7.5, с учётом всего, что написано выше UPD НИКАКИХ других изменений (навроде отключения режима html, или др) делать НЕ надо! всё, что необходимо изменить- написано в этом сообщении

Malevi4: А ну да немного запутался, огромное спасибо, насчет верда то все продумано, я граматике ща внимание не сильно уделяю, потом текст бу тож корректироваться больше подробностей и тд

qwerty: чуть не упустил из виду: Malevi4 писал: .... И желательно чтоб он[игрок] всегда имел возможность перейти в главное меню если в главном меню можно сохраняться(что автоматически делает возможным сохранение в любом месте игры), то: 1 вначале каждой локации нужно писать html=true, и сохранять в переменной x название локации 2 вконце каждой локации нужно вставить баттон перехода на локацию-меню 3 в локации-меню этих действий (html=true, и особенно x=... - делать НЕ надо!) 4 в локации-сохранении пишем: :sohr save #x$ ; это если у тебя x всегда число <html> <br> игра сохранена<br> <br> <a href="btn:меню">дальше</a><br> </html> end

Malevi4: Спасибо огромнейшее это все что мне было нужно =) терь думаю долго вопросов не будет

noname: всегда рад ответить

Malevi4: Насчет файла с расширением bat сделал все как ты сказал с блокнотом. Квест запускается но картинки и музыки все равно не пашут...

qwerty: наверное пути неправильно указал что бы работала строка <div align="center"><img src="#quest_path$/pict/6.bmp" class="foto"></div><br> нужно, что бы в папке, в которой находится Акурка, твой квест.qst, твой go.bat, короче- в папке акурки должна быть подпапка pict, а в ней- файл 6.bmp. если это сделано правильно- проверь, открывается ли 6.bmp пайнтбрашем- мож там трабл какой-то если опять всё в порядке- запакуй всю эту папку(ту, которую собираешься рапространять- с акуркой, квестом и пр), и- выкладывай сюда- посмотрю что бы выложить сюда файл- нажми "синюю стрелочку вниз", и- скопируй адрес, который тебе дадут ссылку можно дать ч/з глобус со скрепкой //--- фуух, вроде бы всё предусмотрел...

Malevi4: Когда сам с помощью акурки проигрываю квест все есть и музыка и картинки а в bat файле нет. И чет не могу загрузить архив на сайт.

Malevi4: Вот ссылка, надеюсь авторские права будут защищены http://slil.ru/27750920 пароль я те в личку напишу.

noname: когда запускаешь бат-файл- запускается квест.qst из папки с файлом go.bat и акуркой когда запускаешь квест из акурки- возможно, ты выбираешь квест из другой папки хорошо бы ещё убедиться, что у тебя именно pre6 // хотя- без разницы, но я тестирую на ней Malevi4 пишет: И чет не могу загрузить архив на сайт да, проверил- действительно чё-та туго стал слать. а до этого всё нормально было. короче, отсыпайся- я скоро уеду на пару дней в деревню (вообще собирался сёдня слинять) развеяться- за это время или найдёшь способ выложить, или- сам разберёшься с проблемой, или - подскажет кто

Malevi4: Все я разобрался реал надо біло лишь поставить пре релиз 6

qwerty: юмор об этой теме, высказанный в соответствующем разделе нонсенса: уроки URQ ага... pln: У входа на шахматную доску сидит хоббит и курит через речку. btn: Это не шахматная доска, это досовская коносоль! pln: Оператор pln выводит текст, после чего переводит строку. строка: не надо меня никуда переводить! Сама дойду. btn: речка по твоей ссылке не скачивается - она пропала вместе со всем аплоадом. какая жалость! pln: Если так, то пусть хоббит играет шахматным конём, ходит по доске по шахматным правилам, и тогда конь может находиться в 64-х ситуациях, каждую из которых придётся прописывать ручками, если noname всё не испортит. конь: нееее..... 64 ситуации – это перебор. Я не развратник! btn: Ручек нет, можно прописать фломастером? шахматист: Конь не может находиться в 64-х ситуациях по определению. noname: Куплю пароль от чужого аккаунта. А где кнопка (она же бАттон)??? pln: Уймись, noname - некогда мне. Потом объясню. темная лошадка: Вопрос от гостя: Когда уже будут сформированы единые стандарты языка, дабы можно было бы зафиксировать миф?!! язык: Я пересох. Ничего не фиксирую. конь: лошадка, вы мне нравитесь! Давайте вместе покурим через речку на шахматной доске! btn: Это не шахматная доска, это досовская коносоль!!!!! пешка: Помогите, пожалуйста! Пыталась сделать все, как было нарисовано на шахматной доске. Однако когда попыталась сделать E2-E4, Вампирья стрела=15, и все последующие фигуры, дописаные фломастером в инвентаре, выбиваются тоже как 15! Или даже как 15++! Я уже просто не знаю что делать. Может, кто-то сумеет подсказать в чем дело?.. Заранее спасибо. pln: Настроить стрелу можно через левый верхний значок появившейся консоли: СТРЕЛА -> СВОЙСТВА -> У ВАС НЕТ АВТОРСКИХ ПРАВ НА НАСТРОЙКУ кот: Во-первых было бы интересно глянуть на код. pln: релиза пока нет. конь: Стрелу можно настроить только буквой «Г». темная лошадка: Давай разобьёмся на локации! психиатр: Лошадка, у Вас раздвоение личности. Вот до чего доводят текстовые квесты! noname: Но где же всё-таки кнопка (она же бАттон)??? пошивочная мастерская: Кнопок нет, есть только пуговицы. хоббит: Сижу, курю, и никакого дебагинга... скрытый текст: пешка: Ничего не работает, я вижу, здесь просто нечего делать. Ухожу. btn: Уйти, Вы уходите. pln: /n... end ЗЫ: Не «end», а «exit»! Это было в Субботу 13 Июня, 2009 03:54:15

20-й: Подскажите, вроде бы была переменная, которая отвечала за то, сколько символов учитывать после запятой в числе. Не напомните?

noname: нашёл в теме AkURQ: Korwin постоянный Сообщение: 378 Зарегистрирован: 25.05.05 -------------------------------------------------------------------------------- Лабиринт - это интересно. Выкладывай, qwerty! А насчет деления нацело: не знаю как в акурке, но в досурке был такой алгоритм. fp_prec – числовая переменная, которая содержит точность вычислений, число знаков после запятой в #$ и инвентаре. По умолчанию 2. :определитель pln Введите делимое: input X pln Введите делитель input N if N<>0 then goto proverka else pln На ноль делить нельзя!&goto определитель :proverka fp_prec=5 real=X/N fp_prec=0 int=#X/N$ fp_prec=5 if real>int then ost=real-int&pln #ost$ else ost=int-real&pln #ost$ IF OST<0 THEN OST=-OST ;функция abs (qst) fp_prec=0 IF OST=0 THEN PLN ЧИСЛО ДЕЛИТСЯ НАЦЕЛО else PLN число делится с остатком #ost*N$ btn определитель,Еще раз? btn ext,Выход end :ext end

Chicago1920: noname че то не пашет...

qwerty: Chicago1920, что не пашет? функцию fp_prec проверил: в досурке - работает в Акурке видимо, не реализована. кажет 1-ну цифру после запятой и, да- Акурка пре6 действительно имеет многовато багов. но и пре1- не намного лучше (в ней, в отличии от пре6 нормально работает сравнение строк типа if a="alavar" then ... ) что делать?- ждать "красивую новую фурку, сссылка на которую появится скоро"

Chicago1920: qwerty пишет: предлагаю вести такую тему, где будет по шагам описано создание игры на досурке. Помимо программирования, ведь необходимо уметь писать сценарии. И сразу же возникает вопрос. Пишите ли вы сценарии к играм? И если да, то как они выглядят. Можно с примерами. Возможно сценарные ходы и приемы.

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

noname: Пишите ли вы сценарии к играм? И если да, то как они выглядят. Можно с примерами. Возможно сценарные ходы и приемыдумаю, для этого стОит открыть отдельную тему, что бы не затерялось среди уроков: если в уроках будет ещё пара вопросов ко мне по URQ, начнётся следующая страница и тема написания сценариев может быть забыта. в связи с чем, предлагаю Chicago1920, uux, или любому, у кого есть что сказать по поводу сценариев- открыть новую тему



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