Перейти к содержанию
Авторизация  
Alonso

Работа Дальнобойщика

Рекомендуемые сообщения

Alonso

Работа "Дальнобойщик" для мода GodFather. Работает 100%, перенесена в поселок.

Ко всем new добавим: 

new checkpointd[MAX_PLAYERS]; 
new acceptgruz[MAX_PLAYERS]; 
new Float:RandomGRUZ[15][3] = { 
{-1888.3518,-1729.9679,21.4561}, 
{828.0614,854.6743,12.6972}, 
{2493.7378,2772.9478,10.5368}, 
{2467.7561,1948.0699,9.9756}, 
{2792.6357,-2475.4504,13.3700}, 
{501.2822,-1356.1147,15.8554}, 
{-2102.5251,208.3739,35.0051}, 
{1316.2872,-912.7282,37.6074}, 
{1251.3525,248.5478,19.2124}, 
{1350.6709,-1753.4606,13.0613}, 
{-1946.8146,234.8263,33.5364}, 
{-2712.5488,232.3394,4.0357}, 
{1053.1881,-1029.8051,31.7937}, 
{2397.5576,1040.8143,10.5236}, 
{2397.5576,1040.8143,10.5236} };  

Потом ко всем 3d текстам и пикапам в public OnGameModeInit() добавим:

Create3DTextLabel("Подсказка:\nТут можно устроиться на работу: {7CFC00}Дальнобойщик{FFFFFF}\nЧтоб устроиться введите: {7CFC00}/go{FFFFFF}",0xFFFFFFFF,-50.0121,-269.3635,6.6332,20.0,0,1); 
CreatePickup(1239, 23, -50.0121,-269.3635,6.6332); 
    CreateDynamic3DTextLabel(" Взять груз дальнобойщику\n/delivery ",0xBFF600FF,-22.9128,-273.2436,5.4297,50.0); 
CreatePickup(1239,23,-22.9128,-273.2436,5.4297);  

Далее идем в public OnPlayerEnterCheckpoint(playerid) и добавляем:

if(acceptgruz[playerid] !=  0) 
    { 
    for(new i = 0x0; i < sizeof(RandomGRUZ); i++) 
    { 
        if(IsPlayerInRangeOfPoint(playerid,10.0,RandomGRUZ[i][0], RandomGRUZ[i][1], RandomGRUZ[i][2]) 
        { 
            if(IsPlayerInAnyVehicle(playerid)) 
            { 
                if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_WHITE,"Нет прицепа! Иди ищи прицеп."); 
                DisablePlayerCheckpoint(playerid); 
                acceptgruz[playerid] = 0; 
                GiveMoney(playerid,random(1000) + 6000); 
                format(string,sizeof(string),"Вы доставили груз и заработали %i$",rand); 
                SendClientMessage(playerid, COLOR_ORANGE,string); 
            } 
        } 
        else return  SendClientMessage(playerid, COLOR_WHITE,"Вы находитесь не в месте разгрузки груза!"); 
    }  

Потом добавим команды в public OnPlayerCommandText(playerid, cmdtext[]):

   if(strcmp(cmd, "/go", true) == 0) 
    { 
            if (GetPlayerState(playerid) == 1 && PlayerToPoint(3.0, playerid,-50.0121,-269.3635,6.6332)) return SendClientMessage(playerid, COLOR_GREY, "Server: В этом месте нельзя утроится на работу!"); 
                  { 
                    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Уволиться с работы можно будет только по истечению 5-ти часов отработанных по контракту."); 
                    ShowPlayerDialog(playerid,116,DIALOG_STYLE_MSGBOX,"Контракт","Вам была предложена работа \"Дальнобойщика\", если вы согласны, то подпишите контракт.","Подписать","Отказаться"); 
                    GettingJob[playerid] = 16; 
                    return 1; 
                } 
            else 
            { 
                SendClientMessage(playerid, COLOR_GREY, "Server: У Вас уже есть работа, или у Вас нет паспорта!"); 
            } 
        } 
        return 1; 
    }   

