Доступ к готовым решениям

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

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

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

Мануал Грузоперевозчик

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

Y.Jeen

Умник
Система полная, как и задумывалась, но улучшать надо (если понравиться идея).

Суть: Грузовики уже с оградой, после получения груза - цепляется объект.
Получаем груз, везем в указанное место.





Код разбит по пабликам сразу

PHP:
new PickUp;

public OnGameModeInit()
{
    for(new i=0; i<MAX_VEHICLES; i++) VehSpawn(i);
	PickUp = CreatePickup(1275, 23, -77.9037,-1136.1981,1.0781, 0);
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
		if(dialogid == 23)
	    {
	        if(!response) return 1;
	        if(GetPVarInt(playerid, "carrier") == 0)
	        {
	                SetPVarInt(playerid, "carrier",1);
					SetPVarInt(playerid, "load",0);
					SetPVarInt(playerid, "char", GetPlayerSkin(playerid));
		            SetPlayerSkin(playerid, 16);
		            SendClientMessage(playerid,gray, "Рабочий день начат. Cадитесь в машину");
			}
			else SetPVarInt(playerid, "load",0),SetPVarInt(playerid, "carrier",0),SetPlayerSkin(playerid,GetPVarInt(playerid, "char"));
		}
		if(dialogid == 24)
	    {
	        if(!response) return 1;
	        if(listitem == 0)
	        {
					SetPVarInt(playerid, "load",1);
					SetPVarInt(playerid, "carid",GetPlayerVehicleID(playerid));
					SetPVarInt(playerid, "cabine",CreateObject(967,0.0,0.0,0.0, 0.000000,0.000000,0.000000));
					SetPVarInt(playerid, "cabineone",CreateObject(967,0.0,0.0,0.0, 0.000000,0.000000,0.000000));
					SetPVarInt(playerid, "cabinetwo",CreateObject(967,0.0,0.0,0.0, 0.000000,0.000000,0.000000));
					AttachObjectToVehicle(GetPVarInt(playerid, "cabine"),GetPlayerVehicleID(playerid), -0.381190,1.047714,-0.2,0,0,0);
					AttachObjectToVehicle(GetPVarInt(playerid, "cabineone"),GetPlayerVehicleID(playerid),0.563816,-0.859311,-0.2,0,0,0);
    				AttachObjectToVehicle(GetPVarInt(playerid, "cabinetwo"),GetPlayerVehicleID(playerid), -0.360608,-2.638458,-0.2,0,0,0);
					SetPlayerRaceCheckpoint(playerid,2,132.2981,1945.9371,19.3538 ,0.0,0.0,0.0,3.0);
		            SendClientMessage(playerid,gray, "Рабочий день начат. Cадитесь в машину");
			}
		}
		return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	if(GetPVarInt(playerid, "load") == 1)
	{
	    DestroyObject(GetPVarInt(playerid, "cabine"));
		DestroyObject(GetPVarInt(playerid, "cabineone"));
		DestroyObject(GetPVarInt(playerid, "cabinetwo"));
		SCM(playerid, -1, "Груз доставлен! Возращайтесь на базу.");
		SetPVarInt(playerid, "load",2);
		DisablePlayerRaceCheckpoint(playerid);
		SetPlayerRaceCheckpoint(playerid,2,-77.9037,-1136.1981,1.0781 ,0.0,0.0,0.0,5.0);
	}
	if(GetPVarInt(playerid, "load") == 2 && IsPlayerInRangeOfPoint(playerid, 20.0,-77.9037,-1136.1981,1.0781) && GetPVarInt(playerid, "carid") == GetPlayerVehicleID(playerid))
	{
		SCM(playerid, -1, "Вы заработали за груз: 560$");
		GivePlayerMoney(playerid, 560);
		SetPVarInt(playerid, "load",0);
		DisablePlayerRaceCheckpoint(playerid);
	}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if(strcmp(cmd, "/load", true) == 0)
	{
		if(!IsPlayerInRangeOfPoint(playerid, 15.0,-71.9037,-1117.1981,1.0781)) return SCM(playerid, -1, "Вы должны находится на базе");
		if(GetPVarInt(playerid, "load") > 0) return SCM(playerid, -1, "Вы уже взяли груз!");
		if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 578 && GetPVarInt(playerid, "carrier") == 1) ShowPlayerDialog(playerid,24,DIALOG_STYLE_LIST,"{ffcc00}Выберите груз:","{FFFFFF}Кабины (Место сдачи: Зона 51) {000000}Оплата: 560$","Купить","Отмена");
		return 1;
	}
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == PickUp)
	{
 		if(GetPVarInt(playerid, "carrier") == 1) SPD(playerid,23,0,"Работа \"Грузоперевозчик\"","{ffffff}Вы хотите уволиться с работы?","Да","Нет");
		else SPD(playerid,23,0,"Работа \"Грузоперевозчик\"","{ffffff}Вы хотите устроится на работу?","Да","Нет");
	}
	return 1;
}

stock VehSpawn(vehicleid)
{
	if(GetVehicleModel(vehicleid) == 578)
	{
	    AttachObjectToVehicle(CreateObject(983, 0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid,  -1.410061,-0.879146,0.454786,0,0,0);
	    AttachObjectToVehicle(CreateObject(983,0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid, -1.410061,-2.454485,0.434786,0,0,0);
	    AttachObjectToVehicle(CreateObject(983, 0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid,  1.410061,-0.879146,0.454786,0,0,0);
		AttachObjectToVehicle(CreateObject(983,0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid, 1.410012,-2.454485,0.434786,0,0,0);
	}
}
public OnVehicleDeath(vehicleid, killerid)
{
    DestroyObject(GetPVarInt(0, "cabine"));
	DestroyObject(GetPVarInt(0, "cabineone"));
	DestroyObject(GetPVarInt(0, "cabinetwo"));
	return 1;
}
Автор: Y.Jeen
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу