コード例 #1
0
 public void askVote(CSteamID steamID, bool vote)
 {
     if (Provider.isServer)
     {
         if (PlayerTool.getSteamPlayer(steamID) == null)
         {
             return;
         }
         if (!ChatManager.isVoting)
         {
             return;
         }
         if (ChatManager.votes.Contains(steamID))
         {
             return;
         }
         ChatManager.votes.Add(steamID);
         if (vote)
         {
             ChatManager.voteYes += 1;
         }
         else
         {
             ChatManager.voteNo += 1;
         }
         ChatManager.manager.channel.send("tellVoteUpdate", ESteamCall.CLIENTS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
         {
             ChatManager.voteYes,
             ChatManager.voteNo
         });
     }
 }
コード例 #2
0
ファイル: ZombieSoulFlag.cs プロジェクト: sky-xk-nge/Unturned
 private void onZombieLifeUpdated(Zombie zombie)
 {
     if (!zombie.isDead)
     {
         return;
     }
     if ((zombie.transform.position - base.transform.position).sqrMagnitude > this.sqrRadius)
     {
         return;
     }
     ZombieSoulFlag.nearbyPlayers.Clear();
     PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, ZombieSoulFlag.nearbyPlayers);
     for (int i = 0; i < ZombieSoulFlag.nearbyPlayers.Count; i++)
     {
         Player player = ZombieSoulFlag.nearbyPlayers[i];
         if (!player.life.isDead)
         {
             short num;
             if (player.quests.getFlag(this.flagPlaced, out num) && num == 1)
             {
                 EffectManager.sendEffect(this.collectEffect, player.channel.owner.playerID.steamID, zombie.transform.position + Vector3.up, (base.transform.position - zombie.transform.position + Vector3.up).normalized);
                 short num2;
                 player.quests.getFlag(this.flagKills, out num2);
                 num2 += 1;
                 player.quests.sendSetFlag(this.flagKills, num2);
                 if (num2 >= (short)this.soulsNeeded)
                 {
                     EffectManager.sendEffect(this.teleportEffect, player.channel.owner.playerID.steamID, base.transform.position);
                     player.quests.sendSetFlag(this.flagPlaced, 2);
                 }
             }
         }
     }
 }
コード例 #3
0
        // Token: 0x06001E2B RID: 7723 RVA: 0x000A4A1C File Offset: 0x000A2E1C
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/');
            if (componentsFromSerial.Length != 1)
            {
                CommandWindow.LogError(this.localization.format("InvalidParameterErrorText"));
                return;
            }
            SteamPlayer steamPlayer;

            if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer) || steamPlayer.player == null)
            {
                CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[]
                {
                    componentsFromSerial[0]
                }));
                return;
            }
            steamPlayer.player.sendScreenshot(executorID, null);
            CommandWindow.Log(this.localization.format("SpyText", new object[]
            {
                steamPlayer.playerID.playerName
            }));
        }
コード例 #4
0
ファイル: CommandPermit.cs プロジェクト: sky-xk-nge/Unturned
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Dedicator.isDedicated)
            {
                return;
            }
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/');
            if (componentsFromSerial.Length != 2)
            {
                CommandWindow.LogError(this.localization.format("InvalidParameterErrorText"));
                return;
            }
            CSteamID csteamID;

            if (!PlayerTool.tryGetSteamID(componentsFromSerial[0], out csteamID))
            {
                CommandWindow.LogError(this.localization.format("InvalidSteamIDErrorText", new object[]
                {
                    componentsFromSerial[0]
                }));
                return;
            }
            SteamWhitelist.whitelist(csteamID, componentsFromSerial[1], executorID);
            CommandWindow.Log(this.localization.format("PermitText", new object[]
            {
                csteamID,
                componentsFromSerial[1]
            }));
        }
コード例 #5
0
        public void askTransformStructure(CSteamID steamID, byte x, byte y, uint instanceID, Vector3 point, byte angle_x, byte angle_y, byte angle_z)
        {
            StructureRegion structureRegion;

            if (Provider.isServer && StructureManager.tryGetRegion(x, y, out structureRegion))
            {
                Player player = PlayerTool.getPlayer(steamID);
                if (player == null)
                {
                    return;
                }
                if (player.life.isDead)
                {
                    return;
                }
                if (!player.channel.owner.isAdmin)
                {
                    return;
                }
                StructureManager.manager.channel.send("tellTransformStructure", ESteamCall.ALL, x, y, StructureManager.STRUCTURE_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
                {
                    x,
                    y,
                    instanceID,
                    point,
                    angle_x,
                    angle_y,
                    angle_z
                });
            }
        }
