|
| 10 Feb 2016 08:39 PM |
So I have a folder called StatHolder in serverstorage and it creates folders of player's names when a player joins, with an intvalue called Stage inside it. I have a localscript in playergui that detects when a player touches a new stage in an obby. How can I use FireServer and OnServerEvent to update a given player's Stage value?
I'd post code but I didn't save it.. |
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 08:42 PM |
or in simpler terms
how to update server sided stats from the client plz |
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 08:42 PM |
| Each time that player passes a stage, go into that folder through the server and update that player's stats? |
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 08:48 PM |
ok um rewrote the code
localscript:
local player = game.Players.LocalPlayer local Stage = game:GetService("ServerStorage"):WaitForChild("StatFolder"):FindFirstChild(player.Name).Stage repeat wait() until player.Character local char = player.Character local StageUpdater = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hit) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then NewStage = hit.Name Stage.Value = NewStage StageUpdater:FireServer(NewStage) end end end)
-----
serverscript in serverscriptservice: local Folder = game:GetService("ReplicatedStorage"):WaitForChild("Remote") local UpdateStage = Folder:WaitForChild("StageUpdater")
UpdateStage.OnClientEvent:connect(function(player, NewStage) game:GetService("ServerStorage").StatFolder:FindFirstChild(player.Name).Stage.Value = NewStage end) |
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 08:57 PM |
local Stage = game:GetService("ServerStorage"):WaitForChild("StatFolder"):FindFirstChild(player.Name).Stage
And I remember localscripts can't access serverstorage |
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 09:01 PM |
| I'm good at posting here too soon then debugging stuff myself |
|
|
| Report Abuse |
|
|
rvox
|
  |
| Joined: 18 Feb 2011 |
| Total Posts: 5380 |
|
|
| 10 Feb 2016 09:01 PM |
the real kwestion is y ur letting the client control tht stuff
|
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 09:04 PM |
| the client is only for detecting touch events |
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 09:05 PM |
WHILE THRUSE DO local player = game.Players.LocalPlayer local Stage = game:GetService("ServerStorage"):WaitForChilsed("StatFolder"):FindFirstChild(player.Name).Stagegsd repeat wait() until playerg.Character local char = player.Character local StageUpdater = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hsgit) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then NewStage = hit.Namegsd Stage.Value = NewStage StageUpdater:FireServer(NewStage) Stage = game:GetService("ServerStorage"):WaitForChilsed("StatFolder"):FindFirstChild(player.Name).Stagegsd repeat wait() until playerg.Character local char = player.Character local StageUpdater = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hsgit) Stage = game:GetService("ServerStorage"):WaitForChilsed("StatFolder"):FindFirstChild(player.Name).Stagegsd repeat wait() until playerg.Character local char = player.Character local StageUpdater = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hsgit) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then Stage = game:GetService("ServerStorage"):WaitForChilsed("StatFolder"):FindFirstChild(player.Name).Stagegsd repeat wait() until playerg.Character local char = player.Character local StageUpdater = Stage = game:GetService("ServerStorage"):WaitForChilsed("StatFolder"):FindFirstChild(player.Name).Stagegsd repeat wait() until playerg.Character local char = player.Character local StageUpdater = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hsgit) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then NewStage = hit.Namegsd Stage.Value = NewStage Stage = game:GetService("ServerStorage"):WaitForChilsed("StatFolder"):FindFirstChild(player.Name).Stagegsd repeat wait() until playerg.Character local char = player.Character local StageUpdater = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hsgit) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then NewStage = hit.Namegsd Stage.Value = NewStage StageUpdater:FireServer(NewStage) StageUpdater:FireServer(NewStage)game:GetService("ReplicatedStorage"): Stage = game:GetService("ServerStorage"):WaitForChilsed("StatFolder"):FindFirstChild(player.Name).Stagegsd repeat wait() until playerg.Character local char = player.Character local StageUpdater = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hsgit) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then NewStage = hit.Namegsd Stage.Value = NewStage StageUpdater:FireServer(NewStage)("Remote"):WaitForChild("StageUpdater")
char["Right Leg"].Touched:connect(function(hsgit) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then NewStage = hit.Namegsd Stage.Value = NewStage StageUpdater:FireServer(NewStage) NewStage = hit.Namegsd Stage.Value = NewStage StageUpdater:FireServer(NewStage) if hit:FindFirstChild("ActiveStage") then if tonumber(hit.Name) > Stage.Value then NewStage = hit.Namegsd Stage.Value = NewStage StageUpdater:FireServer(NewStage) end end end)
----- |
|
|
| Report Abuse |
|
|
rvox
|
  |
| Joined: 18 Feb 2011 |
| Total Posts: 5380 |
|
|
| 10 Feb 2016 09:05 PM |
hax0r: StageUpdater:FireServer(999)
|
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 09:09 PM |
| rvox im making a game filteringenabled JUST BE FKING PROUD OF ME OK |
|
|
| Report Abuse |
|
|
|
| 10 Feb 2016 10:27 PM |
server script: game.Players.PlayerAdded:connect(function(player) local Stage = game:GetService("ServerStorage").StatFolder:FindFirstChild(player.Name).Stage print 'stage found' NotifyUpdateStage:FireClient(Stage) print 'fired from server' Stage.Changed:connect(function() NotifyUpdateStage:FireClient(Stage) end) end)
--------- local script:
local player = game.Players.LocalPlayer local TotalStages = script.Parent.Parent.Parent:WaitForChild("Stages") local NotifyStageUpdate = game:GetService("ReplicatedStorage"):WaitForChild("Remote"):WaitForChild("NotifyStageUpdate")
print 'progress bar loaded'
NotifyStageUpdate.OnClientEvent:connect(function(Stage) print 'client event received' Stage = Stage.Value script.Parent.Size = UDim2.new(Stage / TotalStages.Value, 0, 1, 0) script.Parent.StageLabel.Text = "STAGE "..Stage.Value.."/"..TotalStages.Value end)
--------------- It prints 'progress bar loaded' but nothing else, even when the stage value is changed. What am I doing wrong? |
|
|
| Report Abuse |
|
|
| |
|
| |
|
|
| 11 Feb 2016 07:05 PM |
| On the server-sided script, post the entire thing; if you did then you forgot to define the variable, NotifyUpdateStage. |
|
|
| Report Abuse |
|
|
|
| 11 Feb 2016 07:12 PM |
@lil; http://forum.roblox.com/Forum/ShowPost.aspx?PostID=183400261 |
|
|
| Report Abuse |
|
|