Форум » » Как это сделать? » Ответить

Как это сделать?

denis: Только начал программить на QSP. Вопрос: как сделать так, чтобы после выполнения одного действия, в этой же локации становились видны другие, до этого не видимые? Хелп читал - не нашёл ответа. И ещё - можно ли с помощью оператора DYNAMIC создавать новые действия и предметы?

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

Yashko: '<center><u><a href=exec:gt 'начало't>Начать игру</a></u></center>' не пашит. Походу что-то с кавычками. Хелп.

Yashko: А все, справился.

Nex: Aleks Versus [pre2] !перевод из десятичной системы счисления в шестнадцатеричную $shablon='0123456789ABCDEF' num10=val($input('Введите число:')) t10 = num10 :loop ost = t10 mod 16 $t = $mid($shablon,ost+1,1) $num16_str = $t + $num16_str t10 = t10 / 16 if t10 > 0: jump 'loop' '<<num10>>=<<$num16_str>>' [/pre2]


Aleks Versus: Nex пишет: ost = t10 mod 16 Дико извиняюсь, а mod - это что за операция? В справке найти не могу. Возвращает остаток от деления? А вцелом спасибо.

Nex: Aleks Versus да, к моему ужасу, в справке про это ничего не написано. Так и есть, остаток от целочисленного деления. Все операции в QSP производятся с целыми числами.

Aleks Versus: Nex пишет: Aleks Versus да, к моему ужасу, в справке про это ничего не написано. Полагаю это был сарказм, и еще раз извиняюсь. mod в справке нашел- мои кривые руки опять вводили не то слово.

Nex: Хм. У меня, оказывается, была не последняя версия справки. Скачал сейчас новую. В последней версии (5.6.2), датированной сентябрем, действительно упомянут MOD, хотя его нет в указателе. Зато обнаружилось, что в этой последней версии не работает половина разделов O_o Надо срочно исправлять.

Byte: Гм.. Только что проверил, вроде все работает.. Какой раздел не работал?

Nex: О программе -> Благодарности; Принцип работы; Операторы и функции; Операторы и функции -> Выражения -> Использование массивов; Операторы и функции -> Операторы -> Работа с действиями; Операторы и функции -> Операторы -> Работа с инвентарём; Операторы и функции -> Операторы -> Работа с переменными / массивами; Операторы и функции -> Операторы -> Настройка интерфейса; Операторы и функции -> Операторы -> Мультимедийные возможности: звук и музыка; Операторы и функции -> Функции; Операторы и функции -> Функции -> Работа с действиями; Операторы и функции -> Функции -> Работа с инвентарём; Операторы и функции -> Функции -> Работа с массивами; Операторы и функции -> Системные переменные; Операторы и функции -> Системные переменные -> Базовые системные переменные; Операторы и функции -> Системные переменные -> Переменные, задающие обработчики событий; Операторы и функции -> Системные переменные -> Переменные настройки интерфейса; Операторы и функции -> Создание меню для предметов; Подсказки / Советы; Словарь терминов.

Byte: У меня это работает

rrock.ru: У меня тоже работает.. но по-моему Nex уже перезалил исправленны файл..

Byte: Не, это вряд ли.

Сидан Рейдан: Осваиваю азы, возник такой вот вопросик... Сейчас. Придумаю вменяемую формулировку... Хм. Есть локация 1. На ней, по сюжету предоставленного мне теста, сидит говорящая собака (вот не надо смеяться, это тест по диалогам из архива qsp300ddemos))) Я, представив свою реакцию, в аналогичной ситуации, добавил действие "Убежать от собаки". Локация 2. Сюда убегает игрок в процессе. Отсюда есть развилка. На этой локации есть код: if был_здесь=1: DELACT 'Убежать ещё дальше' & *PL 'Молодец, вы прибежали к собаке.' & ACT 'Подойти к собаке': GOTO 'Начало' if был_здесь=2: DELACT 'Свернуть в лес' Вариант 1 - "Убежать ещё дальше" - на локацию 3; и вариант 2, "Свернуть в лес", на локацию 4. Локация 3. Здесь присутствует параметр (или как его?) был_здесь=1. И действие а-ля "Вам тут холодно, идите обратно, поговорите с собакой". Локация 4. Здесь присутствует аналогичный параметр "был_здесь=2", и аналогичное действие "тут темно, и т.д.". То есть. Игрок уходит от собаки, появляется на развилке. Там два действия. Каждое из них должно пропасть, после того, как игрок там побывал. Вроде как всё нормально. Но! Если игрок побывал в лесу, то действие "лес" действительно удаляется. Если игрок после этого побежит дальше, и, соответственно, вернётся обратно - то пропадёт только действие "убежать дальше", а "лес" опять появится! Короче, прекращаю вас мучить своей чрезмерной вербальной активностью, прикладываю файл. QSP. http://zalil.ru/upload/28424374 Вопрос №2 (не волнуйтесь, он короткий!) Как можно сделать какую-то функцию, выполняющуюся при ПОКИДАНИИ локации?

Nex: Сидан Рейдан ссылка на файл не работает. Не очень понятно, что ты хотел сделать с переходами. Используй многострочные IF'ы вместо однострочных. DELACT лучше вообще не использовать, он только запутывает. Я всегда прекрасно без него обхожусь. Как можно сделать какую-то функцию, выполняющуюся при ПОКИДАНИИ локации? Через ту же служебную локацию что выполняется при ПОСЕЩЕНИИ локации - $ONNEWLOC

