• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Система дальнобойщиков

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

iRivals

Ученик
Здравствуйте. Вопрос, как сделать из ходя из даного кода такую систему: подьежаешь к месту контракта, что бы брался груз и вести в место назначения. Данная система реализована на A&A RP (не реклама). Буду благодарен

HTML:
enum e_TRUCK_ORDERS
{
	bool:toStatus,
	toPlayer,
	toTimeDeliviry,
	toTimeCreate,
	toPrice,
	toAward,
	Float:toPos[3],
	toCargo[32],
	toPurpose
}




for(new i; i < MAX_TRUCK_ORDERS; i++)
	{
		if(TruckOrders[i][toTimeDeliviry])
		{
			TruckOrders[i][toTimeDeliviry]--;

			dlg_str[0] = EOS;
			format(dlg_str, sizeof dlg_str, "\
				{ffbfbf}Назначение: {ffffbf}%s\n\
				{ffbfbf}Груз: {ffffbf}%s\n\
				{ffbfbf}Цена контракта: {ffffbf}%d\n\
				{ffbfbf}Премия: {ffffbf}%d\n\
				{ffbfbf}Осталось: {ffffbf}%d {ffbfbf}мин.",
				ReceivingTerminal[TruckOrders[i][toPurpose]-1][rtPurpose],
				TruckOrders[i][toCargo],
				TruckOrders[i][toPrice],
				TruckOrders[i][toAward],
				floatround(TruckOrders[i][toTimeDeliviry] / 60)
			);
			UpdateDynamic3DTextLabelText(TruckOrder3dText[i], -1, dlg_str);

			if(TruckOrders[i][toTimeDeliviry] == 0)
			{
				TruckOrders[i][toTimeCreate] = RandomEx(1,10) * 60;
				TruckOrders[i][toStatus] = false;
				TruckOrders[i][toPlayer] = INVALID_PLAYER_ID;

				UpdateDynamic3DTextLabelText(TruckOrder3dText[i], -1, "Контрактов нет");
			}
		}
		if(TruckOrders[i][toTimeCreate])
		{
			TruckOrders[i][toTimeCreate]--;
			if(TruckOrders[i][toTimeCreate] == 0)
			{
				TruckOrders[i][toStatus] = true;
				TruckOrders[i][toPlayer] = INVALID_PLAYER_ID;
				TruckOrders[i][toTimeDeliviry] = RandomEx(30,60) * 60;
				TruckOrders[i][toPrice] = RandomEx(1500,6000);
				TruckOrders[i][toAward] = TruckOrders[i][toPrice] + RandomEx(1500,3000);

				new rand_name = random(sizeof(TruckOrdersType));
				strmid(TruckOrders[i][toCargo], TruckOrdersType[rand_name], 0, strlen(TruckOrdersType[rand_name]), 32);
				
				TruckOrders[i][toPurpose] = RandomEx(1,MAX_TERMINALS);

				dlg_str[0] = EOS;
				format(dlg_str, sizeof dlg_str, "\
					{ffbfbf}Назначение: {ffffbf}%s\n\
					{ffbfbf}Груз: {ffffbf}%s\n\
					{ffbfbf}Цена контракта: {ffffbf}%d\n\
					{ffbfbf}Премия: {ffffbf}%d\n\
					{ffbfbf}Осталось: {ffffbf}%d {ffbfbf}мин.", 
					ReceivingTerminal[TruckOrders[i][toPurpose]-1][rtPurpose],
					TruckOrders[i][toCargo],
					TruckOrders[i][toPrice],
					TruckOrders[i][toAward],
					floatround(TruckOrders[i][toTimeDeliviry] / 60)
				);
				UpdateDynamic3DTextLabelText(TruckOrder3dText[i], -1, dlg_str);
			}
		}
	}
	return true;
}



for(new i; i < MAX_TRUCK_ORDERS; i++)
	{
		TruckOrders[i][toStatus] = true;
		TruckOrders[i][toPlayer] = INVALID_PLAYER_ID;
		TruckOrders[i][toTimeDeliviry] = RandomEx(30,60) * 60;
		TruckOrders[i][toPrice] = RandomEx(1500,6000);
		TruckOrders[i][toAward] = TruckOrders[i][toPrice] + RandomEx(1500,3000);

		new rand_name = random(sizeof TruckOrdersType);
		strmid(TruckOrders[i][toCargo], TruckOrdersType[rand_name], 0, strlen(TruckOrdersType[rand_name]), 32);

		TruckOrders[i][toPurpose] = RandomEx(1,MAX_TERMINALS);

		format(dlg_str, sizeof dlg_str, "\
			{ffbfbf}Назначение: {ffffbf}%s\n\
			{ffbfbf}Груз: {ffffbf}%s\n\
			{ffbfbf}Цена контракта: {ffffbf}%d\n\
			{ffbfbf}Премия: {ffffbf}%d\n\
			{ffbfbf}Осталось: {ffffbf}%d {ffbfbf}мин.", 
			ReceivingTerminal[TruckOrders[i][toPurpose]-1][rtPurpose],
			TruckOrders[i][toCargo],
			TruckOrders[i][toPrice],
			TruckOrders[i][toAward],
			floatround(TruckOrders[i][toTimeDeliviry] / 60)
		);
		TruckOrder3dText[i] = CreateDynamic3DTextLabel(dlg_str, -1, TruckOrders[i][toPos][0], TruckOrders[i][toPos][1], TruckOrders[i][toPos][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0);
		TruckOrderArea[i] = CreateDynamicSphere(TruckOrders[i][toPos][0], TruckOrders[i][toPos][1], TruckOrders[i][toPos][2], 2.0);
	}

	for(new i; i < MAX_TERMINALS; i++)
	{
		ReceivingTerminalArea[i] = CreateDynamicSphere(ReceivingTerminal[i][rtPos][0], ReceivingTerminal[i][rtPos][1], ReceivingTerminal[i][rtPos][2], 2.0);
		
		format(dlg_str, sizeof dlg_str, "\
			{60a060}Приёмный терминал\n\
			{a0a060}%s", 
			ReceivingTerminal[i][rtPurpose]
		);
		CreateDynamic3DTextLabel(dlg_str, -1, ReceivingTerminal[i][rtPos][0], ReceivingTerminal[i][rtPos][1], ReceivingTerminal[i][rtPos][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0);
	}
	return true;
}



new TruckOrders[MAX_TRUCK_ORDERS][e_TRUCK_ORDERS] = {
	{false, INVALID_PLAYER_ID, 0, 0, 0, 0, {-1834.3496,-108.2795,5.6484}, "None", 0},//склад дороти
	{false, INVALID_PLAYER_ID, 0, 0, 0, 0, {-1815.8690,-108.6038,5.6484}, "None", 0},
};
new TruckOrderArea[MAX_TRUCK_ORDERS];
new Text3D:TruckOrder3dText[MAX_TRUCK_ORDERS];

enum e_TERMINAL_INFO
{
	rtID,
	rtPurpose[32],
	Float:rtPos[3]
}
new ReceivingTerminal[MAX_TERMINALS][e_TERMINAL_INFO] = {
	{1, "Tierra Robada Docks", {-2456.7415,2293.0129,4.9844}},
	{2, "Склад Дороти", {-1824.5560,-108.3587,5.6484}},
	{3, "Авиалинии "Сан Фиерро"", {-1691.0538,-91.8056,3.5700}},
};
new ReceivingTerminalArea[MAX_TERMINALS];

new const TruckOrdersType[15][32] = {
	"Бытовая техника",
	"Кожная галантарея",
};
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу