Технический форум Помогите исправить ошибку
uhfyn00712 05.05.2020 в 00:32

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

Добрый день, помогите пожалуйста :)
После того как взову машину и она заново заспавнится и ты пытаешся нанести ей урон спавнит ету ошибку и дамаг не проходит
ERROR: [system]/c_dayz/survivorSysterm_client.lua:906: attempt to compare nurmber with boolean [DUP x4]
Вот сама строчка кода
if getElementData(parent,"vehicle_armor") > 0 then
Заранее огромное спасибо
Coldex 05.05.2020 в 04:26

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

Зачем ты пытаешься сравнить логическое чисто с простым числом?
uhfyn00712 05.05.2020 в 07:15

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

Coldex,
addEventHandler("onClientVehicleDamage",getRootElement(),function(attacker,weapon,loss,x,y,z,tyre) 
cancelEvent()
local parent = getElementData(source,"parent")
if getElementData(parent,"vehicle_armor") > 0 then
if getElementData(parent,"vehicle_armor")-loss < 1 then
local hp = math.floor(getElementData(parent,"vehicle_armor") - loss)
if hp < 0 then hp = hp * -1 end
setElementHealth(source,getElementHealth(source) - hp)
setElementData(parent,"vehicle_armor",0)
return true
end
setElementData(parent,"vehicle_armor",getElementData(parent,"vehicle_armor")-loss)
return true
end
for _, data in ipairs (details) do
if parent and isElement(parent) then
local detail = getElementData(parent,data[1]) or 0
if detail > 0 then
local detail_dam = getElementData (parent,data[1].."dam") or 0
if detail_dam >= 10 then
local random = math.random(1,#details)
local detale = getElementData(parent,details[random][1]) or 0
if detale > 0 then
setElementData(parent,details[random][1],detale - 1)
setElementData(parent,details[random][1].."dam",0)
checkVehicleMovable(source)
break
end
else
setElementData(parent, data[1].."dam", detail_dam+1)
break
end
end
end
end
setElementHealth (source,getElementHealth(source) - loss)
end)
decided96 05.05.2020 в 18:56

Проверенный

Репутация: 107 бал.

Замечания: 0 бал.

uhfyn00712, данная ошибка появляется по причине того,что при ремпавне колшейпу ТС задаётся броня, как false или вообще не задаётся.
Попробуйте так, перед



Проблема с телефоном извиняюсь

Перед
 if getElementData(parent,"vehicle_armor") > 0 then 


Добавьте это
 if getElementData(parent,"vehicle_armor") then 

И перед
for _, data in ipairs (details) do 

Добавьте end
То есть добавим условие на проверку того,что броня есть и если есть то будут проводиться всё что внутри.
Потому как скорее всего скрипт получает что броня отсутствует то есть false. И пытается сравнить с числом(0).
Coldex 08.05.2020 в 03:09

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

decided96,
перед for _, data in ipairs (details) там end стоит
От добавление 2й проверки 1-е не решиться, убери в первой число parent > 0
decided96 13.05.2020 в 22:12

Проверенный

Репутация: 107 бал.

Замечания: 0 бал.

Coldex, uhfyn00712,
в таком случае вместо
 local parent = getElementData(source,"parent")


 local parent = getElementData(source,"parent") or 0


Ой не то написал
Вместо
 if getElementData(parent,"vehicle_armor") > 0 then 


Это
 if (getElementData(parent,"vehicle_armor") or 0) > 0 then 
Отправлять сообщения могут только пользователи сайта