KACbIM
Дебютант
Всем привет. Если вы читаете эту тему, значит вы ищите самую простую систему личных сообщений или вам просто нужно придраться.
[HR][/HR]
И так. Для того чтобы работала наша команда "/pm" на нужен strtok:
В public OnPlayerCommandText впишем:
И там же добавим нашу команду:
Проверки на мут нет и администраторы не читают сообщения.
Команду я пытался сделать максимально простой , чтобы можно было без лишних проблем вставить в любой мод.
Если есть решение проще то оставляйте ссылки на тему где проще, если вам была полезен этот мануал, то ставьте +rep в мою карму.
[HR][/HR]
И так. Для того чтобы работала наша команда "/pm" на нужен strtok:
Код:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Код:
cmd = strtok(cmdtext, idx);
new tmp[255], string[255], cmd[255], idx, giveplayerid, sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
Код:
if(!strcmp(cmd, "/pm", true))
{
new pp; // Переменная для измерения длинны команды
tmp = strtok(cmdtext, idx); // Запишем ID игрока во временную переменную
if(!strlen(tmp)) return SendClientMessage(playerid, 0x919191FF, "{FF0000}[Инфо]{FFFF00}: {FFFFFF}Использование: \"/pm [ID] text\"."); //Если игрок не ввёл ID выводим сообщение
giveplayerid = strval(tmp); // Запоминаем ID
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, 0x919191FF, "{FF0000}[Ошибка]{FFFF00}: {FFFFFF}Игрока с таким ID нет на сервере."); // Если игрока нет выводим сообщение
if(giveplayerid==playerid) return SendClientMessage(playerid, 0x919191FF, "{FF0000}[Ошибка]{FFFF00}: {FFFFFF}Нельзя писать самому себе."); // Если пишем себе, то пишем что так нельзя
pp = strlen(tmp)+5; // Теперь измеряем длину команды, включая ID
tmp = strtok(cmdtext, idx); // Записываем то что идёт после ID
if(!strlen(tmp)) return SendClientMessage(playerid, 0x919191FF, "{FF0000}[Инфо]{FFFF00}: {FFFFFF}Использование: \"/pm [ID] text\"."); // Проверяем текст, если нет, то пишем ошибку
format(string,sizeof(string),"{FFD500}*PM %s(%d):{FFFFFF} %s",sendername, playerid, cmdtext[pp]); // Форматируем текст под себя
SendClientMessage(giveplayerid, 0xAA00FFAA, string); // Отправляем сообщение
}
Команду я пытался сделать максимально простой , чтобы можно было без лишних проблем вставить в любой мод.
Если есть решение проще то оставляйте ссылки на тему где проще, если вам была полезен этот мануал, то ставьте +rep в мою карму.
Последнее редактирование:
