Roblox Studio. Межигровой телепорт. Модель

Термин «межигровой» означает телепортирование Игрока из одной игры (Place) в другую.

На предыдущую страницу…


Скачать/открыть:

Открыть краткое описание (pdf-файл)

Исходники моделей (в рамках иллюстрирующего примера)+ краткое описание (в zip-архиве).

Видео (демка, wmv-формат).


Важно!
1. Механизм межигровой телепортации НЕ работает в среде Roblox Studio.
2. Для тестирования/использования — проект (игру) необходимо сначала опубликовать (при этом, не важно, как это будет: Private или Public).

Примечание:
1. Автор НЕ претендует на «истину в последней инстанции» (т.е., техническое решение, приведенное в этом документе, не является единственным и исчерпывающе верным решением).
2. Иллюстрирующий пример см. в файле teleports_cross_game.rbxl.
3. Видео-демка – см. файл teleports_cross_game.wmv.


Обобщенный алгоритм подготовки проекта (Place) для использования механизма межигровых телепортов приведен на рисунке ниже.

На рисунке ниже показана (на всякий случай) иллюстрация действия номер 3 (см. алгоритм выше).

Следует особо отметить важность действий 4, 5 , 6 и 7 (см. алгоритм выше).
На рисунке ниже приведена форма «Game Settings«, открытая на вкладке «Security«.


Скрины, иллюстрирующие пример формирования и использования межигровых телепортов, приведены на рисунках ниже.


Как видно (см. рисунки выше), в «комнате телепортов» всего есть 10 телепортов.
Следует отметить, что все они – ТИПОВЫЕ (т.е., практически ничем друг от друга не отличающиеся).
Единственное отличие – это значение идентификатора игры (gameID – см. скрипт здесь, а также, на рисунке ниже).

На рисунке ниже приведен перечень телепортов (как объектов) в информационной модели иллюстрирующего примера.

Основные структурные элементы модели одного телепорта приведены на рисунке ниже.


Скрипт, реализующий функционал телепорта, приведен на рисунке ниже.

См., также, скрипт в HTML-формате

См., также, листинг ниже.

-- Скрипт телепорта-прередатчика.

-- ===================================
-- Идентификатор игры, куда отправляется игрок

local gameID = 6516141723 -- DOORS

-- Идентификатор игры входит в состав WEB-ссылки на игру.
-- См., например, ссылку на игру DOORS:
-- https://www.roblox.com/games/6516141723/DOORS
-- ===================================


local tps = game:GetService("TeleportService")

local YesPress = false
function Touch(hit)
if YesPress == false then
if hit then
if hit.Parent:FindFirstChild("Humanoid") then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player then -- только player
YesPress = true
local lbl = Instance.new("Message",game.Workspace)
lbl.Text = "Наберись терпения. Это займет какое-то время"
tps:Teleport(gameID, player)
wait(10)
lbl:remove()
wait(5)
YesPress = false
end
end
end
end
end
script.Parent.Touched:Connect(Touch)

Дата: 26.07.2024