26.02.2013, 19:38
Im trying to fix a /setmap command.
E.tc.
/setmap (mapname)
This is what i have now, which sets a random map
All my maps are in "scriptfiles/maps" and are saved as .ini!
E.tc.
/setmap (mapname)
This is what i have now, which sets a random map
Код:
CMD:nextmap1(playerid,params[]) { LoadNextMap(params,CurrentModeType); return 1; }
Код:
//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]); } }