コード例 #6
0
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            SteamPlayer steamPlayer;

            if (!PlayerTool.tryGetSteamPlayer(parameter, out steamPlayer))
            {
                CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[]
                {
                    parameter
                }));
                return;
            }
            if (steamPlayer.player != null)
            {
                EPlayerKill eplayerKill;
                steamPlayer.player.life.askDamage(101, Vector3.up * 101f, EDeathCause.KILL, ELimb.SKULL, executorID, out eplayerKill);
            }
            CommandWindow.Log(this.localization.format("KillText", new object[]
            {
                steamPlayer.playerID.playerName
            }));
        }
コード例 #7
0
        // Token: 0x06001E38 RID: 7736 RVA: 0x000A5374 File Offset: 0x000A3774
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Dedicator.isDedicated)
            {
                return;
            }
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            CSteamID csteamID;

            if (!PlayerTool.tryGetSteamID(parameter, out csteamID))
            {
                CommandWindow.LogError(this.localization.format("InvalidSteamIDErrorText", new object[]
                {
                    parameter
                }));
                return;
            }
            if (!SteamBlacklist.unban(csteamID))
            {
                CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[]
                {
                    csteamID
                }));
                return;
            }
            CommandWindow.Log(this.localization.format("UnbanText", new object[]
            {
                csteamID
            }));
        }
コード例 #8
0
        // Token: 0x060026B7 RID: 9911 RVA: 0x000E54EC File Offset: 0x000E38EC
        private IEnumerator teleport()
        {
            yield return(new WaitForSeconds(3f));

            if (this.target != null)
            {
                ZombieSoulTeleporter.nearbyPlayers.Clear();
                PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, ZombieSoulTeleporter.nearbyPlayers);
                for (int i = 0; i < ZombieSoulTeleporter.nearbyPlayers.Count; i++)
                {
                    Player player = ZombieSoulTeleporter.nearbyPlayers[i];
                    if (!player.life.isDead)
                    {
                        short num;
                        short num2;
                        if (player.quests.getFlag(211, out num) && num == 1 && player.quests.getFlag(212, out num2) && num2 == 1 && player.quests.getQuestStatus(213) != ENPCQuestStatus.COMPLETED)
                        {
                            player.quests.sendSetFlag(214, 0);
                            player.quests.sendAddQuest(213);
                            player.sendTeleport(this.targetBoss.position, MeasurementTool.angleToByte(this.targetBoss.rotation.eulerAngles.y));
                        }
                        else
                        {
                            player.sendTeleport(this.target.position, MeasurementTool.angleToByte(this.target.rotation.eulerAngles.y));
                            if (player.equipment.isSelected)
                            {
                                player.equipment.dequip();
                            }
                            player.equipment.canEquip = false;
                        }
                    }
                }
            }
            yield break;
        }
コード例 #9
0
 // Token: 0x060027D4 RID: 10196 RVA: 0x000F171C File Offset: 0x000EFB1C
 public static void sendChat(EChatMode mode, string text)
 {
     if (!Provider.isServer)
     {
         ChatManager.manager.channel.send("askChat", ESteamCall.SERVER, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
         {
             (byte)mode,
             text
         });
     }
     else if (!Dedicator.isDedicated)
     {
         SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(Provider.client);
         if (steamPlayer == null)
         {
             return;
         }
         Color color  = (!Provider.isPro) ? Color.white : Palette.PRO;
         bool  isRich = false;
         bool  flag   = true;
         if (ChatManager.onChatted != null)
         {
             ChatManager.onChatted(steamPlayer, mode, ref color, ref isRich, text, ref flag);
         }
         if (ChatManager.process(steamPlayer, text) && flag)
         {
             ChatManager.list(Provider.client, mode, color, isRich, text);
         }
     }
 }
コード例 #10
0
 public static string getRepTitle(int rep)
 {
     return(PlayerDashboardInformationUI.localization.format("Rep", new object[]
     {
         PlayerDashboardInformationUI.localization.format("Rep_" + PlayerTool.getRepKey(rep)),
         rep
     }));
 }
