/setmap command
#1

Im trying to fix a /setmap command.

E.tc.
/setmap (mapname)

This is what i have now, which sets a random map
Код:
CMD:nextmap1(playerid,params[])
{
    LoadNextMap(params,CurrentModeType);
    return 1;
}
All my maps are in "scriptfiles/maps" and are saved as .ini!


Код:
//announcment
    SendClientMessageToAll(-1,"Loading new map....");
//prepare players for mapchange
	PlayersInRace = 0;
	for(new playerid = 0; playerid < MAX_PLAYERS; ++playerid)
	{
	    IsInRace[playerid] = false;
	    PlayerLaps[playerid] = 0;
	    if(Vehicles[playerid][viCreated] == true)
	    {
	        DestroyVehicle(Vehicles[playerid][viVehicleID]);
	    	Vehicles[playerid][viCreated] = false;
	    	Vehicles[playerid][viVehicleID] = Vehicles[playerid][viVehicleModel] = 0;
	    	Vehicles[playerid][viX] = Vehicles[playerid][viY] = Vehicles[playerid][viZ] = Vehicles[playerid][viA] = 0.0;
		}
	    if(IsPlayerConnected(playerid) == 1)
	    {
	        if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
	        {
	        	Displace[playerid] = true;
	        	TogglePlayerSpectating(playerid, 0);
	        	PlayerspectatingVehicle[playerid] = 0;
	        	PlayerspectatingPlayer[playerid] = -1;
			}
	        SetPlayerPos(playerid,-15000.0,-15000.0,15000.0);
	        TogglePlayerControllable(playerid,0);
	    }
	}
//destroy current map
	DestroyAllDynamicObjects();
	DestroyAllDynamic3DTextLabels();
	DestroyAllDynamicAreas();
//choose new map
	new MapNum = -1;
	switch(TrackType)
	{
	    case 1:
	    {
			if(strlen(string) == 0)
			{
				MapNum = random(sizeof(MapNames));
				if(MapNum == CurrentMap)//if next map is current map
				{
				    --MapNum;
					if(MapNum == (-1))
					{
					    MapNum += 2;
					}
				}
				CurrentMap = MapNum;
			}
			else
			{
			    new Found = -1;
			    for(new i = 0; i < sizeof(MapNames); ++i)
			    {
			        if(!strcmp(string,MapNames[i],true))
			        {
			            Found = i;
			            break;
			        }
			    }
			    if(Found == (-1))
			    {
					MapNum = random(sizeof(MapNames));
					if(MapNum == CurrentMap)//if next map is current map
					{
					    --MapNum;
						if(MapNum == (-1))
						{
						    MapNum += 2;
						}
					}
					CurrentMap = MapNum;
			    }
			    else
			    {
			        MapNum = Found;
			        CurrentMap = MapNum;
			    }
			}
		}
		default:
		{
			if(strlen(string) == 0)
			{
				MapNum = random(sizeof(dMapNames));
				if(MapNum == CurrentMap)//if next map is current map
				{
				    --MapNum;
					if(MapNum == (-1))
					{
					    MapNum += 2;
					}
				}
				CurrentMap = MapNum;
			}
			else
			{
			    new Found = -1;
			    for(new i = 0; i < sizeof(dMapNames); ++i)
			    {
			        if(!strcmp(string,dMapNames[i],true))
			        {
			            Found = i;
			            break;
			        }
			    }
			    if(Found == (-1))
			    {
					MapNum = random(sizeof(dMapNames));
					if(MapNum == CurrentMap)//if next map is current map
					{
					    --MapNum;
						if(MapNum == (-1))
						{
						    MapNum += 2;
						}
					}
					CurrentMap = MapNum;
			    }
			    else
			    {
			        MapNum = Found;
			        CurrentMap = MapNum;
			    }
			}
		}
	}
//load new map
	new File:fh;
	new FileName[256];
	new ReadString[256];
	new Temp[256];
	switch(TrackType)
	{
	    case 1:
	    {
			format(FileName,256,"RACES/%s.ini",MapNames[MapNum]);
			//format(Temp,256,"mapname San Andreas");
			format(Temp,256,"mapname %s",MapNames[MapNum]);
		}
		default:
		{
		    format(FileName,256,"FULLMAPS/%s.ini",dMapNames[MapNum]);
		    //format(Temp,256,"mapname San Andreas");
		    format(Temp,256,"mapname %s",dMapNames[MapNum]);
		}
	}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)