Вопросы

Доброго времени суток,у меня такая проблема возникла ,взял я мод ,начал по тихоньку баги исправлять,и тут наткнулся на такую капость как отсутствие команды Sellcar.
Она как бы есть (Sellmycar) но она позволяет продать транспорт игроку,а вот слить в гос нет возможности,прошу вашей помощи,как быть?

CMD:sellmycar(playerid, params[])
{
    if(!pTemp[playerid][pLogined]) return 1;
	if(!pData[playerid][pCar]) return SendClientMessage(playerid,CGRAY,"У Вас нет т/с");
	new slot = GetCarSlot(pData[playerid][pCar]);
	new Float:x, Float:y, Float:z;
	new vehicleid = gCars[slot][carVid];
	GetVehiclePos(vehicleid,x,y,z);
	new Float:x2,Float:y2,Float:z2;
	GetPlayerPos(playerid,x2,y2,z2);
	if(PointToPoint3D(x,y,z,x2,y2,z2) > 3.0) return SendClientMessage(playerid,CGRAY,"Вы далеко от своего т/с");
	if(sscanf(params, "udd",params[0],params[1])) return	SendClientMessage(playerid, CYELLOW, "• [Подсказка]:{"#cWHITE"} /sellmycar [id] [цена]");
	new carID = GetCarSlot(pData[playerid][pCar]);
	if(carID == -1) return SendClientMessage(playerid,CRED,"Ошибка. Т/С не найдено");
	if(pTemp[playerid][pTaxiID] != INVALID_VEHICLE_ID || pTemp[playerid][pTaxiPass] != INVALID_PLAYER_ID) return SendClientMessage(playerid,CGRAY,"Нельзя использовать данную Команду сейчас");
	new modelid = GetVehicleModel(vehicleid) - 400;
	if(params[0] == playerid || !IsPlayerConnected(params[0])) return SendClientMessage(playerid,CGRAY,"Неверный ID игрока");
	if(!pData[params[0]][pHouse] && !pData[params[0]][pGarajePlayer]) return 1;
	if(pData[params[0]][pHouse])
	{
		new houseid = pData[params[0]][pHouse] - 1;
		if(gHouses[houseid][houseOwnerID] != pData[params[0]][pMysqlID])
		{
			if(!pData[params[0]][pGarajePlayer]) return SendClientMessage(playerid,CGRAY,"Машина может быть только у владельца дома");
		}
	}
	if(pData[params[0]][pCar]) return SendClientMessage(playerid,CGRAY,"У игрока уже есть своя машина.");
	if(GetPlayerDistanceToPlayer(playerid,params[0]) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(params[0])) return SendClientMessage(playerid,CGRAY,"Вы далеко друг от друга");
	new classname[12]; new mes[158];
	GetCarClassName(gTransport[modelid][trClass],classname);
    if(params[1]< 1000 || params[1] > gTransport[modelid][trPrice])
	{
	    new goscena[128];
		format(goscena,sizeof(goscena), "Цена не может быть меньше 1000$ и больше %d$", gTransport[modelid][trPrice]);
		SendClientMessage(playerid,CGRAY,goscena);
		return 1;
	}
	format(mes,sizeof(mes),"Вы предложили {FF6600}%s{3399FF} купить Ваше транспортное средство за {00CC00}%d$ {FE2E2E}.",pData[params[0]][pNickname],params[1]);
	SendClientMessage(playerid,0x3399FFFF,mes);
	format(mes,sizeof(mes),"%s предлагает Вам купить его транспортное средство за {00CC00}%d$ {FE2E2E}.",pData[playerid][pNickname],params[1]);
	SendClientMessage(params[0],0x3399FFFF,mes);
	format(mes,sizeof(mes),"Название: {00CC00}%s {3399FF}| Класс: {00CC00}%s {3399FF}| Гос.Цена: {00CC00}%d$",gTransport[modelid][trName],classname,gTransport[modelid][trPrice]);
	SendClientMessage(params[0],0x3399FFFF,mes);
	SendClientMessage(params[0],-1, "Нажмите {00CC00}Y "W"чтобы согласиться или {FF6600}N "W"для отказа");
	pTemp[playerid][pSellCarOffer] = playerid;
	pTemp[params[0]][pSellCarOffer] = playerid;
	pTemp[params[0]][pSellCarOffee] = params[0];
	pTemp[params[0]][pSellCarPrice] = params[1];
	pTemp[params[0]][pSellCarID] = carID;
	return true;
}

 

Поделиться сообщением


Ссылка на сообщение

5 ответов на этот вопрос

  • 0

Команда :

CMD:sellcar(playerid, params[])
{
	if(!pData[playerid][pCar]) return SendClientMessage(playerid,CGRAY,"У вас нет личного т/с");
  	new carID = GetCarSlot(pData[playerid][pCar]); new vehicleid = gCars[carID][carVid]; new modelid = GetVehicleModel(vehicleid) - 400;
  	new price = floatround(gTransport[modelid][trPrice]/100*80);
  	SetPVarInt(playerid,"psellcarPrice",price);
  	SetPVarInt(playerid,"psellcarID",carID);
  	new mes[228];
  	format(mes,sizeof(mes),"\t\t\t{"#cWHITE"}Вы хотите продать свой автомобиль за {"#cGREEN"}$%d?\n\n\t\t\t\t\t{FFFF00}• [Подсказка] •\n\t{"#cWHITE"}Чтобы продать автомобиль другому игроку используйте команду /sellmycar [id] [цена]",price);
  	ShowPlayerDialog(playerid,dSellCar,0,"Продажа автомобиля",mes,"Продать","Отмена");
  	return 1;
}

Диалог:

case dSellCar:
		{
			if(!response) return 1;
			new price = GetPVarInt(playerid,"psellcarPrice");
			new carID = GetPVarInt(playerid,"psellcarID");
			new vehicleid = gCars[carID][carVid];
			DeletePVar(playerid,"psellcarPrice");
			DeletePVar(playerid,"psellcarID");
			new query[256];
			format(query,sizeof(query),"DELETE FROM `cars` WHERE `id` = '%d'",pData[playerid][pCar]);
			sql_query(zConn, query);
			UpdatePlayerData(playerid,"car",0);
			pData[playerid][pCar] = 0;
			DestroyVehicle(vehicleid);
			gCars[carID][carOwnerid] = 0;
			gCars[carID][carMysqlID] = 0;
			gCars[carID][carModelid] = 0;
			gCars[carID][carFuel] = 0.0;
			gCars[carID][carDrived] = 0.0;
			gCars[carID][carHealth] = 0.0;
			gCars[carID][carColor1] = 0;
			gCars[carID][carColor2] = 0;
			gCars[carID][carVid] = INVALID_VEHICLE_ID;
			strdel(gCars[carID][carPlate],0,12);
			TransferMoney(-1,playerid,price,"gossellcar");
			new str[40]; new string[128];
			format(str, sizeof(str), "~g~ +%d$",price);
			GameTextForPlayer(playerid,str,2000,1);
			format(string, sizeof(string), "Ваше транспортное средство продано государству за {0099FF}%d$",price);
			SendClientMessage(playerid, 0x66CC00FF, string);
		}

Вопрос был решен в личных сообщениях на форуме. 

Поделиться сообщением


Ссылка на сообщение
  • 0

Покажи пожалуйста паблик OnPlayerKeyStateChange

Поделиться сообщением


Ссылка на сообщение
  • 0
9 минут назад, Покемон сказал:

Покажи пожалуйста паблик OnPlayerKeyStateChange

Весь? он большой :) может в текстовик загрузить его?

Вот его часть которая вроди бы относится к данной функции

		if(pTemp[playerid][pSellCarOffee] == playerid)
		{
			new offerid = pTemp[playerid][pSellCarOffer];
			new carID = pTemp[playerid][pSellCarID];
			new price = pTemp[playerid][pSellCarPrice];
			if(!pData[playerid][pHouse]) return SendClientMessage(playerid,CGRAY,"У вас нет дома");
			new houseid = pData[playerid][pHouse]-1;
			if(!gCars[carID][carOwnerid] || !pData[offerid][pCar])
			{
				SendClientMessage(playerid,CGRAY,"Авто было продано в гос.");
				pTemp[offerid][pSellCarOffer] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarOffer] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarOffee] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarPrice] = 0;
				pTemp[playerid][pSellCarID] = 0;
				return 1;
			}
			if(pTemp[offerid][pSellCarOffer] == INVALID_PLAYER_ID || !IsPlayerConnected(offerid))
			{
				SendClientMessage(playerid,CGRAY,"Продавец вышел из игры");
				pTemp[offerid][pSellCarOffer] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarOffer] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarOffee] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarPrice] = 0;
				pTemp[playerid][pSellCarID] = 0;
				return 1;
			}
			if(GetPlayerMoneyEx(playerid) < price)
			{
				SendClientMessage(playerid, CRED, "x {AC0000}[Ошибка] "W"У Вас недостаточно денег на руках");
				SendClientMessage(offerid,CGRAY,"У покупателя недостаточно денег");
				pTemp[offerid][pSellCarOffer] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarOffer] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarOffee] = INVALID_PLAYER_ID;
				pTemp[playerid][pSellCarPrice] = 0;
				pTemp[playerid][pSellCarID] = 0;
				return 1;
			}
			new query[256];
			format(query,sizeof(query),"UPDATE `cars` SET `owner` = '%d' WHERE `id` = '%d'",pData[playerid][pMysqlID],pData[offerid][pCar]);
			sql_query(zConn, query, QUERY_THREADED);
			UpdatePlayerData(playerid,"car",pData[offerid][pCar]);
			UpdatePlayerData(offerid,"car",0);
			gCars[carID][carOwnerid] = pData[playerid][pMysqlID];
			pData[playerid][pCar] = pData[offerid][pCar];
			pData[offerid][pCar] = 0;
			foreach(new i:Player)
           	{
		    	if(pData[i][pVehicleKey] == pData[offerid][pCar])
		    	{
	        	    pData[i][pVehicleKey] = 0;
	            	UpdatePlayerData(i,"vehiclekey",0);
				}
			}
			new modelid = gCars[carID][carModelid];
   			new string[128], str[128];
			SendClientMessage(playerid, 0x66CC00FF,"Поздравляем с покупкой нового транспорта!");
			format(string, sizeof(string),"Вы продали транспортное средство {FF6600}%s{3399FF} за {00CC00}%d$", pData[playerid][pNickname], price);
			SendClientMessage(offerid,0x66CC00FF, string);
			format(str, sizeof(str), "~r~ -%d$",price);
			GameTextForPlayer(playerid,str,2000,1);
			format(str, sizeof(str), "~g~ +%d$",price);
			GameTextForPlayer(offerid,str,5000,1);
			TransferMoney(playerid,offerid,price,"sellcar");
			DestroyVehicle(gCars[carID][carVid]);
			new vehicleid = CreateVehicle(gTransport[modelid][trModel],gHouses[houseid][houseParkX],gHouses[houseid][houseParkY],gHouses[houseid][houseParkZ],gHouses[houseid][houseParkR],gCars[carID][carColor1],gCars[carID][carColor2],-1);
			gCars[carID][carVid] = vehicleid;
			if(gCars[carID][carHealth] < 300.0) gCars[carID][carHealth] = 300.0;
			SetVehicleHealthEx(vehicleid,gCars[carID][carHealth]);
			pTemp[offerid][pSellCarOffer] = INVALID_PLAYER_ID;
			pTemp[playerid][pSellCarOffer] = INVALID_PLAYER_ID;
			pTemp[playerid][pSellCarOffee] = INVALID_PLAYER_ID;
			pTemp[playerid][pSellCarPrice] = 0;
			pTemp[playerid][pSellCarID] = 0;
		}

 

Отредактировано пользователем edikzver
Причина: Дополнил

Поделиться сообщением


Ссылка на сообщение
  • 0

У тебя в таблице записывает цену транспорта ? если же да то скинь enum gCars и загрузку транспорта. 

Поделиться сообщением


Ссылка на сообщение
  • 0
5 минут назад, Покемон сказал:

У тебя в таблице записывает цену транспорта ? если же да то скинь enum gCars и загрузку транспорта. 

enum CAR_DATA
{
	carMysqlID,
	carOwnerid,
	carModelid,
	carPlate[12],
	Float:carFuel,
	Float:carDrived,
	Float:carHealth,
	carColor1,
	carColor2,
	carPaintJob,
	carTuning[14],
	carVid

}

Нет в таблице нет цены :|

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };