f0Re3t
Компетентный
Всем привет. Выкладываю обычную команду для отправки сообщения игрокам. Команда написано на ZCMD с использованием SSCANF. Вот собственно команда:
И так, немного разберем: первые 4 строчки - проверки на авторизацию, правильность введённой команды, находится ли игрок на сервере и хватает ли денег на отправку SMS. Дальше мы выделяем место под сообщение и показываем его отправителю и получателю. В конце концов, мы отнимаем у отправителя 100$ за отправку SMS. У кого стоят другие проверки - заменяем на свои.
PHP:
CMD:sms(playerid, params[])
{
if(Player[playerid][pLogged] == false) return SendClientMessage(playerid, COLOR_ORANGE, "Ошибка: Прежде чем использовать чат нужно войти в аккаунт");
if(sscanf(params, "ds[50]", params[0], params[1])) return SendClientMessage(playerid, COLOR_ORANGE, "Ошибка: Используйте /sms [ID] [Сообщение]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_ORANGE, "Ошибка: Данного игрока нет на сервере");
if(Player[playerid][pMoney] <= 0) return SendClientMessage(playerid, COLOR_ORANGE, "Ошибка: У вас не хватает денег для отправки сообщения");
new message[99];
format(message, sizeof(message), "SMS: %s. Получатель: %s[%d]", params[1], Player[params[0]][pName], params[0]);
SendClientMessage(playerid, COLOR_SMS, message);
format(message, sizeof(message), "SMS: %s. Отправитель: %s[%d]", params[1], Player[playerid][pName], playerid);
SendClientMessage(params[0], COLOR_SMS, message);
Player[playerid][pMoney] -= 100;
return true;
}
