여기에 거래가 있습니다. 내 게임에서 체포되면 감옥에 보내집니다. 빠져 나가려면 반드시 구제를 받아야합니다. 클라이언트는 그들을 구제하기 위해 서버에 요청을 보냅니다. 내가 믿는이 부분을 제외하고 다른 모든 부분이 작동하는 것처럼 보이지만 클라이언트 측 스크립트 일 수 있습니다. 이 스크립트에 대해 잘못된 것이 있습니까? 나에게 명백한 오류가 있는지 확인했습니다.
local replicatedStorage = game:GetService('ReplicatedStorage')
local createSystemMessage = replicatedStorage:WaitForChild('CreateSystemMessage')
game.ReplicatedStorage.Bail.OnServerEvent:Connect(function(Player,PlayerToBail)
Player = game.Players:FindFirstChild(Player)
local tab = nil
for i,v in pairs(_G.GlobalData) do
if v.Name == Player.Name then
tab = v
end
end
if PlayerToBail.Team == game.Teams:FindFirstChild("Criminal") then
local Bounty = PlayerToBail.leaderstats.Bounty.Value * 2
if tab.Bank <= Bounty then
tab.Bank -= Bounty
PlayerToBail.leaderstats.Bounty.Value = 0
PlayerToBail.Prisoner.Value = false
PlayerToBail.Team = game.Teams:FindFirstChild("Civilian")
createSystemMessage:FireAllClients((Player.Name .. ' has Bailed ' .. PlayerToBail.Name), Color3.fromRGB(0, 250, 0))
end
end
end)
다음은 클라이언트 용 스크립트입니다. 이것은 마지막에 인쇄 기능을 보낼 때 작동합니다.
script.Parent.AcceptButton.MouseButton1Click:Connect(function()
local PlayerName = script.Parent.TargetName.Text
game.ReplicatedStorage.Bail:FireServer(PlayerName)
print ("Bail Requested")
end)
원격 이벤트에 전달하는 인수로 문제가 발생한다고 생각합니다. 클라이언트 스크립트에서 PlayerName을 인수로 전달합니다. 나는 이것이 플레이어 이름의 문자열이라고 가정하고 있습니다.
game.ReplicatedStorage.Bail:FireServer(PlayerName)
PlayerName은 실제로 "PlayerToBail"매개 변수로 전송되며, 플레이어 개체라고 가정합니다. Roblox의 RemoteEvents는 원격 이벤트를 발생시킨 플레이어를 첫 번째 인수로 자동으로 전달합니다. 따라서 원격 이벤트에 연결된 함수의 "Player"매개 변수는 원격 이벤트를 발생시킨 로컬 스크립트가있는 실제 플레이어 개체입니다.
대신 다음과 같이 원격 이벤트를 시작합니다.
game.ReplicatedStorage.Bail:FireServer()
보석금을 내고자하는 플레이어가 자동으로 인수로 전달되므로 FireServer에 인수를 추가 할 필요가 없습니다. 또한 서버 스크립트에서 "PlayerToBail"매개 변수를 제거합니다.
또한 서버 스크립트에 다음 코드 줄이 필요하지 않습니다.
Player = game.Players:FindFirstChild(Player)
플레이어는 이미 게임의 개체를 참조하고 있습니다. 또한 Player는 문자열이 아니라 객체입니다. 그래서 이것은 작동하지 않습니다. 목적에 맞게 Player를 그대로 사용할 수 있습니다.
원격 이벤트에 대한 추가 정보 : https://developer.roblox.com/en-us/articles/Remote-Functions-and-Events
여전히 문제가있는 경우 언제든지 후속 조치를 취하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다