Если Вы нашли ответ на вопрос, пожалуйста, пометьте необходимый ответ лучшим (галочка сбоку от сообщения) и поблагодарите автора этого ответа поднятием репутации (плюс в нижней правой части сообщения). Спасибо.
Подробнее:
FAQ по форуму
Как пометить ответ лучшим

Вопросы

Помогите у меня почему то после рестарта проподает тюнинг на машинах

P.S какие надо скрипты не знаю, напишите скину

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


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

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

  • 0

Если не сохраняется тюнинг, вероянто, нет сохранения. 

Тюнинг идет в скрипте или в моде?

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


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

@Daniil Roslyakov Если тюнинг в моде, тогда на него нужно писать сохранение. Если тюнинг в скрипте, тогда найдите скрипт с уже написанным сохранением. 

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


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

@DEST 

stock SaveVehicleTuning(playerid)
{
	if(GetPlayerVehicleID(playerid) != PI[playerid][PlayerCarID][0] && GetPlayerVehicleID(playerid) != PI[playerid][PlayerCarID][1]) return SCM(playerid,COLOR_GREY,"Прозошла ошибка при сохранение тюнинга.");
	new slot;
	if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][0]) slot = 0;
	if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][1]) slot = 1;
	
	if(slot == 0)
	{
		cVehcoms1[playerid][0] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_SPOILER);
		cVehcoms1[playerid][1] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_HOOD);
		cVehcoms1[playerid][2] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_ROOF);
		cVehcoms1[playerid][3] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_SIDESKIRT);
		cVehcoms1[playerid][4] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_LAMPS);
		cVehcoms1[playerid][5] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_NITRO);
		cVehcoms1[playerid][6] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_EXHAUST);
		cVehcoms1[playerid][7] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_WHEELS);
		cVehcoms1[playerid][8] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_STEREO);
		cVehcoms1[playerid][9] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_HYDRAULICS);
		cVehcoms1[playerid][10] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_FRONT_BUMPER);
		cVehcoms1[playerid][11] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_REAR_BUMPER);
		cVehcoms1[playerid][12] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_VENT_RIGHT);
		cVehcoms1[playerid][13] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_VENT_LEFT);
		
		new string[128];
		f(string,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
		cVehcoms1[playerid][0], cVehcoms1[playerid][1], cVehcoms1[playerid][2],
		cVehcoms1[playerid][3], cVehcoms1[playerid][4], cVehcoms1[playerid][5],
		cVehcoms1[playerid][6], cVehcoms1[playerid][7], cVehcoms1[playerid][8],
		cVehcoms1[playerid][9], cVehcoms1[playerid][10], cVehcoms1[playerid][11],
		cVehcoms1[playerid][12], cVehcoms1[playerid][13]);
		settext(cVehcom1[playerid],string);
	}
	else
	{
	    cVehcoms2[playerid][0] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_SPOILER);
		cVehcoms2[playerid][1] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_HOOD);
		cVehcoms2[playerid][2] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_ROOF);
		cVehcoms2[playerid][3] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_SIDESKIRT);
		cVehcoms2[playerid][4] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_LAMPS);
		cVehcoms2[playerid][5] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_NITRO);
		cVehcoms2[playerid][6] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_EXHAUST);
		cVehcoms2[playerid][7] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_WHEELS);
		cVehcoms2[playerid][8] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_STEREO);
		cVehcoms2[playerid][9] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_HYDRAULICS);
		cVehcoms2[playerid][10] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_FRONT_BUMPER);
		cVehcoms2[playerid][11] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_REAR_BUMPER);
		cVehcoms2[playerid][12] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_VENT_RIGHT);
		cVehcoms2[playerid][13] = GetVehicleComponentInSlot(PI[playerid][PlayerCarID][slot], CARMODTYPE_VENT_LEFT);
		
        new string[128];
		f(string,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
		cVehcoms2[playerid][0], cVehcoms2[playerid][1], cVehcoms2[playerid][2],
		cVehcoms2[playerid][3], cVehcoms2[playerid][4], cVehcoms2[playerid][5],
		cVehcoms2[playerid][6], cVehcoms2[playerid][7], cVehcoms2[playerid][8],
		cVehcoms2[playerid][9], cVehcoms2[playerid][10], cVehcoms2[playerid][11],
		cVehcoms2[playerid][12], cVehcoms2[playerid][13]);
		settext(cVehcom2[playerid],string);
	}
	return 1;
}

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

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


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

