PDA

Просмотр полной версии : [Вопрос] /delcarall



Dori
07.01.2015, 14:50
Нужна команда по удалению транспорта.

Пример: Администратор удалил весь не занятый т\с игроками.

Или хотя бы рабочую защиту от флуда транспортом.

L0ndl3m
07.01.2015, 15:34
CMD:delcarall(playerid, params[]) // if(strcmp(cmdtext, "/delcarall", true, 10) == 0)
{
new
str[71],
occupied[(MAX_VEHICLES + 1) char],
vehicleid,
i = GetMaxPlayers();

do
{
--i;
if(!IsPlayerConnected(i) || (vehicleid = GetPlayerVehicleID(i)) == 0)
continue;

occupied{vehicleid} = 1;

if((vehicleid = GetVehicleTrailer(vehicleid)) == 0)
continue;

occupied{vehicleid} = 1;
}
while(i);

i = MAX_VEHICLES - 1;

do
if(occupied{i} == 0)
DestroyVehicle(i);
while(--i);


GetPlayerName(playerid, str, sizeof(str));
format(str, 71, "AdmCMD: %s (%i) удалил весь незанятый игроками транспорт.", str, playerid);
SendClientMessageToAll(0xFF0000FF, str);
return 1;
}

Вы точно уверены, что хотите удалять, может возвращать на место спавна?

Dori
07.01.2015, 15:42
CMD:delcarall(playerid, params[]) // if(strcmp(cmdtext, "/delcarall", true, 10) == 0)
{
new
str[71],
occupied[(MAX_VEHICLES + 1) char],
vehicleid,
i = GetMaxPlayers();

do
{
--i;
if(!IsPlayerConnected(i) || (vehicleid = GetPlayerVehicleID(i)) == 0)
continue;

occupied{vehicleid} = 1;

if((vehicleid = GetVehicleTrailer(vehicleid)) == 0)
continue;

occupied{vehicleid} = 1;
}
while(i);

i = MAX_VEHICLES - 1;

do
if(occupied{i} == 0)
DestroyVehicle(i);
while(--i);


GetPlayerName(playerid, str, sizeof(str));
format(str, 71, "AdmCMD: %s (%i) удалил весь незанятый игроками транспорт.", str, playerid);
SendClientMessageToAll(0xFF0000FF, str);
return 1;
}

Вы точно уверены, что хотите удалять, может возвращать на место спавна?

Спавн я пробовал т.е. при спавне транспорта, они всё равно остаются, там где игрок с читами, нафлудил транспортом.

L0ndl3m
07.01.2015, 16:17
Попробуйте это (http://pro-pawn.ru/showthread.php?9177).