Skyline
05.05.2017, 19:47
Доброго времени суток, спасибо DeimoS за предыдущий ответ и помощь в команде, но возник другой вопрос, а именно, как определить в подтверждении команды какой символ был введен?
По коду будет думаю суть ясна...
switch(currency)
{
case '$':
{
if(!(1 <= price <= 100000000000000))
return SendClientMessage(playerid, COLOR_GREY, !"Цена от $1.");
static const fmt_str[] = "Игрок %s предложил вам купить дом за $%s. Для покупки введите /accept house";
new string[sizeof(fmt_str) - 4 + MAX_PLAYER_NAME + 25];
format(string, sizeof string, fmt_str, pInfo[playerid][pName], money);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof string,"Ты предложил купить дом игроку %s за $%s.",pInfo[giveplayerid][pName], money);
SendClientMessage(playerid,COLOR_YELLOW,string);
house_price{playerid} = true;
}
case 'м', 'М', 'm', 'M':
{
if(!(100 <= price <= 100000000000000))
return SendClientMessage(playerid, COLOR_GREY, !"Цена от 100 материалов.");
static const fmt_str[] = "Игрок %s предложил вам купить дом за %s материалов. Для покупки введите /accept house";
new string[sizeof(fmt_str) - 4 + MAX_PLAYER_NAME + 25];
format(string, sizeof string, fmt_str, pInfo[playerid][pName], money);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof string,"Ты предложил купить дом игроку %s за %s материалов.",pInfo[giveplayerid][pName], money);
SendClientMessage(playerid,COLOR_YELLOW,string);
house_materials{playerid} = true;
}
case 'd', 'D':
{
if(!(1 <= price <= 100000000000000))
return SendClientMessage(playerid, COLOR_GREY, !"Цена от 1 грамма наркотиков");
static const fmt_str[] = "Игрок %s предложил вам купить дом за %s грамм нарко. Для покупки введите /accept house";
new string[sizeof(fmt_str) - 4 + MAX_PLAYER_NAME + 25];
format(string, sizeof string, fmt_str, pInfo[playerid][pName], money);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof string,"Ты предложил купить дом игроку %s за %s грамм нарко.",pInfo[giveplayerid][pName], money);
SendClientMessage(playerid,COLOR_YELLOW,string);
house_drugs{playerid} = true;
}
И команда /accept house
if(strcmp(accept, "house", true) == 0)
{
if(GetPVarInt(playerid,"BUYHOME") == 999)
return SendClientMessage(playerid, COLOR_GREY, !"Вам не кто не предлогал купить дом.");
if(pInfo[playerid][pMoney] < GetPVarInt(playerid,"BUYCENA"))
return SendClientMessage(playerid, COLOR_GREY, !"У вас недостаточно средств.");
new sellpl = GetPVarInt(playerid,"BUYHOME");
pInfo[playerid][pHouse] = pInfo[sellpl][pHouse];
pInfo[sellpl][pHouse] = 0;
strmid(HouseInfo[pInfo[playerid][pHouse]][hOwner], pInfo[playerid][pName], 0, strlen(pInfo[playerid][pName]), 255);
UpdateHouse(pInfo[playerid][pHouse]);
if(house_price{playerid} == true && house_materials{playerid} == false && house_drugs{playerid} == false)
{
format(string,sizeof string, "Вы купили дом у игрока %s за %d$.",pInfo[sellpl][pName], GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(playerid, COLOR_LBLUE, string);
format(string,sizeof string ,"Вы продали дом игроку %s за %d$.",pInfo[playerid][pName],GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(sellpl, COLOR_LBLUE, string);
pInfo[playerid][pMoney] -= GetPVarInt(playerid, "BUYCENA");
pInfo[sellpl][pMoney] += GetPVarInt(playerid, "BUYCENA");
house_price{playerid} = false;
}
if(house_price{playerid} == false && house_materials{playerid} == true && house_drugs{playerid} == false)
{
format(string,sizeof string, "Вы купили дом у игрока %s за %d материалов.",pInfo[sellpl][pName], GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(playerid, COLOR_LBLUE, string);
format(string,sizeof string ,"Вы продали дом игроку %s за %d материалов.",pInfo[playerid][pName],GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(sellpl, COLOR_LBLUE, string);
pInfo[playerid][pMats] -= GetPVarInt(playerid, "BUYCENA");
pInfo[sellpl][pMats] += GetPVarInt(playerid, "BUYCENA");
house_materials{playerid} = false;
}
if(house_price{playerid} == false && house_materials{playerid} == false && house_drugs{playerid} == true)
{
format(string,sizeof string, "Вы купили дом у игрока %s за %d грамм нарко.",pInfo[sellpl][pName], GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(playerid, COLOR_LBLUE, string);
format(string,sizeof string ,"Вы продали дом игроку %s за %d грамм нарко.",pInfo[playerid][pName],GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(sellpl, COLOR_LBLUE, string);
pInfo[playerid][pDrugs] -= GetPVarInt(playerid, "BUYCENA");
pInfo[sellpl][pDrugs] += GetPVarInt(playerid, "BUYCENA");
house_drugs{playerid} = false;
}
SetPVarInt(playerid,"BUYHOME",999);
SetPVarInt(playerid,"BUYCENA",0);
}
Я не знаю как сделать проверку на введеный символ, т.е. за какой материальный предмет продает игрок дом.
Подскажите пожалуйста, может есть проще и лучше вариант.
По коду будет думаю суть ясна...
switch(currency)
{
case '$':
{
if(!(1 <= price <= 100000000000000))
return SendClientMessage(playerid, COLOR_GREY, !"Цена от $1.");
static const fmt_str[] = "Игрок %s предложил вам купить дом за $%s. Для покупки введите /accept house";
new string[sizeof(fmt_str) - 4 + MAX_PLAYER_NAME + 25];
format(string, sizeof string, fmt_str, pInfo[playerid][pName], money);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof string,"Ты предложил купить дом игроку %s за $%s.",pInfo[giveplayerid][pName], money);
SendClientMessage(playerid,COLOR_YELLOW,string);
house_price{playerid} = true;
}
case 'м', 'М', 'm', 'M':
{
if(!(100 <= price <= 100000000000000))
return SendClientMessage(playerid, COLOR_GREY, !"Цена от 100 материалов.");
static const fmt_str[] = "Игрок %s предложил вам купить дом за %s материалов. Для покупки введите /accept house";
new string[sizeof(fmt_str) - 4 + MAX_PLAYER_NAME + 25];
format(string, sizeof string, fmt_str, pInfo[playerid][pName], money);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof string,"Ты предложил купить дом игроку %s за %s материалов.",pInfo[giveplayerid][pName], money);
SendClientMessage(playerid,COLOR_YELLOW,string);
house_materials{playerid} = true;
}
case 'd', 'D':
{
if(!(1 <= price <= 100000000000000))
return SendClientMessage(playerid, COLOR_GREY, !"Цена от 1 грамма наркотиков");
static const fmt_str[] = "Игрок %s предложил вам купить дом за %s грамм нарко. Для покупки введите /accept house";
new string[sizeof(fmt_str) - 4 + MAX_PLAYER_NAME + 25];
format(string, sizeof string, fmt_str, pInfo[playerid][pName], money);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof string,"Ты предложил купить дом игроку %s за %s грамм нарко.",pInfo[giveplayerid][pName], money);
SendClientMessage(playerid,COLOR_YELLOW,string);
house_drugs{playerid} = true;
}
И команда /accept house
if(strcmp(accept, "house", true) == 0)
{
if(GetPVarInt(playerid,"BUYHOME") == 999)
return SendClientMessage(playerid, COLOR_GREY, !"Вам не кто не предлогал купить дом.");
if(pInfo[playerid][pMoney] < GetPVarInt(playerid,"BUYCENA"))
return SendClientMessage(playerid, COLOR_GREY, !"У вас недостаточно средств.");
new sellpl = GetPVarInt(playerid,"BUYHOME");
pInfo[playerid][pHouse] = pInfo[sellpl][pHouse];
pInfo[sellpl][pHouse] = 0;
strmid(HouseInfo[pInfo[playerid][pHouse]][hOwner], pInfo[playerid][pName], 0, strlen(pInfo[playerid][pName]), 255);
UpdateHouse(pInfo[playerid][pHouse]);
if(house_price{playerid} == true && house_materials{playerid} == false && house_drugs{playerid} == false)
{
format(string,sizeof string, "Вы купили дом у игрока %s за %d$.",pInfo[sellpl][pName], GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(playerid, COLOR_LBLUE, string);
format(string,sizeof string ,"Вы продали дом игроку %s за %d$.",pInfo[playerid][pName],GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(sellpl, COLOR_LBLUE, string);
pInfo[playerid][pMoney] -= GetPVarInt(playerid, "BUYCENA");
pInfo[sellpl][pMoney] += GetPVarInt(playerid, "BUYCENA");
house_price{playerid} = false;
}
if(house_price{playerid} == false && house_materials{playerid} == true && house_drugs{playerid} == false)
{
format(string,sizeof string, "Вы купили дом у игрока %s за %d материалов.",pInfo[sellpl][pName], GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(playerid, COLOR_LBLUE, string);
format(string,sizeof string ,"Вы продали дом игроку %s за %d материалов.",pInfo[playerid][pName],GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(sellpl, COLOR_LBLUE, string);
pInfo[playerid][pMats] -= GetPVarInt(playerid, "BUYCENA");
pInfo[sellpl][pMats] += GetPVarInt(playerid, "BUYCENA");
house_materials{playerid} = false;
}
if(house_price{playerid} == false && house_materials{playerid} == false && house_drugs{playerid} == true)
{
format(string,sizeof string, "Вы купили дом у игрока %s за %d грамм нарко.",pInfo[sellpl][pName], GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(playerid, COLOR_LBLUE, string);
format(string,sizeof string ,"Вы продали дом игроку %s за %d грамм нарко.",pInfo[playerid][pName],GetPVarInt(playerid,"BUYCENA"));
SendClientMessage(sellpl, COLOR_LBLUE, string);
pInfo[playerid][pDrugs] -= GetPVarInt(playerid, "BUYCENA");
pInfo[sellpl][pDrugs] += GetPVarInt(playerid, "BUYCENA");
house_drugs{playerid} = false;
}
SetPVarInt(playerid,"BUYHOME",999);
SetPVarInt(playerid,"BUYCENA",0);
}
Я не знаю как сделать проверку на введеный символ, т.е. за какой материальный предмет продает игрок дом.
Подскажите пожалуйста, может есть проще и лучше вариант.