Teleport roblox(海岛聊天室)
目录
Description
在同一个场景里的玩家会受到游戏循环的影响,无法自主探索,停下来交流。可以划分分区或给予不参与游戏的选项。
这里将说明如何创建一个不同的场景并传送。
place
Teleport的指向是place的话,玩家会在同一个服务器中,传送到不同的场景里。玩家数受到服务器限制。也可以通过传送到不同的服务器,这篇文章仅介绍place间的传送。
地形,脚本
不同的place的脚本,事件,workspace,是不同的.不会存在相互的影响。可以用这样的方法来串联使用不同地形编辑器搭建的场景,加载不同的光源。也可以通过不同的循环,界定不同的游戏法则。
服务器
当一个场景没有玩家时,会被服务器给注销以节约资源。当需要传送到新场景时,服务器内没有新场景会创建一个新的场景,并执行代码循环。之后有新的传送会被现有的场景中。所以对于大厅等待固定时常然后传送的游戏会有无法解决的问题。
譬如大厅等待60秒,游戏60秒。
当第一批大厅内玩家被传走,大厅关闭。
在30s后,有新玩家进入服务器,开辟新的大厅,开始计时。
当游戏中的玩家返回到大厅时,他们会发现,下一句游戏将会在30s后开局(甚至因为加载而更少)
而这个是由于规则本身带来的问题。所以teleport并不适合于那些对时间有要求的游戏。反而在*探索世界是一个很好的资源节约。
劣势
通信延迟
小游戏场景切换存在加载延迟
小游戏惯常的切换方式
小游戏一般使用
hit.Parent:moveTo(Position)
的方式实现传送
通常是在进行当前游戏时候 加载另一个新的地图。(也就是说,本轮投票需要在下一轮才能玩的到)通过这样限制的减少了进入游戏时候的卡顿现象。
大厅
游戏
其中最为明显的范例是 死亡跑酷.
而另一款小游戏则使用全随机下一个游戏,来规避这一种有些不愉快的游戏体验: 史诗迷你小游戏.
顺应用户游戏习惯还是进入游戏时候加载等待(可以用图片遮挡),取决于你的需求。
优势
适合*世界的探索,将世界地图划分成为小块的加载(类比于天龙八部/诛仙/魔兽世界/剑侠情缘3/天涯明月刀)地图的区分
对与不计时间,玩家可以*选择的大游戏是更优的选择.
实现
在studio中无法调用传送服务器,需要到player中测试。
此处是一个碰触传送阵的dome
local placeID_0 = 5411490997--传送场景ID
local TeleportService = game:GetService("TeleportService")--服务器调用
local function onPartTouch(otherPart)
local player = game.Players:GetPlayerFromCharacter(otherPart.Parent)
if player then
local Players = game:GetService("Players")
local human=Players:GetPlayers()
local success, result = pcall(function()
return TeleportService:TeleportPartyAsync(placeID_0,human)
end)--pcall函数第一个返回值是函数的运行状态(true,false),第二个返回值是pcall中函数的返回值。
if success then
local jobId = result
print("Players teleported to "..jobId)
else
warn(result)
end
end
end
script.Parent.Touched:Connect(onPartTouch)
通过pcall和之后的if success语句,可以确保执行的安全。
本文地址:https://blog.csdn.net/Dusk_Rain/article/details/107534160