И
 

if(strcmp(cmd,"/delivery",true) == 0) 
{ 
        if(PlayerInfo[playerid][pJob] == 16) return SendClientMessage(playerid,COLOR_GREY,"Вы не работаете дальнобойщиком!"); 
        if(IsPlayerInRangeOfPoint(playerid,10.0,-22.9128,-273.2436,5.4297)) return SendClientMessage(playerid,COLOR_GREY,"Вы находитесь не в месте загрузки груза!"); 
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Вы не в транспорте!"); 
        new carid = GetPlayerVehicleID(playerid); 
        if(GetVehicleModel(carid) == 514) return   SendClientMessage(playerid,COLOR_GREY,"Вы не в машине дальнобойщика!"); 
        if(IsAnyTrailerAttachedToVehicle(carid)) return SendClientMessage(playerid,COLOR_GREY,"У вас не прицеплен прицеп!"); 
        if(acceptgruz[playerid] != 0) return SendClientMessage(playerid,COLOR_GREY,"Вы уже загрузили груз!"); 
        DisablePlayerCheckpoint(playerid); 
        GameTextForPlayer(playerid, "~r~MEC¦O PA?‚PY?K… ЊOMEЌE®O ®A PAѓAPE", 2500, 1); 
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы загрузили груз, отвезите его заказчику!"); 
        acceptgruz[playerid] = 1; 
          new rand = random(sizeof(RandomGRUZ)); 
        SetPlayerCheckpoint(playerid, RandomGRUZ[rand][0], RandomGRUZ[rand][1], RandomGRUZ[rand][2], 8.0); 
          return true ; 
}   

Все связанное с транспортом для этой работы.

В конце мода создадим сток: 

stock IsAnyTrailerAttachedToVehicle(vehicleid) 
{ 
    new trailerid = GetVehicleTrailer(vehicleid); 
    new modelid = GetVehicleModel(trailerid); 
    if(modelid == 435 || modelid == 591) return true; 
    return false; 
}   

