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

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

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

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

Мануал Работа Сборщика металлолома

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

Brain_Voker

Умник
Всем привет, продолжаю исправления кода в мануалах/уроках данного портала
Сегодня взял работу Сборщика металлолома
Автор: Merlin, его тема http://pawno-info.ru/showthread.php?t=194896
Автор доработки: #Kalashnikov
Скриншоты: ( П-И Фото хост не работает:( )
И так начнем:

Ко всем #define:
PHP:
new format_stra[145];
#define SendMes(%0,%1,%2,%3) format(format_stra, 144, %2,%3), SendClientMessage(%0, %1, format_stra)
Ко всем new:
PHP:
new Float: position_job [ ] [3] =
{
    {274.4690, 1224.2138, 15.1192},
    {1351.4569, 478.1444, 19.7258},
    {230.3027, -1887.7364, 0.6416},
    {-2379.4768, -2161.4040, 35.4903}
};
new plavcar[2];
new Loader_Job;
new Mettal_Factory = 100;
Если Вы используете стандартный командный процессор то в public OnPlayerCommandText(playerid, cmdtext[]):
PHP:
if(!strcmp(cmd,"/contract",true))
    {
        if(!GetPVarInt(playerid,"InLoaderJob")) return SendClientMessage(playerid,-1,"Вам запрещено использовать это");
        if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 578) return SendClientMessage(playerid,-1,"Вы должны находиться в рабочей машине");
        if(GetPVarInt(playerid,"progressJob")) return SendClientMessage(playerid,-1,"У вас уже есть заказ на доставку");
        DisablePlayerCheckpoint(playerid);
        new rnd = random(sizeof(position_job));
        switch(rnd)
        {
        	case 0:
            {
                SendClientMessage(playerid, 0x1FAEE9AA, "Нам сообщили что под мостом кто-то бросил свою машину");
                SendClientMessage(playerid, 0x1FAEE9AA, "Салон и колеса конечно сняли, но корпус остался. Привези ее нам!");
            }
        	case 1:
            {
                SendClientMessage(playerid, 0x1FAEE9AA, "Люди из деревни сообщили что у них на заправке");
                SendClientMessage(playerid, 0x1FAEE9AA, "стоит брошеная машина. Привези ее нам!");
            }
        	case 2:
            {
                SendClientMessage(playerid, 0x1FAEE9AA, "На пляже Санта Мария вытащили машину из воды и оставили на берегу");
                SendClientMessage(playerid, 0x1FAEE9AA, "эта машина, то что нам нужно. Привези ее нам!");
            }
        	case 3:
            {
                SendClientMessage(playerid, 0x1FAEE9AA, "По новостям передают, что какой-то лихач вылетел на машине с г. Чилиад");
                SendClientMessage(playerid, 0x1FAEE9AA, "Губернатор хочет чтоб мы вытащили машину от туда. Привези ее нам!");
            }
        }
        SetPlayerCheckpoint(playerid,position_job[rnd][0],position_job[rnd][1],position_job[rnd][2], 4.0);
        SetPVarInt(playerid,"typeMarker",rnd+1);
        SetPVarInt(playerid,"progressJob",1);
        return 1;
    }
Если DC_CMD то измените шапку на:
PHP:
CMD:contract(playerid)
В public OnPlayerStateChange(playerid, newstate, oldstate):
PHP:
new vehicleid = GetPlayerVehicleID(playerid);
    if(vehicleid >= plavcar[0] && vehicleid <= plavcar[1])
    {
        if(!GetPVarInt(playerid,"InLoaderJob"))
        {
            SendClientMessage(playerid, -1, "Вы не устроились на работу");
            RemovePlayerFromVehicle(playerid);
        }
        else SendClientMessage(playerid, 0xFFD700FF, "Для того что-бы взять заказ: /contract");
    }
В public OnPlayerPickUpPickup(playerid, pickupid):
PHP:
if(pickupid == Loader_Job)
    {
    	if(GetPVarInt(playerid,"InLoaderJob")) ShowPlayerDialog(playerid,60,0,"Работа \"Доставщик металла\"","Вы действительно хотите уволиться с работы?","Да","Нет");
        else ShowPlayerDialog(playerid,60,0,"Работа \"Доставщик металла\"","Вы собираетесь устроиться доставщиком металла на завод?","Да","Нет");
    }
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
PHP:
case 60:
		{
			if(!response) return 1;
			if(!GetPVarInt(playerid,"InLoaderJob"))
			{
				if(GetPVarInt(playerid,"InLoaderJob")) return SendClientMessage(playerid, 0x1FAEE9AA, "Вы уже работаете!");
				//SetPlayerSkin(playerid, (PlayerInfo[playerid][pSex] == 1) ? 94 : 56);//Выдаем скины
				SetPVarInt(playerid,"InLoaderJob",1);
				DisablePlayerCheckpoint(playerid);
				SendClientMessage(playerid, 0x1FAEE9AA, "Вы начали рабочую смену!");
				SendClientMessage(playerid, 0x1FAEE9AA, "Отправляйтесь доставлять металл на завод");
				return 1;
			}
			else
			{
				if(!GetPVarInt(playerid,"InLoaderJob")) return SendClientMessage(playerid, 0x1FAEE9AA, "Вы не работаете!");
				SendClientMessage(playerid, 0x1FAEE9AA, "Рабочий день окончен, заработанные деньги вы получили на руки");
				if(GetPVarInt(playerid,"progressJob"))
				{
					DestroyObject(GetPVarInt(playerid, "OBJ"));
				}
				DeletePVar(playerid, "OBJ");
				DeletePVar(playerid, "typeMarker");
				DeletePVar(playerid,"progressJob");
				DeletePVar(playerid,"playerAmount");
				DeletePVar(playerid,"InLoaderJob");
				DisablePlayerCheckpoint(playerid);
				//Возвращаем скин
				//new fraction = PlayerInfo[playerid][pMember];
				//SetPlayerSkin(playerid, (!fraction) ? PlayerInfo[playerid][pChar] : PlayerInfo[playerid][pModel]);
				return 1;
			}
		}
В public OnPlayerEnterCheckpoint(playerid):
PHP:
switch(GetPVarInt(playerid,"typeMarker") && GetVehicleModel(GetPlayerVehicleID(playerid)) == 578)
	{
	    case 1..4:
	    {
	        if(!GetPVarInt(playerid,"progressJob")) return true;
	        DisablePlayerCheckpoint(playerid);
	        SetPVarInt(playerid, "OBJ", CreateObject(3594,0,0,0,0,0,0,100.0));
  		  AttachObjectToVehicle(GetPVarInt(playerid, "OBJ"), GetPlayerVehicleID(playerid), 0,-2,0.1,0,0,0);
			SetPVarInt(playerid, "typeMarker", 0);
			SetPlayerCheckpoint(playerid,2078.46909, -2046.21387, 13.55, 4.0);
			SendClientMessage(playerid,-1,"Отвезите эту груду металла на завод");
			return 1;
	    }
	}
	if(GetPVarInt(playerid,"progressJob") && GetVehicleModel(GetPlayerVehicleID(playerid)) == 578)
	{
		DisablePlayerCheckpoint(playerid);
		DestroyObject(GetPVarInt(playerid, "OBJ"));
		SetPVarInt(playerid,"progressJob",0);
		SetPVarInt(playerid,"playerAmount", 200+random(200));
		Mettal_Factory += GetPVarInt(playerid,"playerAmount");
		// PlayerInfo[playerid][pCash] += GetPVarInt(playerid,"playerAmount")*2;
		SendClientMessage(playerid,0x1FAEE9AA,"Используйте команду {FFD700}/contract {1FAEE9}для следуйщей задачи");
		SendMes(playerid,0x1FAEE9AA,"Машина вышла на {FFD700}%d кг. {1FAEE9}За нее вы получаете{FFD700} %d$",GetPVarInt(playerid,"playerAmount"),GetPVarInt(playerid,"playerAmount")*2);
		return 1;
	}
В public OnGameModeInit():
PHP:
plavcar[0] = AddStaticVehicleEx(578,2119.8237,-2076.3762,13.5469,139.7245,-1,-1,44);
    AddStaticVehicleEx(578,2127.6960,-2084.1382,13.5469,129.6978,-1,-1,44); 
    plavcar[1] = AddStaticVehicleEx(578,2134.4771,-2090.9631,13.5469,132.8311,-1,-1,44); 
    Loader_Job = CreatePickup(1275, 23,2093.0083,-2066.1826,13.5469,0);
Если полезно ставь +​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу