• 0
Bunkertm

РП НОМЕРА

Вопросы

Вообщем такой вопрос как переделать номера из 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;
}

 

 

Отредактировано пользователем odosenok
Причина: Заключил код в тег "Код".

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


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

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

  • 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);
	}*/
}

 

 

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


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

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

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


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

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

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

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

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

 

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

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

 

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


Ссылка на сообщение
  • 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);
	}*/
}

 

 

Отредактировано пользователем odosenok
Причина: Заключил код в тег "Код".

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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