Как сделать?
…
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
Благодарю.
А вообще вот здесь вот много разных примеров кода http://qsp.su/index.php?option=com_content&view=article&id=57&Itemid=56
Как можно реализовать этот код, используя только окно описания или окно посещения локации, без использования окна действия.
Например вставить этот код в картинку, в слово.
IF Ключ = 0:
‘На полу вы видите небольшой ключ.’
ACT ‘Взять ключ’:
Ключ = 1
ADDOBJ ‘Ключ’
PL ‘Вы взяли ключ.’
GOTO $CURLOC
END
END
В общем надо создать отдельную локацию и сделать в описании ссылку на нее с gs, как реализовать не знаю точно.
Сергей,
Опиши более конкретно что ты хочешь сделать. Я не совсем поняла.
Тебе нужно этот код вставить в ссылку или что?
Ну можно сказать и так.
Сергей,
Сказать можно всё, но таки непонятно что нужно. Ты можешь как-то расписать вопрос более подробно? Что именно тебе нужно сделать? Что на локации, пок акому действию и откуда что должно происходить. Может есть способ проще, чем я сейчас себе представляю по твоим словам.
Сергей,
вставить код в ссылку можно. Использовать в качестве ссылки картинку или область картинки можно. Всё это описано в справке в разделе HTML. Чтобы при нажатии на ссылку выполнялся код, в качестве значения аргумента href даётся текст, начианющийся со слова “exec:”. Пример:
<a href="exec:if key=0: *pl 'Дверь закрыта' else goto 'команта'">Войти в комнату.</a>
! исполняемым кодом является часть:
! if key=0: *pl 'Дверь закрыта' else goto 'команта'
Многострочный код использовать не рекомендуется, лучше создать для него отдельную локацию, написать код, выполняемый при посещении, а в ссылке сделать обращение к локации через gosub:
! код ссылки
<a href="exec:gosub 'код_ссылки'">Войти в комнату.</a>
....
! #код_ссылки
! код в поле "Выполнить при посещении" в QGen в локации "код_ссылки"
if key=0:
*pl 'Дверь закрыта'
else
goto 'команта'
end
Как сделать счетчик ходов? НЕ ГОДИТСЯ ВАРИАНТ С ПЕРЕАДРЕСАЦИЕЙ И ОТДЕЛЬНОЙ ЛОКАЦИЕЙ ДЛЯ КАЖДОГО ПЕРЕХОДА Т.К. ИХ У МЕНЯ СЛИШКОМ МНОГО. Как сделать временную локацию чтобы мне работало это.
1
