diff options
Diffstat (limited to 'MCServer/Plugins/Core/worldlimiter.lua')
-rw-r--r-- | MCServer/Plugins/Core/worldlimiter.lua | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/MCServer/Plugins/Core/worldlimiter.lua b/MCServer/Plugins/Core/worldlimiter.lua new file mode 100644 index 000000000..1bb1b4fc6 --- /dev/null +++ b/MCServer/Plugins/Core/worldlimiter.lua @@ -0,0 +1,22 @@ +function OnPlayerMoving( Player ) + LimitWorldWidth = WorldsWorldLimit[Player:GetWorld():GetName()] + if LimitWorldWidth > 0 then + local World = Player:GetWorld() + local SpawnX = math.floor(World:GetSpawnX() / 16) + local SpawnZ = math.floor(World:GetSpawnZ() / 16) + local X = math.floor(Player:GetPosX() / 16) + local Z = math.floor(Player:GetPosZ() / 16) + if ( (SpawnX + LimitWorldWidth - 1) < X ) then + Player:TeleportToCoords(Player:GetPosX() - 1, Player:GetPosY(), Player:GetPosZ()) + end + if ( (SpawnX - LimitWorldWidth + 1) > X ) then + Player:TeleportToCoords(Player:GetPosX() + 1, Player:GetPosY(), Player:GetPosZ()) + end + if ( (SpawnZ + LimitWorldWidth - 1) < Z ) then + Player:TeleportToCoords(Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() - 1) + end + if ( (SpawnZ - LimitWorldWidth + 1) > Z ) then + Player:TeleportToCoords(Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() + 1) + end + end +end
\ No newline at end of file |