}{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...