PDA

Просмотр полной версии : [Вопрос] DC_CMD + sscanf



Gressie
02.03.2015, 14:21
Здравствуйте! Использую DC_CMD и Sscanf, как сделать тот или иной параметр не обязательным? к примеру команда /jail id кол-во минут
и если не указывать минуты то автоматически 60 минут?
Сама команда:

CMD:jail(playerid, params[])
{
if (PINFO[playerid][pAdminLVL] < 1) return SendMe(playerid, CGRADD, YouCanNot);
if(sscanf(params, "ud", params[0], params[1])) return SendMe(playerid, 0x00D900C8, "- Подсказка:{FFFFFF} /jail [ID] [минуты]");
if (!IsPlayerConnected(params[0])) return SendMe(playerid, CGRADD, NotFoundID);
if(gPlayerLogged[params[0]] == false) return SendMe(playerid, CGRADD, NoLogin);
SendMes(playerid, CORANGE,"Вы посадили %s в тюрьму", GN(params[0]));
ResetPlayerWeaponsAC(params[0]);
SetPlayerInterior(params[0], 6);
SetPlayerPos_by_Rich(params[0],264.1425,77.4712,1001.0391);
SetPlayerFacingAngle(params[0], 263.0160);
PINFO[params[0]][pJailed] = 1;
PINFO[params[0]][pMestoJail] = 1;
PINFO[params[0]][pJailTime] = params[1]*60;
SendMes(params[0], CORANGE, "Вы были посажены в тюрьму администратором на %i минут(ы)", params[1]);
return true;
}

Avertus
02.03.2015, 14:34
sscanf(params, "uD(60)", params[0], params[1])

В строке форматирования пишем в верхнем регистре, а в скобках указываем значение по умолчанию. Если не указать параметр, то sscanf выполнится без ошибки, присвоив значение по умолчанию.

Gressie
02.03.2015, 16:28
Спасибо, проверю.

bazz`layter
03.03.2015, 19:41
А не проще сделать присвоение команды к игроку? И указать нужное тебе количество минут.

Avertus
03.03.2015, 20:44
bazz`layter Что значит: "присвоение команды к игроку"? И где "указать нужное тебе количество минут"?