PDA

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



L0ndl3m
08.06.2014, 18:47
Устанавливает на место спавна незанятый людьми транспорт.



CMD:spawncars(playerid, params[])
{
if(IsPlayerAdmin(playerid) == 0)
return SendClientMessage(playerid, -1, "Вам недоступна данная команда.");

static const
fmt_str[] = "%s (%i) зареспавнил незанятый людьми транспорт.";

new
str[sizeof(fmt_str) - 2 + MAX_PLAYER_NAME - 2 + 3],
occupied[(MAX_VEHICLES + 1) char] = {((0x00 << 24) | (0x00 << 16) | (0x00 << 8) | (0x00)), ...},
vehicleid,
i = GetMaxPlayers();

GetPlayerName(playerid, str, sizeof(str));

format(str, sizeof(str), fmt_str, str, playerid);
SendClientMessageToAll(-1, str);

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

occupied{vehicleid} = 1;
if((vehicleid = GetVehicleTrailer(vehicleid)) == 0)
continue;

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

i = MAX_VEHICLES - 1;
do
{
if (occupied{i} == 0)
SetVehicleToRespawn(i);
}
while(--i != 0);
return 1;
}

Exclusive
08.06.2014, 18:50
Ох, как же это офигенно.:blush:

Salvacore
08.06.2014, 19:25
Вот как кодить надо, шедевр!

DeimoS
08.06.2014, 19:27
В чём прикол писать так переменные?

new
str[sizeof(fmt_str) - 2 + MAX_PLAYER_NAME - 2 + 3],
occupied[(MAX_VEHICLES + 1) char] = {((0x00 << 24) | (0x00 << 16) | (0x00 << 8) | (0x00)), ...},
vehicleid,
i = GetMaxPlayers()
;
Зачем точку с запятой переносить? И почему тогда запятую не переносите? Что за дискриминация!?

И если использовать for, пару строк команда скинет, хоть смысл и останется прежним

EnotShow
30.11.2016, 12:38
Пишет что данная команда не доступна ._.

VVWVV
30.11.2016, 15:31
Пишет что данная команда не доступна ._.

Вы должны быть авторизованы как rcon-администратор.

Для авторизации используйте /rcon login <пароль>
Пароль, насколько я помню, задан в server.cfg. Другие rcon-команды вы можете узнать тут (https://wiki.sa-mp.com/wiki/Advanced_Server_Controls).