Это проверка на прицеп.
Далее ко всем машинам добавим: 

    AddStaticVehicleEx(514,-61.0347,-324.9564,6.0130,270.8889,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(514,-61.4161,-317.8141,6.0171,269.9076,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(514,-61.5548,-310.8012,6.0167,270.9304,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(514,-61.5602,-303.8195,6.0183,269.4847,-1,-1,CAR_SPAWN_TIME); 
       AddStaticVehicleEx(514,-39.8904,-376.4206,6.0179,0.5866,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(514,-46.6055,-376.6276,5.9900,359.6903,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(591,0.6693,-377.4727,6.0802,1.8403,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(435,-6.3759,-377.5096,6.0312,1.8223,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(591,-13.1154,-377.6660,6.0938,358.7585,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(435,-19.5792,-377.7712,6.0729,359.7721,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(591,-32.7590,-377.7761,6.0680,2.6862,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(435,-26.5159,-377.7709,6.1003,2.0099,-1,-1,CAR_SPAWN_TIME);   

Тут и прицепы и тягачи.
---
Дополнительно:
Проверка на машины, когда неработающий игрок сядет в машину дальнобойщика, его выкинет.

Так же ко всем машинам добавим (только с переменными): 

    truck[0] = AddStaticVehicleEx(514,-61.0347,-324.9564,6.0130,270.8889,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(514,-61.4161,-317.8141,6.0171,269.9076,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(514,-61.5548,-310.8012,6.0167,270.9304,-1,-1,CAR_SPAWN_TIME); 
    AddStaticVehicleEx(514,-61.5602,-303.8195,6.0183,269.4847,-1,-1,CAR_SPAWN_TIME); 
       AddStaticVehicleEx(514,-39.8904,-376.4206,6.0179,0.5866,-1,-1,CAR_SPAWN_TIME); 
    truck[1] = AddStaticVehicleEx(514,-46.6055,-376.6276,5.9900,359.6903,-1,-1,CAR_SPAWN_TIME);   

Затем в public CarEnter(playerid,carid) добавим:

if(carid >= truck[0] && carid <= truck[1]) 
    { 
        if(PlayerInfo[playerid][pJob] == 16) return SendClientMessage(playerid,COLOR_LIGHTRED,"Вы не работаете Дальнобойщиком!"); 
        RemovePlayerFromVehicle(playerid); 
    }  

В данном готовом решении я использовал 16 id работы по счету, меняйте на свою.

Автор урока: H1SON

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

>мануалы для gf

>2017 год

 

Если уж и выкладывать подобное, то переделывать в современный вид.

Изменено пользователем Веб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ShiGanKa

 

 

GameTextForPlayer(playerid, "~r~MEC¦O PA?‚PY?K… ЊOMEЌE®O ®A PAѓAPE", 2500, 1);

Советую скачать плагин CRP и писать на русском. Ведь это удобнее.

Изменено пользователем ShiGanKa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Есть плагин по лучше от Ziggi, только там проблемы есть. А так, можно обойтись стоком.

RusToGame(string[])
{
        new result[256];
        for (new i; i < 256; i++)
         {
         switch(string[i])
          {
          case 'а':result[i] = 'a';
          case 'А':result[i] = 'A';
          case 'б':result[i] = '—';
          case 'Б':result[i] = 'Ђ';
          case 'в':result[i] = 'ў';
          case 'В':result[i] = '‹';
          case 'г':result[i] = '™';
          case 'Г':result[i] = '‚';
          case 'д':result[i] = 'љ';
          case 'Д':result[i] = 'ѓ';
          case 'е':result[i] = 'e';
          case 'Е':result[i] = 'E';
          case 'ё':result[i] = 'e';
          case 'Ё':result[i] = 'E';
          case 'ж':result[i] = '›';
          case 'Ж':result[i] = '„';
          case 'з':result[i] = 'џ';
          case 'З':result[i] = '€';
          case 'и':result[i] = 'њ';
          case 'И':result[i] = '…';
          case 'Й':result[i] = '…';
          case 'й':result[i] = 'ќ';
          case 'к':result[i] = 'k';
          case 'К':result[i] = 'K';
          case 'л':result[i] = 'ћ';
          case 'Л':result[i] = '‡';
          case 'м':result[i] = 'Ї';
          case 'М':result[i] = 'M';
          case 'н':result[i] = '®';
          case 'Н':result[i] = '­';
          case 'о':result[i] = 'o';
          case 'О':result[i] = 'O';
          case 'п':result[i] = 'Ј';
          case 'П':result[i] = 'Њ';
          case 'р':result[i] = 'p';
          case 'Р':result[i] = 'P';
          case 'с':result[i] = 'c';
          case 'С':result[i] = 'C';
          case 'т':result[i] = '¦';
          case 'Т':result[i] = 'Џ';
          case 'у':result[i] = 'y';
          case 'У':result[i] = 'Y';
          case 'ф':result[i] = '';
          case 'Ф':result[i] = 'Ѓ';
          case 'х':result[i] = 'x';
          case 'Х':result[i] = 'X';
          case 'ц':result[i] = ' ';
          case 'Ц':result[i] = '‰';
          case 'ч':result[i] = '¤';
          case 'Ч':result[i] = 'Ќ';
          case 'ш':result[i] = 'Ґ';
          case 'Ш':result[i] = 'Ћ';
          case 'щ':result[i] = 'Ў';
          case 'Щ':result[i] = 'Љ';
          case 'ь':result[i] = '©';
          case 'Ь':result[i] = '’';
          case 'ъ':result[i] = 'ђ';
          case 'Ъ':result[i] = '§';
          case 'ы':result[i] = 'Ё';
          case 'Ы':result[i] = '‘';
          case 'э':result[i] = 'Є';
          case 'Э':result[i] = '“';
          case 'ю':result[i] = '«';
          case 'Ю':result[i] = '”';
          case 'я':result[i] = '¬';
          case 'Я':result[i] = '•';
          default:result[i]=string[i];
          }
         }
        return result;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.