Im trying to fix a /setmap command.
E.tc.
Код:
//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]);
}
}