Где этот сток вызывается?

 

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


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

@stibs 

		case D_CTO+5: // CTO
		{
			if(!response) return ShowSTODialog(playerid);
			new i = GetPVarInt(playerid,"CTObizzid");
			new till = BizzInfo[i][bTill];
			switch(listitem)
			{
			case 0:
				{
					if(GetMoney(playerid) < till*80) return SCM(playerid, COLOR_GREY, "Íåäîñòàòî÷íî ñðåäñòâ!"),ShowSTODialog(playerid);
					TransferMoney(playerid, -1, till*80);
					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += till*80;
						BizzInfo[i][bProduct] -= 80;
						BizzPay[i] += till*80;
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}
					SendMes(playerid,COLOR_GREEN,"Âû ïîñòàâèëè Nitro x2 çà %d ðóá", till*80);
					AddVehicleComponent(GetPlayerVehicleID(playerid),1009);
					SaveVehicleTuning(playerid);
				}
			case 1:
				{
					if(GetMoney(playerid) < till*150) return SCM(playerid, COLOR_GREY, "Íåäîñòàòî÷íî ñðåäñòâ!"),ShowSTODialog(playerid);
					TransferMoney(playerid, -1, till*150);
					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += till*150;
						BizzInfo[i][bProduct] -= 150;
						BizzPay[i] += till*150;
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}
					SendMes(playerid,COLOR_GREEN,"Âû ïîñòàâèëè Nitro x5 çà %d ðóá", till*150);
					AddVehicleComponent(GetPlayerVehicleID(playerid),1008);
					SaveVehicleTuning(playerid);
				}
			case 2:
				{
					if(GetMoney(playerid) < till*300) return SCM(playerid, COLOR_GREY, "Íåäîñòàòî÷íî ñðåäñòâ!"),ShowSTODialog(playerid);
					TransferMoney(playerid, -1, till*300);
					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += till*300;
						BizzInfo[i][bProduct] -= 300;
						BizzPay[i] += till*300;
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}
					SendMes(playerid,COLOR_GREEN,"Âû ïîñòàâèëè Nitro x10 çà %d ðóá", till*300);
					AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
					SaveVehicleTuning(playerid);
				}
			}
			ShowSTODialog(playerid);
		}


		case D_CTO+3: // CTO
		{
			if(!response) return ShowSTODialog(playerid);
			new i = GetPVarInt(playerid,"CTObizzid");
			new till = BizzInfo[i][bTill];
			if(GetVehicleComponentInSlot(GetPlayerVehicleID(playerid),CARMODTYPE_HYDRAULICS) != 1087)
			{
				if(GetMoney(playerid) < till*100) return SCM(playerid, COLOR_GREY, "Íåäîñòàòî÷íî ñðåäñòâ!"),ShowSTODialog(playerid);
				TransferMoney(playerid, -1, till*100);
				if(BizzInfo[i][bProduct] > 0)
				{
					BizzInfo[i][bMoney] += till*100;
					BizzInfo[i][bProduct] -= 100;
					BizzPay[i] += till*100;
					MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
					MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
				}
				SCM(playerid,COLOR_GREEN,"Âû ïîñòàâèëè ãèäðàâëèêó!");
				AddVehicleComponent(GetPlayerVehicleID(playerid),1087);
			}
			else
			{
				SCM(playerid,COLOR_RED,"Âû óäàëèëè ãèäðàâëèêó!");
				RemoveVehicleComponent(GetPlayerVehicleID(playerid),1087);
			}
			SaveVehicleTuning(playerid);
			ShowSTODialog(playerid);
		}



		case D_CTO+13:
		{
			new i = GetPVarInt(playerid,"CTObizzid");
			if(response)
			{
	            if(GetPlayerVehicleID(playerid) != PI[playerid][PlayerCarID][0] && GetPlayerVehicleID(playerid) != PI[playerid][PlayerCarID][1]) return SCM(playerid,COLOR_GREY,"Âû äîëæíû íàõîäèòüñÿ â ëè÷íîì àâòîìîáèëå.");
				new slot;
	            if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][0]) slot = 0;
	            if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][1]) slot = 1;
				TransferMoney(playerid, -1, GetPVarInt(playerid,"PriceCTO"));
				if(BizzInfo[i][bProduct] > 0)
				{
					BizzInfo[i][bMoney] += GetPVarInt(playerid,"PriceCTO");
					BizzInfo[i][bProduct] -= GetPVarInt(playerid,"ProductCTO");
					BizzPay[i] += GetPVarInt(playerid,"PriceCTO");
					MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
					MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
				}
				SendMes(playerid,COLOR_GREEN,"Âû îïëàòèëè %d ðóá çà ïîêðàñî÷íóþ ðàáîòó", GetPVarInt(playerid,"PriceCTO"));
				cPaintjob[playerid][slot] = GetPVarInt(playerid,"PaintjobCTO");
				SaveVehicleTuning(playerid);
				ShowSTODialog(playerid);
			}
			else
			{
			    if(GetPlayerVehicleID(playerid) != PI[playerid][PlayerCarID][0] && GetPlayerVehicleID(playerid) != PI[playerid][PlayerCarID][1]) return SCM(playerid,COLOR_GREY,"Âû äîëæíû íàõîäèòüñÿ â ëè÷íîì àâòîìîáèëå.");
			    new slot;
	            if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][0]) slot = 0;
	            if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][1]) slot = 1;
				if(cPaintjob[playerid][slot] != 3) ChangeVehiclePaintjob(GetPlayerVehicleID(playerid),cPaintjob[playerid][slot]);
				else
				{
					ChangeVehiclePaintjob(GetPlayerVehicleID(playerid),3);
					ChangeVehicleColor(GetPlayerVehicleID(playerid), cColor0[playerid][slot], cColor1[playerid][slot]);
				}
				SCM(playerid,COLOR_RED,"Âû îòìåíèëè ïîêóïêó");
				SaveVehicleTuning(playerid);
				ShowSTODialog(playerid);
			}
		}
                      
                      
                      
		case D_CTO+12: // CTO
		{
			new i = GetPVarInt(playerid,"CTObizzid");
			if(response)
			{
				TransferMoney(playerid, -1, GetPVarInt(playerid,"PriceCTO"));
				if(BizzInfo[i][bProduct] > 0)
				{
					BizzInfo[i][bMoney] += GetPVarInt(playerid,"PriceCTO");
					BizzInfo[i][bProduct] -= GetPVarInt(playerid,"ProductCTO");
					BizzPay[i] += GetPVarInt(playerid,"PriceCTO");
					MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
					MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
				}
				ShowSTODialog(playerid);
				SaveVehicleTuning(playerid);
				SCM(playerid,COLOR_GREEN,"Âû êóïèëè ýòó çàï÷àñòü");
			}
			else
			{
				if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][0] || GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][1])
				{
					new slot;
		            if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][0]) slot = 0;
		            if(GetPlayerVehicleID(playerid) == PI[playerid][PlayerCarID][1]) slot = 1;
					ShowSTODialog(playerid);
					SCM(playerid, COLOR_RED, "Âû îòìåíèëè ïîêóïêó");
					RemoveVehicleComponent(GetPlayerVehicleID(playerid), GetPVarInt(playerid,"ComponentCTO"));
					if(slot == 0) { for(new s; s < 14; s++) if(cVehcoms1[playerid][s] != 0) AddVehicleComponent(GetPlayerVehicleID(playerid), cVehcoms1[playerid][s]); }
					else { for(new s; s < 14; s++) if(cVehcoms2[playerid][s] != 0) AddVehicleComponent(GetPlayerVehicleID(playerid), cVehcoms2[playerid][s]); }
				}
			}
		}

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

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


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

