Question

Pavel Waylon
Активный

Привет, я делал работу, но я хочу сделать что бы выдавался скин и когда человек заканчивал работать у него он пропадал

 

Спойлер

new LesJob[MAX_PLAYERS];

 

Спойлер

public OnPlayerDisconnect(playerid, reason)
{
    LesJob[playerid] = 0;
}

 

Спойлер

        if(LesJob[playerid] == 1)
        {
            if(IsPlayerAttachedObjectSlotUsed(playerid, 1))
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Информация: {ffffff}Вы уронили древесину.");
                RemovePlayerAttachedObject(playerid,1);// Удаляем объект из рук
                RemovePlayerAttachedObject(playerid,2);// Удаляем объект из рук
                SetPlayerAttachedObject(playerid,0,341,6);
                DisablePlayerCheckpoint(playerid);//Удаляем старый чекпоинт
                pLes[playerid]=cLesIN;//Показываем снова откуда брать
                  ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
                switch(random(8))
                {
                    case 0: SetPlayerCheckpoint(playerid, 1777.4689,1376.9280,9.7621, 2.0);
                    case 1: SetPlayerCheckpoint(playerid, 1770.4738,1370.3153,9.7621, 2.0);
                    case 2: SetPlayerCheckpoint(playerid, 1765.9247,1347.9548,9.7556, 2.0);
                    case 3: SetPlayerCheckpoint(playerid, 1747.8583,1343.0192,9.7556, 2.0);
                    case 4: SetPlayerCheckpoint(playerid, 1751.6307,1335.2753,9.7556, 2.0);
                    case 5: SetPlayerCheckpoint(playerid, 1758.4377,1415.1527,9.7621, 2.0);
                    case 6: SetPlayerCheckpoint(playerid, 1776.0068,1406.7897,9.7814, 2.0);
                    case 7: SetPlayerCheckpoint(playerid, 1808.8218,1417.3912,9.7621, 2.0);
                }
            }
        }
        ////////////////////////////////////////////////////////////////////////////
    }

 

Спойлер

      if(LesJob[playerid] == 1)
    {
        switch(pLes[playerid])
         {
                case cLesIN://Пришли,взяли,нам показали куда идти.
                {
                    SetPlayerSkin(playerid,161);
                    new player_state = GetPlayerState(playerid);
                    if(player_state == PLAYER_STATE_DRIVER || player_state == PLAYER_STATE_PASSENGER) return false;
                    DisablePlayerCheckpoint(playerid);
                    pLes[playerid]=cLesOUT;
                    if(pila[playerid] == 1)
                    {
                        ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,3000,0);
                        SetTimerEx("WoodLoaded",3000,false,"i",playerid);
                    }
                    else
                    {
                        ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,9000,0);
                        SetTimerEx("WoodLoaded",9000,false,"i",playerid);
                    }
                }
                case cLesOUT:
                {
                    bag[playerid] = 20 + random(60);
                    DisablePlayerCheckpoint(playerid);//Удаляем старый чекпоинт
                    pLes[playerid]=cLesIN;//Показываем снова откуда брать
                    RemovePlayerAttachedObject(playerid,1);// Удаляем объект из рук
                    RemovePlayerAttachedObject(playerid,2);// Удаляем объект из рук
                    SetPlayerAttachedObject(playerid,0,341,6);
                       ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
                    switch(random(8))
                    {
                        case 0: SetPlayerCheckpoint(playerid, 1777.4689,1376.9280,9.7621, 2.0);
                        case 1: SetPlayerCheckpoint(playerid, 1770.4738,1370.3153,9.7621, 2.0);
                        case 2: SetPlayerCheckpoint(playerid, 1765.9247,1347.9548,9.7556, 2.0);
                        case 3: SetPlayerCheckpoint(playerid, 1747.8583,1343.0192,9.7556, 2.0);
                        case 4: SetPlayerCheckpoint(playerid, 1751.6307,1335.2753,9.7556, 2.0);
                        case 5: SetPlayerCheckpoint(playerid, 1758.4377,1415.1527,9.7621, 2.0);
                        case 6: SetPlayerCheckpoint(playerid, 1776.0068,1406.7897,9.7814, 2.0);
                        case 7: SetPlayerCheckpoint(playerid, 1808.8218,1417.3912,9.7621, 2.0);
                    }
                    new stri[512];
                    bagALL[playerid] += bag[playerid];
                    format(stri, 512, "Информация: {ffffff}Вы принесли: %d древесины.", bag[playerid]);//Простейший формат.
                    SendClientMessage(playerid, COLOR_YELLOW, stri);//Отошлем сколько в итоге мы перенесли
                }
          }
      }

 