コード例 #11
0
 // Token: 0x060027D9 RID: 10201 RVA: 0x000F195C File Offset: 0x000EFD5C
 private void onServerConnected(CSteamID steamID)
 {
     if (Provider.isServer && ChatManager.welcomeText != string.Empty)
     {
         SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(steamID);
         ChatManager.say(steamPlayer.playerID.steamID, string.Format(ChatManager.welcomeText, steamPlayer.playerID.characterName), ChatManager.welcomeColor, false);
     }
 }
コード例 #12
0
        public void askSalvageStructure(CSteamID steamID, byte x, byte y, ushort index)
        {
            StructureRegion structureRegion;

            if (Provider.isServer && StructureManager.tryGetRegion(x, y, out structureRegion))
            {
                Player player = PlayerTool.getPlayer(steamID);
                if (player == null)
                {
                    return;
                }
                if (player.life.isDead)
                {
                    return;
                }
                if ((int)index >= structureRegion.drops.Count)
                {
                    return;
                }
                if (!OwnershipTool.checkToggle(player.channel.owner.playerID.steamID, structureRegion.structures[(int)index].owner, player.quests.groupID, structureRegion.structures[(int)index].group))
                {
                    return;
                }
                ItemStructureAsset itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, structureRegion.structures[(int)index].structure.id);
                if (itemStructureAsset != null)
                {
                    if (itemStructureAsset.isUnpickupable)
                    {
                        return;
                    }
                    if (structureRegion.structures[(int)index].structure.health == itemStructureAsset.health)
                    {
                        player.inventory.forceAddItem(new Item(structureRegion.structures[(int)index].structure.id, EItemOrigin.NATURE), true);
                    }
                    else if (itemStructureAsset.isSalvageable)
                    {
                        for (int i = 0; i < itemStructureAsset.blueprints.Count; i++)
                        {
                            Blueprint blueprint = itemStructureAsset.blueprints[i];
                            if (blueprint.outputs.Length == 1 && blueprint.outputs[0].id == itemStructureAsset.id)
                            {
                                ushort id = blueprint.supplies[Random.Range(0, blueprint.supplies.Length)].id;
                                player.inventory.forceAddItem(new Item(id, EItemOrigin.NATURE), true);
                                break;
                            }
                        }
                    }
                }
                structureRegion.structures.RemoveAt((int)index);
                StructureManager.manager.channel.send("tellTakeStructure", ESteamCall.ALL, x, y, StructureManager.STRUCTURE_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
                {
                    x,
                    y,
                    index,
                    (structureRegion.drops[(int)index].model.position - player.transform.position).normalized * 100f
                });
            }
        }
コード例 #13
0
        // Token: 0x06001DCB RID: 7627 RVA: 0x000A0CA8 File Offset: 0x0009F0A8
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            if (!Provider.hasCheats)
            {
                CommandWindow.LogError(this.localization.format("CheatsErrorText"));
                return;
            }
            string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/');
            if (componentsFromSerial.Length < 1 || componentsFromSerial.Length > 3)
            {
                CommandWindow.LogError(this.localization.format("InvalidParameterErrorText"));
                return;
            }
            bool        flag = false;
            SteamPlayer steamPlayer;

            if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer))
            {
                steamPlayer = PlayerTool.getSteamPlayer(executorID);
                if (steamPlayer == null)
                {
                    CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[]
                    {
                        componentsFromSerial[0]
                    }));
                    return;
                }
                flag = true;
            }
            ushort num;

            if (!ushort.TryParse(componentsFromSerial[(!flag) ? 1 : 0], out num))
            {
                CommandWindow.LogError(this.localization.format("InvalidAnimalIDErrorText", new object[]
                {
                    componentsFromSerial[(!flag) ? 1 : 0]
                }));
                return;
            }
            if (!AnimalManager.giveAnimal(steamPlayer.player, num))
            {
                CommandWindow.LogError(this.localization.format("NoAnimalIDErrorText", new object[]
                {
                    num
                }));
                return;
            }
            CommandWindow.Log(this.localization.format("AnimalText", new object[]
            {
                steamPlayer.playerID.playerName,
                num
            }));
        }
