调用 GetUserIdFromNameAsync() 方法
2016-5-18 19:58:37
收藏:0
阅读:72
评论:2
好的,我正在制作一个关注好友的GUI,我试图从包含名称的字符串中使用 GetUserIdFromNameAsync() 方法。我正在尝试使用 pcall() 避免出错,但即使我经常调用它,它返回 nil,因为我知道它的名称,但当我尝试 pcall() 然后使用 if 语句时,它每次都返回 nil 并走到我的 else 语句中。
local TeleportService = game:GetService("TeleportService")
script.Parent.OnServerEvent:connect(function(player, id)
place = player.GuiFolder
print(game.Players:GetUserIdFromNameAsync(id))
--ISSUE IN LINE BELOW-- ISSUE IS IN THE LINE BELOW
friend, msg = pcall(game.Players:GetUserIdFromNameAsync(id))
if friend then
print(player.Name, player, player.PlayerGui.MainMenu.Name)
if player:IsFriendsWith(friend) then
place.IsFriend.Value = true
local success, errorMsg, placeId, instanceId = TeleportService:GetPlayerPlaceInstanceAsync(friend)
if success then
place.foundplayerbar.Value = "Found player. Would you like to join?"
place.Activated.Value = true
else enter code here
place.errorbar.Value = "ERROR: Player not online!"
end
else place.errorbar.Value = "ERROR: Not Friends with person!"
end
else place.errorbar.Value = "ERROR: Player doesn't exist!"
end
end)
点赞
用户5666571
Lua文档中指出:
假设你想运行一段Lua代码,并捕获在运行过程中引发的任何错误。你的第一步是将这段代码封装在一个函数中;让我们称其为
foo... 然后,你使用pcall调用foo ...
你的代码使用了带有函数的pcall,但它调用了该函数而不是将其作为参数使用。
为了解决这个问题,你可以将game.Players:GetUserIdFromNameAsync(id)放入一个函数中并将其作为参数使用,但更简单的方法是使用匿名函数,如下所示:
friend, msg = pcall(function()
game.Players:GetUserIdFromNameAsync(id)
end)
这将给你正确的值。
2016-05-19 20:38:47
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
根据《Programming in Lua》电子书所述:“假设你想运行一段 Lua 代码并捕获在运行过程中产生的任何错误。你的第一步是将这段代码封装在一个函数中……pcall 函数以受保护模式调用其第一个参数,以便在函数运行时捕获任何错误。如果没有错误,pcall 返回 true,以及调用返回的任何值。否则,它将返回 false 和错误消息。”
而不是直接在这个函数上调用 pcall,先将所有内容封装在一个函数中:
function func() friend, msg = game.Players:GetUserIdFromNameAsync(id) if friend then ... else ... end end然后你可以使用 pcall 调用这个函数并捕获任何错误:
local status, err = pcall(func) if not status then print(err) end