Beispiel #1
0
    private Race parseRace(string mapName, XmlGroup map)
    {
        var output = new Race();

        output.Name        = API.getResourceName(mapName);
        output.Description = API.getResourceDescription(mapName);
        output.Filename    = mapName;

        var meta = map.getElementByType("laps");

        if (meta != null)
        {
            output.LapsAvailable = meta.getElementData <bool>("value");
        }

        var checkpoints = new List <Vector3>();

        foreach (var chk in map.getElementsByType("checkpoint"))
        {
            checkpoints.Add(
                new Vector3(chk.getElementData <float>("posX"),
                            chk.getElementData <float>("posY"),
                            chk.getElementData <float>("posZ")));
        }

        output.Checkpoints = checkpoints.ToArray();

        var sp = new List <SpawnPoint>();

        foreach (var chk in map.getElementsByType("spawnpoint"))
        {
            sp.Add(new SpawnPoint()
            {
                Position = new Vector3(chk.getElementData <float>("posX"),
                                       chk.getElementData <float>("posY"),
                                       chk.getElementData <float>("posZ")),
                Heading = chk.getElementData <float>("heading"),
            });
        }

        output.SpawnPoints = sp.ToArray();

        var vehs = new List <VehicleHash>();

        foreach (var chk in map.getElementsByType("availablecar"))
        {
            vehs.Add((VehicleHash)chk.getElementData <int>("model"));
        }

        output.AvailableVehicles = vehs.ToArray();

        return(output);
    }
Beispiel #2
0
    private void onMapChange(string mapName, XmlGroup map)
    {
        spawns.Clear();
        weapons.Clear();
        Killstreaks.Clear();
        var spawnpoints = map.getElementsByType("spawnpoint");

        foreach (var point in spawnpoints)
        {
            spawns.Add(new Vector3(point.getElementData <float>("posX"),
                                   point.getElementData <float>("posY"),
                                   point.getElementData <float>("posZ")));
        }

        var availableGuns = map.getElementsByType("weapon");

        foreach (var point in availableGuns)
        {
            weapons.Add(API.weaponNameToModel(point.getElementData <string>("model")));
        }

        API.resetIplList();

        var neededInteriors = map.getElementsByType("ipl");

        foreach (var point in neededInteriors)
        {
            API.requestIpl(point.getElementData <string>("name"));
        }

        var players = API.getAllPlayers();

        foreach (var player in players)
        {
            var pBlip = API.exported.playerblips.getPlayerBlip(player);

            API.setBlipSprite(pBlip, 1);
            API.setBlipColor(pBlip, 0);
            Respawn(player);
        }
    }
Beispiel #3
0
    public void OnMapChange(string mapName, XmlGroup map)
    {
        Console.WriteLine("OnMapChange");
        Spawns.Clear();
        Weapons.Clear();
        Killstreaks.Clear();
        var spawnpoints = map.getElementsByType("spawnpoint");

        foreach (var point in spawnpoints)
        {
            Spawns.Add(new Vector3(point.getElementData <float>("posX"), point.getElementData <float>("posY"), point.getElementData <float>("posZ")));
        }

        var availableGuns = map.getElementsByType("weapon");

        foreach (var point in availableGuns)
        {
            Weapons.Add(NAPI.Util.WeaponNameToModel(point.getElementData <string>("model")));
        }

        NAPI.World.ResetIplList();

        var neededInteriors = map.getElementsByType("ipl");

        foreach (var point in neededInteriors)
        {
            NAPI.World.RequestIpl(point.getElementData <string>("name"));
        }

        foreach (var player in NAPI.Pools.GetAllPlayers())
        {
            var pBlip = NAPI.Exported.playerblips.getPlayerBlip(player);
            NAPI.Blip.SetBlipSprite(pBlip, 1);
            NAPI.Blip.SetBlipColor(pBlip, 0);

            Spawn(player);
        }
    }
Beispiel #4
0
        public void onResourceStart()
        {
            databaseConfiguration = API.loadConfig("database.xml");

            string host     = null;
            string port     = null;
            string user     = null;
            string password = null;
            string database = null;

            foreach (xmlElement element in databaseConfiguration.getElementsByType("setting"))
            {
                string settingName    = element.getElementData <string>("name");
                string settingContent = element.getElementData <string>("content");

                if (settingName.ToLower().Equals("host"))
                {
                    host = settingContent;
                }
                else if (settingName.ToLower().Equals("port"))
                {
                    port = settingContent;
                }
                else if (settingName.ToLower().Equals("user"))
                {
                    user = settingContent;
                }
                else if (settingName.ToLower().Equals("password"))
                {
                    password = settingContent;
                }
                else if (settingName.ToLower().Equals("database"))
                {
                    database = settingContent;
                }
            }

            if (port == null)
            {
                connection = new MysqlConnection(host, user, password, database);
            }
            else
            {
                connection = new MysqlConnection(host, port, user, password, database);
            }
        }
Beispiel #5
0
    public void MapChange(string name, XmlGroup map)
    {
        EndRound();

        var round = new Round();

        #region Objectives
        foreach (var element in map.getElementsByType("objective"))
        {
            var obj = new Objective();

            if (element.hasElementData("id"))
            {
                obj.Id = element.getElementData <int>("id");
            }

            obj.Position = new Vector3(element.getElementData <float>("posX"),
                                       element.getElementData <float>("posY"),
                                       element.getElementData <float>("posZ"));

            if (element.hasElementData("range"))
            {
                obj.Range = element.getElementData <float>("range");
            }

            obj.name = element.getElementData <string>("name");

            if (element.hasElementData("timer"))
            {
                obj.Timer = element.getElementData <int>("timer");
            }

            if (element.hasElementData("required"))
            {
                var listStr = element.getElementData <string>("required");
                obj.RequiredObjectives =
                    listStr.Split(',').Select(id => int.Parse(id, CultureInfo.InvariantCulture)).ToList();
            }

            round.Objectives.Add(obj);
        }
        #endregion

        #region Spawnpoints

        foreach (var element in map.getElementsByType("spawnpoint"))
        {
            var sp = new Spawnpoint();

            sp.Team    = element.getElementData <int>("team");
            sp.Heading = element.getElementData <float>("heading");

            sp.Position = new Vector3(element.getElementData <float>("posX"),
                                      element.getElementData <float>("posY"),
                                      element.getElementData <float>("posZ"));

            sp.Skins =
                element.getElementData <string>("skins")
                .Split(',')
                .Select(s => API.pedNameToModel(s))
                .ToArray();

            var guns =
                element.getElementData <string>("weapons")
                .Split(',')
                .Select(w => API.weaponNameToModel(w));
            var ammos =
                element.getElementData <string>("ammo")
                .Split(',')
                .Select(w => int.Parse(w, CultureInfo.InvariantCulture));

            sp.Weapons = guns.ToArray();
            sp.Ammo    = ammos.ToArray();

            if (element.hasElementData("objectives"))
            {
                var objectives =
                    element.getElementData <string>("objectives")
                    .Split(',')
                    .Select(w => int.Parse(w, CultureInfo.InvariantCulture));

                sp.RequiredObjectives = objectives.ToArray();
            }

            round.Spawnpoints.Add(sp);
        }
        #endregion

        StartRound(round);
    }