Можете максимально оптимизировать эту команду.
Или дать советы по оптимизации.
И главный вопрос, как подстроить sscanf под динамичный параметр 1 (причина.)
То есть, если параметра 1 нет, то не выводить слово причина:
PHP код:
CMD:unjail(playerid, params[])
{
if(sscanf(params, "us[24]",params[0],params[1])) return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /unjail [id игрока] ([Причина])");//Вот тут
if(strlen(params[1]) < 2)
{
static const fmt_string[] = "Администратор: %s выпустил из тюрьмы %s";
new string[sizeof(fmt_string)-2+MAX_PLAYER_NAME-2+MAX_PLAYER_NAME];
format(string, sizeof(string), fmt_string, PlayerInfo[playerid][pName], PlayerInfo[params[0]][pName]);
SendClientMessageToAll(0xFF6347AA, string);
}
else
{
static const fmt_string[] = "Администратор: %s выпустил из тюрьмы %s. Причина: %s";
const size0 = sizeof(fmt_string)-2+MAX_PLAYER_NAME-2+MAX_PLAYER_NAME-2+24;
#if size0 > 144
#define size 144
#else
#define size size0
#endif
new string[size];
#undef size
format(string, sizeof(string), fmt_string, PlayerInfo[playerid][pName], PlayerInfo[params[0]][pName], params[1]);
SendClientMessageToAll(0xFF6347AA, string);
}
PlayerInfo[params[0]][pPrison] = 0;
SpawnPlayer(params[0]);
return 1;
}