Проблема с командой /pm

CreyV

Участник
Автор темы
55
2
У меня имеется команда для /pm - ответа на репорт, но если я ввожу: /pm (мой айди, другие сущ.) и слово то ничего не работает.
pm:
CMD:pm(playerid, params[])
{
    if (PlayerInfo[playerid][pAlcoInvenxua] < 1) return SendClientMessage(playerid, COLOR_WHITE, NO_DOSTUP_ADM);
    if (PlayerInfo[playerid][pAlcoInvenxua] < 1 && PlayerInfo[playerid][pHelper] <= 0) return true;
    {
        new text[128];
        if(sscanf(params, "dS[128]",params[0],text)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /pm [id] [текст]");
        if(!IsPlayerConnected(params[0]) || params[0] == playerid) return true;
        if(!strlen(text) && PlayerInfo[playerid][pAlcoInvenxua] > 0) {
            SetPVarInt(playerid, "IdReport", params[0] + 1);
            return ShowPlayerDialog(playerid, 9122, DIALOG_STYLE_LIST, "{FFFFFF}Админ-помощник", "Начал слежку за игроком\nНарушений не замечено\nИгрок был наказан\nНе засоряйте пожалуйста репорт\nПриобретите данный пост(/buylead) или же подайте заявление в группу вк - "PAGE_FORUM"\nПриобретите данный пост - /buyadm\nЧтобы получать новые промокоды подпишитесь на рассылку офф.группы - "PAGE_VK"\nНаш сайт - "PAGE_SITE" / ВКонтакте - "PAGE_VK"\nВы можете подать жалобу в группу вк - "PAGE_FORUM"\nCвяжитесь с основателями проекта в ВКонтакте. Найти их страницы Вы можете в группе\nПополнить счет Вы можете на сайте - "PAGE_SITE"\nПополните счёт аккаунта на сайте "PAGE_SITE" и купите в /mm > Дополнительно", "Далее", "Отмена");
        }
        if(PlayerInfo[playerid][pAlcoInvenxua] > 0) format(stringer1, sizeof(stringer1), "Администратор: %s[%d] для %s[%d]: %s", PlayerInfo[playerid][pNames],playerid,PlayerInfo[params[0]][pNames],params[0], text), PlayerInfo[playerid][pRepAdm]++;
        else format(stringer1, sizeof(stringer1), "{FF9945}Ответ от хелпера: %s: %s",PlayerInfo[playerid][pNames],text), PlayerInfo[playerid][pHotvet] ++;
        SendClientMessage(params[0], 0xff9945FF, stringer1);
        DeletePVar(params[0], "RepUn");
        if(PlayerInfo[playerid][pAlcoInvenxua] > 0) { format(stringer1, sizeof(stringer1), "Администратор: %s[%d] для %s[%d]: %s", PlayerInfo[playerid][pNames],playerid,PlayerInfo[params[0]][pNames],params[0], text); }
        else { format(stringer1, sizeof(stringer1), "{FF9945}[H] %s[%d]: %s Ответ от: %s",PlayerInfo[params[0]][pNames],params[0],text,PlayerInfo[playerid][pNames]); }
        SCMAH(0xff9945FF, stringer1);
    }
    return true;
}
 

Receiver

leet-cheats 👑
Модератор
637
942
Думаю проблема заключается в 7-й строке.
Почему парсишь из params и записываешь id игрока обратно в него же?
К тому же params это строка, а id это число.
Выходит ты записываешь числовое id игрока в строку.
Создай отдельную переменную под это.
sscanf(params, "dS[128]",params[0],text)
 

CreyV

Участник
Автор темы
55
2
Думаю проблема заключается в 7-й строке.
Почему парсишь из params и записываешь id игрока обратно в него же?
К тому же params это строка, а id это число.
Выходит ты записываешь числовое id игрока в строку.
Создай отдельную переменную под это.
sscanf(params, "dS[128]",params[0],text)
Завтра чекну и отвечу. Заранее спасибо.