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

Работа - Шахтёра

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

Na'Vi

Хелоу ребята!

 

Держите работу шахтёра

 

для начала ко всем new добавляем

new SahtaJob; //пикап устройства
new Rabota[MAX_PLAYERS]; //проверка на работу
new ZolotoAll[MAX_PLAYERS]; //всего золота собрано
new PlayerOldSkin[MAX_PLAYERS]; //запишет ваш скин старый

в public OnGameModeInit() добавляем

SahtaJob = CreatePickup(1275,23,2750.3560,-2209.7473,17.9163);

в public OnPlayerConnect(playerid) добавим

Rabota[playerid] = 0;
ZolotoAll[playerid] = 0; 

в public OnPlayerEnterCheckpoint(playerid) действие на чекпойнт 

if(GetPVarInt(playerid,"Nesti") == 1)
     {
        DisablePlayerCheckpoint(playerid);
        RemovePlayerAttachedObject(playerid,4);
        ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 1);
        SendClientMessage(playerid,0xFFFFFFFF,"Вы донесли золото на склад");
        SetPlayerAttachedObject(playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000);
        SetPVarInt(playerid,"Nesti",0);
        SetPVarInt(playerid,"Proverka",0);
        return true;
    }

в public OnPlayerPickUpPickup(playerid, pickupid) создадим действие на пикап

if(pickupid == SahtaJob)
    {
        if(Rabota[playerid] == 0)
        {
            ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Устройство Шахта","Шахта - вы хотите начать работать Шахтёра?\nОплата за 1 kg добытой руды составляет 10$ \n\nВы действительно хотите устроиться на работу шахтёра?","Далее", "Выход");
            return true;
        }
        else if(Rabota[playerid] == 1)
        {
            format(string, sizeof(string),"Шахта - вы хотите уволиться с работы Шахтёра?\nШахта выплатить вам %d$ за добытое золото\n\nВы действительно хотите уволиться с работы шахтёра?",ZolotoAll[playerid]*10);
            ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Увольнение Шахта",string,"Далее", "Выход");
            return true;
        }
    }

в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) сделаем вывод диалога на экран

if(dialogid== 14) // Шахта
        {
            if(response)
            {
                if(Rabota[playerid] == 0)
                {
                    Rabota[playerid] = 1;
                    ZolotoAll[playerid] = 0;
                    PlayerOldSkin[playerid] = GetPlayerSkin(playerid);
                    SetPlayerSkin(playerid, 260);
                    SetPlayerAttachedObject(playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000);
                    SendClientMessage(playerid,0xFFFFFFFF,"Вы успешно устроились на работу шахтёра!");
                    SendClientMessage(playerid,0xFFFFFFFF,"Пройдите в шахту для начала добычи золота [золото находится на камнях в шахте]!");
                    return true;
                }
                else
                {
                    DisablePlayerCheckpoint(playerid);
                    ApplyAnimation(playerid,"PED", "IDLE_tired", 4.1, 0, 1, 1, 0, 1);
                    SetPlayerSkin(playerid,PlayerOldSkin[playerid]);
                    TextDrawHideForPlayer(playerid,WoodDraw[playerid]);
                    SendClientMessage(playerid,COLOR_WHITE,"{00FF00}Вы успешно уволились с работы шахтёра.");
                    format(string, sizeof(string),"{00FF00}Вы добыли {408080}%d kg{00FF00} руды и заработали %d$",ZolotoAll[playerid],ZolotoAll[playerid]*10);
                    SendClientMessage(playerid,COLOR_WHITE,string);
GiveMoney(playerid,ZolotoAll[playerid]*10);
                    ZolotoAll[playerid] = 0;
                    Rabota[playerid] = 0;
                    SetPVarInt(playerid,"Proverka",0);
                    SetPVarInt(playerid,"Nesti",0);
                    RemovePlayerAttachedObject(playerid,4);
                    RemovePlayerAttachedObject(playerid,3);
                    return true;
                }
            }
        }

в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) создадим действие на кнопку ALT чтобы начал добывать золото

if(newkeys == 1024)
{
if(MestaSahta(playerid))
           {
               if(Rabota[playerid] == 1)
               {
                   if(GetPVarInt(playerid,"Proverka") > 0)return(playerid,0xACFF59FF,"Вы уже добыли руду");
                   SendClientMessage(playerid,0xACFF59FF,"- Вы начали добывать золото");
                   ApplyAnimation(playerid, "SWORD", "sword_4", 4.0, 1, 0, 0, 0, 0);
                   SetPVarInt(playerid,"Proverka",1);
                   SetTimerEx("GiveZoloto", 3000, false, "i", playerid);
                   return true;
               }
           }
}

и в конец мода добавим таймер и места для добычи золота

forward GiveZoloto(playerid);
public GiveZoloto(playerid)
{
    ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 1, 1);
    RemovePlayerAttachedObject(playerid, 3);
    SendClientMessage(playerid,0xFFFFFFFF,"Отнесите золото на склад!");
    SetPlayerAttachedObject(playerid, 4, 2936, 1, 0.184699, 0.426247, 0.000000, 259.531341, 80.949592, 0.000000, 0.476124, 0.468181, 0.470769);
    SetPlayerCheckpoint(playerid,2756.5317,-2211.5769,17.9146,3.0);
    SetPlayerChatBubble(playerid,"{00FF00}+6",0x00FF00FF,30.0,8000);
    ZolotoAll[playerid] += 6;
    SetPVarInt(playerid,"Nesti",1);
    return true;
}
stock MestaSahta(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid,1.8,2758.6245,-2227.7559,17.9254) || IsPlayerInRangeOfPoint(playerid,1.8,2756.8035,-2230.5139,17.9284) || IsPlayerInRangeOfPoint(playerid,1.8,2759.0605,-2217.2356,17.9175)) {return true;}
    return false;
}

Вот и всё вроде
1. Можно добавлять больше мест для золота
2. Ид диалогов замените на свои и координаты тоже

3. Маппинга от работы у меня нету увы
для теста создал возле спавна на складе
Автор: Неизвестно
Переделывал : всю работу переделывал 
Basis так как были замечены баги и оплошности

  • Like 2

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


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

скрины

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


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

Не люблю такие работы которые больше ни с чем на сервере не перевязаны, но наверное работает и замечательно) Кто захочет сможет покупку металла прикрутить

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


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

@RaMzEsS, Можете переделать под то что вам удобно, я лишь помогаю новичкам! 

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


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

Это FS.Я видел такой.

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


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

Работа на 3+

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


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

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

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

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

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

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

Войти

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

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

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

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

×

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

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