Как сделать?
…
Nex:
Oliver,
если действие “Спать” должно прибавлять энергию, то и напиши:energy = energy + 100в действии “Спать”.
Это сначала такое количество енергии, у меня ошибка в другом, что-то обнуляет все переменные.
Oliver,
выложи весь код целиком, а то вообще непонятно, чего ты хочешь.
Никакого обнуления в приведённом коде нет. Скорее всего, ты где-то опечатался.
Nex,
Спасибо, но я действительно опечатался.
Мне нужна помощь в виде реализации времени(пока только дни). $ONNEWLOC я не пользовался, вот и хочу научится.
тема хоть и не совсем для этого подходит, но спрошу
почему во всех играх что мне попадались на глаза переменные пишут на английском? в чем смысл?
Oliver,
Игровое время
saks,
я думаю, по большей части потому, что в других популярных языках программирования это стандарт. Только в QSP можно использовать переменные на русском языке. Поэтому, просто по привычке.
Spoiler
act’Сдалать бочку’:
cla
*clr
‘<center><img src=“pic/дрова/2.jpg”></center>’
if доски >=6 and обруч>=2 :
бочка=бочка+1
“вы сделали бочку”
else :
if доски <6 : “вам нехватает <<6-доски>>досок”
end
if обруч<2 : “вам нехватает <<2-обруч>>обручей”
end
end
act’Закончить’:gt curloc
end
end
никак немогу понять что ему не нравится. выдает ошибку
должно быть так если всего хватает то делается бочка, если чегото нехватает высвечивается сообщение
з.ы. спасибо все заработало
saks,
Я пока заметил пробели перед двоеточием, после ELSE двоеточие ставить не нужно. Да и структура не много кривая, но я исправить не смог, подожди профессионалов, или тех кто сможет помочь.
saks,
Слово end используется только для многострочных форм операторов if и act. Нужно следить, какой end какому if либо act соответствует. В твоём случае слишком много ненужных end’ов. Вместо
if доски <6 : "вам нехватает <<6-доски>>досок"
end
if обруч<2 : "вам нехватает <<2-обруч>>обручей"
end
нужно написать
if доски < 6: "вам не хватает <<6-доски>> досок"
if обруч < 2: "вам не хватает <<2-обруч>> обручей"
В конечном итоге твой пример может выглядеть следующим образом:
act 'Сделать бочку':
cla
*clr
'<center><img src="pic/дрова/2.jpg"></center>'
if доски >= 6 and обруч >= 2:
бочка = бочка + 1
"вы сделали бочку"
else
if доски < 6: "вам не хватает <<6-доски>> досок"
if обруч < 2: "вам не хватает <<2-обруч>> обручей"
end
act 'Закончить': gt curloc
end
saks,
тебе верно написал snail, про путаницу однострочной формы и многострочной (лишние “end”).
От себя добавлю, что это очень распространённая ошибка начинающих авторов. Разобрана в теме “Грабли”.
Такой вопрос: как подсчитать количество предметов с определенным названием в рюкзаке? К примеру, если нужно узнать, сколько у персонажа в рюкзаке предметов с названием “Череп” или “Хвост крысы” и т.д.
Hungry,
есть функция, которая возвращает текущее число предметов - countobj. Есть функция, возвращающая название предмета по номеру - getobj(). Всё это описано в справке. Задача решается маленьким циклом.
i=1
:for
if i<=countobj:
if getobj(i)='Череп':
skull_count = skull_count + 1
end
i=i+1
jump 'for'
end
Да, действительно. Спасибо.
Не могли бы вы подсказать?
Очень странное поведение программы.
Когда я инициализирую строковую переменную в самой локации, все работает.
А когда я эту же инициализацию вынесла в отдельную процедуру, которую вызываю в текущей локации, получаю пустую строку.
То есть, так работает:
Location 1
USEHTML = 1
'<H2><CENTER>1</CENTER></H2>'
$str1[0] = 'мой текст'
*PL $str1[0]
а так не работает:
Location 1
USEHTML = 1
'<H2><CENTER>1</CENTER></H2>'
GS Var_init
*PL $str1[0]
Var_init
$str1[0] = 'мой текст'
rutigl,
вместо
GS Var_init
нужно написать
GS 'Var_init'
Точно, вот спасибо, Nex!