Exemple #1
0
 static void UpdateConfig(Player p, CTFMapConfig cfg)
 {
     cfg.Save(p.level.name);
     if (p.level == CTFGame.Instance.Map)
     {
         CTFGame.Instance.UpdateMapConfig();
     }
 }
Exemple #2
0
        static CTFMapConfig RetrieveConfig(Player p)
        {
            CTFMapConfig cfg = new CTFMapConfig();

            cfg.SetDefaults(p.level);
            cfg.Load(p.level.name);
            return(cfg);
        }
Exemple #3
0
        bool RedFlagCallback(Player p, Vec3S32[] marks, object state, BlockID block)
        {
            CTFMapConfig cfg = (CTFMapConfig)state;
            Vec3U16      P   = (Vec3U16)marks[0];

            cfg.RedFlagPos = P;
            p.Message("Set flag position of red team to ({0})", P);

            block = p.level.GetBlock(P.X, P.Y, P.Z);
            if (block == Block.Air)
            {
                block = Block.Red;
            }
            cfg.RedFlagBlock = block;
            p.Message("Set flag block of red team to {0}", Block.GetName(p, block));

            SaveMapConfig(p, cfg);
            return(false);
        }
Exemple #4
0
        static bool BlueFlagCallback(Player p, Vec3S32[] marks, object state, BlockID block)
        {
            CTFMapConfig cfg = RetrieveConfig(p);
            Vec3U16      P   = (Vec3U16)marks[0];

            cfg.BlueFlagPos = P;
            p.Message("Set flag position of blue team to ({0})", P);

            block = p.level.GetBlock(P.X, P.Y, P.Z);
            if (block == Block.Air)
            {
                block = Block.Blue;
            }
            cfg.BlueFlagBlock = block;
            p.Message("Set flag block of blue team to {0}", Block.GetName(p, block));

            UpdateConfig(p, cfg);
            return(false);
        }
Exemple #5
0
        protected override void HandleSet(Player p, RoundsGame game, string[] args)
        {
            string       prop = args[1];
            CTFMapConfig cfg  = new CTFMapConfig();

            LoadMapConfig(p, cfg);

            if (prop.CaselessEq("bluespawn"))
            {
                cfg.BlueSpawn = (Vec3U16)p.Pos.FeetBlockCoords;
                p.Message("Set spawn of blue team to &b" + cfg.BlueSpawn);
                SaveMapConfig(p, cfg);
            }
            else if (prop.CaselessEq("redspawn"))
            {
                cfg.RedSpawn = (Vec3U16)p.Pos.FeetBlockCoords;
                p.Message("Set spawn of red team to &b" + cfg.RedSpawn);
                SaveMapConfig(p, cfg);
            }
            else if (prop.CaselessEq("blueflag"))
            {
                p.Message("Place or delete a block to set blue team's flag.");
                p.MakeSelection(1, cfg, BlueFlagCallback);
            }
            else if (prop.CaselessEq("redflag"))
            {
                p.Message("Place or delete a block to set red team's flag.");
                p.MakeSelection(1, cfg, RedFlagCallback);
            }
            else if (prop.CaselessEq("divider"))
            {
                cfg.ZDivider = p.Pos.BlockZ;
                p.Message("Set Z line divider to {0}.", cfg.ZDivider);
                SaveMapConfig(p, cfg);
            }
            else
            {
                Help(p, "set");
            }
        }