Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 15 из 15
  1. #11
    Аватар для middlematt
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.01.2016
    Сообщений
    40
    Репутация:
    7 ±
    Что, простите?

    PHP код:
    if(gazeta{playerid} == 3|| gazeta{playerid} == 4||gazeta{playerid} == ||gazeta{playerid} == ||gazeta{playerid} == 10
    ||gazeta{playerid} == 12||gazeta{playerid} == 15||gazeta{playerid} == 16||gazeta{playerid} == 18||gazeta{playerid} == 21
    ||gazeta{playerid} == 23||gazeta{playerid} == 24||gazeta{playerid} == 26||gazeta{playerid} == 27||gazeta{playerid} == 28
    ||gazeta{playerid} == 29||gazeta{playerid} == 31||gazeta{playerid} == 32||gazeta{playerid} == 33||gazeta{playerid} == 35
    ||gazeta{playerid} == 37||gazeta{playerid} == 38)

    {
        switch(
    gazeta{playerid})
        {
            case 
    3:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}1{FFFFFF}/{FF0000}22");
            case 
    4:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}2{FFFFFF}/{FF0000}22");
            case 
    5:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}3{FFFFFF}/{FF0000}22");
            case 
    9:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}4{FFFFFF}/{FF0000}22");
            case 
    10:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}5{FFFFFF}/{FF0000}22");
            case 
    12:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}6{FFFFFF}/{FF0000}22");
            case 
    15:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}7{FFFFFF}/{FF0000}22");
            case 
    16:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}8{FFFFFF}/{FF0000}22");
            case 
    18:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}9{FFFFFF}/{FF0000}22");
            case 
    21:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}10{FFFFFF}/{FF0000}22");
            case 
    23:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}11{FFFFFF}/{FF0000}22");
            case 
    24:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}12{FFFFFF}/{FF0000}22");
            case 
    26:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}13{FFFFFF}/{FF0000}22");
            case 
    27:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}14{FFFFFF}/{FF0000}22");
            case 
    28:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}15{FFFFFF}/{FF0000}22");
            case 
    29:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}16{FFFFFF}/{FF0000}22");
            case 
    31:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}17{FFFFFF}/{FF0000}22");
            case 
    32:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}18{FFFFFF}/{FF0000}22");
            case 
    33:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}19{FFFFFF}/{FF0000}22");
            case 
    35:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}20{FFFFFF}/{FF0000}22");
            case 
    37:SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}21{FFFFFF}/{FF0000}22");
            case 
    38:
            {
                
    SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}22{FFFFFF}/{FF0000}22");
                
    SendClientMessage(playerid,0xAA3333FF,!"Отправляйтесь за наградой!");
            }
        }
        
    ApplyAnimation(playerid, !"RYDER", !"RYD_BECKON_01"4.1falsefalsefalsefalse1000false);//анимация выкидывания газеты
        
    DisablePlayerCheckpoint(playerid);
        
    SetPlayerCheckpoint(playerid,job_coord[gazeta{playerid}][0],job_coord[gazeta{playerid}][1],job_coord[gazeta{playerid}][2],2.0);//даём координаты игроку из массива job_coord
        
    return 1;
        


  2. #12
    Аватар для Igor_Stalker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.01.2016
    Адрес
    minsk
    Сообщений
    40
    Репутация:
    2 ±
    Цитата Сообщение от middlematt Посмотреть сообщение
    Что, простите?
    Предложи свой вариант.

  3. #13
    Аватар для middlematt
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.01.2016
    Сообщений
    40
    Репутация:
    7 ±
    Цитата Сообщение от Igor_Stalker Посмотреть сообщение
    Предложи свой вариант.
    PHP код:
    switch (gazeta{playerid})
    {
        case 
    3..37:
        {
            static const
                
    fmt_str0[] = "Доставлено газет: {00FF00}%d{FFFFFF}/{FF0000}22";
            new
                
    str0[sizeof (fmt_str0)];
            
    format(str0sizeof (str0), fmt_str0, (gazeta{playerid} - 2));
            
    SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}21{FFFFFF}/{FF0000}22");
        }
        case 
    38
        {
            
    SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}22{FFFFFF}/{FF0000}22");
            
    SendClientMessage(playerid,0xAA3333FF,!"Отправляйтесь за наградой!");
        }
        
        
    ApplyAnimation(playerid, !"RYDER", !"RYD_BECKON_01"4.1falsefalsefalsefalse1000false);
        
    DisablePlayerCheckpoint(playerid);
        return 
    SetPlayerCheckpoint(playerid,job_coord[gazeta{playerid}][0],job_coord[gazeta{playerid}][1],job_coord[gazeta{playerid}][2],2.0);


  4. #14
    Аватар для Igor_Stalker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.01.2016
    Адрес
    minsk
    Сообщений
    40
    Репутация:
    2 ±
    Цитата Сообщение от middlematt Посмотреть сообщение
    PHP код:
    switch (gazeta{playerid})
    {
        case 
    3..37:
        {
            static const
                
    fmt_str0[] = "Доставлено газет: {00FF00}%d{FFFFFF}/{FF0000}22";
            new
                
    str0[sizeof (fmt_str0)];
            
    format(str0sizeof (str0), fmt_str0, (gazeta{playerid} - 2));
            
    SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}21{FFFFFF}/{FF0000}22");
        }
        case 
    38
        {
            
    SendClientMessage(playerid,0xFFFFFFFF,!"Доставлено газет: {00FF00}22{FFFFFF}/{FF0000}22");
            
    SendClientMessage(playerid,0xAA3333FF,!"Отправляйтесь за наградой!");
        }
        
        
    ApplyAnimation(playerid, !"RYDER", !"RYD_BECKON_01"4.1falsefalsefalsefalse1000false);
        
    DisablePlayerCheckpoint(playerid);
        return 
    SetPlayerCheckpoint(playerid,job_coord[gazeta{playerid}][0],job_coord[gazeta{playerid}][1],job_coord[gazeta{playerid}][2],2.0);

    ты хоть сам протестируй.а потом выкладывай сюда.Ничего не работает

  5. #15
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Можно сделать так
      Открыть/закрыть
    PHP код:
    /*----------------------------------------------------------------
    Скрипт написал Igor_Stalker
    Благодарю Pa4enka за помощь!

    Эта работа была скопирована
    с сервера Samp - Сектор Магический Остров

    Информация о работе: мы должны в течении 10 минут доставить газеты
    по району.Для работы нам дают велосипед

    При копировании на форумы и паблики, указывайте автора Igor_Stalker
    По вопросам Skype (igorkrutoi3)
    ------------------------------------------------------------------*/
    #include <a_samp>

    #define PEDDLER_JOB_PICKUP_POS    2145.4985, 2834.3423, 10.8203

    //переменные
    new PeddlerPickupID,
        
    PeddlerCheckpointID[MAX_PLAYERS char],
        
    PeddlerTimerID[MAX_PLAYERS],
        
    PeddlerDefaultSkin[MAX_PLAYERS],
        
    TotalNewspaperID;


    enum
    {
        
    PJ_CP_TYPE_NEXT
        
    PJ_CP_TYPE_CHECK
        
    PJ_CP_TYPE_LAST
        
    PJ_CP_TYPE_END
    };
    enum e_PEDDLER_JOB_INFO
    {
        
    Float:pj_PosX
        
    Float:pj_PosY
        
    Float:pj_PosZ
        
    pj_CPType,
        
    pj_NewspaperID
    };
    new 
    Float:pjInfo[][e_PEDDLER_JOB_INFO]=//координаты чекпоинтов
    {
        {
    2117.79202781.573010.3300PJ_CP_TYPE_NEXT0}, //0
        
    {2087.14972776.943110.3299PJ_CP_TYPE_NEXT0}, //1
        
    {2046.45212750.549810.3318PJ_CP_TYPE_NEXT0}, //2
        
    {1996.93012750.180910.3321PJ_CP_TYPE_CHECK0}, //3
        
    {1954.01772749.779810.3325PJ_CP_TYPE_CHECK0}, //4
        
    {1896.79042720.840810.3278PJ_CP_TYPE_CHECK0}, //5
        
    {1699.50612721.120110.3323PJ_CP_TYPE_NEXT0}, //6
        
    {1694.60612805.851610.3318PJ_CP_TYPE_NEXT0}, //7
        
    {1664.77662829.185510.3316PJ_CP_TYPE_NEXT0}, //8
        
    {1551.20952829.028110.3325PJ_CP_TYPE_CHECK0}, //9
        
    {1558.49402814.414610.3251PJ_CP_TYPE_CHECK0}, //10
        
    {1618.13212813.303210.3328PJ_CP_TYPE_NEXT0}, //11
        
    {1674.79282813.247610.3312PJ_CP_TYPE_CHECK0}, //12
        
    {1679.50262743.339110.3323PJ_CP_TYPE_NEXT0}, //13
        
    {1645.33522741.802210.3304PJ_CP_TYPE_NEXT0}, //14
        
    {1599.26862741.440410.3284PJ_CP_TYPE_CHECK0}, //15
        
    {1536.98172720.838110.3256PJ_CP_TYPE_CHECK0}, //16
        
    {1552.63322670.743910.3326PJ_CP_TYPE_NEXT0}, //17
        
    {1579.72292663.645010.3325PJ_CP_TYPE_CHECK0}, //18
        
    {1579.36612603.862110.3237PJ_CP_TYPE_NEXT0}, //19
        
    {1539.33222598.062310.3300PJ_CP_TYPE_NEXT0}, //20
        
    {1487.10462597.740710.3296PJ_CP_TYPE_CHECK0}, //21
        
    {1348.85032598.130910.3256PJ_CP_TYPE_NEXT0}, //22
        
    {1267.69852598.249310.3305PJ_CP_TYPE_CHECK0}, //23
        
    {1279.21222582.531510.3304PJ_CP_TYPE_CHECK0}, //24
        
    {1347.59292581.745110.3315PJ_CP_TYPE_NEXT0}, //25
        
    {1416.14402582.412110.3321PJ_CP_TYPE_CHECK0}, //26
        
    {1512.46642581.418510.3254PJ_CP_TYPE_CHECK0}, //27
        
    {1563.67202582.023710.3325PJ_CP_TYPE_CHECK0}, //28
        
    {1594.81372602.505910.3315PJ_CP_TYPE_CHECK0}, //29
        
    {1593.77922673.961410.3325PJ_CP_TYPE_NEXT0}, //30
        
    {1568.55202725.426310.3249PJ_CP_TYPE_CHECK0}, //31
        
    {1651.65142725.177010.3330PJ_CP_TYPE_CHECK0}, //32
        
    {1673.93422725.416010.3257PJ_CP_TYPE_CHECK0}, //33
        
    {1703.00232705.650910.3302PJ_CP_TYPE_NEXT0}, //34
        
    {1887.79752705.666310.3255PJ_CP_TYPE_CHECK0}, //35
        
    {1931.71772734.891810.3309PJ_CP_TYPE_NEXT0}, //36
        
    {2056.58202734.519310.3327PJ_CP_TYPE_LAST0}, //37
        
    {2135.97532833.240210.2240PJ_CP_TYPE_END0}//38
    };
    #define MAX_PJ_CHECHPOINTS sizeof(pjInfo)


    enum e_PEDDLER_BIKE_INFO
    {
        
    pb_VehicleModel,
        
    Float:pb_PosX
        
    Float:pb_PosY
        
    Float:pb_PosZ,
        
    Float:pb_PosA,
        
    pb_Color1,
        
    pb_Color2,
        
    pb_RespawnDelay
    };
    new 
    PeddlerBikeID[2],
        
    PeddlerBikeInfo[][e_PEDDLER_BIKE_INFO] =
    {
        {
    5092139.29572841.231010.3323176.83987760},
        {
    5092140.77492841.178510.3328175.23337760},
        {
    5092142.40552841.092310.3324178.23307760},
        {
    5092143.94432841.053710.3326181.79207760},
        {
    5092145.69482841.200010.3323173.18407760}
    };
    #define MAX_PEDDLER_BICYCLES sizeof(PeddlerBikeInfo)




    public OnFilterScriptInit()//если использовать как мод
    {
        for(new 
    icMAX_PJ_CHECHPOINTSi++)// Вычисляем номер доставленной газеты относительно чекпоинта
        
    {
            if(
    pjInfo[i][pj_CPType] == PJ_CP_TYPE_CHECK)
            {
                
    pjInfo[i][pj_NewspaperID] = ++c;
            }
            else if(
    pjInfo[i][pj_CPType] == PJ_CP_TYPE_LAST)
            {
                
    TotalNewspaperID 
                
    pjInfo[i][pj_NewspaperID] = ++c;
            }
        }


        
    PeddlerBikeID[0] = AddStaticVehicleEx(    PeddlerBikeInfo[0][pb_VehicleModel], 
                                                
    PeddlerBikeInfo[0][pb_PosX],
                                                
    PeddlerBikeInfo[0][pb_PosY],
                                                
    PeddlerBikeInfo[0][pb_PosZ],
                                                
    PeddlerBikeInfo[0][pb_PosA],
                                                
    PeddlerBikeInfo[0][pb_Color1],
                                                
    PeddlerBikeInfo[0][pb_Color2],
                                                
    PeddlerBikeInfo[0][pb_RespawnDelay]);
        

    #if MAX_PEDDLER_BICYCLES-1 > 1
        
    for(new 1MAX_PEDDLER_BICYCLES-1i++)
        {
            
    AddStaticVehicleEx(    PeddlerBikeInfo[i][pb_VehicleModel], 
                                
    PeddlerBikeInfo[i][pb_PosX],
                                
    PeddlerBikeInfo[i][pb_PosY],
                                
    PeddlerBikeInfo[i][pb_PosZ],
                                
    PeddlerBikeInfo[i][pb_PosA],
                                
    PeddlerBikeInfo[i][pb_Color1],
                                
    PeddlerBikeInfo[i][pb_Color2],
                                
    PeddlerBikeInfo[i][pb_RespawnDelay]);
        }
    #endif

        
    PeddlerBikeID[1] = AddStaticVehicleEx(    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_VehicleModel], 
                                                
    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_PosX],
                                                
    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_PosY],
                                                
    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_PosZ],
                                                
    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_PosA],
                                                
    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_Color1],
                                                
    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_Color2],
                                                
    PeddlerBikeInfo[MAX_PEDDLER_BICYCLES-1][pb_RespawnDelay]);
        
        
    PeddlerPickupID CreatePickup(155023PEDDLER_JOB_PICKUP_POS0);//пикап работы
        
    Create3DTextLabel(!"Квест: {00FF00}Доставка газет!"0xFF0000FFPEDDLER_JOB_PICKUP_POS1501);// 3 д текст на пикапе
        
    SetObjectMaterialText(CreateObject(193532139.42162827.784411.6892, -0.59990.9999, -2.7115), !"Типография"0140, !"Arial"600, -6553601);//
        
    return 1;
    }

    public 
    OnPlayerEnterCheckpoint(playerid)//паблик, который используется когда игрок использует чекпоинт
    {
        if(!
    PeddlerCheckpointID{playerid}) 
            return 
    1;
        new 
    vehicleid GetPlayerVehicleID(playerid);
        if(!(
    PeddlerBikeID[0] <= vehicleid <= PeddlerBikeID[1]))//проверка на то сидит ли игрок на велосипеде
        
    {
            
    SendClientMessage(playerid0xFF0000FF"");
            
    SendClientMessage(playerid0xFF0000FF, !"Вы должны быть на велосипеде! Вы провалили квест 'Доставка газет'!");
            
    SendClientMessage(playerid0xFF0000FF"");
            
    PeddlerCheckpointID{playerid} = 0;//обнуляем переменную
            
    SetPlayerSkin(playeridPeddlerDefaultSkin[playerid]);//выдаём наш первоначальный скин
            
    RemovePlayerAttachedObject(playerid0);//удаляем рюкзак
            
    SetVehicleToRespawn(vehicleid);//респавним велосипед
            
    DisablePlayerCheckpoint(playerid);//удаляем чекпоинты
            
    KillTimer(PeddlerTimerID[playerid]);//убиваем таймер(10 минут )
            
    return 1;
        }

        new 
    idx = ++PeddlerCheckpointID{playerid};
        
    DisablePlayerCheckpoint(playerid);
        
        new 
    string[43+11*2+1];
        
    format(stringsizeof(string), "Доставлено газет: {00FF00}%d{FFFFFF}/{FF0000}%d"pjInfo[idx][pj_NewspaperID], TotalNewspaperID);
        switch(
    pjInfo[idx][pj_CPType])
        {
            case 
    PJ_CP_TYPE_CHECK:
            {
                
    SendClientMessage(playerid0xFFFFFFFFstring);
            }
            case 
    PJ_CP_TYPE_LAST:
            {
                
    SendClientMessage(playerid0xFFFFFFFFstring);
                
    SendClientMessage(playerid0xAA3333FF, !"Отправляйтесь за наградой!");
            }
            case 
    PJ_CP_TYPE_END:
            {
                
    PeddlerCheckpointID{playerid} = 0;
                
    SetPlayerSkin(playeridPeddlerDefaultSkin[playerid]);
                
    RemovePlayerAttachedObject(playerid0);
                
    SetVehicleToRespawn(vehicleid);
                
    DisablePlayerCheckpoint(playerid);
                
    //
                
    CallLocalFunction("GiveRewardForPeddlerJob""%d"playerid);
                
    //
                
    KillTimer(PeddlerTimerID[playerid]);//убиваем таймер
                
    return 1;
            }
        }
        
    ApplyAnimation(playerid, !"RYDER", !"RYD_BECKON_01"4.1falsefalsefalsefalse1000false);//анимация выкидывания газеты
        
    DisablePlayerCheckpoint(playerid);
        
    SetPlayerCheckpoint(playeridpjInfo[idx][pj_PosX], pjInfo[idx][pj_PosY], pjInfo[idx][pj_PosZ], 2.0);//даём координаты игроку из массива pjInfo
        
    return 1;
    }

    /* // Теперь эту функцию можно создавать в моде и выдавать там нужную награду
    forward GiveRewardForPeddlerJob(playerid);
    public GiveRewardForPeddlerJob(playerid)
    {
        SendClientMessage(playerid, 0x00FF00AA, !"Чем больше ваш уровень - тем больше награда за этот квест!");
        SendClientMessage(playerid, 0x33CCFFAA, !"Вы доставили газеты подписчикам и получили:");
        SendClientMessage(playerid, 0xFF9900AA, !"Положительный отзыв с этого квеста! {00FF00}Подробности о репутации в Ратуше.");
        SendClientMessage(playerid, 0xFFFF00AA, !"Деньги(20000 вирт)!");
        SendClientMessage(playerid, 0xFFFF00AA, !"Опыт(8 exp)!");
        GivePlayerMoney(playerid, 20000);
        return 1;
    }
    */

    @__UpdatePeddlerJob(playerid);
    @
    __UpdatePeddlerJob(playerid)// паблик таймера(через 10 минут вызывается этот паблик если мы не выполним задание)
    {
        
    SendClientMessage(playerid0xFF0000FF, !"Вы не успели доставить газеты подписчикам в срок!");
        
    PeddlerCheckpointID{playerid} = 0;//обнуляем переменную
        
    SetPlayerSkin(playeridPeddlerDefaultSkin[playerid]);//выдаём игроку первоначальный скин
        
    RemovePlayerAttachedObject(playerid0);//удаляем рюкзак
        
    SetVehicleToRespawn(GetPlayerVehicleID(playerid));//респавним велосипед
        
    DisablePlayerCheckpoint(playerid);//удаляем чекпоинт работы
        
    return 1;
    }

    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[])//при подходе на пикап работы, выскакивает диалог о начале или конце работы
    {
        if(
    dialogid == 1)//если используете скрипт как фс, то замените на свободный ид диалога в своём моде
        
    {
            if(
    response)//начать
            
    {
                if(
    PeddlerCheckpointID{playerid} == 0)
                {
                    
    SendClientMessage(playerid0xFFFFFFFF, !"РЕДАКТОР: Привет!Нужно срочно доставить газеты подписчикам.");
                    
    SendClientMessage(playerid0xFFFFFFFF, !"РЕДАКТОР: Времени совсем нет, поэтому поторопись!");
                    
    SendClientMessage(playerid0xFFFFFFFF, !"РЕДАКТОР: Бери велосипед и постарайся успеть доставить все газеты!");
                    
    SendClientMessage(playerid0xAA3333FF, !"Отправляйтесь к метке на карте! У вас есть 10 минут на это задание.");
                    
    PeddlerDefaultSkin[playerid] = GetPlayerSkin(playerid);
                    
    SetPlayerSkin(playerid36);//выдаём скин
                    
    SetPlayerAttachedObject(playerid01955910.051000, -0.0569990.003000, -5.19995085.3000250.0000001.1689991.0980000.962999);//прикрепляем рюкзак к игроку
                    
    SetPlayerCheckpoint(playerid2119.81962824.057410.33232.0);//включаем 1 чекпоинт
                    
    PeddlerCheckpointID{playerid}--;
                    
    PeddlerTimerID[playerid] = SetTimer(!"@__UpdatePeddlerJob"550000false);//на задание даётся 10 мин, если мы не выполнили работу в течении 10 минут задание проваливается
                    
    return 1;
                    
                }
            }
            else
    //закончить
            
    {
                
    SendClientMessage(playerid0xFFFFFFFF, !"Вы отказались от квеста.");
                
    PeddlerCheckpointID{playerid} = 0;//обнуляем переменную
                
    SetPlayerSkin(playeridPeddlerDefaultSkin[playerid]);//выдаём первоначальный скин
                
    RemovePlayerAttachedObject(playerid0);//удаляем рюкзак
                
    DisablePlayerCheckpoint(playerid);//удаляем чекпоинт
                
    return 1;
            }
        }
        return 
    1;
    }

    public 
    OnPlayerDisconnect(playeridreason)//обнуление переменной работы и таймера
    {
        
    PeddlerCheckpointID{playerid} = 
        
    PeddlerTimerID[playerid] = 0;
        return 
    1;
    }

    public 
    OnPlayerDeath(playeridkilleridreason)//при смерти работа заканчивается
    {
        
    PeddlerCheckpointID{playerid} = 0;//обнуляем переменную
        
    SetPlayerSkin(playeridPeddlerDefaultSkin[playerid]);//выдаём первоначальный скин
        
    RemovePlayerAttachedObject(playerid0);//удаляем рюкзак
        
    SetVehicleToRespawn(GetPlayerVehicleID(playerid));//респавним велосипед
        
    DisablePlayerCheckpoint(playerid);//удаляем чекпоинт
        
    KillTimer(PeddlerTimerID[playerid]);//убиваем таймер
        
    return 1;
    }

    public 
    OnPlayerStateChange(playeridnewstateoldstate)//паблик используется когда игрок меняет свой статус(сел в транспорт, идёт пешком)
    {
        if(
    newstate == PLAYER_STATE_DRIVER)
        {
            if(
    PeddlerCheckpointID{playerid} == 0)//проверка на взял ли игрок квест
            
    {
                
    SendClientMessage(playerid0xFFFFFFFF, !"Вы не брали квест 'Доставка газет'!");
                
    RemovePlayerFromVehicle(playerid);//выкидываем из машины если игрок не брал квест
                
    return 1;
            }
        }
        return 
    1;
    }

    public 
    OnPlayerPickUpPickup(playeridpickupid)//паблик используется когда игрок использует пикап
    {
        if(
    pickupid == PeddlerPickupID)
        {
            
    ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX, !"{FF0000}Выбор", !"{00FF00}Что вы хотите?", !"Начать", !"Закончить");//если игрок использует пикап то отправляем игроку диалог
        
    }
        return 
    1;
    }

    public 
    OnPlayerConnect(playerid)//иконка "Т"(типография) на карте
    {
        
    SetPlayerMapIcon(playerid02145.49852834.342310.8203420xbf8f8fMAPICON_LOCAL);
        return 
    1;
    }

    public 
    OnPlayerRequestClass(playeridclassid)//спавн
    {
        
    SetSpawnInfo(playerid02892130.85692833.320310.8740274.1458000000);
        
    SpawnPlayer(playerid);
        
    SendClientMessage(playerid0xFFFFFFFF, !"Вы появились рядом с типографией. /тп - команда для тп к типографии");
        
    ApplyAnimation(playerid, !"RYDER", !"RYD_BECKON_01"4.1falsefalsefalsefalse1000false);//подгрузка анимации(Баг в том что первая анимация не показывается, а все последущие показывается, эта подгрузка убирает это баг)
        
    return 1;
    }

    public 
    OnPlayerCommandText(playeridcmdtext[])// команда для тп к типографии(введите /тп )
    {
        if(
    strcmp(!"/тп"cmdtexttrue10) == 0)
        {
            
    SetPlayerPos(playerid2130.85692833.320310.8740);
            
    SetPlayerFacingAngle(playerid274.1458);
            
    SetPlayerVirtualWorld(playerid0);
            
    SetPlayerInterior(playerid0);
            return 
    1;
        }
        return 
    0;



    Хотя и это далеко не идеальный вариант, ибо, например, не учтено, что у игрока может быть приаттачен какой-то другой объект на слот 0, из-за чего этот объект удалится (следует проверять, приаттачен ли объект и если приаттачен - сохранять его ID, чтоб по окончанию работы выдавать его обратно).
    Ну и я не смотрел особо код ниже функции "@__UpdatePeddlerJob(playerid)"
    Последний раз редактировалось DeimoS; 23.06.2017 в 14:51.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •