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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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