Lua 如何制作2倍现金游戏通行证脚本Roblox
所以我制作了一个脚本,每分钟给你5现金,我还制作了一个游戏通行证,如果有人拥有游戏通行证,他们作为非游戏通行证持有人获得双倍的钱。这是我的剧本 我没有任何脚本提供现金,但问题是在第二个脚本块中,控制台打印错误:Lua 如何制作2倍现金游戏通行证脚本Roblox,lua,roblox,Lua,Roblox,所以我制作了一个脚本,每分钟给你5现金,我还制作了一个游戏通行证,如果有人拥有游戏通行证,他们作为非游戏通行证持有人获得双倍的钱。这是我的剧本 我没有任何脚本提供现金,但问题是在第二个脚本块中,控制台打印错误: 09:10:57.466服务器脚本服务。现金发放者:6:尝试使用“UserId”索引nil-服务器-现金发放者:6 local Give5Cash = game.ReplicatedStorage:WaitForChild("Give5Cash") local Giv
09:10:57.466服务器脚本服务。现金发放者:6:尝试使用“UserId”索引nil-服务器-现金发放者:6
local Give5Cash = game.ReplicatedStorage:WaitForChild("Give5Cash")
local Give10Cash = game.ReplicatedStorage:WaitForChild("Give10Cash")
Give5Cash.OnServerEvent:Connect(function()
print("Player Will Be Given 5 Cash")
end)
Give10Cash.OnServerEvent:Connect(function()
print("Player Will Be Given 10 Cash")
end)
在这里,您为player
分配了一个nil值,您可以不编制索引,而是编制索引
从:
玩家。本地玩家
不复制
此项未跨Roblox的服务器/客户端边界复制
LocalPlayer是一个只读属性,它引用
客户端正在运行游戏
此属性仅为LocalScript(和ModuleScripts)定义
在客户端上运行时。对于服务器(在其上)
脚本对象运行其代码),此属性为nil。
在这里,您为player
分配了一个nil值,您可以不编制索引,而是编制索引
从:
玩家。本地玩家
不复制
此项未跨Roblox的服务器/客户端边界复制
LocalPlayer是一个只读属性,它引用
客户端正在运行游戏
此属性仅为LocalScript(和ModuleScripts)定义
在客户端上运行时。对于服务器(在其上)
脚本对象运行其代码),此属性为nil。
所以我想出了一个解决这个问题的方法,我已经得到了我问题的答案。 下面是我是如何做到的,我在
ServerScriptService
中制作了3
脚本,名称为CashGiver5
,CashGiver10
,以及CashGiverHandler
下面是我添加到每个脚本中的脚本。
CashGiver5
:
while wait(1) do
print("Giving Player 5 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 5
end
end
while wait(1) do
print("Giving Player 10 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 10
end
end
local MarketPlace = game:GetService("MarketplaceService")
game.Players.PlayerAdded:Connect(function(player)
local g = 16031172 -- DOUBLE CASH ID
local Give5Script = game.ServerScriptService.CashGiver5
local Give10Script = game.ServerScriptService.CashGiver10
if MarketPlace:UserOwnsGamePassAsync(player.UserId, g) then
Give5Script:Destroy()
else
Give10Script:Destroy()
end
end)
CashGiver10
:
while wait(1) do
print("Giving Player 5 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 5
end
end
while wait(1) do
print("Giving Player 10 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 10
end
end
local MarketPlace = game:GetService("MarketplaceService")
game.Players.PlayerAdded:Connect(function(player)
local g = 16031172 -- DOUBLE CASH ID
local Give5Script = game.ServerScriptService.CashGiver5
local Give10Script = game.ServerScriptService.CashGiver10
if MarketPlace:UserOwnsGamePassAsync(player.UserId, g) then
Give5Script:Destroy()
else
Give10Script:Destroy()
end
end)
CashGiverHandler
:
while wait(1) do
print("Giving Player 5 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 5
end
end
while wait(1) do
print("Giving Player 10 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 10
end
end
local MarketPlace = game:GetService("MarketplaceService")
game.Players.PlayerAdded:Connect(function(player)
local g = 16031172 -- DOUBLE CASH ID
local Give5Script = game.ServerScriptService.CashGiver5
local Give10Script = game.ServerScriptService.CashGiver10
if MarketPlace:UserOwnsGamePassAsync(player.UserId, g) then
Give5Script:Destroy()
else
Give10Script:Destroy()
end
end)
脚本的作用是什么?
所以基本上,现金发放者脚本是每秒给玩家现金的基本脚本。
因此,当玩家被添加到游戏中时,处理程序脚本会销毁其中一个脚本。因此,我找到了解决这个问题的方法,我的问题得到了答案。
下面是我是如何做到的,我在ServerScriptService
中制作了3
脚本,名称为CashGiver5
,CashGiver10
,以及CashGiverHandler
下面是我添加到每个脚本中的脚本。
CashGiver5
:
while wait(1) do
print("Giving Player 5 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 5
end
end
while wait(1) do
print("Giving Player 10 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 10
end
end
local MarketPlace = game:GetService("MarketplaceService")
game.Players.PlayerAdded:Connect(function(player)
local g = 16031172 -- DOUBLE CASH ID
local Give5Script = game.ServerScriptService.CashGiver5
local Give10Script = game.ServerScriptService.CashGiver10
if MarketPlace:UserOwnsGamePassAsync(player.UserId, g) then
Give5Script:Destroy()
else
Give10Script:Destroy()
end
end)
CashGiver10
:
while wait(1) do
print("Giving Player 5 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 5
end
end
while wait(1) do
print("Giving Player 10 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 10
end
end
local MarketPlace = game:GetService("MarketplaceService")
game.Players.PlayerAdded:Connect(function(player)
local g = 16031172 -- DOUBLE CASH ID
local Give5Script = game.ServerScriptService.CashGiver5
local Give10Script = game.ServerScriptService.CashGiver10
if MarketPlace:UserOwnsGamePassAsync(player.UserId, g) then
Give5Script:Destroy()
else
Give10Script:Destroy()
end
end)
CashGiverHandler
:
while wait(1) do
print("Giving Player 5 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 5
end
end
while wait(1) do
print("Giving Player 10 Cash ")
for i, player in pairs(game.Players:GetPlayers()) do
player:WaitForChild("leaderstats").Cash.Value += 10
end
end
local MarketPlace = game:GetService("MarketplaceService")
game.Players.PlayerAdded:Connect(function(player)
local g = 16031172 -- DOUBLE CASH ID
local Give5Script = game.ServerScriptService.CashGiver5
local Give10Script = game.ServerScriptService.CashGiver10
if MarketPlace:UserOwnsGamePassAsync(player.UserId, g) then
Give5Script:Destroy()
else
Give10Script:Destroy()
end
end)
脚本的作用是什么?
所以基本上,现金发放者脚本是每秒给玩家现金的基本脚本。
因此,当玩家被添加到游戏中时,处理程序脚本会销毁其中一个脚本。有什么方法可以修复它吗?是的,您阅读了手册。您还可以访问服务器端的播放器。只是没有本地播放器…有没有办法修复它?是的,你读了手册。您还可以访问服务器端的播放器。没有本地播放器。。。