Ejemplo n.º 1
0
        private void checkpointCmd(BasePlayer player, string command, string[] args)
        {
            if (!Checks.HasPermission(player.UserIDString))
            {
                PrintToChat(player, Lang("NoPermission", player.UserIDString));
                return;
            }
            if (args.Length == 0)
            {
                if (Data.Exists(player.userID))
                {
                    var data = sData.Players[player.userID];
                    PrintToChat(player, Lang("Checkpoint_Exists", player.UserIDString,
                                             Math.Round(Vector3.Distance(player.transform.position, new Vector3(data.PosX, data.PosY, data.PosZ)))));
                    return;
                }
                PrintToChat(player, Lang("Checkpoint_NotExist", player.UserIDString));
                return;
            }
            switch (args[0].ToLower())
            {
            case "set":
                if (!Data.Exists(player.userID))
                {
                    var bag = FindBag(player);
                    if (bag == null)
                    {
                        return;
                    }
                    if (!Checks.CanUseSleepingBag(player, bag))
                    {
                        PrintToChat(player, Lang("SleepingBag_NotOwner", player.UserIDString));
                        return;
                    }
                    Data.Add(player, new PlayerData(bag));
                    PrintToChat(player, Lang("Checkpoint_Set", player.UserIDString, Math.Round(bag.transform.position.x, 2),
                                             Math.Round(bag.transform.position.y, 2), Math.Round(bag.transform.position.z, 2)));
                }
                PrintToChat(player, Lang("Checkpoint_AlreadyExists", player.UserIDString, Math.Round(Vector3.Distance(player.transform.position,
                                                                                                                      new Vector3(sData.Players[player.userID].PosX, sData.Players[player.userID].PosY, sData.Players[player.userID].PosZ)))));
                return;

            case "remove":
                if (Data.Exists(player.userID))
                {
                    var data = sData.Players[player.userID];
                    Data.Remove(player.userID);
                    PrintToChat(player, Lang("Checkpoint_Removed", player.UserIDString, Math.Round(data.PosX, 2), Math.Round(data.PosY, 2), Math.Round(data.PosZ, 2),
                                             Math.Round(Vector3.Distance(player.transform.position, new Vector3(data.PosX, data.PosY, data.PosZ)))));
                    return;
                }
                PrintToChat(player, Lang("Checkpoint_NotFound", player.UserIDString));
                return;
            }
        }