• 0
Sign in to follow this  
Followers 0
Bunkertm

РП НОМЕРА

Question

Вообщем такой вопрос как переделать номера из 3д текста над машиной на стандартную рамку са сам мучился с кодами не получаться , знаний не хватает

Спойлер

if(strcmp(cmd, "/regcar", true) == 0)
{
	if(IsPlayerConnected(playerid))
	{
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, RED, "Используйте: /regcar [id игрока/часть ника]");
			return 1;
		}
		playa = ReturnUser(tmp);
		if(HeroInfo[playerid][pFraction] > 0 && FractionInfo[HeroInfo[playerid][pFraction]][fType] == 5)
		{
			if(HeroInfo[playerid][pRank] < 3)
			{
				SendClientMessage(playerid, RED, "Ваш ранг слишком мал (необходим 3й)");
				return 1;
			}
			if(IsPlayerConnected(playa))
			{
				if(playa != INVALID_PLAYER_ID)
				{
					if(!ProxDetectorS(5.0, playerid, playa))
					{
						SendClientMessage(playerid, RED, "Игрок далеко от вас");
						return 1;
					}
					// !Тачки /RegCar
					if(GetPlayerState(playa) == PLAYER_STATE_DRIVER)
					{
						new numbd[3];
						new nums;
						new numbsText[64][3];
						GetPlayerName(playa, giveplayer, sizeof(giveplayer));
						if(strcmp(giveplayer, CarInfo[GetPlayerVehicleID(playa)][cOwner]) == 0)
						{
							for(new nv = 0; nv < 3; nv++)
							{
								numbd[nv] = random(10);
							}
							for(new nt = 0; nt < 3; nt++)
							{
								nums = random(11);
								if(nums == 0)
									strmid(numbsText[nt], "А", 0, strlen("А"), 255);
								if(nums == 1)
									strmid(numbsText[nt], "В", 0, strlen("В"), 255);
								if(nums == 2)
									strmid(numbsText[nt], "Е", 0, strlen("Е"), 255);
								if(nums == 3)
									strmid(numbsText[nt], "К", 0, strlen("К"), 255);
								if(nums == 4)
									strmid(numbsText[nt], "М", 0, strlen("М"), 255);
								if(nums == 5)
									strmid(numbsText[nt], "Н", 0, strlen("Н"), 255);
								if(nums == 6)
									strmid(numbsText[nt], "О", 0, strlen("О"), 255);
								if(nums == 7)
									strmid(numbsText[nt], "Р", 0, strlen("Р"), 255);
								if(nums == 8)
									strmid(numbsText[nt], "С", 0, strlen("С"), 255);
								if(nums == 9)
									strmid(numbsText[nt], "Т", 0, strlen("Т"), 255);
								if(nums == 10)
									strmid(numbsText[nt], "У", 0, strlen("У"), 255);
								if(nums == 11)
									strmid(numbsText[nt], "Х", 0, strlen("Х"), 255);
							}
						}
						else
						{
							SendClientMessage(playerid, RED, "Это не его авто!");
							return 1;
						}
						
						format(string, sizeof(string), "%s %d%d%d %s%s", numbsText[0], numbd[0], numbd[1], numbd[2], numbsText[1], numbsText[2]);
						SendClientMessage(playerid, GREEN, "Вы выдали номерой знак");
						SendClientMessage(playa, GREEN, "Вам выдали номерой знак");
						strmid(CarInfo[GetPlayerVehicleID(playa)][cNumbercar], string, 0, strlen(string), 255);
						format(string, sizeof(string), "%s\nВладелец: %s", CarInfo[GetPlayerVehicleID(playa)][cNumbercar], CarInfo[GetPlayerVehicleID(playa)][cOwner]);
						Update3DTextLabelText(vehicle3Dtext[GetPlayerVehicleID(playa)], WHITE, string);
						SaveVeh(GetPlayerVehicleID(playa));
					}
				}
			}
			else
			{
				SendClientMessage(playerid, RED, "*Нет прав на использование команды! ");
			}
		}	
	}
	return 1;
}

 

 