Сидан Рейдан: Спасибо. Попытаюсь уточнить формулировку. Развилка Y. Можно перейти в две локации. Соответственно, два действия. С обеих локаций происходит возврат в первую локацию. В итоге, с помощью функции "был_здесь" и "DELACT" пресловутые два действия должны исчезнуть. При возвращении с первой локации, остаётся ссылка на вторую. При возвращении со второй - остаётся ссылка на первую. Вот, я попытался перезалить файл. http://zalil.ru/upload/28424854 Используй многострочные IF'ы вместо однострочных. DELACT лучше вообще не использовать, он только запутывает. Я всегда прекрасно без него обхожусь. К своему сожалению, я пока только учусь, премудростей не знаю)) Ещё один вопросик возник. Для параметров BCOLOR, FCOLOR - какие значения ставить? Какие-то цифровые? Где их найти? Или буквенные? И куда из ставить, просто на "начало"?

Nex: Сидан Рейдан эта ссылка тоже не работает. Заходи на канал по этой ссылке: http://tinyurl.com/qsp-irc

Сидан Рейдан: Ох, месяц прошёл, а в этой теме после моего же сообщения вновь появился только я же... Плохая тенденция, однако... - сказал чукча, почёсывая затылок. Ну да ладно, сомнения прочь, флаг в руки, скипидар под причинное место, да вперёд, с вопросами к знатокам. Сперва обосную, почему я тут сейчас пишу: На IRC-канале Интерактивной Литературы я не могу долго поддерживать контакт (перебои со связью, знаете ли, лень излишняя, и вообще в Украине с коммуникациями плохо), а вопрос у меня для моего восприятия непростой, и требует долгого "переваривания". В чём суть... Пишу квест (как ни странно), и столкнулся с рядом проблем. Ряд образовал некое подобие Берлинской Стены, придётся мне его осилить. Суть такова - поциэнт, простите, глав.герой идёт в далёкое странствие. Он - дурак, а вдобавок ещё и сталкер (нет, не тот, который в мифической Зоне, а тот, который шастает по всяким заброшенным и покинутым местам цивилизации, вполне реальные люди) и вот-вот собирается в очередной поход. И, собственно, тут-то и попёр ряд проблем. Проблема первая. Персонаж по причине некоей физической ограниченности своего вещмешка может взять с собой ограниченное количество вещей. Сперва я хотел сделать аксиому в виде "не больше четырёх", потом понял, что это алогично. Допустим, в одном варианте персонаж захочет взять телефон, навигатор, фонарик, да светотрубку, а в другом - паёк на неделю, оружие, набор инструментов и медпакет. Де-юре - четыре предмета. Де-факто - совершенно разные по объёму вещи. Вот и пришла мне в голову мою глупую идея: сделать некий объём вещмешка (в кубических дециметрах, как пишут в Украине О_о) (шутка) и каждому предмету присвоить определённый вес. Чтоб он занимал ровно столько, сколько ему положено. ...Перечитал, вроде написано понятно. Проблема вторая, близкая к первой. Предметы будут исчезать\прибывать, как, допустим, при таких ситуациях а-ля "скушал за часок весь паёк", "купил в магазинчике ещё молоточек", и, соответственно, объём свободного места в вещмешке должен динамично изменяться. Может, вам тут не видно никакой проблемы, но мне лично процентов на 99 непонятно, как это сделать - я тотальнейший новичок в программировании. Желательно, что бы "свободное место" динамично изменялось прямо при выполнении команд ADDOBJ и DELOBJ (если это, разумеется, возможно, а то мне каждые три строчки нового, неизвестного кода - как чукче двигатель атомной подлодки) (и вновь почти что шутка. Почти). Проблема третья. Философская. Инвентарь и деньги. Да, я такой дурак, что толком не могу это сделать, вернее, не понимаю, как. Как сделать счётчик имеющихся денег? Как создать полноценный инвентарь? Просто в лице "списка предметов" в, собственно, "окне предметов"? Проблема четвёртая, от которой у большинства присутствующих может наступить когнитивный диссонанс (я предупредил) Как... кхэм... как, простите, можно по игре нормально взаимодействовать с предметами? С локацией-обработчиком (или как её) $ONOBJSEL я не справился, просто не заработала. Выводить описание предметов по щелчку на них в "инвентаре" не могу, дальше элементарных действий наподобие "щёлкнул на фонарик - свет появился" (и то с вашей же помощью) я не продвинулся. Товарищи доктора, у меня есть шанс? Простите за излишнюю наглость и загруженность вопросами, так уж вышло. Срочного ответа не требуется, лучше напишите дураку подольше, да пообстоятельней) Заранее спасибо за внимание.

Ajenta: Мдаааа... Ты бы хоть вопросы не кучей пихал что ли, а по одному. Ну да ладно. Приду домой напишу пообстоятельней, если до меня этого никто сделать не успеет.

Nex: Сидан Рейдан совсем откажись от ограничений на вес и объем предметов. Либо сделай подсчет максимально простым - например, всякую мелочь вроде денег и патронов можно набирать сколько хочешь, а крупные предметы ограничить по количеству (например, не более 6). Сперва я хотел сделать аксиому в виде "не больше четырёх", потом понял, что это алогично. Допустим, в одном варианте персонаж захочет взять телефон, навигатор, фонарик, да светотрубку, а в другом - паёк на неделю, оружие, набор инструментов и медпакет. Де-юре - четыре предмета. Де-факто - совершенно разные по объёму вещи. Зря уповаешь на логику - хорошая игра должна быть интересной, а от логичности мало что зависит - в любых играх куча условностей и допущений. Не плоди сущностей без крайней необходимости. Вводи ограничения только там, где без этого не обойтись.

Hertz: любая игра - это модель. для того и есть игры, чтобы отбросить сложности, иначе можно было бы просто жить - никаких игр не надо. так что +1 к Nex



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