История изменений
Исправление LightDiver, (текущая версия) :
У меня тут встал вопрос. Почему в луа может не работать условие «не равно»? ~=
endQuests тут - переменная, в которой «простые_квесты»
if TDG[sender][endQuests][x]~="1" then
Параметр равняется «1» - я проверяю в игре. Возвращается «1».
https://cdn.discordapp.com/attachments/811217303378329643/1097028724819492874/1.png
Я проверяю в таблиц, то же самое: https://cdn.discordapp.com/attachments/811217303378329643/1097028731635257455/2.png
А строка if TDG[sender][endQuests][x]~=«1» then считает что там нет единицы. И это не в первый раз. В другом условии у меня:
if testQ["текущий_квест"]==nil or testQ["текущий_квест"]=="9999" then
btn[2]:Disable()
btn[2]:SetText("Нет взятых квестов")
elseif testQ["текущий_квест"]~=nil or testQ["текущий_квест"]~="9999" then
testComplit=testQ["текущий_квест"]
id, name, points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch = GetAchievementInfo(testComplit)
if completed == true then
btn[2]:Disable()
btn[2]:SetText("Ачивка не выполнена")
else
btn[2]:Enable()
btn[2]:SetText("Сдать квест")
end
end
Собственно этот код в принципе не работает. И я не могу понять почему. Сначала я сделал условие «testQ[«текущий_квест»]~=nil or testQ[«текущий_квест»]~=«9999» then» первым, но тогда игра ругается мне что там nil. Но уловие ты видишь? По условию оно должно туда перейти, если там не nil. А оно переходит, если nil.
Тогда я сделал первым условием если == nil. Короче, суть проблемы: условие ~= не работает. Почему?
Собственно вот не рабочий блок, например:
if string.find (message,hsh) and string.find (message, "#aai") then
msg1=mysplit(message)
msg2=msg[6]
TDG[sender][endQuests][msg2]="1"
testQLVL=TDG[sender]["уровень_квестов"]
testQLVL=tonumber(testQLVL)
countQ=tablelength(pQuests[testQLVL])
local chisloProstyhQComplit=0
chisloProstyhQComplit=tonumber(chisloProstyhQComplit)
for testQ=1, countQ do
local x = math.random(1, countQ)
ach=pQuests[testQLVL][x]
if TDG[sender][endQuests][x]~="1" then
SendChatMessage(hsh .. " #aaa " .. sender .. ", покажи мне ачивку " .. ach .. " " .. GetAchievementLink(ach), "OFFICER", nil, 1)
break
else
chisloProstyhQComplit=chisloProstyhQComplit + 1
if chisloProstyhQComplit==countQ then
achCmplt="6584"
SendChatMessage(hsh .. " #aah " .. sender .. ", все стартовые квесты уже выполнены. Теперь покажи мне ачивку" .. achCmplt .. GetAchievementLink(achCmplt), "OFFICER", nil, 1)
end
end
end
end
if TDG[sender][endQuests][x]~=«1» then
Вот это условие. Как видно, оно не должно выполняться. А оно выполняется. Ерунда какая то.
Исправление LightDiver, :
У меня тут встал вопрос. Почему в луа может не работать условие «не равно»? ~=
if TDG[sender][endQuests][x]~="1" then
Параметр равняется «1» - я проверяю в игре. Возвращается «1».
https://cdn.discordapp.com/attachments/811217303378329643/1097028724819492874/1.png
Я проверяю в таблиц, то же самое: https://cdn.discordapp.com/attachments/811217303378329643/1097028731635257455/2.png
А строка if TDG[sender][endQuests][x]~=«1» then считает что там нет единицы. И это не в первый раз. В другом условии у меня:
if testQ["текущий_квест"]==nil or testQ["текущий_квест"]=="9999" then
btn[2]:Disable()
btn[2]:SetText("Нет взятых квестов")
elseif testQ["текущий_квест"]~=nil or testQ["текущий_квест"]~="9999" then
testComplit=testQ["текущий_квест"]
id, name, points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch = GetAchievementInfo(testComplit)
if completed == true then
btn[2]:Disable()
btn[2]:SetText("Ачивка не выполнена")
else
btn[2]:Enable()
btn[2]:SetText("Сдать квест")
end
end
Собственно этот код в принципе не работает. И я не могу понять почему. Сначала я сделал условие «testQ[«текущий_квест»]~=nil or testQ[«текущий_квест»]~=«9999» then» первым, но тогда игра ругается мне что там nil. Но уловие ты видишь? По условию оно должно туда перейти, если там не nil. А оно переходит, если nil.
Тогда я сделал первым условием если == nil. Короче, суть проблемы: условие ~= не работает. Почему?
Собственно вот не рабочий блок, например:
if string.find (message,hsh) and string.find (message, "#aai") then
msg1=mysplit(message)
msg2=msg[6]
TDG[sender][endQuests][msg2]="1"
testQLVL=TDG[sender]["уровень_квестов"]
testQLVL=tonumber(testQLVL)
countQ=tablelength(pQuests[testQLVL])
local chisloProstyhQComplit=0
chisloProstyhQComplit=tonumber(chisloProstyhQComplit)
for testQ=1, countQ do
local x = math.random(1, countQ)
ach=pQuests[testQLVL][x]
if TDG[sender][endQuests][x]~="1" then
SendChatMessage(hsh .. " #aaa " .. sender .. ", покажи мне ачивку " .. ach .. " " .. GetAchievementLink(ach), "OFFICER", nil, 1)
break
else
chisloProstyhQComplit=chisloProstyhQComplit + 1
if chisloProstyhQComplit==countQ then
achCmplt="6584"
SendChatMessage(hsh .. " #aah " .. sender .. ", все стартовые квесты уже выполнены. Теперь покажи мне ачивку" .. achCmplt .. GetAchievementLink(achCmplt), "OFFICER", nil, 1)
end
end
end
end
if TDG[sender][endQuests][x]~=«1» then
Вот это условие. Как видно, оно не должно выполняться. А оно выполняется. Ерунда какая то.
Исходная версия LightDiver, :
У меня тут встал вопрос. Почему в луа может не работать условие «не равно»? ~=
if TDG[sender][endQuests][x]~="1" then
Параметр равняется «1» - я проверяю в игре. Возвращается «1».
https://cdn.discordapp.com/attachments/811217303378329643/1097028724819492874/1.png
Я проверяю в таблиц, то же самое: https://cdn.discordapp.com/attachments/811217303378329643/1097028731635257455/2.png
А строка if TDG[sender][endQuests][x]~=«1» then считает что там нет единицы. И это не в первый раз. В другом условии у меня:
if testQ["текущий_квест"]==nil or testQ["текущий_квест"]=="9999" then
btn[2]:Disable()
btn[2]:SetText("Нет взятых квестов")
elseif testQ["текущий_квест"]~=nil or testQ["текущий_квест"]~="9999" then
testComplit=testQ["текущий_квест"]
id, name, points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch = GetAchievementInfo(testComplit)
if completed == true then
btn[2]:Disable()
btn[2]:SetText("Ачивка не выполнена")
else
btn[2]:Enable()
btn[2]:SetText("Сдать квест")
end
end
Собственно этот код в принципе не работает. И я не могу понять почему. Сначала я сделал условие «testQ[«текущий_квест»]~=nil or testQ[«текущий_квест»]~=«9999» then» первым, но тогда игра ругается мне что там nil. Но уловие ты видишь? По условию оно должно туда перейти, если там не nil. А оно переходит, если nil.
Тогда я сделал первым условием если == nil. Короче, суть проблемы: условие ~= не работает. Почему?