Вопросы от BigForest
1) Как писать что-либо в доп. описание?
Ну так в чем проблема-то была?
Я не знаю. Просто заново переписал код
Как сделать так, чтобы лопата ломалась, когда качество упадёт до нуля?
Можешь написать
If лопата_прочность = 0:
pl 'Лопата сломалась'
delobj 'Лопата'
end
IF (OBJ 'лопата') AND (качество = 0):
'Лопата сломалась'
DELOBJ 'лопата'
END
Это в ONNEWLOC?
Не работает
Код действия получения лопаты:
IF $древесина > 4:
ACT 'Сделать лопату':
ADDOBJ 'Лопата'
Качество_лопаты = 100
PL 'Вы сделали лопату'
$древесина = $древесина - 5
DELOBJ 'Древесина'
DELOBJ 'Древесина'
DELOBJ 'Древесина'
DELOBJ 'Древесина'
DELOBJ 'Древесина'
GOTO $CURLOC
END
END
IF $древесина > 4:
...
$древесина = $древесина - 5
Ошибка, знак доллара ставится только в имени текстовых переменных, для числовых он не ставится.
Правильно так:
IF древесина > 4:
...
древесина = древесина - 5
Это в ONNEWLOC?
Нет, приведенный код нужно вставить туда, где уменьшается значение переменной “Качество_лопаты”.
Должно получиться примерно так:
Качество_лопаты = Качество_лопаты - 10
IF Качество_лопаты = 0:
'Лопата сломалась'
DELOBJ 'лопата'
END
Не работает. Вот полный код действия:
IF OBJ 'Лопата':
ADDOBJ 'Земля'
GOTO $CURLOC
Качество_лопаты = Качество_лопаты - 10
PL 'Лопата немного испортилась'
ELSE
PL 'Врать нехорошо. Лопаты-то нету.'
GOTO $CURLOC
END
IF Качество_лопаты = 0:
'Лопата сломалась'
DELOBJ 'Лопата'
END
GOTO - это переход на новую локацию
ЛЮБОЙ код после него выполняться не будет
то есть у тебя не только до IF Качество_лопаты = 0: дело не доходит, но и качество не меняется (поскольку изменения тоже после GOTO стоит)
GOTO $CURLOC надо перенести в самый конец (после последнего END)