PDA

Просмотр полной версии : [Вопрос] Продажа по символам



Skyline
01.05.2017, 12:03
Здравствуйте, подскажите, каким образом можно реализовать продажу дома по символу, если сделать так.

/sellhouse [id] [$/M/D] [Цена] - Это игроку.
/sellhouse - просто продаешь дом штату.

С проверкой на наличие символов сделать можно, чтобы продать дом штату, а как сделать чтобы проверка была на символы, т.е. если игрок вводит /sellhouse [id] [$] [100000] - Это продажа за деньги. [M] - маты, а [D] - наркотики?

Подскажите пожалуйста как сделать проверку на символы, буду очень благодарен.

DeimoS
01.05.2017, 12:41
Писал в браузере и не проверял, но логика такова:

if(isnull(params))
{
// Продажа дома штату
}
else
{
new
giveplayerid,
currency,
price;
sscanf(params, "uci", giveplayerid, currency, price);
if(giveplayerid == INVELID_PLAYER_ID)
return SendClientMessage(playerid, -1, "Указанный игрок не найден на сервере");
switch(currency)
{
case '$':
{
if(!(1000 <= price <= 10000))
return SendClientMessage(playerid, -1, "Цена не может быть меньше $1000 или больше $10000");
//Прочие проверки и если всё норм, отнимаем деньги (дом пока не передаём)
}
case 'м', 'М', 'm', 'M':// Учитываем как русские, так и английские буквы всех регистров
{
if(!(1 <= price <= 1000))
return SendClientMessage(playerid, -1, "Цена не может быть меньше 1 или больше 1000 матов");
//То же самое
}
case 'd', 'D', 'н', 'Н':// То же самое для наркотиков
{
if(!(1 <= price <= 1000))
return SendClientMessage(playerid, -1, "Цена не может быть меньше 1 или больше 1000 грамм наркотиков");
//То же самое
}
}
//А вот тут уже производим передачу дома от одного игрока другому
//Ибо дублировать это действие в каждой проверке бессмысленно, так как оно для всех случаев одинаково
return 1;
}

Skyline
02.05.2017, 10:04
Спасибо. Решено, можно закрыть.