コード例 #14
0
        // Token: 0x06001E1F RID: 7711 RVA: 0x000A42E0 File Offset: 0x000A26E0
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            if (!Provider.hasCheats)
            {
                CommandWindow.LogError(this.localization.format("CheatsErrorText"));
                return;
            }
            string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/');
            if (componentsFromSerial.Length < 1 || componentsFromSerial.Length > 2)
            {
                CommandWindow.LogError(this.localization.format("InvalidParameterErrorText"));
                return;
            }
            bool        flag = false;
            SteamPlayer steamPlayer;

            if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer))
            {
                steamPlayer = PlayerTool.getSteamPlayer(executorID);
                if (steamPlayer == null)
                {
                    CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[]
                    {
                        componentsFromSerial[0]
                    }));
                    return;
                }
                flag = true;
            }
            int num;

            if (!int.TryParse(componentsFromSerial[(!flag) ? 1 : 0], out num))
            {
                CommandWindow.LogError(this.localization.format("InvalidNumberErrorText", new object[]
                {
                    componentsFromSerial[(!flag) ? 1 : 0]
                }));
                return;
            }
            steamPlayer.player.skills.askRep(num);
            string text = num.ToString();

            if (num > 0)
            {
                text = '+' + text;
            }
            CommandWindow.Log(this.localization.format("ReputationText", new object[]
            {
                steamPlayer.playerID.playerName,
                text
            }));
        }
コード例 #15
0
ファイル: CommandSlay.cs プロジェクト: sky-xk-nge/Unturned
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Dedicator.isDedicated)
            {
                return;
            }
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/');
            if (componentsFromSerial.Length != 1 && componentsFromSerial.Length != 2)
            {
                CommandWindow.LogError(this.localization.format("InvalidParameterErrorText"));
                return;
            }
            SteamPlayer steamPlayer;

            if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer))
            {
                CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[]
                {
                    componentsFromSerial[0]
                }));
                return;
            }
            P2PSessionState_t p2PSessionState_t;
            uint ip;

            if (SteamGameServerNetworking.GetP2PSessionState(steamPlayer.playerID.steamID, ref p2PSessionState_t))
            {
                ip = p2PSessionState_t.m_nRemoteIP;
            }
            else
            {
                ip = 0u;
            }
            if (componentsFromSerial.Length == 1)
            {
                SteamBlacklist.ban(steamPlayer.playerID.steamID, ip, executorID, this.localization.format("SlayTextReason"), SteamBlacklist.PERMANENT);
            }
            else if (componentsFromSerial.Length == 2)
            {
                SteamBlacklist.ban(steamPlayer.playerID.steamID, ip, executorID, componentsFromSerial[1], SteamBlacklist.PERMANENT);
            }
            if (steamPlayer.player != null)
            {
                EPlayerKill eplayerKill;
                steamPlayer.player.life.askDamage(101, Vector3.up * 101f, EDeathCause.KILL, ELimb.SKULL, executorID, out eplayerKill);
            }
            CommandWindow.Log(this.localization.format("SlayText", new object[]
            {
                steamPlayer.playerID.playerName
            }));
        }
コード例 #16
0
        public static Player getPlayer(string name)
        {
            SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(name);

            if (steamPlayer != null && steamPlayer.player != null)
            {
                return(steamPlayer.player);
            }
            return(null);
        }
コード例 #17
0
        public static Player getPlayer(CSteamID steamID)
        {
            SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(steamID);

            if (steamPlayer != null && steamPlayer.player != null)
            {
                return(steamPlayer.player);
            }
            return(null);
        }
コード例 #18
0
        public static Transform getPlayerModel(string name)
        {
            SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(name);

            if (steamPlayer != null && steamPlayer.model != null)
            {
                return(steamPlayer.model);
            }
            return(null);
        }
コード例 #19
0
        public static Transform getPlayerModel(CSteamID steamID)
        {
            SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(steamID);

            if (steamPlayer != null && steamPlayer.model != null)
            {
                return(steamPlayer.model);
            }
            return(null);
        }
コード例 #20
0
 private static void onServerDisconnected(CSteamID steamID)
 {
     if (Provider.isServer && Level.isLoaded)
     {
         Player player = PlayerTool.getPlayer(steamID);
         if (player != null)
         {
             player.save();
         }
     }
 }
