Welcome to Сообщество игровых серверов NETZONA.ORG

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию другим участникам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

Как сохранить аномалии на сервере?

Статус
В этой теме нельзя размещать новые ответы.

Vergjil

Пользователь
Регистрация
29 Авг 2014
Сообщения
40
Реакции
0
Баллы
15
Возраст
36
Пол
Собственно вопрос следующий: Допустим я заспавнил аномалию туман и хочу ее сохранить на сервере. Первая мысль-Пермопропы. Конечно же нельзя ими ударить аномалию. Персистен тул тоже не работает. Вот и вопрос: Как сделать так чтобы аномалии сохранялись на сервере?
 

Ледкол

Пользователь
Регистрация
5 Ноя 2015
Сообщения
108
Реакции
0
Баллы
29
Возраст
23
Пол
Аномалии - это entity? Если да, то можно просто их записывать в базу данных, как в плагине vendor и talk npc
 

Vergjil

Пользователь
Регистрация
29 Авг 2014
Сообщения
40
Реакции
0
Баллы
15
Возраст
36
Пол
Аномалии - это entity? Если да, то можно просто их записывать в базу данных, как в плагине vendor и talk npc
Можете мне сказать как это делается? А если не трудно то и с ентить артефактами тоже...
 

Ледкол

Пользователь
Регистрация
5 Ноя 2015
Сообщения
108
Реакции
0
Баллы
29
Возраст
23
Пол
С артефактами не могу помочь, потому что нет локального сервера, а на хостинг что-либо лишнее нет желания загружать.
Вот как это реализована в плагине talknpc:
PHP:
function PLUGIN:SaveData()
        local data = {}
            for k, v in ipairs(ents.FindByClass("nut_talker")) do
                data[#data + 1] = {
                    name = v:getNetVar("name"),
                    desc = v:getNetVar("desc"),
                    pos = v:GetPos(),
                    angles = v:GetAngles(),
                    model = v:GetModel(),
                    factions = v:getNetVar("factiondata", {}),
                    dialogue = v:getNetVar( "dialogue", self.defaultDialogue ),
                    classes = v:getNetVar("classdata", {})
                }
            end
        self:setData(data)
    end

    function PLUGIN:LoadData()
        for k, v in ipairs(self:getData() or {}) do
            local entity = ents.Create("nut_talker")
            entity:SetPos(v.pos)
            entity:SetAngles(v.angles)
            entity:Spawn()
            entity:SetModel(v.model)
            entity:setNetVar("dialogue", v.dialogue)
            entity:setNetVar("factiondata", v.factions)
            entity:setNetVar("classdata", v.classes)
            entity:setNetVar("name", v.name)
            entity:setNetVar("desc", v.desc)
        end
end
Если делать для обычного entity, я думаю хватит этого:
PHP:
entityClass = "Entity Class" // класс entity, нужно изменить на класс аномалии
function PLUGIN:SaveData()
        local data = {}
            for k, v in ipairs(ents.FindByClass(entityClass)) do
                data[#data + 1] = {
                    pos = v:GetPos(),
                    angles = v:GetAngles()
                }
            end
        self:setData(data)
    end

    function PLUGIN:LoadData()
        for k, v in ipairs(self:getData() or {}) do
            local entity = ents.Create(entityClass)
            entity:SetPos(v.pos)
            entity:SetAngles(v.angles)
            entity:Spawn()
        end
    end

Если нужно несколько классов, то можно попробовать сделать так:
PHP:
entityClass = {
    "1st class",
    "2nd class",
    "3rd class"}
function PLUGIN:SaveData()
   local data = {}
   for k, v in ipairs(entityClass) do
     for k1, v1 in ipairs(ents.FindByClass(v)) do
       data[#data + 1] = {
         pos = v1:GetPos(),
         angles = v1:GetAngles(),
         class = v
       }
     end
   end
   self:setData(data)
end

function PLUGIN:LoadData() 
  for k, v in ipairs(self:getData() or {}) do
     local entity = ents.Create(v.class)
     entity:SetPos(v.pos)
     entity:SetAngles(v.angles)
     entity:Spawn()
   end
end
Что-то может не работать, сегодня у меня голова болит.:suicide:
 

Sex Gamaz

Пользователь
Регистрация
17 Авг 2016
Сообщения
40
Реакции
0
Баллы
18
Возраст
29
Пол
Попробуй с помощью плагина World Item Spawner
 

Vergjil

Пользователь
Регистрация
29 Авг 2014
Сообщения
40
Реакции
0
Баллы
15
Возраст
36
Пол
Попробуй с помощью плагина World Item Spawner
Хммм... т.е. надо просто вбить модельку аномалии в список и она будет спавнится через определенный промежуток времени на одном и том же месте? Или это можно изменить?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу