Вопрос Помогите со скриптом.

  • 12
  • 0
Контакты для связи отсутствуют.
В общем, при написании скрипта у меня возникла проблема.
Отрывки кода для SWEP'a
Lua:
local fake

net.Receive("fbifake", function()
        
        local frame = vgui.Create("DFrame")
        frame:SetAlpha(0)
        frame:SetSize(620, 280)
        frame:Center()
        frame:AlphaTo(255, 0.3, 0)
        frame:MakePopup()
        frame:SetSkin("DarkRP")

        frame.Panel = frame:Add("Panel")
        frame.Panel:Dock(FILL)
        frame.Panel:DockMargin(0, 5, 0, 0)

        frame.ComboBox = frame:Add("DComboBox")
        frame.ComboBox:Dock(TOP)
        frame.ComboBox:SetValue("Выберите игрока")
        frame.ComboBox.OnSelect = function(self, a, b, c)
            -- a: Index, b: Nick, c: Entity Player
                  fake = b
        end

        for k, v in ipairs(player.GetAll()) do
            frame.ComboBox:AddChoice(v:Nick(), v)
        end
    end)
    
function SWEP:SecondaryAttack()
if ( SERVER ) then
net.Start("fbifake")
net.Send( self.Owner )
end
--return false
end

    
function SWEP:PrimaryAttack()
if (SERVER) then
        if fake == nil then
         DarkRP.talkToRange(self.Owner, "[FBI] Агент FBI предъявил документ, на котором написано" , "Имя/Фамилия: " .. "123", 90)
         else
         DarkRP.talkToRange(self.Owner, "[FBI] Агент FBI предъявил документ, на котором написано" , "Имя/Фамилия: " .. fake, 90)
         end
end

    self.Weapon:SetNextPrimaryFire(CurTime() + 5)
    
end

В чем проблема: переменная "fake" не меняется. Я пробовал вставить print при нажатии в ComboBox и там она менялась, однако в SWEP:PrimaryAttack() переменная fake = nill

Сразу извиняюсь, если код г*вно! Я только учусь.
 
  • 12
  • 0
Контакты для связи отсутствуют.
Не понял пока что, в чем проблема... Но могу посоветовать вместо fake == nil писать not fake, а также убрать сетевое сообщение оттуда, т.к. оно бесполезно, нужно просто использовать if CLIENT
Проблема заключается в том, что переменная "fake" не изменяется. По задумке скрипта, она должна принимать какое-то значение, когда в списке меню выбирается какой-то игрок. Как происходит на деле: Я открываю меню и в списке выбираю игрока, затем тыкаю ЛКМ, а скрипт все равно показывается что переменная равна nill
 
  • 117
  • 7
  • 47
Контакты для связи отсутствуют.
Немного не выкупаю смысла в переменой выше, которая ничего не имеет (значения).
Одно дело когда в local fake = "Иван Иванов", а после ты ее изменяешь, а так код действительно желает лучшего.
Можно просто использовать (DarkRP.talkToRange), да не париться с выбором определенного человека!
 
  • 12
  • 0
Контакты для связи отсутствуют.
Немного не выкупаю смысла в переменой выше, которая ничего не имеет (значения).
Одно дело когда в local fake = "Иван Иванов", а после ты ее изменяешь, а так код действительно желает лучшего.
Можно просто использовать (DarkRP.talkToRange), да не париться с выбором определенного человека!
Так почему значение переменной не меняется?
 
Сверху Снизу