Доступ к архиву

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

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

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

Работа дальнобойщика со скиллами.

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

Like[*]

Умник
Начнём, ко всем new:
PHP:
new takeload[MAX_PLAYERS];
new gruz[MAX_PLAYERS];
new gruz1[MAX_PLAYERS];
В OnPlayerCommandText:
PHP:
	if(strcmp(cmd, "/takeload", true) == 0)
	{
		if(PlayerInfo[playerid][pJob] != 6) return SendClientSendClientMessagee(playerid, COLOR_GREY, "{FF0000}[Недоступно]{ffffff} Вы не дальнобойщик, используйте (( /job )).");
		if(takeload[playerid] == 1) return SendClientSendClientMessagee(playerid, COLOR_GREY, "{FF0000}[Недоступно]{ffffff} Вы уже взяли задание.");
		new model = GetVehicleModel(GetPlayerVehicleID(playerid));
		if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && model==515 || GetPlayerState(playerid) != PLAYER_STATE_DRIVER && model==514 || GetPlayerState(playerid) != PLAYER_STATE_DRIVER && model==403) return SendClientMessagee(playerid,COLOR_GRAD,"{ff0000}[Недоступно]{ffffff} Вы должны находиться в фуре, за рулём.");
		if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) return SendClientMessagee(playerid,COLOR_GREY,"{FF0000}[Недоступно]{ffffff} Вы без прицепа, подцепите прицеп для начала грузоперевозки.");
		new tasks = random(2);
		switch(tasks)
		{
		case 0:
			{
				SendClientMessagee(playerid, COLOR_WHITE, "- Здравствуйте, доставьте груз до места назначения №1.");
				SendClientMessagee(playerid, COLOR_WHITE, "- По прибытию вы получите зарплату, удачи.");
				takeload[playerid] = 1;
				gruz[playerid] = 1;
				SetPlayerCheckpoint(playerid, 264.1020,1409.9296,10.4917, 3.0);
				return 1;
			}
		case 1:
			{
				SendClientMessagee(playerid, COLOR_WHITE, "- Здравствуйте, доставьте груз до места назначения №2.");
				SendClientMessagee(playerid, COLOR_WHITE, "- По прибытию вы получите зарплату, удачи.");
				takeload[playerid] = 1;
				gruz1[playerid] = 1;
				SetPlayerCheckpoint(playerid, 264.1020,1409.9296,10.4917, 3.0);
				return 1;
			}
		}
	}
В public OnPlayerEnterCheckpoint(playerid):
PHP:
	if(gruz[playerid] == 1)
	{
		if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid,COLOR_GREY,"{FF0000}[Недоступно]{ffffff} Вы без прицепа.");
		takeload[playerid] = 0;
		SetVehicleToRespawn(GetVehicleTrailer(GetPlayerVehicleID(playerid)));
	    DisablePlayerCheckpoint(playerid);
	    gruz[playerid] = 0;
	    new rand;
	    new strings[256];
	    new level = PlayerInfo[playerid][pTruckSkill];
	    if(level >= 0 && level <= 20) { rand = 600-random(800); }
	    else if(level >= 21 && level <= 50) { rand = 1200-random(1400); }
	    else if(level >= 51 && level <= 100) { rand = 1800-random(2000); }
	    else if(level >= 101 && level <= 225) { rand = 3600-random(5000); }
	    GivePlayerMoney(playerid, rand);
	    new rand1;
	    format(strings, sizeof(strings),"Груз {ff0000}№1{ffffff} успешно доставлен. Ваша зарплата: {ff0000}$%d{ffffff}.", rand);
	    SendClientMessage(playerid, COLOR_WHITE, strings);
	    PlayerInfo[playerid][pTruckSkill] ++;
		if(PlayerInfo[playerid][pTruckSkill] == 20)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика 2, теперь вы получаете больше денег за доставку груза."); }
		else if(PlayerInfo[playerid][pTruckSkill] == 50)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика 3, теперь вы получаете больше денег за доставку груза."); }
		else if(PlayerInfo[playerid][pTruckSkill] == 100)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика 4, теперь вы получаете больше денег за доставку груза."); }
		else if(PlayerInfo[playerid][pTruckSkill] == 225)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика максимальный, теперь вы получаете более $3600 денег за доставку груза."); }
	}
	if(gruz1[playerid] == 1)
	{
	    if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid,COLOR_GREY,"{FF0000}[Недоступно]{ffffff} Вы не без прицепа.");
		SetVehicleToRespawn(GetVehicleTrailer(GetPlayerVehicleID(playerid)));
	    DisablePlayerCheckpoint(playerid);
	    gruz1[playerid] = 0;
	    new rand2;
	    new strings[256];
	    new level = PlayerInfo[playerid][pTruckSkill];
	    if(level >= 0 && level <= 20) { rand2 = 680-random(880); }
	    else if(level >= 21 && level <= 50) { rand2 = 1280-random(1480); }
	    else if(level >= 51 && level <= 100) { rand2 = 1880-random(2880); }
	    else if(level >= 101 && level <= 225) { rand2 = 3680-random(6980); }
	    GivePlayerMoney(playerid, rand2);
	    format(strings, sizeof(strings),"Груз {ff0000}№2{ffffff} успешно доставлен. Ваша зарплата: {ff0000}$%d{ffffff}.", rand2);
	    SendClientMessage(playerid, COLOR_WHITE, strings);
	    PlayerInfo[playerid][pTruckSkill] ++;
		if(PlayerInfo[playerid][pTruckSkill] == 20)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика 2, теперь вы получаете больше денег за доставку груза."); }
		else if(PlayerInfo[playerid][pTruckSkill] == 50)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика 3, теперь вы получаете больше денег за доставку груза."); }
		else if(PlayerInfo[playerid][pTruckSkill] == 100)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика 4, теперь вы получаете больше денег за доставку груза."); }
		else if(PlayerInfo[playerid][pTruckSkill] == 225)
		{ SendClientSendClientMessage(playerid, COLOR_YELLOW, "Ваш скилл дальнобойщика максимальный, теперь вы получаете более $3680 денег за доставку груза."); }
	}