コード例 #21
0
 public void askToggleObjectBinaryState(CSteamID steamID, byte x, byte y, ushort index)
 {
     if (Provider.isServer)
     {
         if (!Regions.checkSafe((int)x, (int)y))
         {
             return;
         }
         Player player = PlayerTool.getPlayer(steamID);
         if (player == null)
         {
             return;
         }
         if (player.life.isDead)
         {
             return;
         }
         if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count)
         {
             return;
         }
         if (!player.tryToPerformRateLimitedAction())
         {
             return;
         }
         if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 400f)
         {
             return;
         }
         InteractableObjectBinaryState interactableObjectBinaryState = LevelObjects.objects[(int)x, (int)y][(int)index].interactable as InteractableObjectBinaryState;
         if (interactableObjectBinaryState != null && interactableObjectBinaryState.isUsable && !interactableObjectBinaryState.objectAsset.interactabilityRemote)
         {
             if (!interactableObjectBinaryState.objectAsset.areConditionsMet(player))
             {
                 return;
             }
             if (!interactableObjectBinaryState.objectAsset.areInteractabilityConditionsMet(player))
             {
                 return;
             }
             interactableObjectBinaryState.objectAsset.applyInteractabilityConditions(player, true);
             interactableObjectBinaryState.objectAsset.grantInteractabilityRewards(player, true);
             ObjectManager.manager.channel.send("tellToggleObjectBinaryState", ESteamCall.ALL, x, y, ObjectManager.OBJECT_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
             {
                 x,
                 y,
                 index,
                 !interactableObjectBinaryState.isUsed
             });
             LevelObjects.objects[(int)x, (int)y][(int)index].state[0] = ((!interactableObjectBinaryState.isUsed) ? 0 : 1);
         }
     }
 }
コード例 #22
0
        public static bool tryGetSteamPlayer(string input, out SteamPlayer player)
        {
            player = null;
            ulong steamID;

            if (ulong.TryParse(input, out steamID))
            {
                player = PlayerTool.getSteamPlayer(steamID);
                return(player != null);
            }
            player = PlayerTool.getSteamPlayer(input);
            return(player != null);
        }
コード例 #23
0
 public void askUseObjectDropper(CSteamID steamID, byte x, byte y, ushort index)
 {
     if (Provider.isServer)
     {
         if (!Regions.checkSafe((int)x, (int)y))
         {
             return;
         }
         Player player = PlayerTool.getPlayer(steamID);
         if (player == null)
         {
             return;
         }
         if (player.life.isDead)
         {
             return;
         }
         if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count)
         {
             return;
         }
         if (!player.tryToPerformRateLimitedAction())
         {
             return;
         }
         if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 400f)
         {
             return;
         }
         InteractableObjectDropper interactableObjectDropper = LevelObjects.objects[(int)x, (int)y][(int)index].interactable as InteractableObjectDropper;
         if (interactableObjectDropper != null && interactableObjectDropper.isUsable)
         {
             if (!interactableObjectDropper.objectAsset.areConditionsMet(player))
             {
                 return;
             }
             if (!interactableObjectDropper.objectAsset.areInteractabilityConditionsMet(player))
             {
                 return;
             }
             interactableObjectDropper.objectAsset.applyInteractabilityConditions(player, true);
             interactableObjectDropper.objectAsset.grantInteractabilityRewards(player, true);
             interactableObjectDropper.drop();
         }
     }
 }
コード例 #24
0
        public static bool tryGetSteamID(string input, out CSteamID steamID)
        {
            steamID = CSteamID.Nil;
            ulong num;

            if (ulong.TryParse(input, out num))
            {
                steamID..ctor(num);
                return(true);
            }
            SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(input);

            if (steamPlayer != null)
            {
                steamID = steamPlayer.playerID.steamID;
                return(true);
            }
            return(false);
        }
コード例 #25
0
ファイル: ObjectManager.cs プロジェクト: sky-xk-nge/Unturned
 public void askUseObjectQuest(CSteamID steamID, byte x, byte y, ushort index)
 {
     if (Provider.isServer)
     {
         if (!Regions.checkSafe((int)x, (int)y))
         {
             return;
         }
         Player player = PlayerTool.getPlayer(steamID);
         if (player == null)
         {
             return;
         }
         if (player.life.isDead)
         {
             return;
         }
         if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count)
         {
             return;
         }
         if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 1600f)
         {
             return;
         }
         InteractableObject interactable = LevelObjects.objects[(int)x, (int)y][(int)index].interactable;
         if (interactable != null && (interactable is InteractableObjectQuest || interactable is InteractableObjectNote))
         {
             if (!interactable.objectAsset.areConditionsMet(player))
             {
                 return;
             }
             if (!interactable.objectAsset.areInteractabilityConditionsMet(player))
             {
                 return;
             }
             interactable.objectAsset.applyInteractabilityConditions(player, false);
             interactable.objectAsset.grantInteractabilityRewards(player, false);
         }
     }
 }
