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

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

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

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

Мануал [RLS]Работа уборщик мусора для new.pwn

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

Nikit(a)

Ученик
Всем привет! вот написал работу для new.pwn
Суть работы: брать мусор в определённых местах и относить его в определённое место.
Работа находится на свалке ЛС.

И так начнём!
Ко всем new(переменные):
PHP:
//======================= Уборщик мусора =======================================
new MusorPickup[3];
new bool:InMusorJob[MAX_PLAYERS];
new MusorLfBg[MAX_PLAYERS];
new bool:UseMusor[MAX_PLAYERS];
new JobCP[MAX_PLAYERS];
Далее в public OnPlayerConnect:
PHP:
//====================== Уборщик мусора ====================================
	InMusorJob[playerid] = false;
	MusorLfBg[playerid] = 0;
	UseMusor[playerid] = false;
	JobCP[playerid] = 0;
Далее в public OnPlayerEnterCheckpoint
PHP:
//==================== Уборщик Мусора ======================================
    if(JobCP[playerid] == 1 && PlayerToPoint(2.0, playerid, 2132.0603, -1992.0642, 13.5469))
	{
		UseMusor[playerid] = true;
		SetPlayerCheckpoint(playerid, 2178.9124, -1993.2563, 13.5469, 2.0);
		SetPlayerAttachedObject(playerid, 4 , 1265, 1, 0.11, 0.36, 0.0, 0.0, 90.0);
		ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
		JobCP[playerid] = 2;
	}
	if(JobCP[playerid] == 2 && PlayerToPoint(2.0, playerid, 2178.9124, -1993.2563, 13.5469))
	{
		UseMusor[playerid] = false;
		ApplyAnimation(playerid, "PED", "IDLE_tired", 4.1, 0, 1, 1, 0, 1);
		MusorLfBg[playerid] ++;
		if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4);
		format(string, sizeof(string), "Мусора перенесено: %d", MusorLfBg[playerid]);
		SCM(playerid, COLOR_GREEN, string);
		SetPlayerCheckpoint(playerid, 2132.0603, -1992.0642, 13.5469, 2.0);
		JobCP[playerid] = 1;
	}
Далее в public OnPlayerPickUpPickup
PHP:
//======================== Уборщик мусора ==================================
	else if(pickupid == MusorPickup[0]) SPD(playerid, 169, DSM, "Информация о работе", "{FFFFFF}Здесь вы можете подработать Уборщиком мусора\n\nНедалеко от вас, вы найдёте раздевалку,\nА так же кассу, где получают деньги за работу.\nЧтобы начать работу, небходимо переодеться в рабочую одежду\nдалее вам укажут, где брать мусор и куда его выбрасовать", "Закрыть", "");
	else if(pickupid == MusorPickup[1]) SPD(playerid, 170, DSM, "Раздевалка", "Вы хотите начать рабочий день или завершить?", "Начать", "Завершить");
	else if(pickupid == MusorPickup[2])
	{
	    new string[64];
	    if(PlayerInfo[playerid][pMember] > 0) return SCM(playerid, COLOR_GREY, "[Ошибка] Вы состоите в организации!");
	    if(InMusorJob[playerid] == false) return SCM(playerid, COLOR_GREY, "[Ошибка] Вы не начинали тут работу!");
	    if(MusorLfBg[playerid] == 0) return SCM(playerid, COLOR_GREY, "[Ошибка] Вы нечего не заработали!");
	    if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4);
		SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
		PlayerInfo[playerid][pCash] += MusorLfBg[playerid]*25;
		format(string, sizeof(string), "Вы заработали %d вирт за %d перенесенных мусора", MusorLfBg[playerid]*25, MusorLfBg[playerid]);
		SCM(playerid, COLOR_BLUE, string);
		MusorLfBg[playerid] = 0;
		UseMusor[playerid] = false; JobCP[playerid] = 0;
		InMusorJob[playerid] = false;
		DisablePlayerCheckpoint(playerid);
	}