@stibs 

CREATE TABLE IF NOT EXISTS `vehicle` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `model` int(11) NOT NULL DEFAULT '0',
  `x` varchar(10) NOT NULL DEFAULT '0',
  `y` varchar(10) NOT NULL DEFAULT '0',
  `z` varchar(10) NOT NULL DEFAULT '0',
  `fa` varchar(10) NOT NULL DEFAULT '0',
  `vint` int(11) NOT NULL DEFAULT '0',
  `world` int(11) NOT NULL,
  `colors` varchar(10) NOT NULL DEFAULT '0, 0',
  `fraction` int(11) NOT NULL DEFAULT '0',
  `status` int(11) NOT NULL DEFAULT '0',
  `cost` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=136 ;

 

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


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

@stibs 

Цитата

 Да, потом писать загрузку и выдачу тюнинга. 


Кто нибудь из вас пишет такие скрипты и т.д? (Возможно и за деньги соглашусь)

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


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

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

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

    • angel_sinvays
      От angel_sinvays


      Скачать файл Florida Role Play | (Бонусный)
      Список доработок/изменений:

      1. Исправлены дыры с рублями, падением мода
      2. Новый античит(/ac)
      3. Аренда вертолетов (/gps - аренда транспорта - аренда вертолетов)
      4. Добавлена система /goadminka (раздача админки при определённом онлайне)
      5. Обновленны интерьеры банд, СМИ, ПД, выбор скина, домов, магазинов
      6. Изменён экстерьер парка у мэрии, на против больницы
      7. Изменен текстдрав Логотипа, выбор скина, спидометра, дм арены, капта
      8. Вместо мопедов сделаны пикапы аренды
      9. Добавлена система VIP (Бронза, Серебро, Золото и Верона)
      10. Изменена система семей
      11. Добавлен чат для випов (/vc)
      12. При попытки проследить за ботом, перекидывает за игрока
      13. Добавлено казино, в котром можно играть на донат и рубли
      14. Добавлена система дуэлей
      15. Добавлены команды: /security, /checkfull и /fonline
      16. Изменён бот для авто-инвайта
      17. Изменена система дм зон (отличается от дуэлей)
      18. Доработана система статистики администратора, добавлено время администрирования в /admins
      19. Добавлен премиум меню для Verona PREMIUM
      20. Добавлены карты для /tp - Мероприятия
      21. Добавлена статистика лидера, изменена /lmenu
      22. Добавлена покупка аксессуаров в /donate
      23. Добавлена команда /obj
      24. Перераспределил команды для админов
      25. При наличии 1000 рублей или большой суммы виртов у игрока появляется кейс
      26. Исправлены баги со спавном банд
      27. Исправлены баги с падением под текстуры
      28. Исправлен баг с виртуальными мирами
      29. Добавлен NPC авто-инвайт на спавн
      30. Добавлен NPC проведения дуэлей
      31. Исправлена команда /banip
      32. Изменена и доделана система от сливов
      33. Возможность добавить своих ботов (+ уже встроены в мод)
      34. Доработана система мероприятий
      35. Переработана система доната (/donaterub and /donate)
      36. Обновлены плагины, почищена БД
      37. Новые артефакты
      38. Новый спавн
      39. Новая аренда
      40. Автоинвайт в мэрии
       
      UPD: Понизил ценник на мод
      Добавил angel_sinvays Добавлено 14.02.2022 Категория Моды Автор Angel Sinvays  
    • angel_sinvays
      От angel_sinvays
      Список доработок/изменений:

      1. Исправлены дыры с рублями, падением мода
      2. Новый античит(/ac)
      3. Аренда вертолетов (/gps - аренда транспорта - аренда вертолетов)
      4. Добавлена система /goadminka (раздача админки при определённом онлайне)
      5. Обновленны интерьеры банд, СМИ, ПД, выбор скина, домов, магазинов
      6. Изменён экстерьер парка у мэрии, на против больницы
      7. Изменен текстдрав Логотипа, выбор скина, спидометра, дм арены, капта
      8. Вместо мопедов сделаны пикапы аренды
      9. Добавлена система VIP (Бронза, Серебро, Золото и Верона)
      10. Изменена система семей
      11. Добавлен чат для випов (/vc)
      12. При попытки проследить за ботом, перекидывает за игрока
      13. Добавлено казино, в котром можно играть на донат и рубли
      14. Добавлена система дуэлей
      15. Добавлены команды: /security, /checkfull и /fonline
      16. Изменён бот для авто-инвайта
      17. Изменена система дм зон (отличается от дуэлей)
      18. Доработана система статистики администратора, добавлено время администрирования в /admins
      19. Добавлен премиум меню для Verona PREMIUM
      20. Добавлены карты для /tp - Мероприятия
      21. Добавлена статистика лидера, изменена /lmenu
      22. Добавлена покупка аксессуаров в /donate
      23. Добавлена команда /obj
      24. Перераспределил команды для админов
      25. При наличии 1000 рублей или большой суммы виртов у игрока появляется кейс
      26. Исправлены баги со спавном банд
      27. Исправлены баги с падением под текстуры
      28. Исправлен баг с виртуальными мирами
      29. Добавлен NPC авто-инвайт на спавн
      30. Добавлен NPC проведения дуэлей
      31. Исправлена команда /banip
      32. Изменена и доделана система от сливов
      33. Возможность добавить своих ботов (+ уже встроены в мод)
      34. Доработана система мероприятий
      35. Переработана система доната (/donaterub and /donate)
      36. Обновлены плагины, почищена БД
      37. Новые артефакты
      38. Новый спавн
      39. Новая аренда
      40. Автоинвайт в мэрии
       
      UPD: Понизил ценник на мод
    • angel_sinvays
      От angel_sinvays
      Attractive RP
      Скачать файл Давно не было сливов , сейчас я вам готов продемонстрировать копию проекта Attractive RolePlay
      Изначально слив был выложен на моём канале, но после я хочу выложить его сюда.
      Добавил angel_sinvays Добавлено 01.05.2024 Категория Моды Автор Angel Sinvays  
    • KAIF
      От KAIF
      !!!!!ВСЕГО ОДНА КОПИЯ!!!! 
      Единственный мод GTA RP.
       
      Фракции:
      Правительство
      ГИБДД
      Полиция Южного
      ФСБ
      ЦГБ-А
      Автошкола
      Китайская мафия
      Русская Мафия
      Итальянская Мафия
      Американская Мафия
      Чеченская Мафия
      ВВС
      МЧС
      ОПГ Тяп-Ляп
      ОПГ Хади-Такташ
      СМИ Южного
      ФСИН
      В комплекте идёт СБОРКА И МОД.
      Также после покупки вы отправляете мне свой айпи сервера и я привязываю вам сборку под ваш айпи (единоразово) 
      Единственный мод GTA RP.
    • Demon7
      От Demon7
      Как исправить эту ошибку? Попытался залить на мод данный код и при компиляции происходит данная ошибка. Эта ошибка находится на строчке if(GetPlayerData(targetid, "friend_request") == playerid)
      CMD:frien(playerid, params[]) {     new targetid = strval(params);     if(!IsPlayerConnected(targetid))     {         SendClientMessage(playerid, COLOR_RED, "Целевой игрок не подключен к серверу.");         return 0;     }     if(targetid == playerid)     {         SendClientMessage(playerid, COLOR_RED, "Вы не можете предложить себе подружиться.");         return 0;     }     if(IsPlayerInRangeOfPlayer(playerid, targetid, 2.0))     {         if(GetPlayerData(targetid, "friend_request") == playerid)         {             SendClientMessage(playerid, COLOR_RED, "У вас уже есть ожидающий запрос на дружбу от этого игрока.");             return 0;         }         SendClientMessage(playerid, COLOR_YELLOW, "Вы предложили игроку подружиться. Ожидайте ответа...");         SendClientMessage(targetid, COLOR_YELLOW, "Игрок предлагает вам подружиться. Используйте /accept или /reject.");         SetPlayerData(playerid, "friend_request", targetid);         SetPlayerData(targetid, "friend_request", playerid);     }     else     {         SendClientMessage(playerid, COLOR_RED, "Игрок находится слишком далеко.");     }     return 1; }