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

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

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

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

Мануал Работа шахтера/грузчика.

ihNNNNNify

Мастер
Работа шахтера/грузчика.
[HR][/HR]
Делал работу по заказу, но как оказалось у заказчика не было кэша, поэтому эту работу выкладываю на форум.
Версия работы еще сырая, осталось совсем ничего довести до ума.
​

Ко всем new​
PHP:
new
    pickup_job_miner,
    p_ADD_SKLAD         [MAX_PLAYERS char],
    p_MONEY_JOB            [MAX_PLAYERS char],
    pickup_sklad_job_miner;
new
    Float: checkpoint_miner[2][3] = 
        {
            {1660.1475, -1820.7291, 13.5545},
            {1660.1533, -1807.2557, 13.5525}
        };
Ко всем #define

​
PHP:
#define DIALOG_INVITE_MINER                2442
#define DIALOG_UNINVITE_MINER_LEAVE 4224
В OnPlayerPickUpPickup​
PHP:
if(pickupid == pickup_job_miner)
{
        if(GetPVarInt(playerid, !"if_p_job") == 1)
        {
            ShowPlayerDialog(playerid,
             DIALOG_UNINVITE_MINER_LEAVE,
             DIALOG_STYLE_MSGBOX,
             !"{C05D1B}Увольнение с работы 'Шахтера'",
             !"{FFFFFF}Вы действительно хотите закончить работу шахтера?\n\
             {FFFFFF}Для того чтобы Уволиться нажмите \"Уволиться\", иначе \"Выход\"",
             !"Уволиться", !"Выход");
        }
        else ShowPlayerDialog(playerid,
             DIALOG_INVITE_MINER,
             DIALOG_STYLE_MSGBOX,
             !"{C05D1B}Устройство на работу 'Шахтера'",
             !"{FFFFFF}Вы действительно хотите начать работу шахтера?\n\n\
             {CCFC7F}- Зарплата составляет от {06FF5A}150 {CCFC7F}до {06FF5A}250.\n\
             {CCFC7F}- Бесплатное питание, во время обеда.\n\
             {CCFC7F}- Бесплатный проезд с и до работы.\n\
             {CCFC7F}- У нас работают самые лучшие кураторы.\n\
             {CCFC7F}- От куратора вы можете получить премию\n\n\
             {FFFFFF}Для того чтобы устроиться на работу нажмите \"Устроиться\", иначе \"Выход\"",
             !"Устроиться", !"Выход");
    }
    iif(pickupid == pickup_sklad_job_miner)
    {
        if(GetPVarInt(playerid, !"start_job") == 3)
        {
            ApplyAnimation(playerid, !"CARRY", !"putdwn", 2.05, 1, 0, 0, 0, 900);
            p_ADD_SKLAD{playerid} = random(60);
            p_MONEY_JOB{playerid} = p_MONEY_JOB{playerid} + p_ADD_SKLAD{playerid};
            DisablePlayerCheckpoint(playerid);
            static const
                fmt_str_sklad[] = "Вы успешно перенесли {721729}%d кг {FFFFFF}чего то не придумал. Общая сумма составляет: {721729}%d кг {FFFFFF}чего то не придумал.";
            static
                str_sklad[sizeof(fmt_str_sklad) + 2 + 5 - 4];
            format(str_sklad, sizeof(str_sklad), fmt_str_sklad, p_ADD_SKLAD{playerid}, p_MONEY_JOB{playerid});
            SendClientMessage(playerid, -1, str_sklad);
            p_ADD_SKLAD{playerid} = 0;
            RemovePlayerAttachedObject(playerid, 0);
            NEXT_CHECKPPOINT(playerid);
            SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
            DeletePVar(playerid, !"start_job");
        }
    }
