Hello. For now I'm trying to rebuild the R-Remver plugin for my own server, to use it with hammer and other cool stuff. Actually i made it already, but have a little issue. I want to modify refund function, to make it give player not the deployed entity, but resourses, used to create this entity. Can someone help me with method, that i can use to get amount of these resouses.
You can see my actual refund function below.
As You can see - I made a temp solvation for a few items, but I'm not happy to manually write all items into plugin xD. Hope someone help me.Code:void GiveItemToPlayer(BasePlayer player, int item, int amount) { player.inventory.GiveItem(ItemManager.CreateByItemID(item, Convert.ToInt32(amount * _config.RateOfReturn)), null); player.Command("note.inv", new object[] { item, Convert.ToInt32(amount * _config.RateOfReturn) }); } void Refund(BasePlayer player, BaseEntity entity) { if (deployedToItem.ContainsKey(entity.PrefabName)) { if (entity.PrefabName.Contains("furnace.large")) { GiveItemToPlayer(player, 3655341, 600); //дерево GiveItemToPlayer(player, -892070738, 500); // камни GiveItemToPlayer(player, 28178745, 75); // топливо return; } if (entity.PrefabName.Contains("furnace")) { GiveItemToPlayer(player, 3655341, 200); //дерево GiveItemToPlayer(player, -892070738, 200); // камни GiveItemToPlayer(player, 28178745, 50); // топливо return; } if (entity.PrefabName.Contains("campfire")) { GiveItemToPlayer(player, 3655341, 100); //дерево return; } if (entity.PrefabName.Contains("ceilinglight")) { GiveItemToPlayer(player, 688032252, 50); //металл GiveItemToPlayer(player, 28178745, 30); // топливо return; } if (entity.PrefabName.Contains("lantern.deployed")) { GiveItemToPlayer(player, 688032252, 40); //металл GiveItemToPlayer(player, 28178745, 10); // топливо return; } if (entity.PrefabName.Contains("refinery_small")) { GiveItemToPlayer(player, 3655341, 200); //дерево GiveItemToPlayer(player, 28178745, 250); // топливо GiveItemToPlayer(player, 688032252, 500); //металл return; } if (entity.PrefabName.Contains("tunalight")) { GiveItemToPlayer(player, 3655341, 20); //дерево GiveItemToPlayer(player, 28178745, 10); // топливо GiveItemToPlayer(player, 1050986417, 1); //банка return; } GiveItemToPlayer(player, deployedToItem[entity.PrefabName], 1); } if (entity is BuildingBlock) { BuildingBlock buildingblock = entity as BuildingBlock; if (buildingblock.blockDefinition == null) return; int buildingblockGrade = (int)buildingblock.grade; if (buildingblock.blockDefinition.grades[buildingblockGrade] != null) { List<ItemAmount> currentCost = buildingblock.blockDefinition.grades[buildingblockGrade].costToBuild as List<ItemAmount>; foreach (ItemAmount ia in currentCost) { var item = ItemManager.CreateByItemID(ia.itemid, Convert.ToInt32(ia.amount * _config.RateOfReturn)); player.inventory.GiveItem(item, player.inventory.containerMain); player.Command("note.inv", new object[] { ia.itemid, Convert.ToInt32(ia.amount * _config.RateOfReturn) }); } } } }
Solved Getting amount of resouses used to create entity (Remover tool)
Discussion in 'Rust Development' started by pdr, Jul 16, 2017.
-
RemoverTool has this already included in the "GetRefund" function
-
-
It does already include exactly such a refund function based on the blueprint receipt, making it posssible to set a simple number as percentage of the resources to give back. -