• Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта 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

Проблема Атрибут в описание

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

Hikka

Модератор
Команда форума
Регистрация
29 Сен 2016
Сообщения
556
Реакции
1
Баллы
60
Возраст
30
Пол
Код:
function ITEM:getDesc()
    local str
    str = "Восстанавливает %sHP, за %s сек."
    return Format(str, self.healAmount+self.player:getChar():getAttrib("mdc", 0)/2, self.healSeconds)
end

Не работает. Выдает ошибку, оно понятно почему, но как передать клиента в desc?
 
Куда передавать? У предмета всегда есть переменная .player, которая обозначает игрока
 
Куда передавать? У предмета всегда есть переменная .player, которая обозначает игрока
Так я скинул, не работает.
attempt to index field 'player' (a nil value) , вот что пишет.

Как работать с area helper? Создал зону, а как получить ее и использовать?
 
Последнее редактирование:
Т.к. эта функция вызывается у клиента, то можно попробовать LocalPlayer()
Работать с Area Helper просто - рисуешь зону и сохраняешь с помощью клавиши R. В чате написать /areamanager, чтобы смотреть список.
 
Т.к. эта функция вызывается у клиента, то можно попробовать LocalPlayer()
Работать с Area Helper просто - рисуешь зону и сохраняешь с помощью клавиши R. В чате написать /areamanager, чтобы смотреть список.
LocalPlayer() тоже не работает.
Я понимаю что просто рисуешь зону, а как например мне с ней взаимодействовать. Например у меня есть зона 'TEST' например если заходишь в нее чтобы откидывало и если выходишь чтобы убивало. (это лишь пример). Или придется ее переписывать? Ибо я сейчас сделал так
Код:
    timer.Create("nutAreaController", 0.33, 0, function()
        for k, v in ipairs(player.GetAll()) do
            local char = v:getChar()

            if (char and v:Alive()) then
                local area = v:getArea()
                for id, areaData in pairs(nut.area.getAllArea()) do
                    local clientPos = v:GetPos() + v:OBBCenter()

                    if (clientPos:WithinAABox(areaData.minVector, areaData.maxVector)) then
                        if (area != id) then
                            v.curArea = id
                            hook.Run("OnPlayerAreaChanged", v, id)
                        else
                            hook.Run("OnPlayerAreaZone", v, id)
                        end
                    else hook.Run("OnPlayerAreaNoZone", v) end
                end
            end
        end
    end)
Ибо другого выхода не вижу.
 
LocalPlayer() тоже не работает.
Я понимаю что просто рисуешь зону, а как например мне с ней взаимодействовать. Например у меня есть зона 'TEST' например если заходишь в нее чтобы откидывало и если выходишь чтобы убивало. (это лишь пример). Или придется ее переписывать? Ибо я сейчас сделал так
Код:
    timer.Create("nutAreaController", 0.33, 0, function()
        for k, v in ipairs(player.GetAll()) do
            local char = v:getChar()

            if (char and v:Alive()) then
                local area = v:getArea()
                for id, areaData in pairs(nut.area.getAllArea()) do
                    local clientPos = v:GetPos() + v:OBBCenter()

                    if (clientPos:WithinAABox(areaData.minVector, areaData.maxVector)) then
                        if (area != id) then
                            v.curArea = id
                            hook.Run("OnPlayerAreaChanged", v, id)
                        else
                            hook.Run("OnPlayerAreaZone", v, id)
                        end
                    else hook.Run("OnPlayerAreaNoZone", v) end
                end
            end
        end
    end)
Ибо другого выхода не вижу.
Текущий функционал рассчитан только на отслеживание игрока, в каких зонах он находится.
Взаимодействие нужно дописывать самому
 
Текущий функционал рассчитан только на отслеживание игрока, в каких зонах он находится.
Взаимодействие нужно дописывать самому
Я уже понял. Пришлось. Теперь я понимаю, что натскрипт только для тех кто шарит в луа. Оно и к лучше.
 
Статус
В этой теме нельзя размещать новые ответы.
Главная Регистрация
Назад
Сверху