Спойлер

      if(LesJob[playerid] == 1)
    {
        switch(pLes[playerid])
         {
                case cLesIN://Пришли,взяли,нам показали куда идти.
                {
                    SetPlayerSkin(playerid,161);
                    new player_state = GetPlayerState(playerid);
                    if(player_state == PLAYER_STATE_DRIVER || player_state == PLAYER_STATE_PASSENGER) return false;
                    DisablePlayerCheckpoint(playerid);
                    pLes[playerid]=cLesOUT;
                    if(pila[playerid] == 1)
                    {
                        ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,3000,0);
                        SetTimerEx("WoodLoaded",3000,false,"i",playerid);
                    }
                    else
                    {
                        ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,9000,0);
                        SetTimerEx("WoodLoaded",9000,false,"i",playerid);
                    }
                }
                case cLesOUT:
                {
                    bag[playerid] = 20 + random(60);
                    DisablePlayerCheckpoint(playerid);//Удаляем старый чекпоинт
                    pLes[playerid]=cLesIN;//Показываем снова откуда брать
                    RemovePlayerAttachedObject(playerid,1);// Удаляем объект из рук
                    RemovePlayerAttachedObject(playerid,2);// Удаляем объект из рук
                    SetPlayerAttachedObject(playerid,0,341,6);
                       ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
                    switch(random(8))
                    {
                        case 0: SetPlayerCheckpoint(playerid, 1777.4689,1376.9280,9.7621, 2.0);
                        case 1: SetPlayerCheckpoint(playerid, 1770.4738,1370.3153,9.7621, 2.0);
                        case 2: SetPlayerCheckpoint(playerid, 1765.9247,1347.9548,9.7556, 2.0);
                        case 3: SetPlayerCheckpoint(playerid, 1747.8583,1343.0192,9.7556, 2.0);
                        case 4: SetPlayerCheckpoint(playerid, 1751.6307,1335.2753,9.7556, 2.0);
                        case 5: SetPlayerCheckpoint(playerid, 1758.4377,1415.1527,9.7621, 2.0);
                        case 6: SetPlayerCheckpoint(playerid, 1776.0068,1406.7897,9.7814, 2.0);
                        case 7: SetPlayerCheckpoint(playerid, 1808.8218,1417.3912,9.7621, 2.0);
                    }
                    new stri[512];
                    bagALL[playerid] += bag[playerid];
                    format(stri, 512, "Информация: {ffffff}Вы принесли: %d древесины.", bag[playerid]);//Простейший формат.
                    SendClientMessage(playerid, COLOR_YELLOW, stri);//Отошлем сколько в итоге мы перенесли
                }
          }
      }

 

Спойлер

    if(LesJob[playerid] == 1)
    {
        if(IsPlayerAttachedObjectSlotUsed(playerid, 1))
        {
             if((newkeys & KEY_JUMP) && !(oldkeys & KEY_JUMP) || (newkeys & KEY_FIRE) || (newkeys & KEY_CROUCH))
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Информация: {ffffff}Вы уронили древесину.");
                DisablePlayerCheckpoint(playerid);//Удаляем старый чекпоинт
                pLes[playerid]=cLesIN;//Показываем снова откуда брать
                RemovePlayerAttachedObject(playerid,1);// Удаляем объект из рук
                RemovePlayerAttachedObject(playerid,2);
                SetPlayerAttachedObject(playerid,0,341,6);
                  ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
                switch(random(8))
                {
                    case 0: SetPlayerCheckpoint(playerid, 1777.4689,1376.9280,9.7621, 2.0);
                    case 1: SetPlayerCheckpoint(playerid, 1770.4738,1370.3153,9.7621, 2.0);
                    case 2: SetPlayerCheckpoint(playerid, 1765.9247,1347.9548,9.7556, 2.0);
                    case 3: SetPlayerCheckpoint(playerid, 1747.8583,1343.0192,9.7556, 2.0);
                    case 4: SetPlayerCheckpoint(playerid, 1751.6307,1335.2753,9.7556, 2.0);
                    case 5: SetPlayerCheckpoint(playerid, 1758.4377,1415.1527,9.7621, 2.0);
                    case 6: SetPlayerCheckpoint(playerid, 1776.0068,1406.7897,9.7814, 2.0);
                    case 7: SetPlayerCheckpoint(playerid, 1808.8218,1417.3912,9.7621, 2.0);
                }
            }
        }
    }

 

