RU

Вопросы от BigForest

BigForest #468 21.12.2011 14:02 26 comments 12537 views

1) Как писать что-либо в доп. описание?

Edited at 21.12.2011 19:14 (14 years ago)

Ну так в чем проблема-то была?

Я не знаю. Просто заново переписал код

Как сделать так, чтобы лопата ломалась, когда качество упадёт до нуля?

Можешь написать

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)

Log in or Register to post comments.