Всем привет, хочу узнать как в команде сделать 1 необязательный параметр? сама команда с 1 параметром. То есть я ввожу /commands id игрока. Мне надо чтобы id игрока было необязательным.
Вид для печати
Всем привет, хочу узнать как в команде сделать 1 необязательный параметр? сама команда с 1 параметром. То есть я ввожу /commands id игрока. Мне надо чтобы id игрока было необязательным.
Если команда на ZCMD/DC_CMD и в ней всего один параметр, то достаточно просто проверить строку params на пустоту.
PHP код:
CMD:commands(playerid, params[])
{
if (params[0] == '\0')
{
// ...
}
// ...
}
А если например: команда выглядела вот так:
Как оно должно выглядеть сейчас? Если я не укажу ID то другие действия чтоб были.PHP код:
CMD:commands(playerid, params[])
{
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, -1, "Введите: /commands [id игрока]");
// Тут действия
return 1;
}
Ещё вопрос:
Имеется email адрес, он показывается в textdraw соответственно. Как сделать чтобы показывалась часть этого email адреса? В виде login. Полный адрес [email protected]
Набросал "функцию", работает :)
PHP код:
stock HidePlayerMain(email[])
{
for(new i; i < strfind(email, "@", true); i++)
{
email[i] = '*';
}
}
main()
{
new str_1[128] = "[email protected]";
printf("[До] %s", str_1);
HidePlayerMain(str_1);
printf("[После] %s", str_1);
}
Могу такой вариант предложить:
PHP код:
new
mail_str[32] = "[email protected]",
pos = strfind(mail_str, "@");
strmid(mail_str, mail_str, 0, (-1 == pos) ? sizeof(mail_str) : pos);
print(mail_str); // вывод "login"
https://i.gyazo.com/e6d7ef771c002280...9aeb2eb1f6.png
Эм?
- - - Добавлено - - -
Кстати вот ещё способ, без strmid:
И без функций, с использованием цикла:PHP код:
new
mail_str[32] = "[email protected]",
pos = strfind(mail_str, "@");
if(-1 != pos)
mail_str[pos] = EOS;
print(mail_str); // вывод "login"
PHP код:
new
mail_str[32] = "[email protected]",
i = -1,
c;
while((c = mail_str[++i]) != EOS && c != '@'){}
mail_str[i] = EOS;
print(mail_str); // вывод "login"
PHP код:
ExtractNameFromEMailAddress(const in[], out[], size = sizeof(out))
{
static pos;
if ((pos = strfind(in, "@")) < 0)
return;
for (pos = (pos >= size) ? (size - 1) : (pos), out[pos] = '\0'; pos-- != 0;)
out[pos] = in[pos];
}
Спасибо Daniel. Буду использовать твой вариант. Тему можно закрыть.