Далее в public OnPlayerUpdate
PHP:
//=================== Уборщик Мусора =======================================
	if(JobCP[playerid] == 1 && InMusorJob[playerid] == true && UseMusor[playerid] == true)
	{
		GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, 32, animname, 32);
		if(strcmp(animname, "IDLE_STANCE", true) != 0
		&& strcmp(animname, "RUN_CIVI", true) != 0
		&& strcmp(animname, "WALK_CIVI", true) != 0
		&& strcmp(animname, "crry_prtial", true) != 0
		&& strcmp(animname, "SPRINT_PANIC", true) != 0
		&& strcmp(animname, "RUN_PLAYER", true) != 0
		&& strcmp(animname, "WALK_PLAYER", true) != 0
		&& strcmp(animname, "SPRINT_CIVI", true) != 0)
		{
			UseMusor[playerid] = false;
			SCM(playerid, COLOR_RED, "Вы уронили мусор!");
			if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4);
			ApplyAnimation(playerid, "PED", "IDLE_tired", 4.1, 0, 1, 1, 0, 1);
			SetPlayerCheckpoint(playerid, 2132.0603, -1992.0642, 13.5469, 2.0);
			JobCP[playerid] = 1;
		}
	}
Далее в public OnDialogResponse
PHP:
case 170:
		{
		    if(response)
			{
			    if(PlayerInfo[playerid][pMember] > 0) return SCM(playerid, COLOR_GREY, "[Ошибка] Вы состоите в организации!");
       			if(InMusorJob[playerid] == true) return SCM(playerid, COLOR_GREY, "[Ошибка] Вы уже начали работу!");
			    InMusorJob[playerid] = true; JobCP[playerid] = 1;
			    MusorLfBg[playerid] = 0;
			    SetPlayerSkin(playerid, 134);
                DisablePlayerCheckpoint(playerid);
                SetPlayerCheckpoint(playerid, 2132.0603, -1992.0642, 13.5469, 2.0);
                SCM(playerid, COLOR_BLUE, "Рабочий день начат. На радаре помечено место где брать мусор");
			}
			else
			{
			    if(PlayerInfo[playerid][pMember] > 0) return SCM(playerid, COLOR_GREY, "[Ошибка] Вы состоите в организации!");
			    if(InMusorJob[playerid] == false) return SCM(playerid, COLOR_GREY, "[Ошибка] Вы не начинали тут работу!");
			    if(MusorLfBg[playerid] > 0) return SCM(playerid, COLOR_GREY, "[Ошибка] Сначала получите зарплату!");
			    if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4);
			    MusorLfBg[playerid] = 0;
			    UseMusor[playerid] = false; JobCP[playerid] = 0;
			    InMusorJob[playerid] = false;
			    DisablePlayerCheckpoint(playerid);
				SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
				SCM(playerid, COLOR_GREEN, "Рабочий день закончен.");
			}
		}
Далее в свой сток где находятся все пикапы сервера(если нету то в public OnGameModeInit)
PHP:
//===================== Уборщик мусора =====================================
    MusorPickup[0] = CreatePickup(1239, 23, 2202.4758, -1973.6638, 13.5573);
    MusorPickup[1] = CreatePickup(1275, 23, 2195.9397, -1973.0193, 13.5589);
    MusorPickup[2] = CreatePickup(1274, 23, 2195.6284, -1981.2148, 13.5517);
Вроде бы все,если есть ошибки или предложения как улучшить работу то оставляйте коментарии.

А чуть не забыл,
PHP:
SCM- это SendClientMessage
SPD- это ShowPlayerDialog
DSM- это DIALOG_STYLE_MSGBOX
Вот в этой строчке:
PHP:
SetPlayerAttachedObject(playerid, 4 , 1265, 1, 0.11, 0.36, 0.0, 0.0, 90.0);
1265- обьект мусора,можно изменить на это- 1264.

Скриншоты:






Если понравилось,+
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу