RemmiFeed
Дебютант
Всем доброго времени суток, обращаюсь уже не на первый форум с такой проблемой: После продажи авто игроку переводятся только деньги, машина остается у продавца. Вот все что понадобится:
и
Если что-то не так сделал (код не так вставил) то прошу не сердиться ибо на всех форумах по-разному, прошу помочь мне. Если нужно скинуть что-то еще то просите, все скину
Код:
case DIALOG_CAR_SELL_ID:
{
if(!response) return ShowDialog(playerid, DIALOG_CAR);
if(response)
{
GetPlayerCar(playerid);
new cid = GetPVarInt(playerid, "playercarid"), id, price;
if(IsVIPcar(cid)) return SCM(playerid, COLOR_GRAY, "VIP автомобили нельзя продавать другим игрокам");
if(sscanf(inputtext, "p<*>ii", id, price)) return ShowDialog(playerid, DIALOG_CAR_SELL_ID);
if(playerid == id) return SCM(playerid, COLOR_GRAY, "Вы не можете продать автомобиль себе");
if(!PlayerConnected(id)) return PlayerNotConnected(playerid);
if(!(1000 <= price <= car[cid][cPrice] * 2)) return SCM(playerid, COLOR_GRAY, "Цена продажи транспорта должна быть не более, чем государственная цена * 2");
if(!IsPlayerInRangeOfPlayer(playerid, 2.5, id)) return SCM(playerid, COLOR_GRAY, "Вы слишком далеко от игрока");
// Вы не в банке
stringer[0]=EOS;
new idc;
mysql_format(handle, stringer, 512, "SELECT * FROM `cars` WHERE `owner` = '%s'", player[id][pName]);
mysql_query(handle, stringer, true);
idc = cache_get_field_content_int(0, "id", handle);
if(idc != 0) return SCM(playerid, COLOR_GRAY, "У игрока уже есть автомобиль");
if(player[id][pMoney] < price) return SCM(playerid, COLOR_GRAY, "У игрока недостаточно денег для покупки вашего транспорта");
format(stringer, 175, "{0099FF}%s[%i] {FFFFFF}предложил Вам купить свой транспорт {0099FF}%s {FFFFFF}за {0099FF}%i рублей\n{FFFFFF}Вы согласны?",
player[playerid][pName], playerid, GetCarName(GetVehicleModel(cid)), price);
SPD(id, DIALOG_CAR_SELL_OK, DIALOG_STYLE_MSGBOX, "{FFCC00}Предложение покупки транспорта", stringer, "Да", "Нет");
format(stringer, 144, "Вы предложили игроку %s[%i] купить свой транспорт за %i рублей", player[id][pName], id, price);
SCM(playerid, COLOR_OFFER, stringer);
SetPVarInt(id, "carplayerid", playerid);
SetPVarInt(id, "sellcarid", GetPVarInt(playerid, "playercar"));
SetPVarInt(id, "carprice", price);
/*if(!IsTextNumeric(inputtext) || !strlen(inputtext)) return ShowDialog(playerid, DIALOG_CAR);
new carid = GetPVarInt(playerid, "playercar");
if(strfind(inputtext, "*", true, 0) == -1) return ShowDialog(playerid, DIALOG_CAR);
new one[10], two[10], pos = strfind(inputtext, "*", true);
strmid(one, inputtext, 0, pos);
strmid(two, inputtext, pos+1, 20);
new id = strval(one), price = strval(two);
new fmt[150];
format(fmt, sizeof fmt, "%d %d", one, two);
SCM(playerid, -1, fmt);
if(!PlayerConnected(id)) return PlayerNotConnected(playerid);
if(GetPVarInt(id, "playercar") != 0) return SCM(playerid, COLOR_GRAY, "У игрока уже есть автомобиль");
new maxprice = price * 2;
if(maxprice > car[carid][cPrice]) return SCM(playerid, COLOR_GRAY, "Вы не можете продать транспорт дороже, чем его гос. цена * 2");
if(!(0 <= price <= 4000000)) return SCM(playerid, COLOR_GRAY, "Вы не можете продать автомобиль дороже, чем за 4 миллиона (#SYSTEM_LIMIT)");
if(player[id][pMoney] < price) return SCM(playerid, COLOR_GRAY, "У игрока недостаточно денег");
new Float:ppos[3];
GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
if(!IsPlayerInRangeOfPoint(id, 15.0, ppos[0], ppos[1], ppos[2])) return SCM(playerid, COLOR_GRAY, "Вы слишком далеко от игрока");
SetPVarInt(id, "carplayerid", playerid);
SetPVarInt(id, "sellcarid", carid);
SetPVarInt(id, "carprice", price);
new fmt_msg[500];
format(fmt_msg, sizeof fmt_msg, "{0099FF}%s {FFFFFF}предложил Вам купить транспорт {0099FF}%s {FFFFFF}за {0099FF}%d {FFFFFF}рублей",
player[playerid][pName], GetCarName(car[carid][cModel]), price);
SPD(id, DIALOG_CAR_SELL_OK, DIALOG_STYLE_MSGBOX, "{FFCC00}Покупка транспорта", fmt_msg, "Далее", "Отмена");
*/
}
}
Код:
case DIALOG_CAR_SELL_OK:
{
if(!response)
{
new id = GetPVarInt(playerid, "carplayerid");
SCM(id, COLOR_GRAY, "Он отказался");
SCM(playerid, COLOR_GRAY, "Ты отказался");
DeletePVar(playerid, "carplayerid");
DeletePVar(playerid, "sellcarid");
DeletePVar(playerid, "carprice");
return 0;
}
if(response)
{
new id = GetPVarInt(playerid, "carplayerid");
new carid = GetPVarInt(playerid, "sellcarid");
new price = GetPVarInt(playerid, "carprice");
if(!PlayerConnected(id)) return SCM(playerid, COLOR_GRAY, "Продавец не на сервере");
if(GetPlayerCar(id) == 0) return SCM(playerid, COLOR_GRAY, "У игрока нет машины");
player[playerid][pMoney] -= price;
SetPlayerMoney(playerid);
player[id][pMoney] += price;
SetPlayerMoney(id);
strmid(car[carid][cOwner], player[playerid][pName], 0, 20, 20);
new fmt_msg[50];
format(fmt_msg, sizeof fmt_msg, "Вы купили car %d у %s за %d", car[carid][cID], player[id][pName], price);
SCM(playerid, -1, fmt_msg);
format(fmt_msg, sizeof fmt_msg, "%s купил у Вас car %s за %d", player[playerid][pName], car[carid][cOwner], price);
SCM(id, -1, fmt_msg);
new query[150];
mysql_format(handle, query, sizeof query, "UPDATE `cars` SET `owner` = '%s' WHERE `id` = '%d'", player[playerid][pName], car[carid][cID]);
mysql_query(handle, query, false);
DeletePVar(playerid, "carplayerid");
DeletePVar(playerid, "sellcarid");
DeletePVar(playerid, "carprice");
return 1;
}
}
Последнее редактирование:
