Форум HeroesWorld-а - Показать сообщение отдельно - Текущие вопросы и ответы по редактору карт
Показать сообщение отдельно
#5124
Старый 15.07.2020, 21:07
  #5124
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

}{0TT@6bI4[/u]Встретился с такой проблемой: вот этот кусок кода
	print(GetGameVar("morale_bonus"));   */Возвращает в консоль 0/*
-------------------------
    if GetGameVar("morale_bonus")==0 then
      my_talkbox_params=
                        {
                         icon="/ПУТЬ_К_КАРТЕ/BonusGeneratorIcon.xdb#xpointer(/Texture)",
                         name="BonusGeneratorName.txt",
                         text="BonusGenerator_ChooseAmount.txt",
                         ans1="Add_1.txt",
                         ans2="Add_2.txt",
                         ans3="Add_3.txt",
                         func="BonusGenerator_Callback_2"
                         };
      TalkBoxWith3A2(my_talkbox_params);
      BonusType= HERO_BATTLE_BONUS_MORALE;
    elseif GetGameVar("morale_bonus")~=0 then
      print(GetGameVar("morale_bonus"));  */Также возвращает в консоль 0/*
      MessageBox(path.."YouAlreadyHaveThisBonus.txt", "BonusGenerator");
    end;
-------------------------

выдаёт сообщение "YouAlreadyHaveThisBonus.txt", находящееся в блоке, запускающемся, если переменная не равна нулю, но в том же блоке принт выводит, что значение переменной — 0 (!)

Был бы весьма признателен, если бы кто-то объяснил, что здесь не так

GetGameVar возвращает строковое значение, т.е. '0', чтобы корректно сравнить это значение с числом следует написать так:

	if (GetGameVar("morale_bonus") + 0) == 0 then...
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием