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

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

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

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

Мануал Job Builder

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

Merlin

Умник
Автор : -Merlin-
Система с 0
[HR][/HR]
К #define добавим
PHP:
#define MERLINv              100
#define MERLINw              101
[HR][/HR]
Переменный new добавим
PHP:
new actions_merlina[MAX_PLAYERS],
	recei_ving[MAX_PLAYERS],
	recei_vinog[MAX_PLAYERS],
	the_work,
	str_pawn[MAX_PLAYERS]
;
[HR][/HR]
Далее в public OnGameModeInit() добавим пикап.
PHP:
the_work = CreatePickup(1275, 23, 1786.3691,-2027.0892,13.4888, 0);
//Создает пикап - вращающийся объект, который можно подобрать.
[HR][/HR]
Далее в public OnPlayerConnect(playerid) добавим _
PHP:
actions_merlina[playerid] = 0;
	recei_ving[playerid] = 0;
	recei_vinog[playerid] = 0;
[HR][/HR]
Далее в public OnPlayerEnterCheckpoint(playerid) мы добавим.
PHP:
if(PlayerToPoint(2.0, playerid, 1736.3735,-2062.6931,13.6186))
    //Проверяет, если игрок находится в радиусе действия точки.
    {
          recei_vinog[playerid] = 1;
          ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
          // Анамация
          SetPlayerAttachedObject(playerid, 1 , 2358, 1,0.11,0.36,0.0,0.0,90.0);
		  // Выдаёт Обьект
          ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
		  // Анамация
		  SetPlayerCheckpoint(playerid, 1787.4537,-2058.5923,13.8380, 2.0);
		  // Появления CheckpointА
   		  return true;
    }
    if(PlayerToPoint(2.0, playerid,1787.4537,-2058.5923,13.8380))
    //Проверяет, если игрок находится в радиусе действия точки.
    {
          SetPVarInt(playerid,"deistvia",1);
          //Получает значение указанной PVar игрока как целое число.
          ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
          // Анамация
          if(IsPlayerAttachedObjectSlotUsed(playerid,1)) RemovePlayerAttachedObject(playerid,1);
          //если игрок имеет присоединенный объект в заданной позиции индекса | 1 + Удаляет
          SetPlayerAttachedObject(playerid,1, 18635, 14, 0.264531, 0.121060, 0.022172, 279.757507, 164.484985, 184.886245);
		  // Молоток
		  SetPlayerAttachedObject(playerid,2, 18644, 13, 0.334366, 0.015833, -0.035214, 294.913085, 188.347946, 235.000213);
		  // Отвёртка
          ApplyAnimation(playerid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,0,0);
		  // Анимация
          str_pawn[playerid] = SetTimerEx("str_Ika",9800,false,"i",playerid);
          return true;
    }
[HR][/HR]
В public OnPlayerPickUpPickup(playerid, pickupid) добавим
PHP:
if(pickupid == the_work)
	{
 		if(actions_merlina[playerid] == 1)
		 	SPD(playerid,MERLINw,0,"Работа \"Ваш text\"","Вы действительно хотите уволиться с работы?","Да","Нет");
		else SPD(playerid,MERLINv,0,"Работа \"Ваш text\"","Вы собираетесь устроиться рабочим на стройку?\n","Да","Нет");
	}
[HR][/HR]
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
case MERLINv:
	{
 		if(response)
  		{
    		if(actions_merlina[playerid] == 1)
				return send(playerid, "ERROR: Вы уже устроины.");
      		actions_merlina[playerid] = 1;
        	SetPlayerSkin(playerid, 16);
        	//скин
         	DisablePlayerCheckpoint(playerid);
          	SetPlayerCheckpoint(playerid, 1736.3735,-2062.6931,13.6186, 2.0);
           	SendClientMessage(playerid, COLOR_RED, "{0092F7}Рабочий день начат.");
       	}
	}
	case MERLINw:
	{
	    if(response)
    	{
     		new string[128];
       		if(actions_merlina[playerid] == 0)
	   			return SendClientMessage(playerid, COLOR_GREY, "ERROR : Сначала подойдите к пикапу");
     		PlayerInfo[playerid][pCash] += recei_ving[playerid];
      		format(string, sizeof(string), "{0092F7} Вы заработали за построение: {34c924}%d$", recei_ving[playerid]);
       		SendClientMessage(playerid, -1, string);
         	actions_merlina[playerid] = 0;
          	DisablePlayerCheckpoint(playerid);
       	}
	}
[HR][/HR]

К CreateObjects добавим
PHP:
CreateObject(1224,-4444.7348633,-6770.6469727,15.7498207,0.0000000,0.0000000,0.0000000); //object(woodenbox) (1)
	CreateObject(16327,1787.4224854,-2056.1821289,12.5832815,0.0000000,0.0000000,0.0000000); //object(des_bycontowr) (1)
	CreateObject(3932,1732.9362793,-2056.6000977,14.3646975,0.0000000,0.0000000,0.0000000); //object(hanger) (1)
	CreateObject(3932,1732.9362793,-2063.2109375,14.3646975,0.0000000,0.0000000,0.0000000); //object(hanger) (2)
	CreateObject(16302,1732.7843018,-2063.5639648,8.6962948,0.0000000,0.0000000,0.0000000); //object(des_gravelpile04) (2)
	CreateObject(16305,1734.5866699,-2062.7731934,13.2931442,0.0000000,0.0000000,0.0000000); //object(des_gravelpile06) (1)
	CreateObject(16317,1733.3035889,-2055.7863770,9.8423243,0.0000000,0.0000000,314.0000000); //object(des_quarstmound_03) (1)
	CreateObject(3941,1797.7923584,-2022.3183594,15.6859379,0.0000000,0.0000000,271.9999390); //object(comms02) (1)
[HR][/HR]

В конец мода
PHP:
forward OverallHeadrs();
public OverallHeadrs()
{
    for(new i=0; i<GetMaxPlayers(); i++)
    //Возвращает максимальное количество игроков, которые могут присоединиться к серверу
 	{
    	if(actions_merlina[i] != 0 && !PlayerToPoint(40.0,i, 1787.4537,-2058.5923,13.8380))
    	//Проверяет, если игрок находится в радиусе действия точки.
		{
			send(i, "{0092F7} Вы ушли слишком далеко от стройки.");
			// Проверка
			recei_ving[i] = 0;
			actions_merlina[i] = 0;
			DisablePlayerCheckpoint(i);
			// DELETE CheckpointA
			SetPlayerSkin(i,PlayerInfo[i][pSkin]);
		}
 	}
  	return 1;
}
forward str_Ika(playerid);
public str_Ika(playerid)
{
	if(GetPVarInt(playerid,"deistvia") == 1)
	//Получает значение указанной PVar игрока как целое число.
	{
	    static
	        string[88];
  		if(IsPlayerAttachedObjectSlotUsed(playerid,1))
  		//если игрок имеет присоединенный объект в заданной позиции индекса |  1
	  		RemovePlayerAttachedObject(playerid,1);
	  		//Удалить прикрепленный объект от игрока.
	  	if(IsPlayerAttachedObjectSlotUsed(playerid,2))
	  	//если игрок имеет присоединенный объект в заданной позиции индекса | 2
		  	RemovePlayerAttachedObject(playerid,2);
	  		//Удалить прикрепленный объект от игрока.
  		ClearAnimations(playerid);
  		//Очищает все анимации для данного игрока
    	recei_ving[playerid]++;
    	recei_vinog[playerid] = 0;
       	format(string, sizeof(string), "{0092F7}Перенесено строительных материалов: {34c924}%d кг.",recei_ving[playerid]);
        SendClientMessage(playerid, -1, string);
		// ВЫДАЁТСЯ ТЕКС
        SetPlayerCheckpoint(playerid, 1736.3735,-2062.6931,13.6186, 2.0);
		//При заходе на Checkpoint
	}
}
[HR][/HR]
Система Реализуем на 70%
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу