Как сделать?
…
Объясните пожалуйста по простому, как делать объекты, чтобы в названии была назначена переменная, которая все время бы обновлялась. Типа объект: “Деньги: 100” и чтобы значение 100 менялось в зависимости от количества денег. Об этом рассказано на викии в разделе “Предметы”, но я не понял что, куда и зачем писать
RomaDova,
Считаемые предметы в инвентаре.
Вообще заглядывай в FAQ, там собраны ответы на обычные вопросы новичков. Например, про действие по таймеру, или про считаемые предметы.
Можно ли как-то вернуться на предыдущую локацию, если не знаешь её названия? То есть, у меня есть предмет, при нажатии на который происходит переход на новую локацию, а прошлая может быть любой.
LorenzoD:
Можно ли как-то вернуться на предыдущую локацию, если не знаешь её названия? То есть, у меня есть предмет, при нажатии на который происходит переход на новую локацию, а прошлая может быть любой.
Перед переходом на новую локацию сохраняешь название текущей в переменную:
$prevloc = $CURLOC
Для обратного перехода пользуешься сохраненным названием:
GT $prevloc
LorenzoD,
Возврат на предыдущую локацию.
Добавил в FAQ.
Вообще код Ньюсаша подойдёт, только надо уточнить, что сохранять нужно именно в обработчике предмета (ONOBJSEL), а не где-то ещё.
RomaDova,
самый простой способ - хранить количество предметов и их название в разных массивах, но в ячейках под одним номером. Например:
$object_array[0]='Деньги'
kolvo_array[0]=100
$object_array[1]='Зубочистки'
kolvo_array[1]=50
$object_array[2]='Яблоки'
kolvo_array[2]=10
...
Вывести список всех предметов, независимо от того, сколько ячеек массива $object_array[] заполнено:
i=0
killobj & ! очищаем окно инвентаря
:for
if i<arrsize('$object_array'):
addobj $object_array[i]+': '+str(kolvo_array[i])
i+=1
jump 'for'
end
Теперь всегда следует помнить, что при увеличении значения переменной kolvo_array[…], следует повторить последний код, чтобы он обновил информацию на экране. Значит этот код следует оформить отдельной локацией и вызывать по мере необходимости.
Так же тебе потребуется код, который удаляет ячейки массивов, если kolvo_array[…]<1. Это удаление предмета. Понадобится универсальная функция добавления предмета. Потом появится желание сопровождать предметы бОльшим количеством информации, типа: вес, стоимость и пр. Фактически придётся написать свою собственную маленькую библиотечку, вроде той на которую отослал тебя Nex, только интереснее.
Доброго времени суток.
На http://qsp.su/misc/aero/help.htm указано, что поддерживается float в html. Но каким бы образом я его не использовал, обтекание картинки текстом сделать не получается. Я не особо силен в html/css, но насколько я понял обтекание текстом картинок делается именно с помощью float. Я склоняюсь к тому, что всему виной моя криворукость. Перед тем как всех побеспокоить искал что-нибудь по этому поводу на qspwiki или FAQ, но либо там таких мелочей нет, либо я слепой. Ежели кого-нибудь не затруднит, прошу привести пример использования html/css для создания обтекания текстом, конечно, в случае если такое вообще представляется возможным в aeroqsp. Заранее спасибо.
Здравствуйте, добрые люди!
Spoiler
!локация enter, строка 63
!при вводе "использовать [предмет]" должно проверяться, есть ли такой предмет.
elseif $com='использовать '+'$obj' or $com='ис '+'$obj':
i=1
:loop
if i<=countobj:
if $obj=getobj(i):
'Применить?'
else
i=i+1
jump 'loop'
end
else
'Такого предмета нет.'
end
Вроде разобрался.
А еще лучше, подскажите, пожалуйста, готовую парсерную игру на QSP. Или может где мануал есть? А то интуитивно чую, что без словаря синонимов и регулярных выражений (в справке прочитал, но как применять в игре, не очень ясно) тут не обойтись, простыми вопросами на форуме не отделаться.
PS: Лезу в дебри, посылать меня учить основы бесполезно, хочу парсер :P
Великая Пустота.
Решил посмотреть регулярные выражения…
Использую STRCOMP([$строка],[$шаблон]) - проводит сравнение строки [$строка] на соответствие регулярному выражению [$шаблон]. Возвращает -1, если строка соответствует шаблону, иначе 0.
Нужно чтобы можно было вводить только буквы + возможно еще и на русском
$фрукт = input ("Ваш любимый фрукт?")
result = STRCOMP('$фрукт','^[A-Za-z]*$')
if result ! -1:
:loop
msg "Нужно вводить только буквы!"
$фрукт = input ("Ваш любимый фрукт?")
result = STRCOMP('$фрукт','^[A-Za-z]*$')
if result ! -1:
jump 'loop'
end
end
Задумка такая, если юзер вводит не буквы то заставляем его ввести еще раз.
Но походу я где неправильно синтаксис ксп написал.
Нужна помощь.
в STRCOMP надо было использовать переменную а не ее название
result = STRCOMP($фрукт,'^[A-Za-z]*$')
Puffy:
готовую парсерную игру на QSP
Nex:
Великая Пустота.
Скачать игру можно тут: http://rilarhiv.ru/qsp/VP9_1b.rar (2,3 Мб)
werewolf
Спасибо
Вот я затупок:=D Когда поздним вечером че-то пишу часто касячу, надо было сегодня еще раз проверить.