Пример #1
0
        public void UnloadCampaignCommand()
        {
            if (!instance.CheckForCheating())
            {
                uConsole.Log("Campaign Mod is not enabled!");
                return;
            }
            int Args = uConsole.GetNumParameters();

            if (Args != 1)
            {
                uConsole.Log("Usage: unload_campaign <name>");
            }
            else
            {
                string Tag = uConsole.GetString() + "CampaignMod";
                if (!PersistentWorkshopCampaigns.Exists(Tag))
                {
                    uConsole.Log("That campaign is not loaded!");
                    return;
                }
                PersistentWorkshopCampaign campaign = PersistentWorkshopCampaigns.Get(Tag);

                foreach (ResponseData.Item item in campaign.definition.items)
                {
                    PersistentWorkshopItems.Delete(item.id);
                }
                PersistentWorkshopCampaigns.Delete(Tag);

                uConsole.Log("Unloaded " + Tag + "!");
            }
        }
Пример #2
0
        public ResponseData.Campaign GenerateCampaign(string cPath, CampaignLayoutData cData)
        {
            string cName = cData.m_Title;

            if (cData.m_ItemIds.Count == 0)
            {
                uConsole.Log(cName + " doesn't have any levels!");
                return(null);
            }

            List <LevelData> levelDatas = new List <LevelData>();

            foreach (string id in cData.m_ItemIds)
            {
                if (!File.Exists(cPath + "/" + id.Replace("CampaignMod", "") + ".level"))
                {
                    uConsole.Log(cName + " tried to load " + id.Replace("CampaignMod", "") + " but it doesn't exist!");
                    return(null);
                }
                byte[] bytes  = File.ReadAllBytes(cPath + "/" + id.Replace("CampaignMod", "") + ".level");
                int    offset = 0;
                levelDatas.Add(LevelData.Deserialize(bytes, ref offset));
            }

            List <ResponseData.Item> items = new List <ResponseData.Item>();

            foreach (LevelData levelData in levelDatas)
            {
                ResponseData.Item item = levelData.GenerateItem();
                PersistentWorkshopItems.Create(item, levelData.PreviewData, Utils.ZipPayload(levelData.LayoutBytes));

                items.Add(item);
            }

            ResponseData.Campaign campaign = new ResponseData.Campaign();

            campaign.ownedBy = items[0].ownedBy;
            campaign.items   = items.ToArray();

            campaign.id          = cName + "CampaignMod";
            campaign.title       = cName;
            campaign.description = cData.m_Description;
            campaign.winMessage  = cData.m_WinMessage;

            PersistentWorkshopCampaigns.Delete(campaign.id);
            PersistentWorkshopCampaigns.Create(campaign);
            return(campaign);
        }