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); } } }
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); }