Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua Roblox商店不扣款_Lua_Roblox - Fatal编程技术网

Lua Roblox商店不扣款

Lua Roblox商店不扣款,lua,roblox,Lua,Roblox,我有一个roblox商店,当我买东西的时候,它会从我的领导那里扣钱,但是当我去买更多的钱的时候,它会把我刚刚花的钱加起来。这是我的代码 local price = script.Parent.Parent.Price local tools = game.ReplicatedStorage:WaitForChild("Tools") local tool = script.Parent.Parent.ItemName local player = script.Parent.Parent.Par

我有一个roblox商店,当我买东西的时候,它会从我的领导那里扣钱,但是当我去买更多的钱的时候,它会把我刚刚花的钱加起来。这是我的代码

local price = script.Parent.Parent.Price
local tools = game.ReplicatedStorage:WaitForChild("Tools")
local tool = script.Parent.Parent.ItemName
local player = script.Parent.Parent.Parent.Parent.Parent.Parent

script.Parent.MouseButton1Click:Connect(function()
    if player.leaderstats:FindFirstChild("Coins").Value >= price.Value then
        player.leaderstats:FindFirstChild("Coins").Value = player.leaderstats:FindFirstChild("Coins").Value - price.Value 
        game.ReplicatedStorage.ShopBuy:FireServer(tool.Value)
    end
end)
这是给你钱的脚本之一

db = false
script.Parent.Touched:Connect(function(hit)
    if hit.Parent:FindFirstChild("Humanoid") then
        local player = game.Players:GetPlayerFromCharacter(hit.Parent)
        if db == false then
            db = true
            script.Parent.BrickColor = BrickColor.new("Bright red")
            player.leaderstats.Coins.Value = player.leaderstats.Coins.Value + 100
            wait(10)
            script.Parent.BrickColor = BrickColor.new("Dark green")
            db = false

        end
    end
end)

它没有给我一个错误,它只是按照我解释的做。如果你需要我说得更具体,那就直接问吧!我是新手,所以我可能不是最好的。:)非常感谢您对我们的任何帮助

我认为您的问题可能是您在第一个脚本中更改了客户端而不是服务器上的leaderstats值。服务器不知道该更改,并且在对您的硬币值进行其他更新时不会考虑它。

相反,您应该更改在第一个脚本中调用的ShopBuy事件处理程序中的Coins值

更新:

我认为你的解决方案来自youtube上的一个教程。。。我没有经历过这些,但我会尝试以下方法:

在“购买”按钮下方的客户端脚本中,去掉更改货币的行,而是将价格值发送到服务器:

game.ReplicatedStorage.ShopBuy:FireServer(tool.Value,price.Value)
在服务器的ShopBuy脚本中,更改回调签名以包含该新参数,如下所示:

game.ReplicatedStorage.ShopBuy.OnServerEvent:Connect(function(player,tool,price)
然后在该函数中添加扣除金额的行:

player.leaderstats.Money.Value = layer.leaderstats.Money.Value - price
想想看。服务器现在正在执行该命令来进行推断,因此所有客户机都会知道这一点


另一个注意事项是:如果您在每个工具中创建一个“IntValue”来保存它的价格,那么您不需要将价格从客户机发送到服务器

我认为您的问题可能是您在第一个脚本中更改了客户端而不是服务器上的leaderstats值。服务器不知道该更改,并且在对您的硬币值进行其他更新时不会考虑它。

相反,您应该更改在第一个脚本中调用的ShopBuy事件处理程序中的Coins值

更新:

我认为你的解决方案来自youtube上的一个教程。。。我没有经历过这些,但我会尝试以下方法:

在“购买”按钮下方的客户端脚本中,去掉更改货币的行,而是将价格值发送到服务器:

game.ReplicatedStorage.ShopBuy:FireServer(tool.Value,price.Value)
在服务器的ShopBuy脚本中,更改回调签名以包含该新参数,如下所示:

game.ReplicatedStorage.ShopBuy.OnServerEvent:Connect(function(player,tool,price)
然后在该函数中添加扣除金额的行:

player.leaderstats.Money.Value = layer.leaderstats.Money.Value - price
想想看。服务器现在正在执行该命令来进行推断,因此所有客户机都会知道这一点


另一个注意事项是:如果您在每个工具中创建一个“IntValue”来保存它的价格,那么您不需要将价格从客户机发送到服务器

此代码示例不会修改玩家的钱。你能把这个加到你的问题上吗?哇!很抱歉是的,我可以给你!好啊我编辑了它。你能不能也添加代码,在那里你可以给领导机构增加更多的钱?是的!只是这个代码示例没有修改玩家的钱。你能把这个加到你的问题上吗?哇!很抱歉是的,我可以给你!好啊我编辑了它。你能不能也添加代码,在那里你可以给领导机构增加更多的钱?是的!刚刚做了,但那是一个遥远的事件。。。我将如何更改它?这是指向商店gui的链接,您可以使用它,也许可以看到它有什么问题。非常感谢!我试了一家商店很长时间了,但一直没能找到一家!我对你的答案投了赞成票并点击了复选标记!再次感谢你们!但这是一个遥远的事件。。。我将如何更改它?这是指向商店gui的链接,您可以使用它,也许可以看到它有什么问题。非常感谢!我试了一家商店很长时间了,但一直没能找到一家!我对你的答案投了赞成票并点击了复选标记!再次感谢你们!