В OnDialogResponse​
PHP:
case DIALOG_INVITE_MINER:
{
    if(!response) return true;
    SetPVarInt(playerid, !"if_p_job", 1);
    SendClientMessage(playerid, -1, !"Вы успешно устроились на работу шахтера.");
    SendClientMessage(playerid, -1, !"Отправляйтесь на место отмеченное на мини-карте.");
    SetPlayerSkin(playerid, 16);
    SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
    NEXT_CHECKPPOINT(playerid);
}
case DIALOG_UNINVITE_MINER_LEAVE:
        {
            GivePlayerMoney(playerid, p_MONEY_JOB{playerid}*2);
            
            static const
                fmt_str_end [ ]  = "Ваш заработок за сегодня составил - {721729}%d";
            static
                str_end[ sizeof(fmt_str_end) + 6 - 2 ]
            ;
            format ( str_end, sizeof(str_end), fmt_str_end, p_MONEY_JOB{playerid}*2 );
            SendClientMessage(playerid, -1, str_end);
            SendClientMessage(playerid, -1, !"Вы успешно уволились с работы шахтера.");
            SetPlayerSkin(playerid, Pinfo[playerid][pSkin]);
            RemovePlayerAttachedObject(playerid, 3);
            RemovePlayerAttachedObject(playerid, 0);
            DeletePVar(playerid, !"if_p_job");
            p_ADD_SKLAD{playerid} = 0;
            DisablePlayerCheckpoint(playerid);
            DeletePVar(playerid, !"start_job");
        }
В OnGameModeInit​
PHP:
pickup_job_miner = CreatePickup (1275, 2, 1654.9946,-1837.2703,13.5468);
pickup_sklad_job_miner = CreatePickup (2060, 23, 1646.4149,-1833.3058,13.5469);
В OnPlayerKeyStateChange​
PHP:
if((((newkeys & KEY_SPRINT) && (newkeys & KEY_JUMP)) || (newkeys == KEY_FIRE) || (newkeys & KEY_SECONDARY_ATTACK  || (newkeys & KEY_SUBMISSION  && newkeys & KEY_SECONDARY_ATTACK ))) && GetPVarInt(playerid, !"start_job") == 3)
    {
        SendClientMessage(playerid, -1, !"Вы уронили Мешок, возьмите новый и перенесите его аккуратней чем предыдущий.");
        RemovePlayerAttachedObject(playerid, 0);
        NEXT_CHECKPPOINT(playerid);
        SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
        DeletePVar(playerid, !"start_job");
        return true;
    }
В OnPlayerEnterCheckpoint​
PHP:
if(GetPVarInt(playerid, !"if_p_job") == 1)
    {
        SendClientMessage(playerid, -1, !"Вы начали добывать что то еще не придумал");
        ApplyAnimation(playerid, !"SWORD", !"sword_4", 4.1, 1, 1, 1, 0, 0);
        SetTimerEx(!"M_TIMER", 5000, 0, !"i", playerid);
    }
В конец мода​
PHP:
forward
    M_TIMER(playerid);
public
    M_TIMER(playerid)
{
        RemovePlayerAttachedObject(playerid, 3);
        SendClientMessage(playerid, -1, !"Вы успешно добыли что то еще не придумал, отправляйтесь на склад.");
        SetPlayerAttachedObject(playerid, 0, 2060, 5, 0.2, 0.12, 0.12, -84.0, 0.0, 105.0);
        ClearAnimations(playerid, true);
        DisablePlayerCheckpoint(playerid);
        SetPVarInt(playerid, !"start_job", 3);
        ApplyAnimation(playerid, !"CARRY", !"CRRY_PRTIAL", 4.1, 0, 1, 1, 1, 1, 1);
        return true;
}
stock NEXT_CHECKPPOINT(playerid)
{
	new
		prandom = random(2)
	;
	SetPlayerCheckpoint(playerid, checkpoint_miner[prandom][0], checkpoint_miner[prandom][1], checkpoint_miner[prandom][2], 1.0);
}





[HR][/HR]​




 
Последнее редактирование:
Сверху Снизу