RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2437087 views

Объясните пожалуйста по простому, как делать объекты, чтобы в названии была назначена переменная, которая все время бы обновлялась. Типа объект: “Деньги: 100” и чтобы значение 100 менялось в зависимости от количества денег. Об этом рассказано на викии в разделе “Предметы”, но я не понял что, куда и зачем писать

RomaDova,
Считаемые предметы в инвентаре.

Вообще заглядывай в FAQ, там собраны ответы на обычные вопросы новичков. Например, про действие по таймеру, или про считаемые предметы.

Можно ли как-то вернуться на предыдущую локацию, если не знаешь её названия? То есть, у меня есть предмет, при нажатии на который происходит переход на новую локацию, а прошлая может быть любой.

LorenzoD:

Можно ли как-то вернуться на предыдущую локацию, если не знаешь её названия? То есть, у меня есть предмет, при нажатии на который происходит переход на новую локацию, а прошлая может быть любой.

Перед переходом на новую локацию сохраняешь название текущей в переменную:

$prevloc = $CURLOC

Для обратного перехода пользуешься сохраненным названием:

GT $prevloc

Вообще код Ньюсаша подойдёт, только надо уточнить, что сохранять нужно именно в обработчике предмета (ONOBJSEL), а не где-то ещё.

Aleks Versus Moderator 06.06.2014 11:50 (11 years ago)

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]*$')
Серый_Волк #10 11.06.2014 06:54 (11 years ago)

Puffy:

готовую парсерную игру на QSP

Nex:

Великая Пустота.

Скачать игру можно тут: http://rilarhiv.ru/qsp/VP9_1b.rar (2,3 Мб)

werewolf
Спасибо
Вот я затупок:=D Когда поздним вечером че-то пишу часто касячу, надо было сегодня еще раз проверить.

Log in or Register to post comments.