头像检查脚本总是 returns "Instance"
Avatar inspect script always returns "Instance"
我正在尝试制作一款游戏,允许玩家坐在特定的座位上并与他们的 UserId
或用户名聊天来检查任何其他玩家的头像,但是当用户输入用户名时,该功能总是 returns Instance
,这很烦人。但是,UserId
有效。这是我的代码:
-- client-side script
local Players=game:GetService("Players")
local Player=Players.LocalPlayer
local GuiService=game:GetService("GuiService")
local Rep=game:GetService("ReplicatedStorage")
repeat wait(0.1) until Player.Character
local h=Player.Character:WaitForChild("Humanoid")
GuiService:SetInspectMenuEnabled(false)
Player.Chatted:Connect(function(m)
if h.Sit then
if #string.split(m," ")==1 then
if tonumber(m)~=nil then
if h.SeatPart.Name=="AvatarInspectMenu" then
local id=tonumber(m)
GuiService:InspectPlayerFromUserId(id)
end
else
if h.SeatPart.Name=="AvatarInspectMenu" then
local id=Rep.Idify:InvokeServer(m)
GuiService:InspectPlayerFromUserId(id)
end
end
end
end
end)
--server-side script
local cache={}
game:GetService("ReplicatedStorage").Idify.OnServerInvoke=function(n)
if cache[n] then return cache[n] end
local player=game.Players:FindFirstChild(n)
if player then
cache[n]=player.UserId
return player.UserId
end
local id
pcall(function ()
id = game.Players:GetUserIdFromNameAsync(n)
end)
cache[n] = id
return id
end
客户端脚本运行良好,当我在椅子上聊天 1
时,我得到了 ROBLOX
的头像检查菜单,但是当我在椅子上聊天 ROBLOX
时,我得到 Instance
或 nil
的头像检查菜单。有什么可能的方法来修复这个错误吗?
传递给 OnServerInvoke 的第一个参数是调用该函数的玩家,参见
OnServerInvoke
既然你对此不感兴趣,你可以使用虚拟下划线忽略它,如下所示:
game:GetService("ReplicatedStorage").Idify.OnServerInvoke=function(_, n)
我正在尝试制作一款游戏,允许玩家坐在特定的座位上并与他们的 UserId
或用户名聊天来检查任何其他玩家的头像,但是当用户输入用户名时,该功能总是 returns Instance
,这很烦人。但是,UserId
有效。这是我的代码:
-- client-side script
local Players=game:GetService("Players")
local Player=Players.LocalPlayer
local GuiService=game:GetService("GuiService")
local Rep=game:GetService("ReplicatedStorage")
repeat wait(0.1) until Player.Character
local h=Player.Character:WaitForChild("Humanoid")
GuiService:SetInspectMenuEnabled(false)
Player.Chatted:Connect(function(m)
if h.Sit then
if #string.split(m," ")==1 then
if tonumber(m)~=nil then
if h.SeatPart.Name=="AvatarInspectMenu" then
local id=tonumber(m)
GuiService:InspectPlayerFromUserId(id)
end
else
if h.SeatPart.Name=="AvatarInspectMenu" then
local id=Rep.Idify:InvokeServer(m)
GuiService:InspectPlayerFromUserId(id)
end
end
end
end
end)
--server-side script
local cache={}
game:GetService("ReplicatedStorage").Idify.OnServerInvoke=function(n)
if cache[n] then return cache[n] end
local player=game.Players:FindFirstChild(n)
if player then
cache[n]=player.UserId
return player.UserId
end
local id
pcall(function ()
id = game.Players:GetUserIdFromNameAsync(n)
end)
cache[n] = id
return id
end
客户端脚本运行良好,当我在椅子上聊天 1
时,我得到了 ROBLOX
的头像检查菜单,但是当我在椅子上聊天 ROBLOX
时,我得到 Instance
或 nil
的头像检查菜单。有什么可能的方法来修复这个错误吗?
传递给 OnServerInvoke 的第一个参数是调用该函数的玩家,参见 OnServerInvoke
既然你对此不感兴趣,你可以使用虚拟下划线忽略它,如下所示:
game:GetService("ReplicatedStorage").Idify.OnServerInvoke=function(_, n)