Если у вас есть кпк или прочее, то в cmd:
PHP:
if(takeload[playerid] == 1) return SendClientMessage(playerid, COLOR_GRAD, "{ff0000}[Недоступно]{ffffff} Во время грузоперевозки, невозможно использовать карманный компьютер.");
Работа готова, теперь делаем скиллы для работы.
В pInfo:
PHP:
pTruckSkill,
В OnPlayerRegister:
PHP:
iniSetInt(File, "TruckSkill", PlayerInfo[playerid][pTruckSkill]);
В OnPlayerLogin:
PHP:
iniGetInt(File,"TruckSkill", PlayerInfo[playerid][pTruckSkill]);
В stock SavePlayer: (( возможно у вас подругому называется ))
PHP:
iniSetInt(File, "TruckSkill", PlayerInfo[playerid][pTruckSkill]);
Вот и всё, работа готова.
Проверял у себя, всё отлично.
По скиллам:
Возможно у вас форма другая, делайте по своей форме, только переменную pTruckSkill.
Может кому понадобятся фуры, прицепы, вот сделал:
Скриншот:

Местонахождение:

Так, фуры, прицепы:
В OnGameModeInit:
PHP:
    dbcar[0] = AddStaticVehicleEx(514,-1027.98901367,-686.77301025,32.70700073,270.00000000,-1,-1,15);
	AddStaticVehicleEx(514,-1027.90698242,-681.53698730,32.70700073,270.00000000,-1,-1,15);
	AddStaticVehicleEx(514,-1027.84497070,-676.46099854,32.70700073,270.00000000,-1,-1,15);
	AddStaticVehicleEx(514,-1027.88696289,-671.32098389,32.70700073,270.00000000,-1,-1,15);
	AddStaticVehicleEx(515,-1028.16894531,-666.39300537,33.16199875,270.00000000,-1,-1,15);
	AddStaticVehicleEx(515,-1028.20800781,-661.34899902,33.16199875,270.00000000,-1,-1,15);
	AddStaticVehicleEx(515,-1028.25195312,-655.91900635,33.16199875,270.00000000,-1,-1,15);
	AddStaticVehicleEx(403,-1027.90002441,-651.39202881,32.70800018,270.00000000,-1,-1,15);
	AddStaticVehicleEx(403,-1027.70104980,-645.95397949,32.70800018,270.00000000,-1,-1,15);
	AddStaticVehicleEx(584,-985.11499023,-687.21502686,33.17200089,90.00000000,-1,-1,15);
	AddStaticVehicleEx(584,-985.14202881,-681.85498047,33.16699982,90.00000000,-1,-1,15);
	AddStaticVehicleEx(450,-984.73101807,-676.73199463,32.66199875,90.00000000,-1,-1,15);
	AddStaticVehicleEx(450,-984.61901855,-671.15600586,32.66199875,90.00000000,-1,-1,15);
	AddStaticVehicleEx(450,-984.59802246,-666.30401611,32.66199875,90.00000000,-1,-1,15);
	AddStaticVehicleEx(450,-984.69702148,-661.33197021,32.66199875,90.00000000,-1,-1,15);
	AddStaticVehicleEx(591,-984.08599854,-656.25897217,32.66199875,90.00000000,-1,-1,15);
	AddStaticVehicleEx(591,-983.96502686,-651.00500488,32.66199875,90.00000000,-1,-1,15);
	dbcar[16] = AddStaticVehicleEx(591,-983.84197998,-645.99798584,32.66199875,90.00000000,-1,-1,15);
Ко всем new:
PHP:
new dbcar[17];
В public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger):
PHP:
	if(vehicleid >= dbcar[0] && vehicleid <= dbcar[16])
	{
		if(ispassenger == 0)
	    {
		    if(PlayerInfo[playerid][pJob] == 6)
		    {
		    }
		    else
		    {
			    new Float:plocx,Float:plocy,Float:plocz;
			    GetPlayerPos(playerid, plocx, plocy, plocz);
			    SetPlayerPos(playerid, plocx, plocy, plocz+1.0);
			    SendClientMessage(playerid, COLOR_WHITE, "{E3BE88}[Транспорт]{ffffff} У вас нет ключей от этого транспорта.");
		    }
		 }
	}
ВНИМАНИЕ: ID работы 5 заменяйте на свой!
Вот и всё.
Автор урока: я.
Деньги идут в зависимости от скилла, к примеру на 1-ом скилле 600-800 и т.д.
Выдачу денег заменяйте на свою.
Проверял у себя в моде, всё работает на ура.
​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу