Exemple #1
0
        object OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item)
        {
            BasePlayer player = entity?.ToPlayer();

            if (player == null)
            {
                return(null);
            }

            var tree = dispenser.GetComponentInParent <TreeEntity>();

            if (tree != null)
            {
                if (playerGathered.ContainsKey(player.userID))
                {
                    foreach (Stumps stump in playerGathered[player.userID])
                    {
                        if (stump.netid == entity.net.ID)
                        {
                            //Puts("Blocking gather for this player.");
                            return(true);
                        }
                    }
                }
            }
            return(null);
        }
        void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item)
        {
            if (!Economics)
            {
                return;
            }

            var player = entity.ToPlayer();

            if (player)
            {
                var    shortName = item.info.shortname;
                string resource  = null;
                var    amount    = 0;

                if (shortName.Contains(".ore"))
                {
                    amount   = config.Settings.Rewards[PluginRewards.Ore];
                    resource = "ore";
                }

                if (shortName.Equals("stones"))
                {
                    amount   = config.Settings.Rewards[PluginRewards.Stones];
                    resource = "stones";
                }

                if (dispenser.GetComponentInParent <TreeEntity>())
                {
                    amount   = config.Settings.Rewards[PluginRewards.Wood];
                    resource = "wood";
                }

                if (resource == null || amount <= 0)
                {
                    return;
                }

                Economics.CallHook("Deposit", player.userID, amount);

                if (config.Settings.ShowMessages)
                {
                    PrintToChat(player, string.Format(config.Messages[PluginMessage.ReceivedForGather], amount, resource));
                }
            }
        }
        private void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item)
        {
            if (!Economics && !ServerRewards)
            {
                return;
            }
            var player = entity.ToPlayer();

            if (player)
            {
                amount = 0;
                var shortName = item.info.shortname;
                resource = null;

                if (shortName.Contains(".ore"))
                {
                    amount   = config.Settings.Rewards[PluginRewards.Ore];
                    resource = "ore";
                }

                if (shortName.Contains("stones"))
                {
                    amount   = config.Settings.Rewards[PluginRewards.Stone];
                    resource = "stone";
                }

                if (dispenser.GetComponentInParent <TreeEntity>() && shortName.Contains("wood"))
                {
                    amount   = config.Settings.Rewards[PluginRewards.Wood];
                    resource = "wood";
                }

                if (resource != null && amount != 0)
                {
                    GiveCredit(player, "gather", amount, resource);
                }
            }
        }
Exemple #4
0
        object OnDispenserBonus(ResourceDispenser dispenser, BasePlayer player, Item item)
        {
            // Possibly ineffective in avoiding users spamming E to get points in ZLevels, etc.
            bool genstump = true;
            var  tree     = dispenser.GetComponentInParent <TreeEntity>();

            if (tree != null)
            {
                if (!playerGathered.ContainsKey(player.userID))
                {
                    playerGathered.Add(player.userID, new HashSet <Stumps>());
                }

                if ((configData.Options.stumpPercentChance >= 0.5f) && (configData.Options.stumpPercentChance < 100))
                {
                    genstump = false;
                    System.Random random = new System.Random();
                    if (random.Next(100) < Math.Abs(configData.Options.stumpPercentChance))
                    {
                        genstump = true;
                    }
                }
                if (genstump)
                {
                    var stump = GameManager.server.CreateEntity("assets/bundled/prefabs/autospawn/collectable/wood/wood-collectable.prefab", tree.transform.position, tree.transform.rotation);
                    NextTick(() =>
                    {
                        stump.Spawn();
                        playerGathered[player.userID].Add(new Stumps()
                        {
                            netid = stump.net.ID, chopped = DateTime.Now
                        });
                    });
                }
            }
            return(null);
        }