Отправляете модель через удаленные функции? ROBLOX

Ну привет,

Так что я перейду к делу ..

Всем известно, что в Roblox есть ReplicatedStorage (для клиента и сервера) и ServerStorage (только для сервера).

Итак, я хочу хранить все свои активы в ServerStorage ... вы знаете, поскольку злоумышленники / хакеры не могут видеть ServerStorage, если они попытаются.

Однако в моей игре есть виртуальные миры ... это означает, что клиент видит объекты, отличные от других клиентов в любой момент времени, поэтому я не могу просто загрузить объект из сценариев сервера, потому что тогда его увидят все.

Вот вопрос: могу ли я, возможно, настроить удаленную функцию, которая позволяет клиенту вызывать сервер, а затем сервер возвращает объект модели или его местоположение или что-то в этом роде? И могу ли я затем использовать Клиент для загрузки модели в рабочее пространство плеера?

^ Таким образом, я могу безопасно хранить свои важные игровые активы в хранилище сервера.


person Taner Seytgaziyev    schedule 05.05.2017    source источник


Ответы (1)


Ответ на ваш вопрос: «Да, можно!»

Во-первых, вам нужно создать RemoteFunction в ReplicatedStorage. Назовите эту удаленную функцию GetModel.

Теперь мы собираемся настроить локальный скрипт внутри StarterPack. Этот локальный сценарий должен иметь следующий код:

local RS = game:GetService("ReplicatedStorage")
local RF = RS:WaitForChild("GetModel")

local model = RF:InvokeServer("ModelName") -- This code can go anywhere you'd like it to go. 'ModelName' is the name of the model you want to get.

print(model.Name) -- This will print the model's name.

Итак, мы настроили наш код для вызова удаленной функции. Теперь давайте заставим эту RemoteFunction что-нибудь делать. Мы создадим серверный скрипт внутри ServerScriptService. Вот код:

local RS = game:GetService("ReplicatedStorage")
local RF = RS:WaitForChild("GetModel")
RF.OnServerInvoke = function(player, modelName)
    local model = game.ServerStorage:FindFirstChild(modelName)
    if model == nil then
        return nil
    else
        return model
    end

end

По большей части это базовый код, и, судя по тому, что вы сказали в вопросе, вы прекрасно понимаете lua. Надеюсь, я помог тебе! :)

person mccrafter1212    schedule 17.05.2017
comment
Я пробовал, но не работает. Модель имеет нулевое значение, потому что клиент не может получить доступ к хранилищу сервера и не знает, где находится модель. - person Taner Seytgaziyev; 18.05.2017
comment
Да, но сервер может получить доступ к хранилищу сервера. Невозможно получить доступ клиента к хранилищу сервера, хотя вы можете настроить события, чтобы сервер имел доступ к хранилищу сервера. Извините, если я неверно истолковал ваш вопрос. - person mccrafter1212; 18.05.2017