Dmitriy Makarov
Умник
Привет. Делал команду /su для выдачи розыска. Столкнулся с такой проблемой, что информаци в чат выводит неправильную, да и сам розыск выдается неправильно.
Можете подсказать, в чём проблема и где косяк?
Вот фотокарточка:
На скриншоте, в открывшемся чате я показываю что я вводил. (/su 0 3 1.1), а сами аргументы такие: /su [ID] [Уровень розыска] [Причина].
Мне должно было дать 3 уровня розыска, но вместо этого дало 1-й уровень и в чате написало, что я объявлен в розыск 51-го уровня, текущий уровень такой же. +В чате какой-то баг с текстом, между должностью человека и подразделением большой отступ, в коде такого нет.
Баг с текстом, а именно отступ между должностью и подразделением и в команде /m (Мегафон)
Фотокарточка:
Вот сами команды:
Список названий должностей и подразделений:
Можете подсказать, в чём проблема и где косяк?
Вот фотокарточка:
На скриншоте, в открывшемся чате я показываю что я вводил. (/su 0 3 1.1), а сами аргументы такие: /su [ID] [Уровень розыска] [Причина].
Мне должно было дать 3 уровня розыска, но вместо этого дало 1-й уровень и в чате написало, что я объявлен в розыск 51-го уровня, текущий уровень такой же. +В чате какой-то баг с текстом, между должностью человека и подразделением большой отступ, в коде такого нет.
Баг с текстом, а именно отступ между должностью и подразделением и в команде /m (Мегафон)
Фотокарточка:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Вот сами команды:
C++:
// CMD /su
CMD:su(playerid, params[])
{
if(pInfo[playerid][pFaction] != 1) return SCM(playerid, COLOR_GREY, "Вы не можете использовать эту функцию");
if(sscanf(params, "ds[128]", params[0], params[1], params[2])) return SCM(playerid, COLOR_GREY, "Используйте: /su [ID] [Уровень розыска] [Причина]");
if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, "Игрока с таким ID нет на сервере");
if(GetDistanceBetweenPlayers(playerid, params[0]) > 20 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(params[0])) return SCM(playerid, COLOR_GREY, "Этот игрок находится от Вас слишком далеко");
if(pInfo[params[0]][pWanted] == 6) return SCM(playerid, COLOR_GREY, "У этого игрока сейчас максимальный уровень розыска");
pInfo[params[0]][pWanted] += 1;
new query[256];
SetPlayerWantedLevel(params[0], pInfo[params[0]][pWanted]);
format(query, sizeof(query), "%s %s %s[%d] объявил Вас в розыск %d-го уровня. Причина: %s. Текущий уровень розыска: %d", fracRangs[pInfo[playerid][pFaction]-1][pInfo[playerid][pDivision]][pInfo[playerid][pRang]-1], diviNames[pInfo[playerid][pFaction]-1], pInfo[playerid][pName], playerid, params[1], params[2], pInfo[params[0]][pWanted]);
SCM(params[0], 0xFF6600AA, query);
format(query, sizeof(query), "%s %s %s[%d] объявил %s[%d] в розыск %d-го уровня. Причина: %s. Текущий уровень розыска: %d ", fracRangs[pInfo[playerid][pFaction]-1][pInfo[playerid][pDivision]][pInfo[playerid][pRang]-1], diviNames[pInfo[playerid][pFaction]-1], pInfo[playerid][pName], playerid, pInfo[params[0]][pName], params[0], params[1], params[2], pInfo[params[0]][pWanted]);
SCM(playerid, 0x0099FFAA, query);
return 1;
}
// =====================================================================================================================================
// CMD /m
CMD:m(playerid, params[])
{
if(pInfo[playerid][pMute] != 0) return SCM(playerid, COLOR_BLUE, "Доступ в чат заблокирован. Чтобы узнать время до разблокировки чата, введите /mtime");
if(pInfo[playerid][pFaction] != 1) return SCM(playerid, COLOR_GREY, "Вы не можете использовать эту функцию");
if(sscanf(params, "s[128]", params[0])) return SCM(playerid, COLOR_GREY, "Используйте: /m [текст]");
new query[144];
if(IsPlayerInAnyVehicle(playerid)) // Пока что так для теста
{
// fracRangs[pInfo[params[0]][pFaction]-1][pInfo[params[0]][pDivision]][pInfo[params[0]][pRang]-1]);
format(query, sizeof(query), "[Мегафон] %s %s %s[%d]: %s", fracRangs[pInfo[playerid][pFaction]-1][pInfo[playerid][pDivision]][pInfo[playerid][pRang]-1], diviNames[pInfo[playerid][pFaction]-1], pInfo[playerid][pName], playerid, params[0]);
ProxDetector(45.0, playerid, query, 0xFFFF00FF, 0xFFFF00FF, 0xFFFF00FF, 0xFFFF00FF, 0xFFFF00FF);
SetPlayerChatBubble(playerid, params[0], 0xFFFF00FF, 45.0, 3000);
}
else
{
SCM(playerid, COLOR_GREY, "Вы должны находиться в полицейской машине");
}
return 1;
}
C++:
new fracNames[][128] = {"Министерство Внутренних Дел", "Правительство"};
new diviNames[][][128] = {{"LSPD", "SFPD", "LVPD"}, {"Мэрия Лос-Сантоса", "Мэрия Сан Фиерро", "Мэрия Лас Вентураса"}};
new fracRangs[][][10][128] =
{
{"", "", "", "", "", "", "", "", "", "Министр Внутренних Дел"}, // МВД
{"Рядовой", "Сержант", "Ст. Сержант", "Лейтенант", "Ст. Лейтенант", "Капитан", "Майор", "Подполковник", "Полковник", "Генерал"}, // LSPD
{"Рядовой", "Сержант", "Ст. Сержант", "Лейтенант", "Ст. Лейтенант", "Капитан", "Майор", "Подполковник", "Полковник", "Генерал"}, // SFPD
{"Рядовой", "Сержант", "Ст. Сержант", "Лейтенант", "Ст. Лейтенант", "Капитан", "Майор", "Подполковник", "Полковник", "Генерал"} // LVPD
}