Edited by odosenok
Причина: Заключил код в тег "Код".

Share this post


Link to post

10 answers to this question

  • 0

@Bunkertm,

Спойлер

if(strcmp(cmd, "/regcar", true) == 0)
{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, RED, "Используйте: /regcar [id игрока/часть ника]");
		return 1;
	}
	playa = ReturnUser(tmp);
	if(HeroInfo[playerid][pFraction] > 0 && FractionInfo[HeroInfo[playerid][pFraction]][fType] == 5)
	{
		if(HeroInfo[playerid][pRank] < 3)
		{
			SendClientMessage(playerid, RED, "Ваш ранг слишком мал (необходим 3й)");
			return 1;
		}
		if(IsPlayerConnected(playa))
		{
			if(playa != INVALID_PLAYER_ID)
			{
				if(!ProxDetectorS(5.0, playerid, playa))
				{
					SendClientMessage(playerid, RED, "Игрок далеко от вас");
					return 1;
				}
				// !Тачки /RegCar
				if(GetPlayerState(playa) == PLAYER_STATE_DRIVER)
				{
					new numbd[3];
					new nums;
					new numbsText[64][3];
					new vehicleid = GetPlayerVehicleID(playa);
					GetPlayerName(playa, giveplayer, sizeof(giveplayer));
					if(strcmp(giveplayer, CarInfo[vehicleid][cOwner]) == 0)
					{
						for(new nv = 0; nv < 3; nv++)
						{
							numbd[nv] = random(10);
						}
						for(new nt = 0; nt < 3; nt++)
						{
							nums = random(11);
							if(nums == 0)
								strmid(numbsText[nt], "А", 0, strlen("А"), 255);
							if(nums == 1)
								strmid(numbsText[nt], "В", 0, strlen("В"), 255);
							if(nums == 2)
								strmid(numbsText[nt], "Е", 0, strlen("Е"), 255);
							if(nums == 3)
								strmid(numbsText[nt], "К", 0, strlen("К"), 255);
							if(nums == 4)
								strmid(numbsText[nt], "М", 0, strlen("М"), 255);
							if(nums == 5)
								strmid(numbsText[nt], "Н", 0, strlen("Н"), 255);
							if(nums == 6)
								strmid(numbsText[nt], "О", 0, strlen("О"), 255);
							if(nums == 7)
								strmid(numbsText[nt], "Р", 0, strlen("Р"), 255);
							if(nums == 8)
								strmid(numbsText[nt], "С", 0, strlen("С"), 255);
							if(nums == 9)
								strmid(numbsText[nt], "Т", 0, strlen("Т"), 255);
							if(nums == 10)
								strmid(numbsText[nt], "У", 0, strlen("У"), 255);
							if(nums == 11)
								strmid(numbsText[nt], "Х", 0, strlen("Х"), 255);
						}
					}
					else
					{
						SendClientMessage(playerid, RED, "Это не его авто!");
						return 1;
					}
					
					format(CarInfo[vehicleid][cNumbercar], 32, "%s %d%d%d %s%s", numbsText[0], numbd[0], numbd[1], numbd[2], numbsText[1], numbsText[2]); // отформатируем номер
					SetVehicleNumberPlate(vehicleid, string); // установим номер на рамку
					
					new Float:x, Float:y, Float:z, Float:a; // объявим переменные для хранения позиции транспорта
					GetVehiclePos(vehicleid, x, y, z); // получаем позицию транспорта и записываем ее в переменную
					GetVehicleZAngle(vehicleid, a); // получаем угол поворота транспорта
					SetVehicleToRespawn(vehicleid); // отправляем транспорт на пересоздание
					SetVehiclePos(vehicleid, x, y, z); // изменяем позицию транспорта на ту, что была
					SetVehicleZAngle(vehicleid, a); // изменим угол поворота транспорта на тот, что был
					
					SendClientMessage(playerid, GREEN, "Вы выдали номерой знак");
					SendClientMessage(playa, GREEN, "Вам выдали номерой знак");
					
					format(string, sizeof(string), "Владелец: %s", CarInfo[vehicleid][cOwner]);
					Update3DTextLabelText(vehicle3Dtext[vehicleid], WHITE, string);
					SaveVeh(vehicleid);
				}
			}
		}
		else
		{
			SendClientMessage(playerid, RED, "*Нет прав на использование команды! ");
		}
	}
	return 1;
}

 

 

