当前位置: 移动技术网 > 科技>操作系统>windows > Teleport roblox(海岛聊天室)

Teleport roblox(海岛聊天室)

2020年07月28日  | 移动技术网科技  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网