Спойлер

      if(IsPlayerInRangeOfPoint(playerid,2.0,1831.1531,1450.1713,9.7621))
    {
          if(newkeys == KEY_WALK)
          {
               if(LesJob[playerid] == 0)
             {
                  ShowPlayerDialogFix(playerid,d3,DIALOG_STYLE_MSGBOX,""hEVENCE"Лесопилка","{ffffff}Вы прибыли на работу "hEVENCE"лесоруба.\n{ffffff}Ваша задача состоит в том, чтобы срубать деревья и носить древесину на склад.\n\n{FFFFFF}Вы желаете начать работу?","Да","Нет");//Покажем диалог если зашли на пикап
            }
            if(LesJob[playerid] == 1)
            {
                ShowPlayerDialogFix(playerid,d4,DIALOG_STYLE_MSGBOX,""hEVENCE"Лесопилка","{ffffff}Вы желаете закончить рабочий день и забрать деньги?","Да","Нет");//Покажем диалог если зашли на пикап
            }
        }
      }

 

Спойлер

        case d3:
        {
            if(!response) return true;
              if(response)//Если нажали на левую кнопку
             {
                 if(LesJob[playerid] == 0)
                 {
                        SetPlayerSkin(playerid,161);
                        SendClientMessage(playerid, COLOR_YELLOW, "Информация: {ffffff}Теперь отправляйтесь срубать деревья в лес.");
                        LesJob[playerid] = 1;
                        pLes[playerid]=cLesIN;//Установим значения чекпоинта на показ его.
                        SetPlayerAttachedObject(playerid,0,341,6);
                        switch(random(8))
                        {
                            case 0: SetPlayerCheckpoint(playerid, 1777.4689,1376.9280,9.7621, 2.0);
                            case 1: SetPlayerCheckpoint(playerid, 1770.4738,1370.3153,9.7621, 2.0);
                            case 2: SetPlayerCheckpoint(playerid, 1765.9247,1347.9548,9.7556, 2.0);
                            case 3: SetPlayerCheckpoint(playerid, 1747.8583,1343.0192,9.7556, 2.0);
                            case 4: SetPlayerCheckpoint(playerid, 1751.6307,1335.2753,9.7556, 2.0);
                            case 5: SetPlayerCheckpoint(playerid, 1758.4377,1415.1527,9.7621, 2.0);
                            case 6: SetPlayerCheckpoint(playerid, 1776.0068,1406.7897,9.7814, 2.0);
                            case 7: SetPlayerCheckpoint(playerid, 1808.8218,1417.3912,9.7621, 2.0);
                        }
                  }
             }
        }
        case d4:
        {
            if(!response) return true;
              if(response)//Если нажали на левую кнопку
             {
                if(LesJob[playerid] == 1)
                {

                    LesJob[playerid] = 0;//Вернем на 0 чтобы мы могли снова работать
                    new string[512];
                    format(string, 512, "Информация: {ffffff}Вы заработали: {63BD4E}%d рублей{ffffff}.", bagALL[playerid]*3);//Кол-во умноженное на то же число что и зп.
                    SendClientMessage(playerid, COLOR_GREEN, string);
                    if(PLAYER_DATA[playerid][data_MEMBER] != 0 && PLAYER_DATA[playerid][data_JOBIN] == 1)SetPlayerSkinAC(playerid,PLAYER_DATA[playerid][data_SKINM]);
                       else SetPlayerSkinAC(playerid,PLAYER_DATA[playerid][data_OSNSLOT]);
                    give_player_money(playerid,bagALL[playerid]*3,"#5");
                    bagALL[playerid] = 0;
                    bag[playerid] = 0;
                    DisablePlayerCheckpoint(playerid);//Удаляем старый чекпоинт
                    RemovePlayerAttachedObject(playerid,1);// Удаляем объект из рук
                    RemovePlayerAttachedObject(playerid,0);// Удаляем объект из рук
                    RemovePlayerAttachedObject(playerid,2);// Удаляем объект из рук
                  }
             }
        }
        case d5:
        {
              if(response)//Если нажали на левую кнопку
             {
                if(pila[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "У Вас уже есть новая бензопила!");
                if(LesJob[playerid] != 1) return SendClientMessage(playerid, COLOR_GREY, "Только для лесорубов!");
                if(get_player_money(playerid) < 1000) return SendClientMessage(playerid, COLOR_YELLOW, "Ошибка: {ffffff}У Вас недостаточно средств!");
                give_player_money(playerid,-1000,"#5");
                 pila[playerid] = 1;
                 SendClientMessage(playerid, COLOR_YELLOW, "Спасибо за покупку! Удачи тебе в работе...");
             }
         }

 

Share this post


Link to post

3 answers to this question

  • 0
Pavel Waylon
Активный

@Lil Pokemon А как сделать после как игрок закончит работать скин обратно давался?

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Pulbusha
      By Pulbusha
      В далеком 2017-2018 году сущестовал сервер GTA-RP (возможно он существует и сейчас) Появилась мысль о создании крмп сервера в стиле старых проектов тех годов (GTA-RP, Radmir RP, Amazing RP). Скажите, будет ли интерес к такому серверу и вообще интересно ли это а также кто хотел бы присоединиться к разработке?