Json и удаление строки

CaJlaT

07.11.2024 14:55
Автор темы
Модератор
2,835
2,673
Версия MoonLoader
.027.0-preview
Мне нужно, чтобы полностью удалялась строка, а не писалось вместо неё NULL.
В общем ,есть простенький скрипт на создание маркеров на карте, но при удалении конкретного маркера, а не последнего созданного вместо него пишется NULL и из-за этого номера маркеров остаются, хотя должны смещаться на -1, это не много путает. Т.е у меня были маркеры 1, 2, 3, 4, 5, я удалил 3 и у меня стало 1, 2, 4, 5, можно ли как-то решить эту проблему, чтобы было 1, 2, 3, 4
Lua:
function mdelete(arg)
    if #arg == 0 or tonumber(arg) == nil then
        icons.cords[#icons.cords] = nil
        removeBlip(mymark[icons.markers])
        icons.markers = icons.markers - 1
        if icons.markers < 0 then icons.markers = 0 end
        jsoncfg.save(icons, configDir)
        sampAddChatMessage("[{00fc76}MapIcons{FFFFFF}]: Icon {FF0000}"..icons.markers+1 ..'{FFFFFF} deleted!', -1)
    else
        if icons.cords[tonumber(arg)] == nil then sampAddChatMessage('[{00fc76}MapIcons{FFFFFF}]: Icon {FF0000}'..tonumber(arg)..' {FFFFFF}not found!', -1) return end
        icons.cords[tonumber(arg)] = nil
        removeBlip(mymark[tonumber(arg)])
        icons.markers = icons.markers - 1
        if icons.markers < 0 then icons.markers = 0 end
        jsoncfg.save(icons, configDir)
        sampAddChatMessage("[{00fc76}MapIcons{FFFFFF}]: Icon {FF0000}"..tonumber(arg)..'{FFFFFF} deleted!', -1)
    end
end
Json:
{
  "markers": 6,
  "cords": [
    {
      "Y": -2069.3203125,
      "X": 1873.6136474609376,
      "Z": 15.307920455932618
    },
    {
      "Y": -949.4361572265624,
      "X": 2458.277587890625,
      "Z": 80.07704162597656
    },
    null, -- тут был маркер
    {
      "Y": 2129.495361328125,
      "X": 2121.798828125,
      "Z": 16.171875
    },
    null, -- тут был маркер
    {
      "Y": 2125.61865234375,
      "X": 2113.389404296875,
      "Z": 10.8203125
    },
    {
      "Y": 2111.611328125,
      "X": 2118.737060546875,
      "Z": 16.0992431640625
    },
    {
      "Y": 2106.490966796875,
      "X": 2121.097412109375,
      "Z": 14.622527122497559
    }
  ]
}