Спойлер

for(new veh = 1; veh < sizeof(CarInfo); veh++)
{
	LoadVeh(veh);
	CreateVehicle(CarInfo[veh][cModel], CarInfo[veh][cPosx], CarInfo[veh][cPosy], CarInfo[veh][cPosz], CarInfo[veh][cPosa], CarInfo[veh][cColor1], CarInfo[veh][cColor1], 600000);
	SetVehicleNumberPlate(veh, CarInfo[veh][cNumbercar]);
	format(string, sizeof(string), "Владелец: %s", CarInfo[veh][cOwner]);
	vehicle3Dtext[veh] = Create3DTextLabel(string, WHITE, 0.0, 0.0, 0.0, 30.0, 0, 1);
	Attach3DTextLabelToVehicle(vehicle3Dtext[veh], veh, 0.0, 0.0, 0.5);
	GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
	SetVehicleParamsEx(veh,0,0,0,1,0,0,0);
	//format(string, sizeof(string), "%d || Mod: %d || Num: %s || Owner: %s || VW: %d", veh, CarInfo[veh][cModel], CarInfo[veh][cNumbercar], CarInfo[veh][cOwner], CarInfo[veh][cVW]);
	//print(string);
	if(CarInfo[veh][cRent] > 0)
	{
		strmid(CarInfo[veh][cOwner], "Нет", 0, strlen("Нет"), 255);
		CarInfo[veh][cRent] = 0;
		CarInfo[veh][cMusic] = 0;
		CarInfo[veh][cVW] = 1;
		CarInfo[veh][cPosx] = 0.0;
		CarInfo[veh][cPosy] = 0.0;
		CarInfo[veh][cPosz] = 0.0;
		SetVehiclePos(veh, CarInfo[veh][cPosx], CarInfo[veh][cPosy], CarInfo[veh][cPosz]);
	}
	SetVehicleVirtualWorld(veh, CarInfo[veh][cVW]);
	if(CarInfo[veh][cFraction] > 0)
	{
		format(string, sizeof(string), "Фракция: %s\n%s\nВладелец: %s", FractionInfo[CarInfo[veh][cFraction]][fName], CarInfo[veh][cNumbercar], CarInfo[veh][cOwner]);
		Update3DTextLabelText(vehicle3Dtext[veh], WHITE, string);
	}
	/*if(CarInfo[veh][cVW] == 0)
	{
		SetVehicleVirtualWorld(veh, 0);
	}
	if(CarInfo[veh][cVW] > 0)
	{
		SetVehicleVirtualWorld(veh, 1);
	}*/
}

 

 

Share this post


Link to post
  • 0

@Bunkertm, я напишу, как это сделать, только дайте код загрузки транспорта (там тоже нужно поправить). И да, вы же в курсе, что большинство транспорта в CR не поддерживает эти номерные таблички? Придется либо использовать определенные модели транспорта (если мне не изменяет память их около 30), либо же делать пакет модификаций, который бы содержал эти правильные номерные таблички. 

Share this post


Link to post
  • 0

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Модификации (мод-пак) > Скриптинг PAWN > Вопросы / проблемы"

Перемещена в: "Скриптинг PAWN > Вопросы / проблемы по скриптингу"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Скриптинг PAWN > Вопросы / проблемы по скриптингу", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

Share this post


Link to post
  • 0
В 19.03.2019 в 10:22, odosenok сказал:

