Почему моя RemoteFunction не запускается внутри события PlayerAdded - PullRequest
0 голосов
/ 20 апреля 2020

Клиент отправляет сообщение на сервер после выбора класса в пользовательском интерфейсе. Сервер устанавливает значения по умолчанию DataStore2 и прослушивает обновления, чтобы отправить информацию обратно клиенту. Моя идея состояла в том, чтобы серверный вызов RemoteFunctions добавил класс в хранилище данных и отправил его обратно клиенту (для статистики gui). Функция не запускается внутри PlayerAdded. Функция, однако, запускается вне события, но функция callRemote () внутри того, что выполняет Remote, требует переменной из события. Предложения?

--server
data.Combine("DATA","gold","sh_coins","class")

spawn(function()
    glbs.Plrs.PlayerAdded:connect(function(Plr)

        local goldstore = data("gold",Plr)
        local shcoinstore = data("sh_coins",Plr)
        local classstore = data("class",Plr)

        function callRemote(remote,value)
            sendDataToClient:InvokeClient(Plr,remote,value)
        end

        callRemote('Gold',goldstore:Get(500))
        callRemote('Stronghold Coins',shcoinstore:Get(0))
        callRemote('Class',classstore:Get('None'))

        goldstore:OnUpdate(callRemote)
        shcoinstore:OnUpdate(callRemote)
        classstore:OnUpdate(callRemote)

        classSelected.OnServerInvoke = function(plr,Class)
            print('class remote called: '..Class)
            callRemote('Class',classstore:Set(Class))
        end

    end)
end)
--client
local function connectClasses() --to play button
    for _,v in pairs(menuclass:GetChildren()) do
        wait()
        if v:IsA('TextButton') then 
            if v.Name ~= 'Back' then 
                local inf = tinfo(.5,Enum.EasingStyle.Elastic)
                spawn(function()
                    v.Button.MouseButton1Click:connect(function()
                        --print('clickitied')
                        spawn(function()
                            ClassSelected:InvokeServer(v.Name)
                        end)
                        local goal = {}
                        goal.Position = menuout
                        local t0 = twn(menuclass,inf,goal)
                        t0.Completed:wait()
                        gbls.Debris:AddItem(startmenu,0)
                        spawned = true
                        main.Enabled = true
                        cam.CameraType = Enum.CameraType.Custom
                    end)
                end)
            end
        end     
    end
end

--update stats on data load (handled by server)
function updateStats(stat,val)
    menuf[stat].Text = stat..': '..val
end
--listen for data load
StatUpdate.OnClientInvoke = updateStats
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...