Вы должны заявления группы с {}
в C++, и вам не нужно ;
после функции.
Вы также пропустили знак = в нескольких местах. Я предполагаю, что пользователь является глобальным, но он действительно должен быть принят, но я оставлю это до вас.
Я предполагаю, что возвращаемое значение будет ли пользователь выровнен, так что действительно должно быть bool
, а не int
. Я добавил оператор возврата к истинному блоку if
. В зависимости от использования lvlup, который может быть или не иметь смысла. Если возвращаемое значение не используется, его не должно быть и использовать void
.
Так что ваш код должен быть:
int lvlup()
{
if (user.xp >= user.maxxp)
{
user.xp = 0;
user.maxxp += 10;
user.maxhealth += user.maxhealth * .5;
user.defense += 2;
user.attack += 3;
user.lvl += 1;
return 1;
}
else
return 0;
}
Если if/else
оператор имеет только одну строку, вы можете выбрать, чтобы не иметь никаких брекетов, но если есть более чем одна строка должна быть выполнена в ответ на условный вам нужно включить их. Однако не включая их можно открыть возможность для кого-то, поддерживающего код, совершить ошибку и не вставлять их при добавлении строки в блок, поэтому некоторые люди всегда добавляют их.
Эта функция является методом класса? Что такое 'user'? Кроме того, если вы входите в оператор 'if', то нет инструкции' return'. Кроме того, у вас есть множество операторов, которые используют '+' вместо (то, что я предполагаю, должно быть '+ =', поэтому они фактически ничего не делают – CoryKramer
'{{{{}}}}}' отбирайте отсюда! –