#lua #garrys-mod
#lua #garrys-мод
Вопрос:
Мне нужно обновить элемент «spawned_weapon» из darkrp с перемещением из точки A в точку B. Но у меня есть ошибка при использовании функции:
попытка индексировать строковое значение с помощью неверного ключа (‘getModel’ не является частью библиотеки строк)
Точка А — это local items = ents.FindInBox(fst_pos, scnd_pos)
Точка В — это weapon:SetPos(output)
local items_table = { -- radnom item after upgtade
"customitem_test1",
"customitem_test2",
"customitem_test3",
}
local items = ents.FindInBox(fst_pos, scnd_pos)
for k, v in pairs(items) do
if IsValid(v) then
if v:GetClass() == "spawned_weapon" then
if table.HasValue(WEAPON_SHIELD, v:GetWeaponClass()) then -- check input items
item_class = table.Random(items_table)
print("customitem > " .. item_class)
-- Create teleported item
local weapon = ents.Create("spawned_weapon")
-- ERROR LINE
local model = (item_class:GetModel() == "models/weapons/v_physcannon.mdl" and "models/weapons/w_physics.mdl") or item_class:GetModel()
model = util.IsValidModel(model) and model or "models/weapons/w_rif_ak47.mdl"
weapon:SetPos(output)
weapon:SetModel(model)
weapon:SetSkin(item_class:GetSkin() or 0)
weapon:SetWeaponClass(item_class:GetClass())
weapon.nodupe = true
weapon:Spawn()
end
end
end
end
Комментарии:
1. Что вы на самом деле подразумеваете под строкой # 20? Строка всегда имеет значение True. И не работает правильно.
bar = (foo() == string1 and string1) or foo())
If foo() is nil or not equal to string1 then model = nil
?
Ответ №1:
В настоящее время вы получаете случайную строку из таблицы. Что вы могли бы сделать, например, так это то, что вы перебираете все сущности, сравниваете классы сущностей и получаете оттуда модель.