コード例 #26
0
        // Token: 0x060026A5 RID: 9893 RVA: 0x000E4DD0 File Offset: 0x000E31D0
        private IEnumerator teleport()
        {
            yield return(new WaitForSeconds(3f));

            if (this.target != null)
            {
                ZombieBossQuest.nearbyPlayers.Clear();
                PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, ZombieBossQuest.nearbyPlayers);
                for (int i = 0; i < ZombieBossQuest.nearbyPlayers.Count; i++)
                {
                    Player player = ZombieBossQuest.nearbyPlayers[i];
                    if (!player.life.isDead)
                    {
                        player.quests.sendRemoveQuest(213);
                        player.quests.setFlag(213, 1);
                        player.sendTeleport(this.target.position, MeasurementTool.angleToByte(this.target.rotation.eulerAngles.y));
                    }
                }
            }
            yield break;
        }
コード例 #27
0
 public void askUseObjectNPC(CSteamID steamID, byte x, byte y, ushort index)
 {
     if (Provider.isServer)
     {
         if (!Regions.checkSafe((int)x, (int)y))
         {
             return;
         }
         Player player = PlayerTool.getPlayer(steamID);
         if (player == null)
         {
             return;
         }
         if (player.life.isDead)
         {
             return;
         }
         if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count)
         {
             return;
         }
         if (!player.tryToPerformRateLimitedAction())
         {
             return;
         }
         if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 400f)
         {
             return;
         }
         InteractableObjectNPC interactableObjectNPC = LevelObjects.objects[(int)x, (int)y][(int)index].interactable as InteractableObjectNPC;
         if (interactableObjectNPC != null)
         {
             if (!interactableObjectNPC.objectAsset.areConditionsMet(player))
             {
                 return;
             }
             player.quests.checkNPC = interactableObjectNPC;
         }
     }
 }
コード例 #28
0
        // Token: 0x06001DF4 RID: 7668 RVA: 0x000A28B4 File Offset: 0x000A0CB4
        protected override void execute(CSteamID executorID, string parameter)
        {
            if (!Dedicator.isDedicated)
            {
                return;
            }
            if (!Provider.isServer)
            {
                CommandWindow.LogError(this.localization.format("NotRunningErrorText"));
                return;
            }
            string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/');
            if (componentsFromSerial.Length != 1 && componentsFromSerial.Length != 2)
            {
                CommandWindow.LogError(this.localization.format("InvalidParameterErrorText"));
                return;
            }
            SteamPlayer steamPlayer;

            if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer))
            {
                CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[]
                {
                    componentsFromSerial[0]
                }));
                return;
            }
            if (componentsFromSerial.Length == 1)
            {
                Provider.kick(steamPlayer.playerID.steamID, this.localization.format("KickTextReason"));
            }
            else if (componentsFromSerial.Length == 2)
            {
                Provider.kick(steamPlayer.playerID.steamID, componentsFromSerial[1]);
            }
            CommandWindow.Log(this.localization.format("KickText", new object[]
            {
                steamPlayer.playerID.playerName
            }));
        }
コード例 #29
0
        protected override IEnumerator teleport()
        {
            yield return(new WaitForSeconds(1f));

            if (this.target != null)
            {
                GermanyTeleporterA.nearbyPlayers.Clear();
                PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, GermanyTeleporterA.nearbyPlayers);
                for (int i = 0; i < GermanyTeleporterA.nearbyPlayers.Count; i++)
                {
                    Player player = GermanyTeleporterA.nearbyPlayers[i];
                    if (!player.life.isDead)
                    {
                        if (player.quests.getQuestStatus(248) == ENPCQuestStatus.COMPLETED)
                        {
                            player.sendTeleport(this.target.position, MeasurementTool.angleToByte(this.target.rotation.eulerAngles.y));
                        }
                    }
                }
            }
            yield break;
        }
コード例 #30
0
 public void tellVoteStart(CSteamID steamID, CSteamID origin, CSteamID target, byte votesNeeded)
 {
     if (base.channel.checkServer(steamID))
     {
         SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(origin);
         if (steamPlayer == null)
         {
             return;
         }
         SteamPlayer steamPlayer2 = PlayerTool.getSteamPlayer(target);
         if (steamPlayer2 == null)
         {
             return;
         }
         ChatManager.needsVote = true;
         ChatManager.hasVote   = false;
         if (ChatManager.onVotingStart != null)
         {
             ChatManager.onVotingStart(steamPlayer, steamPlayer2, votesNeeded);
         }
     }
 }