Как сделать?
…
Постоянные деньги для всех локаций.
В начале игры создаёшь переменную и присваиваешь ей значение:
деньги_героя = 100
Пользуйся. :P
Серьёзно. Что такое система инвентаря, и как она выглядит? Хотя бы примерно опиши. Если это система, при которой одни предметы вкладываются в другие, а щелчок по предмету выводит список вложенных в него, то тут есть простое решение.
Aleks Versus:
Если это система, при которой одни предметы вкладываются в другие, а щелчок по предмету выводит список вложенных в него, то тут есть простое решение.
А мне интересно, расскажи.
Как сделать, чтобы предмет (записка, например) можно было использовать прямо в окне предметов: нажал на предмет - появилась строчка с действием “читать”, и после этого нажимаешь на него - и выводится текст в окно описания локации. Такое же было, по-моему, в Хронике борьбы с тараканами. Кажется, там используется какой-то оператор $use, но я не знаю, как его правильно использовать(
Меня тоже интересует этот вопрос,буду благодарен за ответ
Как сделать так, чтобы не писать условия игры в каждой локации(if a<0: gt’проиграл’ и т.д.), а создать одну локацию с условиями, код которой будет выполняться при переходах по локациям игры?
Используй $ONNEWLOC.
Умеет ли qsp работать с отрицательными числами а таккже дробами, например x Rand (-1, 1) и как сделать возможность Rand выдавать дробное чило, например 0.24. Этот вопрос возник в процессе работы над моей биржевой игрой.
SneakBug8,
в QSP используются только целые числа. Отрицательные конечно же поддерживаются.
Десятичные дроби языком не поддерживаются, но если очень нужно, то можно их “подделать”, используя множитель. Например, нам нужна точность некоего параметра до тысячной доли. Тогда мы рассчитываем и храним этот параметр умноженным на тысячу, а разряды “сдвигаем” только при выводе на экран.
! PI = 3.142
PI = 3142
'Число Пи равно <<PI/1000>>,<<PI MOD 1000>>'
Для использования “дробного RAND” тебе будет достаточно поменять порядок действий.
! Сила удара = максимальная сила удара * случайное число от 0 до 1 с точностью до сотых
сила_удара = (максимальная_сила_удара * RAND(0, 100))/100
Добавлю - при использовании кода вида сила_удара = (максимальная_сила_удара * RAND(0, 100))/100 стоит внимательно отслеживать порядок операций. Например, если написать сила_удара = RAND(0, 100)/100*максимальная_сила_удара, то движок округлит при делении, и код будет нерабочим.
Как прописать по переходу ссылки?
Пример:
Вы дали продавцу 5 монет
Ваша сдача 1 монета
или по корректнее надо
Вы дали 1 монету, а получили 4 монеты
Как так сделать одним переходом?
Или более точнее:
Вы сломали 1 ветку и взамен получили 5 прутьев.
Пример: Игрок отдал нпс предмет “яблоко” и получил в замен другой предмет “груша”.
Act 'Название' :
delobj 'название предмета' & ! Удаляемый из инвентаря предмет.
addobj 'название предмета' & ! Получаемый предмет.
'Какой нибудь текст'
end
Вариант с деньгами.
В стартовой локации прописываешь
!$ONOBJSEL = 'инвентарь'
В локации ‘инвентарь’ создаешь предмет “Деньги”:
if selobj = 'Деньги':
unsel
gosub 'Деньги'
end
В локации “деньги”:
*p 'у меня в кармане: <<$coins>> рублей' & ! Вместо coins можно написать любое название твоей валюты, например монеты, золото и т.д. Параметр *p выведет сообщение о наличии у персонажа количества этого предмета в окно дополнительного описания.
if coins=0 :
*p 'У меня в кармане ни гроша'
end
Дальше просто прописываешь в действиях где герой получает или тратит деньги Coins +1 Coins -1 Пример:
act 'купить яблоко' :
if coins>20 : 'у меня не хватает денег.'
else
if coins<20 :
coins -20
addobj 'Яблоко'
'Я купил яблоко'
end
end
А при наведение на предмет “деньги” в окне инвентаря в окне дополнительного описания будет отображаться оставшееся количество денег. Только не забудь в начале игры приписать персонажу предмет и стартовое количество.
В начальной локации:
act 'Начать игру' :
addobj 'Деньги'
coins = 0 & !любое другое значение
end
Как можно реализовать этот код, используя только окно описания или окно посещения локации, без использования окна действия.
Например вставить этот код в картинку, в слово.
IF Ключ = 0:
‘На полу вы видите небольшой ключ.’
ACT ‘Взять ключ’:
Ключ = 1
ADDOBJ ‘Ключ’
PL ‘Вы взяли ключ.’
GOTO $CURLOC
END
END
В общем надо создать отдельную локацию и сделать в описании ссылку на нее с gs, как реализовать не знаю точно.
Сергей,
Опиши более конкретно что ты хочешь сделать. Я не совсем поняла.
Тебе нужно этот код вставить в ссылку или что?