[SOLVED] a_Player:SetNormalMaxSpeed(0) - Printable Version +- Cuberite Forum (https://forum.cuberite.org) +-- Forum: Plugins (https://forum.cuberite.org/forum-1.html) +--- Forum: Plugin Discussion (https://forum.cuberite.org/forum-8.html) +--- Thread: [SOLVED] a_Player:SetNormalMaxSpeed(0) (/thread-2203.html) |
[SOLVED] a_Player:SetNormalMaxSpeed(0) - heroldini - 11-09-2015 hi, i would like to set players walk speed to 0 (players should not walk arround bevor countdown ends...), but when i use a_Player:SetNormalMaxSpeed(0), clients camera zooms... is it a bug or i do something wrong? thx for answer RE: a_Player:SetNormalMaxSpeed(0) - NiLSPACE - 11-09-2015 That's because Minecraft changes the Field of View (FOV) depending on your speed attribute. Cuberite simply changes it and as a result Minecraft will also change the camera.If you don't want this you can try teleporting the player back once he leaves spot he's in. RE: a_Player:SetNormalMaxSpeed(0) - heroldini - 11-09-2015 ok, thanks... then its no plugin bug, but rather a feature for now RE: [SOLVED] a_Player:SetNormalMaxSpeed(0) - DiamondToaster - 11-10-2015 Pretty much the only thing I could think of in this situation without changing the FoV is using the OnPlayerMoving hook like so: -- Lets have a table containing names of players that cannot move StopMove = {} -- Also, lets assume that their name was already inserted into the table somehow function OnPlayerMoving(Player) -- Search through the table as key-value format for _, k in pairs(StopMoving) do -- If the player's name happens to match a name in the table, stop them if Player:GetName() == k then -- Returning true means that the plugin has handled the player movement itself and the server doesn't have to perform any further actions return true end end end RE: [SOLVED] a_Player:SetNormalMaxSpeed(0) - xoft - 11-11-2015 @DiamondToaster: You're using an inefficient way to do this. Reorganize your StopMove table to instead be a map of PlayerName -> true for all players that are to be stopped, then it's much better: --- Map of PlayerName -> true for all players who should not be allowed to move StopMove = {} -- Stop a player from moving: StopMove[a_Player:GetName()] = true -- Enable player to move again: StopMove[a_Player:GetName()] = nil --- The hook handler for HOOK_PLAYER_MOVING, stops specified players from moving: function OnPlayerMoving(Player) if (StopMove[Player:GetName()]) then return true end end RE: [SOLVED] a_Player:SetNormalMaxSpeed(0) - DiamondToaster - 11-11-2015 Yeah. It's a bit of a bad habit treating them like C++ vectors. :/ Using a map and setting it to nil would definitely be better. |