@Bunkertm, я напишу, как это сделать, только дайте код загрузки транспорта (там тоже нужно поправить). И да, вы же в курсе, что большинство транспорта в CR не поддерживает эти номерные таблички? Придется либо использовать определенные модели транспорта (если мне не изменяет память их около 30), либо же делать пакет модификаций, который бы содержал эти правильные номерные таблички. 

хорошо спасибо вот вроде загрузка   , да про крмп я в курсе у меня своя карта и на модели я повешу эти таблички сам

 

Спойлер

for(new veh = 1; veh < sizeof(CarInfo); veh++)
{
	LoadVeh(veh);
	CreateVehicle(CarInfo[veh][cModel], CarInfo[veh][cPosx], CarInfo[veh][cPosy], CarInfo[veh][cPosz], CarInfo[veh][cPosa], CarInfo[veh][cColor1], CarInfo[veh][cColor1], 600000);
	format(string, sizeof(string), "%s\nВладелец: %s", CarInfo[veh][cNumbercar], CarInfo[veh][cOwner]);
	vehicle3Dtext[veh] = Create3DTextLabel(string, WHITE, 0.0, 0.0, 0.0, 30.0, 0, 1);
	Attach3DTextLabelToVehicle(vehicle3Dtext[veh], veh, 0.0, 0.0, 0.5);
	GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
	SetVehicleParamsEx(veh,0,0,0,1,0,0,0);
	//format(string, sizeof(string), "%d || Mod: %d || Num: %s || Owner: %s || VW: %d", veh, CarInfo[veh][cModel], CarInfo[veh][cNumbercar], CarInfo[veh][cOwner], CarInfo[veh][cVW]);
	//print(string);
	if(CarInfo[veh][cRent] > 0)
	{
		strmid(CarInfo[veh][cOwner], "Нет", 0, strlen("Нет"), 255);
		CarInfo[veh][cRent] = 0;
		CarInfo[veh][cMusic] = 0;
		CarInfo[veh][cVW] = 1;
		CarInfo[veh][cPosx] = 0.0;
		CarInfo[veh][cPosy] = 0.0;
		CarInfo[veh][cPosz] = 0.0;
		SetVehiclePos(veh, CarInfo[veh][cPosx], CarInfo[veh][cPosy], CarInfo[veh][cPosz]);
	}
	SetVehicleVirtualWorld(veh, CarInfo[veh][cVW]);
	if(CarInfo[veh][cFraction] > 0)
	{
		format(string, sizeof(string), "Фракция: %s\n%s\nВладелец: %s", FractionInfo[CarInfo[veh][cFraction]][fName], CarInfo[veh][cNumbercar], CarInfo[veh][cOwner]);
		Update3DTextLabelText(vehicle3Dtext[veh], WHITE, string);
	}
	/*if(CarInfo[veh][cVW] == 0)
	{
		SetVehicleVirtualWorld(veh, 0);
	}
	if(CarInfo[veh][cVW] > 0)
	{
		SetVehicleVirtualWorld(veh, 1);
	}*/
}

 

 

Edited by odosenok
Причина: Заключил код в тег "Код".

Заметка от Cawfee , создано

Пожалуйста, ознакомьтесь с этой статьей по правильному оформлению кода в темах. Тогда будет и синтаксис правильно подсвечен, и табуляция сохранится.

Share this post


Link to post
  • 0

@odosenok @odosenok  Спасибо)

Share this post


Link to post
  • 0

@Bunkertm, если вопрос решен, закройте тему.

Share this post


Link to post
  • 0

@odosenok да вроде все ништяк работает только есть одно но , когда номера выдаешь на табличке не чего не меняется хоть че делай появляются только после рестарта 

Share this post


Link to post
  • 0

@Bunkertm После респавна машины появляются? 

Share this post


Link to post
  • 0

@Nicinen нет после респавна XZY0998 или как там не помню вообщем нету номеров , а после рестарта сервера появляются 

Share this post


Link to post
  • 0

а все я разобрался в public OnVehicleSpawn(vehicleid) нужно было добавить SetVehicleNumberPlate(vehicleid, CarInfo[vehicleid][cNumbercar]); и все четко заработало 

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.