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

Проблема с таймером удаления оружия

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

Andrew Logiw

Пользователь
Регистрация
21 Дек 2020
Сообщения
178
Реакции
0
Баллы
32
Клан-тег
NonRP'шник
Пол
Мужской
Семейное положение
Всё сложно
Род занятий
Nedocoder
Хай пиплы, помогите пожалуйста с кодом одним. Суть его такова, что после того как в ClipSize кол-во патронов доходит до 0-я, то оружие и сам свеп удаляется у игрока. Я пытался сделать сам что-то похожее, но у меня код просто не работал. Т.е мой код был что-то вроде

Lua:
        if ( self.Owner:GetAmmoCount( self.Primary.Ammo ) < 0 ) then
            timer.Simple( 2.5, function() self.Weapon:Remove() end )
        end
 

Центр поддержки Netzona

Главный Модератор
Команда форума
Регистрация
19 Янв 2018
Сообщения
334
Реакции
0
Баллы
38
Lua:
if ( self.Owner:GetAmmoCount( self.Primary.Ammo ) < 0 ) then
    timer.Simple(2.5, function()
           if self.Owner:IsValid() and self.Weapon:IsValid() then
               self.Owner:StripWeapon(self.Weapon:GetClass())
           end
    end)
end

Попробуй это.
 

Andrew Logiw

Пользователь
Регистрация
21 Дек 2020
Сообщения
178
Реакции
0
Баллы
32
Клан-тег
NonRP'шник
Пол
Мужской
Семейное положение
Всё сложно
Род занятий
Nedocoder
Все работает спасибо. Чуть-чуть дополнил код просто. Лайк если заметил сразу какой символ и куда я добавил
Lua:
if ( self.Owner:GetAmmoCount( self.Primary.Ammo ) <= 0 ) then
    timer.Simple(1, function()
           if self.Owner:IsValid() and self.Weapon:IsValid() then
               self.Owner:StripWeapon(self.Weapon:GetClass())
           end
    end)
end
И еще нужна помощь. Вот когда я случайно себя убиваю или меня убивают, как сделать так, что бы таймер не создавался, если игрок и так погиб, потому что выскакивает ошибка


Timer Failed! [Simple][@addons/00/lua/weapons/fas2_rpg26/shared.lua (line 213)]
 
Последнее редактирование:

Andrew Logiw

Пользователь
Регистрация
21 Дек 2020
Сообщения
178
Реакции
0
Баллы
32
Клан-тег
NonRP'шник
Пол
Мужской
Семейное положение
Всё сложно
Род занятий
Nedocoder

Центр поддержки Netzona

Главный Модератор
Команда форума
Регистрация
19 Янв 2018
Сообщения
334
Реакции
0
Баллы
38
После того как вас убивают 'self' (оружие) принимает значение nil, поэтому в результате найти игрока или оружие по self.ARGUMENT не удавалось и результатом был провал.

Lua:
if ( self.Owner:GetAmmoCount( self.Primary.Ammo ) < 0 ) then
    timer.Simple(1, function()
           if not self or not self:IsValid() or not self.Owner or not self.Owner:IsValid() or not self.Owner:Alive() or not self.Weapon or not self.Weapon:IsValid() then return end -- КОСТЫЛЬ

           self.Owner:StripWeapon(self.Weapon:GetClass())
    end)
end
 
Последнее редактирование:

Andrew Logiw

Пользователь
Регистрация
21 Дек 2020
Сообщения
178
Реакции
0
Баллы
32
Клан-тег
NonRP'шник
Пол
Мужской
Семейное положение
Всё сложно
Род занятий
Nedocoder
После того как вас убивают 'self' (оружие) принимает значение nil, поэтому в результате найти игрока или оружие по self.ARGUMENT не удавалось и результатом был провал.

Lua:
if ( self.Owner:GetAmmoCount( self.Primary.Ammo ) < 0 ) then
    timer.Simple(1, function()
           if not self or not self:IsValid() or not self.Owner or not self.Owner:IsValid() or not self.Owner:Alive() or not self.Weapon or not self.Weapon:IsValid() then return end -- КОСТЫЛЬ

           self.Owner:StripWeapon(self.Weapon:GetClass())
    end)
end
Вот огромное спасибо, теперь работает как надо.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу