コード例 #1
0
        void cmdsafehome(PlayerSession session, string command, string[] args)
        {
            if (permission.UserHasPermission(session.SteamId.ToString(), "customwipe.use") || session.IsAdmin)
            {
                if (args.Length == 1)
                {
                    bool found = false;
                    foreach (PlayerIdentity identity in GameManager.Instance.GetIdentifierMap().Values)
                    {
                        if (identity.Name.ToLower().Equals(args[0].ToLower()) ||
                            identity.SteamId.ToString().Equals(args[0]))
                        {
                            found = true;
                            var count      = 0;
                            var enumerator = RefTrackedBehavior <OwnershipStakeServer> .GetEnumerator();

                            while (enumerator.MoveNext())
                            {
                                count++;
                                var stake = enumerator.Current.Value;
                                if (stake.AuthorizedPlayers.Contains(identity))
                                {
                                    var cell = ConstructionUtilities.GetOwnershipCell(stake.transform.position);
                                    var desc = "Player Home - " + identity.Name;
                                    safeCells.Add(new Cell {
                                        cellid = cell, pos = Vector3ToString(stake.transform.position), description = desc
                                    });
                                }
                            }
                            SaveData();
                            hurt.SendChatMessage(session, Msg("safehome_safe", session.SteamId.ToString()).Replace("{playername}", identity.Name).Replace("{count}", count + ""));
                            return;
                        }
                    }
                    if (!found)
                    {
                        hurt.SendChatMessage(session, Msg("safehome_notFound", session.SteamId.ToString()).Replace("{playername}", args[0]));
                    }
                }
            }
            else
            {
                hurt.SendChatMessage(session, Msg("nopermission", session.SteamId.ToString()));
            }
        }
コード例 #2
0
        private void cmdTotem(PlayerSession player, string command, string[] args)
        {
            if (!permission.UserHasPermission(player.SteamId.ToString(), permissionTotem))
            {
                hurt.SendChatMessage(player, GetMessage("Not Allowed", player.SteamId.ToString()));
                return;
            }
            PlayerIdentity identity = player.Identity;
            ulong          steamID  = player.SteamId.m_SteamID;

            if (args == null || args.Length == 0)
            {
                if (UnityEngine.Time.realtimeSinceStartup - lastRefresh[steamID] > floatTotemRefresh)
                {
                    RefreshTotem(identity);
                }
                int o = 0;
                hurt.SendChatMessage(player, GetMessage("Select a totem", player.SteamId.ToString()).Replace("{refresh}", UnityEngine.Mathf.Ceil(floatTotemRefresh - (UnityEngine.Time.realtimeSinceStartup - lastRefresh[steamID])).ToString()));
                foreach (OwnershipStakeServer stake in cashedTotems[steamID])
                {
                    if (stake.AuthorizedPlayers.Contains(identity))
                    {
                        hurt.SendChatMessage(player, string.Format("{0} - {1}", o.ToString(), stake.TerritoryName));
                        o++;
                    }
                }
                if (o == 0)
                {
                    hurt.SendChatMessage(player, GetMessage("No Totems Found", player.SteamId.ToString()));
                }
            }
            else
            {
                if (UnityEngine.Time.realtimeSinceStartup - lastSelection[steamID] < floatTotemSelectCooldown)
                {
                    hurt.SendChatMessage(player, GetMessage("Last Selection Cooldown", player.SteamId.ToString()).Replace("{cooldown}", UnityEngine.Mathf.Ceil(floatTotemSelectCooldown - (UnityEngine.Time.realtimeSinceStartup - lastSelection[steamID])).ToString()));
                    return;
                }
                int arg = 0;
                if (!int.TryParse(args[0], out arg))
                {
                    hurt.SendChatMessage(player, GetMessage("/totem TOTEMID", player.SteamId.ToString()));
                    return;
                }
                if (!cashedTotems.ContainsKey(steamID))
                {
                    hurt.SendChatMessage(player, GetMessage("Use /totem", player.SteamId.ToString()));
                    return;
                }
                if (cashedTotems[steamID][arg] == null)
                {
                    hurt.SendChatMessage(player, GetMessage("Totem doesnt exist", player.SteamId.ToString()));
                    return;
                }
                if (!cashedTotems[steamID][arg].AuthorizedPlayers.Contains(identity))
                {
                    hurt.SendChatMessage(player, GetMessage("No longer authorized", player.SteamId.ToString()));
                    return;
                }
                List <OwnershipStakeServer> all = RefTrackedBehavior <OwnershipStakeServer> .GetAll();

                for (int p = 0; p < all.Count; p++)
                {
                    OwnershipStakeServer staked = all[p];
                    staked.SpawnPlayers.Remove(identity);
                    invalidate.Invoke(staked, null);
                }
                cashedTotems[steamID][arg].SpawnPlayers.Add(identity);
                invalidate.Invoke(cashedTotems[steamID][arg], null);
                hurt.SendChatMessage(player, GetMessage("Set Spawn", player.SteamId.ToString()).Replace("{totem}", cashedTotems[steamID][arg].TerritoryName));
                lastSelection[steamID] = UnityEngine.Time.realtimeSinceStartup;
            }
        }