Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система продажи авто

Статус
В этой теме нельзя размещать новые ответы.

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;
			}
		}
Если что-то не так сделал (код не так вставил) то прошу не сердиться ибо на всех форумах по-разному, прошу помочь мне. Если нужно скинуть что-то еще то просите, все скину
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу