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

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

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

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

Система личного транспорта.

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

Nich[OLA]seN

Ученик
Система покупки личного транспорта с сохранением тюнинга Car System.
Это не [FS].
Начнем)
PHP:
//=============================[Система личного транспорта]=====================
    if(strcmp(cmd, "/vbuy", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			new buycar;
			GetPlayerName(playerid, playername, sizeof(playername));
			buycar = GetPlayerVehicleID(playerid);
			if(Player[playerid][pCarkey1] != 0)
			{
				SendClientMessage(playerid,COLOR_GREY," У вас уже есть личный транспорт!");
				OnPlayerCommandText(playerid,"/exit");
				return 1;
			}
			if(!IsAOwnableVehicle(buycar))
			{
				SendClientMessage(playerid,COLOR_GREY," Эту машину нельзя купить!");
				OnPlayerCommandText(playerid,"/exit");
				return 1;
			}
			if(!strcmp(OwnableCar[buycar-SIMPLECARS-1][ocOwner],"The State",true))
			{
				if(GetPlayerMoney(playerid) < OwnableCar[buycar-SIMPLECARS-1][ocCost])
				{
				    SendClientMessage(playerid, COLOR_GREY, "У вас нет денег на это транспортное средство.");
					OnPlayerCommandText(playerid,"/exit");
					return 1;
				}
				strmid(OwnableCar[buycar-SIMPLECARS-1][ocOwner], playername, 0, strlen(playername), 999);
				SendClientMessage(playerid, COLOR_WHITE, " Поздравляю! Теперь этот транспорт принадлежит тебе!");
	   			ServerGivePlayerMoney(playerid,-OwnableCar[buycar-SIMPLECARS-1][ocCost]);
				Player[playerid][pCarkey1] = buycar-SIMPLECARS;
				OwnableCar[buycar-SIMPLECARS-1][ocLock] = 1;
				for(new i=0; i < MAX_PLAYERS; i++)
		        {
			        SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,0,1);
		        }
				SaveOwnableCars();
				OnPlayerSave(playerid);
      			TogglePlayerControllable(playerid,1);
 				format(string, sizeof(string), "[Владелец: %s]",OwnableCar[buycar-SIMPLECARS-1][ocOwner]);
				Update3DTextLabelText(vehicle3Dtext[buycar-SIMPLECARS-1], 0xFFA500AA,string);
				return 1;
			}
		}
		return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/vsell", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
		{
			new carid = GetPlayerVehicleID(playerid);
			GetPlayerName(playerid, playername, sizeof(playername));
			if(Player[playerid][pCarkey1] == 0) return SendClientMessage(playerid, COLOR_GREY, "У тебя нет личного транспорта.");
			if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Ты должен находиться в личном транспорте!");
			if(strcmp(playername, OwnableCar[carid-SIMPLECARS-1][ocOwner], true) == 0)
			{
      			strmid(OwnableCar[carid-SIMPLECARS-1][ocOwner], "The State", 0, strlen("The State"), 999);
				OwnableCar[carid-SIMPLECARS-1][ocPARKCar_x] = OwnableCar[carid-SIMPLECARS-1][ocSTCar_x];
    			OwnableCar[carid-SIMPLECARS-1][ocPARKCar_y] = OwnableCar[carid-SIMPLECARS-1][ocSTCar_y];
    			OwnableCar[carid-SIMPLECARS-1][ocPARKCar_z] = OwnableCar[carid-SIMPLECARS-1][ocSTCar_z];
    			OwnableCar[carid-SIMPLECARS-1][ocPARKCar_a] = OwnableCar[carid-SIMPLECARS-1][ocSTCar_a];
    			OwnableCar[carid-SIMPLECARS-1][ocColor1] = -1;
				OwnableCar[carid-SIMPLECARS-1][ocColor2] = -1;
				OwnableCar[carid-SIMPLECARS-1][ocLock] = 0;
				OwnableCar[carid-SIMPLECARS-1][ocSpoiler] = 0;
		 		OwnableCar[carid-SIMPLECARS-1][ocHood] = 0;
		  		OwnableCar[carid-SIMPLECARS-1][ocSideskirt] = 0;
		   		OwnableCar[carid-SIMPLECARS-1][ocNitro] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocLamps] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocExhaust] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocWheels] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocRoof] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocStereo] = 0;
		      	OwnableCar[carid-SIMPLECARS-1][ocHydraulics] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocBullbar] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocRearBullbars] = 0;
		     	OwnableCar[carid-SIMPLECARS-1][ocFrontSign] = 0;
		    	OwnableCar[carid-SIMPLECARS-1][ocFrontBullbars] = 0;
				OwnableCar[carid-SIMPLECARS-1][ocFrontBumper] = 0;
				OwnableCar[carid-SIMPLECARS-1][ocRearBumper] = 0;
				OwnableCar[carid-SIMPLECARS-1][ocVents] = 0;
		  		OwnableCar[carid-SIMPLECARS-1][ocPaintJob] = -1;
				ServerGivePlayerMoney(playerid,OwnableCar[carid-SIMPLECARS-1][ocCost]*3/4);
				format(string, sizeof(string), "~w~B‘ ЊPOѓA‡… CBOE ЏC €A ~n~~g~$%d", OwnableCar[carid-SIMPLECARS-1][ocCost]*3/4);
				GameTextForPlayer(playerid, string, 10000, 3);
				Player[playerid][pCarkey1] = 0;
				SaveOwnableCars();
				format(string, sizeof(string), "Транспорт продаётся\n[Модель: %s]\n[Цена: %d$]",VehiclesName[GetVehicleModel(carid)-400], OwnableCar[carid-SIMPLECARS-1][ocCost]);
				Update3DTextLabelText(vehicle3Dtext[carid-SIMPLECARS-1], 0xFFA500AA,string);
				SetVehicleToRespawn(carid);
				return 1;
			}
			else
			{
				SendClientMessage(playerid, COLOR_GREY, "Ты не можешь продать чужую машину!");
			}

		}
		return 1;
	}
//------------------------------------------------------------------------------
    /*if(strcmp(cmd, "/sellmycarto", true) == 0)//Продать другому игроку
	{
	    if(IsPlayerConnected(playerid))
	    {
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GREY, " ИНФО: /sellmycarto [IDигрока] [сумма] ");
				return 1;
			}
			new playa;
			new price;
			new car = -1;
			playa = ReturnUser(tmp);
			if(!IsPlayerConnected(playa))
			{
			    SendClientMessage(playerid,COLOR_GREY," Неверный ID игрока");
			    return 1;
			}
            if(!ProxDetectorS(playerid, 5.0, playa))
            {
                SendClientMessage(playerid,COLOR_GREY," Вы слишком далеко друг от друга!");
				return 1;
            }
			tmp = strtok(cmdtext, idx);
			price = strval(tmp);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GREY, " ИНФО: /sellmycarto [IDигрока] [сумма]  ");
 				return 1;
			}
			if(price < 1)
			{
			    SendClientMessage(playerid,COLOR_GREY," Цена не меньше $1 !");
			    return 1;
			}
			GetPlayerName(playerid,sendername,sizeof(sendername));
			for(new tachki = 1; tachki < MAX_VEHICLES; tachki ++)
			{
			    if(!strcmp(OwnableCar[tachki-1][cOwner],sendername,true))
			    {
					new Float:x,Float:y,Float:z;
					GetVehiclePos(tachki,x,y,z);
			        if(IsPlayerInRangeOfPoint(playerid,10,x,y,z))
			        {
			            car = tachki-1;
			        }
			    }
			}
			if(car == -1)
			{
			    SendClientMessage(playerid,COLOR_GREY," Ты должен быть возле своего автомобиля!");
			    return 1;
			}
			MyCarID[playa] = car;
			MyCarOffer[playa] = playerid;
			MyCarMoney[playa] = price;
			GetPlayerName(playerid,sendername,sizeof(sendername));
			GetPlayerName(playa,giveplayer,sizeof(sendername));
			format(string,sizeof(string)," Ты предлагаешь %s купить у тебя машину за $%d",giveplayer,price);
  			SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
  			format(string,sizeof(string)," %s предлагает тебе купить у него машину за $%d",sendername,price);
  			SendClientMessage(playa,COLOR_LIGHTBLUE,string);
  			SendClientMessage(playa,COLOR_LIGHTBLUE," Используй /accept mycar , чтобы согласиться");
		}
		return 1;
	}*/
 //-----------------------------------------------------------------------------
    if(strcmp(cmd, "/vpark", true) == 0)
	{
		if(IsPlayerConnected(playerid))
 		{
			new Float:x,Float:y,Float:z;
			new Float:a;
  			GetPlayerName(playerid, playername, sizeof(playername));
			if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не в транспортном средстве.");
			new carid = GetPlayerVehicleID(playerid) ;
			GetVehiclePos(carid,x, y, z);
			GetVehicleZAngle(carid, a);
			if(!strcmp(playername, OwnableCar[carid-1-SIMPLECARS][ocOwner], true))
			{
				OwnableCar[carid-1-SIMPLECARS][ocPARKCar_x] = x;
				OwnableCar[carid-1-SIMPLECARS][ocPARKCar_y] = y;
				OwnableCar[carid-1-SIMPLECARS][ocPARKCar_z] = z;
				OwnableCar[carid-1-SIMPLECARS][ocPARKCar_a] = a;
				GameTextForPlayer(playerid, "~/n~ ~/n~ ~/n~ ~/n~ ~/n~ ~/n~ЏEЊEP’ ЏBO† ЏPAмCЊOPЏ ЂYѓEЏ CЏO•Џ’ €ѓEC’", 5000, 3);
				//OnPropUpdate();
				//SavePlayer(playerid);
				SaveOwnableCars();
				//LoadOwnableCars();
				return 1;
			}
			else
			{
			    SendClientMessage(playerid, COLOR_GREY, "Вы не можете припарковать это транспортное средство!");
   			}
		}
		return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/vcolor", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			if(!IsAOwnableVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid,COLOR_GREY," Ты должен быть в своем авто!");
			new carid = GetPlayerVehicleID(playerid);
			GetPlayerName(playerid,sendername,sizeof(sendername));
 			if(Player[playerid][pCarkey1] == carid-SIMPLECARS) //return
			{
				if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid,COLOR_GREY," Тебе нужно $2000 для этого!");
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_WHITE," ИНФО: /vcolor [1-300] [1-300] ");
				new para1;
				new para2;
				para1 = strval(tmp);
				tmp = strtok(cmdtext, idx);
				para2 = strval(tmp);
				ChangeVehicleColor(carid,para1,para2);
				OwnableCar[carid-SIMPLECARS-1][ocColor1] = para1;
				OwnableCar[carid-SIMPLECARS-1][ocColor2] = para2;
				SaveOwnableCars();
				ServerGivePlayerMoney(playerid,-2000);
				SendClientMessage(playerid,COLOR_WHITE," Ты заплатил за перекраску автомобиля 2000$!");
			}
			else SendClientMessage(playerid,COLOR_GREY," Ты не можешь перекрасить чужой транспорт!");
		}
		return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/vcar", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(Player[playerid][pCarkey1] == 0)return SendClientMessage(playerid,COLOR_GREY," У тебя нет личного транспорта.");
	        if(Player[playerid][pGPS] < 1) return SendClientMessage(playerid,COLOR_GREY,"У тебя нет GPS.");
			GetPlayerName(playerid,sendername,sizeof(sendername));
			new Float:x,Float:y,Float:z;
			GetVehiclePos(Player[playerid][pCarkey1]+SIMPLECARS,x,y,z);
			SetCheckpoint(playerid,x,y,z);
			SendClientMessage(playerid,COLOR_WHITE,"Местоположение транспорта указано на карте!");
 		}
		return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/vtopark", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(GetPlayerMoney(playerid) < 1500)return SendClientMessage(playerid,COLOR_GREY," Тебе нужно $1500 для этого!");
			SetVehicleToRespawn(Player[playerid][pCarkey1]+SIMPLECARS);
			ServerGivePlayerMoney(playerid,-1500);
			SendClientMessage(playerid,COLOR_GREY," Личный транспорт доставлен на место парковки!");
			return 1;
 		}
		return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/vfix", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(IsAOwnableVehicle(GetPlayerVehicleID(playerid)))
			{
			    if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid,COLOR_GREY," Тебе нужно $2000 для этого!");
			    SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
			    RepairVehicle(GetPlayerVehicleID(playerid));
			    SendClientMessage(playerid, COLOR_WHITE, " Ты заплатил за починку автомобиля 2000$!");
			}
			return 1;
		}
		return 1;
	}
//------------------------------------------------------------------------------
Просто впишите это в мод,управление вызывается на кнопку "2" или "+" или прописать /v.
Команды:
/addveh - добавить транспорт (Только для Rcon администраторов)
/v buy - купить транспорт
/v sell - продать транспорт
/v sellto - продать транспорт игроку
/v buyto - купить транспорт у игрока
/v park - припарковать купленное авто
/v car - местоположение транспорта
/v fix - починка транспорта
/v color - покраска транспорта
/v topark - эвакуация к месту парковки
/v lock - открыть/закрыть авто

Автор мода:denizx
Но он просто выложил FS + без pwn.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу