1. pdr

    pdr

    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.

    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) });
                        }
                    }
                }
            }
    
    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.
     
  2. RemoverTool has this already included in the "GetRefund" function ;)
     
  3. pdr

    pdr

    In the remover tool You made, server owner have to write amount of refunded resourses in the config. I don't want this, I simply left a float modifier of this amount... I just ask for a function, that will return amount of resourses needed to create this item.
     
  4. Thats why i wrote you the name of 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.
     
  5. pdr

    pdr

    Yeah, Fujikura, thank You a lot. I was sleepy and stupid, so i just missed this stuff, sorry xD.